RUN: /usr/share/launchpad-buildd/slavebin/slave-prep Forking launchpad-buildd slave process... Kernel version: Linux lgw01-amd64-019 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:59 UTC 2017 x86_64 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... 13 Jan 23:19:14 ntpdate[1788]: adjust time server 10.211.37.1 offset -0.000176 sec RUN: /usr/share/launchpad-buildd/slavebin/in-target unpack-chroot --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 /home/buildd/filecache-default/f027e517e95d0e91684230ee23be60d709f816c0 Creating target for build PACKAGEBUILD-14100382 RUN: /usr/share/launchpad-buildd/slavebin/in-target mount-chroot --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 Starting target for build PACKAGEBUILD-14100382 RUN: /usr/share/launchpad-buildd/slavebin/in-target override-sources-list --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 '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-14100382 RUN: /usr/share/launchpad-buildd/slavebin/in-target add-trusted-keys --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 Adding trusted keys to build-PACKAGEBUILD-14100382 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=amd64 PACKAGEBUILD-14100382 Updating target for build PACKAGEBUILD-14100382 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 amd64 Packages [25.3 kB] Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main Translation-en [9132 B] Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main amd64 Packages [13.2 kB] Get:9 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main Translation-en [4552 B] Get:10 http://ftpmaster.internal/ubuntu bionic/main amd64 Packages [1012 kB] Get:11 http://ftpmaster.internal/ubuntu bionic/main Translation-en [518 kB] Get:12 http://ftpmaster.internal/ubuntu bionic/restricted amd64 Packages [8360 B] Get:13 http://ftpmaster.internal/ubuntu bionic/restricted Translation-en [2384 B] Get:14 http://ftpmaster.internal/ubuntu bionic/universe amd64 Packages [8399 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/universe Translation-en [4940 kB] Get:16 http://ftpmaster.internal/ubuntu bionic/multiverse amd64 Packages [151 kB] Get:17 http://ftpmaster.internal/ubuntu bionic/multiverse Translation-en [109 kB] Fetched 15.6 MB in 5s (2944 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-common binutils-x86-64-linux-gnu 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 libitm1 libkeyutils1 libkrb5-26-heimdal liblockfile-bin liblockfile1 liblsan0 libmount1 libmpx2 libnettle6 libnpth0 libp11-kit0 libpcre3 libperl5.26 libpng16-16 libpsl5 libquadmath0 libroken18-heimdal libseccomp2 libselinux1 libsemanage-common libsemanage1 libsmartcols1 libsqlite3-0 libss2 libssl1.0.0 libstdc++-7-dev libstdc++6 libsystemd0 libtasn1-6 libtsan0 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 115 upgraded, 9 newly installed, 0 to remove and 0 not upgraded. Need to get 172 MB of archives. After this operation, 487 MB of additional disk space will be used. Get:1 http://ftpmaster.internal/ubuntu bionic/main amd64 perl-modules-5.26 all 5.26.1-3 [2761 kB] Get:2 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 gcc-8-base amd64 8-20180110-1ubuntu1 [17.9 kB] Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libgcc1 amd64 1:8-20180110-1ubuntu1 [40.8 kB] Get:4 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libstdc++6 amd64 8-20180110-1ubuntu1 [400 kB] Get:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libquadmath0 amd64 8-20180110-1ubuntu1 [134 kB] Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libitm1 amd64 8-20180110-1ubuntu1 [28.2 kB] Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libmpx2 amd64 8-20180110-1ubuntu1 [11.8 kB] Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libcc1-0 amd64 8-20180110-1ubuntu1 [39.2 kB] Get:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libgomp1 amd64 8-20180110-1ubuntu1 [76.8 kB] Get:10 http://ftpmaster.internal/ubuntu bionic/main amd64 libperl5.26 amd64 5.26.1-3 [3541 kB] Get:11 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libatomic1 amd64 8-20180110-1ubuntu1 [9088 B] Get:12 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 liblsan0 amd64 8-20180110-1ubuntu1 [134 kB] Get:13 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libtsan0 amd64 8-20180110-1ubuntu1 [289 kB] Get:14 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 cpp-8 amd64 8-20180110-1ubuntu1 [34.3 MB] Get:15 http://ftpmaster.internal/ubuntu bionic/main amd64 perl amd64 5.26.1-3 [201 kB] Get:16 http://ftpmaster.internal/ubuntu bionic/main amd64 perl-base amd64 5.26.1-3 [1389 kB] Get:17 http://ftpmaster.internal/ubuntu bionic/main amd64 libc6-dev amd64 2.26-0ubuntu2 [2524 kB] Get:18 http://ftpmaster.internal/ubuntu bionic/main amd64 libc-dev-bin amd64 2.26-0ubuntu2 [69.6 kB] Get:19 http://ftpmaster.internal/ubuntu bionic/main amd64 linux-libc-dev amd64 4.13.0-25.29 [963 kB] Get:20 http://ftpmaster.internal/ubuntu bionic/main amd64 libc6 amd64 2.26-0ubuntu2 [2778 kB] Get:21 http://ftpmaster.internal/ubuntu bionic/main amd64 init-system-helpers all 1.51 [37.3 kB] Get:22 http://ftpmaster.internal/ubuntu bionic/main amd64 base-files amd64 10ubuntu1 [55.9 kB] Get:23 http://ftpmaster.internal/ubuntu bionic/main amd64 bsdutils amd64 1:2.30.2-0.1ubuntu1 [60.1 kB] Get:24 http://ftpmaster.internal/ubuntu bionic/main amd64 coreutils amd64 8.26-3ubuntu4 [1213 kB] Get:25 http://ftpmaster.internal/ubuntu bionic/main amd64 debianutils amd64 4.8.4 [85.7 kB] Get:26 http://ftpmaster.internal/ubuntu bionic/main amd64 dpkg amd64 1.19.0.4ubuntu1 [1145 kB] Get:27 http://ftpmaster.internal/ubuntu bionic/main amd64 e2fslibs amd64 1.43.8-1ubuntu1 [157 kB] Get:28 http://ftpmaster.internal/ubuntu bionic/main amd64 e2fsprogs amd64 1.43.8-1ubuntu1 [500 kB] Get:29 http://ftpmaster.internal/ubuntu bionic/main amd64 findutils amd64 4.6.0+git+20170828-2 [291 kB] Get:30 http://ftpmaster.internal/ubuntu bionic/main amd64 libuuid1 amd64 2.30.2-0.1ubuntu1 [14.8 kB] Get:31 http://ftpmaster.internal/ubuntu bionic/main amd64 libblkid1 amd64 2.30.2-0.1ubuntu1 [119 kB] Get:32 http://ftpmaster.internal/ubuntu bionic/main amd64 libsmartcols1 amd64 2.30.2-0.1ubuntu1 [78.8 kB] Get:33 http://ftpmaster.internal/ubuntu bionic/main amd64 libfdisk1 amd64 2.30.2-0.1ubuntu1 [157 kB] Get:34 http://ftpmaster.internal/ubuntu bionic/main amd64 libpcre3 amd64 2:8.39-8 [229 kB] Get:35 http://ftpmaster.internal/ubuntu bionic/main amd64 libselinux1 amd64 2.7-2 [68.3 kB] Get:36 http://ftpmaster.internal/ubuntu bionic/main amd64 libmount1 amd64 2.30.2-0.1ubuntu1 [131 kB] Get:37 http://ftpmaster.internal/ubuntu bionic/main amd64 fdisk amd64 2.30.2-0.1ubuntu1 [105 kB] Get:38 http://ftpmaster.internal/ubuntu bionic/main amd64 util-linux amd64 2.30.2-0.1ubuntu1 [879 kB] Get:39 http://ftpmaster.internal/ubuntu bionic/main amd64 base-passwd amd64 3.5.44 [47.2 kB] Get:40 http://ftpmaster.internal/ubuntu bionic/main amd64 libc-bin amd64 2.26-0ubuntu2 [593 kB] Get:41 http://ftpmaster.internal/ubuntu bionic/main amd64 sysvinit-utils amd64 2.88dsf-59.10ubuntu1 [18.6 kB] Get:42 http://ftpmaster.internal/ubuntu bionic/main amd64 libudev1 amd64 235-3ubuntu3 [54.8 kB] Get:43 http://ftpmaster.internal/ubuntu bionic/main amd64 libapt-pkg5.0 amd64 1.6~alpha5 [778 kB] Get:44 http://ftpmaster.internal/ubuntu bionic/main amd64 debconf all 1.5.65 [124 kB] Get:45 http://ftpmaster.internal/ubuntu bionic/main amd64 adduser all 3.116ubuntu1 [163 kB] Get:46 http://ftpmaster.internal/ubuntu bionic/main amd64 libgpg-error0 amd64 1.27-5 [36.9 kB] Get:47 http://ftpmaster.internal/ubuntu bionic/main amd64 libgcrypt20 amd64 1.8.1-4 [417 kB] Get:48 http://ftpmaster.internal/ubuntu bionic/main amd64 gpgv amd64 2.1.15-1ubuntu8 [186 kB] Get:49 http://ftpmaster.internal/ubuntu bionic/main amd64 libseccomp2 amd64 2.3.1-2.1ubuntu3 [37.3 kB] Get:50 http://ftpmaster.internal/ubuntu bionic/main amd64 apt amd64 1.6~alpha5 [1145 kB] Get:51 http://ftpmaster.internal/ubuntu bionic/main amd64 libapparmor1 amd64 2.11.0-2ubuntu18 [28.8 kB] Get:52 http://ftpmaster.internal/ubuntu bionic/main amd64 libcap2 amd64 1:2.25-1.2 [13.0 kB] Get:53 http://ftpmaster.internal/ubuntu bionic/main amd64 libidn11 amd64 1.33-2.1 [46.0 kB] Get:54 http://ftpmaster.internal/ubuntu bionic/main amd64 libip4tc0 amd64 1.6.1-2ubuntu2 [19.6 kB] Get:55 http://ftpmaster.internal/ubuntu bionic/main amd64 mount amd64 2.30.2-0.1ubuntu1 [110 kB] Get:56 http://ftpmaster.internal/ubuntu bionic/main amd64 systemd amd64 235-3ubuntu3 [2834 kB] Get:57 http://ftpmaster.internal/ubuntu bionic/main amd64 libsystemd0 amd64 235-3ubuntu3 [197 kB] Get:58 http://ftpmaster.internal/ubuntu bionic/main amd64 init amd64 1.51 [5864 B] Get:59 http://ftpmaster.internal/ubuntu bionic/main amd64 systemd-sysv amd64 235-3ubuntu3 [13.1 kB] Get:60 http://ftpmaster.internal/ubuntu bionic/main amd64 libcap-ng0 amd64 0.7.7-3.1 [11.1 kB] Get:61 http://ftpmaster.internal/ubuntu bionic/main amd64 libcomerr2 amd64 1.43.8-1ubuntu1 [11.2 kB] Get:62 http://ftpmaster.internal/ubuntu bionic/main amd64 libsemanage-common all 2.7-2 [6916 B] Get:63 http://ftpmaster.internal/ubuntu bionic/main amd64 libsemanage1 amd64 2.7-2 [84.6 kB] Get:64 http://ftpmaster.internal/ubuntu bionic/main amd64 libss2 amd64 1.43.8-1ubuntu1 [11.1 kB] Get:65 http://ftpmaster.internal/ubuntu bionic/main amd64 libnettle6 amd64 3.3-2 [91.7 kB] Get:66 http://ftpmaster.internal/ubuntu bionic/main amd64 libhogweed4 amd64 3.3-2 [135 kB] Get:67 http://ftpmaster.internal/ubuntu bionic/main amd64 libp11-kit0 amd64 0.23.9-2 [187 kB] Get:68 http://ftpmaster.internal/ubuntu bionic/main amd64 libtasn1-6 amd64 4.12-3 [36.1 kB] Get:69 http://ftpmaster.internal/ubuntu bionic/main amd64 g++-7 amd64 7.2.0-18ubuntu2 [7555 kB] Get:70 http://ftpmaster.internal/ubuntu bionic/main amd64 gcc-7 amd64 7.2.0-18ubuntu2 [7421 kB] Get:71 http://ftpmaster.internal/ubuntu bionic/main amd64 cpp-7 amd64 7.2.0-18ubuntu2 [6730 kB] Get:72 http://ftpmaster.internal/ubuntu bionic/main amd64 libbinutils amd64 2.29.1-12ubuntu1 [503 kB] Get:73 http://ftpmaster.internal/ubuntu bionic/main amd64 binutils amd64 2.29.1-12ubuntu1 [3408 B] Get:74 http://ftpmaster.internal/ubuntu bionic/main amd64 binutils-common amd64 2.29.1-12ubuntu1 [190 kB] Get:75 http://ftpmaster.internal/ubuntu bionic/main amd64 binutils-x86-64-linux-gnu amd64 2.29.1-12ubuntu1 [1825 kB] Get:76 http://ftpmaster.internal/ubuntu bionic/main amd64 libasan4 amd64 7.2.0-18ubuntu2 [358 kB] Get:77 http://ftpmaster.internal/ubuntu bionic/main amd64 libubsan0 amd64 7.2.0-18ubuntu2 [126 kB] Get:78 http://ftpmaster.internal/ubuntu bionic/main amd64 libcilkrts5 amd64 7.2.0-18ubuntu2 [42.4 kB] Get:79 http://ftpmaster.internal/ubuntu bionic/main amd64 libstdc++-7-dev amd64 7.2.0-18ubuntu2 [1455 kB] Get:80 http://ftpmaster.internal/ubuntu bionic/main amd64 libgcc-7-dev amd64 7.2.0-18ubuntu2 [2372 kB] Get:81 http://ftpmaster.internal/ubuntu bionic/main amd64 gcc-7-base amd64 7.2.0-18ubuntu2 [19.0 kB] Get:82 http://ftpmaster.internal/ubuntu bionic/main amd64 lsb-base all 9.20170808ubuntu1 [12.5 kB] Get:83 http://ftpmaster.internal/ubuntu bionic/main amd64 sensible-utils all 0.0.11 [14.8 kB] Get:84 http://ftpmaster.internal/ubuntu bionic/main amd64 libassuan0 amd64 2.5.1-1 [35.0 kB] Get:85 http://ftpmaster.internal/ubuntu bionic/main amd64 pinentry-curses amd64 1.0.0-3 [34.7 kB] Get:86 http://ftpmaster.internal/ubuntu bionic/main amd64 libnpth0 amd64 1.5-3 [7668 B] Get:87 http://ftpmaster.internal/ubuntu bionic/main amd64 gnupg amd64 2.1.15-1ubuntu8 [780 kB] Get:88 http://ftpmaster.internal/ubuntu bionic/main amd64 gnupg-agent amd64 2.1.15-1ubuntu8 [255 kB] Get:89 http://ftpmaster.internal/ubuntu bionic/main amd64 libsqlite3-0 amd64 3.21.0-1 [492 kB] Get:90 http://ftpmaster.internal/ubuntu bionic/main amd64 libroken18-heimdal amd64 7.5.0+dfsg-1 [41.3 kB] Get:91 http://ftpmaster.internal/ubuntu bionic/main amd64 libasn1-8-heimdal amd64 7.5.0+dfsg-1 [175 kB] Get:92 http://ftpmaster.internal/ubuntu bionic/main amd64 libheimbase1-heimdal amd64 7.5.0+dfsg-1 [29.3 kB] Get:93 http://ftpmaster.internal/ubuntu bionic/main amd64 libhcrypto4-heimdal amd64 7.5.0+dfsg-1 [85.9 kB] Get:94 http://ftpmaster.internal/ubuntu bionic/main amd64 libwind0-heimdal amd64 7.5.0+dfsg-1 [47.8 kB] Get:95 http://ftpmaster.internal/ubuntu bionic/main amd64 libhx509-5-heimdal amd64 7.5.0+dfsg-1 [107 kB] Get:96 http://ftpmaster.internal/ubuntu bionic/main amd64 libkrb5-26-heimdal amd64 7.5.0+dfsg-1 [206 kB] Get:97 http://ftpmaster.internal/ubuntu bionic/main amd64 libheimntlm0-heimdal amd64 7.5.0+dfsg-1 [14.8 kB] Get:98 http://ftpmaster.internal/ubuntu bionic/main amd64 libgssapi3-heimdal amd64 7.5.0+dfsg-1 [96.5 kB] Get:99 http://ftpmaster.internal/ubuntu bionic/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu14 [1081 kB] Get:100 http://ftpmaster.internal/ubuntu bionic/main amd64 multiarch-support amd64 2.26-0ubuntu2 [6832 B] Get:101 http://ftpmaster.internal/ubuntu bionic/main amd64 openssl amd64 1.0.2g-1ubuntu14 [495 kB] Get:102 http://ftpmaster.internal/ubuntu bionic/main amd64 tzdata all 2017c-1 [188 kB] Get:103 http://ftpmaster.internal/ubuntu bionic/main amd64 libidn2-0 amd64 2.0.4-1 [93.2 kB] Get:104 http://ftpmaster.internal/ubuntu bionic/main amd64 libkeyutils1 amd64 1.5.9-9.2ubuntu1 [9308 B] Get:105 http://ftpmaster.internal/ubuntu bionic/main amd64 libpng16-16 amd64 1.6.34-1 [176 kB] Get:106 http://ftpmaster.internal/ubuntu bionic/universe amd64 apt-transport-https all 1.6~alpha5 [1692 B] Get:107 http://ftpmaster.internal/ubuntu bionic/main amd64 dpkg-dev all 1.19.0.4ubuntu1 [607 kB] Get:108 http://ftpmaster.internal/ubuntu bionic/main amd64 libdpkg-perl all 1.19.0.4ubuntu1 [211 kB] Get:109 http://ftpmaster.internal/ubuntu bionic/main amd64 build-essential amd64 12.4ubuntu1 [4758 B] Get:110 http://ftpmaster.internal/ubuntu bionic/main amd64 libnghttp2-14 amd64 1.29.0-1 [77.4 kB] Get:111 http://ftpmaster.internal/ubuntu bionic/main amd64 libpsl5 amd64 0.19.1-4 [41.2 kB] Get:112 http://ftpmaster.internal/ubuntu bionic/main amd64 libcurl3-gnutls amd64 7.57.0-1ubuntu1 [210 kB] Get:113 http://ftpmaster.internal/ubuntu bionic/main amd64 liblockfile-bin amd64 1.14-1.1 [11.9 kB] Get:114 http://ftpmaster.internal/ubuntu bionic/main amd64 liblockfile1 amd64 1.14-1.1 [6804 B] Get:115 http://ftpmaster.internal/ubuntu bionic/main amd64 optipng amd64 0.7.6-1.1 [83.4 kB] Get:116 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main amd64 cpp amd64 4:8-20121108-1ubuntu0.2 [42.2 kB] Get:117 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libasan5 amd64 8-20180110-1ubuntu1 [368 kB] Get:118 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libubsan1 amd64 8-20180110-1ubuntu1 [123 kB] Get:119 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libgcc-8-dev amd64 8-20180110-1ubuntu1 [2311 kB] Get:120 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 gcc-8 amd64 8-20180110-1ubuntu1 [34.0 MB] Get:121 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main amd64 gcc amd64 4:8-20121108-1ubuntu0.2 [5164 B] Get:122 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libstdc++-8-dev amd64 8-20180110-1ubuntu1 [1511 kB] Get:123 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 g++-8 amd64 8-20180110-1ubuntu1 [36.9 MB] Get:124 http://ppa.launchpad.net/ubuntu-toolchain-r/volatile/ubuntu bionic/main amd64 g++ amd64 4:8-20121108-1ubuntu0.2 [1536 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 172 MB in 8s (19.6 MB/s) (Reading database ... 12676 files and directories currently installed.) Preparing to unpack .../perl_5.26.1-3_amd64.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_amd64.deb ... Unpacking libperl5.26:amd64 (5.26.1-3) over (5.26.0-8ubuntu1) ... Preparing to unpack .../perl-base_5.26.1-3_amd64.deb ... Unpacking perl-base (5.26.1-3) over (5.26.0-8ubuntu1) ... Setting up perl-base (5.26.1-3) ... (Reading database ... 12676 files and directories currently installed.) Preparing to unpack .../libc6-dev_2.26-0ubuntu2_amd64.deb ... Unpacking libc6-dev:amd64 (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../libc-dev-bin_2.26-0ubuntu2_amd64.deb ... Unpacking libc-dev-bin (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../linux-libc-dev_4.13.0-25.29_amd64.deb ... Unpacking linux-libc-dev:amd64 (4.13.0-25.29) over (4.13.0-11.12) ... Selecting previously unselected package gcc-8-base:amd64. Preparing to unpack .../gcc-8-base_8-20180110-1ubuntu1_amd64.deb ... Unpacking gcc-8-base:amd64 (8-20180110-1ubuntu1) ... Setting up gcc-8-base:amd64 (8-20180110-1ubuntu1) ... (Reading database ... 12683 files and directories currently installed.) Preparing to unpack .../libgcc1_1%3a8-20180110-1ubuntu1_amd64.deb ... Unpacking libgcc1:amd64 (1:8-20180110-1ubuntu1) over (1:7.2.0-6ubuntu1) ... Setting up libgcc1:amd64 (1:8-20180110-1ubuntu1) ... (Reading database ... 12683 files and directories currently installed.) Preparing to unpack .../libc6_2.26-0ubuntu2_amd64.deb ... Unpacking libc6:amd64 (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Setting up libc6:amd64 (2.26-0ubuntu2) ... (Reading database ... 12683 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 ... 12683 files and directories currently installed.) Preparing to unpack .../base-files_10ubuntu1_amd64.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 ... 12683 files and directories currently installed.) Preparing to unpack .../bsdutils_1%3a2.30.2-0.1ubuntu1_amd64.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 ... 12683 files and directories currently installed.) Preparing to unpack .../coreutils_8.26-3ubuntu4_amd64.deb ... Unpacking coreutils (8.26-3ubuntu4) over (8.26-3ubuntu3) ... Setting up coreutils (8.26-3ubuntu4) ... (Reading database ... 12683 files and directories currently installed.) Preparing to unpack .../debianutils_4.8.4_amd64.deb ... Unpacking debianutils (4.8.4) over (4.8.2) ... Setting up debianutils (4.8.4) ... (Reading database ... 12683 files and directories currently installed.) Preparing to unpack .../dpkg_1.19.0.4ubuntu1_amd64.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 ... 12685 files and directories currently installed.) Preparing to unpack .../e2fslibs_1.43.8-1ubuntu1_amd64.deb ... Unpacking e2fslibs:amd64 (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up e2fslibs:amd64 (1.43.8-1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../e2fsprogs_1.43.8-1ubuntu1_amd64.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 ... 12685 files and directories currently installed.) Preparing to unpack .../findutils_4.6.0+git+20170828-2_amd64.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 ... 12685 files and directories currently installed.) Preparing to unpack .../libuuid1_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking libuuid1:amd64 (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libuuid1:amd64 (2.30.2-0.1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../libblkid1_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking libblkid1:amd64 (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libblkid1:amd64 (2.30.2-0.1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../libsmartcols1_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking libsmartcols1:amd64 (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libsmartcols1:amd64 (2.30.2-0.1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../libfdisk1_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking libfdisk1:amd64 (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libfdisk1:amd64 (2.30.2-0.1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../libpcre3_2%3a8.39-8_amd64.deb ... Unpacking libpcre3:amd64 (2:8.39-8) over (2:8.39-4) ... Setting up libpcre3:amd64 (2:8.39-8) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../libselinux1_2.7-2_amd64.deb ... Unpacking libselinux1:amd64 (2.7-2) over (2.7-1) ... Setting up libselinux1:amd64 (2.7-2) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../libmount1_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking libmount1:amd64 (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up libmount1:amd64 (2.30.2-0.1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../fdisk_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking fdisk (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Setting up fdisk (2.30.2-0.1ubuntu1) ... (Reading database ... 12685 files and directories currently installed.) Preparing to unpack .../util-linux_2.30.2-0.1ubuntu1_amd64.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 ... 12686 files and directories currently installed.) Preparing to unpack .../base-passwd_3.5.44_amd64.deb ... Unpacking base-passwd (3.5.44) over (3.5.43) ... Setting up base-passwd (3.5.44) ... (Reading database ... 12686 files and directories currently installed.) Preparing to unpack .../libc-bin_2.26-0ubuntu2_amd64.deb ... Unpacking libc-bin (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Setting up libc-bin (2.26-0ubuntu2) ... (Reading database ... 12686 files and directories currently installed.) Preparing to unpack .../sysvinit-utils_2.88dsf-59.10ubuntu1_amd64.deb ... Unpacking sysvinit-utils (2.88dsf-59.10ubuntu1) over (2.88dsf-59.8git1) ... Setting up sysvinit-utils (2.88dsf-59.10ubuntu1) ... (Reading database ... 12686 files and directories currently installed.) Preparing to unpack .../libstdc++6_8-20180110-1ubuntu1_amd64.deb ... Unpacking libstdc++6:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Setting up libstdc++6:amd64 (8-20180110-1ubuntu1) ... (Reading database ... 12686 files and directories currently installed.) Preparing to unpack .../libudev1_235-3ubuntu3_amd64.deb ... Unpacking libudev1:amd64 (235-3ubuntu3) over (234-2ubuntu10) ... Setting up libudev1:amd64 (235-3ubuntu3) ... (Reading database ... 12686 files and directories currently installed.) Preparing to unpack .../libapt-pkg5.0_1.6~alpha5_amd64.deb ... Unpacking libapt-pkg5.0:amd64 (1.6~alpha5) over (1.5~rc4) ... Setting up libapt-pkg5.0:amd64 (1.6~alpha5) ... (Reading database ... 12686 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 ... 12680 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 ... 12678 files and directories currently installed.) Preparing to unpack .../libgpg-error0_1.27-5_amd64.deb ... Unpacking libgpg-error0:amd64 (1.27-5) over (1.27-3) ... Setting up libgpg-error0:amd64 (1.27-5) ... (Reading database ... 12678 files and directories currently installed.) Preparing to unpack .../libgcrypt20_1.8.1-4_amd64.deb ... Unpacking libgcrypt20:amd64 (1.8.1-4) over (1.7.8-2ubuntu1) ... Setting up libgcrypt20:amd64 (1.8.1-4) ... (Reading database ... 12678 files and directories currently installed.) Preparing to unpack .../gpgv_2.1.15-1ubuntu8_amd64.deb ... Unpacking gpgv (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Setting up gpgv (2.1.15-1ubuntu8) ... (Reading database ... 12678 files and directories currently installed.) Preparing to unpack .../libseccomp2_2.3.1-2.1ubuntu3_amd64.deb ... Unpacking libseccomp2:amd64 (2.3.1-2.1ubuntu3) over (2.3.1-2.1ubuntu2) ... Setting up libseccomp2:amd64 (2.3.1-2.1ubuntu3) ... (Reading database ... 12678 files and directories currently installed.) Preparing to unpack .../apt_1.6~alpha5_amd64.deb ... Unpacking apt (1.6~alpha5) over (1.5~rc4) ... Setting up apt (1.6~alpha5) ... (Reading database ... 12674 files and directories currently installed.) Preparing to unpack .../libapparmor1_2.11.0-2ubuntu18_amd64.deb ... Unpacking libapparmor1:amd64 (2.11.0-2ubuntu18) over (2.11.0-2ubuntu17) ... Preparing to unpack .../libcap2_1%3a2.25-1.2_amd64.deb ... Unpacking libcap2:amd64 (1:2.25-1.2) over (1:2.25-1) ... Preparing to unpack .../libidn11_1.33-2.1_amd64.deb ... Unpacking libidn11:amd64 (1.33-2.1) over (1.33-2) ... Setting up libidn11:amd64 (1.33-2.1) ... (Reading database ... 12674 files and directories currently installed.) Preparing to unpack .../libip4tc0_1.6.1-2ubuntu2_amd64.deb ... Unpacking libip4tc0:amd64 (1.6.1-2ubuntu2) over (1.6.1-2ubuntu1) ... Preparing to unpack .../mount_2.30.2-0.1ubuntu1_amd64.deb ... Unpacking mount (2.30.2-0.1ubuntu1) over (2.30.1-0ubuntu4) ... Preparing to unpack .../systemd_235-3ubuntu3_amd64.deb ... Unpacking systemd (235-3ubuntu3) over (234-2ubuntu10) ... Preparing to unpack .../libsystemd0_235-3ubuntu3_amd64.deb ... Unpacking libsystemd0:amd64 (235-3ubuntu3) over (234-2ubuntu10) ... Setting up libsystemd0:amd64 (235-3ubuntu3) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../archives/init_1.51_amd64.deb ... Unpacking init (1.51) over (1.49ubuntu1) ... Setting up libapparmor1:amd64 (2.11.0-2ubuntu18) ... Setting up libcap2:amd64 (1:2.25-1.2) ... Setting up libip4tc0:amd64 (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 ... 12680 files and directories currently installed.) Preparing to unpack .../systemd-sysv_235-3ubuntu3_amd64.deb ... Unpacking systemd-sysv (235-3ubuntu3) over (234-2ubuntu10) ... Preparing to unpack .../libcap-ng0_0.7.7-3.1_amd64.deb ... Unpacking libcap-ng0:amd64 (0.7.7-3.1) over (0.7.7-3build1) ... Setting up libcap-ng0:amd64 (0.7.7-3.1) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../libcomerr2_1.43.8-1ubuntu1_amd64.deb ... Unpacking libcomerr2:amd64 (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up libcomerr2:amd64 (1.43.8-1ubuntu1) ... (Reading database ... 12680 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 ... 12680 files and directories currently installed.) Preparing to unpack .../libsemanage1_2.7-2_amd64.deb ... Unpacking libsemanage1:amd64 (2.7-2) over (2.7-1) ... Setting up libsemanage1:amd64 (2.7-2) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../libss2_1.43.8-1ubuntu1_amd64.deb ... Unpacking libss2:amd64 (1.43.8-1ubuntu1) over (1.43.5-1) ... Setting up libss2:amd64 (1.43.8-1ubuntu1) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../libnettle6_3.3-2_amd64.deb ... Unpacking libnettle6:amd64 (3.3-2) over (3.3-1) ... Setting up libnettle6:amd64 (3.3-2) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../libhogweed4_3.3-2_amd64.deb ... Unpacking libhogweed4:amd64 (3.3-2) over (3.3-1) ... Setting up libhogweed4:amd64 (3.3-2) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../libp11-kit0_0.23.9-2_amd64.deb ... Unpacking libp11-kit0:amd64 (0.23.9-2) over (0.23.7-3) ... Setting up libp11-kit0:amd64 (0.23.9-2) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../libtasn1-6_4.12-3_amd64.deb ... Unpacking libtasn1-6:amd64 (4.12-3) over (4.12-2.1) ... Setting up libtasn1-6:amd64 (4.12-3) ... (Reading database ... 12680 files and directories currently installed.) Preparing to unpack .../00-libquadmath0_8-20180110-1ubuntu1_amd64.deb ... Unpacking libquadmath0:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../01-libitm1_8-20180110-1ubuntu1_amd64.deb ... Unpacking libitm1:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../02-libmpx2_8-20180110-1ubuntu1_amd64.deb ... Unpacking libmpx2:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../03-g++-7_7.2.0-18ubuntu2_amd64.deb ... Unpacking g++-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../04-gcc-7_7.2.0-18ubuntu2_amd64.deb ... Unpacking gcc-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../05-cpp-7_7.2.0-18ubuntu2_amd64.deb ... Unpacking cpp-7 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../06-libcc1-0_8-20180110-1ubuntu1_amd64.deb ... Unpacking libcc1-0:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../07-libbinutils_2.29.1-12ubuntu1_amd64.deb ... Unpacking libbinutils:amd64 (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../08-binutils_2.29.1-12ubuntu1_amd64.deb ... Unpacking binutils (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../09-binutils-common_2.29.1-12ubuntu1_amd64.deb ... Unpacking binutils-common:amd64 (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../10-binutils-x86-64-linux-gnu_2.29.1-12ubuntu1_amd64.deb ... Unpacking binutils-x86-64-linux-gnu (2.29.1-12ubuntu1) over (2.29.1-1ubuntu1) ... Preparing to unpack .../11-libgomp1_8-20180110-1ubuntu1_amd64.deb ... Unpacking libgomp1:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../12-libatomic1_8-20180110-1ubuntu1_amd64.deb ... Unpacking libatomic1:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../13-libasan4_7.2.0-18ubuntu2_amd64.deb ... Unpacking libasan4:amd64 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../14-liblsan0_8-20180110-1ubuntu1_amd64.deb ... Unpacking liblsan0:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../15-libtsan0_8-20180110-1ubuntu1_amd64.deb ... Unpacking libtsan0:amd64 (8-20180110-1ubuntu1) over (7.2.0-6ubuntu1) ... Preparing to unpack .../16-libubsan0_7.2.0-18ubuntu2_amd64.deb ... Unpacking libubsan0:amd64 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../17-libcilkrts5_7.2.0-18ubuntu2_amd64.deb ... Unpacking libcilkrts5:amd64 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../18-libstdc++-7-dev_7.2.0-18ubuntu2_amd64.deb ... Unpacking libstdc++-7-dev:amd64 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../19-libgcc-7-dev_7.2.0-18ubuntu2_amd64.deb ... Unpacking libgcc-7-dev:amd64 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../20-gcc-7-base_7.2.0-18ubuntu2_amd64.deb ... Unpacking gcc-7-base:amd64 (7.2.0-18ubuntu2) over (7.2.0-6ubuntu1) ... Preparing to unpack .../21-lsb-base_9.20170808ubuntu1_all.deb ... Unpacking lsb-base (9.20170808ubuntu1) over (9.20160110ubuntu5) ... Preparing to unpack .../22-sensible-utils_0.0.11_all.deb ... Unpacking sensible-utils (0.0.11) over (0.0.10) ... Preparing to unpack .../23-libassuan0_2.5.1-1_amd64.deb ... Unpacking libassuan0:amd64 (2.5.1-1) over (2.4.3-3) ... Preparing to unpack .../24-pinentry-curses_1.0.0-3_amd64.deb ... Unpacking pinentry-curses (1.0.0-3) over (1.0.0-2) ... Preparing to unpack .../25-libnpth0_1.5-3_amd64.deb ... Unpacking libnpth0:amd64 (1.5-3) over (1.5-2) ... Preparing to unpack .../26-gnupg_2.1.15-1ubuntu8_amd64.deb ... Unpacking gnupg (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Preparing to unpack .../27-gnupg-agent_2.1.15-1ubuntu8_amd64.deb ... Unpacking gnupg-agent (2.1.15-1ubuntu8) over (2.1.15-1ubuntu7) ... Preparing to unpack .../28-libsqlite3-0_3.21.0-1_amd64.deb ... Unpacking libsqlite3-0:amd64 (3.21.0-1) over (3.19.3-3) ... Preparing to unpack .../29-libroken18-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libroken18-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../30-libasn1-8-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libasn1-8-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../31-libheimbase1-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libheimbase1-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../32-libhcrypto4-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libhcrypto4-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../33-libwind0-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libwind0-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../34-libhx509-5-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libhx509-5-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../35-libkrb5-26-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libkrb5-26-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../36-libheimntlm0-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libheimntlm0-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../37-libgssapi3-heimdal_7.5.0+dfsg-1_amd64.deb ... Unpacking libgssapi3-heimdal:amd64 (7.5.0+dfsg-1) over (7.4.0.dfsg.1-2) ... Preparing to unpack .../38-libssl1.0.0_1.0.2g-1ubuntu14_amd64.deb ... Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu14) over (1.0.2g-1ubuntu13) ... Preparing to unpack .../39-multiarch-support_2.26-0ubuntu2_amd64.deb ... Unpacking multiarch-support (2.26-0ubuntu2) over (2.26-0ubuntu1) ... Preparing to unpack .../40-openssl_1.0.2g-1ubuntu14_amd64.deb ... Unpacking openssl (1.0.2g-1ubuntu14) over (1.0.2g-1ubuntu13) ... Preparing to unpack .../41-tzdata_2017c-1_all.deb ... Unpacking tzdata (2017c-1) over (2017b-2) ... Preparing to unpack .../42-libidn2-0_2.0.4-1_amd64.deb ... Unpacking libidn2-0:amd64 (2.0.4-1) over (2.0.2-5) ... Preparing to unpack .../43-libkeyutils1_1.5.9-9.2ubuntu1_amd64.deb ... Unpacking libkeyutils1:amd64 (1.5.9-9.2ubuntu1) over (1.5.9-9ubuntu1) ... Preparing to unpack .../44-libpng16-16_1.6.34-1_amd64.deb ... Unpacking libpng16-16:amd64 (1.6.34-1) over (1.6.32-2) ... Preparing to unpack .../45-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 .../46-cpp-8_8-20180110-1ubuntu1_amd64.deb ... Unpacking cpp-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../47-cpp_4%3a8-20121108-1ubuntu0.2_amd64.deb ... Unpacking cpp (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Selecting previously unselected package libasan5:amd64. Preparing to unpack .../48-libasan5_8-20180110-1ubuntu1_amd64.deb ... Unpacking libasan5:amd64 (8-20180110-1ubuntu1) ... Selecting previously unselected package libubsan1:amd64. Preparing to unpack .../49-libubsan1_8-20180110-1ubuntu1_amd64.deb ... Unpacking libubsan1:amd64 (8-20180110-1ubuntu1) ... Selecting previously unselected package libgcc-8-dev:amd64. Preparing to unpack .../50-libgcc-8-dev_8-20180110-1ubuntu1_amd64.deb ... Unpacking libgcc-8-dev:amd64 (8-20180110-1ubuntu1) ... Selecting previously unselected package gcc-8. Preparing to unpack .../51-gcc-8_8-20180110-1ubuntu1_amd64.deb ... Unpacking gcc-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../52-gcc_4%3a8-20121108-1ubuntu0.2_amd64.deb ... Unpacking gcc (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Selecting previously unselected package libstdc++-8-dev:amd64. Preparing to unpack .../53-libstdc++-8-dev_8-20180110-1ubuntu1_amd64.deb ... Unpacking libstdc++-8-dev:amd64 (8-20180110-1ubuntu1) ... Selecting previously unselected package g++-8. Preparing to unpack .../54-g++-8_8-20180110-1ubuntu1_amd64.deb ... Unpacking g++-8 (8-20180110-1ubuntu1) ... Preparing to unpack .../55-g++_4%3a8-20121108-1ubuntu0.2_amd64.deb ... Unpacking g++ (4:8-20121108-1ubuntu0.2) over (4:7.2.0-1ubuntu1) ... Preparing to unpack .../56-dpkg-dev_1.19.0.4ubuntu1_all.deb ... Unpacking dpkg-dev (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Preparing to unpack .../57-libdpkg-perl_1.19.0.4ubuntu1_all.deb ... Unpacking libdpkg-perl (1.19.0.4ubuntu1) over (1.18.24ubuntu1) ... Preparing to unpack .../58-build-essential_12.4ubuntu1_amd64.deb ... Unpacking build-essential (12.4ubuntu1) over (12.1ubuntu2) ... Selecting previously unselected package libnghttp2-14:amd64. Preparing to unpack .../59-libnghttp2-14_1.29.0-1_amd64.deb ... Unpacking libnghttp2-14:amd64 (1.29.0-1) ... Preparing to unpack .../60-libpsl5_0.19.1-4_amd64.deb ... Unpacking libpsl5:amd64 (0.19.1-4) over (0.18.0-2) ... Preparing to unpack .../61-libcurl3-gnutls_7.57.0-1ubuntu1_amd64.deb ... Unpacking libcurl3-gnutls:amd64 (7.57.0-1ubuntu1) over (7.55.1-1ubuntu1) ... Preparing to unpack .../62-liblockfile-bin_1.14-1.1_amd64.deb ... Unpacking liblockfile-bin (1.14-1.1) over (1.14-1) ... Preparing to unpack .../63-liblockfile1_1.14-1.1_amd64.deb ... Unpacking liblockfile1:amd64 (1.14-1.1) over (1.14-1) ... Preparing to unpack .../64-optipng_0.7.6-1.1_amd64.deb ... Unpacking optipng (0.7.6-1.1) over (0.7.6-1build1) ... Setting up libquadmath0:amd64 (8-20180110-1ubuntu1) ... Setting up libnpth0:amd64 (1.5-3) ... Setting up cpp-8 (8-20180110-1ubuntu1) ... Setting up libgomp1:amd64 (8-20180110-1ubuntu1) ... Setting up libatomic1:amd64 (8-20180110-1ubuntu1) ... Setting up cpp (4:8-20121108-1ubuntu0.2) ... Setting up liblockfile-bin (1.14-1.1) ... Setting up libcc1-0:amd64 (8-20180110-1ubuntu1) ... Setting up apt-transport-https (1.6~alpha5) ... Setting up libidn2-0:amd64 (2.0.4-1) ... Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu14) ... Setting up libnghttp2-14:amd64 (1.29.0-1) ... Setting up libpng16-16:amd64 (1.6.34-1) ... Setting up libpsl5:amd64 (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: Sat Jan 13 23:20:39 UTC 2018. Universal Time is now: Sat Jan 13 23:20:39 UTC 2018. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up systemd-sysv (235-3ubuntu3) ... Setting up libtsan0:amd64 (8-20180110-1ubuntu1) ... Setting up liblockfile1:amd64 (1.14-1.1) ... Setting up linux-libc-dev:amd64 (4.13.0-25.29) ... Setting up libroken18-heimdal:amd64 (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 liblsan0:amd64 (8-20180110-1ubuntu1) ... Setting up gcc-7-base:amd64 (7.2.0-18ubuntu2) ... Setting up binutils-common:amd64 (2.29.1-12ubuntu1) ... Setting up libmpx2:amd64 (8-20180110-1ubuntu1) ... Setting up sensible-utils (0.0.11) ... Processing triggers for libc-bin (2.26-0ubuntu2) ... Setting up libperl5.26:amd64 (5.26.1-3) ... Setting up libheimbase1-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up openssl (1.0.2g-1ubuntu14) ... Setting up libsqlite3-0:amd64 (3.21.0-1) ... Setting up libc-dev-bin (2.26-0ubuntu2) ... Setting up libkeyutils1:amd64 (1.5.9-9.2ubuntu1) ... Setting up libc6-dev:amd64 (2.26-0ubuntu2) ... Setting up libasan5:amd64 (8-20180110-1ubuntu1) ... Setting up libassuan0:amd64 (2.5.1-1) ... Setting up libitm1:amd64 (8-20180110-1ubuntu1) ... Setting up libubsan1:amd64 (8-20180110-1ubuntu1) ... Setting up libwind0-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up libasan4:amd64 (7.2.0-18ubuntu2) ... Setting up libbinutils:amd64 (2.29.1-12ubuntu1) ... Setting up libcilkrts5:amd64 (7.2.0-18ubuntu2) ... Setting up libcurl3-gnutls:amd64 (7.57.0-1ubuntu1) ... Setting up init (1.51) ... Setting up libasn1-8-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up libubsan0:amd64 (7.2.0-18ubuntu2) ... Setting up libhcrypto4-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up libhx509-5-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up libgcc-7-dev:amd64 (7.2.0-18ubuntu2) ... Setting up cpp-7 (7.2.0-18ubuntu2) ... Setting up libstdc++-7-dev:amd64 (7.2.0-18ubuntu2) ... Setting up perl (5.26.1-3) ... Setting up pinentry-curses (1.0.0-3) ... Setting up libgcc-8-dev:amd64 (8-20180110-1ubuntu1) ... Setting up libkrb5-26-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up gnupg-agent (2.1.15-1ubuntu8) ... Setting up libheimntlm0-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up binutils-x86-64-linux-gnu (2.29.1-12ubuntu1) ... Setting up libstdc++-8-dev:amd64 (8-20180110-1ubuntu1) ... Setting up gnupg (2.1.15-1ubuntu8) ... Setting up libdpkg-perl (1.19.0.4ubuntu1) ... Setting up binutils (2.29.1-12ubuntu1) ... Setting up libgssapi3-heimdal:amd64 (7.5.0+dfsg-1) ... Setting up gcc-7 (7.2.0-18ubuntu2) ... Setting up g++-7 (7.2.0-18ubuntu2) ... Setting up gcc-8 (8-20180110-1ubuntu1) ... Setting up g++-8 (8-20180110-1ubuntu1) ... Setting up dpkg-dev (1.19.0.4ubuntu1) ... 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-14100382 amd64 bionic -c chroot:build-PACKAGEBUILD-14100382 --arch=amd64 --dist=bionic --nolog -A grantlee5_5.1.0-2.dsc Initiating build PACKAGEBUILD-14100382 with 4 jobs across 4 processor cores. Kernel reported to sbuild: 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:59 UTC 2017 x86_64 sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on lgw01-amd64-019.buildd +==============================================================================+ | grantlee5 5.1.0-2 (amd64) 13 Jan 2018 23:20 | +==============================================================================+ Package: grantlee5 Version: 5.1.0-2 Source Version: 5.1.0-2 Distribution: bionic Machine Architecture: amd64 Host Architecture: amd64 Build Architecture: amd64 I: NOTICE: Log filtering will replace 'build/grantlee5-T2eZA5/grantlee5-5.1.0' with '<>' I: NOTICE: Log filtering will replace 'build/grantlee5-T2eZA5' with '<>' I: NOTICE: Log filtering will replace 'home/buildd/build-PACKAGEBUILD-14100382/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-UAWsSP/apt_archive/sbuild-build-depends-core-dummy.deb'. Ign:1 copy:/<>/resolver-UAWsSP/apt_archive ./ InRelease Get:2 copy:/<>/resolver-UAWsSP/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-UAWsSP/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-UAWsSP/apt_archive ./ Sources [214 B] Get:5 copy:/<>/resolver-UAWsSP/apt_archive ./ Packages [527 B] Fetched 2860 B in 0s (111 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-UAWsSP/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 (0 B/s) Selecting previously unselected package sbuild-build-depends-core-dummy. (Reading database ... 13722 files and directories currently installed.) Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_amd64.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-x2Yemi/apt_archive/sbuild-build-depends-grantlee5-dummy.deb'. Ign:1 copy:/<>/resolver-x2Yemi/apt_archive ./ InRelease Get:2 copy:/<>/resolver-x2Yemi/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-x2Yemi/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-x2Yemi/apt_archive ./ Sources [286 B] Get:5 copy:/<>/resolver-x2Yemi/apt_archive ./ Packages [601 B] Fetched 3006 B in 0s (139 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-intel1 libdrm-nouveau2 libdrm-radeon1 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-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libglu1-mesa libglu1-mesa-dev 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 libpciaccess0 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 mesa-common-dev 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 pciutils 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 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-intel1 libdrm-nouveau2 libdrm-radeon1 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-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libglu1-mesa libglu1-mesa-dev 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 libpciaccess0 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 mesa-common-dev 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, 286 newly installed, 1 to remove and 0 not upgraded. Need to get 107 MB of archives. After this operation, 653 MB of additional disk space will be used. Get:1 copy:/<>/resolver-x2Yemi/apt_archive ./ sbuild-build-depends-grantlee5-dummy 0.invalid.0 [928 B] Get:2 http://ftpmaster.internal/ubuntu bionic/main amd64 liblocale-gettext-perl amd64 1.07-3build2 [16.6 kB] Get:3 http://ftpmaster.internal/ubuntu bionic/main amd64 libpython3.6-minimal amd64 3.6.4-2 [529 kB] Get:4 http://ftpmaster.internal/ubuntu bionic/main amd64 libexpat1 amd64 2.2.5-3 [80.2 kB] Get:5 http://ftpmaster.internal/ubuntu bionic/main amd64 python3.6-minimal amd64 3.6.4-2 [1422 kB] Get:6 http://ftpmaster.internal/ubuntu bionic/main amd64 python3-minimal amd64 3.6.3-0ubuntu2 [23.3 kB] Get:7 http://ftpmaster.internal/ubuntu bionic/main amd64 mime-support all 3.60ubuntu1 [30.1 kB] Get:8 http://ftpmaster.internal/ubuntu bionic/main amd64 libmpdec2 amd64 2.4.2-1 [82.6 kB] Get:9 http://ftpmaster.internal/ubuntu bionic/main amd64 libpython3.6-stdlib amd64 3.6.4-2 [1643 kB] Get:10 http://ftpmaster.internal/ubuntu bionic/main amd64 python3.6-2to3 all 3.6.4-2 [13.9 kB] Get:11 http://ftpmaster.internal/ubuntu bionic/main amd64 python3-distutils all 3.6.4~rc1-6 [145 kB] Get:12 http://ftpmaster.internal/ubuntu bionic/main amd64 python3.6 amd64 3.6.4-2 [181 kB] Get:13 http://ftpmaster.internal/ubuntu bionic/main amd64 libpython3-stdlib amd64 3.6.3-0ubuntu2 [6820 B] Get:14 http://ftpmaster.internal/ubuntu bionic/main amd64 dh-python all 2.20170125 [83.7 kB] Get:15 http://ftpmaster.internal/ubuntu bionic/main amd64 python3 amd64 3.6.3-0ubuntu2 [8712 B] Get:16 http://ftpmaster.internal/ubuntu bionic/main amd64 libxau6 amd64 1:1.0.8-1 [8376 B] Get:17 http://ftpmaster.internal/ubuntu bionic/main amd64 libbsd0 amd64 0.8.6-3 [41.7 kB] Get:18 http://ftpmaster.internal/ubuntu bionic/main amd64 libxdmcp6 amd64 1:1.1.2-3 [10.7 kB] Get:19 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb1 amd64 1.12-1ubuntu1 [45.2 kB] Get:20 http://ftpmaster.internal/ubuntu bionic/main amd64 libx11-data all 2:1.6.4-3 [114 kB] Get:21 http://ftpmaster.internal/ubuntu bionic/main amd64 libx11-6 amd64 2:1.6.4-3 [572 kB] Get:22 http://ftpmaster.internal/ubuntu bionic/main amd64 libxext6 amd64 2:1.3.3-1 [29.4 kB] Get:23 http://ftpmaster.internal/ubuntu bionic/main amd64 groff-base amd64 1.22.3-9 [1144 kB] Get:24 http://ftpmaster.internal/ubuntu bionic/main amd64 bsdmainutils amd64 9.0.14ubuntu1 [179 kB] Get:25 http://ftpmaster.internal/ubuntu bionic/main amd64 libpipeline1 amd64 1.5.0-1 [25.3 kB] Get:26 http://ftpmaster.internal/ubuntu bionic/main amd64 man-db amd64 2.7.6.1-4 [898 kB] Get:27 http://ftpmaster.internal/ubuntu bionic/main amd64 cmake-data all 3.9.5-1 [1268 kB] Get:28 http://ftpmaster.internal/ubuntu bionic/main amd64 liblzo2-2 amd64 2.08-1.2 [48.7 kB] Get:29 http://ftpmaster.internal/ubuntu bionic/main amd64 libfreetype6 amd64 2.8-0.2ubuntu2 [333 kB] Get:30 http://ftpmaster.internal/ubuntu bionic/main amd64 libglib2.0-0 amd64 2.54.1-1ubuntu1 [1163 kB] Get:31 http://ftpmaster.internal/ubuntu bionic/main amd64 libgraphite2-3 amd64 1.3.10-8 [77.9 kB] Get:32 http://ftpmaster.internal/ubuntu bionic/main amd64 libharfbuzz0b amd64 1.7.2-1 [232 kB] Get:33 http://ftpmaster.internal/ubuntu bionic/main amd64 libicu-le-hb0 amd64 1.0.3+git161113-4 [14.3 kB] Get:34 http://ftpmaster.internal/ubuntu bionic/main amd64 libicu60 amd64 60.2-1ubuntu1 [8064 kB] Get:35 http://ftpmaster.internal/ubuntu bionic/main amd64 libxml2 amd64 2.9.4+dfsg1-5.2ubuntu1 [668 kB] Get:36 http://ftpmaster.internal/ubuntu bionic/main amd64 libarchive13 amd64 3.2.2-3.1 [289 kB] Get:37 http://ftpmaster.internal/ubuntu bionic/main amd64 libcurl3 amd64 7.57.0-1ubuntu1 [212 kB] Get:38 http://ftpmaster.internal/ubuntu bionic/main amd64 libjsoncpp1 amd64 1.7.4-3 [73.6 kB] Get:39 http://ftpmaster.internal/ubuntu bionic/main amd64 librhash0 amd64 1.3.4-3 [77.0 kB] Get:40 http://ftpmaster.internal/ubuntu bionic/main amd64 libuv1 amd64 1.18.0-3 [64.4 kB] Get:41 http://ftpmaster.internal/ubuntu bionic/main amd64 cmake amd64 3.9.5-1 [3106 kB] Get:42 http://ftpmaster.internal/ubuntu bionic/main amd64 ucf all 3.0036 [52.9 kB] Get:43 http://ftpmaster.internal/ubuntu bionic/main amd64 fonts-dejavu-core all 2.37-1 [1041 kB] Get:44 http://ftpmaster.internal/ubuntu bionic/main amd64 fontconfig-config all 2.12.6-0ubuntu1 [55.5 kB] Get:45 http://ftpmaster.internal/ubuntu bionic/main amd64 libfontconfig1 amd64 2.12.6-0ubuntu1 [136 kB] Get:46 http://ftpmaster.internal/ubuntu bionic/main amd64 fontconfig amd64 2.12.6-0ubuntu1 [169 kB] Get:47 http://ftpmaster.internal/ubuntu bionic/main amd64 libjpeg-turbo8 amd64 1.5.2-0ubuntu5 [110 kB] Get:48 http://ftpmaster.internal/ubuntu bionic/main amd64 libmtdev1 amd64 1.1.5-1ubuntu2 [13.8 kB] Get:49 http://ftpmaster.internal/ubuntu bionic/main amd64 libdouble-conversion1 amd64 2.0.1-4ubuntu1 [33.0 kB] Get:50 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5core5a amd64 5.9.3+dfsg-0ubuntu1 [2034 kB] Get:51 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5script5 amd64 5.9.3+dfsg-0ubuntu1 [729 kB] Get:52 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm-common all 2.4.89-1 [4940 B] Get:53 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm2 amd64 2.4.89-1 [31.1 kB] Get:54 http://ftpmaster.internal/ubuntu bionic/main amd64 libwayland-client0 amd64 1.14.0-1 [22.4 kB] Get:55 http://ftpmaster.internal/ubuntu bionic/main amd64 libwayland-server0 amd64 1.14.0-1 [28.5 kB] Get:56 http://ftpmaster.internal/ubuntu bionic/main amd64 libgbm1 amd64 17.2.4-0ubuntu2 [24.6 kB] Get:57 http://ftpmaster.internal/ubuntu bionic/main amd64 libboost-system1.65.1 amd64 1.65.1+dfsg-0ubuntu4 [10.5 kB] Get:58 http://ftpmaster.internal/ubuntu bionic/main amd64 libcapnp-0.6.1 amd64 0.6.1-1 [657 kB] Get:59 http://ftpmaster.internal/ubuntu bionic/main amd64 libboost-filesystem1.65.1 amd64 1.65.1+dfsg-0ubuntu4 [40.3 kB] Get:60 http://ftpmaster.internal/ubuntu bionic/main amd64 libmircore1 amd64 0.29.0-0ubuntu1 [30.3 kB] Get:61 http://ftpmaster.internal/ubuntu bionic/main amd64 libmircommon7 amd64 0.29.0-0ubuntu1 [73.9 kB] Get:62 http://ftpmaster.internal/ubuntu bionic/main amd64 libprotobuf-lite10 amd64 3.0.0-9ubuntu5 [97.1 kB] Get:63 http://ftpmaster.internal/ubuntu bionic/main amd64 libmirprotobuf3 amd64 0.29.0-0ubuntu1 [131 kB] Get:64 http://ftpmaster.internal/ubuntu bionic/main amd64 xkb-data all 2.19-1.1ubuntu1 [312 kB] Get:65 http://ftpmaster.internal/ubuntu bionic/main amd64 libxkbcommon0 amd64 0.8.0-1 [97.6 kB] Get:66 http://ftpmaster.internal/ubuntu bionic/main amd64 libmirclient9 amd64 0.29.0-0ubuntu1 [199 kB] Get:67 http://ftpmaster.internal/ubuntu bionic/main amd64 libx11-xcb1 amd64 2:1.6.4-3 [9626 B] Get:68 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-dri2-0 amd64 1.12-1ubuntu1 [6838 B] Get:69 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-dri3-0 amd64 1.12-1ubuntu1 [5156 B] Get:70 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-present0 amd64 1.12-1ubuntu1 [5436 B] Get:71 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-sync1 amd64 1.12-1ubuntu1 [8746 B] Get:72 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-xfixes0 amd64 1.12-1ubuntu1 [9292 B] Get:73 http://ftpmaster.internal/ubuntu bionic/main amd64 libxshmfence1 amd64 1.2-1 [5042 B] Get:74 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm-amdgpu1 amd64 2.4.89-1 [18.9 kB] Get:75 http://ftpmaster.internal/ubuntu bionic/main amd64 libpciaccess0 amd64 0.13.4-1ubuntu1 [17.9 kB] Get:76 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm-intel1 amd64 2.4.89-1 [59.8 kB] Get:77 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm-nouveau2 amd64 2.4.89-1 [16.5 kB] Get:78 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm-radeon1 amd64 2.4.89-1 [21.7 kB] Get:79 http://ftpmaster.internal/ubuntu bionic/main amd64 libelf1 amd64 0.170-0.2 [44.4 kB] Get:80 http://ftpmaster.internal/ubuntu bionic/main amd64 libglapi-mesa amd64 17.2.4-0ubuntu2 [22.5 kB] Get:81 http://ftpmaster.internal/ubuntu bionic/main amd64 libedit2 amd64 3.1-20170329-1 [76.9 kB] Get:82 http://ftpmaster.internal/ubuntu bionic/main amd64 libllvm5.0 amd64 1:5.0.1-2 [13.7 MB] Get:83 http://ftpmaster.internal/ubuntu bionic/main amd64 libsensors4 amd64 1:3.4.0-4 [28.8 kB] Get:84 http://ftpmaster.internal/ubuntu bionic/main amd64 libgl1-mesa-dri amd64 17.2.4-0ubuntu2 [5709 kB] Get:85 http://ftpmaster.internal/ubuntu bionic/main amd64 libegl1-mesa amd64 17.2.4-0ubuntu2 [85.3 kB] Get:86 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-glx0 amd64 1.12-1ubuntu1 [22.3 kB] Get:87 http://ftpmaster.internal/ubuntu bionic/main amd64 libxdamage1 amd64 1:1.1.4-3 [6934 B] Get:88 http://ftpmaster.internal/ubuntu bionic/main amd64 libxfixes3 amd64 1:5.0.3-1 [10.8 kB] Get:89 http://ftpmaster.internal/ubuntu bionic/main amd64 libxxf86vm1 amd64 1:1.1.4-1 [10.6 kB] Get:90 http://ftpmaster.internal/ubuntu bionic/main amd64 libgl1-mesa-glx amd64 17.2.4-0ubuntu2 [129 kB] Get:91 http://ftpmaster.internal/ubuntu bionic/main amd64 x11-common all 1:7.7+19ubuntu3 [22.0 kB] Get:92 http://ftpmaster.internal/ubuntu bionic/main amd64 libice6 amd64 2:1.0.9-2 [40.2 kB] Get:93 http://ftpmaster.internal/ubuntu bionic/main amd64 libevdev2 amd64 1.5.7+dfsg-1 [28.8 kB] Get:94 http://ftpmaster.internal/ubuntu bionic/main amd64 libgudev-1.0-0 amd64 1:232-1 [13.3 kB] Get:95 http://ftpmaster.internal/ubuntu bionic/main amd64 libwacom-common all 0.26-1 [34.7 kB] Get:96 http://ftpmaster.internal/ubuntu bionic/main amd64 libwacom2 amd64 0.26-1 [17.1 kB] Get:97 http://ftpmaster.internal/ubuntu bionic/main amd64 libinput-bin amd64 1.9.4-2 [11.0 kB] Get:98 http://ftpmaster.internal/ubuntu bionic/main amd64 libinput10 amd64 1.9.4-2 [84.4 kB] Get:99 http://ftpmaster.internal/ubuntu bionic/main amd64 libjpeg8 amd64 8c-2ubuntu8 [2194 B] Get:100 http://ftpmaster.internal/ubuntu bionic/main amd64 libdbus-1-3 amd64 1.12.2-1ubuntu1 [175 kB] Get:101 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5dbus5 amd64 5.9.3+dfsg-0ubuntu1 [196 kB] Get:102 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5network5 amd64 5.9.3+dfsg-0ubuntu1 [634 kB] Get:103 http://ftpmaster.internal/ubuntu bionic/main amd64 libsm6 amd64 2:1.2.2-1 [15.8 kB] Get:104 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-icccm4 amd64 0.4.1-1ubuntu1 [10.4 kB] Get:105 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-shm0 amd64 1.12-1ubuntu1 [5482 B] Get:106 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-util1 amd64 0.4.0-0ubuntu3 [11.2 kB] Get:107 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-image0 amd64 0.4.0-1build1 [12.3 kB] Get:108 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-keysyms1 amd64 0.4.0-1 [8406 B] Get:109 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-randr0 amd64 1.12-1ubuntu1 [16.0 kB] Get:110 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-render0 amd64 1.12-1ubuntu1 [14.8 kB] Get:111 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-render-util0 amd64 0.3.9-1 [9638 B] Get:112 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-shape0 amd64 1.12-1ubuntu1 [5864 B] Get:113 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-xinerama0 amd64 1.12-1ubuntu1 [5156 B] Get:114 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-xkb1 amd64 1.12-1ubuntu1 [30.2 kB] Get:115 http://ftpmaster.internal/ubuntu bionic/main amd64 libxi6 amd64 2:1.7.9-1 [29.2 kB] Get:116 http://ftpmaster.internal/ubuntu bionic/main amd64 libxkbcommon-x11-0 amd64 0.8.0-1 [13.5 kB] Get:117 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5gui5 amd64 5.9.3+dfsg-0ubuntu1 [2566 kB] Get:118 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5widgets5 amd64 5.9.3+dfsg-0ubuntu1 [2202 kB] Get:119 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5scripttools5 amd64 5.9.3+dfsg-0ubuntu1 [221 kB] Get:120 http://ftpmaster.internal/ubuntu bionic/main amd64 libcap2-bin amd64 1:2.25-1.2 [20.6 kB] Get:121 http://ftpmaster.internal/ubuntu bionic/main amd64 libgstreamer1.0-0 amd64 1.12.4-1 [818 kB] Get:122 http://ftpmaster.internal/ubuntu bionic/main amd64 liborc-0.4-0 amd64 1:0.4.28-1 [137 kB] Get:123 http://ftpmaster.internal/ubuntu bionic/main amd64 iso-codes all 3.77-1 [2345 kB] Get:124 http://ftpmaster.internal/ubuntu bionic/main amd64 libgstreamer-plugins-base1.0-0 amd64 1.12.4-1 [654 kB] Get:125 http://ftpmaster.internal/ubuntu bionic/main amd64 libhyphen0 amd64 2.8.8-5 [26.5 kB] Get:126 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5positioning5 amd64 5.9.3+dfsg-0ubuntu1 [130 kB] Get:127 http://ftpmaster.internal/ubuntu bionic/main amd64 libavahi-common-data amd64 0.7-3ubuntu1 [22.7 kB] Get:128 http://ftpmaster.internal/ubuntu bionic/main amd64 libavahi-common3 amd64 0.7-3ubuntu1 [21.6 kB] Get:129 http://ftpmaster.internal/ubuntu bionic/main amd64 libavahi-client3 amd64 0.7-3ubuntu1 [25.2 kB] Get:130 http://ftpmaster.internal/ubuntu bionic/main amd64 libcups2 amd64 2.2.6-4 [211 kB] Get:131 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5printsupport5 amd64 5.9.3+dfsg-0ubuntu1 [177 kB] Get:132 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5qml5 amd64 5.9.3-0ubuntu1 [1236 kB] Get:133 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5quick5 amd64 5.9.3-0ubuntu1 [1196 kB] Get:134 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5sensors5 amd64 5.9.3-0ubuntu1 [114 kB] Get:135 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5webchannel5 amd64 5.9.3-0ubuntu1 [47.7 kB] Get:136 http://ftpmaster.internal/ubuntu bionic/main amd64 libwebp6 amd64 0.6.0-4 [183 kB] Get:137 http://ftpmaster.internal/ubuntu bionic/main amd64 libxslt1.1 amd64 1.1.29-5 [150 kB] Get:138 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5webkit5 amd64 5.212.0~alpha2-5build4 [11.8 MB] Get:139 http://ftpmaster.internal/ubuntu bionic/main amd64 xorg-sgml-doctools all 1:1.11-1 [12.9 kB] Get:140 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-core-dev all 7.0.31-1 [700 kB] Get:141 http://ftpmaster.internal/ubuntu bionic/main amd64 libxau-dev amd64 1:1.0.8-1 [11.1 kB] Get:142 http://ftpmaster.internal/ubuntu bionic/main amd64 libxdmcp-dev amd64 1:1.1.2-3 [25.1 kB] Get:143 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-input-dev all 2.3.2-1 [118 kB] Get:144 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-kb-dev all 1.0.7-1 [226 kB] Get:145 http://ftpmaster.internal/ubuntu bionic/main amd64 xtrans-dev all 1.3.5-1 [70.5 kB] Get:146 http://ftpmaster.internal/ubuntu bionic/main amd64 libpthread-stubs0-dev amd64 0.3-4 [4068 B] Get:147 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb1-dev amd64 1.12-1ubuntu1 [79.8 kB] Get:148 http://ftpmaster.internal/ubuntu bionic/main amd64 libx11-dev amd64 2:1.6.4-3 [642 kB] Get:149 http://ftpmaster.internal/ubuntu bionic/main amd64 libdrm-dev amd64 2.4.89-1 [237 kB] Get:150 http://ftpmaster.internal/ubuntu bionic/main amd64 mesa-common-dev amd64 17.2.4-0ubuntu2 [513 kB] Get:151 http://ftpmaster.internal/ubuntu bionic/main amd64 libx11-xcb-dev amd64 2:1.6.4-3 [9660 B] Get:152 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-dri3-dev amd64 1.12-1ubuntu1 [5742 B] Get:153 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-render0-dev amd64 1.12-1ubuntu1 [18.3 kB] Get:154 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-randr0-dev amd64 1.12-1ubuntu1 [19.5 kB] Get:155 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-shape0-dev amd64 1.12-1ubuntu1 [7056 B] Get:156 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-xfixes0-dev amd64 1.12-1ubuntu1 [11.6 kB] Get:157 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-sync-dev amd64 1.12-1ubuntu1 [10.5 kB] Get:158 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-present-dev amd64 1.12-1ubuntu1 [6868 B] Get:159 http://ftpmaster.internal/ubuntu bionic/main amd64 libxshmfence-dev amd64 1.2-1 [3676 B] Get:160 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-dri2-0-dev amd64 1.12-1ubuntu1 [8376 B] Get:161 http://ftpmaster.internal/ubuntu bionic/main amd64 libxcb-glx0-dev amd64 1.12-1ubuntu1 [27.5 kB] Get:162 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-xext-dev all 7.3.0-1 [212 kB] Get:163 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-fixes-dev all 1:5.0-2ubuntu2 [14.2 kB] Get:164 http://ftpmaster.internal/ubuntu bionic/main amd64 libxfixes-dev amd64 1:5.0.3-1 [11.0 kB] Get:165 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-damage-dev all 1:1.2.1-2 [8286 B] Get:166 http://ftpmaster.internal/ubuntu bionic/main amd64 libxdamage-dev amd64 1:1.1.4-3 [5028 B] Get:167 http://ftpmaster.internal/ubuntu bionic/main amd64 libxext-dev amd64 2:1.3.3-1 [82.1 kB] Get:168 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-xf86vidmode-dev all 2.3.1-2 [6116 B] Get:169 http://ftpmaster.internal/ubuntu bionic/main amd64 libxxf86vm-dev amd64 1:1.1.4-1 [13.3 kB] Get:170 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-dri2-dev all 2.8-2 [12.6 kB] Get:171 http://ftpmaster.internal/ubuntu bionic/main amd64 x11proto-gl-dev all 1.4.17-1 [17.9 kB] Get:172 http://ftpmaster.internal/ubuntu bionic/main amd64 libgl1-mesa-dev amd64 17.2.4-0ubuntu2 [4508 B] Get:173 http://ftpmaster.internal/ubuntu bionic/main amd64 libgles2-mesa amd64 17.2.4-0ubuntu2 [13.4 kB] Get:174 http://ftpmaster.internal/ubuntu bionic/main amd64 libwayland-egl1-mesa amd64 17.2.4-0ubuntu2 [5840 B] Get:175 http://ftpmaster.internal/ubuntu bionic/main amd64 libwayland-cursor0 amd64 1.14.0-1 [9898 B] Get:176 http://ftpmaster.internal/ubuntu bionic/main amd64 libwayland-bin amd64 1.14.0-1 [18.7 kB] Get:177 http://ftpmaster.internal/ubuntu bionic/main amd64 libwayland-dev amd64 1.14.0-1 [98.1 kB] Get:178 http://ftpmaster.internal/ubuntu bionic/main amd64 libmircore-dev amd64 0.29.0-0ubuntu1 [25.4 kB] Get:179 http://ftpmaster.internal/ubuntu bionic/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-0ubuntu2 [176 kB] Get:180 http://ftpmaster.internal/ubuntu bionic/main amd64 libprotobuf10 amd64 3.0.0-9ubuntu5 [650 kB] Get:181 http://ftpmaster.internal/ubuntu bionic/main amd64 libprotobuf-dev amd64 3.0.0-9ubuntu5 [958 kB] Get:182 http://ftpmaster.internal/ubuntu bionic/main amd64 libxkbcommon-dev amd64 0.8.0-1 [308 kB] Get:183 http://ftpmaster.internal/ubuntu bionic/main amd64 libmircommon-dev amd64 0.29.0-0ubuntu1 [13.9 kB] Get:184 http://ftpmaster.internal/ubuntu bionic/main amd64 libmircookie2 amd64 0.29.0-0ubuntu1 [23.5 kB] Get:185 http://ftpmaster.internal/ubuntu bionic/main amd64 libmircookie-dev amd64 0.29.0-0ubuntu1 [4388 B] Get:186 http://ftpmaster.internal/ubuntu bionic/main amd64 libmirclient-dev amd64 0.29.0-0ubuntu1 [47.8 kB] Get:187 http://ftpmaster.internal/ubuntu bionic/main amd64 libegl1-mesa-dev amd64 17.2.4-0ubuntu2 [19.9 kB] Get:188 http://ftpmaster.internal/ubuntu bionic/main amd64 libgles2-mesa-dev amd64 17.2.4-0ubuntu2 [40.4 kB] Get:189 http://ftpmaster.internal/ubuntu bionic/main amd64 libglu1-mesa amd64 9.0.0-2.1build1 [168 kB] Get:190 http://ftpmaster.internal/ubuntu bionic/main amd64 libglu1-mesa-dev amd64 9.0.0-2.1build1 [206 kB] Get:191 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5concurrent5 amd64 5.9.3+dfsg-0ubuntu1 [29.8 kB] Get:192 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5sql5 amd64 5.9.3+dfsg-0ubuntu1 [115 kB] Get:193 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5test5 amd64 5.9.3+dfsg-0ubuntu1 [98.1 kB] Get:194 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5xml5 amd64 5.9.3+dfsg-0ubuntu1 [99.6 kB] Get:195 http://ftpmaster.internal/ubuntu bionic/main amd64 qt5-qmake-bin amd64 5.9.3+dfsg-0ubuntu1 [939 kB] Get:196 http://ftpmaster.internal/ubuntu bionic/main amd64 qtchooser amd64 64-ga1b6736-5 [24.1 kB] Get:197 http://ftpmaster.internal/ubuntu bionic/main amd64 qt5-qmake amd64 5.9.3+dfsg-0ubuntu1 [179 kB] Get:198 http://ftpmaster.internal/ubuntu bionic/main amd64 qtbase5-dev-tools amd64 5.9.3+dfsg-0ubuntu1 [737 kB] Get:199 http://ftpmaster.internal/ubuntu bionic/main amd64 qtbase5-dev amd64 5.9.3+dfsg-0ubuntu1 [941 kB] Get:200 http://ftpmaster.internal/ubuntu bionic/universe amd64 qtscript5-dev amd64 5.9.3+dfsg-0ubuntu1 [18.6 kB] Get:201 http://ftpmaster.internal/ubuntu bionic/main amd64 libmagic-mgc amd64 1:5.32-1 [184 kB] Get:202 http://ftpmaster.internal/ubuntu bionic/main amd64 libmagic1 amd64 1:5.32-1 [68.4 kB] Get:203 http://ftpmaster.internal/ubuntu bionic/main amd64 file amd64 1:5.32-1 [22.0 kB] Get:204 http://ftpmaster.internal/ubuntu bionic/main amd64 netbase all 5.4 [12.7 kB] Get:205 http://ftpmaster.internal/ubuntu bionic/main amd64 gettext-base amd64 0.19.8.1-4ubuntu2 [49.6 kB] Get:206 http://ftpmaster.internal/ubuntu bionic/main amd64 libxmuu1 amd64 2:1.1.2-2 [9674 B] Get:207 http://ftpmaster.internal/ubuntu bionic/main amd64 xauth amd64 1:1.0.10-1 [24.6 kB] Get:208 http://ftpmaster.internal/ubuntu bionic/main amd64 libsigsegv2 amd64 2.11-1 [13.2 kB] Get:209 http://ftpmaster.internal/ubuntu bionic/main amd64 m4 amd64 1.4.18-1 [197 kB] Get:210 http://ftpmaster.internal/ubuntu bionic/main amd64 autoconf all 2.69-11 [322 kB] Get:211 http://ftpmaster.internal/ubuntu bionic/main amd64 autotools-dev all 20171216.1 [39.7 kB] Get:212 http://ftpmaster.internal/ubuntu bionic/main amd64 automake all 1:1.15.1-3ubuntu1 [509 kB] Get:213 http://ftpmaster.internal/ubuntu bionic/main amd64 autopoint all 0.19.8.1-4ubuntu2 [412 kB] Get:214 http://ftpmaster.internal/ubuntu bionic/universe amd64 cccc amd64 1:3.1.4-9 [178 kB] Get:215 http://ftpmaster.internal/ubuntu bionic/main amd64 libtool all 2.4.6-2 [194 kB] Get:216 http://ftpmaster.internal/ubuntu bionic/main amd64 dh-autoreconf all 15 [15.8 kB] Get:217 http://ftpmaster.internal/ubuntu bionic/main amd64 libarchive-zip-perl all 1.60-1 [83.9 kB] Get:218 http://ftpmaster.internal/ubuntu bionic/main amd64 libfile-stripnondeterminism-perl all 0.040-1 [13.9 kB] Get:219 http://ftpmaster.internal/ubuntu bionic/main amd64 libtimedate-perl all 2.3000-2 [37.5 kB] Get:220 http://ftpmaster.internal/ubuntu bionic/main amd64 dh-strip-nondeterminism all 0.040-1 [5196 B] Get:221 http://ftpmaster.internal/ubuntu bionic/main amd64 libcroco3 amd64 0.6.12-2 [81.3 kB] Get:222 http://ftpmaster.internal/ubuntu bionic/main amd64 gettext amd64 0.19.8.1-4ubuntu2 [1087 kB] Get:223 http://ftpmaster.internal/ubuntu bionic/main amd64 intltool-debian all 0.35.0+20060710.4 [24.9 kB] Get:224 http://ftpmaster.internal/ubuntu bionic/main amd64 po-debconf all 1.0.20 [232 kB] Get:225 http://ftpmaster.internal/ubuntu bionic/main amd64 debhelper all 11ubuntu1 [887 kB] Get:226 http://ftpmaster.internal/ubuntu bionic/main amd64 diffstat amd64 1.61-1build1 [24.1 kB] Get:227 http://ftpmaster.internal/ubuntu bionic/universe amd64 lcov all 1.13-3 [93.1 kB] Get:228 http://ftpmaster.internal/ubuntu bionic/main amd64 libapt-pkg-perl amd64 0.1.33build1 [68.0 kB] Get:229 http://ftpmaster.internal/ubuntu bionic/main amd64 libboost1.65-dev amd64 1.65.1+dfsg-0ubuntu4 [7217 kB] Get:230 http://ftpmaster.internal/ubuntu bionic/main amd64 libboost-dev amd64 1.65.1.0ubuntu1 [3128 B] Get:231 http://ftpmaster.internal/ubuntu bionic/main amd64 libhtml-tagset-perl all 3.20-3 [12.1 kB] Get:232 http://ftpmaster.internal/ubuntu bionic/main amd64 liburi-perl all 1.72-2 [76.6 kB] Get:233 http://ftpmaster.internal/ubuntu bionic/main amd64 libhtml-parser-perl amd64 3.72-3build1 [85.9 kB] Get:234 http://ftpmaster.internal/ubuntu bionic/main amd64 libcgi-pm-perl all 4.38-1 [185 kB] Get:235 http://ftpmaster.internal/ubuntu bionic/main amd64 libsub-name-perl amd64 0.21-1build1 [11.6 kB] Get:236 http://ftpmaster.internal/ubuntu bionic/main amd64 libclass-accessor-perl all 0.51-1 [21.2 kB] Get:237 http://ftpmaster.internal/ubuntu bionic/main amd64 libclone-perl amd64 0.39-1 [10.4 kB] Get:238 http://ftpmaster.internal/ubuntu bionic/main amd64 libdigest-hmac-perl all 1.03+dfsg-1 [12.1 kB] Get:239 http://ftpmaster.internal/ubuntu bionic/main amd64 perl-openssl-defaults amd64 3 [6818 B] Get:240 http://ftpmaster.internal/ubuntu bionic/main amd64 libnet-ssleay-perl amd64 1.82-1 [273 kB] Get:241 http://ftpmaster.internal/ubuntu bionic/main amd64 libio-socket-ssl-perl all 2.052-1 [168 kB] Get:242 http://ftpmaster.internal/ubuntu bionic/main amd64 libnet-smtp-ssl-perl all 1.04-1 [5948 B] Get:243 http://ftpmaster.internal/ubuntu bionic/main amd64 libmailtools-perl all 2.18-1 [74.0 kB] Get:244 http://ftpmaster.internal/ubuntu bionic/main amd64 libsocket6-perl amd64 0.27-1build2 [23.0 kB] Get:245 http://ftpmaster.internal/ubuntu bionic/main amd64 libio-socket-inet6-perl all 2.72-2 [13.8 kB] Get:246 http://ftpmaster.internal/ubuntu bionic/main amd64 libnet-ip-perl all 1.26-1 [31.5 kB] Get:247 http://ftpmaster.internal/ubuntu bionic/main amd64 libnet-dns-perl all 1.10-2 [335 kB] Get:248 http://ftpmaster.internal/ubuntu bionic/main amd64 libnet-domain-tld-perl all 1.75-1 [29.1 kB] Get:249 http://ftpmaster.internal/ubuntu bionic/main amd64 libemail-valid-perl all 1.202-1 [16.3 kB] Get:250 http://ftpmaster.internal/ubuntu bionic/main amd64 libexporter-tiny-perl all 1.000000-2 [34.6 kB] Get:251 http://ftpmaster.internal/ubuntu bionic/main amd64 libipc-system-simple-perl all 1.25-3 [22.8 kB] Get:252 http://ftpmaster.internal/ubuntu bionic/main amd64 libfile-basedir-perl all 0.07-1 [16.9 kB] Get:253 http://ftpmaster.internal/ubuntu bionic/main amd64 libfontenc1 amd64 1:1.1.3-1 [13.9 kB] Get:254 http://ftpmaster.internal/ubuntu bionic/main amd64 libio-pty-perl amd64 1:1.08-1.1build4 [30.1 kB] Get:255 http://ftpmaster.internal/ubuntu bionic/main amd64 libio-string-perl all 1.08-3 [11.1 kB] Get:256 http://ftpmaster.internal/ubuntu bionic/main amd64 libipc-run-perl all 0.96-1 [89.9 kB] Get:257 http://ftpmaster.internal/ubuntu bionic/main amd64 liblist-moreutils-perl amd64 0.416-1build3 [55.5 kB] Get:258 http://ftpmaster.internal/ubuntu bionic/main amd64 libparse-debianchangelog-perl all 1.2.0-12 [49.5 kB] Get:259 http://ftpmaster.internal/ubuntu bionic/main amd64 libpixman-1-0 amd64 0.34.0-2 [229 kB] Get:260 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5designer5 amd64 5.9.3-0ubuntu3 [2760 kB] Get:261 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5designercomponents5 amd64 5.9.3-0ubuntu3 [694 kB] Get:262 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5help5 amd64 5.9.3-0ubuntu3 [134 kB] Get:263 http://ftpmaster.internal/ubuntu bionic/universe amd64 libqt5quickwidgets5 amd64 5.9.3-0ubuntu1 [35.3 kB] Get:264 http://ftpmaster.internal/ubuntu bionic/main amd64 libqt5sql5-sqlite amd64 5.9.3+dfsg-0ubuntu1 [40.1 kB] Get:265 http://ftpmaster.internal/ubuntu bionic/main amd64 libtext-levenshtein-perl all 0.13-1 [9612 B] Get:266 http://ftpmaster.internal/ubuntu bionic/main amd64 libxt6 amd64 1:1.1.5-1 [160 kB] Get:267 http://ftpmaster.internal/ubuntu bionic/main amd64 libxmu6 amd64 2:1.1.2-2 [46.0 kB] Get:268 http://ftpmaster.internal/ubuntu bionic/main amd64 libxpm4 amd64 1:3.5.12-1 [34.0 kB] Get:269 http://ftpmaster.internal/ubuntu bionic/main amd64 libxaw7 amd64 2:1.0.13-1 [173 kB] Get:270 http://ftpmaster.internal/ubuntu bionic/main amd64 libxfont2 amd64 1:2.0.1-4ubuntu1 [91.5 kB] Get:271 http://ftpmaster.internal/ubuntu bionic/main amd64 libxkbfile1 amd64 1:1.0.9-2 [64.6 kB] Get:272 http://ftpmaster.internal/ubuntu bionic/main amd64 libxml-namespacesupport-perl all 1.12-1 [13.2 kB] Get:273 http://ftpmaster.internal/ubuntu bionic/main amd64 libxml-sax-base-perl all 1.09-1 [18.8 kB] Get:274 http://ftpmaster.internal/ubuntu bionic/main amd64 libxml-sax-perl all 0.99+dfsg-2ubuntu1 [64.6 kB] Get:275 http://ftpmaster.internal/ubuntu bionic/main amd64 libxml-libxml-perl amd64 2.0128+dfsg-5 [316 kB] Get:276 http://ftpmaster.internal/ubuntu bionic/main amd64 libxml-simple-perl all 2.24-1 [63.6 kB] Get:277 http://ftpmaster.internal/ubuntu bionic/main amd64 libyaml-libyaml-perl amd64 0.63-2build1 [64.7 kB] Get:278 http://ftpmaster.internal/ubuntu bionic/main amd64 patchutils amd64 0.3.4-2 [71.1 kB] Get:279 http://ftpmaster.internal/ubuntu bionic/main amd64 t1utils amd64 1.41-2 [56.0 kB] Get:280 http://ftpmaster.internal/ubuntu bionic/main amd64 lintian all 2.5.62 [824 kB] Get:281 http://ftpmaster.internal/ubuntu bionic/universe amd64 qttools5-dev-tools amd64 5.9.3-0ubuntu3 [2138 kB] Get:282 http://ftpmaster.internal/ubuntu bionic/universe amd64 qttools5-dev amd64 5.9.3-0ubuntu3 [184 kB] Get:283 http://ftpmaster.internal/ubuntu bionic/main amd64 x11-xkb-utils amd64 7.7+3 [158 kB] Get:284 http://ftpmaster.internal/ubuntu bionic/main amd64 xserver-common all 2:1.19.5-0ubuntu2 [26.9 kB] Get:285 http://ftpmaster.internal/ubuntu bionic/universe amd64 xvfb amd64 2:1.19.5-0ubuntu2 [783 kB] Get:286 http://ftpmaster.internal/ubuntu bionic/universe amd64 pkg-kde-tools all 0.15.28ubuntu1 [95.6 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 107 MB in 5s (19.8 MB/s) (Reading database ... 13722 files and directories currently installed.) Removing pkg-create-dbgsym (0.73) ... Selecting previously unselected package liblocale-gettext-perl. (Reading database ... 13713 files and directories currently installed.) Preparing to unpack .../00-liblocale-gettext-perl_1.07-3build2_amd64.deb ... Unpacking liblocale-gettext-perl (1.07-3build2) ... Selecting previously unselected package libpython3.6-minimal:amd64. Preparing to unpack .../01-libpython3.6-minimal_3.6.4-2_amd64.deb ... Unpacking libpython3.6-minimal:amd64 (3.6.4-2) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../02-libexpat1_2.2.5-3_amd64.deb ... Unpacking libexpat1:amd64 (2.2.5-3) ... Selecting previously unselected package python3.6-minimal. Preparing to unpack .../03-python3.6-minimal_3.6.4-2_amd64.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_amd64.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:amd64. Preparing to unpack .../06-libmpdec2_2.4.2-1_amd64.deb ... Unpacking libmpdec2:amd64 (2.4.2-1) ... Selecting previously unselected package libpython3.6-stdlib:amd64. Preparing to unpack .../07-libpython3.6-stdlib_3.6.4-2_amd64.deb ... Unpacking libpython3.6-stdlib:amd64 (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_amd64.deb ... Unpacking python3.6 (3.6.4-2) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../11-libpython3-stdlib_3.6.3-0ubuntu2_amd64.deb ... Unpacking libpython3-stdlib:amd64 (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:amd64 (3.6.4-2) ... Setting up libexpat1:amd64 (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 ... 14570 files and directories currently installed.) Preparing to unpack .../000-python3_3.6.3-0ubuntu2_amd64.deb ... Unpacking python3 (3.6.3-0ubuntu2) ... Selecting previously unselected package libxau6:amd64. Preparing to unpack .../001-libxau6_1%3a1.0.8-1_amd64.deb ... Unpacking libxau6:amd64 (1:1.0.8-1) ... Selecting previously unselected package libbsd0:amd64. Preparing to unpack .../002-libbsd0_0.8.6-3_amd64.deb ... Unpacking libbsd0:amd64 (0.8.6-3) ... Selecting previously unselected package libxdmcp6:amd64. Preparing to unpack .../003-libxdmcp6_1%3a1.1.2-3_amd64.deb ... Unpacking libxdmcp6:amd64 (1:1.1.2-3) ... Selecting previously unselected package libxcb1:amd64. Preparing to unpack .../004-libxcb1_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb1:amd64 (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:amd64. Preparing to unpack .../006-libx11-6_2%3a1.6.4-3_amd64.deb ... Unpacking libx11-6:amd64 (2:1.6.4-3) ... Selecting previously unselected package libxext6:amd64. Preparing to unpack .../007-libxext6_2%3a1.3.3-1_amd64.deb ... Unpacking libxext6:amd64 (2:1.3.3-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../008-groff-base_1.22.3-9_amd64.deb ... Unpacking groff-base (1.22.3-9) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../009-bsdmainutils_9.0.14ubuntu1_amd64.deb ... Unpacking bsdmainutils (9.0.14ubuntu1) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../010-libpipeline1_1.5.0-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.0-1) ... Selecting previously unselected package man-db. Preparing to unpack .../011-man-db_2.7.6.1-4_amd64.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:amd64. Preparing to unpack .../013-liblzo2-2_2.08-1.2_amd64.deb ... Unpacking liblzo2-2:amd64 (2.08-1.2) ... Selecting previously unselected package libfreetype6:amd64. Preparing to unpack .../014-libfreetype6_2.8-0.2ubuntu2_amd64.deb ... Unpacking libfreetype6:amd64 (2.8-0.2ubuntu2) ... Selecting previously unselected package libglib2.0-0:amd64. Preparing to unpack .../015-libglib2.0-0_2.54.1-1ubuntu1_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.54.1-1ubuntu1) ... Selecting previously unselected package libgraphite2-3:amd64. Preparing to unpack .../016-libgraphite2-3_1.3.10-8_amd64.deb ... Unpacking libgraphite2-3:amd64 (1.3.10-8) ... Selecting previously unselected package libharfbuzz0b:amd64. Preparing to unpack .../017-libharfbuzz0b_1.7.2-1_amd64.deb ... Unpacking libharfbuzz0b:amd64 (1.7.2-1) ... Selecting previously unselected package libicu-le-hb0:amd64. Preparing to unpack .../018-libicu-le-hb0_1.0.3+git161113-4_amd64.deb ... Unpacking libicu-le-hb0:amd64 (1.0.3+git161113-4) ... Selecting previously unselected package libicu60:amd64. Preparing to unpack .../019-libicu60_60.2-1ubuntu1_amd64.deb ... Unpacking libicu60:amd64 (60.2-1ubuntu1) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../020-libxml2_2.9.4+dfsg1-5.2ubuntu1_amd64.deb ... Unpacking libxml2:amd64 (2.9.4+dfsg1-5.2ubuntu1) ... Selecting previously unselected package libarchive13:amd64. Preparing to unpack .../021-libarchive13_3.2.2-3.1_amd64.deb ... Unpacking libarchive13:amd64 (3.2.2-3.1) ... Selecting previously unselected package libcurl3:amd64. Preparing to unpack .../022-libcurl3_7.57.0-1ubuntu1_amd64.deb ... Unpacking libcurl3:amd64 (7.57.0-1ubuntu1) ... Selecting previously unselected package libjsoncpp1:amd64. Preparing to unpack .../023-libjsoncpp1_1.7.4-3_amd64.deb ... Unpacking libjsoncpp1:amd64 (1.7.4-3) ... Selecting previously unselected package librhash0. Preparing to unpack .../024-librhash0_1.3.4-3_amd64.deb ... Unpacking librhash0 (1.3.4-3) ... Selecting previously unselected package libuv1:amd64. Preparing to unpack .../025-libuv1_1.18.0-3_amd64.deb ... Unpacking libuv1:amd64 (1.18.0-3) ... Selecting previously unselected package cmake. Preparing to unpack .../026-cmake_3.9.5-1_amd64.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:amd64. Preparing to unpack .../030-libfontconfig1_2.12.6-0ubuntu1_amd64.deb ... Unpacking libfontconfig1:amd64 (2.12.6-0ubuntu1) ... Selecting previously unselected package fontconfig. Preparing to unpack .../031-fontconfig_2.12.6-0ubuntu1_amd64.deb ... Unpacking fontconfig (2.12.6-0ubuntu1) ... Selecting previously unselected package libjpeg-turbo8:amd64. Preparing to unpack .../032-libjpeg-turbo8_1.5.2-0ubuntu5_amd64.deb ... Unpacking libjpeg-turbo8:amd64 (1.5.2-0ubuntu5) ... Selecting previously unselected package libmtdev1:amd64. Preparing to unpack .../033-libmtdev1_1.1.5-1ubuntu2_amd64.deb ... Unpacking libmtdev1:amd64 (1.1.5-1ubuntu2) ... Selecting previously unselected package libdouble-conversion1:amd64. Preparing to unpack .../034-libdouble-conversion1_2.0.1-4ubuntu1_amd64.deb ... Unpacking libdouble-conversion1:amd64 (2.0.1-4ubuntu1) ... Selecting previously unselected package libqt5core5a:amd64. Preparing to unpack .../035-libqt5core5a_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5core5a:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5script5:amd64. Preparing to unpack .../036-libqt5script5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5script5:amd64 (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:amd64. Preparing to unpack .../038-libdrm2_2.4.89-1_amd64.deb ... Unpacking libdrm2:amd64 (2.4.89-1) ... Selecting previously unselected package libwayland-client0:amd64. Preparing to unpack .../039-libwayland-client0_1.14.0-1_amd64.deb ... Unpacking libwayland-client0:amd64 (1.14.0-1) ... Selecting previously unselected package libwayland-server0:amd64. Preparing to unpack .../040-libwayland-server0_1.14.0-1_amd64.deb ... Unpacking libwayland-server0:amd64 (1.14.0-1) ... Selecting previously unselected package libgbm1:amd64. Preparing to unpack .../041-libgbm1_17.2.4-0ubuntu2_amd64.deb ... Unpacking libgbm1:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libboost-system1.65.1:amd64. Preparing to unpack .../042-libboost-system1.65.1_1.65.1+dfsg-0ubuntu4_amd64.deb ... Unpacking libboost-system1.65.1:amd64 (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_amd64.deb ... Unpacking libcapnp-0.6.1 (0.6.1-1) ... Selecting previously unselected package libboost-filesystem1.65.1:amd64. Preparing to unpack .../044-libboost-filesystem1.65.1_1.65.1+dfsg-0ubuntu4_amd64.deb ... Unpacking libboost-filesystem1.65.1:amd64 (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libmircore1:amd64. Preparing to unpack .../045-libmircore1_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmircore1:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircommon7:amd64. Preparing to unpack .../046-libmircommon7_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmircommon7:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libprotobuf-lite10:amd64. Preparing to unpack .../047-libprotobuf-lite10_3.0.0-9ubuntu5_amd64.deb ... Unpacking libprotobuf-lite10:amd64 (3.0.0-9ubuntu5) ... Selecting previously unselected package libmirprotobuf3:amd64. Preparing to unpack .../048-libmirprotobuf3_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmirprotobuf3:amd64 (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:amd64. Preparing to unpack .../050-libxkbcommon0_0.8.0-1_amd64.deb ... Unpacking libxkbcommon0:amd64 (0.8.0-1) ... Selecting previously unselected package libmirclient9:amd64. Preparing to unpack .../051-libmirclient9_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmirclient9:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libx11-xcb1:amd64. Preparing to unpack .../052-libx11-xcb1_2%3a1.6.4-3_amd64.deb ... Unpacking libx11-xcb1:amd64 (2:1.6.4-3) ... Selecting previously unselected package libxcb-dri2-0:amd64. Preparing to unpack .../053-libxcb-dri2-0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-dri2-0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-dri3-0:amd64. Preparing to unpack .../054-libxcb-dri3-0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-dri3-0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-present0:amd64. Preparing to unpack .../055-libxcb-present0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-present0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-sync1:amd64. Preparing to unpack .../056-libxcb-sync1_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-sync1:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0:amd64. Preparing to unpack .../057-libxcb-xfixes0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-xfixes0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxshmfence1:amd64. Preparing to unpack .../058-libxshmfence1_1.2-1_amd64.deb ... Unpacking libxshmfence1:amd64 (1.2-1) ... Selecting previously unselected package libdrm-amdgpu1:amd64. Preparing to unpack .../059-libdrm-amdgpu1_2.4.89-1_amd64.deb ... Unpacking libdrm-amdgpu1:amd64 (2.4.89-1) ... Selecting previously unselected package libpciaccess0:amd64. Preparing to unpack .../060-libpciaccess0_0.13.4-1ubuntu1_amd64.deb ... Unpacking libpciaccess0:amd64 (0.13.4-1ubuntu1) ... Selecting previously unselected package libdrm-intel1:amd64. Preparing to unpack .../061-libdrm-intel1_2.4.89-1_amd64.deb ... Unpacking libdrm-intel1:amd64 (2.4.89-1) ... Selecting previously unselected package libdrm-nouveau2:amd64. Preparing to unpack .../062-libdrm-nouveau2_2.4.89-1_amd64.deb ... Unpacking libdrm-nouveau2:amd64 (2.4.89-1) ... Selecting previously unselected package libdrm-radeon1:amd64. Preparing to unpack .../063-libdrm-radeon1_2.4.89-1_amd64.deb ... Unpacking libdrm-radeon1:amd64 (2.4.89-1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../064-libelf1_0.170-0.2_amd64.deb ... Unpacking libelf1:amd64 (0.170-0.2) ... Selecting previously unselected package libglapi-mesa:amd64. Preparing to unpack .../065-libglapi-mesa_17.2.4-0ubuntu2_amd64.deb ... Unpacking libglapi-mesa:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libedit2:amd64. Preparing to unpack .../066-libedit2_3.1-20170329-1_amd64.deb ... Unpacking libedit2:amd64 (3.1-20170329-1) ... Selecting previously unselected package libllvm5.0:amd64. Preparing to unpack .../067-libllvm5.0_1%3a5.0.1-2_amd64.deb ... Unpacking libllvm5.0:amd64 (1:5.0.1-2) ... Selecting previously unselected package libsensors4:amd64. Preparing to unpack .../068-libsensors4_1%3a3.4.0-4_amd64.deb ... Unpacking libsensors4:amd64 (1:3.4.0-4) ... Selecting previously unselected package libgl1-mesa-dri:amd64. Preparing to unpack .../069-libgl1-mesa-dri_17.2.4-0ubuntu2_amd64.deb ... Unpacking libgl1-mesa-dri:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libegl1-mesa:amd64. Preparing to unpack .../070-libegl1-mesa_17.2.4-0ubuntu2_amd64.deb ... Unpacking libegl1-mesa:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libxcb-glx0:amd64. Preparing to unpack .../071-libxcb-glx0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-glx0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxdamage1:amd64. Preparing to unpack .../072-libxdamage1_1%3a1.1.4-3_amd64.deb ... Unpacking libxdamage1:amd64 (1:1.1.4-3) ... Selecting previously unselected package libxfixes3:amd64. Preparing to unpack .../073-libxfixes3_1%3a5.0.3-1_amd64.deb ... Unpacking libxfixes3:amd64 (1:5.0.3-1) ... Selecting previously unselected package libxxf86vm1:amd64. Preparing to unpack .../074-libxxf86vm1_1%3a1.1.4-1_amd64.deb ... Unpacking libxxf86vm1:amd64 (1:1.1.4-1) ... Selecting previously unselected package libgl1-mesa-glx:amd64. Preparing to unpack .../075-libgl1-mesa-glx_17.2.4-0ubuntu2_amd64.deb ... Unpacking libgl1-mesa-glx:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package x11-common. Preparing to unpack .../076-x11-common_1%3a7.7+19ubuntu3_all.deb ... Unpacking x11-common (1:7.7+19ubuntu3) ... Selecting previously unselected package libice6:amd64. Preparing to unpack .../077-libice6_2%3a1.0.9-2_amd64.deb ... Unpacking libice6:amd64 (2:1.0.9-2) ... Selecting previously unselected package libevdev2:amd64. Preparing to unpack .../078-libevdev2_1.5.7+dfsg-1_amd64.deb ... Unpacking libevdev2:amd64 (1.5.7+dfsg-1) ... Selecting previously unselected package libgudev-1.0-0:amd64. Preparing to unpack .../079-libgudev-1.0-0_1%3a232-1_amd64.deb ... Unpacking libgudev-1.0-0:amd64 (1:232-1) ... Selecting previously unselected package libwacom-common. Preparing to unpack .../080-libwacom-common_0.26-1_all.deb ... Unpacking libwacom-common (0.26-1) ... Selecting previously unselected package libwacom2:amd64. Preparing to unpack .../081-libwacom2_0.26-1_amd64.deb ... Unpacking libwacom2:amd64 (0.26-1) ... Selecting previously unselected package libinput-bin. Preparing to unpack .../082-libinput-bin_1.9.4-2_amd64.deb ... Unpacking libinput-bin (1.9.4-2) ... Selecting previously unselected package libinput10:amd64. Preparing to unpack .../083-libinput10_1.9.4-2_amd64.deb ... Unpacking libinput10:amd64 (1.9.4-2) ... Selecting previously unselected package libjpeg8:amd64. Preparing to unpack .../084-libjpeg8_8c-2ubuntu8_amd64.deb ... Unpacking libjpeg8:amd64 (8c-2ubuntu8) ... Selecting previously unselected package libdbus-1-3:amd64. Preparing to unpack .../085-libdbus-1-3_1.12.2-1ubuntu1_amd64.deb ... Unpacking libdbus-1-3:amd64 (1.12.2-1ubuntu1) ... Selecting previously unselected package libqt5dbus5:amd64. Preparing to unpack .../086-libqt5dbus5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5dbus5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5network5:amd64. Preparing to unpack .../087-libqt5network5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5network5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libsm6:amd64. Preparing to unpack .../088-libsm6_2%3a1.2.2-1_amd64.deb ... Unpacking libsm6:amd64 (2:1.2.2-1) ... Selecting previously unselected package libxcb-icccm4:amd64. Preparing to unpack .../089-libxcb-icccm4_0.4.1-1ubuntu1_amd64.deb ... Unpacking libxcb-icccm4:amd64 (0.4.1-1ubuntu1) ... Selecting previously unselected package libxcb-shm0:amd64. Preparing to unpack .../090-libxcb-shm0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-shm0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-util1:amd64. Preparing to unpack .../091-libxcb-util1_0.4.0-0ubuntu3_amd64.deb ... Unpacking libxcb-util1:amd64 (0.4.0-0ubuntu3) ... Selecting previously unselected package libxcb-image0:amd64. Preparing to unpack .../092-libxcb-image0_0.4.0-1build1_amd64.deb ... Unpacking libxcb-image0:amd64 (0.4.0-1build1) ... Selecting previously unselected package libxcb-keysyms1:amd64. Preparing to unpack .../093-libxcb-keysyms1_0.4.0-1_amd64.deb ... Unpacking libxcb-keysyms1:amd64 (0.4.0-1) ... Selecting previously unselected package libxcb-randr0:amd64. Preparing to unpack .../094-libxcb-randr0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-randr0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render0:amd64. Preparing to unpack .../095-libxcb-render0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-render0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render-util0:amd64. Preparing to unpack .../096-libxcb-render-util0_0.3.9-1_amd64.deb ... Unpacking libxcb-render-util0:amd64 (0.3.9-1) ... Selecting previously unselected package libxcb-shape0:amd64. Preparing to unpack .../097-libxcb-shape0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-shape0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xinerama0:amd64. Preparing to unpack .../098-libxcb-xinerama0_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-xinerama0:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xkb1:amd64. Preparing to unpack .../099-libxcb-xkb1_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-xkb1:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxi6:amd64. Preparing to unpack .../100-libxi6_2%3a1.7.9-1_amd64.deb ... Unpacking libxi6:amd64 (2:1.7.9-1) ... Selecting previously unselected package libxkbcommon-x11-0:amd64. Preparing to unpack .../101-libxkbcommon-x11-0_0.8.0-1_amd64.deb ... Unpacking libxkbcommon-x11-0:amd64 (0.8.0-1) ... Selecting previously unselected package libqt5gui5:amd64. Preparing to unpack .../102-libqt5gui5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5gui5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5widgets5:amd64. Preparing to unpack .../103-libqt5widgets5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5widgets5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5scripttools5:amd64. Preparing to unpack .../104-libqt5scripttools5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5scripttools5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libcap2-bin. Preparing to unpack .../105-libcap2-bin_1%3a2.25-1.2_amd64.deb ... Unpacking libcap2-bin (1:2.25-1.2) ... Selecting previously unselected package libgstreamer1.0-0:amd64. Preparing to unpack .../106-libgstreamer1.0-0_1.12.4-1_amd64.deb ... Unpacking libgstreamer1.0-0:amd64 (1.12.4-1) ... Selecting previously unselected package liborc-0.4-0:amd64. Preparing to unpack .../107-liborc-0.4-0_1%3a0.4.28-1_amd64.deb ... Unpacking liborc-0.4-0:amd64 (1:0.4.28-1) ... Selecting previously unselected package iso-codes. Preparing to unpack .../108-iso-codes_3.77-1_all.deb ... Unpacking iso-codes (3.77-1) ... Selecting previously unselected package libgstreamer-plugins-base1.0-0:amd64. Preparing to unpack .../109-libgstreamer-plugins-base1.0-0_1.12.4-1_amd64.deb ... Unpacking libgstreamer-plugins-base1.0-0:amd64 (1.12.4-1) ... Selecting previously unselected package libhyphen0:amd64. Preparing to unpack .../110-libhyphen0_2.8.8-5_amd64.deb ... Unpacking libhyphen0:amd64 (2.8.8-5) ... Selecting previously unselected package libqt5positioning5:amd64. Preparing to unpack .../111-libqt5positioning5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5positioning5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libavahi-common-data:amd64. Preparing to unpack .../112-libavahi-common-data_0.7-3ubuntu1_amd64.deb ... Unpacking libavahi-common-data:amd64 (0.7-3ubuntu1) ... Selecting previously unselected package libavahi-common3:amd64. Preparing to unpack .../113-libavahi-common3_0.7-3ubuntu1_amd64.deb ... Unpacking libavahi-common3:amd64 (0.7-3ubuntu1) ... Selecting previously unselected package libavahi-client3:amd64. Preparing to unpack .../114-libavahi-client3_0.7-3ubuntu1_amd64.deb ... Unpacking libavahi-client3:amd64 (0.7-3ubuntu1) ... Selecting previously unselected package libcups2:amd64. Preparing to unpack .../115-libcups2_2.2.6-4_amd64.deb ... Unpacking libcups2:amd64 (2.2.6-4) ... Selecting previously unselected package libqt5printsupport5:amd64. Preparing to unpack .../116-libqt5printsupport5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5printsupport5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5qml5:amd64. Preparing to unpack .../117-libqt5qml5_5.9.3-0ubuntu1_amd64.deb ... Unpacking libqt5qml5:amd64 (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5quick5:amd64. Preparing to unpack .../118-libqt5quick5_5.9.3-0ubuntu1_amd64.deb ... Unpacking libqt5quick5:amd64 (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5sensors5:amd64. Preparing to unpack .../119-libqt5sensors5_5.9.3-0ubuntu1_amd64.deb ... Unpacking libqt5sensors5:amd64 (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5webchannel5:amd64. Preparing to unpack .../120-libqt5webchannel5_5.9.3-0ubuntu1_amd64.deb ... Unpacking libqt5webchannel5:amd64 (5.9.3-0ubuntu1) ... Selecting previously unselected package libwebp6:amd64. Preparing to unpack .../121-libwebp6_0.6.0-4_amd64.deb ... Unpacking libwebp6:amd64 (0.6.0-4) ... Selecting previously unselected package libxslt1.1:amd64. Preparing to unpack .../122-libxslt1.1_1.1.29-5_amd64.deb ... Unpacking libxslt1.1:amd64 (1.1.29-5) ... Selecting previously unselected package libqt5webkit5:amd64. Preparing to unpack .../123-libqt5webkit5_5.212.0~alpha2-5build4_amd64.deb ... Unpacking libqt5webkit5:amd64 (5.212.0~alpha2-5build4) ... Selecting previously unselected package xorg-sgml-doctools. Preparing to unpack .../124-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 .../125-x11proto-core-dev_7.0.31-1_all.deb ... Unpacking x11proto-core-dev (7.0.31-1) ... Selecting previously unselected package libxau-dev:amd64. Preparing to unpack .../126-libxau-dev_1%3a1.0.8-1_amd64.deb ... Unpacking libxau-dev:amd64 (1:1.0.8-1) ... Selecting previously unselected package libxdmcp-dev:amd64. Preparing to unpack .../127-libxdmcp-dev_1%3a1.1.2-3_amd64.deb ... Unpacking libxdmcp-dev:amd64 (1:1.1.2-3) ... Selecting previously unselected package x11proto-input-dev. Preparing to unpack .../128-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 .../129-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 .../130-xtrans-dev_1.3.5-1_all.deb ... Unpacking xtrans-dev (1.3.5-1) ... Selecting previously unselected package libpthread-stubs0-dev:amd64. Preparing to unpack .../131-libpthread-stubs0-dev_0.3-4_amd64.deb ... Unpacking libpthread-stubs0-dev:amd64 (0.3-4) ... Selecting previously unselected package libxcb1-dev:amd64. Preparing to unpack .../132-libxcb1-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb1-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libx11-dev:amd64. Preparing to unpack .../133-libx11-dev_2%3a1.6.4-3_amd64.deb ... Unpacking libx11-dev:amd64 (2:1.6.4-3) ... Selecting previously unselected package libdrm-dev:amd64. Preparing to unpack .../134-libdrm-dev_2.4.89-1_amd64.deb ... Unpacking libdrm-dev:amd64 (2.4.89-1) ... Selecting previously unselected package mesa-common-dev:amd64. Preparing to unpack .../135-mesa-common-dev_17.2.4-0ubuntu2_amd64.deb ... Unpacking mesa-common-dev:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libx11-xcb-dev:amd64. Preparing to unpack .../136-libx11-xcb-dev_2%3a1.6.4-3_amd64.deb ... Unpacking libx11-xcb-dev:amd64 (2:1.6.4-3) ... Selecting previously unselected package libxcb-dri3-dev:amd64. Preparing to unpack .../137-libxcb-dri3-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-dri3-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-render0-dev:amd64. Preparing to unpack .../138-libxcb-render0-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-render0-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-randr0-dev:amd64. Preparing to unpack .../139-libxcb-randr0-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-randr0-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-shape0-dev:amd64. Preparing to unpack .../140-libxcb-shape0-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-shape0-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0-dev:amd64. Preparing to unpack .../141-libxcb-xfixes0-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-xfixes0-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-sync-dev:amd64. Preparing to unpack .../142-libxcb-sync-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-sync-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-present-dev:amd64. Preparing to unpack .../143-libxcb-present-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-present-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxshmfence-dev:amd64. Preparing to unpack .../144-libxshmfence-dev_1.2-1_amd64.deb ... Unpacking libxshmfence-dev:amd64 (1.2-1) ... Selecting previously unselected package libxcb-dri2-0-dev:amd64. Preparing to unpack .../145-libxcb-dri2-0-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-dri2-0-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package libxcb-glx0-dev:amd64. Preparing to unpack .../146-libxcb-glx0-dev_1.12-1ubuntu1_amd64.deb ... Unpacking libxcb-glx0-dev:amd64 (1.12-1ubuntu1) ... Selecting previously unselected package x11proto-xext-dev. Preparing to unpack .../147-x11proto-xext-dev_7.3.0-1_all.deb ... Unpacking x11proto-xext-dev (7.3.0-1) ... Selecting previously unselected package x11proto-fixes-dev. Preparing to unpack .../148-x11proto-fixes-dev_1%3a5.0-2ubuntu2_all.deb ... Unpacking x11proto-fixes-dev (1:5.0-2ubuntu2) ... Selecting previously unselected package libxfixes-dev:amd64. Preparing to unpack .../149-libxfixes-dev_1%3a5.0.3-1_amd64.deb ... Unpacking libxfixes-dev:amd64 (1:5.0.3-1) ... Selecting previously unselected package x11proto-damage-dev. Preparing to unpack .../150-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:amd64. Preparing to unpack .../151-libxdamage-dev_1%3a1.1.4-3_amd64.deb ... Unpacking libxdamage-dev:amd64 (1:1.1.4-3) ... Selecting previously unselected package libxext-dev:amd64. Preparing to unpack .../152-libxext-dev_2%3a1.3.3-1_amd64.deb ... Unpacking libxext-dev:amd64 (2:1.3.3-1) ... Selecting previously unselected package x11proto-xf86vidmode-dev. Preparing to unpack .../153-x11proto-xf86vidmode-dev_2.3.1-2_all.deb ... Unpacking x11proto-xf86vidmode-dev (2.3.1-2) ... Selecting previously unselected package libxxf86vm-dev:amd64. Preparing to unpack .../154-libxxf86vm-dev_1%3a1.1.4-1_amd64.deb ... Unpacking libxxf86vm-dev:amd64 (1:1.1.4-1) ... Selecting previously unselected package x11proto-dri2-dev. Preparing to unpack .../155-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 .../156-x11proto-gl-dev_1.4.17-1_all.deb ... Unpacking x11proto-gl-dev (1.4.17-1) ... Selecting previously unselected package libgl1-mesa-dev:amd64. Preparing to unpack .../157-libgl1-mesa-dev_17.2.4-0ubuntu2_amd64.deb ... Unpacking libgl1-mesa-dev:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libgles2-mesa:amd64. Preparing to unpack .../158-libgles2-mesa_17.2.4-0ubuntu2_amd64.deb ... Unpacking libgles2-mesa:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libwayland-egl1-mesa:amd64. Preparing to unpack .../159-libwayland-egl1-mesa_17.2.4-0ubuntu2_amd64.deb ... Unpacking libwayland-egl1-mesa:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libwayland-cursor0:amd64. Preparing to unpack .../160-libwayland-cursor0_1.14.0-1_amd64.deb ... Unpacking libwayland-cursor0:amd64 (1.14.0-1) ... Selecting previously unselected package libwayland-bin. Preparing to unpack .../161-libwayland-bin_1.14.0-1_amd64.deb ... Unpacking libwayland-bin (1.14.0-1) ... Selecting previously unselected package libwayland-dev:amd64. Preparing to unpack .../162-libwayland-dev_1.14.0-1_amd64.deb ... Unpacking libwayland-dev:amd64 (1.14.0-1) ... Selecting previously unselected package libmircore-dev:amd64. Preparing to unpack .../163-libmircore-dev_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmircore-dev:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package zlib1g-dev:amd64. Preparing to unpack .../164-zlib1g-dev_1%3a1.2.11.dfsg-0ubuntu2_amd64.deb ... Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-0ubuntu2) ... Selecting previously unselected package libprotobuf10:amd64. Preparing to unpack .../165-libprotobuf10_3.0.0-9ubuntu5_amd64.deb ... Unpacking libprotobuf10:amd64 (3.0.0-9ubuntu5) ... Selecting previously unselected package libprotobuf-dev:amd64. Preparing to unpack .../166-libprotobuf-dev_3.0.0-9ubuntu5_amd64.deb ... Unpacking libprotobuf-dev:amd64 (3.0.0-9ubuntu5) ... Selecting previously unselected package libxkbcommon-dev. Preparing to unpack .../167-libxkbcommon-dev_0.8.0-1_amd64.deb ... Unpacking libxkbcommon-dev (0.8.0-1) ... Selecting previously unselected package libmircommon-dev:amd64. Preparing to unpack .../168-libmircommon-dev_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmircommon-dev:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircookie2:amd64. Preparing to unpack .../169-libmircookie2_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmircookie2:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libmircookie-dev:amd64. Preparing to unpack .../170-libmircookie-dev_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmircookie-dev:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libmirclient-dev:amd64. Preparing to unpack .../171-libmirclient-dev_0.29.0-0ubuntu1_amd64.deb ... Unpacking libmirclient-dev:amd64 (0.29.0-0ubuntu1) ... Selecting previously unselected package libegl1-mesa-dev:amd64. Preparing to unpack .../172-libegl1-mesa-dev_17.2.4-0ubuntu2_amd64.deb ... Unpacking libegl1-mesa-dev:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libgles2-mesa-dev:amd64. Preparing to unpack .../173-libgles2-mesa-dev_17.2.4-0ubuntu2_amd64.deb ... Unpacking libgles2-mesa-dev:amd64 (17.2.4-0ubuntu2) ... Selecting previously unselected package libglu1-mesa:amd64. Preparing to unpack .../174-libglu1-mesa_9.0.0-2.1build1_amd64.deb ... Unpacking libglu1-mesa:amd64 (9.0.0-2.1build1) ... Selecting previously unselected package libglu1-mesa-dev:amd64. Preparing to unpack .../175-libglu1-mesa-dev_9.0.0-2.1build1_amd64.deb ... Unpacking libglu1-mesa-dev:amd64 (9.0.0-2.1build1) ... Selecting previously unselected package libqt5concurrent5:amd64. Preparing to unpack .../176-libqt5concurrent5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5concurrent5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5sql5:amd64. Preparing to unpack .../177-libqt5sql5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5sql5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5test5:amd64. Preparing to unpack .../178-libqt5test5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5test5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libqt5xml5:amd64. Preparing to unpack .../179-libqt5xml5_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5xml5:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qt5-qmake-bin. Preparing to unpack .../180-qt5-qmake-bin_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking qt5-qmake-bin (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtchooser. Preparing to unpack .../181-qtchooser_64-ga1b6736-5_amd64.deb ... Unpacking qtchooser (64-ga1b6736-5) ... Selecting previously unselected package qt5-qmake:amd64. Preparing to unpack .../182-qt5-qmake_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking qt5-qmake:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtbase5-dev-tools. Preparing to unpack .../183-qtbase5-dev-tools_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking qtbase5-dev-tools (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtbase5-dev:amd64. Preparing to unpack .../184-qtbase5-dev_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking qtbase5-dev:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package qtscript5-dev:amd64. Preparing to unpack .../185-qtscript5-dev_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking qtscript5-dev:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../186-libmagic-mgc_1%3a5.32-1_amd64.deb ... Unpacking libmagic-mgc (1:5.32-1) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../187-libmagic1_1%3a5.32-1_amd64.deb ... Unpacking libmagic1:amd64 (1:5.32-1) ... Selecting previously unselected package file. Preparing to unpack .../188-file_1%3a5.32-1_amd64.deb ... Unpacking file (1:5.32-1) ... Selecting previously unselected package netbase. Preparing to unpack .../189-netbase_5.4_all.deb ... Unpacking netbase (5.4) ... Selecting previously unselected package gettext-base. Preparing to unpack .../190-gettext-base_0.19.8.1-4ubuntu2_amd64.deb ... Unpacking gettext-base (0.19.8.1-4ubuntu2) ... Selecting previously unselected package libxmuu1:amd64. Preparing to unpack .../191-libxmuu1_2%3a1.1.2-2_amd64.deb ... Unpacking libxmuu1:amd64 (2:1.1.2-2) ... Selecting previously unselected package xauth. Preparing to unpack .../192-xauth_1%3a1.0.10-1_amd64.deb ... Unpacking xauth (1:1.0.10-1) ... Selecting previously unselected package libsigsegv2:amd64. Preparing to unpack .../193-libsigsegv2_2.11-1_amd64.deb ... Unpacking libsigsegv2:amd64 (2.11-1) ... Selecting previously unselected package m4. Preparing to unpack .../194-m4_1.4.18-1_amd64.deb ... Unpacking m4 (1.4.18-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../195-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../196-autotools-dev_20171216.1_all.deb ... Unpacking autotools-dev (20171216.1) ... Selecting previously unselected package automake. Preparing to unpack .../197-automake_1%3a1.15.1-3ubuntu1_all.deb ... Unpacking automake (1:1.15.1-3ubuntu1) ... Selecting previously unselected package autopoint. Preparing to unpack .../198-autopoint_0.19.8.1-4ubuntu2_all.deb ... Unpacking autopoint (0.19.8.1-4ubuntu2) ... Selecting previously unselected package cccc. Preparing to unpack .../199-cccc_1%3a3.1.4-9_amd64.deb ... Unpacking cccc (1:3.1.4-9) ... Selecting previously unselected package libtool. Preparing to unpack .../200-libtool_2.4.6-2_all.deb ... Unpacking libtool (2.4.6-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../201-dh-autoreconf_15_all.deb ... Unpacking dh-autoreconf (15) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../202-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 .../203-libfile-stripnondeterminism-perl_0.040-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (0.040-1) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../204-libtimedate-perl_2.3000-2_all.deb ... Unpacking libtimedate-perl (2.3000-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../205-dh-strip-nondeterminism_0.040-1_all.deb ... Unpacking dh-strip-nondeterminism (0.040-1) ... Selecting previously unselected package libcroco3:amd64. Preparing to unpack .../206-libcroco3_0.6.12-2_amd64.deb ... Unpacking libcroco3:amd64 (0.6.12-2) ... Selecting previously unselected package gettext. Preparing to unpack .../207-gettext_0.19.8.1-4ubuntu2_amd64.deb ... Unpacking gettext (0.19.8.1-4ubuntu2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../208-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 .../209-po-debconf_1.0.20_all.deb ... Unpacking po-debconf (1.0.20) ... Selecting previously unselected package debhelper. Preparing to unpack .../210-debhelper_11ubuntu1_all.deb ... Unpacking debhelper (11ubuntu1) ... Selecting previously unselected package diffstat. Preparing to unpack .../211-diffstat_1.61-1build1_amd64.deb ... Unpacking diffstat (1.61-1build1) ... Selecting previously unselected package lcov. Preparing to unpack .../212-lcov_1.13-3_all.deb ... Unpacking lcov (1.13-3) ... Selecting previously unselected package libapt-pkg-perl. Preparing to unpack .../213-libapt-pkg-perl_0.1.33build1_amd64.deb ... Unpacking libapt-pkg-perl (0.1.33build1) ... Selecting previously unselected package libboost1.65-dev:amd64. Preparing to unpack .../214-libboost1.65-dev_1.65.1+dfsg-0ubuntu4_amd64.deb ... Unpacking libboost1.65-dev:amd64 (1.65.1+dfsg-0ubuntu4) ... Selecting previously unselected package libboost-dev:amd64. Preparing to unpack .../215-libboost-dev_1.65.1.0ubuntu1_amd64.deb ... Unpacking libboost-dev:amd64 (1.65.1.0ubuntu1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../216-libhtml-tagset-perl_3.20-3_all.deb ... Unpacking libhtml-tagset-perl (3.20-3) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../217-liburi-perl_1.72-2_all.deb ... Unpacking liburi-perl (1.72-2) ... Selecting previously unselected package libhtml-parser-perl. Preparing to unpack .../218-libhtml-parser-perl_3.72-3build1_amd64.deb ... Unpacking libhtml-parser-perl (3.72-3build1) ... Selecting previously unselected package libcgi-pm-perl. Preparing to unpack .../219-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 .../220-libsub-name-perl_0.21-1build1_amd64.deb ... Unpacking libsub-name-perl (0.21-1build1) ... Selecting previously unselected package libclass-accessor-perl. Preparing to unpack .../221-libclass-accessor-perl_0.51-1_all.deb ... Unpacking libclass-accessor-perl (0.51-1) ... Selecting previously unselected package libclone-perl. Preparing to unpack .../222-libclone-perl_0.39-1_amd64.deb ... Unpacking libclone-perl (0.39-1) ... Selecting previously unselected package libdigest-hmac-perl. Preparing to unpack .../223-libdigest-hmac-perl_1.03+dfsg-1_all.deb ... Unpacking libdigest-hmac-perl (1.03+dfsg-1) ... Selecting previously unselected package perl-openssl-defaults:amd64. Preparing to unpack .../224-perl-openssl-defaults_3_amd64.deb ... Unpacking perl-openssl-defaults:amd64 (3) ... Selecting previously unselected package libnet-ssleay-perl. Preparing to unpack .../225-libnet-ssleay-perl_1.82-1_amd64.deb ... Unpacking libnet-ssleay-perl (1.82-1) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../226-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 .../227-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 .../228-libmailtools-perl_2.18-1_all.deb ... Unpacking libmailtools-perl (2.18-1) ... Selecting previously unselected package libsocket6-perl. Preparing to unpack .../229-libsocket6-perl_0.27-1build2_amd64.deb ... Unpacking libsocket6-perl (0.27-1build2) ... Selecting previously unselected package libio-socket-inet6-perl. Preparing to unpack .../230-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 .../231-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 .../232-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 .../233-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 .../234-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 .../235-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 .../236-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 .../237-libfile-basedir-perl_0.07-1_all.deb ... Unpacking libfile-basedir-perl (0.07-1) ... Selecting previously unselected package libfontenc1:amd64. Preparing to unpack .../238-libfontenc1_1%3a1.1.3-1_amd64.deb ... Unpacking libfontenc1:amd64 (1:1.1.3-1) ... Selecting previously unselected package libio-pty-perl. Preparing to unpack .../239-libio-pty-perl_1%3a1.08-1.1build4_amd64.deb ... Unpacking libio-pty-perl (1:1.08-1.1build4) ... Selecting previously unselected package libio-string-perl. Preparing to unpack .../240-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 .../241-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 .../242-liblist-moreutils-perl_0.416-1build3_amd64.deb ... Unpacking liblist-moreutils-perl (0.416-1build3) ... Selecting previously unselected package libparse-debianchangelog-perl. Preparing to unpack .../243-libparse-debianchangelog-perl_1.2.0-12_all.deb ... Unpacking libparse-debianchangelog-perl (1.2.0-12) ... Selecting previously unselected package libpixman-1-0:amd64. Preparing to unpack .../244-libpixman-1-0_0.34.0-2_amd64.deb ... Unpacking libpixman-1-0:amd64 (0.34.0-2) ... Selecting previously unselected package libqt5designer5:amd64. Preparing to unpack .../245-libqt5designer5_5.9.3-0ubuntu3_amd64.deb ... Unpacking libqt5designer5:amd64 (5.9.3-0ubuntu3) ... Selecting previously unselected package libqt5designercomponents5:amd64. Preparing to unpack .../246-libqt5designercomponents5_5.9.3-0ubuntu3_amd64.deb ... Unpacking libqt5designercomponents5:amd64 (5.9.3-0ubuntu3) ... Selecting previously unselected package libqt5help5:amd64. Preparing to unpack .../247-libqt5help5_5.9.3-0ubuntu3_amd64.deb ... Unpacking libqt5help5:amd64 (5.9.3-0ubuntu3) ... Selecting previously unselected package libqt5quickwidgets5:amd64. Preparing to unpack .../248-libqt5quickwidgets5_5.9.3-0ubuntu1_amd64.deb ... Unpacking libqt5quickwidgets5:amd64 (5.9.3-0ubuntu1) ... Selecting previously unselected package libqt5sql5-sqlite:amd64. Preparing to unpack .../249-libqt5sql5-sqlite_5.9.3+dfsg-0ubuntu1_amd64.deb ... Unpacking libqt5sql5-sqlite:amd64 (5.9.3+dfsg-0ubuntu1) ... Selecting previously unselected package libtext-levenshtein-perl. Preparing to unpack .../250-libtext-levenshtein-perl_0.13-1_all.deb ... Unpacking libtext-levenshtein-perl (0.13-1) ... Selecting previously unselected package libxt6:amd64. Preparing to unpack .../251-libxt6_1%3a1.1.5-1_amd64.deb ... Unpacking libxt6:amd64 (1:1.1.5-1) ... Selecting previously unselected package libxmu6:amd64. Preparing to unpack .../252-libxmu6_2%3a1.1.2-2_amd64.deb ... Unpacking libxmu6:amd64 (2:1.1.2-2) ... Selecting previously unselected package libxpm4:amd64. Preparing to unpack .../253-libxpm4_1%3a3.5.12-1_amd64.deb ... Unpacking libxpm4:amd64 (1:3.5.12-1) ... Selecting previously unselected package libxaw7:amd64. Preparing to unpack .../254-libxaw7_2%3a1.0.13-1_amd64.deb ... Unpacking libxaw7:amd64 (2:1.0.13-1) ... Selecting previously unselected package libxfont2:amd64. Preparing to unpack .../255-libxfont2_1%3a2.0.1-4ubuntu1_amd64.deb ... Unpacking libxfont2:amd64 (1:2.0.1-4ubuntu1) ... Selecting previously unselected package libxkbfile1:amd64. Preparing to unpack .../256-libxkbfile1_1%3a1.0.9-2_amd64.deb ... Unpacking libxkbfile1:amd64 (1:1.0.9-2) ... Selecting previously unselected package libxml-namespacesupport-perl. Preparing to unpack .../257-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 .../258-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 .../259-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 .../260-libxml-libxml-perl_2.0128+dfsg-5_amd64.deb ... Unpacking libxml-libxml-perl (2.0128+dfsg-5) ... Selecting previously unselected package libxml-simple-perl. Preparing to unpack .../261-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 .../262-libyaml-libyaml-perl_0.63-2build1_amd64.deb ... Unpacking libyaml-libyaml-perl (0.63-2build1) ... Selecting previously unselected package patchutils. Preparing to unpack .../263-patchutils_0.3.4-2_amd64.deb ... Unpacking patchutils (0.3.4-2) ... Selecting previously unselected package t1utils. Preparing to unpack .../264-t1utils_1.41-2_amd64.deb ... Unpacking t1utils (1.41-2) ... Selecting previously unselected package lintian. Preparing to unpack .../265-lintian_2.5.62_all.deb ... Unpacking lintian (2.5.62) ... Selecting previously unselected package qttools5-dev-tools. Preparing to unpack .../266-qttools5-dev-tools_5.9.3-0ubuntu3_amd64.deb ... Unpacking qttools5-dev-tools (5.9.3-0ubuntu3) ... Selecting previously unselected package qttools5-dev:amd64. Preparing to unpack .../267-qttools5-dev_5.9.3-0ubuntu3_amd64.deb ... Unpacking qttools5-dev:amd64 (5.9.3-0ubuntu3) ... Selecting previously unselected package x11-xkb-utils. Preparing to unpack .../268-x11-xkb-utils_7.7+3_amd64.deb ... Unpacking x11-xkb-utils (7.7+3) ... Selecting previously unselected package xserver-common. Preparing to unpack .../269-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 .../270-xvfb_2%3a1.19.5-0ubuntu2_amd64.deb ... Unpacking xvfb (2:1.19.5-0ubuntu2) ... Selecting previously unselected package pkg-kde-tools. Preparing to unpack .../271-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 .../272-sbuild-build-depends-grantlee5-dummy_0.invalid.0_amd64.deb ... Unpacking sbuild-build-depends-grantlee5-dummy (0.invalid.0) ... Setting up libhtml-tagset-perl (3.20-3) ... Setting up libedit2:amd64 (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:amd64 (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:amd64 (0.29.0-0ubuntu1) ... Setting up libevdev2:amd64 (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:amd64 (2.11-1) ... Setting up libpthread-stubs0-dev:amd64 (0.3-4) ... Setting up libcurl3:amd64 (7.57.0-1ubuntu1) ... Setting up fonts-dejavu-core (2.37-1) ... Setting up libuv1:amd64 (1.18.0-3) ... Setting up libcap2-bin (1:2.25-1.2) ... Setting up perl-openssl-defaults:amd64 (3) ... Setting up libipc-system-simple-perl (1.25-3) ... Setting up libfile-basedir-perl (0.07-1) ... Setting up libelf1:amd64 (0.170-0.2) ... Setting up groff-base (1.22.3-9) ... Setting up libglib2.0-0:amd64 (2.54.1-1ubuntu1) ... No schema files found: doing nothing. Setting up libxshmfence1:amd64 (1.2-1) ... Setting up xorg-sgml-doctools (1:1.11-1) ... Setting up libexporter-tiny-perl (1.000000-2) ... Setting up libwayland-client0:amd64 (1.14.0-1) ... Setting up xkb-data (2.19-1.1ubuntu1) ... Setting up qtchooser (64-ga1b6736-5) ... Setting up libllvm5.0:amd64 (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:amd64 (1.5.2-0ubuntu5) ... Setting up libpipeline1:amd64 (1.5.0-1) ... Setting up x11proto-kb-dev (1.0.7-1) ... Setting up libglapi-mesa:amd64 (17.2.4-0ubuntu2) ... Setting up m4 (1.4.18-1) ... Setting up libbsd0:amd64 (0.8.6-3) ... Setting up ucf (3.0036) ... Setting up libfreetype6:amd64 (2.8-0.2ubuntu2) ... Setting up libmagic-mgc (1:5.32-1) ... Setting up libmagic1:amd64 (1:5.32-1) ... Setting up libdrm-common (2.4.89-1) ... Setting up libgraphite2-3:amd64 (1.3.10-8) ... Setting up librhash0 (1.3.4-3) ... Setting up libboost-system1.65.1:amd64 (1.65.1+dfsg-0ubuntu4) ... Setting up libprotobuf10:amd64 (3.0.0-9ubuntu5) ... Setting up libxml-sax-base-perl (1.09-1) ... Setting up libhyphen0:amd64 (2.8.8-5) ... Setting up libmircookie2:amd64 (0.29.0-0ubuntu1) ... Setting up libx11-xcb1:amd64 (2:1.6.4-3) ... Setting up libpixman-1-0:amd64 (0.34.0-2) ... Setting up xtrans-dev (1.3.5-1) ... Setting up qt5-qmake:amd64 (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:amd64 (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:amd64 (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 libpciaccess0:amd64 (0.13.4-1ubuntu1) ... Setting up libsensors4:amd64 (1:3.4.0-4) ... Setting up libxkbcommon0:amd64 (0.8.0-1) ... Setting up libgudev-1.0-0:amd64 (1:232-1) ... Setting up liborc-0.4-0:amd64 (1:0.4.28-1) ... Setting up libxdmcp6:amd64 (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:amd64 (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:amd64 (3.0.0-9ubuntu5) ... Setting up libyaml-libyaml-perl (0.63-2build1) ... Setting up libboost1.65-dev:amd64 (1.65.1+dfsg-0ubuntu4) ... Setting up libgles2-mesa:amd64 (17.2.4-0ubuntu2) ... Setting up libwayland-cursor0:amd64 (1.14.0-1) ... Setting up libx11-data (2:1.6.4-3) ... Setting up diffstat (1.61-1build1) ... Setting up libxau6:amd64 (1:1.0.8-1) ... Setting up autopoint (0.19.8.1-4ubuntu2) ... Setting up libmpdec2:amd64 (2.4.2-1) ... Setting up libclass-accessor-perl (0.51-1) ... Setting up libdbus-1-3:amd64 (1.12.2-1ubuntu1) ... Setting up liblzo2-2:amd64 (2.08-1.2) ... Setting up libavahi-common-data:amd64 (0.7-3ubuntu1) ... Setting up libwayland-server0:amd64 (1.14.0-1) ... Setting up netbase (5.4) ... Setting up libwebp6:amd64 (0.6.0-4) ... Setting up zlib1g-dev:amd64 (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:amd64 (8c-2ubuntu8) ... Setting up libjsoncpp1:amd64 (1.7.4-3) ... Setting up liblist-moreutils-perl (0.416-1build3) ... Setting up libpython3.6-stdlib:amd64 (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:amd64 (1.12.4-1) ... Setcap worked! gst-ptp-helper is not suid! Setting up x11proto-core-dev (7.0.31-1) ... Setting up libwacom2:amd64 (0.26-1) ... Setting up libio-socket-inet6-perl (2.72-2) ... Setting up libxshmfence-dev:amd64 (1.2-1) ... Setting up libnet-ssleay-perl (1.82-1) ... Setting up libmirprotobuf3:amd64 (0.29.0-0ubuntu1) ... Setting up libboost-filesystem1.65.1:amd64 (1.65.1+dfsg-0ubuntu4) ... Setting up libprotobuf-dev:amd64 (3.0.0-9ubuntu5) ... Setting up libxfont2:amd64 (1:2.0.1-4ubuntu1) ... Setting up libharfbuzz0b:amd64 (1.7.2-1) ... Setting up libxau-dev:amd64 (1:1.0.8-1) ... Setting up autoconf (2.69-11) ... Setting up libmircookie-dev:amd64 (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:amd64 (2.4.89-1) ... Setting up libdrm-intel1:amd64 (2.4.89-1) ... Setting up libxdmcp-dev:amd64 (1:1.1.2-3) ... 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:amd64 (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:amd64 (0.29.0-0ubuntu1) ... Setting up libavahi-common3:amd64 (0.7-3ubuntu1) ... Setting up libdrm-radeon1:amd64 (2.4.89-1) ... Setting up libboost-dev:amd64 (1.65.1.0ubuntu1) ... Setting up libdrm-nouveau2:amd64 (2.4.89-1) ... Setting up libxcb1:amd64 (1.12-1ubuntu1) ... Setting up x11proto-input-dev (2.3.2-1) ... Setting up libxcb-xkb1:amd64 (1.12-1ubuntu1) ... Setting up libtool (2.4.6-2) ... Setting up libxcb-xinerama0:amd64 (1.12-1ubuntu1) ... Setting up libpython3-stdlib:amd64 (3.6.3-0ubuntu2) ... Setting up libxcb-present0:amd64 (1.12-1ubuntu1) ... Setting up libgstreamer-plugins-base1.0-0:amd64 (1.12.4-1) ... Setting up libfontconfig1:amd64 (2.12.6-0ubuntu1) ... Setting up libxcb-dri2-0:amd64 (1.12-1ubuntu1) ... Setting up libsm6:amd64 (2:1.2.2-1) ... Setting up libxcb-dri3-0:amd64 (1.12-1ubuntu1) ... Setting up libxcb-glx0:amd64 (1.12-1ubuntu1) ... Setting up libxcb-randr0:amd64 (1.12-1ubuntu1) ... Setting up libxcb-xfixes0:amd64 (1.12-1ubuntu1) ... Setting up libxcb-icccm4:amd64 (0.4.1-1ubuntu1) ... Setting up libxcb-render0:amd64 (1.12-1ubuntu1) ... Setting up libnet-smtp-ssl-perl (1.04-1) ... Setting up libdrm-amdgpu1:amd64 (2.4.89-1) ... Setting up libdrm-dev:amd64 (2.4.89-1) ... Setting up libgbm1:amd64 (17.2.4-0ubuntu2) ... Setting up libx11-6:amd64 (2:1.6.4-3) ... Setting up libinput10:amd64 (1.9.4-2) ... Setting up libgl1-mesa-dri:amd64 (17.2.4-0ubuntu2) ... Setting up libmirclient9:amd64 (0.29.0-0ubuntu1) ... Setting up libxcb-util1:amd64 (0.4.0-0ubuntu3) ... Setting up libxkbcommon-x11-0:amd64 (0.8.0-1) ... Setting up libxmuu1:amd64 (2:1.1.2-2) ... Setting up libxcb-sync1:amd64 (1.12-1ubuntu1) ... Setting up x11proto-xext-dev (7.3.0-1) ... Setting up libmircommon-dev:amd64 (0.29.0-0ubuntu1) ... Setting up libxcb-shm0:amd64 (1.12-1ubuntu1) ... Setting up libxpm4:amd64 (1:3.5.12-1) ... Setting up libxt6:amd64 (1:1.1.5-1) ... Setting up libxcb-shape0:amd64 (1.12-1ubuntu1) ... Setting up libxcb1-dev:amd64 (1.12-1ubuntu1) ... Setting up libxcb-glx0-dev:amd64 (1.12-1ubuntu1) ... Setting up libavahi-client3:amd64 (0.7-3ubuntu1) ... Setting up libxcb-keysyms1:amd64 (0.4.0-1) ... Setting up libx11-dev:amd64 (2:1.6.4-3) ... Setting up libxcb-sync-dev:amd64 (1.12-1ubuntu1) ... Setting up fontconfig (2.12.6-0ubuntu1) ... Regenerating fonts cache... done. Setting up libcups2:amd64 (2.2.6-4) ... Setting up libegl1-mesa:amd64 (17.2.4-0ubuntu2) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in auto mode Setting up libxkbfile1:amd64 (1:1.0.9-2) ... Setting up libx11-xcb-dev:amd64 (2:1.6.4-3) ... Setting up libxcb-render-util0:amd64 (0.3.9-1) ... Setting up libmailtools-perl (2.18-1) ... Setting up libemail-valid-perl (1.202-1) ... Setting up libxdamage1:amd64 (1:1.1.4-3) ... Setting up libxcb-image0:amd64 (0.4.0-1build1) ... Setting up mesa-common-dev:amd64 (17.2.4-0ubuntu2) ... Setting up libxext6:amd64 (2:1.3.3-1) ... Setting up libxfixes3:amd64 (1:5.0.3-1) ... Setting up x11proto-fixes-dev (1:5.0-2ubuntu2) ... Setting up libmirclient-dev:amd64 (0.29.0-0ubuntu1) ... Setting up libxmu6:amd64 (2:1.1.2-2) ... Setting up xauth (1:1.0.10-1) ... Setting up libxcb-dri2-0-dev:amd64 (1.12-1ubuntu1) ... Setting up libxcb-render0-dev:amd64 (1.12-1ubuntu1) ... Setting up x11proto-damage-dev (1:1.2.1-2) ... Setting up libxcb-dri3-dev:amd64 (1.12-1ubuntu1) ... Setting up libxext-dev:amd64 (2:1.3.3-1) ... Setting up libwayland-egl1-mesa:amd64 (17.2.4-0ubuntu2) ... Setting up libxcb-shape0-dev:amd64 (1.12-1ubuntu1) ... Setting up libxxf86vm1:amd64 (1:1.1.4-1) ... Setting up libxxf86vm-dev:amd64 (1:1.1.4-1) ... Setting up libxfixes-dev:amd64 (1:5.0.3-1) ... Setting up libxi6:amd64 (2:1.7.9-1) ... Setting up libxaw7:amd64 (2:1.0.13-1) ... Setting up libxcb-randr0-dev:amd64 (1.12-1ubuntu1) ... Setting up x11-xkb-utils (7.7+3) ... Setting up libxcb-xfixes0-dev:amd64 (1.12-1ubuntu1) ... Setting up libxdamage-dev:amd64 (1:1.1.4-3) ... Setting up libgl1-mesa-glx:amd64 (17.2.4-0ubuntu2) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode Setting up libglu1-mesa:amd64 (9.0.0-2.1build1) ... Setting up libxcb-present-dev:amd64 (1.12-1ubuntu1) ... Setting up xserver-common (2:1.19.5-0ubuntu2) ... Setting up xvfb (2:1.19.5-0ubuntu2) ... Setting up libgl1-mesa-dev:amd64 (17.2.4-0ubuntu2) ... Setting up libglu1-mesa-dev:amd64 (9.0.0-2.1build1) ... Setting up python3.6 (3.6.4-2) ... Setting up python3 (3.6.3-0ubuntu2) ... Setting up libicu-le-hb0:amd64 (1.0.3+git161113-4) ... Setting up python3.6-2to3 (3.6.4-2) ... python3.6: can't get files for byte-compilation Setting up dh-python (2.20170125) ... Setting up python3-distutils (3.6.4~rc1-6) ... Setting up libicu60:amd64 (60.2-1ubuntu1) ... Setting up libxml2:amd64 (2.9.4+dfsg1-5.2ubuntu1) ... Setting up libcroco3:amd64 (0.6.12-2) ... Setting up libxslt1.1:amd64 (1.1.29-5) ... 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 libqt5core5a:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libwayland-bin (1.14.0-1) ... Setting up libqt5script5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5dbus5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5network5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up gettext (0.19.8.1-4ubuntu2) ... Setting up libarchive13:amd64 (3.2.2-3.1) ... Setting up libqt5test5:amd64 (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:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5positioning5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5gui5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5sql5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up lintian (2.5.62) ... Setting up libwayland-dev:amd64 (1.14.0-1) ... Setting up cmake (3.9.5-1) ... Setting up libqt5concurrent5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up pkg-kde-tools (0.15.28ubuntu1) ... Setting up libqt5qml5:amd64 (5.9.3-0ubuntu1) ... Setting up libqt5quick5:amd64 (5.9.3-0ubuntu1) ... Setting up qtbase5-dev-tools (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5sensors5:amd64 (5.9.3-0ubuntu1) ... Setting up libqt5widgets5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up po-debconf (1.0.20) ... Setting up libqt5printsupport5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5help5:amd64 (5.9.3-0ubuntu3) ... Setting up libqt5sql5-sqlite:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libqt5scripttools5:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up libegl1-mesa-dev:amd64 (17.2.4-0ubuntu2) ... Setting up libqt5webchannel5:amd64 (5.9.3-0ubuntu1) ... Setting up libqt5designer5:amd64 (5.9.3-0ubuntu3) ... Setting up debhelper (11ubuntu1) ... Setting up libqt5quickwidgets5:amd64 (5.9.3-0ubuntu1) ... Setting up dh-autoreconf (15) ... Setting up libqt5webkit5:amd64 (5.212.0~alpha2-5build4) ... Setting up libqt5designercomponents5:amd64 (5.9.3-0ubuntu3) ... Setting up libgles2-mesa-dev:amd64 (17.2.4-0ubuntu2) ... Setting up dh-strip-nondeterminism (0.040-1) ... Setting up qttools5-dev-tools (5.9.3-0ubuntu3) ... Setting up qtbase5-dev:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up qttools5-dev:amd64 (5.9.3-0ubuntu3) ... Setting up qtscript5-dev:amd64 (5.9.3+dfsg-0ubuntu1) ... Setting up sbuild-build-depends-grantlee5-dummy (0.invalid.0) ... (Reading database ... 41060 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 amd64 (x86_64) 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-common_2.29.1-12ubuntu1 binutils-x86-64-linux-gnu_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-intel1_2.4.89-1 libdrm-nouveau2_2.4.89-1 libdrm-radeon1_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-dev_17.2.4-0ubuntu2 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 libglu1-mesa_9.0.0-2.1build1 libglu1-mesa-dev_9.0.0-2.1build1 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 libitm1_8-20180110-1ubuntu1 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 liblsan0_8-20180110-1ubuntu1 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 libmpx2_8-20180110-1ubuntu1 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 libpciaccess0_0.13.4-1ubuntu1 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 libquadmath0_8-20180110-1ubuntu1 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 libtsan0_8-20180110-1ubuntu1 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 mesa-common-dev_17.2.4-0ubuntu2 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-14100382 SCHROOT_CHROOT_NAME=build-PACKAGEBUILD-14100382 SCHROOT_COMMAND=env SCHROOT_GID=2501 SCHROOT_GROUP=buildd SCHROOT_SESSION_ID=build-PACKAGEBUILD-14100382 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 amd64 fakeroot debian/rules clean dh clean --parallel --with pkgkde_symbolshelper dh_auto_clean -O--parallel dh_clean -O--parallel debian/rules build dh build --parallel --with pkgkde_symbolshelper dh_update_autotools_config -O--parallel debian/rules override_dh_auto_configure make[1]: Entering directory '/<>' dh_auto_configure -- -DBUILD_TESTS=ON -DLIB_SUFFIX="/x86_64-linux-gnu" cd obj-x86_64-linux-gnu && 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=/x86_64-linux-gnu -- 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-x86_64-linux-gnu make[1]: Leaving directory '/<>' dh_auto_build -O--parallel cd obj-x86_64-linux-gnu && make -j4 make[1]: Entering directory '/<>/obj-x86_64-linux-gnu' /usr/bin/cmake -H/<> -B/<>/obj-x86_64-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /<>/obj-x86_64-linux-gnu/CMakeFiles /<>/obj-x86_64-linux-gnu/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/<>/obj-x86_64-linux-gnu' 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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/lib /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/lib /<>/obj-x86_64-linux-gnu/templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/template_test_builtins_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target main_app_autogen Scanning dependencies of target Grantlee_Templates_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir/build make -f templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/build.make templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir/build Scanning dependencies of target template_test_builtins_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/template_test_builtins_autogen.dir/build.make templates/tests/CMakeFiles/template_test_builtins_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' Scanning dependencies of target myplugin_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir/build [ 1%] Generating test_de_DE.qm, test_fr_FR.qm cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/lib/qt5/bin/lrelease /<>/templates/tests/test_fr_FR.ts -qm /<>/obj-x86_64-linux-gnu/templates/tests/test_fr_FR.qm make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 1%] Automatic MOC for target main_app cd /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/CMakeFiles/main_app_autogen.dir None [ 2%] Automatic MOC for target Grantlee_Templates cd /<>/obj-x86_64-linux-gnu/templates/lib && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/lib/CMakeFiles/Grantlee_Templates_autogen.dir None Updating '/<>/obj-x86_64-linux-gnu/templates/tests/test_fr_FR.qm'... Generated 17 translation(s) (17 finished and 0 unfinished) cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/lib/qt5/bin/lrelease /<>/templates/tests/test_de_DE.ts -qm /<>/obj-x86_64-linux-gnu/templates/tests/test_de_DE.qm Updating '/<>/obj-x86_64-linux-gnu/templates/tests/test_de_DE.qm'... Generated 12 translation(s) (12 finished and 0 unfinished) Ignored 5 untranslated source text(s) [ 3%] Automatic MOC for target myplugin cd /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/CMakeFiles/myplugin_autogen.dir None [ 4%] Generating qrc_testresource.cpp cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/lib/qt5/bin/rcc -root / --name testresource --output /<>/obj-x86_64-linux-gnu/templates/tests/qrc_testresource.cpp /<>/obj-x86_64-linux-gnu/templates/tests/testresource.qrc [ 4%] Automatic MOC for target template_test_builtins cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/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 Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_myobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 4%] Built target main_app_autogen [ 4%] Built target myplugin_autogen make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/depend 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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/lib /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/lib /<>/obj-x86_64-linux-gnu/textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/tests /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target Grantlee_TextDocument_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir/build Scanning dependencies of target textdocument_test_builtins_autogen make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_coverageobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir/build make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 5%] Automatic MOC for target Grantlee_TextDocument [ 5%] Built target template_test_builtins_autogen [ 6%] Automatic MOC for target textdocument_test_builtins cd /<>/obj-x86_64-linux-gnu/textdocument/lib && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/textdocument/lib/CMakeFiles/Grantlee_TextDocument_autogen.dir None make -f templates/tests/CMakeFiles/template_test_builtins.dir/build.make templates/tests/CMakeFiles/template_test_builtins.dir/depend cd /<>/obj-x86_64-linux-gnu/textdocument/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/textdocument_test_builtins_autogen.dir None make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/template_test_builtins.dir/DependInfo.cmake --color= Generating MOC predefs moc_predefs.h Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/CMakeFiles/main_app.dir/DependInfo.cmake --color= Scanning dependencies of target template_test_builtins make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/template_test_builtins.dir/build.make templates/tests/CMakeFiles/template_test_builtins.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' Generating MOC predefs moc_predefs.h Generating MOC source EWIEGA46WW/moc_coverageobject.cpp Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 7%] Building CXX object templates/tests/CMakeFiles/template_test_builtins.dir/coverageobject.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/template_test_builtins_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 Scanning dependencies of target main_app make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/pluginpointertest/CMakeFiles/main_app.dir/build.make templates/tests/pluginpointertest/CMakeFiles/main_app.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 7%] Built target textdocument_test_builtins_autogen [ 8%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/main_app.dir/main.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/main_app_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 9%] Building CXX object templates/tests/CMakeFiles/template_test_builtins.dir/qrc_testresource.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/template_test_builtins_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/qrc_testresource.cpp [ 9%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/main_app.dir/myobject.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/main_app_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 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-x86_64-linux-gnu' [ 9%] Built target Grantlee_Templates_autogen make -f templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest /<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/DependInfo.cmake --color= Scanning dependencies of target myplugin make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/build.make templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 10%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/myobject.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/myplugin_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 11%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/myplugin.dir/myplugin_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/myplugin_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest/myplugin_autogen/mocs_compilation.cpp [ 12%] Building CXX object templates/tests/pluginpointertest/CMakeFiles/main_app.dir/main_app_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest -I/<>/templates/tests/pluginpointertest -I/<>/obj-x86_64-linux-gnu/templates/tests/pluginpointertest/main_app_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/pluginpointertest/main_app_autogen/mocs_compilation.cpp [ 12%] Building CXX object templates/tests/CMakeFiles/template_test_builtins.dir/template_test_builtins_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/template_test_builtins_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/template_test_builtins_autogen/mocs_compilation.cpp make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/lib /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/lib /<>/obj-x86_64-linux-gnu/textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/DependInfo.cmake --color= Scanning dependencies of target Grantlee_TextDocument make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/build.make textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 12%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/bbcodebuilder.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 12%] Linking CXX shared library myplugin.so cd /<>/obj-x86_64-linux-gnu/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/x86_64-linux-gnu/libQt5Core.so.5.9.3 [ 13%] Linking CXX executable main_app cd /<>/obj-x86_64-linux-gnu/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/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 13%] Built target myplugin [ 14%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/markupdirector.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 15%] Linking CXX static library libtemplate_test_builtins.a cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -P CMakeFiles/template_test_builtins.dir/cmake_clean_target.cmake cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu' [ 16%] Built target template_test_builtins [ 17%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/plaintextmarkupbuilder.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 17%] Built target main_app [ 17%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/texthtmlbuilder.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make -f textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/tests /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/DependInfo.cmake --color= Scanning dependencies of target textdocument_test_builtins make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/build.make textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 18%] Building CXX object textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/coverageobject.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-x86_64-linux-gnu/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-x86_64-linux-gnu/textdocument/tests/textdocument_test_builtins_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 18%] Building CXX object textdocument/tests/CMakeFiles/textdocument_test_builtins.dir/textdocument_test_builtins_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-x86_64-linux-gnu/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-x86_64-linux-gnu/textdocument/tests/textdocument_test_builtins_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/tests/textdocument_test_builtins_autogen/mocs_compilation.cpp [ 19%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/mediawikimarkupbuilder.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 20%] Building CXX object textdocument/lib/CMakeFiles/Grantlee_TextDocument.dir/Grantlee_TextDocument_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -I/<>/obj-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib/Grantlee_TextDocument_autogen/mocs_compilation.cpp [ 21%] Linking CXX static library libtextdocument_test_builtins.a cd /<>/obj-x86_64-linux-gnu/textdocument/tests && /usr/bin/cmake -P CMakeFiles/textdocument_test_builtins.dir/cmake_clean_target.cmake cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu' [ 21%] Built target textdocument_test_builtins make -f templates/lib/CMakeFiles/Grantlee_Templates.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/lib /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/lib /<>/obj-x86_64-linux-gnu/templates/lib/CMakeFiles/Grantlee_Templates.dir/DependInfo.cmake --color= Scanning dependencies of target Grantlee_Templates make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/lib/CMakeFiles/Grantlee_Templates.dir/build.make templates/lib/CMakeFiles/Grantlee_Templates.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 21%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/abstractlocalizer.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 22%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/cachingloaderdecorator.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 22%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/customtyperegistry.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 22%] Linking CXX shared library libGrantlee_TextDocument.so cd /<>/obj-x86_64-linux-gnu/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/x86_64-linux-gnu/libQt5Gui.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu' [ 22%] Built target Grantlee_TextDocument make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/tests /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target htmlbuildertest_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 22%] Automatic MOC for target htmlbuildertest_exec cd /<>/obj-x86_64-linux-gnu/textdocument/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu' [ 22%] Built target htmlbuildertest_exec_autogen make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/tests /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target plainmarkupbuildertest_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 22%] Automatic MOC for target plainmarkupbuildertest_exec cd /<>/obj-x86_64-linux-gnu/textdocument/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec_autogen.dir None [ 23%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/context.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 24%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/engine.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 Generating MOC predefs moc_predefs.h Generating MOC source include/plainmarkupbuildertest.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 24%] Built target plainmarkupbuildertest_exec_autogen [ 24%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/filter.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/tests /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/DependInfo.cmake --color= Scanning dependencies of target htmlbuildertest_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 24%] Building CXX object textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-x86_64-linux-gnu/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-x86_64-linux-gnu/textdocument/tests/htmlbuildertest_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/textdocument/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/textdocument/tests /<>/obj-x86_64-linux-gnu/textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/DependInfo.cmake --color= Scanning dependencies of target plainmarkupbuildertest_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/build.make textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 24%] Building CXX object textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-x86_64-linux-gnu/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-x86_64-linux-gnu/textdocument/tests/plainmarkupbuildertest_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 25%] Building CXX object textdocument/tests/CMakeFiles/plainmarkupbuildertest_exec.dir/plainmarkupbuildertest_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-x86_64-linux-gnu/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-x86_64-linux-gnu/textdocument/tests/plainmarkupbuildertest_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/tests/plainmarkupbuildertest_exec_autogen/mocs_compilation.cpp [ 26%] Building CXX object textdocument/tests/CMakeFiles/htmlbuildertest_exec.dir/htmlbuildertest_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -I/<>/obj-x86_64-linux-gnu/textdocument/tests -I/<>/textdocument/tests -I/<>/obj-x86_64-linux-gnu/textdocument/tests/htmlbuildertest_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/textdocument/lib -I/<>/textdocument/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/tests/htmlbuildertest_exec_autogen/mocs_compilation.cpp [ 27%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/filterexpression.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 27%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/lexer.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 28%] Linking CXX executable htmlbuildertest_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib ../lib/libGrantlee_TextDocument.so.5.1.0 libtextdocument_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 28%] Built target htmlbuildertest_exec [ 29%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/metatype.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 30%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/node.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 30%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/nodebuiltins.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 31%] Linking CXX executable plainmarkupbuildertest_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/textdocument/lib ../lib/libGrantlee_TextDocument.so.5.1.0 libtextdocument_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 31%] Built target plainmarkupbuildertest_exec [ 32%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/nulllocalizer.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 32%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/outputstream.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 33%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/parser.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 34%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/qtlocalizer.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 34%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/rendercontext.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 /<>/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) { ^ [ 35%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/safestring.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 35%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/template.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 36%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/templateloader.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 37%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/textprocessingmachine.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 37%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/typeaccessors.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 38%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/util.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 39%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/variable.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 39%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablecontext.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 40%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilterexpression.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 40%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablenode.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 41%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptableparser.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 42%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablesafestring.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 42%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 43%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptabletemplate.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 43%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablevariable.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 44%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/__/scriptabletags/scriptablefilter.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 45%] Building CXX object templates/lib/CMakeFiles/Grantlee_Templates.dir/Grantlee_Templates_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -I/<>/obj-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/include -I/<>/templates/lib/../scriptabletags -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtScript -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib/Grantlee_Templates_autogen/mocs_compilation.cpp [ 45%] Linking CXX shared library libGrantlee_Templates.so cd /<>/obj-x86_64-linux-gnu/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/x86_64-linux-gnu/libQt5Script.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu' [ 45%] 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-x86_64-linux-gnu' make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/depend cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/loadertags /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/loadertags /<>/obj-x86_64-linux-gnu/templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/DependInfo.cmake --color= make -f templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaulttags /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/defaulttags /<>/obj-x86_64-linux-gnu/templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/DependInfo.cmake --color= make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaultfilters /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/defaultfilters /<>/obj-x86_64-linux-gnu/templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_defaultfilters_autogen make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/i18n /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/i18n /<>/obj-x86_64-linux-gnu/templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/DependInfo.cmake --color= make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' Scanning dependencies of target grantlee_defaulttags_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir/build Scanning dependencies of target grantlee_loadertags_autogen make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir/build [ 46%] Automatic MOC for target grantlee_defaultfilters [ 47%] Automatic MOC for target grantlee_defaulttags make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu/templates/defaulttags && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/defaulttags/CMakeFiles/grantlee_defaulttags_autogen.dir None cd /<>/obj-x86_64-linux-gnu/templates/defaultfilters && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/defaultfilters/CMakeFiles/grantlee_defaultfilters_autogen.dir None [ 48%] Automatic MOC for target grantlee_loadertags cd /<>/obj-x86_64-linux-gnu/templates/loadertags && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/loadertags/CMakeFiles/grantlee_loadertags_autogen.dir None Scanning dependencies of target grantlee_i18ntags_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 49%] Automatic MOC for target grantlee_i18ntags cd /<>/obj-x86_64-linux-gnu/templates/i18n && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/i18n/CMakeFiles/grantlee_i18ntags_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-x86_64-linux-gnu' [ 49%] Built target grantlee_defaultfilters_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testdefaulttags_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 50%] Automatic MOC for target testdefaulttags_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testdefaulttags_exec_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-x86_64-linux-gnu' [ 50%] Built target grantlee_loadertags_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testinternationalization_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 51%] Automatic MOC for target testinternationalization_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testinternationalization_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-x86_64-linux-gnu' [ 51%] Built target testdefaulttags_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testbuiltins_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir/build Generating MOC predefs moc_predefs.h Generating MOC source include/testinternationalization.moc Generating MOC compilation mocs_compilation.cpp make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 51%] Automatic MOC for target testbuiltins_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testbuiltins_exec_autogen.dir None [ 51%] 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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testsafestring_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/build.make templates/tests/CMakeFiles/testsafestring_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 52%] Automatic MOC for target testsafestring_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testsafestring_exec_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-x86_64-linux-gnu' Generating MOC predefs moc_predefs.h Generating MOC source include/testsafestring.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 52%] Built target grantlee_i18ntags_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/DependInfo.cmake --color= [ 52%] Built target testsafestring_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testcachingloader_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir/build Scanning dependencies of target testloadertags_exec_autogen make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testloadertags_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 53%] Automatic MOC for target testcachingloader_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testcachingloader_exec_autogen.dir None [ 53%] Automatic MOC for target testloadertags_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testloadertags_exec_autogen.dir None Generating MOC predefs moc_predefs.h Generating MOC source include/testbuiltins.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 53%] Built target testbuiltins_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testfilters_exec_autogen.dir/DependInfo.cmake --color= Scanning dependencies of target testfilters_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testfilters_exec_autogen.dir/build.make templates/tests/CMakeFiles/testfilters_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' Generating MOC predefs moc_predefs.h Generating MOC source include/testcachingloader.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 53%] Automatic MOC for target testfilters_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testfilters_exec_autogen.dir None [ 53%] Built target testcachingloader_exec_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/DependInfo.cmake --color= Generating MOC predefs moc_predefs.h Generating MOC source include/testloadertags.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' Scanning dependencies of target testgenerictypes_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 53%] 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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/DependInfo.cmake --color= [ 53%] Automatic MOC for target testgenerictypes_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testgenerictypes_exec_autogen.dir None Scanning dependencies of target testgenericcontainers_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 54%] Automatic MOC for target testgenericcontainers_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testgenericcontainers_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-x86_64-linux-gnu' [ 54%] Built target testgenerictypes_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-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/DependInfo.cmake --color= Generating MOC predefs moc_predefs.h Generating MOC source include/testgenericcontainers.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' Scanning dependencies of target testscriptabletags_exec_autogen make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 54%] Built target testgenericcontainers_exec_autogen make -f templates/loadertags/CMakeFiles/grantlee_loadertags.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags.dir/depend Generating MOC predefs moc_predefs.h Generating MOC source include/testfilters.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 55%] Automatic MOC for target testscriptabletags_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_autogen /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testscriptabletags_exec_autogen.dir None make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/loadertags /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/loadertags /<>/obj-x86_64-linux-gnu/templates/loadertags/CMakeFiles/grantlee_loadertags.dir/DependInfo.cmake --color= [ 55%] Built target testfilters_exec_autogen make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaultfilters /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/defaultfilters /<>/obj-x86_64-linux-gnu/templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_loadertags make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/loadertags/CMakeFiles/grantlee_loadertags.dir/build.make templates/loadertags/CMakeFiles/grantlee_loadertags.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' Scanning dependencies of target grantlee_defaultfilters make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/build.make templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/build [ 56%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/loadertags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 56%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/defaultfilters.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 Generating MOC predefs moc_predefs.h Generating MOC source include/testscriptabletags.moc Generating MOC compilation mocs_compilation.cpp make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 56%] Built target testscriptabletags_exec_autogen [ 56%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/blockcontext.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 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-x86_64-linux-gnu' [ 56%] Built target grantlee_defaulttags_autogen [ 57%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/block.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 58%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/datetime.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 58%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/extends.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make -f templates/i18n/CMakeFiles/grantlee_i18ntags.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/i18n /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/i18n /<>/obj-x86_64-linux-gnu/templates/i18n/CMakeFiles/grantlee_i18ntags.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_i18ntags make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/i18n/CMakeFiles/grantlee_i18ntags.dir/build.make templates/i18n/CMakeFiles/grantlee_i18ntags.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 58%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18ntags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 59%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18n.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/integers.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 60%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/lists.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 61%] Building CXX object templates/loadertags/CMakeFiles/grantlee_loadertags.dir/include.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 62%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18nc.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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/loadertags/CMakeFiles/grantlee_loadertags.dir/grantlee_loadertags_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags -I/<>/templates/loadertags -I/<>/obj-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/loadertags/grantlee_loadertags_autogen/mocs_compilation.cpp [ 63%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18np.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make -f templates/tests/CMakeFiles/testdefaulttags_exec.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testdefaulttags_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testdefaulttags_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testdefaulttags_exec.dir/build.make templates/tests/CMakeFiles/testdefaulttags_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 63%] Building CXX object templates/tests/CMakeFiles/testdefaulttags_exec.dir/testdefaulttags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testdefaulttags_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 64%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/logic.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 64%] Linking CXX shared module ../../grantlee/5.1/grantlee_loadertags.so cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 64%] Built target grantlee_loadertags [ 64%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/misc.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make -f templates/tests/CMakeFiles/testinternationalization_exec.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testinternationalization_exec.dir/DependInfo.cmake --color= [ 65%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/i18ncp.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 Scanning dependencies of target testinternationalization_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testinternationalization_exec.dir/build.make templates/tests/CMakeFiles/testinternationalization_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 66%] Building CXX object templates/tests/CMakeFiles/testinternationalization_exec.dir/testinternationalization.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testinternationalization_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 67%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/stringfilters.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 68%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/l10n_money.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 68%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/with_locale.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 69%] Building CXX object templates/tests/CMakeFiles/testinternationalization_exec.dir/testinternationalization_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testinternationalization_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testinternationalization_exec_autogen/mocs_compilation.cpp [ 69%] Linking CXX executable testinternationalization_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testinternationalization_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/testinternationalization_exec.dir/testinternationalization.cpp.o CMakeFiles/testinternationalization_exec.dir/testinternationalization_exec_autogen/mocs_compilation.cpp.o -o testinternationalization_exec -Wl,-rpath,/<>/obj-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 69%] Built target testinternationalization_exec [ 70%] Building CXX object templates/i18n/CMakeFiles/grantlee_i18ntags.dir/grantlee_i18ntags_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n -I/<>/templates/i18n -I/<>/obj-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/i18n/grantlee_i18ntags_autogen/mocs_compilation.cpp [ 71%] Building CXX object templates/defaultfilters/CMakeFiles/grantlee_defaultfilters.dir/grantlee_defaultfilters_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters -I/<>/templates/defaultfilters -I/<>/obj-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaultfilters/grantlee_defaultfilters_autogen/mocs_compilation.cpp [ 72%] Building CXX object templates/tests/CMakeFiles/testdefaulttags_exec.dir/testdefaulttags_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testdefaulttags_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testdefaulttags_exec_autogen/mocs_compilation.cpp make -f templates/tests/CMakeFiles/testbuiltins_exec.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testbuiltins_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testbuiltins_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testbuiltins_exec.dir/build.make templates/tests/CMakeFiles/testbuiltins_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 72%] Building CXX object templates/tests/CMakeFiles/testbuiltins_exec.dir/testbuiltins.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testbuiltins_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 72%] Linking CXX shared module ../../grantlee/5.1/grantlee_i18ntags.so cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 72%] Built target grantlee_i18ntags [ 73%] Building CXX object templates/tests/CMakeFiles/testbuiltins_exec.dir/testbuiltins_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testbuiltins_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testbuiltins_exec_autogen/mocs_compilation.cpp make -f templates/tests/CMakeFiles/testsafestring_exec.dir/build.make templates/tests/CMakeFiles/testsafestring_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testsafestring_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testsafestring_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testsafestring_exec.dir/build.make templates/tests/CMakeFiles/testsafestring_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 74%] Building CXX object templates/tests/CMakeFiles/testsafestring_exec.dir/testsafestring.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testsafestring_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 74%] Linking CXX shared module ../../grantlee/5.1/grantlee_defaultfilters.so cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 74%] Built target grantlee_defaultfilters [ 74%] Building CXX object templates/tests/CMakeFiles/testsafestring_exec.dir/testsafestring_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testsafestring_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testsafestring_exec_autogen/mocs_compilation.cpp make -f templates/tests/CMakeFiles/testloadertags_exec.dir/build.make templates/tests/CMakeFiles/testloadertags_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testloadertags_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testloadertags_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testloadertags_exec.dir/build.make templates/tests/CMakeFiles/testloadertags_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 74%] Building CXX object templates/tests/CMakeFiles/testloadertags_exec.dir/testloadertags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testloadertags_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 75%] Linking CXX executable testsafestring_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 75%] Built target testsafestring_exec make -f templates/tests/CMakeFiles/testcachingloader_exec.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testcachingloader_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testcachingloader_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testcachingloader_exec.dir/build.make templates/tests/CMakeFiles/testcachingloader_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 76%] Building CXX object templates/tests/CMakeFiles/testcachingloader_exec.dir/testcachingloader.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testcachingloader_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 76%] Linking CXX executable testdefaulttags_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 76%] Built target testdefaulttags_exec [ 76%] Building CXX object templates/tests/CMakeFiles/testcachingloader_exec.dir/testcachingloader_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testcachingloader_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testcachingloader_exec_autogen/mocs_compilation.cpp make -f templates/tests/CMakeFiles/testfilters_exec.dir/build.make templates/tests/CMakeFiles/testfilters_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testfilters_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testfilters_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testfilters_exec.dir/build.make templates/tests/CMakeFiles/testfilters_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 77%] Building CXX object templates/tests/CMakeFiles/testfilters_exec.dir/testfilters.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testfilters_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 78%] Linking CXX executable testcachingloader_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 78%] Built target testcachingloader_exec make -f templates/tests/CMakeFiles/testgenerictypes_exec.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testgenerictypes_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testgenerictypes_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testgenerictypes_exec.dir/build.make templates/tests/CMakeFiles/testgenerictypes_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 78%] Building CXX object templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 [ 79%] Building CXX object templates/tests/CMakeFiles/testloadertags_exec.dir/testloadertags_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testloadertags_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testloadertags_exec_autogen/mocs_compilation.cpp [ 80%] Linking CXX executable testloadertags_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 80%] Built target testloadertags_exec [ 81%] Building CXX object templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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_exec_autogen/mocs_compilation.cpp.o -c /<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/mocs_compilation.cpp make -f templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testgenericcontainers_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testgenericcontainers_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build.make templates/tests/CMakeFiles/testgenericcontainers_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 82%] Building CXX object templates/tests/CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 In file included from /usr/include/x86_64-linux-gnu/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)); ^~~~~~~~~~~~~~ [ 83%] Linking CXX executable testbuiltins_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 83%] Built target testbuiltins_exec [ 84%] Building CXX object templates/tests/CMakeFiles/testgenericcontainers_exec.dir/testgenericcontainers_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/mocs_compilation.cpp [ 84%] Building CXX object templates/tests/CMakeFiles/testfilters_exec.dir/testfilters_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testfilters_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testfilters_exec_autogen/mocs_compilation.cpp make -f templates/tests/CMakeFiles/testscriptabletags_exec.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/tests /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/tests /<>/obj-x86_64-linux-gnu/templates/tests/CMakeFiles/testscriptabletags_exec.dir/DependInfo.cmake --color= Scanning dependencies of target testscriptabletags_exec make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/tests/CMakeFiles/testscriptabletags_exec.dir/build.make templates/tests/CMakeFiles/testscriptabletags_exec.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 84%] Building CXX object templates/tests/CMakeFiles/testscriptabletags_exec.dir/testscriptabletags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testscriptabletags_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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 In file included from /usr/include/x86_64-linux-gnu/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 %}"); ^~~~~~~~~~~~~~ 0xbeba0f crash_signal ../../src/gcc/toplev.c:325 0x71b0f8 determine_visibility(tree_node*) ../../src/gcc/cp/decl2.c:2472 0x7aec3d lookup_template_class_1 ../../src/gcc/cp/pt.c:9145 0x7aec3d lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../src/gcc/cp/pt.c:9161 0x598ee5 tsubst_aggr_type ../../src/gcc/cp/pt.c:12008 0x7a6a5b tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13643 0x7b604c tsubst_decl ../../src/gcc/cp/pt.c:12940 0x7a6d7f tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13561 0x7a17a2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16046 0x7a0fe5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15973 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x7a2d92 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15958 0x7a2d92 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:16970 0x7a41e7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:18260 0x7a4ff8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17577 0x7a48d5 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17593 0x7a1160 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17014 0x7a1160 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16752 0x7a0b95 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. [ 85%] Building CXX object templates/tests/CMakeFiles/testscriptabletags_exec.dir/testscriptabletags_exec_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -Dcxx_auto_type -I/<>/obj-x86_64-linux-gnu/templates/tests -I/<>/templates/tests -I/<>/obj-x86_64-linux-gnu/templates/tests/testscriptabletags_exec_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/tests/testscriptabletags_exec_autogen/mocs_compilation.cpp [ 85%] Linking CXX executable testscriptabletags_exec cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 0xbeba0f crash_signal ../../src/gcc/toplev.c:325 0x71b0f8 determine_visibility(tree_node*) ../../src/gcc/cp/decl2.c:2472 0x7aec3d lookup_template_class_1 ../../src/gcc/cp/pt.c:9145 0x7aec3d lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../src/gcc/cp/pt.c:9161 0x598ee5 tsubst_aggr_type ../../src/gcc/cp/pt.c:12008 0x7a6a5b tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13643 0x7b604c tsubst_decl ../../src/gcc/cp/pt.c:12940 0x7a6d7f tsubst(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:13561 0x7a17a2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16046 0x7a0fe5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15973 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16236 0x7a2d92 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15958 0x7a2d92 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) ../../src/gcc/cp/pt.c:16970 0x7a41e7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:18260 0x7a4ff8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17577 0x7a1160 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../src/gcc/cp/pt.c:17014 0x7a1160 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:16752 0x7a0cc5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../src/gcc/cp/pt.c:15983 0x7a0fe5 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. make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 85%] Built target testscriptabletags_exec make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/depend make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' cd /<>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<> /<>/templates/defaulttags /<>/obj-x86_64-linux-gnu /<>/obj-x86_64-linux-gnu/templates/defaulttags /<>/obj-x86_64-linux-gnu/templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/DependInfo.cmake --color= Scanning dependencies of target grantlee_defaulttags make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' make -f templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/build.make templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/build make[3]: Entering directory '/<>/obj-x86_64-linux-gnu' [ 85%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/defaulttags.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 86%] Linking CXX executable testfilters_exec cd /<>/obj-x86_64-linux-gnu/templates/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/testfilters_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/testfilters_exec.dir/testfilters.cpp.o CMakeFiles/testfilters_exec.dir/testfilters_exec_autogen/mocs_compilation.cpp.o -o testfilters_exec -Wl,-rpath,/<>/obj-x86_64-linux-gnu/templates/lib ../lib/libGrantlee_Templates.so.5.1.0 libtemplate_test_builtins.a /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.9.3 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 [ 87%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/autoescape.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 87%] Built target testfilters_exec [ 88%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/comment.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 88%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/cycle.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 89%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/debug.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 89%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/filtertag.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 90%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/firstof.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 91%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/for.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 91%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/if.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 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) { ^~~~~~~~~ Preprocessed source stored into /tmp/cceELvSX.out file, please attach this to your bugreport. === BEGIN GCC DUMP === 8737: // Target: x86_64-linux-gnu 8737: // 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,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --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-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu 8737: // Thread model: posix 8737: // gcc version 8.0.0 20180110 (experimental) [trunk revision 256425] (Ubuntu 8-20180110-1ubuntu1) 8737: // 8737: // In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QString:1, 8737: // from /<>/templates/lib/exception.h:26, 8737: // from /<>/templates/lib/template.h:24, 8737: // from /<>/templates/lib/engine.h:24, 8737: // from /<>/templates/tests/testgenerictypes.cpp:22: 8737: // /<>/templates/tests/testgenerictypes.cpp: In instantiation of ‘void insertAssociatedPeopleVariants(Grantlee::Context&) [with AssociativeContainer = QMap]’: 8737: // /<>/templates/tests/testgenerictypes.cpp:190:60: required from here 8737: // /<>/templates/tests/testgenerictypes.cpp:184:12: internal compiler error: Segmentation fault 8737: // c.insert(QStringLiteral("people"), QVariant::fromValue(container)); 8737: // ^~~~~~~~~~~~~~ 8737: // 0xbeba0f crash_signal 8737: // ../../src/gcc/toplev.c:325 8737: // 0x71b0f8 determine_visibility(tree_node*) 8737: // ../../src/gcc/cp/decl2.c:2472 8737: // 0x7aec3d lookup_template_class_1 8737: // ../../src/gcc/cp/pt.c:9145 8737: // 0x7aec3d lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) 8737: // ../../src/gcc/cp/pt.c:9161 8737: // 0x598ee5 tsubst_aggr_type 8737: // ../../src/gcc/cp/pt.c:12008 8737: // 0x7a6a5b tsubst(tree_node*, tree_node*, int, tree_node*) 8737: // ../../src/gcc/cp/pt.c:13643 8737: // 0x7b604c tsubst_decl 8737: // ../../src/gcc/cp/pt.c:12940 8737: // 0x7a6d7f tsubst(tree_node*, tree_node*, int, tree_node*) 8737: // ../../src/gcc/cp/pt.c:13561 8737: // 0x7a17a2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:16046 8737: // 0x7a0fe5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:15973 8737: // 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:16236 8737: // 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:16236 8737: // 0x7a2d92 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:15958 8737: // 0x7a2d92 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) 8737: // ../../src/gcc/cp/pt.c:16970 8737: // 0x7a41e7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8737: // ../../src/gcc/cp/pt.c:18260 8737: // 0x7a4ff8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8737: // ../../src/gcc/cp/pt.c:17577 8737: // 0x7a48d5 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8737: // ../../src/gcc/cp/pt.c:17593 8737: // 0x7a1160 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8737: // ../../src/gcc/cp/pt.c:17014 8737: // 0x7a1160 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:16752 8737: // 0x7a0b95 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8737: // ../../src/gcc/cp/pt.c:15987 8737: // Please submit a full bug report, 8737: // with preprocessed source if appropriate. 8737: // Please include the complete backtrace with any bug report. 8737: // See for instructions. 8737: 8737: // /usr/lib/gcc/x86_64-linux-gnu/8/cc1plus -quiet -I /<>/obj-x86_64-linux-gnu/templates/tests -I /<>/templates/tests -I /<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include -I /<>/obj-x86_64-linux-gnu/templates/lib -I /<>/templates/lib -imultiarch x86_64-linux-gnu -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-x86_64-linux-gnu" -D QT_TESTLIB_LIB -D QT_USE_QSTRINGBUILDER -D cxx_auto_type -D _FORTIFY_SOURCE=2 -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest /<>/templates/tests/testgenerictypes.cpp -quiet -dumpbase testgenerictypes.cpp -mtune=generic -march=x86-64 -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 8737: 8737: # 1 "/<>/templates/tests/testgenerictypes.cpp" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/tests//" 8737: # 1 "" 8737: # 1 "" 8737: # 1 "/usr/include/stdc-predef.h" 1 3 4 8737: # 1 "" 2 8737: # 1 "/<>/templates/tests/testgenerictypes.cpp" 8737: # 22 "/<>/templates/tests/testgenerictypes.cpp" 8737: # 1 "/<>/templates/lib/engine.h" 1 8737: # 24 "/<>/templates/lib/engine.h" 8737: # 1 "/<>/templates/lib/template.h" 1 8737: # 24 "/<>/templates/lib/template.h" 8737: # 1 "/<>/templates/lib/exception.h" 1 8737: # 24 "/<>/templates/lib/exception.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/exception.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QString" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 1 3 4 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: # 1 "/usr/include/c++/8/type_traits" 1 3 4 8737: # 32 "/usr/include/c++/8/type_traits" 3 4 8737: 8737: # 33 "/usr/include/c++/8/type_traits" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 1 3 8737: # 236 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8737: 8737: # 236 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8737: namespace std 8737: { 8737: typedef long unsigned int size_t; 8737: typedef long int ptrdiff_t; 8737: 8737: 8737: typedef decltype(nullptr) nullptr_t; 8737: 8737: } 8737: # 258 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8737: namespace std 8737: { 8737: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8737: } 8737: namespace __gnu_cxx 8737: { 8737: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8737: } 8737: # 508 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/os_defines.h" 1 3 8737: # 39 "/usr/include/x86_64-linux-gnu/c++/8/bits/os_defines.h" 3 8737: # 1 "/usr/include/features.h" 1 3 4 8737: # 419 "/usr/include/features.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 8737: # 419 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 420 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 8737: # 421 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 8737: # 420 "/usr/include/features.h" 2 3 4 8737: # 443 "/usr/include/features.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 8737: # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 8737: # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 8737: # 444 "/usr/include/features.h" 2 3 4 8737: # 40 "/usr/include/x86_64-linux-gnu/c++/8/bits/os_defines.h" 2 3 8737: # 509 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 2 3 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/cpu_defines.h" 1 3 8737: # 512 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 2 3 8737: # 39 "/usr/include/c++/8/type_traits" 2 3 8737: 8737: 8737: 8737: namespace std 8737: { 8737: typedef short unsigned int uint_least16_t; 8737: typedef unsigned int uint_least32_t; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 68 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct integral_constant 8737: { 8737: static constexpr _Tp value = __v; 8737: typedef _Tp value_type; 8737: typedef integral_constant<_Tp, __v> type; 8737: constexpr operator value_type() const noexcept { return value; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: template 8737: constexpr _Tp integral_constant<_Tp, __v>::value; 8737: 8737: 8737: typedef integral_constant true_type; 8737: 8737: 8737: typedef integral_constant false_type; 8737: 8737: template 8737: using __bool_constant = integral_constant; 8737: # 103 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct conditional; 8737: 8737: template 8737: struct __or_; 8737: 8737: template<> 8737: struct __or_<> 8737: : public false_type 8737: { }; 8737: 8737: template 8737: struct __or_<_B1> 8737: : public _B1 8737: { }; 8737: 8737: template 8737: struct __or_<_B1, _B2> 8737: : public conditional<_B1::value, _B1, _B2>::type 8737: { }; 8737: 8737: template 8737: struct __or_<_B1, _B2, _B3, _Bn...> 8737: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 8737: { }; 8737: 8737: template 8737: struct __and_; 8737: 8737: template<> 8737: struct __and_<> 8737: : public true_type 8737: { }; 8737: 8737: template 8737: struct __and_<_B1> 8737: : public _B1 8737: { }; 8737: 8737: template 8737: struct __and_<_B1, _B2> 8737: : public conditional<_B1::value, _B2, _B1>::type 8737: { }; 8737: 8737: template 8737: struct __and_<_B1, _B2, _B3, _Bn...> 8737: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 8737: { }; 8737: 8737: template 8737: struct __not_ 8737: : public __bool_constant 8737: { }; 8737: # 192 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct __success_type 8737: { typedef _Tp type; }; 8737: 8737: struct __failure_type 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct remove_cv; 8737: 8737: template 8737: struct __is_void_helper 8737: : public false_type { }; 8737: 8737: template<> 8737: struct __is_void_helper 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_void 8737: : public __is_void_helper::type>::type 8737: { }; 8737: 8737: template 8737: struct __is_integral_helper 8737: : public false_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: template<> 8737: struct __is_integral_helper<__int128> 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_integral_helper 8737: : public true_type { }; 8737: # 324 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct is_integral 8737: : public __is_integral_helper::type>::type 8737: { }; 8737: 8737: template 8737: struct __is_floating_point_helper 8737: : public false_type { }; 8737: 8737: template<> 8737: struct __is_floating_point_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_floating_point_helper 8737: : public true_type { }; 8737: 8737: template<> 8737: struct __is_floating_point_helper 8737: : public true_type { }; 8737: 8737: 8737: template<> 8737: struct __is_floating_point_helper<__float128> 8737: : public true_type { }; 8737: 8737: 8737: 8737: template 8737: struct is_floating_point 8737: : public __is_floating_point_helper::type>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_array 8737: : public false_type { }; 8737: 8737: template 8737: struct is_array<_Tp[_Size]> 8737: : public true_type { }; 8737: 8737: template 8737: struct is_array<_Tp[]> 8737: : public true_type { }; 8737: 8737: template 8737: struct __is_pointer_helper 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_pointer_helper<_Tp*> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_pointer 8737: : public __is_pointer_helper::type>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_lvalue_reference 8737: : public false_type { }; 8737: 8737: template 8737: struct is_lvalue_reference<_Tp&> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_rvalue_reference 8737: : public false_type { }; 8737: 8737: template 8737: struct is_rvalue_reference<_Tp&&> 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function; 8737: 8737: template 8737: struct __is_member_object_pointer_helper 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_member_object_pointer_helper<_Tp _Cp::*> 8737: : public integral_constant::value> { }; 8737: 8737: 8737: template 8737: struct is_member_object_pointer 8737: : public __is_member_object_pointer_helper< 8737: typename remove_cv<_Tp>::type>::type 8737: { }; 8737: 8737: template 8737: struct __is_member_function_pointer_helper 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_member_function_pointer_helper<_Tp _Cp::*> 8737: : public integral_constant::value> { }; 8737: 8737: 8737: template 8737: struct is_member_function_pointer 8737: : public __is_member_function_pointer_helper< 8737: typename remove_cv<_Tp>::type>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_enum 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_union 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_class 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_function 8737: : public false_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) const > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) const & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) const && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) const > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) const & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) const && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) volatile > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) volatile & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) volatile && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) volatile > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) volatile & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) volatile && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) const volatile > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) const volatile & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes...) const volatile && > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) const volatile > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) const volatile & > 8737: : public true_type { }; 8737: 8737: template 8737: struct is_function<_Res(_ArgTypes......) const volatile && > 8737: : public true_type { }; 8737: 8737: 8737: 8737: template 8737: struct __is_null_pointer_helper 8737: : public false_type { }; 8737: 8737: template<> 8737: struct __is_null_pointer_helper 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_null_pointer 8737: : public __is_null_pointer_helper::type>::type 8737: { }; 8737: 8737: 8737: template 8737: struct __is_nullptr_t 8737: : public is_null_pointer<_Tp> 8737: { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct is_reference 8737: : public __or_, 8737: is_rvalue_reference<_Tp>>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_arithmetic 8737: : public __or_, is_floating_point<_Tp>>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_fundamental 8737: : public __or_, is_void<_Tp>, 8737: is_null_pointer<_Tp>>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_object 8737: : public __not_<__or_, is_reference<_Tp>, 8737: is_void<_Tp>>>::type 8737: { }; 8737: 8737: template 8737: struct is_member_pointer; 8737: 8737: 8737: template 8737: struct is_scalar 8737: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 8737: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_compound 8737: : public integral_constant::value> { }; 8737: 8737: template 8737: struct __is_member_pointer_helper 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_member_pointer_helper<_Tp _Cp::*> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_member_pointer 8737: : public __is_member_pointer_helper::type>::type 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct __is_referenceable 8737: : public __or_, is_reference<_Tp>>::type 8737: { }; 8737: 8737: template 8737: struct __is_referenceable<_Res(_Args...) > 8737: : public true_type 8737: { }; 8737: 8737: template 8737: struct __is_referenceable<_Res(_Args......) > 8737: : public true_type 8737: { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct is_const 8737: : public false_type { }; 8737: 8737: template 8737: struct is_const<_Tp const> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_volatile 8737: : public false_type { }; 8737: 8737: template 8737: struct is_volatile<_Tp volatile> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_trivial 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_trivially_copyable 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_standard_layout 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct is_pod 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_literal_type 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_empty 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_polymorphic 8737: : public integral_constant 8737: { }; 8737: # 724 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct is_abstract 8737: : public integral_constant 8737: { }; 8737: 8737: template::value> 8737: struct __is_signed_helper 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_signed_helper<_Tp, true> 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_signed 8737: : public __is_signed_helper<_Tp>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_unsigned 8737: : public __and_, __not_>> 8737: { }; 8737: # 759 "/usr/include/c++/8/type_traits" 3 8737: template 8737: _Up 8737: __declval(int); 8737: 8737: template 8737: _Tp 8737: __declval(long); 8737: 8737: template 8737: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 8737: 8737: template 8737: struct extent; 8737: 8737: template 8737: struct remove_all_extents; 8737: 8737: template 8737: struct __is_array_known_bounds 8737: : public integral_constant::value > 0)> 8737: { }; 8737: 8737: template 8737: struct __is_array_unknown_bounds 8737: : public __and_, __not_>> 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct __do_is_destructible_impl 8737: { 8737: template().~_Tp())> 8737: static true_type __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: template 8737: struct __is_destructible_impl 8737: : public __do_is_destructible_impl 8737: { 8737: typedef decltype(__test<_Tp>(0)) type; 8737: }; 8737: 8737: template, 8737: __is_array_unknown_bounds<_Tp>, 8737: is_function<_Tp>>::value, 8737: bool = __or_, is_scalar<_Tp>>::value> 8737: struct __is_destructible_safe; 8737: 8737: template 8737: struct __is_destructible_safe<_Tp, false, false> 8737: : public __is_destructible_impl::type>::type 8737: { }; 8737: 8737: template 8737: struct __is_destructible_safe<_Tp, true, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_destructible_safe<_Tp, false, true> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_destructible 8737: : public __is_destructible_safe<_Tp>::type 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: struct __do_is_nt_destructible_impl 8737: { 8737: template 8737: static integral_constant().~_Tp())> 8737: __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: template 8737: struct __is_nt_destructible_impl 8737: : public __do_is_nt_destructible_impl 8737: { 8737: typedef decltype(__test<_Tp>(0)) type; 8737: }; 8737: 8737: template, 8737: __is_array_unknown_bounds<_Tp>, 8737: is_function<_Tp>>::value, 8737: bool = __or_, is_scalar<_Tp>>::value> 8737: struct __is_nt_destructible_safe; 8737: 8737: template 8737: struct __is_nt_destructible_safe<_Tp, false, false> 8737: : public __is_nt_destructible_impl::type>::type 8737: { }; 8737: 8737: template 8737: struct __is_nt_destructible_safe<_Tp, true, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_nt_destructible_safe<_Tp, false, true> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_nothrow_destructible 8737: : public __is_nt_destructible_safe<_Tp>::type 8737: { }; 8737: 8737: struct __do_is_default_constructible_impl 8737: { 8737: template 8737: static true_type __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: template 8737: struct __is_default_constructible_impl 8737: : public __do_is_default_constructible_impl 8737: { 8737: typedef decltype(__test<_Tp>(0)) type; 8737: }; 8737: 8737: template 8737: struct __is_default_constructible_atom 8737: : public __and_<__not_>, 8737: __is_default_constructible_impl<_Tp>> 8737: { }; 8737: 8737: template::value> 8737: struct __is_default_constructible_safe; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_default_constructible_safe<_Tp, true> 8737: : public __and_<__is_array_known_bounds<_Tp>, 8737: __is_default_constructible_atom::type>> 8737: { }; 8737: 8737: template 8737: struct __is_default_constructible_safe<_Tp, false> 8737: : public __is_default_constructible_atom<_Tp>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_default_constructible 8737: : public __is_default_constructible_safe<_Tp>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_constructible 8737: : public __bool_constant<__is_constructible(_Tp, _Args...)> 8737: { }; 8737: 8737: template::value> 8737: struct __is_copy_constructible_impl; 8737: 8737: template 8737: struct __is_copy_constructible_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_copy_constructible_impl<_Tp, true> 8737: : public is_constructible<_Tp, const _Tp&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_copy_constructible 8737: : public __is_copy_constructible_impl<_Tp> 8737: { }; 8737: 8737: template::value> 8737: struct __is_move_constructible_impl; 8737: 8737: template 8737: struct __is_move_constructible_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_move_constructible_impl<_Tp, true> 8737: : public is_constructible<_Tp, _Tp&&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_move_constructible 8737: : public __is_move_constructible_impl<_Tp> 8737: { }; 8737: 8737: template 8737: struct __is_nt_default_constructible_atom 8737: : public integral_constant 8737: { }; 8737: 8737: template::value> 8737: struct __is_nt_default_constructible_impl; 8737: 8737: template 8737: struct __is_nt_default_constructible_impl<_Tp, true> 8737: : public __and_<__is_array_known_bounds<_Tp>, 8737: __is_nt_default_constructible_atom::type>> 8737: { }; 8737: 8737: template 8737: struct __is_nt_default_constructible_impl<_Tp, false> 8737: : public __is_nt_default_constructible_atom<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_default_constructible 8737: : public __and_, 8737: __is_nt_default_constructible_impl<_Tp>> 8737: { }; 8737: 8737: template 8737: struct __is_nt_constructible_impl 8737: : public integral_constant()...))> 8737: { }; 8737: 8737: template 8737: struct __is_nt_constructible_impl<_Tp, _Arg> 8737: : public integral_constant(declval<_Arg>()))> 8737: { }; 8737: 8737: template 8737: struct __is_nt_constructible_impl<_Tp> 8737: : public is_nothrow_default_constructible<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_constructible 8737: : public __and_, 8737: __is_nt_constructible_impl<_Tp, _Args...>> 8737: { }; 8737: 8737: template::value> 8737: struct __is_nothrow_copy_constructible_impl; 8737: 8737: template 8737: struct __is_nothrow_copy_constructible_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_nothrow_copy_constructible_impl<_Tp, true> 8737: : public is_nothrow_constructible<_Tp, const _Tp&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_copy_constructible 8737: : public __is_nothrow_copy_constructible_impl<_Tp> 8737: { }; 8737: 8737: template::value> 8737: struct __is_nothrow_move_constructible_impl; 8737: 8737: template 8737: struct __is_nothrow_move_constructible_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_nothrow_move_constructible_impl<_Tp, true> 8737: : public is_nothrow_constructible<_Tp, _Tp&&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_move_constructible 8737: : public __is_nothrow_move_constructible_impl<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct is_assignable 8737: : public __bool_constant<__is_assignable(_Tp, _Up)> 8737: { }; 8737: 8737: template::value> 8737: struct __is_copy_assignable_impl; 8737: 8737: template 8737: struct __is_copy_assignable_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_copy_assignable_impl<_Tp, true> 8737: : public is_assignable<_Tp&, const _Tp&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_copy_assignable 8737: : public __is_copy_assignable_impl<_Tp> 8737: { }; 8737: 8737: template::value> 8737: struct __is_move_assignable_impl; 8737: 8737: template 8737: struct __is_move_assignable_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_move_assignable_impl<_Tp, true> 8737: : public is_assignable<_Tp&, _Tp&&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_move_assignable 8737: : public __is_move_assignable_impl<_Tp> 8737: { }; 8737: 8737: template 8737: struct __is_nt_assignable_impl 8737: : public integral_constant() = declval<_Up>())> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_assignable 8737: : public __and_, 8737: __is_nt_assignable_impl<_Tp, _Up>> 8737: { }; 8737: 8737: template::value> 8737: struct __is_nt_copy_assignable_impl; 8737: 8737: template 8737: struct __is_nt_copy_assignable_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_nt_copy_assignable_impl<_Tp, true> 8737: : public is_nothrow_assignable<_Tp&, const _Tp&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_copy_assignable 8737: : public __is_nt_copy_assignable_impl<_Tp> 8737: { }; 8737: 8737: template::value> 8737: struct __is_nt_move_assignable_impl; 8737: 8737: template 8737: struct __is_nt_move_assignable_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_nt_move_assignable_impl<_Tp, true> 8737: : public is_nothrow_assignable<_Tp&, _Tp&&> 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_move_assignable 8737: : public __is_nt_move_assignable_impl<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct is_trivially_constructible 8737: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_trivially_default_constructible 8737: : public is_trivially_constructible<_Tp>::type 8737: { }; 8737: 8737: struct __do_is_implicitly_default_constructible_impl 8737: { 8737: template 8737: static void __helper(const _Tp&); 8737: 8737: template 8737: static true_type __test(const _Tp&, 8737: decltype(__helper({}))* = 0); 8737: 8737: static false_type __test(...); 8737: }; 8737: 8737: template 8737: struct __is_implicitly_default_constructible_impl 8737: : public __do_is_implicitly_default_constructible_impl 8737: { 8737: typedef decltype(__test(declval<_Tp>())) type; 8737: }; 8737: 8737: template 8737: struct __is_implicitly_default_constructible_safe 8737: : public __is_implicitly_default_constructible_impl<_Tp>::type 8737: { }; 8737: 8737: template 8737: struct __is_implicitly_default_constructible 8737: : public __and_, 8737: __is_implicitly_default_constructible_safe<_Tp>> 8737: { }; 8737: 8737: 8737: 8737: template::value> 8737: struct __is_trivially_copy_constructible_impl; 8737: 8737: template 8737: struct __is_trivially_copy_constructible_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_trivially_copy_constructible_impl<_Tp, true> 8737: : public __and_, 8737: integral_constant> 8737: { }; 8737: 8737: template 8737: struct is_trivially_copy_constructible 8737: : public __is_trivially_copy_constructible_impl<_Tp> 8737: { }; 8737: 8737: 8737: 8737: template::value> 8737: struct __is_trivially_move_constructible_impl; 8737: 8737: template 8737: struct __is_trivially_move_constructible_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_trivially_move_constructible_impl<_Tp, true> 8737: : public __and_, 8737: integral_constant> 8737: { }; 8737: 8737: template 8737: struct is_trivially_move_constructible 8737: : public __is_trivially_move_constructible_impl<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct is_trivially_assignable 8737: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 8737: { }; 8737: 8737: 8737: 8737: template::value> 8737: struct __is_trivially_copy_assignable_impl; 8737: 8737: template 8737: struct __is_trivially_copy_assignable_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_trivially_copy_assignable_impl<_Tp, true> 8737: : public __and_, 8737: integral_constant> 8737: { }; 8737: 8737: template 8737: struct is_trivially_copy_assignable 8737: : public __is_trivially_copy_assignable_impl<_Tp> 8737: { }; 8737: 8737: 8737: 8737: template::value> 8737: struct __is_trivially_move_assignable_impl; 8737: 8737: template 8737: struct __is_trivially_move_assignable_impl<_Tp, false> 8737: : public false_type { }; 8737: 8737: template 8737: struct __is_trivially_move_assignable_impl<_Tp, true> 8737: : public __and_, 8737: integral_constant> 8737: { }; 8737: 8737: template 8737: struct is_trivially_move_assignable 8737: : public __is_trivially_move_assignable_impl<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct is_trivially_destructible 8737: : public __and_, integral_constant> 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct has_virtual_destructor 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct alignment_of 8737: : public integral_constant { }; 8737: 8737: 8737: template 8737: struct rank 8737: : public integral_constant { }; 8737: 8737: template 8737: struct rank<_Tp[_Size]> 8737: : public integral_constant::value> { }; 8737: 8737: template 8737: struct rank<_Tp[]> 8737: : public integral_constant::value> { }; 8737: 8737: 8737: template 8737: struct extent 8737: : public integral_constant { }; 8737: 8737: template 8737: struct extent<_Tp[_Size], _Uint> 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct extent<_Tp[], _Uint> 8737: : public integral_constant::value> 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_same 8737: : public false_type { }; 8737: 8737: template 8737: struct is_same<_Tp, _Tp> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_base_of 8737: : public integral_constant 8737: { }; 8737: 8737: template, is_function<_To>, 8737: is_array<_To>>::value> 8737: struct __is_convertible_helper 8737: { typedef typename is_void<_To>::type type; }; 8737: 8737: template 8737: class __is_convertible_helper<_From, _To, false> 8737: { 8737: template 8737: static void __test_aux(_To1); 8737: 8737: template(std::declval<_From1>()))> 8737: static true_type 8737: __test(int); 8737: 8737: template 8737: static false_type 8737: __test(...); 8737: 8737: public: 8737: typedef decltype(__test<_From, _To>(0)) type; 8737: }; 8737: 8737: 8737: 8737: template 8737: struct is_convertible 8737: : public __is_convertible_helper<_From, _To>::type 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct remove_const 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_const<_Tp const> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template 8737: struct remove_volatile 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_volatile<_Tp volatile> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template 8737: struct remove_cv 8737: { 8737: typedef typename 8737: remove_const::type>::type type; 8737: }; 8737: 8737: 8737: template 8737: struct add_const 8737: { typedef _Tp const type; }; 8737: 8737: 8737: template 8737: struct add_volatile 8737: { typedef _Tp volatile type; }; 8737: 8737: 8737: template 8737: struct add_cv 8737: { 8737: typedef typename 8737: add_const::type>::type type; 8737: }; 8737: # 1463 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct remove_reference 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_reference<_Tp&> 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_reference<_Tp&&> 8737: { typedef _Tp type; }; 8737: 8737: template::value> 8737: struct __add_lvalue_reference_helper 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct __add_lvalue_reference_helper<_Tp, true> 8737: { typedef _Tp& type; }; 8737: 8737: 8737: template 8737: struct add_lvalue_reference 8737: : public __add_lvalue_reference_helper<_Tp> 8737: { }; 8737: 8737: template::value> 8737: struct __add_rvalue_reference_helper 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct __add_rvalue_reference_helper<_Tp, true> 8737: { typedef _Tp&& type; }; 8737: 8737: 8737: template 8737: struct add_rvalue_reference 8737: : public __add_rvalue_reference_helper<_Tp> 8737: { }; 8737: # 1520 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct __cv_selector; 8737: 8737: template 8737: struct __cv_selector<_Unqualified, false, false> 8737: { typedef _Unqualified __type; }; 8737: 8737: template 8737: struct __cv_selector<_Unqualified, false, true> 8737: { typedef volatile _Unqualified __type; }; 8737: 8737: template 8737: struct __cv_selector<_Unqualified, true, false> 8737: { typedef const _Unqualified __type; }; 8737: 8737: template 8737: struct __cv_selector<_Unqualified, true, true> 8737: { typedef const volatile _Unqualified __type; }; 8737: 8737: template::value, 8737: bool _IsVol = is_volatile<_Qualified>::value> 8737: class __match_cv_qualifiers 8737: { 8737: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 8737: 8737: public: 8737: typedef typename __match::__type __type; 8737: }; 8737: 8737: 8737: template 8737: struct __make_unsigned 8737: { typedef _Tp __type; }; 8737: 8737: template<> 8737: struct __make_unsigned 8737: { typedef unsigned char __type; }; 8737: 8737: template<> 8737: struct __make_unsigned 8737: { typedef unsigned char __type; }; 8737: 8737: template<> 8737: struct __make_unsigned 8737: { typedef unsigned short __type; }; 8737: 8737: template<> 8737: struct __make_unsigned 8737: { typedef unsigned int __type; }; 8737: 8737: template<> 8737: struct __make_unsigned 8737: { typedef unsigned long __type; }; 8737: 8737: template<> 8737: struct __make_unsigned 8737: { typedef unsigned long long __type; }; 8737: 8737: 8737: template<> 8737: struct __make_unsigned : __make_unsigned 8737: { }; 8737: 8737: 8737: 8737: template<> 8737: struct __make_unsigned<__int128> 8737: { typedef unsigned __int128 __type; }; 8737: # 1607 "/usr/include/c++/8/type_traits" 3 8737: template::value, 8737: bool _IsEnum = is_enum<_Tp>::value> 8737: class __make_unsigned_selector; 8737: 8737: template 8737: class __make_unsigned_selector<_Tp, true, false> 8737: { 8737: typedef __make_unsigned::type> __unsignedt; 8737: typedef typename __unsignedt::__type __unsigned_type; 8737: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8737: 8737: public: 8737: typedef typename __cv_unsigned::__type __type; 8737: }; 8737: 8737: template 8737: class __make_unsigned_selector<_Tp, false, true> 8737: { 8737: 8737: typedef unsigned char __smallest; 8737: static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); 8737: static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); 8737: static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); 8737: static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long); 8737: typedef conditional<__b3, unsigned long, unsigned long long> __cond3; 8737: typedef typename __cond3::type __cond3_type; 8737: typedef conditional<__b2, unsigned int, __cond3_type> __cond2; 8737: typedef typename __cond2::type __cond2_type; 8737: typedef conditional<__b1, unsigned short, __cond2_type> __cond1; 8737: typedef typename __cond1::type __cond1_type; 8737: 8737: typedef typename conditional<__b0, __smallest, __cond1_type>::type 8737: __unsigned_type; 8737: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8737: 8737: public: 8737: typedef typename __cv_unsigned::__type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct make_unsigned 8737: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 8737: 8737: 8737: template<> 8737: struct make_unsigned; 8737: 8737: 8737: 8737: template 8737: struct __make_signed 8737: { typedef _Tp __type; }; 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef signed char __type; }; 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef signed char __type; }; 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef signed short __type; }; 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef signed int __type; }; 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef signed long __type; }; 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef signed long long __type; }; 8737: # 1696 "/usr/include/c++/8/type_traits" 3 8737: template<> 8737: struct __make_signed : __make_signed 8737: { }; 8737: template<> 8737: struct __make_signed : __make_signed 8737: { }; 8737: 8737: 8737: 8737: template<> 8737: struct __make_signed 8737: { typedef __int128 __type; }; 8737: # 1726 "/usr/include/c++/8/type_traits" 3 8737: template::value, 8737: bool _IsEnum = is_enum<_Tp>::value> 8737: class __make_signed_selector; 8737: 8737: template 8737: class __make_signed_selector<_Tp, true, false> 8737: { 8737: typedef __make_signed::type> __signedt; 8737: typedef typename __signedt::__type __signed_type; 8737: typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; 8737: 8737: public: 8737: typedef typename __cv_signed::__type __type; 8737: }; 8737: 8737: template 8737: class __make_signed_selector<_Tp, false, true> 8737: { 8737: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 8737: 8737: public: 8737: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct make_signed 8737: { typedef typename __make_signed_selector<_Tp>::__type type; }; 8737: 8737: 8737: template<> 8737: struct make_signed; 8737: # 1776 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct remove_extent 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_extent<_Tp[_Size]> 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_extent<_Tp[]> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template 8737: struct remove_all_extents 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_all_extents<_Tp[_Size]> 8737: { typedef typename remove_all_extents<_Tp>::type type; }; 8737: 8737: template 8737: struct remove_all_extents<_Tp[]> 8737: { typedef typename remove_all_extents<_Tp>::type type; }; 8737: # 1813 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct __remove_pointer_helper 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct __remove_pointer_helper<_Tp, _Up*> 8737: { typedef _Up type; }; 8737: 8737: 8737: template 8737: struct remove_pointer 8737: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8737: { }; 8737: 8737: 8737: template, 8737: is_void<_Tp>>::value> 8737: struct __add_pointer_helper 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct __add_pointer_helper<_Tp, true> 8737: { typedef typename remove_reference<_Tp>::type* type; }; 8737: 8737: template 8737: struct add_pointer 8737: : public __add_pointer_helper<_Tp> 8737: { }; 8737: # 1852 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct __aligned_storage_msa 8737: { 8737: union __type 8737: { 8737: unsigned char __data[_Len]; 8737: struct __attribute__((__aligned__)) { } __align; 8737: }; 8737: }; 8737: # 1872 "/usr/include/c++/8/type_traits" 3 8737: template::__type)> 8737: struct aligned_storage 8737: { 8737: union type 8737: { 8737: unsigned char __data[_Len]; 8737: struct __attribute__((__aligned__((_Align)))) { } __align; 8737: }; 8737: }; 8737: 8737: template 8737: struct __strictest_alignment 8737: { 8737: static const size_t _S_alignment = 0; 8737: static const size_t _S_size = 0; 8737: }; 8737: 8737: template 8737: struct __strictest_alignment<_Tp, _Types...> 8737: { 8737: static const size_t _S_alignment = 8737: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 8737: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 8737: static const size_t _S_size = 8737: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 8737: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 8737: }; 8737: # 1911 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct aligned_union 8737: { 8737: private: 8737: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 8737: 8737: using __strictest = __strictest_alignment<_Types...>; 8737: static const size_t _S_len = _Len > __strictest::_S_size 8737: ? _Len : __strictest::_S_size; 8737: public: 8737: 8737: static const size_t alignment_value = __strictest::_S_alignment; 8737: 8737: typedef typename aligned_storage<_S_len, alignment_value>::type type; 8737: }; 8737: 8737: template 8737: const size_t aligned_union<_Len, _Types...>::alignment_value; 8737: 8737: 8737: 8737: template::value, 8737: bool _IsFunction = is_function<_Up>::value> 8737: struct __decay_selector; 8737: 8737: 8737: template 8737: struct __decay_selector<_Up, false, false> 8737: { typedef typename remove_cv<_Up>::type __type; }; 8737: 8737: template 8737: struct __decay_selector<_Up, true, false> 8737: { typedef typename remove_extent<_Up>::type* __type; }; 8737: 8737: template 8737: struct __decay_selector<_Up, false, true> 8737: { typedef typename add_pointer<_Up>::type __type; }; 8737: 8737: 8737: template 8737: class decay 8737: { 8737: typedef typename remove_reference<_Tp>::type __remove_type; 8737: 8737: public: 8737: typedef typename __decay_selector<__remove_type>::__type type; 8737: }; 8737: 8737: template 8737: class reference_wrapper; 8737: 8737: 8737: template 8737: struct __strip_reference_wrapper 8737: { 8737: typedef _Tp __type; 8737: }; 8737: 8737: template 8737: struct __strip_reference_wrapper > 8737: { 8737: typedef _Tp& __type; 8737: }; 8737: 8737: template 8737: struct __decay_and_strip 8737: { 8737: typedef typename __strip_reference_wrapper< 8737: typename decay<_Tp>::type>::__type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct enable_if 8737: { }; 8737: 8737: 8737: template 8737: struct enable_if 8737: { typedef _Tp type; }; 8737: 8737: template 8737: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 8737: 8737: 8737: 8737: template 8737: struct conditional 8737: { typedef _Iftrue type; }; 8737: 8737: 8737: template 8737: struct conditional 8737: { typedef _Iffalse type; }; 8737: 8737: 8737: template 8737: struct common_type; 8737: 8737: 8737: 8737: struct __do_common_type_impl 8737: { 8737: template 8737: static __success_type() 8737: : std::declval<_Up>())>::type> _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __common_type_impl 8737: : private __do_common_type_impl 8737: { 8737: typedef decltype(_S_test<_Tp, _Up>(0)) type; 8737: }; 8737: 8737: struct __do_member_type_wrapper 8737: { 8737: template 8737: static __success_type _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __member_type_wrapper 8737: : private __do_member_type_wrapper 8737: { 8737: typedef decltype(_S_test<_Tp>(0)) type; 8737: }; 8737: 8737: template 8737: struct __expanded_common_type_wrapper 8737: { 8737: typedef common_type type; 8737: }; 8737: 8737: template 8737: struct __expanded_common_type_wrapper<__failure_type, _Args...> 8737: { typedef __failure_type type; }; 8737: 8737: template 8737: struct common_type<_Tp> 8737: { typedef typename decay<_Tp>::type type; }; 8737: 8737: template 8737: struct common_type<_Tp, _Up> 8737: : public __common_type_impl<_Tp, _Up>::type 8737: { }; 8737: 8737: template 8737: struct common_type<_Tp, _Up, _Vp...> 8737: : public __expanded_common_type_wrapper>::type, _Vp...>::type 8737: { }; 8737: 8737: 8737: template 8737: struct underlying_type 8737: { 8737: typedef __underlying_type(_Tp) type; 8737: }; 8737: 8737: template 8737: struct __declval_protector 8737: { 8737: static const bool __stop = false; 8737: }; 8737: 8737: template 8737: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 8737: { 8737: static_assert(__declval_protector<_Tp>::__stop, 8737: "declval() must not be used!"); 8737: return __declval<_Tp>(0); 8737: } 8737: 8737: 8737: template 8737: class result_of; 8737: 8737: 8737: 8737: 8737: 8737: struct __invoke_memfun_ref { }; 8737: struct __invoke_memfun_deref { }; 8737: struct __invoke_memobj_ref { }; 8737: struct __invoke_memobj_deref { }; 8737: struct __invoke_other { }; 8737: 8737: 8737: template 8737: struct __result_of_success : __success_type<_Tp> 8737: { using __invoke_type = _Tag; }; 8737: 8737: 8737: struct __result_of_memfun_ref_impl 8737: { 8737: template 8737: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 8737: ), __invoke_memfun_ref> _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __result_of_memfun_ref 8737: : private __result_of_memfun_ref_impl 8737: { 8737: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8737: }; 8737: 8737: 8737: struct __result_of_memfun_deref_impl 8737: { 8737: template 8737: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 8737: ), __invoke_memfun_deref> _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __result_of_memfun_deref 8737: : private __result_of_memfun_deref_impl 8737: { 8737: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8737: }; 8737: 8737: 8737: struct __result_of_memobj_ref_impl 8737: { 8737: template 8737: static __result_of_success().*std::declval<_Fp>() 8737: ), __invoke_memobj_ref> _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __result_of_memobj_ref 8737: : private __result_of_memobj_ref_impl 8737: { 8737: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8737: }; 8737: 8737: 8737: struct __result_of_memobj_deref_impl 8737: { 8737: template 8737: static __result_of_success()).*std::declval<_Fp>() 8737: ), __invoke_memobj_deref> _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __result_of_memobj_deref 8737: : private __result_of_memobj_deref_impl 8737: { 8737: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8737: }; 8737: 8737: template 8737: struct __result_of_memobj; 8737: 8737: template 8737: struct __result_of_memobj<_Res _Class::*, _Arg> 8737: { 8737: typedef typename remove_cv::type>::type _Argval; 8737: typedef _Res _Class::* _MemPtr; 8737: typedef typename conditional<__or_, 8737: is_base_of<_Class, _Argval>>::value, 8737: __result_of_memobj_ref<_MemPtr, _Arg>, 8737: __result_of_memobj_deref<_MemPtr, _Arg> 8737: >::type::type type; 8737: }; 8737: 8737: template 8737: struct __result_of_memfun; 8737: 8737: template 8737: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 8737: { 8737: typedef typename remove_cv::type>::type _Argval; 8737: typedef _Res _Class::* _MemPtr; 8737: typedef typename conditional<__or_, 8737: is_base_of<_Class, _Argval>>::value, 8737: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 8737: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 8737: >::type::type type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template::type> 8737: struct __inv_unwrap 8737: { 8737: using type = _Tp; 8737: }; 8737: 8737: template 8737: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 8737: { 8737: using type = _Up&; 8737: }; 8737: 8737: template 8737: struct __result_of_impl 8737: { 8737: typedef __failure_type type; 8737: }; 8737: 8737: template 8737: struct __result_of_impl 8737: : public __result_of_memobj::type, 8737: typename __inv_unwrap<_Arg>::type> 8737: { }; 8737: 8737: template 8737: struct __result_of_impl 8737: : public __result_of_memfun::type, 8737: typename __inv_unwrap<_Arg>::type, _Args...> 8737: { }; 8737: 8737: 8737: struct __result_of_other_impl 8737: { 8737: template 8737: static __result_of_success()(std::declval<_Args>()...) 8737: ), __invoke_other> _S_test(int); 8737: 8737: template 8737: static __failure_type _S_test(...); 8737: }; 8737: 8737: template 8737: struct __result_of_impl 8737: : private __result_of_other_impl 8737: { 8737: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 8737: }; 8737: 8737: 8737: template 8737: struct __invoke_result 8737: : public __result_of_impl< 8737: is_member_object_pointer< 8737: typename remove_reference<_Functor>::type 8737: >::value, 8737: is_member_function_pointer< 8737: typename remove_reference<_Functor>::type 8737: >::value, 8737: _Functor, _ArgTypes... 8737: >::type 8737: { }; 8737: 8737: template 8737: struct result_of<_Functor(_ArgTypes...)> 8737: : public __invoke_result<_Functor, _ArgTypes...> 8737: { }; 8737: # 2329 "/usr/include/c++/8/type_traits" 3 8737: template using __void_t = void; 8737: 8737: 8737: 8737: 8737: template using void_t = void; 8737: 8737: 8737: 8737: template class _Op, typename... _Args> 8737: struct __detector 8737: { 8737: using value_t = false_type; 8737: using type = _Default; 8737: }; 8737: 8737: 8737: template class _Op, 8737: typename... _Args> 8737: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 8737: { 8737: using value_t = true_type; 8737: using type = _Op<_Args...>; 8737: }; 8737: 8737: 8737: template class _Op, 8737: typename... _Args> 8737: using __detected_or = __detector<_Default, void, _Op, _Args...>; 8737: 8737: 8737: template class _Op, 8737: typename... _Args> 8737: using __detected_or_t 8737: = typename __detected_or<_Default, _Op, _Args...>::type; 8737: # 2382 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct __is_swappable; 8737: 8737: template 8737: struct __is_nothrow_swappable; 8737: 8737: template 8737: class tuple; 8737: 8737: template 8737: struct __is_tuple_like_impl : false_type 8737: { }; 8737: 8737: template 8737: struct __is_tuple_like_impl> : true_type 8737: { }; 8737: 8737: 8737: template 8737: struct __is_tuple_like 8737: : public __is_tuple_like_impl::type>::type>::type 8737: { }; 8737: 8737: template 8737: inline 8737: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8737: is_move_constructible<_Tp>, 8737: is_move_assignable<_Tp>>::value>::type 8737: swap(_Tp&, _Tp&) 8737: noexcept(__and_, 8737: is_nothrow_move_assignable<_Tp>>::value); 8737: 8737: template 8737: inline 8737: typename enable_if<__is_swappable<_Tp>::value>::type 8737: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8737: noexcept(__is_nothrow_swappable<_Tp>::value); 8737: 8737: namespace __swappable_details { 8737: using std::swap; 8737: 8737: struct __do_is_swappable_impl 8737: { 8737: template(), std::declval<_Tp&>()))> 8737: static true_type __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: struct __do_is_nothrow_swappable_impl 8737: { 8737: template 8737: static __bool_constant< 8737: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 8737: > __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: } 8737: 8737: template 8737: struct __is_swappable_impl 8737: : public __swappable_details::__do_is_swappable_impl 8737: { 8737: typedef decltype(__test<_Tp>(0)) type; 8737: }; 8737: 8737: template 8737: struct __is_nothrow_swappable_impl 8737: : public __swappable_details::__do_is_nothrow_swappable_impl 8737: { 8737: typedef decltype(__test<_Tp>(0)) type; 8737: }; 8737: 8737: template 8737: struct __is_swappable 8737: : public __is_swappable_impl<_Tp>::type 8737: { }; 8737: 8737: template 8737: struct __is_nothrow_swappable 8737: : public __is_nothrow_swappable_impl<_Tp>::type 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_swappable 8737: : public __is_swappable_impl<_Tp>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_swappable 8737: : public __is_nothrow_swappable_impl<_Tp>::type 8737: { }; 8737: # 2499 "/usr/include/c++/8/type_traits" 3 8737: namespace __swappable_with_details { 8737: using std::swap; 8737: 8737: struct __do_is_swappable_with_impl 8737: { 8737: template(), std::declval<_Up>())), 8737: typename 8737: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 8737: static true_type __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: struct __do_is_nothrow_swappable_with_impl 8737: { 8737: template 8737: static __bool_constant< 8737: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 8737: && 8737: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 8737: > __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: }; 8737: 8737: } 8737: 8737: template 8737: struct __is_swappable_with_impl 8737: : public __swappable_with_details::__do_is_swappable_with_impl 8737: { 8737: typedef decltype(__test<_Tp, _Up>(0)) type; 8737: }; 8737: 8737: 8737: template 8737: struct __is_swappable_with_impl<_Tp&, _Tp&> 8737: : public __swappable_details::__do_is_swappable_impl 8737: { 8737: typedef decltype(__test<_Tp&>(0)) type; 8737: }; 8737: 8737: template 8737: struct __is_nothrow_swappable_with_impl 8737: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 8737: { 8737: typedef decltype(__test<_Tp, _Up>(0)) type; 8737: }; 8737: 8737: 8737: template 8737: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 8737: : public __swappable_details::__do_is_nothrow_swappable_impl 8737: { 8737: typedef decltype(__test<_Tp&>(0)) type; 8737: }; 8737: 8737: 8737: template 8737: struct is_swappable_with 8737: : public __is_swappable_with_impl<_Tp, _Up>::type 8737: { }; 8737: 8737: 8737: template 8737: struct is_nothrow_swappable_with 8737: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 8737: { }; 8737: # 2587 "/usr/include/c++/8/type_traits" 3 8737: template 8737: struct __is_invocable_impl : false_type { }; 8737: 8737: template 8737: struct __is_invocable_impl<_Result, _Ret, __void_t> 8737: : __or_, is_convertible>::type 8737: { }; 8737: 8737: template 8737: struct __is_invocable 8737: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 8737: { }; 8737: 8737: template 8737: constexpr bool __call_is_nt(__invoke_memfun_ref) 8737: { 8737: using _Up = typename __inv_unwrap<_Tp>::type; 8737: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 8737: std::declval<_Args>()...)); 8737: } 8737: 8737: template 8737: constexpr bool __call_is_nt(__invoke_memfun_deref) 8737: { 8737: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 8737: std::declval<_Args>()...)); 8737: } 8737: 8737: template 8737: constexpr bool __call_is_nt(__invoke_memobj_ref) 8737: { 8737: using _Up = typename __inv_unwrap<_Tp>::type; 8737: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 8737: } 8737: 8737: template 8737: constexpr bool __call_is_nt(__invoke_memobj_deref) 8737: { 8737: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 8737: } 8737: 8737: template 8737: constexpr bool __call_is_nt(__invoke_other) 8737: { 8737: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 8737: } 8737: 8737: template 8737: struct __call_is_nothrow 8737: : __bool_constant< 8737: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 8737: > 8737: { }; 8737: 8737: template 8737: using __call_is_nothrow_ 8737: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 8737: 8737: 8737: template 8737: struct __is_nothrow_invocable 8737: : __and_<__is_invocable<_Fn, _Args...>, 8737: __call_is_nothrow_<_Fn, _Args...>>::type 8737: { }; 8737: 8737: struct __nonesuch { 8737: __nonesuch() = delete; 8737: ~__nonesuch() = delete; 8737: __nonesuch(__nonesuch const&) = delete; 8737: void operator=(__nonesuch const&) = delete; 8737: }; 8737: # 2943 "/usr/include/c++/8/type_traits" 3 8737: 8737: } 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/c++/8/cstddef" 1 3 4 8737: # 42 "/usr/include/c++/8/cstddef" 3 4 8737: 8737: # 43 "/usr/include/c++/8/cstddef" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 149 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8737: typedef long int ptrdiff_t; 8737: # 216 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8737: typedef long unsigned int size_t; 8737: # 426 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8737: typedef struct { 8737: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 8737: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 8737: # 437 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8737: } max_align_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef decltype(nullptr) nullptr_t; 8737: # 51 "/usr/include/c++/8/cstddef" 2 3 8737: 8737: 8737: namespace std 8737: { 8737: 8737: using ::max_align_t; 8737: } 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/c++/8/utility" 1 3 4 8737: # 58 "/usr/include/c++/8/utility" 3 4 8737: 8737: # 59 "/usr/include/c++/8/utility" 3 8737: # 69 "/usr/include/c++/8/utility" 3 8737: # 1 "/usr/include/c++/8/bits/stl_relops.h" 1 3 8737: # 67 "/usr/include/c++/8/bits/stl_relops.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace rel_ops 8737: { 8737: # 85 "/usr/include/c++/8/bits/stl_relops.h" 3 8737: template 8737: inline bool 8737: operator!=(const _Tp& __x, const _Tp& __y) 8737: { return !(__x == __y); } 8737: # 98 "/usr/include/c++/8/bits/stl_relops.h" 3 8737: template 8737: inline bool 8737: operator>(const _Tp& __x, const _Tp& __y) 8737: { return __y < __x; } 8737: # 111 "/usr/include/c++/8/bits/stl_relops.h" 3 8737: template 8737: inline bool 8737: operator<=(const _Tp& __x, const _Tp& __y) 8737: { return !(__y < __x); } 8737: # 124 "/usr/include/c++/8/bits/stl_relops.h" 3 8737: template 8737: inline bool 8737: operator>=(const _Tp& __x, const _Tp& __y) 8737: { return !(__x < __y); } 8737: } 8737: 8737: 8737: } 8737: # 70 "/usr/include/c++/8/utility" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_pair.h" 1 3 8737: # 59 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: # 1 "/usr/include/c++/8/bits/move.h" 1 3 8737: # 34 "/usr/include/c++/8/bits/move.h" 3 8737: # 1 "/usr/include/c++/8/bits/concept_check.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/concept_check.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/concept_check.h" 3 8737: # 35 "/usr/include/c++/8/bits/move.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline constexpr _Tp* 8737: __addressof(_Tp& __r) noexcept 8737: { return __builtin_addressof(__r); } 8737: 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 72 "/usr/include/c++/8/bits/move.h" 3 8737: template 8737: constexpr _Tp&& 8737: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 8737: { return static_cast<_Tp&&>(__t); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: constexpr _Tp&& 8737: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 8737: { 8737: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 8737: " substituting _Tp is an lvalue reference type"); 8737: return static_cast<_Tp&&>(__t); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: constexpr typename std::remove_reference<_Tp>::type&& 8737: move(_Tp&& __t) noexcept 8737: { return static_cast::type&&>(__t); } 8737: 8737: 8737: template 8737: struct __move_if_noexcept_cond 8737: : public __and_<__not_>, 8737: is_copy_constructible<_Tp>>::type { }; 8737: # 116 "/usr/include/c++/8/bits/move.h" 3 8737: template 8737: constexpr typename 8737: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 8737: move_if_noexcept(_Tp& __x) noexcept 8737: { return std::move(__x); } 8737: # 136 "/usr/include/c++/8/bits/move.h" 3 8737: template 8737: inline _Tp* 8737: addressof(_Tp& __r) noexcept 8737: { return std::__addressof(__r); } 8737: 8737: 8737: 8737: template 8737: const _Tp* addressof(const _Tp&&) = delete; 8737: 8737: 8737: template 8737: inline _Tp 8737: __exchange(_Tp& __obj, _Up&& __new_val) 8737: { 8737: _Tp __old_val = std::move(__obj); 8737: __obj = std::forward<_Up>(__new_val); 8737: return __old_val; 8737: } 8737: # 176 "/usr/include/c++/8/bits/move.h" 3 8737: template 8737: inline 8737: 8737: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8737: is_move_constructible<_Tp>, 8737: is_move_assignable<_Tp>>::value>::type 8737: swap(_Tp& __a, _Tp& __b) 8737: noexcept(__and_, 8737: is_nothrow_move_assignable<_Tp>>::value) 8737: 8737: 8737: 8737: 8737: { 8737: 8737: 8737: 8737: _Tp __tmp = std::move(__a); 8737: __a = std::move(__b); 8737: __b = std::move(__tmp); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: inline 8737: 8737: typename enable_if<__is_swappable<_Tp>::value>::type 8737: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8737: noexcept(__is_nothrow_swappable<_Tp>::value) 8737: 8737: 8737: 8737: 8737: { 8737: for (size_t __n = 0; __n < _Nm; ++__n) 8737: swap(__a[__n], __b[__n]); 8737: } 8737: 8737: 8737: 8737: } 8737: # 60 "/usr/include/c++/8/bits/stl_pair.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 76 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 8737: 8737: 8737: constexpr piecewise_construct_t piecewise_construct = 8737: piecewise_construct_t(); 8737: 8737: 8737: template 8737: class tuple; 8737: 8737: template 8737: struct _Index_tuple; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _PCC 8737: { 8737: template 8737: static constexpr bool _ConstructiblePair() 8737: { 8737: return __and_, 8737: is_constructible<_T2, const _U2&>>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyConvertiblePair() 8737: { 8737: return __and_, 8737: is_convertible>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _MoveConstructiblePair() 8737: { 8737: return __and_, 8737: is_constructible<_T2, _U2&&>>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyMoveConvertiblePair() 8737: { 8737: return __and_, 8737: is_convertible<_U2&&, _T2>>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _CopyMovePair() 8737: { 8737: using __do_converts = __and_, 8737: is_convertible<_U2&&, _T2>>; 8737: using __converts = typename conditional<__implicit, 8737: __do_converts, 8737: __not_<__do_converts>>::type; 8737: return __and_, 8737: is_constructible<_T2, _U2&&>, 8737: __converts 8737: >::value; 8737: } 8737: 8737: template 8737: static constexpr bool _MoveCopyPair() 8737: { 8737: using __do_converts = __and_, 8737: is_convertible>; 8737: using __converts = typename conditional<__implicit, 8737: __do_converts, 8737: __not_<__do_converts>>::type; 8737: return __and_, 8737: is_constructible<_T2, const _U2&&>, 8737: __converts 8737: >::value; 8737: } 8737: }; 8737: 8737: template 8737: struct _PCC 8737: { 8737: template 8737: static constexpr bool _ConstructiblePair() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyConvertiblePair() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _MoveConstructiblePair() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyMoveConvertiblePair() 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: struct __nonesuch_no_braces : std::__nonesuch { 8737: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 8737: }; 8737: # 197 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: template 8737: struct pair 8737: { 8737: typedef _T1 first_type; 8737: typedef _T2 second_type; 8737: 8737: _T1 first; 8737: _T2 second; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template , 8737: __is_implicitly_default_constructible<_U2>> 8737: ::value, bool>::type = true> 8737: 8737: constexpr pair() 8737: : first(), second() { } 8737: 8737: 8737: template , 8737: is_default_constructible<_U2>, 8737: __not_< 8737: __and_<__is_implicitly_default_constructible<_U1>, 8737: __is_implicitly_default_constructible<_U2>>>> 8737: ::value, bool>::type = false> 8737: explicit constexpr pair() 8737: : first(), second() { } 8737: # 241 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: using _PCCP = _PCC; 8737: 8737: template() 8737: && _PCCP::template 8737: _ImplicitlyConvertiblePair<_U1, _U2>(), 8737: bool>::type=true> 8737: constexpr pair(const _T1& __a, const _T2& __b) 8737: : first(__a), second(__b) { } 8737: 8737: template() 8737: && !_PCCP::template 8737: _ImplicitlyConvertiblePair<_U1, _U2>(), 8737: bool>::type=false> 8737: explicit constexpr pair(const _T1& __a, const _T2& __b) 8737: : first(__a), second(__b) { } 8737: # 269 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: template 8737: using _PCCFP = _PCC::value 8737: || !is_same<_T2, _U2>::value, 8737: _T1, _T2>; 8737: 8737: template::template 8737: _ConstructiblePair<_U1, _U2>() 8737: && _PCCFP<_U1, _U2>::template 8737: _ImplicitlyConvertiblePair<_U1, _U2>(), 8737: bool>::type=true> 8737: constexpr pair(const pair<_U1, _U2>& __p) 8737: : first(__p.first), second(__p.second) { } 8737: 8737: template::template 8737: _ConstructiblePair<_U1, _U2>() 8737: && !_PCCFP<_U1, _U2>::template 8737: _ImplicitlyConvertiblePair<_U1, _U2>(), 8737: bool>::type=false> 8737: explicit constexpr pair(const pair<_U1, _U2>& __p) 8737: : first(__p.first), second(__p.second) { } 8737: 8737: constexpr pair(const pair&) = default; 8737: constexpr pair(pair&&) = default; 8737: 8737: 8737: template(), 8737: bool>::type=true> 8737: constexpr pair(_U1&& __x, const _T2& __y) 8737: : first(std::forward<_U1>(__x)), second(__y) { } 8737: 8737: template(), 8737: bool>::type=false> 8737: explicit constexpr pair(_U1&& __x, const _T2& __y) 8737: : first(std::forward<_U1>(__x)), second(__y) { } 8737: 8737: template(), 8737: bool>::type=true> 8737: constexpr pair(const _T1& __x, _U2&& __y) 8737: : first(__x), second(std::forward<_U2>(__y)) { } 8737: 8737: template(), 8737: bool>::type=false> 8737: explicit pair(const _T1& __x, _U2&& __y) 8737: : first(__x), second(std::forward<_U2>(__y)) { } 8737: 8737: template() 8737: && _PCCP::template 8737: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8737: bool>::type=true> 8737: constexpr pair(_U1&& __x, _U2&& __y) 8737: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8737: 8737: template() 8737: && !_PCCP::template 8737: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8737: bool>::type=false> 8737: explicit constexpr pair(_U1&& __x, _U2&& __y) 8737: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8737: 8737: 8737: template::template 8737: _MoveConstructiblePair<_U1, _U2>() 8737: && _PCCFP<_U1, _U2>::template 8737: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8737: bool>::type=true> 8737: constexpr pair(pair<_U1, _U2>&& __p) 8737: : first(std::forward<_U1>(__p.first)), 8737: second(std::forward<_U2>(__p.second)) { } 8737: 8737: template::template 8737: _MoveConstructiblePair<_U1, _U2>() 8737: && !_PCCFP<_U1, _U2>::template 8737: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8737: bool>::type=false> 8737: explicit constexpr pair(pair<_U1, _U2>&& __p) 8737: : first(std::forward<_U1>(__p.first)), 8737: second(std::forward<_U2>(__p.second)) { } 8737: 8737: template 8737: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 8737: 8737: pair& 8737: operator=(typename conditional< 8737: __and_, 8737: is_copy_assignable<_T2>>::value, 8737: const pair&, const __nonesuch_no_braces&>::type __p) 8737: { 8737: first = __p.first; 8737: second = __p.second; 8737: return *this; 8737: } 8737: 8737: pair& 8737: operator=(typename conditional< 8737: __not_<__and_, 8737: is_copy_assignable<_T2>>>::value, 8737: const pair&, const __nonesuch_no_braces&>::type __p) = delete; 8737: 8737: pair& 8737: operator=(typename conditional< 8737: __and_, 8737: is_move_assignable<_T2>>::value, 8737: pair&&, __nonesuch_no_braces&&>::type __p) 8737: noexcept(__and_, 8737: is_nothrow_move_assignable<_T2>>::value) 8737: { 8737: first = std::forward(__p.first); 8737: second = std::forward(__p.second); 8737: return *this; 8737: } 8737: 8737: template 8737: typename enable_if<__and_, 8737: is_assignable<_T2&, const _U2&>>::value, 8737: pair&>::type 8737: operator=(const pair<_U1, _U2>& __p) 8737: { 8737: first = __p.first; 8737: second = __p.second; 8737: return *this; 8737: } 8737: 8737: template 8737: typename enable_if<__and_, 8737: is_assignable<_T2&, _U2&&>>::value, 8737: pair&>::type 8737: operator=(pair<_U1, _U2>&& __p) 8737: { 8737: first = std::forward<_U1>(__p.first); 8737: second = std::forward<_U2>(__p.second); 8737: return *this; 8737: } 8737: 8737: void 8737: swap(pair& __p) 8737: noexcept(__and_<__is_nothrow_swappable<_T1>, 8737: __is_nothrow_swappable<_T2>>::value) 8737: { 8737: using std::swap; 8737: swap(first, __p.first); 8737: swap(second, __p.second); 8737: } 8737: 8737: private: 8737: template 8737: pair(tuple<_Args1...>&, tuple<_Args2...>&, 8737: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline constexpr bool 8737: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8737: { return __x.first == __y.first && __x.second == __y.second; } 8737: 8737: 8737: template 8737: inline constexpr bool 8737: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8737: { return __x.first < __y.first 8737: || (!(__y.first < __x.first) && __x.second < __y.second); } 8737: 8737: 8737: template 8737: inline constexpr bool 8737: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline constexpr bool 8737: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline constexpr bool 8737: operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline constexpr bool 8737: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline 8737: 8737: 8737: typename enable_if<__and_<__is_swappable<_T1>, 8737: __is_swappable<_T2>>::value>::type 8737: 8737: 8737: 8737: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: template 8737: typename enable_if, 8737: __is_swappable<_T2>>::value>::type 8737: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 8737: # 516 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: template 8737: constexpr pair::__type, 8737: typename __decay_and_strip<_T2>::__type> 8737: make_pair(_T1&& __x, _T2&& __y) 8737: { 8737: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 8737: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 8737: typedef pair<__ds_type1, __ds_type2> __pair_type; 8737: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 8737: } 8737: # 535 "/usr/include/c++/8/bits/stl_pair.h" 3 8737: 8737: } 8737: # 71 "/usr/include/c++/8/utility" 2 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/initializer_list" 1 3 8737: # 33 "/usr/include/c++/8/initializer_list" 3 8737: 8737: # 34 "/usr/include/c++/8/initializer_list" 3 8737: 8737: 8737: 8737: 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: 8737: 8737: namespace std 8737: { 8737: 8737: template 8737: class initializer_list 8737: { 8737: public: 8737: typedef _E value_type; 8737: typedef const _E& reference; 8737: typedef const _E& const_reference; 8737: typedef size_t size_type; 8737: typedef const _E* iterator; 8737: typedef const _E* const_iterator; 8737: 8737: private: 8737: iterator _M_array; 8737: size_type _M_len; 8737: 8737: 8737: constexpr initializer_list(const_iterator __a, size_type __l) 8737: : _M_array(__a), _M_len(__l) { } 8737: 8737: public: 8737: constexpr initializer_list() noexcept 8737: : _M_array(0), _M_len(0) { } 8737: 8737: 8737: constexpr size_type 8737: size() const noexcept { return _M_len; } 8737: 8737: 8737: constexpr const_iterator 8737: begin() const noexcept { return _M_array; } 8737: 8737: 8737: constexpr const_iterator 8737: end() const noexcept { return begin() + size(); } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: constexpr const _Tp* 8737: begin(initializer_list<_Tp> __ils) noexcept 8737: { return __ils.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: constexpr const _Tp* 8737: end(initializer_list<_Tp> __ils) noexcept 8737: { return __ils.end(); } 8737: } 8737: 8737: #pragma GCC visibility pop 8737: # 77 "/usr/include/c++/8/utility" 2 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: struct tuple_size; 8737: 8737: 8737: 8737: 8737: 8737: template::type, 8737: typename = typename enable_if::value>::type, 8737: size_t = tuple_size<_Tp>::value> 8737: using __enable_if_has_tuple_size = _Tp; 8737: 8737: template 8737: struct tuple_size> 8737: : public tuple_size<_Tp> { }; 8737: 8737: template 8737: struct tuple_size> 8737: : public tuple_size<_Tp> { }; 8737: 8737: template 8737: struct tuple_size> 8737: : public tuple_size<_Tp> { }; 8737: 8737: 8737: template 8737: struct tuple_element; 8737: 8737: 8737: template 8737: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 8737: 8737: template 8737: struct tuple_element<__i, const _Tp> 8737: { 8737: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 8737: }; 8737: 8737: template 8737: struct tuple_element<__i, volatile _Tp> 8737: { 8737: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 8737: }; 8737: 8737: template 8737: struct tuple_element<__i, const volatile _Tp> 8737: { 8737: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 8737: }; 8737: # 148 "/usr/include/c++/8/utility" 3 8737: template 8737: struct __is_tuple_like_impl> : true_type 8737: { }; 8737: 8737: 8737: template 8737: struct tuple_size> 8737: : public integral_constant { }; 8737: 8737: 8737: template 8737: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 8737: { typedef _Tp1 type; }; 8737: 8737: 8737: template 8737: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 8737: { typedef _Tp2 type; }; 8737: 8737: template 8737: struct __pair_get; 8737: 8737: template<> 8737: struct __pair_get<0> 8737: { 8737: template 8737: static constexpr _Tp1& 8737: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8737: { return __pair.first; } 8737: 8737: template 8737: static constexpr _Tp1&& 8737: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8737: { return std::forward<_Tp1>(__pair.first); } 8737: 8737: template 8737: static constexpr const _Tp1& 8737: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8737: { return __pair.first; } 8737: 8737: template 8737: static constexpr const _Tp1&& 8737: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8737: { return std::forward(__pair.first); } 8737: }; 8737: 8737: template<> 8737: struct __pair_get<1> 8737: { 8737: template 8737: static constexpr _Tp2& 8737: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8737: { return __pair.second; } 8737: 8737: template 8737: static constexpr _Tp2&& 8737: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8737: { return std::forward<_Tp2>(__pair.second); } 8737: 8737: template 8737: static constexpr const _Tp2& 8737: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8737: { return __pair.second; } 8737: 8737: template 8737: static constexpr const _Tp2&& 8737: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8737: { return std::forward(__pair.second); } 8737: }; 8737: 8737: template 8737: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8737: get(std::pair<_Tp1, _Tp2>& __in) noexcept 8737: { return __pair_get<_Int>::__get(__in); } 8737: 8737: template 8737: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8737: get(std::pair<_Tp1, _Tp2>&& __in) noexcept 8737: { return __pair_get<_Int>::__move_get(std::move(__in)); } 8737: 8737: template 8737: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8737: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 8737: { return __pair_get<_Int>::__const_get(__in); } 8737: 8737: template 8737: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8737: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 8737: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 8737: # 293 "/usr/include/c++/8/utility" 3 8737: template struct _Index_tuple { }; 8737: # 302 "/usr/include/c++/8/utility" 3 8737: template 8737: struct _Build_index_tuple 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: using __type = _Index_tuple<__integer_pack(_Num)...>; 8737: 8737: }; 8737: # 397 "/usr/include/c++/8/utility" 3 8737: 8737: } 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qconfig.h" 1 3 4 8737: # 65 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtcore-config.h" 1 3 4 8737: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 96 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsystemdetection.h" 1 3 4 8737: # 97 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qprocessordetection.h" 1 3 4 8737: # 98 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcompilerdetection.h" 1 3 4 8737: # 99 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 109 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: # 1 "/usr/include/c++/8/algorithm" 1 3 4 8737: # 58 "/usr/include/c++/8/algorithm" 3 4 8737: 8737: # 59 "/usr/include/c++/8/algorithm" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_algobase.h" 1 3 8737: # 60 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: # 1 "/usr/include/c++/8/bits/functexcept.h" 1 3 8737: # 40 "/usr/include/c++/8/bits/functexcept.h" 3 8737: # 1 "/usr/include/c++/8/bits/exception_defines.h" 1 3 8737: # 41 "/usr/include/c++/8/bits/functexcept.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: void 8737: __throw_bad_exception(void) __attribute__((__noreturn__)); 8737: 8737: 8737: void 8737: __throw_bad_alloc(void) __attribute__((__noreturn__)); 8737: 8737: 8737: void 8737: __throw_bad_cast(void) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_bad_typeid(void) __attribute__((__noreturn__)); 8737: 8737: 8737: void 8737: __throw_logic_error(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_domain_error(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_length_error(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 8737: __attribute__((__format__(__gnu_printf__, 1, 2))); 8737: 8737: void 8737: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_range_error(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 8737: 8737: 8737: void 8737: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_system_error(int) __attribute__((__noreturn__)); 8737: 8737: void 8737: __throw_future_error(int) __attribute__((__noreturn__)); 8737: 8737: 8737: void 8737: __throw_bad_function_call() __attribute__((__noreturn__)); 8737: 8737: 8737: } 8737: # 61 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/cpp_type_traits.h" 1 3 8737: # 35 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8737: 8737: # 36 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8737: # 67 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8737: extern "C++" { 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: struct __true_type { }; 8737: struct __false_type { }; 8737: 8737: template 8737: struct __truth_type 8737: { typedef __false_type __type; }; 8737: 8737: template<> 8737: struct __truth_type 8737: { typedef __true_type __type; }; 8737: 8737: 8737: 8737: template 8737: struct __traitor 8737: { 8737: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 8737: typedef typename __truth_type<__value>::__type __type; 8737: }; 8737: 8737: 8737: template 8737: struct __are_same 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: template 8737: struct __are_same<_Tp, _Tp> 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: template 8737: struct __is_void 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_void 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_integer 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_integer 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: # 261 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8737: template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; 8737: # 278 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8737: template 8737: struct __is_floating 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: 8737: template<> 8737: struct __is_floating 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_floating 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_floating 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_pointer 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: template 8737: struct __is_pointer<_Tp*> 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_arithmetic 8737: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 8737: { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_scalar 8737: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 8737: { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_char 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_char 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: template<> 8737: struct __is_char 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: template 8737: struct __is_byte 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_byte 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_byte 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template<> 8737: struct __is_byte 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_move_iterator 8737: { 8737: enum { __value = 0 }; 8737: typedef __false_type __type; 8737: }; 8737: 8737: 8737: 8737: template 8737: inline _Iterator 8737: __miter_base(_Iterator __it) 8737: { return __it; } 8737: 8737: 8737: } 8737: } 8737: # 62 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: # 1 "/usr/include/c++/8/ext/type_traits.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/type_traits.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/type_traits.h" 3 8737: 8737: 8737: 8737: 8737: extern "C++" { 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: struct __enable_if 8737: { }; 8737: 8737: template 8737: struct __enable_if 8737: { typedef _Tp __type; }; 8737: 8737: 8737: 8737: template 8737: struct __conditional_type 8737: { typedef _Iftrue __type; }; 8737: 8737: template 8737: struct __conditional_type 8737: { typedef _Iffalse __type; }; 8737: 8737: 8737: 8737: template 8737: struct __add_unsigned 8737: { 8737: private: 8737: typedef __enable_if::__value, _Tp> __if_type; 8737: 8737: public: 8737: typedef typename __if_type::__type __type; 8737: }; 8737: 8737: template<> 8737: struct __add_unsigned 8737: { typedef unsigned char __type; }; 8737: 8737: template<> 8737: struct __add_unsigned 8737: { typedef unsigned char __type; }; 8737: 8737: template<> 8737: struct __add_unsigned 8737: { typedef unsigned short __type; }; 8737: 8737: template<> 8737: struct __add_unsigned 8737: { typedef unsigned int __type; }; 8737: 8737: template<> 8737: struct __add_unsigned 8737: { typedef unsigned long __type; }; 8737: 8737: template<> 8737: struct __add_unsigned 8737: { typedef unsigned long long __type; }; 8737: 8737: 8737: template<> 8737: struct __add_unsigned; 8737: 8737: template<> 8737: struct __add_unsigned; 8737: 8737: 8737: 8737: template 8737: struct __remove_unsigned 8737: { 8737: private: 8737: typedef __enable_if::__value, _Tp> __if_type; 8737: 8737: public: 8737: typedef typename __if_type::__type __type; 8737: }; 8737: 8737: template<> 8737: struct __remove_unsigned 8737: { typedef signed char __type; }; 8737: 8737: template<> 8737: struct __remove_unsigned 8737: { typedef signed char __type; }; 8737: 8737: template<> 8737: struct __remove_unsigned 8737: { typedef short __type; }; 8737: 8737: template<> 8737: struct __remove_unsigned 8737: { typedef int __type; }; 8737: 8737: template<> 8737: struct __remove_unsigned 8737: { typedef long __type; }; 8737: 8737: template<> 8737: struct __remove_unsigned 8737: { typedef long long __type; }; 8737: 8737: 8737: template<> 8737: struct __remove_unsigned; 8737: 8737: template<> 8737: struct __remove_unsigned; 8737: 8737: 8737: 8737: template 8737: inline bool 8737: __is_null_pointer(_Type* __ptr) 8737: { return __ptr == 0; } 8737: 8737: template 8737: inline bool 8737: __is_null_pointer(_Type) 8737: { return false; } 8737: 8737: 8737: inline bool 8737: __is_null_pointer(std::nullptr_t) 8737: { return true; } 8737: 8737: 8737: 8737: template::__value> 8737: struct __promote 8737: { typedef double __type; }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __promote<_Tp, false> 8737: { }; 8737: 8737: template<> 8737: struct __promote 8737: { typedef long double __type; }; 8737: 8737: template<> 8737: struct __promote 8737: { typedef double __type; }; 8737: 8737: template<> 8737: struct __promote 8737: { typedef float __type; }; 8737: 8737: template::__type, 8737: typename _Up2 = typename __promote<_Up>::__type> 8737: struct __promote_2 8737: { 8737: typedef __typeof__(_Tp2() + _Up2()) __type; 8737: }; 8737: 8737: template::__type, 8737: typename _Up2 = typename __promote<_Up>::__type, 8737: typename _Vp2 = typename __promote<_Vp>::__type> 8737: struct __promote_3 8737: { 8737: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 8737: }; 8737: 8737: template::__type, 8737: typename _Up2 = typename __promote<_Up>::__type, 8737: typename _Vp2 = typename __promote<_Vp>::__type, 8737: typename _Wp2 = typename __promote<_Wp>::__type> 8737: struct __promote_4 8737: { 8737: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 8737: }; 8737: 8737: 8737: } 8737: } 8737: # 63 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: # 1 "/usr/include/c++/8/ext/numeric_traits.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/numeric_traits.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/numeric_traits.h" 3 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 54 "/usr/include/c++/8/ext/numeric_traits.h" 3 8737: template 8737: struct __numeric_traits_integer 8737: { 8737: 8737: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 8737: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 8737: 8737: 8737: 8737: static const bool __is_signed = ((_Value)(-1) < 0); 8737: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 8737: }; 8737: 8737: template 8737: const _Value __numeric_traits_integer<_Value>::__min; 8737: 8737: template 8737: const _Value __numeric_traits_integer<_Value>::__max; 8737: 8737: template 8737: const bool __numeric_traits_integer<_Value>::__is_signed; 8737: 8737: template 8737: const int __numeric_traits_integer<_Value>::__digits; 8737: # 99 "/usr/include/c++/8/ext/numeric_traits.h" 3 8737: template 8737: struct __numeric_traits_floating 8737: { 8737: 8737: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); 8737: 8737: 8737: static const bool __is_signed = true; 8737: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); 8737: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); 8737: }; 8737: 8737: template 8737: const int __numeric_traits_floating<_Value>::__max_digits10; 8737: 8737: template 8737: const bool __numeric_traits_floating<_Value>::__is_signed; 8737: 8737: template 8737: const int __numeric_traits_floating<_Value>::__digits10; 8737: 8737: template 8737: const int __numeric_traits_floating<_Value>::__max_exponent10; 8737: 8737: template 8737: struct __numeric_traits 8737: : public __conditional_type::__value, 8737: __numeric_traits_integer<_Value>, 8737: __numeric_traits_floating<_Value> >::__type 8737: { }; 8737: 8737: 8737: } 8737: # 64 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 1 3 8737: # 62 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: 8737: # 63 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 89 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: struct input_iterator_tag { }; 8737: 8737: 8737: struct output_iterator_tag { }; 8737: 8737: 8737: struct forward_iterator_tag : public input_iterator_tag { }; 8737: 8737: 8737: 8737: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 8737: 8737: 8737: 8737: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 8737: # 116 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: template 8737: struct iterator 8737: { 8737: 8737: typedef _Category iterator_category; 8737: 8737: typedef _Tp value_type; 8737: 8737: typedef _Distance difference_type; 8737: 8737: typedef _Pointer pointer; 8737: 8737: typedef _Reference reference; 8737: }; 8737: # 143 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: template> 8737: struct __iterator_traits { }; 8737: 8737: template 8737: struct __iterator_traits<_Iterator, 8737: __void_t> 8737: { 8737: typedef typename _Iterator::iterator_category iterator_category; 8737: typedef typename _Iterator::value_type value_type; 8737: typedef typename _Iterator::difference_type difference_type; 8737: typedef typename _Iterator::pointer pointer; 8737: typedef typename _Iterator::reference reference; 8737: }; 8737: 8737: template 8737: struct iterator_traits 8737: : public __iterator_traits<_Iterator> { }; 8737: # 177 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: template 8737: struct iterator_traits<_Tp*> 8737: { 8737: typedef random_access_iterator_tag iterator_category; 8737: typedef _Tp value_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Tp* pointer; 8737: typedef _Tp& reference; 8737: }; 8737: 8737: 8737: template 8737: struct iterator_traits 8737: { 8737: typedef random_access_iterator_tag iterator_category; 8737: typedef _Tp value_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef const _Tp* pointer; 8737: typedef const _Tp& reference; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline constexpr 8737: typename iterator_traits<_Iter>::iterator_category 8737: __iterator_category(const _Iter&) 8737: { return typename iterator_traits<_Iter>::iterator_category(); } 8737: # 231 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8737: template 8737: using _RequireInputIter = typename 8737: enable_if::iterator_category, 8737: input_iterator_tag>::value>::type; 8737: 8737: 8737: 8737: } 8737: # 66 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 1 3 8737: # 62 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8737: 8737: # 63 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/debug/assertions.h" 1 3 8737: # 66 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template struct _List_iterator; 8737: template struct _List_const_iterator; 8737: 8737: 8737: template 8737: inline 8737: typename iterator_traits<_InputIterator>::difference_type 8737: __distance(_InputIterator __first, _InputIterator __last, 8737: input_iterator_tag) 8737: { 8737: 8737: 8737: 8737: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8737: while (__first != __last) 8737: { 8737: ++__first; 8737: ++__n; 8737: } 8737: return __n; 8737: } 8737: 8737: template 8737: inline 8737: typename iterator_traits<_RandomAccessIterator>::difference_type 8737: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: random_access_iterator_tag) 8737: { 8737: 8737: 8737: 8737: return __last - __first; 8737: } 8737: 8737: 8737: 8737: template 8737: ptrdiff_t 8737: __distance(std::_List_iterator<_Tp>, 8737: std::_List_iterator<_Tp>, 8737: input_iterator_tag); 8737: 8737: template 8737: ptrdiff_t 8737: __distance(std::_List_const_iterator<_Tp>, 8737: std::_List_const_iterator<_Tp>, 8737: input_iterator_tag); 8737: # 135 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8737: template 8737: inline 8737: typename iterator_traits<_InputIterator>::difference_type 8737: distance(_InputIterator __first, _InputIterator __last) 8737: { 8737: 8737: return std::__distance(__first, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: template 8737: inline void 8737: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 8737: { 8737: 8737: 8737: ; 8737: while (__n--) 8737: ++__i; 8737: } 8737: 8737: template 8737: inline void 8737: __advance(_BidirectionalIterator& __i, _Distance __n, 8737: bidirectional_iterator_tag) 8737: { 8737: 8737: 8737: 8737: if (__n > 0) 8737: while (__n--) 8737: ++__i; 8737: else 8737: while (__n++) 8737: --__i; 8737: } 8737: 8737: template 8737: inline void 8737: __advance(_RandomAccessIterator& __i, _Distance __n, 8737: random_access_iterator_tag) 8737: { 8737: 8737: 8737: 8737: if (__builtin_constant_p(__n) && __n == 1) 8737: ++__i; 8737: else if (__builtin_constant_p(__n) && __n == -1) 8737: --__i; 8737: else 8737: __i += __n; 8737: } 8737: # 200 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8737: template 8737: inline void 8737: advance(_InputIterator& __i, _Distance __n) 8737: { 8737: 8737: typename iterator_traits<_InputIterator>::difference_type __d = __n; 8737: std::__advance(__i, __d, std::__iterator_category(__i)); 8737: } 8737: 8737: 8737: 8737: template 8737: inline _InputIterator 8737: next(_InputIterator __x, typename 8737: iterator_traits<_InputIterator>::difference_type __n = 1) 8737: { 8737: 8737: 8737: std::advance(__x, __n); 8737: return __x; 8737: } 8737: 8737: template 8737: inline _BidirectionalIterator 8737: prev(_BidirectionalIterator __x, typename 8737: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 8737: { 8737: 8737: 8737: 8737: std::advance(__x, -__n); 8737: return __x; 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: # 67 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_iterator.h" 1 3 8737: # 66 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: # 1 "/usr/include/c++/8/bits/ptr_traits.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/ptr_traits.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: class __undefined; 8737: 8737: 8737: template 8737: struct __get_first_arg 8737: { using type = __undefined; }; 8737: 8737: template class _Template, typename _Tp, 8737: typename... _Types> 8737: struct __get_first_arg<_Template<_Tp, _Types...>> 8737: { using type = _Tp; }; 8737: 8737: template 8737: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 8737: 8737: 8737: template 8737: struct __replace_first_arg 8737: { }; 8737: 8737: template class _Template, typename _Up, 8737: typename _Tp, typename... _Types> 8737: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 8737: { using type = _Template<_Up, _Types...>; }; 8737: 8737: template 8737: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 8737: 8737: template 8737: using __make_not_void 8737: = typename conditional::value, __undefined, _Tp>::type; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct pointer_traits 8737: { 8737: private: 8737: template 8737: using __element_type = typename _Tp::element_type; 8737: 8737: template 8737: using __difference_type = typename _Tp::difference_type; 8737: 8737: template 8737: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8737: 8737: template 8737: struct __rebind<_Tp, _Up, __void_t>> 8737: { using type = typename _Tp::template rebind<_Up>; }; 8737: 8737: public: 8737: 8737: using pointer = _Ptr; 8737: 8737: 8737: using element_type 8737: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 8737: 8737: 8737: using difference_type 8737: = __detected_or_t; 8737: 8737: 8737: template 8737: using rebind = typename __rebind<_Ptr, _Up>::type; 8737: 8737: static _Ptr 8737: pointer_to(__make_not_void& __e) 8737: { return _Ptr::pointer_to(__e); } 8737: 8737: static_assert(!is_same::value, 8737: "pointer type defines element_type or is like SomePointer"); 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct pointer_traits<_Tp*> 8737: { 8737: 8737: typedef _Tp* pointer; 8737: 8737: typedef _Tp element_type; 8737: 8737: typedef ptrdiff_t difference_type; 8737: 8737: template 8737: using rebind = _Up*; 8737: 8737: 8737: 8737: 8737: 8737: 8737: static pointer 8737: pointer_to(__make_not_void& __r) noexcept 8737: { return std::addressof(__r); } 8737: }; 8737: 8737: 8737: template 8737: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 8737: 8737: template 8737: constexpr _Tp* 8737: __to_address(_Tp* __ptr) noexcept 8737: { 8737: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 8737: return __ptr; 8737: } 8737: 8737: 8737: template 8737: constexpr typename std::pointer_traits<_Ptr>::element_type* 8737: __to_address(const _Ptr& __ptr) 8737: { return std::__to_address(__ptr.operator->()); } 8737: # 198 "/usr/include/c++/8/bits/ptr_traits.h" 3 8737: 8737: } 8737: # 67 "/usr/include/c++/8/bits/stl_iterator.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 100 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: class reverse_iterator 8737: : public iterator::iterator_category, 8737: typename iterator_traits<_Iterator>::value_type, 8737: typename iterator_traits<_Iterator>::difference_type, 8737: typename iterator_traits<_Iterator>::pointer, 8737: typename iterator_traits<_Iterator>::reference> 8737: { 8737: protected: 8737: _Iterator current; 8737: 8737: typedef iterator_traits<_Iterator> __traits_type; 8737: 8737: public: 8737: typedef _Iterator iterator_type; 8737: typedef typename __traits_type::difference_type difference_type; 8737: typedef typename __traits_type::pointer pointer; 8737: typedef typename __traits_type::reference reference; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator() : current() { } 8737: 8737: 8737: 8737: 8737: explicit 8737: reverse_iterator(iterator_type __x) : current(__x) { } 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator(const reverse_iterator& __x) 8737: : current(__x.current) { } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: 8737: reverse_iterator(const reverse_iterator<_Iter>& __x) 8737: : current(__x.base()) { } 8737: 8737: 8737: 8737: 8737: iterator_type 8737: base() const 8737: { return current; } 8737: # 167 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: reference 8737: operator*() const 8737: { 8737: _Iterator __tmp = current; 8737: return *--__tmp; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: pointer 8737: operator->() const 8737: { return &(operator*()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator& 8737: operator++() 8737: { 8737: --current; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: operator++(int) 8737: { 8737: reverse_iterator __tmp = *this; 8737: --current; 8737: return __tmp; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator& 8737: operator--() 8737: { 8737: ++current; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: operator--(int) 8737: { 8737: reverse_iterator __tmp = *this; 8737: ++current; 8737: return __tmp; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: operator+(difference_type __n) const 8737: { return reverse_iterator(current - __n); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator& 8737: operator+=(difference_type __n) 8737: { 8737: current -= __n; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: operator-(difference_type __n) const 8737: { return reverse_iterator(current + __n); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator& 8737: operator-=(difference_type __n) 8737: { 8737: current += __n; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: operator[](difference_type __n) const 8737: { return *(*this + __n); } 8737: }; 8737: # 297 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: inline bool 8737: operator==(const reverse_iterator<_Iterator>& __x, 8737: const reverse_iterator<_Iterator>& __y) 8737: { return __x.base() == __y.base(); } 8737: 8737: template 8737: inline bool 8737: operator<(const reverse_iterator<_Iterator>& __x, 8737: const reverse_iterator<_Iterator>& __y) 8737: { return __y.base() < __x.base(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const reverse_iterator<_Iterator>& __x, 8737: const reverse_iterator<_Iterator>& __y) 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator>(const reverse_iterator<_Iterator>& __x, 8737: const reverse_iterator<_Iterator>& __y) 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator<=(const reverse_iterator<_Iterator>& __x, 8737: const reverse_iterator<_Iterator>& __y) 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator>=(const reverse_iterator<_Iterator>& __x, 8737: const reverse_iterator<_Iterator>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: { return __x.base() == __y.base(); } 8737: 8737: template 8737: inline bool 8737: operator<(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: { return __y.base() < __x.base(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator>(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator<=(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator>=(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: { return !(__x < __y); } 8737: # 387 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: inline auto 8737: operator-(const reverse_iterator<_IteratorL>& __x, 8737: const reverse_iterator<_IteratorR>& __y) 8737: -> decltype(__y.base() - __x.base()) 8737: { return __y.base() - __x.base(); } 8737: 8737: 8737: template 8737: inline reverse_iterator<_Iterator> 8737: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 8737: const reverse_iterator<_Iterator>& __x) 8737: { return reverse_iterator<_Iterator>(__x.base() - __n); } 8737: 8737: 8737: 8737: template 8737: inline reverse_iterator<_Iterator> 8737: __make_reverse_iterator(_Iterator __i) 8737: { return reverse_iterator<_Iterator>(__i); } 8737: # 422 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: auto 8737: __niter_base(reverse_iterator<_Iterator> __it) 8737: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 8737: { return __make_reverse_iterator(__niter_base(__it.base())); } 8737: 8737: template 8737: struct __is_move_iterator > 8737: : __is_move_iterator<_Iterator> 8737: { }; 8737: 8737: template 8737: auto 8737: __miter_base(reverse_iterator<_Iterator> __it) 8737: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 8737: { return __make_reverse_iterator(__miter_base(__it.base())); } 8737: # 451 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: class back_insert_iterator 8737: : public iterator 8737: { 8737: protected: 8737: _Container* container; 8737: 8737: public: 8737: 8737: typedef _Container container_type; 8737: 8737: 8737: explicit 8737: back_insert_iterator(_Container& __x) 8737: : container(std::__addressof(__x)) { } 8737: # 486 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: back_insert_iterator& 8737: operator=(const typename _Container::value_type& __value) 8737: { 8737: container->push_back(__value); 8737: return *this; 8737: } 8737: 8737: back_insert_iterator& 8737: operator=(typename _Container::value_type&& __value) 8737: { 8737: container->push_back(std::move(__value)); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: back_insert_iterator& 8737: operator*() 8737: { return *this; } 8737: 8737: 8737: back_insert_iterator& 8737: operator++() 8737: { return *this; } 8737: 8737: 8737: back_insert_iterator 8737: operator++(int) 8737: { return *this; } 8737: }; 8737: # 528 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: inline back_insert_iterator<_Container> 8737: back_inserter(_Container& __x) 8737: { return back_insert_iterator<_Container>(__x); } 8737: # 543 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: class front_insert_iterator 8737: : public iterator 8737: { 8737: protected: 8737: _Container* container; 8737: 8737: public: 8737: 8737: typedef _Container container_type; 8737: 8737: 8737: explicit front_insert_iterator(_Container& __x) 8737: : container(std::__addressof(__x)) { } 8737: # 577 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: front_insert_iterator& 8737: operator=(const typename _Container::value_type& __value) 8737: { 8737: container->push_front(__value); 8737: return *this; 8737: } 8737: 8737: front_insert_iterator& 8737: operator=(typename _Container::value_type&& __value) 8737: { 8737: container->push_front(std::move(__value)); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: front_insert_iterator& 8737: operator*() 8737: { return *this; } 8737: 8737: 8737: front_insert_iterator& 8737: operator++() 8737: { return *this; } 8737: 8737: 8737: front_insert_iterator 8737: operator++(int) 8737: { return *this; } 8737: }; 8737: # 619 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: inline front_insert_iterator<_Container> 8737: front_inserter(_Container& __x) 8737: { return front_insert_iterator<_Container>(__x); } 8737: # 638 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: class insert_iterator 8737: : public iterator 8737: { 8737: protected: 8737: _Container* container; 8737: typename _Container::iterator iter; 8737: 8737: public: 8737: 8737: typedef _Container container_type; 8737: 8737: 8737: 8737: 8737: 8737: insert_iterator(_Container& __x, typename _Container::iterator __i) 8737: : container(std::__addressof(__x)), iter(__i) {} 8737: # 689 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: insert_iterator& 8737: operator=(const typename _Container::value_type& __value) 8737: { 8737: iter = container->insert(iter, __value); 8737: ++iter; 8737: return *this; 8737: } 8737: 8737: insert_iterator& 8737: operator=(typename _Container::value_type&& __value) 8737: { 8737: iter = container->insert(iter, std::move(__value)); 8737: ++iter; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: insert_iterator& 8737: operator*() 8737: { return *this; } 8737: 8737: 8737: insert_iterator& 8737: operator++() 8737: { return *this; } 8737: 8737: 8737: insert_iterator& 8737: operator++(int) 8737: { return *this; } 8737: }; 8737: # 734 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: inline insert_iterator<_Container> 8737: inserter(_Container& __x, _Iterator __i) 8737: { 8737: return insert_iterator<_Container>(__x, 8737: typename _Container::iterator(__i)); 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 758 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: using std::iterator_traits; 8737: using std::iterator; 8737: template 8737: class __normal_iterator 8737: { 8737: protected: 8737: _Iterator _M_current; 8737: 8737: typedef iterator_traits<_Iterator> __traits_type; 8737: 8737: public: 8737: typedef _Iterator iterator_type; 8737: typedef typename __traits_type::iterator_category iterator_category; 8737: typedef typename __traits_type::value_type value_type; 8737: typedef typename __traits_type::difference_type difference_type; 8737: typedef typename __traits_type::reference reference; 8737: typedef typename __traits_type::pointer pointer; 8737: 8737: constexpr __normal_iterator() noexcept 8737: : _M_current(_Iterator()) { } 8737: 8737: explicit 8737: __normal_iterator(const _Iterator& __i) noexcept 8737: : _M_current(__i) { } 8737: 8737: 8737: template 8737: __normal_iterator(const __normal_iterator<_Iter, 8737: typename __enable_if< 8737: (std::__are_same<_Iter, typename _Container::pointer>::__value), 8737: _Container>::__type>& __i) noexcept 8737: : _M_current(__i.base()) { } 8737: 8737: 8737: reference 8737: operator*() const noexcept 8737: { return *_M_current; } 8737: 8737: pointer 8737: operator->() const noexcept 8737: { return _M_current; } 8737: 8737: __normal_iterator& 8737: operator++() noexcept 8737: { 8737: ++_M_current; 8737: return *this; 8737: } 8737: 8737: __normal_iterator 8737: operator++(int) noexcept 8737: { return __normal_iterator(_M_current++); } 8737: 8737: 8737: __normal_iterator& 8737: operator--() noexcept 8737: { 8737: --_M_current; 8737: return *this; 8737: } 8737: 8737: __normal_iterator 8737: operator--(int) noexcept 8737: { return __normal_iterator(_M_current--); } 8737: 8737: 8737: reference 8737: operator[](difference_type __n) const noexcept 8737: { return _M_current[__n]; } 8737: 8737: __normal_iterator& 8737: operator+=(difference_type __n) noexcept 8737: { _M_current += __n; return *this; } 8737: 8737: __normal_iterator 8737: operator+(difference_type __n) const noexcept 8737: { return __normal_iterator(_M_current + __n); } 8737: 8737: __normal_iterator& 8737: operator-=(difference_type __n) noexcept 8737: { _M_current -= __n; return *this; } 8737: 8737: __normal_iterator 8737: operator-(difference_type __n) const noexcept 8737: { return __normal_iterator(_M_current - __n); } 8737: 8737: const _Iterator& 8737: base() const noexcept 8737: { return _M_current; } 8737: }; 8737: # 858 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: inline bool 8737: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() == __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() == __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() != __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() != __rhs.base(); } 8737: 8737: 8737: template 8737: inline bool 8737: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() < __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() < __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() > __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() > __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() <= __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() <= __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() >= __rhs.base(); } 8737: 8737: template 8737: inline bool 8737: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() >= __rhs.base(); } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: 8737: 8737: inline auto 8737: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 8737: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 8737: -> decltype(__lhs.base() - __rhs.base()) 8737: 8737: 8737: 8737: 8737: 8737: { return __lhs.base() - __rhs.base(); } 8737: 8737: template 8737: inline typename __normal_iterator<_Iterator, _Container>::difference_type 8737: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 8737: const __normal_iterator<_Iterator, _Container>& __rhs) 8737: noexcept 8737: { return __lhs.base() - __rhs.base(); } 8737: 8737: template 8737: inline __normal_iterator<_Iterator, _Container> 8737: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 8737: __n, const __normal_iterator<_Iterator, _Container>& __i) 8737: noexcept 8737: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 8737: 8737: 8737: } 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: _Iterator 8737: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 8737: { return __it.base(); } 8737: # 1003 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: template 8737: class move_iterator 8737: { 8737: protected: 8737: _Iterator _M_current; 8737: 8737: typedef iterator_traits<_Iterator> __traits_type; 8737: typedef typename __traits_type::reference __base_ref; 8737: 8737: public: 8737: typedef _Iterator iterator_type; 8737: typedef typename __traits_type::iterator_category iterator_category; 8737: typedef typename __traits_type::value_type value_type; 8737: typedef typename __traits_type::difference_type difference_type; 8737: 8737: typedef _Iterator pointer; 8737: 8737: 8737: typedef typename conditional::value, 8737: typename remove_reference<__base_ref>::type&&, 8737: __base_ref>::type reference; 8737: 8737: 8737: move_iterator() 8737: : _M_current() { } 8737: 8737: explicit 8737: move_iterator(iterator_type __i) 8737: : _M_current(__i) { } 8737: 8737: template 8737: 8737: move_iterator(const move_iterator<_Iter>& __i) 8737: : _M_current(__i.base()) { } 8737: 8737: iterator_type 8737: base() const 8737: { return _M_current; } 8737: 8737: reference 8737: operator*() const 8737: { return static_cast(*_M_current); } 8737: 8737: pointer 8737: operator->() const 8737: { return _M_current; } 8737: 8737: move_iterator& 8737: operator++() 8737: { 8737: ++_M_current; 8737: return *this; 8737: } 8737: 8737: move_iterator 8737: operator++(int) 8737: { 8737: move_iterator __tmp = *this; 8737: ++_M_current; 8737: return __tmp; 8737: } 8737: 8737: move_iterator& 8737: operator--() 8737: { 8737: --_M_current; 8737: return *this; 8737: } 8737: 8737: move_iterator 8737: operator--(int) 8737: { 8737: move_iterator __tmp = *this; 8737: --_M_current; 8737: return __tmp; 8737: } 8737: 8737: move_iterator 8737: operator+(difference_type __n) const 8737: { return move_iterator(_M_current + __n); } 8737: 8737: move_iterator& 8737: operator+=(difference_type __n) 8737: { 8737: _M_current += __n; 8737: return *this; 8737: } 8737: 8737: move_iterator 8737: operator-(difference_type __n) const 8737: { return move_iterator(_M_current - __n); } 8737: 8737: move_iterator& 8737: operator-=(difference_type __n) 8737: { 8737: _M_current -= __n; 8737: return *this; 8737: } 8737: 8737: reference 8737: operator[](difference_type __n) const 8737: { return std::move(_M_current[__n]); } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: { return __x.base() == __y.base(); } 8737: 8737: template 8737: inline bool 8737: operator==(const move_iterator<_Iterator>& __x, 8737: const move_iterator<_Iterator>& __y) 8737: { return __x.base() == __y.base(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator!=(const move_iterator<_Iterator>& __x, 8737: const move_iterator<_Iterator>& __y) 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator<(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: { return __x.base() < __y.base(); } 8737: 8737: template 8737: inline bool 8737: operator<(const move_iterator<_Iterator>& __x, 8737: const move_iterator<_Iterator>& __y) 8737: { return __x.base() < __y.base(); } 8737: 8737: template 8737: inline bool 8737: operator<=(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator<=(const move_iterator<_Iterator>& __x, 8737: const move_iterator<_Iterator>& __y) 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator>(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator>(const move_iterator<_Iterator>& __x, 8737: const move_iterator<_Iterator>& __y) 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator>=(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: { return !(__x < __y); } 8737: 8737: template 8737: inline bool 8737: operator>=(const move_iterator<_Iterator>& __x, 8737: const move_iterator<_Iterator>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline auto 8737: operator-(const move_iterator<_IteratorL>& __x, 8737: const move_iterator<_IteratorR>& __y) 8737: -> decltype(__x.base() - __y.base()) 8737: { return __x.base() - __y.base(); } 8737: 8737: template 8737: inline move_iterator<_Iterator> 8737: operator+(typename move_iterator<_Iterator>::difference_type __n, 8737: const move_iterator<_Iterator>& __x) 8737: { return __x + __n; } 8737: 8737: template 8737: inline move_iterator<_Iterator> 8737: make_move_iterator(_Iterator __i) 8737: { return move_iterator<_Iterator>(__i); } 8737: 8737: template::value_type>::value, 8737: _Iterator, move_iterator<_Iterator>>::type> 8737: inline _ReturnType 8737: __make_move_if_noexcept_iterator(_Iterator __i) 8737: { return _ReturnType(__i); } 8737: 8737: 8737: 8737: template::value, 8737: const _Tp*, move_iterator<_Tp*>>::type> 8737: inline _ReturnType 8737: __make_move_if_noexcept_iterator(_Tp* __i) 8737: { return _ReturnType(__i); } 8737: 8737: 8737: 8737: template 8737: auto 8737: __niter_base(move_iterator<_Iterator> __it) 8737: -> decltype(make_move_iterator(__niter_base(__it.base()))) 8737: { return make_move_iterator(__niter_base(__it.base())); } 8737: 8737: template 8737: struct __is_move_iterator > 8737: { 8737: enum { __value = 1 }; 8737: typedef __true_type __type; 8737: }; 8737: 8737: template 8737: auto 8737: __miter_base(move_iterator<_Iterator> __it) 8737: -> decltype(__miter_base(__it.base())) 8737: { return __miter_base(__it.base()); } 8737: # 1268 "/usr/include/c++/8/bits/stl_iterator.h" 3 8737: 8737: } 8737: # 68 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: 8737: # 1 "/usr/include/c++/8/debug/debug.h" 1 3 8737: # 48 "/usr/include/c++/8/debug/debug.h" 3 8737: namespace std 8737: { 8737: namespace __debug { } 8737: } 8737: 8737: 8737: 8737: 8737: namespace __gnu_debug 8737: { 8737: using namespace std::__debug; 8737: } 8737: # 70 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: 8737: # 1 "/usr/include/c++/8/bits/predefined_ops.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/predefined_ops.h" 3 8737: namespace __gnu_cxx 8737: { 8737: namespace __ops 8737: { 8737: struct _Iter_less_iter 8737: { 8737: template 8737: 8737: bool 8737: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8737: { return *__it1 < *__it2; } 8737: }; 8737: 8737: 8737: inline _Iter_less_iter 8737: __iter_less_iter() 8737: { return _Iter_less_iter(); } 8737: 8737: struct _Iter_less_val 8737: { 8737: 8737: constexpr _Iter_less_val() = default; 8737: 8737: 8737: 8737: 8737: explicit 8737: _Iter_less_val(_Iter_less_iter) { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator __it, _Value& __val) const 8737: { return *__it < __val; } 8737: }; 8737: 8737: inline _Iter_less_val 8737: __iter_less_val() 8737: { return _Iter_less_val(); } 8737: 8737: inline _Iter_less_val 8737: __iter_comp_val(_Iter_less_iter) 8737: { return _Iter_less_val(); } 8737: 8737: struct _Val_less_iter 8737: { 8737: 8737: constexpr _Val_less_iter() = default; 8737: 8737: 8737: 8737: 8737: explicit 8737: _Val_less_iter(_Iter_less_iter) { } 8737: 8737: template 8737: bool 8737: operator()(_Value& __val, _Iterator __it) const 8737: { return __val < *__it; } 8737: }; 8737: 8737: inline _Val_less_iter 8737: __val_less_iter() 8737: { return _Val_less_iter(); } 8737: 8737: inline _Val_less_iter 8737: __val_comp_iter(_Iter_less_iter) 8737: { return _Val_less_iter(); } 8737: 8737: struct _Iter_equal_to_iter 8737: { 8737: template 8737: bool 8737: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8737: { return *__it1 == *__it2; } 8737: }; 8737: 8737: inline _Iter_equal_to_iter 8737: __iter_equal_to_iter() 8737: { return _Iter_equal_to_iter(); } 8737: 8737: struct _Iter_equal_to_val 8737: { 8737: template 8737: bool 8737: operator()(_Iterator __it, _Value& __val) const 8737: { return *__it == __val; } 8737: }; 8737: 8737: inline _Iter_equal_to_val 8737: __iter_equal_to_val() 8737: { return _Iter_equal_to_val(); } 8737: 8737: inline _Iter_equal_to_val 8737: __iter_comp_val(_Iter_equal_to_iter) 8737: { return _Iter_equal_to_val(); } 8737: 8737: template 8737: struct _Iter_comp_iter 8737: { 8737: _Compare _M_comp; 8737: 8737: explicit 8737: _Iter_comp_iter(_Compare __comp) 8737: : _M_comp(std::move(__comp)) 8737: { } 8737: 8737: template 8737: 8737: bool 8737: operator()(_Iterator1 __it1, _Iterator2 __it2) 8737: { return bool(_M_comp(*__it1, *__it2)); } 8737: }; 8737: 8737: template 8737: 8737: inline _Iter_comp_iter<_Compare> 8737: __iter_comp_iter(_Compare __comp) 8737: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 8737: 8737: template 8737: struct _Iter_comp_val 8737: { 8737: _Compare _M_comp; 8737: 8737: explicit 8737: _Iter_comp_val(_Compare __comp) 8737: : _M_comp(std::move(__comp)) 8737: { } 8737: 8737: explicit 8737: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 8737: : _M_comp(__comp._M_comp) 8737: { } 8737: 8737: 8737: explicit 8737: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 8737: : _M_comp(std::move(__comp._M_comp)) 8737: { } 8737: 8737: 8737: template 8737: bool 8737: operator()(_Iterator __it, _Value& __val) 8737: { return bool(_M_comp(*__it, __val)); } 8737: }; 8737: 8737: template 8737: inline _Iter_comp_val<_Compare> 8737: __iter_comp_val(_Compare __comp) 8737: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8737: 8737: template 8737: inline _Iter_comp_val<_Compare> 8737: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 8737: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8737: 8737: template 8737: struct _Val_comp_iter 8737: { 8737: _Compare _M_comp; 8737: 8737: explicit 8737: _Val_comp_iter(_Compare __comp) 8737: : _M_comp(std::move(__comp)) 8737: { } 8737: 8737: explicit 8737: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 8737: : _M_comp(__comp._M_comp) 8737: { } 8737: 8737: 8737: explicit 8737: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 8737: : _M_comp(std::move(__comp._M_comp)) 8737: { } 8737: 8737: 8737: template 8737: bool 8737: operator()(_Value& __val, _Iterator __it) 8737: { return bool(_M_comp(__val, *__it)); } 8737: }; 8737: 8737: template 8737: inline _Val_comp_iter<_Compare> 8737: __val_comp_iter(_Compare __comp) 8737: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8737: 8737: template 8737: inline _Val_comp_iter<_Compare> 8737: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 8737: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8737: 8737: template 8737: struct _Iter_equals_val 8737: { 8737: _Value& _M_value; 8737: 8737: explicit 8737: _Iter_equals_val(_Value& __value) 8737: : _M_value(__value) 8737: { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator __it) 8737: { return *__it == _M_value; } 8737: }; 8737: 8737: template 8737: inline _Iter_equals_val<_Value> 8737: __iter_equals_val(_Value& __val) 8737: { return _Iter_equals_val<_Value>(__val); } 8737: 8737: template 8737: struct _Iter_equals_iter 8737: { 8737: _Iterator1 _M_it1; 8737: 8737: explicit 8737: _Iter_equals_iter(_Iterator1 __it1) 8737: : _M_it1(__it1) 8737: { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator2 __it2) 8737: { return *__it2 == *_M_it1; } 8737: }; 8737: 8737: template 8737: inline _Iter_equals_iter<_Iterator> 8737: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 8737: { return _Iter_equals_iter<_Iterator>(__it); } 8737: 8737: template 8737: struct _Iter_pred 8737: { 8737: _Predicate _M_pred; 8737: 8737: explicit 8737: _Iter_pred(_Predicate __pred) 8737: : _M_pred(std::move(__pred)) 8737: { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator __it) 8737: { return bool(_M_pred(*__it)); } 8737: }; 8737: 8737: template 8737: inline _Iter_pred<_Predicate> 8737: __pred_iter(_Predicate __pred) 8737: { return _Iter_pred<_Predicate>(std::move(__pred)); } 8737: 8737: template 8737: struct _Iter_comp_to_val 8737: { 8737: _Compare _M_comp; 8737: _Value& _M_value; 8737: 8737: _Iter_comp_to_val(_Compare __comp, _Value& __value) 8737: : _M_comp(std::move(__comp)), _M_value(__value) 8737: { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator __it) 8737: { return bool(_M_comp(*__it, _M_value)); } 8737: }; 8737: 8737: template 8737: _Iter_comp_to_val<_Compare, _Value> 8737: __iter_comp_val(_Compare __comp, _Value &__val) 8737: { 8737: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 8737: } 8737: 8737: template 8737: struct _Iter_comp_to_iter 8737: { 8737: _Compare _M_comp; 8737: _Iterator1 _M_it1; 8737: 8737: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 8737: : _M_comp(std::move(__comp)), _M_it1(__it1) 8737: { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator2 __it2) 8737: { return bool(_M_comp(*__it2, *_M_it1)); } 8737: }; 8737: 8737: template 8737: inline _Iter_comp_to_iter<_Compare, _Iterator> 8737: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 8737: { 8737: return _Iter_comp_to_iter<_Compare, _Iterator>( 8737: std::move(__comp._M_comp), __it); 8737: } 8737: 8737: template 8737: struct _Iter_negate 8737: { 8737: _Predicate _M_pred; 8737: 8737: explicit 8737: _Iter_negate(_Predicate __pred) 8737: : _M_pred(std::move(__pred)) 8737: { } 8737: 8737: template 8737: bool 8737: operator()(_Iterator __it) 8737: { return !bool(_M_pred(*__it)); } 8737: }; 8737: 8737: template 8737: inline _Iter_negate<_Predicate> 8737: __negate(_Iter_pred<_Predicate> __pred) 8737: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 8737: 8737: } 8737: } 8737: # 72 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 118 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline void 8737: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 8737: { 8737: 8737: 8737: 8737: 8737: # 148 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: swap(*__a, *__b); 8737: 8737: } 8737: # 164 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: _ForwardIterator2 8737: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1, (void)++__first2) 8737: std::iter_swap(__first1, __first2); 8737: return __first2; 8737: } 8737: # 192 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: 8737: inline const _Tp& 8737: min(const _Tp& __a, const _Tp& __b) 8737: { 8737: 8737: 8737: 8737: if (__b < __a) 8737: return __b; 8737: return __a; 8737: } 8737: # 216 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: 8737: inline const _Tp& 8737: max(const _Tp& __a, const _Tp& __b) 8737: { 8737: 8737: 8737: 8737: if (__a < __b) 8737: return __b; 8737: return __a; 8737: } 8737: # 240 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: 8737: inline const _Tp& 8737: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 8737: { 8737: 8737: if (__comp(__b, __a)) 8737: return __b; 8737: return __a; 8737: } 8737: # 262 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: 8737: inline const _Tp& 8737: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 8737: { 8737: 8737: if (__comp(__a, __b)) 8737: return __b; 8737: return __a; 8737: } 8737: 8737: 8737: 8737: template 8737: inline _Iterator 8737: __niter_base(_Iterator __it) 8737: { return __it; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __copy_move 8737: { 8737: template 8737: static _OI 8737: __copy_m(_II __first, _II __last, _OI __result) 8737: { 8737: for (; __first != __last; ++__result, (void)++__first) 8737: *__result = *__first; 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct __copy_move 8737: { 8737: template 8737: static _OI 8737: __copy_m(_II __first, _II __last, _OI __result) 8737: { 8737: for (; __first != __last; ++__result, (void)++__first) 8737: *__result = std::move(*__first); 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template<> 8737: struct __copy_move 8737: { 8737: template 8737: static _OI 8737: __copy_m(_II __first, _II __last, _OI __result) 8737: { 8737: typedef typename iterator_traits<_II>::difference_type _Distance; 8737: for(_Distance __n = __last - __first; __n > 0; --__n) 8737: { 8737: *__result = *__first; 8737: ++__first; 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template<> 8737: struct __copy_move 8737: { 8737: template 8737: static _OI 8737: __copy_m(_II __first, _II __last, _OI __result) 8737: { 8737: typedef typename iterator_traits<_II>::difference_type _Distance; 8737: for(_Distance __n = __last - __first; __n > 0; --__n) 8737: { 8737: *__result = std::move(*__first); 8737: ++__first; 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct __copy_move<_IsMove, true, random_access_iterator_tag> 8737: { 8737: template 8737: static _Tp* 8737: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 8737: { 8737: 8737: using __assignable = conditional<_IsMove, 8737: is_move_assignable<_Tp>, 8737: is_copy_assignable<_Tp>>; 8737: 8737: static_assert( __assignable::type::value, "type is not assignable" ); 8737: 8737: const ptrdiff_t _Num = __last - __first; 8737: if (_Num) 8737: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 8737: return __result + _Num; 8737: } 8737: }; 8737: 8737: template 8737: inline _OI 8737: __copy_move_a(_II __first, _II __last, _OI __result) 8737: { 8737: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 8737: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 8737: typedef typename iterator_traits<_II>::iterator_category _Category; 8737: const bool __simple = (__is_trivial(_ValueTypeI) 8737: && __is_pointer<_II>::__value 8737: && __is_pointer<_OI>::__value 8737: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 8737: 8737: return std::__copy_move<_IsMove, __simple, 8737: _Category>::__copy_m(__first, __last, __result); 8737: } 8737: 8737: 8737: 8737: template 8737: struct char_traits; 8737: 8737: template 8737: class istreambuf_iterator; 8737: 8737: template 8737: class ostreambuf_iterator; 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8737: __copy_move_a2(_CharT*, _CharT*, 8737: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8737: __copy_move_a2(const _CharT*, const _CharT*, 8737: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: _CharT*>::__type 8737: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 8737: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 8737: 8737: template 8737: inline _OI 8737: __copy_move_a2(_II __first, _II __last, _OI __result) 8737: { 8737: return _OI(std::__copy_move_a<_IsMove>(s[ 92%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/ifchanged.cpp.o td::__niter_base(__first), 8737: std::__niter_base(__last), 8737: std::__niter_base(__result))); 8737: } 8737: # 444 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline _OI 8737: copy(_II __first, _II __last, _OI __result) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return (std::__copy_move_a2<__is_move_iterator<_II>::__value> 8737: (std::__miter_base(__first), std::__miter_base(__last), 8737: __result)); 8737: } 8737: # 477 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline _OI 8737: move(_II __first, _II __last, _OI __result) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__copy_move_a2(std::__miter_base(__first), 8737: std::__miter_base(__last), __result); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __copy_move_backward 8737: { 8737: template 8737: static _BI2 8737: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: while (__first != __last) 8737: *--__result = *--__last; 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct __copy_move_backward 8737: { 8737: template 8737: static _BI2 8737: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: while (__first != __last) 8737: *--__result = std::move(*--__last); 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template<> 8737: struct __copy_move_backward 8737: { 8737: template 8737: static _BI2 8737: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: typename iterator_traits<_BI1>::difference_type __n; 8737: for (__n = __last - __first; __n > 0; --__n) 8737: *--__result = *--__last; 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template<> 8737: struct __copy_move_backward 8737: { 8737: template 8737: static _BI2 8737: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: typename iterator_traits<_BI1>::difference_type __n; 8737: for (__n = __last - __first; __n > 0; --__n) 8737: *--__result = std::move(*--__last); 8737: return __result; 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 8737: { 8737: template 8737: static _Tp* 8737: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 8737: { 8737: 8737: using __assignable = conditional<_IsMove, 8737: is_move_assignable<_Tp>, 8737: is_copy_assignable<_Tp>>; 8737: 8737: static_assert( __assignable::type::value, "type is not assignable" ); 8737: 8737: const ptrdiff_t _Num = __last - __first; 8737: if (_Num) 8737: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 8737: return __result - _Num; 8737: } 8737: }; 8737: 8737: template 8737: inline _BI2 8737: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 8737: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 8737: typedef typename iterator_traits<_BI1>::iterator_category _Category; 8737: const bool __simple = (__is_trivial(_ValueType1) 8737: && __is_pointer<_BI1>::__value 8737: && __is_pointer<_BI2>::__value 8737: && __are_same<_ValueType1, _ValueType2>::__value); 8737: 8737: return std::__copy_move_backward<_IsMove, __simple, 8737: _Category>::__copy_move_b(__first, 8737: __last, 8737: __result); 8737: } 8737: 8737: template 8737: inline _BI2 8737: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: return _BI2(std::__copy_move_backward_a<_IsMove> 8737: (std::__niter_base(__first), std::__niter_base(__last), 8737: std::__niter_base(__result))); 8737: } 8737: # 620 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline _BI2 8737: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 8737: (std::__miter_base(__first), std::__miter_base(__last), 8737: __result)); 8737: } 8737: # 656 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline _BI2 8737: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__copy_move_backward_a2(std::__miter_base(__first), 8737: std::__miter_base(__last), 8737: __result); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline typename 8737: __gnu_cxx::__enable_if::__value, void>::__type 8737: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __value) 8737: { 8737: for (; __first != __last; ++__first) 8737: *__first = __value; 8737: } 8737: 8737: template 8737: inline typename 8737: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 8737: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __value) 8737: { 8737: const _Tp __tmp = __value; 8737: for (; __first != __last; ++__first) 8737: *__first = __tmp; 8737: } 8737: 8737: 8737: template 8737: inline typename 8737: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 8737: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 8737: { 8737: const _Tp __tmp = __c; 8737: if (const size_t __len = __last - __first) 8737: __builtin_memset(__first, static_cast(__tmp), __len); 8737: } 8737: # 722 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline void 8737: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 8737: __value); 8737: } 8737: 8737: template 8737: inline typename 8737: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 8737: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8737: { 8737: for (__decltype(__n + 0) __niter = __n; 8737: __niter > 0; --__niter, (void) ++__first) 8737: *__first = __value; 8737: return __first; 8737: } 8737: 8737: template 8737: inline typename 8737: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 8737: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8737: { 8737: const _Tp __tmp = __value; 8737: for (__decltype(__n + 0) __niter = __n; 8737: __niter > 0; --__niter, (void) ++__first) 8737: *__first = __tmp; 8737: return __first; 8737: } 8737: 8737: template 8737: inline typename 8737: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 8737: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 8737: { 8737: std::__fill_a(__first, __first + __n, __c); 8737: return __first + __n; 8737: } 8737: # 782 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline _OI 8737: fill_n(_OI __first, _Size __n, const _Tp& __value) 8737: { 8737: 8737: 8737: 8737: return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); 8737: } 8737: 8737: template 8737: struct __equal 8737: { 8737: template 8737: static bool 8737: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8737: { 8737: for (; __first1 != __last1; ++__first1, (void) ++__first2) 8737: if (!(*__first1 == *__first2)) 8737: return false; 8737: return true; 8737: } 8737: }; 8737: 8737: template<> 8737: struct __equal 8737: { 8737: template 8737: static bool 8737: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 8737: { 8737: if (const size_t __len = (__last1 - __first1)) 8737: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 8737: return true; 8737: } 8737: }; 8737: 8737: template 8737: inline bool 8737: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 8737: { 8737: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8737: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8737: const bool __simple = ((__is_integer<_ValueType1>::__value 8737: || __is_pointer<_ValueType1>::__value) 8737: && __is_pointer<_II1>::__value 8737: && __is_pointer<_II2>::__value 8737: && __are_same<_ValueType1, _ValueType2>::__value); 8737: 8737: return std::__equal<__simple>::equal(__first1, __last1, __first2); 8737: } 8737: 8737: template 8737: struct __lc_rai 8737: { 8737: template 8737: static _II1 8737: __newlast1(_II1, _II1 __last1, _II2, _II2) 8737: { return __last1; } 8737: 8737: template 8737: static bool 8737: __cnd2(_II __first, _II __last) 8737: { return __first != __last; } 8737: }; 8737: 8737: template<> 8737: struct __lc_rai 8737: { 8737: template 8737: static _RAI1 8737: __newlast1(_RAI1 __first1, _RAI1 __last1, 8737: _RAI2 __first2, _RAI2 __last2) 8737: { 8737: const typename iterator_traits<_RAI1>::difference_type 8737: __diff1 = __last1 - __first1; 8737: const typename iterator_traits<_RAI2>::difference_type 8737: __diff2 = __last2 - __first2; 8737: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 8737: } 8737: 8737: template 8737: static bool 8737: __cnd2(_RAI, _RAI) 8737: { return true; } 8737: }; 8737: 8737: template 8737: bool 8737: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 8737: _II2 __first2, _II2 __last2, 8737: _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_II1>::iterator_category _Category1; 8737: typedef typename iterator_traits<_II2>::iterator_category _Category2; 8737: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 8737: 8737: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 8737: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 8737: ++__first1, (void)++__first2) 8737: { 8737: if (__comp(__first1, __first2)) 8737: return true; 8737: if (__comp(__first2, __first1)) 8737: return false; 8737: } 8737: return __first1 == __last1 && __first2 != __last2; 8737: } 8737: 8737: template 8737: struct __lexicographical_compare 8737: { 8737: template 8737: static bool __lc(_II1, _cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 II1, _II2, _II2); 8737: }; 8737: 8737: template 8737: template 8737: bool 8737: __lexicographical_compare<_BoolType>:: 8737: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8737: { 8737: return std::__lexicographical_compare_impl(__first1, __last1, 8737: __first2, __last2, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: 8737: template<> 8737: struct __lexicographical_compare 8737: { 8737: template 8737: static bool 8737: __lc(const _Tp* __first1, const _Tp* __last1, 8737: const _Up* __first2, const _Up* __last2) 8737: { 8737: const size_t __len1 = __last1 - __first1; 8737: const size_t __len2 = __last2 - __first2; 8737: if (const size_t __len = std::min(__len1, __len2)) 8737: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 8737: return __result < 0; 8737: return __len1 < __len2; 8737: } 8737: }; 8737: 8737: template 8737: inline bool 8737: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 8737: _II2 __first2, _II2 __last2) 8737: { 8737: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8737: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8737: const bool __simple = 8737: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 8737: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 8737: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 8737: && __is_pointer<_II1>::__value 8737: && __is_pointer<_II2>::__value); 8737: 8737: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 8737: __first2, __last2); 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::difference_type 8737: _DistanceType; 8737: 8737: _DistanceType __len = std::distance(__first, __last); 8737: 8737: while (__len > 0) 8737: { 8737: _DistanceType __half = __len >> 1; 8737: _ForwardIterator __middle = __first; 8737: std::advance(__middle, __half); 8737: if (__comp(__middle, __val)) 8737: { 8737: __first = __middle; 8737: ++__first; 8737: __len = __len - __half - 1; 8737: } 8737: else 8737: __len = __half; 8737: } 8737: return __first; 8737: } 8737: # 982 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline _ForwardIterator 8737: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__lower_bound(__first, __last, __val, 8737: __gnu_cxx::__ops::__iter_less_val()); 8737: } 8737: 8737: 8737: 8737: inline constexpr int 8737: __lg(int __n) 8737: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8737: 8737: inline constexpr unsigned 8737: __lg(unsigned __n) 8737: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8737: 8737: inline constexpr long 8737: __lg(long __n) 8737: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8737: 8737: inline constexpr unsigned long 8737: __lg(unsigned long __n) 8737: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8737: 8737: inline constexpr long long 8737: __lg(long long __n) 8737: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8737: 8737: inline constexpr unsigned long long 8737: __lg(unsigned long long __n) 8737: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8737: 8737: 8737: # 1037 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline bool 8737: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__equal_aux(std::__niter_base(__first1), 8737: std::__niter_base(__last1), 8737: std::__niter_base(__first2)); 8737: } 8737: # 1069 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline bool 8737: equal(_IIter1 __first1, _IIter1 __last1, 8737: _IIter2 __first2, _BinaryPredicate __binary_pred) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1, (void)++__first2) 8737: if (!bool(__binary_pred(*__first1, *__first2))) 8737: return false; 8737: return true; 8737: } 8737: 8737: 8737: 8737: template 8737: inline bool 8737: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8737: { 8737: using _RATag = random_access_iterator_tag; 8737: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8737: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8737: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8737: if (_RAIters()) 8737: { 8737: auto __d1 = std::distance(__first1, __last1); 8737: auto __d2 = std::distance(__first2, __last2); 8737: if (__d1 != __d2) 8737: return false; 8737: return std::equal(__first1, __last1, __first2); 8737: } 8737: 8737: for (; __first1 != __last1 && __first2 != __last2; 8737: ++__first1, (void)++__first2) 8737: if (!(*__first1 == *__first2)) 8737: return false; 8737: return __first1 == __last1 && __first2 == __last2; 8737: } 8737: 8737: 8737: template 8737: inline bool 8737: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: using _RATag = random_access_iterator_tag; 8737: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8737: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8737: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8737: if (_RAIters()) 8737: { 8737: auto __d1 = std::distance(__first1, __last1); 8737: auto __d2 = std::distance(__first2, __last2); 8737: if (__d1 != __d2) 8737: return false; 8737: return std::equal(__first1, __last1, __first2, 8737: __binary_pred); 8737: } 8737: 8737: for (; __first1 != __last1 && __first2 != __last2; 8737: ++__first1, (void)++__first2) 8737: if (!bool(__binary_pred(*__first1, *__first2))) 8737: return false; 8737: return __first1 == __last1 && __first2 == __last2; 8737: } 8737: # 1219 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline bool 8737: lexicographical_compare(_II1 __first1, _II1 __last1, 8737: _II2 __first2, _II2 __last2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 8737: std::__niter_base(__last1), 8737: std::__niter_base(__first2), 8737: std::__niter_base(__last2)); 8737: } 8737: # 1255 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline bool 8737: lexicographical_compare(_II1 __first1, _II1 __last1, 8737: _II2 __first2, _II2 __last2, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__lexicographical_compare_impl 8737: (__first1, __last1, __first2, __last2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: pair<_InputIterator1, _InputIterator2> 8737: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8737: { 8737: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 8737: { 8737: ++__first1; 8737: ++__first2; 8737: } 8737: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 8737: } 8737: # 1298 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline pair<_InputIterator1, _InputIterator2> 8737: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__mismatch(__first1, __last1, __first2, 8737: __gnu_cxx::__ops::__iter_equal_to_iter()); 8737: } 8737: # 1331 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: template 8737: inline pair<_InputIterator1, _InputIterator2> 8737: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__mismatch(__first1, __last1, __first2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8737: } 8737: # 1431 "/usr/include/c++/8/bits/stl_algobase.h" 3 8737: 8737: 8737: } 8737: # 62 "/usr/include/c++/8/algorithm" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_algo.h" 1 3 8737: # 59 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: # 1 "/usr/include/c++/8/cstdlib" 1 3 8737: # 39 "/usr/include/c++/8/cstdlib" 3 8737: 8737: # 40 "/usr/include/c++/8/cstdlib" 3 8737: # 75 "/usr/include/c++/8/cstdlib" 3 8737: # 1 "/usr/include/stdlib.h" 1 3 4 8737: # 25 "/usr/include/stdlib.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8737: # 26 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 32 "/usr/include/stdlib.h" 2 3 4 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 8737: # 52 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 8737: typedef enum 8737: { 8737: P_ALL, 8737: P_PID, 8737: P_PGID 8737: } idtype_t; 8737: # 40 "/usr/include/stdlib.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 8737: # 41 "/usr/include/stdlib.h" 2 3 4 8737: # 55 "/usr/include/stdlib.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 8737: # 62 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 8737: typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); 8737: # 74 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 8737: typedef __float128 _Float128; 8737: # 56 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: typedef struct 8737: { 8737: int quot; 8737: int rem; 8737: } div_t; 8737: 8737: 8737: 8737: typedef struct 8737: { 8737: long int quot; 8737: long int rem; 8737: } ldiv_t; 8737: 8737: 8737: 8737: 8737: 8737: __extension__ typedef struct 8737: { 8737: long long int quot; 8737: long long int rem; 8737: } lldiv_t; 8737: # 97 "/usr/include/stdlib.h" 3 4 8737: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: extern double atof (const char *__nptr) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: extern int atoi (const char *__nptr) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: extern long int atol (const char *__nptr) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: __extension__ extern long long int atoll (const char *__nptr) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: extern double strtod (const char *__restrict __nptr, 8737: char **__restrict __endptr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern float strtof (const char *__restrict __nptr, 8737: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: extern long double strtold (const char *__restrict __nptr, 8737: char **__restrict __endptr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: extern _Float128 strtof128 (const char *__restrict __nptr, 8737: char **__restrict __endptr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern long int strtol (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: extern unsigned long int strtoul (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: __extension__ 8737: extern long long int strtoq (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: __extension__ 8737: extern unsigned long long int strtouq (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: __extension__ 8737: extern long long int strtoll (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: __extension__ 8737: extern unsigned long long int strtoull (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: extern int strfromd (char *__dest, size_t __size, const char *__format, 8737: double __f) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: 8737: extern int strfromf (char *__dest, size_t __size, const char *__format, 8737: float __f) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: 8737: extern int strfroml (char *__dest, size_t __size, const char *__format, 8737: long double __f) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: 8737: 8737: 8737: extern int strfromf128 (char *__dest, size_t __size, const char * __format, 8737: _Float128 __f) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 8737: # 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 8737: # 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 8737: struct __locale_struct 8737: { 8737: 8737: struct __locale_data *__locales[13]; 8737: 8737: 8737: const unsigned short int *__ctype_b; 8737: const int *__ctype_tolower; 8737: const int *__ctype_toupper; 8737: 8737: 8737: const char *__names[13]; 8737: }; 8737: 8737: typedef struct __locale_struct *__locale_t; 8737: # 23 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 8737: 8737: typedef __locale_t locale_t; 8737: # 200 "/usr/include/stdlib.h" 2 3 4 8737: 8737: extern long int strtol_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base, 8737: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 8737: 8737: extern unsigned long int strtoul_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, 8737: int __base, locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 4))); 8737: 8737: __extension__ 8737: extern long long int strtoll_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, int __base, 8737: locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 4))); 8737: 8737: __extension__ 8737: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, 8737: int __base, locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 4))); 8737: 8737: extern double strtod_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: extern float strtof_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: extern long double strtold_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, 8737: locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: extern _Float128 strtof128_l (const char *__restrict __nptr, 8737: char **__restrict __endptr, 8737: locale_t __loc) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 8737: { 8737: return (int) strtol (__nptr, (char **) __null, 10); 8737: } 8737: extern __inline __attribute__ ((__gnu_inline__)) long int 8737: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 8737: { 8737: return strtol (__nptr, (char **) __null, 10); 8737: } 8737: 8737: 8737: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 8737: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 8737: { 8737: return strtoll (__nptr, (char **) __null, 10); 8737: } 8737: # 270 "/usr/include/stdlib.h" 3 4 8737: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: extern long int a64l (const char *__s) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 8737: # 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8737: extern "C" { 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 8737: # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 8737: 8737: 8737: typedef unsigned char __u_char; 8737: typedef unsigned short int __u_short; 8737: typedef unsigned int __u_int; 8737: typedef unsigned long int __u_long; 8737: 8737: 8737: typedef signed char __int8_t; 8737: typedef unsigned char __uint8_t; 8737: typedef signed short int __int16_t; 8737: typedef unsigned short int __uint16_t; 8737: typedef signed int __int32_t; 8737: typedef unsigned int __uint32_t; 8737: 8737: typedef signed long int __int64_t; 8737: typedef unsigned long int __uint64_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef long int __quad_t; 8737: typedef unsigned long int __u_quad_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef long int __intmax_t; 8737: typedef unsigned long int __uintmax_t; 8737: # 130 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 8737: # 131 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 8737: 8737: 8737: typedef unsigned long int __dev_t; 8737: typedef unsigned int __uid_t; 8737: typedef unsigned int __gid_t; 8737: typedef unsigned long int __ino_t; 8737: typedef unsigned long int __ino64_t; 8737: typedef unsigned int __mode_t; 8737: typedef unsigned long int __nlink_t; 8737: typedef long int __off_t; 8737: typedef long int __off64_t; 8737: typedef int __pid_t; 8737: typedef struct { int __val[2]; } __fsid_t; 8737: typedef long int __clock_t; 8737: typedef unsigned long int __rlim_t; 8737: typedef unsigned long int __rlim64_t; 8737: typedef unsigned int __id_t; 8737: typedef long int __time_t; 8737: typedef unsigned int __useconds_t; 8737: typedef long int __suseconds_t; 8737: 8737: typedef int __daddr_t; 8737: typedef int __key_t; 8737: 8737: 8737: typedef int __clockid_t; 8737: 8737: 8737: typedef void * __timer_t; 8737: 8737: 8737: typedef long int __blksize_t; 8737: 8737: 8737: 8737: 8737: typedef long int __blkcnt_t; 8737: typedef long int __blkcnt64_t; 8737: 8737: 8737: typedef unsigned long int __fsblkcnt_t; 8737: typedef unsigned long int __fsblkcnt64_t; 8737: 8737: 8737: typedef unsigned long int __fsfilcnt_t; 8737: typedef unsigned long int __fsfilcnt64_t; 8737: 8737: 8737: typedef long int __fsword_t; 8737: 8737: typedef long int __ssize_t; 8737: 8737: 8737: typedef long int __syscall_slong_t; 8737: 8737: typedef unsigned long int __syscall_ulong_t; 8737: 8737: 8737: 8737: typedef __off64_t __loff_t; 8737: typedef __quad_t *__qaddr_t; 8737: typedef char *__caddr_t; 8737: 8737: 8737: typedef long int __intptr_t; 8737: 8737: 8737: typedef unsigned int __socklen_t; 8737: 8737: 8737: 8737: 8737: typedef int __sig_atomic_t; 8737: # 30 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: 8737: typedef __u_char u_char; 8737: typedef __u_short u_short; 8737: typedef __u_int u_int; 8737: typedef __u_long u_long; 8737: typedef __quad_t quad_t; 8737: typedef __u_quad_t u_quad_t; 8737: typedef __fsid_t fsid_t; 8737: 8737: 8737: 8737: 8737: typedef __loff_t loff_t; 8737: 8737: 8737: 8737: typedef __ino_t ino_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __ino64_t ino64_t; 8737: 8737: 8737: 8737: 8737: typedef __dev_t dev_t; 8737: 8737: 8737: 8737: 8737: typedef __gid_t gid_t; 8737: 8737: 8737: 8737: 8737: typedef __mode_t mode_t; 8737: 8737: 8737: 8737: 8737: typedef __nlink_t nlink_t; 8737: 8737: 8737: 8737: 8737: typedef __uid_t uid_t; 8737: 8737: 8737: 8737: 8737: 8737: typedef __off_t off_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __off64_t off64_t; 8737: 8737: 8737: 8737: 8737: typedef __pid_t pid_t; 8737: 8737: 8737: 8737: 8737: 8737: typedef __id_t id_t; 8737: 8737: 8737: 8737: 8737: typedef __ssize_t ssize_t; 8737: 8737: 8737: 8737: 8737: 8737: typedef __daddr_t daddr_t; 8737: typedef __caddr_t caddr_t; 8737: 8737: 8737: 8737: 8737: 8737: typedef __key_t key_t; 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __clock_t clock_t; 8737: # 128 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __clockid_t clockid_t; 8737: # 130 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __time_t time_t; 8737: # 131 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __timer_t timer_t; 8737: # 132 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: 8737: typedef __useconds_t useconds_t; 8737: 8737: 8737: 8737: typedef __suseconds_t suseconds_t; 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: 8737: typedef unsigned long int ulong; 8737: typedef unsigned short int ushort; 8737: typedef unsigned int uint; 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 8737: # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 8737: typedef __int8_t int8_t; 8737: typedef __int16_t int16_t; 8737: typedef __int32_t int32_t; 8737: typedef __int64_t int64_t; 8737: # 157 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: # 178 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8737: typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); 8737: typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); 8737: typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); 8737: typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); 8737: 8737: typedef int register_t __attribute__ ((__mode__ (__word__))); 8737: # 194 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8737: # 1 "/usr/include/endian.h" 1 3 4 8737: # 36 "/usr/include/endian.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 8737: # 37 "/usr/include/endian.h" 2 3 4 8737: # 60 "/usr/include/endian.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 8737: # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4 8737: # 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 8737: static __inline unsigned int 8737: __bswap_32 (unsigned int __bsx) 8737: { 8737: return __builtin_bswap32 (__bsx); 8737: } 8737: # 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 8737: static __inline __uint64_t 8737: __bswap_64 (__uint64_t __bsx) 8737: { 8737: return __builtin_bswap64 (__bsx); 8737: } 8737: # 61 "/usr/include/endian.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 8737: # 32 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 4 8737: static __inline __uint16_t 8737: __uint16_identity (__uint16_t __x) 8737: { 8737: return __x; 8737: } 8737: 8737: static __inline __uint32_t 8737: __uint32_identity (__uint32_t __x) 8737: { 8737: return __x; 8737: } 8737: 8737: static __inline __uint64_t 8737: __uint64_identity (__uint64_t __x) 8737: { 8737: return __x; 8737: } 8737: # 62 "/usr/include/endian.h" 2 3 4 8737: # 195 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 8737: # 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 8737: # 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 8737: # 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 8737: 8737: 8737: 8737: 8737: typedef struct 8737: { 8737: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 8737: } __sigset_t; 8737: # 5 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 8737: 8737: 8737: typedef __sigset_t sigset_t; 8737: # 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct timeval 8737: { 8737: __time_t tv_sec; 8737: __suseconds_t tv_usec; 8737: }; 8737: # 38 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct timespec 8737: { 8737: __time_t tv_sec; 8737: __syscall_slong_t tv_nsec; 8737: }; 8737: # 40 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8737: typedef long int __fd_mask; 8737: # 59 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8737: typedef struct 8737: { 8737: 8737: 8737: 8737: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 8737: 8737: 8737: 8737: 8737: 8737: } fd_set; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __fd_mask fd_mask; 8737: # 91 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8737: extern "C" { 8737: # 101 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8737: extern int select (int __nfds, fd_set *__restrict __readfds, 8737: fd_set *__restrict __writefds, 8737: fd_set *__restrict __exceptfds, 8737: struct timeval *__restrict __timeout); 8737: # 113 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8737: extern int pselect (int __nfds, fd_set *__restrict __readfds, 8737: fd_set *__restrict __writefds, 8737: fd_set *__restrict __exceptfds, 8737: const struct timespec *__restrict __timeout, 8737: const __sigset_t *__restrict __sigmask); 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/select2.h" 1 3 4 8737: # 24 "/usr/include/x86_64-linux-gnu/bits/select2.h" 3 4 8737: extern long int __fdelt_chk (long int __d); 8737: extern long int __fdelt_warn (long int __d) 8737: __attribute__((__warning__ ("bit outside of fd_set selected"))); 8737: # 124 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8737: 8737: 8737: } 8737: # 198 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4 8737: # 41 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/sysmacros.h" 1 3 4 8737: # 42 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 2 3 4 8737: # 71 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 8737: extern "C" { 8737: 8737: extern unsigned int gnu_dev_major (__dev_t __dev) throw () __attribute__ ((__const__)); 8737: extern unsigned int gnu_dev_minor (__dev_t __dev) throw () __attribute__ ((__const__)); 8737: extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () __attribute__ ((__const__)); 8737: 8737: 8737: 8737: __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; } 8737: __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; } 8737: __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; } 8737: 8737: 8737: 8737: } 8737: # 206 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __blksize_t blksize_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __blkcnt_t blkcnt_t; 8737: 8737: 8737: 8737: typedef __fsblkcnt_t fsblkcnt_t; 8737: 8737: 8737: 8737: typedef __fsfilcnt_t fsfilcnt_t; 8737: # 246 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8737: typedef __blkcnt64_t blkcnt64_t; 8737: typedef __fsblkcnt64_t fsblkcnt64_t; 8737: typedef __fsfilcnt64_t fsfilcnt64_t; 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 8737: # 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 8737: # 58 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 8737: # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 8737: # 58 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8737: struct __pthread_rwlock_arch_t 8737: { 8737: unsigned int __readers; 8737: unsigned int __writers; 8737: unsigned int __wrphase_futex; 8737: unsigned int __writers_futex; 8737: unsigned int __pad3; 8737: unsigned int __pad4; 8737: 8737: int __cur_writer; 8737: int __shared; 8737: signed char __rwelision; 8737: 8737: 8737: 8737: 8737: unsigned char __pad1[7]; 8737: 8737: 8737: unsigned long int __pad2; 8737: 8737: 8737: unsigned int __flags; 8737: # 92 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8737: }; 8737: # 59 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 8737: 8737: 8737: 8737: 8737: typedef struct __pthread_internal_list 8737: { 8737: struct __pthread_internal_list *__prev; 8737: struct __pthread_internal_list *__next; 8737: } __pthread_list_t; 8737: # 99 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 8737: struct __pthread_mutex_s 8737: { 8737: int __lock ; 8737: unsigned int __count; 8737: int __owner; 8737: 8737: unsigned int __nusers; 8737: 8737: 8737: 8737: int __kind; 8737: 8737: 8737: short __spins; short __elision; 8737: __pthread_list_t __list; 8737: # 123 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: struct __pthread_cond_s 8737: { 8737: __extension__ union 8737: { 8737: __extension__ unsigned long long int __wseq; 8737: struct 8737: { 8737: unsigned int __low; 8737: unsigned int __high; 8737: } __wseq32; 8737: }; 8737: __extension__ union 8737: { 8737: __extension__ unsigned long long int __g1_start; 8737: struct 8737: { 8737: unsigned int __low; 8737: unsigned int __high; 8737: } __g1_start32; 8737: }; 8737: unsigned int __g_refs[2] ; 8737: unsigned int __g_size[2]; 8737: unsigned int __g1_orig_size; 8737: unsigned int __wrefs; 8737: unsigned int __g_signals[2]; 8737: }; 8737: # 24 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 8737: 8737: 8737: 8737: typedef unsigned long int pthread_t; 8737: 8737: 8737: 8737: 8737: typedef union 8737: { 8737: char __size[4]; 8737: int __align; 8737: } pthread_mutexattr_t; 8737: 8737: 8737: 8737: 8737: typedef union 8737: { 8737: char __size[4]; 8737: int __align; 8737: } pthread_condattr_t; 8737: 8737: 8737: 8737: typedef unsigned int pthread_key_t; 8737: 8737: 8737: 8737: typedef int pthread_once_t; 8737: 8737: 8737: union pthread_attr_t 8737: { 8737: char __size[56]; 8737: long int __align; 8737: }; 8737: 8737: typedef union pthread_attr_t pthread_attr_t; 8737: 8737: 8737: 8737: 8737: typedef union 8737: { 8737: struct __pthread_mutex_s __data; 8737: char __size[40]; 8737: long int __align; 8737: } pthread_mutex_t; 8737: 8737: 8737: typedef union 8737: { 8737: struct __pthread_cond_s __data; 8737: char __size[48]; 8737: __extension__ long long int __align; 8737: } pthread_cond_t; 8737: 8737: 8737: 8737: 8737: 8737: typedef union 8737: { 8737: struct __pthread_rwlock_arch_t __data; 8737: char __size[56]; 8737: long int __align; 8737: } pthread_rwlock_t; 8737: 8737: typedef union 8737: { 8737: char __size[8]; 8737: long int __align; 8737: } pthread_rwlockattr_t; 8737: 8737: 8737: 8737: 8737: 8737: typedef volatile int pthread_spinlock_t; 8737: 8737: 8737: 8737: 8737: typedef union 8737: { 8737: char __size[32]; 8737: long int __align; 8737: } pthread_barrier_t; 8737: 8737: typedef union 8737: { 8737: char __size[4]; 8737: int __align; 8737: } pthread_barrierattr_t; 8737: # 255 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8737: 8737: 8737: } 8737: # 280 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern long int random (void) throw (); 8737: 8737: 8737: extern void srandom (unsigned int __seed) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern char *initstate (unsigned int __seed, char *__statebuf, 8737: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: 8737: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct random_data 8737: { 8737: int32_t *fptr; 8737: int32_t *rptr; 8737: int32_t *state; 8737: int rand_type; 8737: int rand_deg; 8737: int rand_sep; 8737: int32_t *end_ptr; 8737: }; 8737: 8737: extern int random_r (struct random_data *__restrict __buf, 8737: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 8737: size_t __statelen, 8737: struct random_data *__restrict __buf) 8737: throw () __attribute__ ((__nonnull__ (2, 4))); 8737: 8737: extern int setstate_r (char *__restrict __statebuf, 8737: struct random_data *__restrict __buf) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: 8737: extern int rand (void) throw (); 8737: 8737: extern void srand (unsigned int __seed) throw (); 8737: 8737: 8737: 8737: extern int rand_r (unsigned int *__seed) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern double drand48 (void) throw (); 8737: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern long int lrand48 (void) throw (); 8737: extern long int nrand48 (unsigned short int __xsubi[3]) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern long int mrand48 (void) throw (); 8737: extern long int jrand48 (unsigned short int __xsubi[3]) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern void srand48 (long int __seedval) throw (); 8737: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: struct drand48_data 8737: { 8737: unsigned short int __x[3]; 8737: unsigned short int __old_x[3]; 8737: unsigned short int __c; 8737: unsigned short int __init; 8737: __extension__ unsigned long long int __a; 8737: 8737: }; 8737: 8737: 8737: extern int drand48_r (struct drand48_data *__restrict __buffer, 8737: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: extern int erand48_r (unsigned short int __xsubi[3], 8737: struct drand48_data *__restrict __buffer, 8737: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int lrand48_r (struct drand48_data *__restrict __buffer, 8737: long int *__restrict __result) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: extern int nrand48_r (unsigned short int __xsubi[3], 8737: struct drand48_data *__restrict __buffer, 8737: long int *__restrict __result) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int mrand48_r (struct drand48_data *__restrict __buffer, 8737: long int *__restrict __result) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: extern int jrand48_r (unsigned short int __xsubi[3], 8737: struct drand48_data *__restrict __buffer, 8737: long int *__restrict __result) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: extern int seed48_r (unsigned short int __seed16v[3], 8737: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern int lcong48_r (unsigned short int __param[7], 8737: struct drand48_data *__buffer) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: extern void *calloc (size_t __nmemb, size_t __size) 8737: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern void *realloc (void *__ptr, size_t __size) 8737: throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 8737: throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: extern void free (void *__ptr) throw (); 8737: 8737: 8737: # 1 "/usr/include/alloca.h" 1 3 4 8737: # 24 "/usr/include/alloca.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 25 "/usr/include/alloca.h" 2 3 4 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: 8737: 8737: extern void *alloca (size_t __size) throw (); 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 452 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 8737: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern void *aligned_alloc (size_t __alignment, size_t __size) 8737: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: extern void abort (void) throw () __attribute__ ((__noreturn__)); 8737: 8737: 8737: 8737: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: extern "C++" int at_quick_exit (void (*__func) (void)) 8737: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 8737: # 492 "/usr/include/stdlib.h" 3 4 8737: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 8737: 8737: 8737: 8737: 8737: 8737: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 8737: 8737: 8737: 8737: 8737: 8737: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 8737: 8737: 8737: 8737: 8737: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern char *secure_getenv (const char *__name) 8737: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: extern int setenv (const char *__name, const char *__value, int __replace) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int clearenv (void) throw (); 8737: # 557 "/usr/include/stdlib.h" 3 4 8737: extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); 8737: # 570 "/usr/include/stdlib.h" 3 4 8737: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 580 "/usr/include/stdlib.h" 3 4 8737: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 592 "/usr/include/stdlib.h" 3 4 8737: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 602 "/usr/include/stdlib.h" 3 4 8737: extern int mkstemps64 (char *__template, int __suffixlen) 8737: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 613 "/usr/include/stdlib.h" 3 4 8737: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 624 "/usr/include/stdlib.h" 3 4 8737: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 634 "/usr/include/stdlib.h" 3 4 8737: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 644 "/usr/include/stdlib.h" 3 4 8737: extern int mkostemps (char *__template, int __suffixlen, int __flags) 8737: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 656 "/usr/include/stdlib.h" 3 4 8737: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 8737: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 666 "/usr/include/stdlib.h" 3 4 8737: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern char *canonicalize_file_name (const char *__name) 8737: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 682 "/usr/include/stdlib.h" 3 4 8737: extern char *realpath (const char *__restrict __name, 8737: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef int (*__compar_fn_t) (const void *, const void *); 8737: 8737: 8737: typedef __compar_fn_t comparison_fn_t; 8737: 8737: 8737: 8737: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 8737: 8737: 8737: 8737: 8737: extern void *bsearch (const void *__key, const void *__base, 8737: size_t __nmemb, size_t __size, __compar_fn_t __compar) 8737: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 8737: # 19 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 3 4 8737: extern __inline __attribute__ ((__gnu_inline__)) void * 8737: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 8737: __compar_fn_t __compar) 8737: { 8737: size_t __l, __u, __idx; 8737: const void *__p; 8737: int __comparison; 8737: 8737: __l = 0; 8737: __u = __nmemb; 8737: while (__l < __u) 8737: { 8737: __idx = (__l + __u) / 2; 8737: __p = (void *) (((const char *) __base) + (__idx * __size)); 8737: __comparison = (*__compar) (__key, __p); 8737: if (__comparison < 0) 8737: __u = __idx; 8737: else if (__comparison > 0) 8737: __l = __idx + 1; 8737: else 8737: return (void *) __p; 8737: } 8737: 8737: return __null; 8737: } 8737: # 708 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: 8737: 8737: extern void qsort (void *__base, size_t __nmemb, size_t __size, 8737: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 8737: 8737: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 8737: __compar_d_fn_t __compar, void *__arg) 8737: __attribute__ ((__nonnull__ (1, 4))); 8737: 8737: 8737: 8737: 8737: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8737: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: __extension__ extern long long int llabs (long long int __x) 8737: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern div_t div (int __numer, int __denom) 8737: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8737: extern ldiv_t ldiv (long int __numer, long int __denom) 8737: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: __extension__ extern lldiv_t lldiv (long long int __numer, 8737: long long int __denom) 8737: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8737: # 754 "/usr/include/stdlib.h" 3 4 8737: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 8737: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 8737: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern char *gcvt (double __value, int __ndigit, char *__buf) 8737: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern char *qecvt (long double __value, int __ndigit, 8737: int *__restrict __decpt, int *__restrict __sign) 8737: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8737: extern char *qfcvt (long double __value, int __ndigit, 8737: int *__restrict __decpt, int *__restrict __sign) 8737: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8737: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 8737: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 8737: int *__restrict __sign, char *__restrict __buf, 8737: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8737: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 8737: int *__restrict __sign, char *__restrict __buf, 8737: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8737: 8737: extern int qecvt_r (long double __value, int __ndigit, 8737: int *__restrict __decpt, int *__restrict __sign, 8737: char *__restrict __buf, size_t __len) 8737: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8737: extern int qfcvt_r (long double __value, int __ndigit, 8737: int *__restrict __decpt, int *__restrict __sign, 8737: char *__restrict __buf, size_t __len) 8737: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8737: 8737: 8737: 8737: 8737: 8737: extern int mblen (const char *__s, size_t __n) throw (); 8737: 8737: 8737: extern int mbtowc (wchar_t *__restrict __pwc, 8737: const char *__restrict __s, size_t __n) throw (); 8737: 8737: 8737: extern int wctomb (char *__s, wchar_t __wchar) throw (); 8737: 8737: 8737: 8737: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 8737: const char *__restrict __s, size_t __n) throw (); 8737: 8737: extern size_t wcstombs (char *__restrict __s, 8737: const wchar_t *__restrict __pwcs, size_t __n) 8737: throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8737: # 839 "/usr/include/stdlib.h" 3 4 8737: extern int getsubopt (char **__restrict __optionp, 8737: char *const *__restrict __tokens, 8737: char **__restrict __valuep) 8737: throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int grantpt (int __fd) throw (); 8737: 8737: 8737: 8737: extern int unlockpt (int __fd) throw (); 8737: 8737: 8737: 8737: 8737: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: extern int getpt (void); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int getloadavg (double __loadavg[], int __nelem) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: # 901 "/usr/include/stdlib.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 8737: # 24 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 3 4 8737: extern __inline __attribute__ ((__gnu_inline__)) double 8737: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 8737: { 8737: return strtod (__nptr, (char **) __null); 8737: } 8737: # 902 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 1 3 4 8737: # 23 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 3 4 8737: extern char *__realpath_chk (const char *__restrict __name, 8737: char *__restrict __resolved, 8737: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 8737: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) 8737: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8737: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 8737: { 8737: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 8737: { 8737: 8737: 8737: 8737: 8737: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 8737: } 8737: 8737: return __realpath_alias (__name, __resolved); 8737: } 8737: 8737: 8737: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 8737: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 8737: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 8737: 8737: __attribute__ ((__nonnull__ (2))); 8737: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 8737: 8737: 8737: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 8737: { 8737: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__buflen)) 8737: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8737: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8737: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8737: } 8737: return __ptsname_r_alias (__fd, __buf, __buflen); 8737: } 8737: 8737: 8737: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 8737: throw () __attribute__ ((__warn_unused_result__)); 8737: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 8737: __attribute__ ((__warn_unused_result__)); 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 8737: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8737: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 8737: return __wctomb_alias (__s, __wchar); 8737: } 8737: 8737: 8737: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 8737: const char *__restrict __src, 8737: size_t __len, size_t __dstlen) throw (); 8737: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 8737: 8737: 8737: ; 8737: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 8737: 8737: 8737: 8737: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8737: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__len)) 8737: return __mbstowcs_chk (__dst, __src, __len, 8737: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8737: 8737: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8737: return __mbstowcs_chk_warn (__dst, __src, __len, 8737: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8737: } 8737: return __mbstowcs_alias (__dst, __src, __len); 8737: } 8737: 8737: 8737: extern size_t __wcstombs_chk (char *__restrict __dst, 8737: const wchar_t *__restrict __src, 8737: size_t __len, size_t __dstlen) throw (); 8737: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 8737: 8737: 8737: ; 8737: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8737: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__len)) 8737: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8737: if (__len > __builtin_object_size (__dst, 2 > 1)) 8737: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8737: } 8737: return __wcstombs_alias (__dst, __src, __len); 8737: } 8737: # 906 "/usr/include/stdlib.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 76 "/usr/include/c++/8/cstdlib" 2 3 8737: 8737: # 1 "/usr/include/c++/8/bits/std_abs.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/std_abs.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/std_abs.h" 3 8737: # 46 "/usr/include/c++/8/bits/std_abs.h" 3 8737: extern "C++" 8737: { 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: using ::abs; 8737: 8737: 8737: inline long 8737: abs(long __i) { return __builtin_labs(__i); } 8737: 8737: 8737: 8737: inline long long 8737: abs(long long __x) { return __builtin_llabs (__x); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline constexpr double 8737: abs(double __x) 8737: { return __builtin_fabs(__x); } 8737: 8737: inline constexpr float 8737: abs(float __x) 8737: { return __builtin_fabsf(__x); } 8737: 8737: inline constexpr long double 8737: abs(long double __x) 8737: { return __builtin_fabsl(__x); } 8737: 8737: 8737: 8737: inline constexpr __int128 8737: abs(__int128 __x) { return __x >= 0 ? __x : -__x; } 8737: # 100 "/usr/include/c++/8/bits/std_abs.h" 3 8737: inline constexpr 8737: __float128 8737: abs(__float128 __x) 8737: { return __x < 0 ? -__x : __x; } 8737: 8737: 8737: 8737: } 8737: } 8737: # 78 "/usr/include/c++/8/cstdlib" 2 3 8737: # 118 "/usr/include/c++/8/cstdlib" 3 8737: extern "C++" 8737: { 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: using ::div_t; 8737: using ::ldiv_t; 8737: 8737: using ::abort; 8737: using ::atexit; 8737: 8737: 8737: using ::at_quick_exit; 8737: 8737: 8737: using ::atof; 8737: using ::atoi; 8737: using ::atol; 8737: using ::bsearch; 8737: using ::calloc; 8737: using ::div; 8737: using ::exit; 8737: using ::free; 8737: using ::getenv; 8737: using ::labs; 8737: using ::ldiv; 8737: using ::malloc; 8737: 8737: using ::mblen; 8737: using ::mbstowcs; 8737: using ::mbtowc; 8737: 8737: using ::qsort; 8737: 8737: 8737: using ::quick_exit; 8737: 8737: 8737: using ::rand; 8737: using ::realloc; 8737: using ::srand; 8737: using ::strtod; 8737: using ::strtol; 8737: using ::strtoul; 8737: using ::system; 8737: 8737: using ::wcstombs; 8737: using ::wctomb; 8737: 8737: 8737: 8737: inline ldiv_t 8737: div(long __i, long __j) { return ldiv(__i, __j); } 8737: 8737: 8737: 8737: 8737: } 8737: # 189 "/usr/include/c++/8/cstdlib" 3 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: using ::lldiv_t; 8737: 8737: 8737: 8737: 8737: 8737: using ::_Exit; 8737: 8737: 8737: 8737: using ::llabs; 8737: 8737: inline lldiv_t 8737: div(long long __n, long long __d) 8737: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 8737: 8737: using ::lldiv; 8737: # 221 "/usr/include/c++/8/cstdlib" 3 8737: using ::atoll; 8737: using ::strtoll; 8737: using ::strtoull; 8737: 8737: using ::strtof; 8737: using ::strtold; 8737: 8737: 8737: } 8737: 8737: namespace std 8737: { 8737: 8737: using ::__gnu_cxx::lldiv_t; 8737: 8737: using ::__gnu_cxx::_Exit; 8737: 8737: using ::__gnu_cxx::llabs; 8737: using ::__gnu_cxx::div; 8737: using ::__gnu_cxx::lldiv; 8737: 8737: using ::__gnu_cxx::atoll; 8737: using ::__gnu_cxx::strtof; 8737: using ::__gnu_cxx::strtoll; 8737: using ::__gnu_cxx::strtoull; 8737: using ::__gnu_cxx::strtold; 8737: } 8737: 8737: 8737: 8737: } 8737: # 60 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/algorithmfwd.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: # 42 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 195 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: template 8737: bool 8737: all_of(_IIter, _IIter, _Predicate); 8737: 8737: template 8737: bool 8737: any_of(_IIter, _IIter, _Predicate); 8737: 8737: 8737: template 8737: bool 8737: binary_search(_FIter, _FIter, const _Tp&); 8737: 8737: template 8737: bool 8737: binary_search(_FIter, _FIter, const _Tp&, _Compare); 8737: # 224 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: template 8737: _OIter 8737: copy(_IIter, _IIter, _OIter); 8737: 8737: template 8737: _BIter2 8737: copy_backward(_BIter1, _BIter1, _BIter2); 8737: 8737: 8737: template 8737: _OIter 8737: copy_if(_IIter, _IIter, _OIter, _Predicate); 8737: 8737: template 8737: _OIter 8737: copy_n(_IIter, _Size, _OIter); 8737: 8737: 8737: 8737: 8737: 8737: template 8737: pair<_FIter, _FIter> 8737: equal_range(_FIter, _FIter, const _Tp&); 8737: 8737: template 8737: pair<_FIter, _FIter> 8737: equal_range(_FIter, _FIter, const _Tp&, _Compare); 8737: 8737: template 8737: void 8737: fill(_FIter, _FIter, const _Tp&); 8737: 8737: template 8737: _OIter 8737: fill_n(_OIter, _Size, const _Tp&); 8737: 8737: 8737: 8737: template 8737: _FIter1 8737: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 8737: 8737: template 8737: _FIter1 8737: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _IIter 8737: find_if_not(_IIter, _IIter, _Predicate); 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: bool 8737: includes(_IIter1, _IIter1, _IIter2, _IIter2); 8737: 8737: template 8737: bool 8737: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8737: 8737: template 8737: void 8737: inplace_merge(_BIter, _BIter, _BIter); 8737: 8737: template 8737: void 8737: inplace_merge(_BIter, _BIter, _BIter, _Compare); 8737: 8737: 8737: template 8737: bool 8737: is_heap(_RAIter, _RAIter); 8737: 8737: template 8737: bool 8737: is_heap(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: _RAIter 8737: is_heap_until(_RAIter, _RAIter); 8737: 8737: template 8737: _RAIter 8737: is_heap_until(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: bool 8737: is_partitioned(_IIter, _IIter, _Predicate); 8737: 8737: template 8737: bool 8737: is_permutation(_FIter1, _FIter1, _FIter2); 8737: 8737: template 8737: bool 8737: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 8737: 8737: template 8737: bool 8737: is_sorted(_FIter, _FIter); 8737: 8737: template 8737: bool 8737: is_sorted(_FIter, _FIter, _Compare); 8737: 8737: template 8737: _FIter 8737: is_sorted_until(_FIter, _FIter); 8737: 8737: template 8737: _FIter 8737: is_sorted_until(_FIter, _FIter, _Compare); 8737: 8737: 8737: template 8737: void 8737: iter_swap(_FIter1, _FIter2); 8737: 8737: template 8737: _FIter 8737: lower_bound(_FIter, _FIter, const _Tp&); 8737: 8737: template 8737: _FIter 8737: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 8737: 8737: template 8737: void 8737: make_heap(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: make_heap(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: 8737: const _Tp& 8737: max(const _Tp&, const _Tp&); 8737: 8737: template 8737: 8737: const _Tp& 8737: max(const _Tp&, const _Tp&, _Compare); 8737: 8737: 8737: 8737: 8737: template 8737: 8737: const _Tp& 8737: min(const _Tp&, const _Tp&); 8737: 8737: template 8737: 8737: const _Tp& 8737: min(const _Tp&, const _Tp&, _Compare); 8737: 8737: 8737: 8737: 8737: template 8737: 8737: pair 8737: minmax(const _Tp&, const _Tp&); 8737: 8737: template 8737: 8737: pair 8737: minmax(const _Tp&, const _Tp&, _Compare); 8737: 8737: template 8737: 8737: pair<_FIter, _FIter> 8737: minmax_element(_FIter, _FIter); 8737: 8737: template 8737: 8737: pair<_FIter, _FIter> 8737: minmax_element(_FIter, _FIter, _Compare); 8737: 8737: template 8737: 8737: _Tp 8737: min(initializer_list<_Tp>); 8737: 8737: template 8737: 8737: _Tp 8737: min(initializer_list<_Tp>, _Compare); 8737: 8737: template 8737: 8737: _Tp 8737: max(initializer_list<_Tp>); 8737: 8737: template 8737: 8737: _Tp 8737: max(initializer_list<_Tp>, _Compare); 8737: 8737: template 8737: 8737: pair<_Tp, _Tp> 8737: minmax(initializer_list<_Tp>); 8737: 8737: template 8737: 8737: pair<_Tp, _Tp> 8737: minmax(initializer_list<_Tp>, _Compare); 8737: 8737: 8737: 8737: 8737: template 8737: bool 8737: next_permutation(_BIter, _BIter); 8737: 8737: template 8737: bool 8737: next_permutation(_BIter, _BIter, _Compare); 8737: 8737: 8737: template 8737: bool 8737: none_of(_IIter, _IIter, _Predicate); 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _RAIter 8737: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 8737: 8737: template 8737: _RAIter 8737: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 8737: 8737: 8737: 8737: 8737: template 8737: pair<_OIter1, _OIter2> 8737: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 8737: 8737: template 8737: _FIter 8737: partition_point(_FIter, _FIter, _Predicate); 8737: 8737: 8737: template 8737: void 8737: pop_heap(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: pop_heap(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: bool 8737: prev_permutation(_BIter, _BIter); 8737: 8737: template 8737: bool 8737: prev_permutation(_BIter, _BIter, _Compare); 8737: 8737: template 8737: void 8737: push_heap(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: push_heap(_RAIter, _RAIter, _Compare); 8737: 8737: 8737: 8737: template 8737: _FIter 8737: remove(_FIter, _FIter, const _Tp&); 8737: 8737: template 8737: _FIter 8737: remove_if(_FIter, _FIter, _Predicate); 8737: 8737: template 8737: _OIter 8737: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 8737: 8737: template 8737: _OIter 8737: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 8737: 8737: 8737: 8737: template 8737: _OIter 8737: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 8737: 8737: template 8737: _OIter 8737: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 8737: 8737: 8737: 8737: template 8737: void 8737: reverse(_BIter, _BIter); 8737: 8737: template 8737: _OIter 8737: reverse_copy(_BIter, _BIter, _OIter); 8737: 8737: inline namespace _V2 8737: { 8737: template 8737: _FIter 8737: rotate(_FIter, _FIter, _FIter); 8737: } 8737: 8737: template 8737: _OIter 8737: rotate_copy(_FIter, _FIter, _FIter, _OIter); 8737: # 565 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: template 8737: void 8737: shuffle(_RAIter, _RAIter, _UGenerator&&); 8737: 8737: 8737: template 8737: void 8737: sort_heap(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: sort_heap(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: _BIter 8737: stable_partition(_BIter, _BIter, _Predicate); 8737: # 594 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8737: template 8737: _FIter2 8737: swap_ranges(_FIter1, _FIter1, _FIter2); 8737: 8737: 8737: 8737: template 8737: _FIter 8737: unique(_FIter, _FIter); 8737: 8737: template 8737: _FIter 8737: unique(_FIter, _FIter, _BinaryPredicate); 8737: 8737: 8737: 8737: template 8737: _FIter 8737: upper_bound(_FIter, _FIter, const _Tp&); 8737: 8737: template 8737: _FIter 8737: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 8737: 8737: 8737: 8737: template 8737: _FIter 8737: adjacent_find(_FIter, _FIter); 8737: 8737: template 8737: _FIter 8737: adjacent_find(_FIter, _FIter, _BinaryPredicate); 8737: 8737: template 8737: typename iterator_traits<_IIter>::difference_type 8737: count(_IIter, _IIter, const _Tp&); 8737: 8737: template 8737: typename iterator_traits<_IIter>::difference_type 8737: count_if(_IIter, _IIter, _Predicate); 8737: 8737: template 8737: bool 8737: equal(_IIter1, _IIter1, _IIter2); 8737: 8737: template 8737: bool 8737: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8737: 8737: template 8737: _IIter 8737: find(_IIter, _IIter, const _Tp&); 8737: 8737: template 8737: _FIter1 8737: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 8737: 8737: template 8737: _FIter1 8737: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8737: 8737: template 8737: _IIter 8737: find_if(_IIter, _IIter, _Predicate); 8737: 8737: template 8737: _Funct 8737: for_each(_IIter, _IIter, _Funct); 8737: 8737: template 8737: void 8737: generate(_FIter, _FIter, _Generator); 8737: 8737: template 8737: _OIter 8737: generate_n(_OIter, _Size, _Generator); 8737: 8737: template 8737: bool 8737: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 8737: 8737: template 8737: bool 8737: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8737: 8737: template 8737: 8737: _FIter 8737: max_element(_FIter, _FIter); 8737: 8737: template 8737: 8737: _FIter 8737: max_element(_FIter, _FIter, _Compare); 8737: 8737: template 8737: _OIter 8737: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8737: 8737: template 8737: _OIter 8737: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8737: 8737: template 8737: 8737: _FIter 8737: min_element(_FIter, _FIter); 8737: 8737: template 8737: 8737: _FIter 8737: min_element(_FIter, _FIter, _Compare); 8737: 8737: template 8737: pair<_IIter1, _IIter2> 8737: mismatch(_IIter1, _IIter1, _IIter2); 8737: 8737: template 8737: pair<_IIter1, _IIter2> 8737: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8737: 8737: template 8737: void 8737: nth_element(_RAIter, _RAIter, _RAIter); 8737: 8737: template 8737: void 8737: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 8737: 8737: template 8737: void 8737: partial_sort(_RAIter, _RAIter, _RAIter); 8737: 8737: template 8737: void 8737: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 8737: 8737: template 8737: _BIter 8737: partition(_BIter, _BIter, _Predicate); 8737: 8737: template 8737: void 8737: random_shuffle(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: random_shuffle(_RAIter, _RAIter, 8737: 8737: _Generator&&); 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: replace(_FIter, _FIter, const _Tp&, const _Tp&); 8737: 8737: template 8737: void 8737: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 8737: 8737: template 8737: _FIter1 8737: search(_FIter1, _FIter1, _FIter2, _FIter2); 8737: 8737: template 8737: _FIter1 8737: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8737: 8737: template 8737: _FIter 8737: search_n(_FIter, _FIter, _Size, const _Tp&); 8737: 8737: template 8737: _FIter 8737: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 8737: 8737: template 8737: _OIter 8737: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8737: 8737: template 8737: _OIter 8737: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8737: 8737: template 8737: _OIter 8737: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8737: 8737: template 8737: _OIter 8737: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8737: 8737: template 8737: _OIter 8737: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8737: 8737: template 8737: _OIter 8737: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 8737: _OIter, _Compare); 8737: 8737: template 8737: _OIter 8737: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8737: 8737: template 8737: _OIter 8737: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8737: 8737: template 8737: void 8737: sort(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: sort(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: void 8737: stable_sort(_RAIter, _RAIter); 8737: 8737: template 8737: void 8737: stable_sort(_RAIter, _RAIter, _Compare); 8737: 8737: template 8737: _OIter 8737: transform(_IIter, _IIter, _OIter, _UnaryOperation); 8737: 8737: template 8737: _OIter 8737: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 8737: 8737: template 8737: _OIter 8737: unique_copy(_IIter, _IIter, _OIter); 8737: 8737: template 8737: _OIter 8737: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 8737: 8737: 8737: 8737: } 8737: # 61 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_heap.h" 1 3 8737: # 62 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _Distance 8737: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 8737: _Compare& __comp) 8737: { 8737: _Distance __parent = 0; 8737: for (_Distance __child = 1; __child < __n; ++__child) 8737: { 8737: if (__comp(__first + __parent, __first + __child)) 8737: return __child; 8737: if ((__child & 1) == 0) 8737: ++__parent; 8737: } 8737: return __n; 8737: } 8737: 8737: 8737: 8737: template 8737: inline bool 8737: __is_heap(_RandomAccessIterator __first, _Distance __n) 8737: { 8737: __gnu_cxx::__ops::_Iter_less_iter __comp; 8737: return std::__is_heap_until(__first, __n, __comp) == __n; 8737: } 8737: 8737: template 8737: inline bool 8737: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 8737: { 8737: typedef __decltype(__comp) _Cmp; 8737: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8737: return std::__is_heap_until(__first, __n, __cmp) == __n; 8737: } 8737: 8737: template 8737: inline bool 8737: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { return std::__is_heap(__first, std::distance(__first, __last)); } 8737: 8737: template 8737: inline bool 8737: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: return std::__is_heap(__first, std::move(__comp), 8737: std::distance(__first, __last)); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: __push_heap(_RandomAccessIterator __first, 8737: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 8737: _Compare& __comp) 8737: { 8737: _Distance __parent = (__holeIndex - 1) / 2; 8737: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 8737: { 8737: *(__first + __holeIndex) = std::move(*(__first + __parent)); 8737: __holeIndex = __parent; 8737: __parent = (__holeIndex - 1) / 2; 8737: } 8737: *(__first + __holeIndex) = std::move(__value); 8737: } 8737: # 152 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _DistanceType; 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: __gnu_cxx::__ops::_Iter_less_val __comp; 8737: _ValueType __value = std::move(*(__last - 1)); 8737: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8737: _DistanceType(0), std::move(__value), __comp); 8737: } 8737: # 187 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _DistanceType; 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8737: __cmp(std::move(__comp)); 8737: _ValueType __value = std::move(*(__last - 1)); 8737: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8737: _DistanceType(0), std::move(__value), __cmp); 8737: } 8737: 8737: template 8737: void 8737: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 8737: _Distance __len, _Tp __value, _Compare __comp) 8737: { 8737: const _Distance __topIndex = __holeIndex; 8737: _Distance __secondChild = __holeIndex; 8737: while (__secondChild < (__len - 1) / 2) 8737: { 8737: __secondChild = 2 * (__secondChild + 1); 8737: if (__comp(__first + __secondChild, 8737: __first + (__secondChild - 1))) 8737: __secondChild--; 8737: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 8737: __holeIndex = __secondChild; 8737: } 8737: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 8737: { 8737: __secondChild = 2 * (__secondChild + 1); 8737: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 8737: ; 8737: __holeIndex = __secondChild - 1; 8737: } 8737: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8737: __cmp(std::move(__comp)); 8737: std::__push_heap(__first, __holeIndex, __topIndex, 8737: std::move(__value), __cmp); 8737: } 8737: 8737: template 8737: inline void 8737: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _RandomAccessIterator __result, _Compare& __comp) 8737: { 8737: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _DistanceType; 8737: 8737: _ValueType __value = std::move(*__result); 8737: *__result = std::move(*__first); 8737: std::__adjust_heap(__first, _DistanceType(0), 8737: _DistanceType(__last - __first), 8737: std::move(__value), __comp); 8737: } 8737: # 269 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: if (__last - __first > 1) 8737: { 8737: --__last; 8737: __gnu_cxx::__ops::_Iter_less_iter __comp; 8737: std::__pop_heap(__first, __last, __last, __comp); 8737: } 8737: } 8737: # 302 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: pop_heap(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: if (__last - __first > 1) 8737: { 8737: typedef __decltype(__comp) _Cmp; 8737: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8737: --__last; 8737: std::__pop_heap(__first, __last, __last, __cmp); 8737: } 8737: } 8737: 8737: template 8737: void 8737: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare& __comp) 8737: { 8737: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _DistanceType; 8737: 8737: if (__last - __first < 2) 8737: return; 8737: 8737: const _DistanceType __len = __last - __first; 8737: _DistanceType __parent = (__len - 2) / 2; 8737: while (true) 8737: { 8737: _ValueType __value = std::move(*(__first + __parent)); 8737: std::__adjust_heap(__first, __parent, __len, std::move(__value), 8737: __comp); 8737: if (__parent == 0) 8737: return; 8737: __parent--; 8737: } 8737: } 8737: # 358 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: __gnu_cxx::__ops::_Iter_less_iter __comp; 8737: std::__make_heap(__first, __last, __comp); 8737: } 8737: # 384 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: typedef __decltype(__comp) _Cmp; 8737: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8737: std::__make_heap(__first, __last, __cmp); 8737: } 8737: 8737: template 8737: void 8737: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare& __comp) 8737: { 8737: while (__last - __first > 1) 8737: { 8737: --__last; 8737: std::__pop_heap(__first, __last, __last, __comp); 8737: } 8737: } 8737: # 420 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: __gnu_cxx::__ops::_Iter_less_iter __comp; 8737: std::__sort_heap(__first, __last, __comp); 8737: } 8737: # 447 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline void 8737: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: typedef __decltype(__comp) _Cmp; 8737: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8737: std::__sort_heap(__first, __last, __cmp); 8737: } 8737: # 475 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline _RandomAccessIterator 8737: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: __gnu_cxx::__ops::_Iter_less_iter __comp; 8737: return __first + 8737: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 8737: } 8737: # 503 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline _RandomAccessIterator 8737: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: typedef __decltype(__comp) _Cmp; 8737: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8737: return __first 8737: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 8737: } 8737: # 527 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline bool 8737: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { return std::is_heap_until(__first, __last) == __last; } 8737: # 540 "/usr/include/c++/8/bits/stl_heap.h" 3 8737: template 8737: inline bool 8737: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: const auto __dist = std::distance(__first, __last); 8737: typedef __decltype(__comp) _Cmp; 8737: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8737: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 8737: } 8737: 8737: 8737: 8737: } 8737: # 62 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_tempbuf.h" 1 3 8737: # 60 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8737: # 1 "/usr/include/c++/8/bits/stl_construct.h" 1 3 8737: # 59 "/usr/include/c++/8/bits/stl_construct.h" 3 8737: # 1 "/usr/include/c++/8/new" 1 3 8737: # 37 "/usr/include/c++/8/new" 3 8737: 8737: # 38 "/usr/include/c++/8/new" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/exception" 1 3 8737: # 33 "/usr/include/c++/8/exception" 3 8737: 8737: # 34 "/usr/include/c++/8/exception" 3 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/exception.h" 1 3 8737: # 34 "/usr/include/c++/8/bits/exception.h" 3 8737: 8737: # 35 "/usr/include/c++/8/bits/exception.h" 3 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: 8737: 8737: extern "C++" { 8737: 8737: namespace std 8737: { 8737: # 60 "/usr/include/c++/8/bits/exception.h" 3 8737: class exception 8737: { 8737: public: 8737: exception() noexcept { } 8737: virtual ~exception() noexcept; 8737: 8737: 8737: 8737: virtual const char* 8737: what() const noexcept; 8737: }; 8737: 8737: } 8737: 8737: } 8737: 8737: #pragma GCC visibility pop 8737: # 39 "/usr/include/c++/8/exception" 2 3 8737: 8737: extern "C++" { 8737: 8737: namespace std 8737: { 8737: 8737: 8737: class bad_exception : public exception 8737: { 8737: public: 8737: bad_exception() noexcept { } 8737: 8737: 8737: 8737: virtual ~bad_exception() noexcept; 8737: 8737: 8737: virtual const char* 8737: what() const noexcept; 8737: }; 8737: 8737: 8737: typedef void (*terminate_handler) (); 8737: 8737: 8737: typedef void (*unexpected_handler) (); 8737: 8737: 8737: terminate_handler set_terminate(terminate_handler) noexcept; 8737: 8737: 8737: 8737: terminate_handler get_terminate() noexcept; 8737: 8737: 8737: 8737: 8737: void terminate() noexcept __attribute__ ((__noreturn__)); 8737: 8737: 8737: unexpected_handler set_unexpected(unexpected_handler) noexcept; 8737: 8737: 8737: 8737: unexpected_handler get_unexpected() noexcept; 8737: 8737: 8737: 8737: 8737: void unexpected() __attribute__ ((__noreturn__)); 8737: # 101 "/usr/include/c++/8/exception" 3 8737: 8737: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: } 8737: 8737: namespace __gnu_cxx 8737: { 8737: 8737: # 133 "/usr/include/c++/8/exception" 3 8737: void __verbose_terminate_handler(); 8737: 8737: 8737: } 8737: 8737: } 8737: 8737: #pragma GCC visibility pop 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/exception_ptr.h" 1 3 8737: # 34 "/usr/include/c++/8/bits/exception_ptr.h" 3 8737: #pragma GCC visibility push(default) 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 1 3 8737: # 34 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8737: 8737: # 35 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 39 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 2 3 8737: # 50 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8737: namespace std 8737: { 8737: class type_info; 8737: } 8737: 8737: namespace __cxxabiv1 8737: { 8737: struct __cxa_refcounted_exception; 8737: 8737: extern "C" 8737: { 8737: 8737: void* 8737: __cxa_allocate_exception(size_t) noexcept; 8737: 8737: 8737: __cxa_refcounted_exception* 8737: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 8737: void ( *dest) (void *)) noexcept; 8737: 8737: } 8737: } 8737: 8737: 8737: 8737: #pragma GCC visibility pop 8737: # 39 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8737: # 1 "/usr/include/c++/8/typeinfo" 1 3 8737: # 32 "/usr/include/c++/8/typeinfo" 3 8737: 8737: # 33 "/usr/include/c++/8/typeinfo" 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/hash_bytes.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/hash_bytes.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/hash_bytes.h" 3 8737: 8737: 8737: 8737: namespace std 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: size_t 8737: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8737: 8737: 8737: 8737: 8737: 8737: size_t 8737: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8737: 8737: 8737: } 8737: # 37 "/usr/include/c++/8/typeinfo" 2 3 8737: 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: extern "C++" { 8737: 8737: namespace __cxxabiv1 8737: { 8737: class __class_type_info; 8737: } 8737: # 80 "/usr/include/c++/8/typeinfo" 3 8737: namespace std 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: class type_info 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: virtual ~type_info(); 8737: 8737: 8737: 8737: const char* name() const noexcept 8737: { return __name[0] == '*' ? __name + 1 : __name; } 8737: # 115 "/usr/include/c++/8/typeinfo" 3 8737: bool before(const type_info& __arg) const noexcept 8737: { return (__name[0] == '*' && __arg.__name[0] == '*') 8737: ? __name < __arg.__name 8737: : __builtin_strcmp (__name, __arg.__name) < 0; } 8737: 8737: bool operator==(const type_info& __arg) const noexcept 8737: { 8737: return ((__name == __arg.__name) 8737: || (__name[0] != '*' && 8737: __builtin_strcmp (__name, __arg.__name) == 0)); 8737: } 8737: # 136 "/usr/include/c++/8/typeinfo" 3 8737: bool operator!=(const type_info& __arg) const noexcept 8737: { return !operator==(__arg); } 8737: 8737: 8737: size_t hash_code() const noexcept 8737: { 8737: 8737: return _Hash_bytes(name(), __builtin_strlen(name()), 8737: static_cast(0xc70f6907UL)); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: virtual bool __is_pointer_p() const; 8737: 8737: 8737: virtual bool __is_function_p() const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 8737: unsigned __outer) const; 8737: 8737: 8737: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 8737: void **__obj_ptr) const; 8737: 8737: protected: 8737: const char *__name; 8737: 8737: explicit type_info(const char *__n): __name(__n) { } 8737: 8737: private: 8737: 8737: type_info& operator=(const type_info&); 8737: type_info(const type_info&); 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class bad_cast : public exception 8737: { 8737: public: 8737: bad_cast() noexcept { } 8737: 8737: 8737: 8737: virtual ~bad_cast() noexcept; 8737: 8737: 8737: virtual const char* what() const noexcept; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: class bad_typeid : public exception 8737: { 8737: public: 8737: bad_typeid () noexcept { } 8737: 8737: 8737: 8737: virtual ~bad_typeid() noexcept; 8737: 8737: 8737: virtual const char* what() const noexcept; 8737: }; 8737: } 8737: 8737: } 8737: 8737: #pragma GCC visibility pop 8737: # 40 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8737: # 1 "/usr/include/c++/8/new" 1 3 8737: # 41 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8737: 8737: extern "C++" { 8737: 8737: namespace std 8737: { 8737: class type_info; 8737: 8737: 8737: 8737: 8737: 8737: namespace __exception_ptr 8737: { 8737: class exception_ptr; 8737: } 8737: 8737: using __exception_ptr::exception_ptr; 8737: 8737: 8737: 8737: 8737: 8737: exception_ptr current_exception() noexcept; 8737: 8737: template 8737: exception_ptr make_exception_ptr(_Ex) noexcept; 8737: 8737: 8737: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 8737: 8737: namespace __exception_ptr 8737: { 8737: using std::rethrow_exception; 8737: 8737: 8737: 8737: 8737: 8737: class exception_ptr 8737: { 8737: void* _M_exception_object; 8737: 8737: explicit exception_ptr(void* __e) noexcept; 8737: 8737: void _M_addref() noexcept; 8737: void _M_release() noexcept; 8737: 8737: void *_M_get() const noexcept __attribute__ ((__pure__)); 8737: 8737: friend exception_ptr std::current_exception() noexcept; 8737: friend void std::rethrow_exception(exception_ptr); 8737: template 8737: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 8737: 8737: public: 8737: exception_ptr() noexcept; 8737: 8737: exception_ptr(const exception_ptr&) noexcept; 8737: 8737: 8737: exception_ptr(nullptr_t) noexcept 8737: : _M_exception_object(0) 8737: { } 8737: 8737: exception_ptr(exception_ptr&& __o) noexcept 8737: : _M_exception_object(__o._M_exception_object) 8737: { __o._M_exception_object = 0; } 8737: # 117 "/usr/include/c++/8/bits/exception_ptr.h" 3 8737: exception_ptr& 8737: operator=(const exception_ptr&) noexcept; 8737: 8737: 8737: exception_ptr& 8737: operator=(exception_ptr&& __o) noexcept 8737: { 8737: exception_ptr(static_cast(__o)).swap(*this); 8737: return *this; 8737: } 8737: 8737: 8737: ~exception_ptr() noexcept; 8737: 8737: void 8737: swap(exception_ptr&) noexcept; 8737: # 144 "/usr/include/c++/8/bits/exception_ptr.h" 3 8737: explicit operator bool() const 8737: { return _M_exception_object; } 8737: 8737: 8737: friend bool 8737: operator==(const exception_ptr&, const exception_ptr&) 8737: noexcept __attribute__ ((__pure__)); 8737: 8737: const class std::type_info* 8737: __cxa_exception_type() const noexcept 8737: __attribute__ ((__pure__)); 8737: }; 8737: 8737: bool 8737: operator==(const exception_ptr&, const exception_ptr&) 8737: noexcept __attribute__ ((__pure__)); 8737: 8737: bool 8737: operator!=(const exception_ptr&, const exception_ptr&) 8737: noexcept __attribute__ ((__pure__)); 8737: 8737: inline void 8737: swap(exception_ptr& __lhs, exception_ptr& __rhs) 8737: { __lhs.swap(__rhs); } 8737: 8737: template 8737: inline void 8737: __dest_thunk(void* __x) 8737: { static_cast<_Ex*>(__x)->~_Ex(); } 8737: 8737: } 8737: 8737: 8737: template 8737: exception_ptr 8737: make_exception_ptr(_Ex __ex) noexcept 8737: { 8737: 8737: try 8737: { 8737: 8737: void *__e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 8737: (void)__cxxabiv1::__cxa_init_primary_exception( 8737: __e, const_cast(&typeid(__ex)), 8737: __exception_ptr::__dest_thunk<_Ex>); 8737: ::new (__e) _Ex(__ex); 8737: return exception_ptr(__e); 8737: 8737: 8737: 8737: } 8737: catch(...) 8737: { 8737: return current_exception(); 8737: } 8737: 8737: 8737: 8737: } 8737: 8737: 8737: } 8737: 8737: } 8737: 8737: #pragma GCC visibility pop 8737: # 144 "/usr/include/c++/8/exception" 2 3 8737: # 1 "/usr/include/c++/8/bits/nested_exception.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/nested_exception.h" 3 8737: #pragma GCC visibility push(default) 8737: # 42 "/usr/include/c++/8/bits/nested_exception.h" 3 8737: extern "C++" { 8737: 8737: namespace std 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: class nested_exception 8737: { 8737: exception_ptr _M_ptr; 8737: 8737: public: 8737: nested_exception() noexcept : _M_ptr(current_exception()) { } 8737: 8737: nested_exception(const nested_exception&) noexcept = default; 8737: 8737: nested_exception& operator=(const nested_exception&) noexcept = default; 8737: 8737: virtual ~nested_exception() noexcept; 8737: 8737: [[noreturn]] 8737: void 8737: rethrow_nested() const 8737: { 8737: if (_M_ptr) 8737: rethrow_exception(_M_ptr); 8737: std::terminate(); 8737: } 8737: 8737: exception_ptr 8737: nested_ptr() const noexcept 8737: { return _M_ptr; } 8737: }; 8737: 8737: template 8737: struct _Nested_exception : public _Except, public nested_exception 8737: { 8737: explicit _Nested_exception(const _Except& __ex) 8737: : _Except(__ex) 8737: { } 8737: 8737: explicit _Nested_exception(_Except&& __ex) 8737: : _Except(static_cast<_Except&&>(__ex)) 8737: { } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: [[noreturn]] 8737: inline void 8737: __throw_with_nested_impl(_Tp&& __t, true_type) 8737: { 8737: using _Up = typename remove_reference<_Tp>::type; 8737: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 8737: } 8737: 8737: template 8737: [[noreturn]] 8737: inline void 8737: __throw_with_nested_impl(_Tp&& __t, false_type) 8737: { throw std::forward<_Tp>(__t); } 8737: 8737: 8737: 8737: template 8737: [[noreturn]] 8737: inline void 8737: throw_with_nested(_Tp&& __t) 8737: { 8737: using _Up = typename decay<_Tp>::type; 8737: using _CopyConstructible 8737: = __and_, is_move_constructible<_Up>>; 8737: static_assert(_CopyConstructible::value, 8737: "throw_with_nested argument must be CopyConstructible"); 8737: using __nest = __and_, __bool_constant, 8737: __not_>>; 8737: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 8737: } 8737: 8737: 8737: template 8737: using __rethrow_if_nested_cond = typename enable_if< 8737: __and_, 8737: __or_<__not_>, 8737: is_convertible<_Tp*, nested_exception*>>>::value 8737: >::type; 8737: 8737: 8737: template 8737: inline __rethrow_if_nested_cond<_Ex> 8737: __rethrow_if_nested_impl(const _Ex* __ptr) 8737: { 8737: if (auto __ne_ptr = dynamic_cast(__ptr)) 8737: __ne_ptr->rethrow_nested(); 8737: } 8737: 8737: 8737: inline void 8737: __rethrow_if_nested_impl(const void*) 8737: { } 8737: 8737: 8737: template 8737: inline void 8737: rethrow_if_nested(const _Ex& __ex) 8737: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 8737: 8737: 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: #pragma GCC visibility pop 8737: # 145 "/usr/include/c++/8/exception" 2 3 8737: # 41 "/usr/include/c++/8/new" 2 3 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: extern "C++" { 8737: 8737: namespace std 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: class bad_alloc : public exception 8737: { 8737: public: 8737: bad_alloc() throw() { } 8737: 8737: 8737: 8737: virtual ~bad_alloc() throw(); 8737: 8737: 8737: virtual const char* what() const throw(); 8737: }; 8737: 8737: 8737: class bad_array_new_length : public bad_alloc 8737: { 8737: public: 8737: bad_array_new_length() throw() { } 8737: 8737: 8737: 8737: virtual ~bad_array_new_length() throw(); 8737: 8737: 8737: virtual const char* what() const throw(); 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct nothrow_t 8737: { 8737: 8737: explicit nothrow_t() = default; 8737: 8737: }; 8737: 8737: extern const nothrow_t nothrow; 8737: 8737: 8737: 8737: typedef void (*new_handler)(); 8737: 8737: 8737: 8737: new_handler set_new_handler(new_handler) throw(); 8737: 8737: 8737: 8737: new_handler get_new_handler() noexcept; 8737: 8737: } 8737: # 120 "/usr/include/c++/8/new" 3 8737: void* operator new(std::size_t) 8737: __attribute__((__externally_visible__)); 8737: void* operator new[](std::size_t) 8737: __attribute__((__externally_visible__)); 8737: void operator delete(void*) noexcept 8737: __attribute__((__externally_visible__)); 8737: void operator delete[](void*) noexcept 8737: __attribute__((__externally_visible__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: void* operator new(std::size_t, const std::nothrow_t&) noexcept 8737: __attribute__((__externally_visible__)); 8737: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 8737: __attribute__((__externally_visible__)); 8737: void operator delete(void*, const std::nothrow_t&) noexcept 8737: __attribute__((__externally_visible__)); 8737: void operator delete[](void*, const std::nothrow_t&) noexcept 8737: __attribute__((__externally_visible__)); 8737: # 168 "/usr/include/c++/8/new" 3 8737: inline void* operator new(std::size_t, void* __p) noexcept 8737: { return __p; } 8737: inline void* operator new[](std::size_t, void* __p) noexcept 8737: { return __p; } 8737: 8737: 8737: inline void operator delete (void*, void*) noexcept { } 8737: inline void operator delete[](void*, void*) noexcept { } 8737: 8737: } 8737: # 216 "/usr/include/c++/8/new" 3 8737: #pragma GCC visibility pop 8737: # 60 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8737: 8737: # 1 "/usr/include/c++/8/ext/alloc_traits.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/alloc_traits.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/alloc_traits.h" 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/alloc_traits.h" 1 3 8737: # 35 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: # 1 "/usr/include/c++/8/bits/memoryfwd.h" 1 3 8737: # 46 "/usr/include/c++/8/bits/memoryfwd.h" 3 8737: 8737: # 47 "/usr/include/c++/8/bits/memoryfwd.h" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 63 "/usr/include/c++/8/bits/memoryfwd.h" 3 8737: template 8737: class allocator; 8737: 8737: template<> 8737: class allocator; 8737: 8737: 8737: template 8737: struct uses_allocator; 8737: 8737: 8737: 8737: 8737: } 8737: # 36 "/usr/include/c++/8/bits/alloc_traits.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: struct __allocator_traits_base 8737: { 8737: template 8737: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8737: 8737: template 8737: struct __rebind<_Tp, _Up, 8737: __void_t::other>> 8737: { using type = typename _Tp::template rebind<_Up>::other; }; 8737: 8737: protected: 8737: template 8737: using __pointer = typename _Tp::pointer; 8737: template 8737: using __c_pointer = typename _Tp::const_pointer; 8737: template 8737: using __v_pointer = typename _Tp::void_pointer; 8737: template 8737: using __cv_pointer = typename _Tp::const_void_pointer; 8737: template 8737: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 8737: template 8737: using __pocma = typename _Tp::propagate_on_container_move_assignment; 8737: template 8737: using __pocs = typename _Tp::propagate_on_container_swap; 8737: template 8737: using __equal = typename _Tp::is_always_equal; 8737: }; 8737: 8737: template 8737: using __alloc_rebind 8737: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct allocator_traits : __allocator_traits_base 8737: { 8737: 8737: typedef _Alloc allocator_type; 8737: 8737: typedef typename _Alloc::value_type value_type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: using pointer = __detected_or_t; 8737: 8737: private: 8737: 8737: template class _Func, typename _Tp, typename = void> 8737: struct _Ptr 8737: { 8737: using type = typename pointer_traits::template rebind<_Tp>; 8737: }; 8737: 8737: template class _Func, typename _Tp> 8737: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 8737: { 8737: using type = _Func<_Alloc>; 8737: }; 8737: 8737: 8737: template 8737: struct _Diff 8737: { using type = typename pointer_traits<_PtrT>::difference_type; }; 8737: 8737: template 8737: struct _Diff<_A2, _PtrT, __void_t> 8737: { using type = typename _A2::difference_type; }; 8737: 8737: 8737: template 8737: struct _Size : make_unsigned<_DiffT> { }; 8737: 8737: template 8737: struct _Size<_A2, _DiffT, __void_t> 8737: { using type = typename _A2::size_type; }; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using void_pointer = typename _Ptr<__v_pointer, void>::type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using difference_type = typename _Diff<_Alloc, pointer>::type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using size_type = typename _Size<_Alloc, difference_type>::type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using propagate_on_container_copy_assignment 8737: = __detected_or_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using propagate_on_container_move_assignment 8737: = __detected_or_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using propagate_on_container_swap 8737: = __detected_or_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: using is_always_equal 8737: = __detected_or_t::type, __equal, _Alloc>; 8737: 8737: template 8737: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 8737: template 8737: using rebind_traits = allocator_traits>; 8737: 8737: private: 8737: template 8737: static auto 8737: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 8737: -> decltype(__a.allocate(__n, __hint)) 8737: { return __a.allocate(__n, __hint); } 8737: 8737: template 8737: static pointer 8737: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 8737: { return __a.allocate(__n); } 8737: 8737: template 8737: struct __construct_helper 8737: { 8737: template()->construct( 8737: std::declval<_Tp*>(), std::declval<_Args>()...))> 8737: static true_type __test(int); 8737: 8737: template 8737: static false_type __test(...); 8737: 8737: using type = decltype(__test<_Alloc>(0)); 8737: }; 8737: 8737: template 8737: using __has_construct 8737: = typename __construct_helper<_Tp, _Args...>::type; 8737: 8737: template 8737: static _Require<__has_construct<_Tp, _Args...>> 8737: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8737: { __a.construct(__p, std::forward<_Args>(__args)...); } 8737: 8737: template 8737: static 8737: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 8737: is_constructible<_Tp, _Args...>>> 8737: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 8737: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 8737: 8737: template 8737: static auto 8737: _S_destroy(_Alloc2& __a, _Tp* __p, int) 8737: -> decltype(__a.destroy(__p)) 8737: { __a.destroy(__p); } 8737: 8737: template 8737: static void 8737: _S_destroy(_Alloc2&, _Tp* __p, ...) 8737: { __p->~_Tp(); } 8737: 8737: template 8737: static auto 8737: _S_max_size(_Alloc2& __a, int) 8737: -> decltype(__a.max_size()) 8737: { return __a.max_size(); } 8737: 8737: template 8737: static size_type 8737: _S_max_size(_Alloc2&, ...) 8737: { 8737: 8737: 8737: return __gnu_cxx::__numeric_traits::__max 8737: / sizeof(value_type); 8737: } 8737: 8737: template 8737: static auto 8737: _S_select(_Alloc2& __a, int) 8737: -> decltype(__a.select_on_container_copy_construction()) 8737: { return __a.select_on_container_copy_construction(); } 8737: 8737: template 8737: static _Alloc2 8737: _S_select(_Alloc2& __a, ...) 8737: { return __a; } 8737: 8737: public: 8737: # 299 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static pointer 8737: allocate(_Alloc& __a, size_type __n) 8737: { return __a.allocate(__n); } 8737: # 314 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static pointer 8737: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 8737: { return _S_allocate(__a, __n, __hint, 0); } 8737: # 326 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static void 8737: deallocate(_Alloc& __a, pointer __p, size_type __n) 8737: { __a.deallocate(__p, __n); } 8737: # 341 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: template 8737: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8737: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 8737: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 8737: # 354 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: template 8737: static void destroy(_Alloc& __a, _Tp* __p) 8737: { _S_destroy(__a, __p, 0); } 8737: # 366 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static size_type max_size(const _Alloc& __a) noexcept 8737: { return _S_max_size(__a, 0); } 8737: # 377 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static _Alloc 8737: select_on_container_copy_construction(const _Alloc& __rhs) 8737: { return _S_select(__rhs, 0); } 8737: }; 8737: 8737: 8737: template 8737: struct allocator_traits> 8737: { 8737: 8737: using allocator_type = allocator<_Tp>; 8737: 8737: using value_type = _Tp; 8737: 8737: 8737: using pointer = _Tp*; 8737: 8737: 8737: using const_pointer = const _Tp*; 8737: 8737: 8737: using void_pointer = void*; 8737: 8737: 8737: using const_void_pointer = const void*; 8737: 8737: 8737: using difference_type = std::ptrdiff_t; 8737: 8737: 8737: using size_type = std::size_t; 8737: 8737: 8737: using propagate_on_container_copy_assignment = false_type; 8737: 8737: 8737: using propagate_on_container_move_assignment = true_type; 8737: 8737: 8737: using propagate_on_container_swap = false_type; 8737: 8737: 8737: using is_always_equal = true_type; 8737: 8737: template 8737: using rebind_alloc = allocator<_Up>; 8737: 8737: template 8737: using rebind_traits = allocator_traits>; 8737: # 434 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static pointer 8737: allocate(allocator_type& __a, size_type __n) 8737: { return __a.allocate(__n); } 8737: # 448 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static pointer 8737: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 8737: { return __a.allocate(__n, __hint); } 8737: # 460 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: static void 8737: deallocate(allocator_type& __a, pointer __p, size_type __n) 8737: { __a.deallocate(__p, __n); } 8737: # 472 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: template 8737: static void 8737: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 8737: { __a.construct(__p, std::forward<_Args>(__args)...); } 8737: # 484 "/usr/include/c++/8/bits/alloc_traits.h" 3 8737: template 8737: static void 8737: destroy(allocator_type& __a, _Up* __p) 8737: { __a.destroy(__p); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: static size_type 8737: max_size(const allocator_type& __a) noexcept 8737: { return __a.max_size(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: static allocator_type 8737: select_on_container_copy_construction(const allocator_type& __rhs) 8737: { return __rhs; } 8737: }; 8737: 8737: 8737: template 8737: inline void 8737: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 8737: { __one = __two; } 8737: 8737: template 8737: inline void 8737: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 8737: { } 8737: 8737: template 8737: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 8737: { 8737: typedef allocator_traits<_Alloc> __traits; 8737: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 8737: __do_alloc_on_copy(__one, __two, __pocca()); 8737: } 8737: 8737: template 8737: inline _Alloc __alloc_on_copy(const _Alloc& __a) 8737: { 8737: typedef allocator_traits<_Alloc> __traits; 8737: return __traits::select_on_container_copy_construction(__a); 8737: } 8737: 8737: template 8737: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 8737: { __one = std::move(__two); } 8737: 8737: template 8737: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 8737: { } 8737: 8737: template 8737: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 8737: { 8737: typedef allocator_traits<_Alloc> __traits; 8737: typedef typename __traits::propagate_on_container_move_assignment __pocma; 8737: __do_alloc_on_move(__one, __two, __pocma()); 8737: } 8737: 8737: template 8737: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 8737: { 8737: using std::swap; 8737: swap(__one, __two); 8737: } 8737: 8737: template 8737: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 8737: { } 8737: 8737: template 8737: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 8737: { 8737: typedef allocator_traits<_Alloc> __traits; 8737: typedef typename __traits::propagate_on_container_swap __pocs; 8737: __do_alloc_on_swap(__one, __two, __pocs()); 8737: } 8737: 8737: template 8737: class __is_copy_insertable_impl 8737: { 8737: typedef allocator_traits<_Alloc> _Traits; 8737: 8737: template(), 8737: std::declval<_Up*>(), 8737: std::declval()))> 8737: static true_type 8737: _M_select(int); 8737: 8737: template 8737: static false_type 8737: _M_select(...); 8737: 8737: public: 8737: typedef decltype(_M_select(0)) type; 8737: }; 8737: 8737: 8737: template 8737: struct __is_copy_insertable 8737: : __is_copy_insertable_impl<_Alloc>::type 8737: { }; 8737: 8737: 8737: template 8737: struct __is_copy_insertable> 8737: : is_copy_constructible<_Tp> 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct __is_allocator : false_type { }; 8737: 8737: template 8737: struct __is_allocator<_Alloc, 8737: __void_t().allocate(size_t{}))>> 8737: : true_type { }; 8737: 8737: template 8737: using _RequireAllocator 8737: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 8737: 8737: 8737: 8737: } 8737: # 37 "/usr/include/c++/8/ext/alloc_traits.h" 2 3 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __alloc_traits 8737: 8737: : std::allocator_traits<_Alloc> 8737: 8737: { 8737: typedef _Alloc allocator_type; 8737: 8737: typedef std::allocator_traits<_Alloc> _Base_type; 8737: typedef typename _Base_type::value_type value_type; 8737: typedef typename _Base_type::pointer pointer; 8737: typedef typename _Base_type::const_pointer const_pointer; 8737: typedef typename _Base_type::size_type size_type; 8737: typedef typename _Base_type::difference_type difference_type; 8737: 8737: typedef value_type& reference; 8737: typedef const value_type& const_reference; 8737: using _Base_type::allocate; 8737: using _Base_type::deallocate; 8737: using _Base_type::construct; 8737: using _Base_type::destroy; 8737: using _Base_type::max_size; 8737: 8737: private: 8737: template 8737: using __is_custom_pointer 8737: = std::__and_, 8737: std::__not_>>; 8737: 8737: public: 8737: 8737: template 8737: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8737: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 8737: { 8737: _Base_type::construct(__a, std::__to_address(__p), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: 8737: template 8737: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8737: destroy(_Alloc& __a, _Ptr __p) 8737: { _Base_type::destroy(__a, std::__to_address(__p)); } 8737: 8737: static _Alloc _S_select_on_copy(const _Alloc& __a) 8737: { return _Base_type::select_on_container_copy_construction(__a); } 8737: 8737: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 8737: { std::__alloc_on_swap(__a, __b); } 8737: 8737: static constexpr bool _S_propagate_on_copy_assign() 8737: { return _Base_type::propagate_on_container_copy_assignment::value; } 8737: 8737: static constexpr bool _S_propagate_on_move_assign() 8737: { return _Base_type::propagate_on_container_move_assignment::value; } 8737: 8737: static constexpr bool _S_propagate_on_swap() 8737: { return _Base_type::propagate_on_container_swap::value; } 8737: 8737: static constexpr bool _S_always_equal() 8737: { return _Base_type::is_always_equal::value; } 8737: 8737: static constexpr bool _S_nothrow_move() 8737: { return _S_propagate_on_move_assign() || _S_always_equal(); } 8737: 8737: template 8737: struct rebind 8737: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 8737: # 158 "/usr/include/c++/8/ext/alloc_traits.h" 3 8737: }; 8737: 8737: 8737: } 8737: # 62 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: _Construct(_T1* __p, _Args&&... __args) 8737: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 8737: # 87 "/usr/include/c++/8/bits/stl_construct.h" 3 8737: template 8737: inline void 8737: _Construct_novalue(_T1* __p) 8737: { ::new(static_cast(__p)) _T1; } 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: _Destroy(_Tp* __pointer) 8737: { __pointer->~_Tp(); } 8737: 8737: template 8737: struct _Destroy_aux 8737: { 8737: template 8737: static void 8737: __destroy(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: for (; __first != __last; ++__first) 8737: std::_Destroy(std::__addressof(*__first)); 8737: } 8737: }; 8737: 8737: template<> 8737: struct _Destroy_aux 8737: { 8737: template 8737: static void 8737: __destroy(_ForwardIterator, _ForwardIterator) { } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _Value_type; 8737: 8737: 8737: static_assert(is_destructible<_Value_type>::value, 8737: "value type is destructible"); 8737: 8737: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 8737: __destroy(__first, __last); 8737: } 8737: 8737: template 8737: struct _Destroy_n_aux 8737: { 8737: template 8737: static _ForwardIterator 8737: __destroy_n(_ForwardIterator __first, _Size __count) 8737: { 8737: for (; __count > 0; (void)++__first, --__count) 8737: std::_Destroy(std::__addressof(*__first)); 8737: return __first; 8737: } 8737: }; 8737: 8737: template<> 8737: struct _Destroy_n_aux 8737: { 8737: template 8737: static _ForwardIterator 8737: __destroy_n(_ForwardIterator __first, _Size __count) 8737: { 8737: std::advance(__first, __count); 8737: return __first; 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline _ForwardIterator 8737: _Destroy_n(_ForwardIterator __first, _Size __count) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _Value_type; 8737: 8737: 8737: static_assert(is_destructible<_Value_type>::value, 8737: "value type is destructible"); 8737: 8737: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 8737: __destroy_n(__first, __count); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8737: _Allocator& __alloc) 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8737: for (; __first != __last; ++__first) 8737: __traits::destroy(__alloc, std::__addressof(*__first)); 8737: } 8737: 8737: template 8737: inline void 8737: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8737: allocator<_Tp>&) 8737: { 8737: _Destroy(__first, __last); 8737: } 8737: # 232 "/usr/include/c++/8/bits/stl_construct.h" 3 8737: 8737: } 8737: # 61 "/usr/include/c++/8/bits/stl_tempbuf.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 83 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8737: template 8737: pair<_Tp*, ptrdiff_t> 8737: get_temporary_buffer(ptrdiff_t __len) noexcept 8737: { 8737: const ptrdiff_t __max = 8737: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 8737: if (__len > __max) 8737: __len = __max; 8737: 8737: while (__len > 0) 8737: { 8737: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 8737: std::nothrow)); 8737: if (__tmp != 0) 8737: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 8737: __len /= 2; 8737: } 8737: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 8737: } 8737: # 110 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8737: template 8737: inline void 8737: return_temporary_buffer(_Tp* __p) 8737: { ::operator delete(__p, std::nothrow); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class _Temporary_buffer 8737: { 8737: 8737: 8737: 8737: public: 8737: typedef _Tp value_type; 8737: typedef value_type* pointer; 8737: typedef pointer iterator; 8737: typedef ptrdiff_t size_type; 8737: 8737: protected: 8737: size_type _M_original_len; 8737: size_type _M_len; 8737: pointer _M_buffer; 8737: 8737: public: 8737: 8737: size_type 8737: size() const 8737: { return _M_len; } 8737: 8737: 8737: size_type 8737: requested_size() const 8737: { return _M_original_len; } 8737: 8737: 8737: iterator 8737: begin() 8737: { return _M_buffer; } 8737: 8737: 8737: iterator 8737: end() 8737: { return _M_buffer + _M_len; } 8737: 8737: 8737: 8737: 8737: 8737: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); 8737: 8737: ~_Temporary_buffer() 8737: { 8737: std::_Destroy(_M_buffer, _M_buffer + _M_len); 8737: std::return_temporary_buffer(_M_buffer); 8737: } 8737: 8737: private: 8737: 8737: _Temporary_buffer(const _Temporary_buffer&); 8737: 8737: void 8737: operator=(const _Temporary_buffer&); 8737: }; 8737: 8737: 8737: template 8737: struct __uninitialized_construct_buf_dispatch 8737: { 8737: template 8737: static void 8737: __ucr(_Pointer __first, _Pointer __last, 8737: _ForwardIterator __seed) 8737: { 8737: if(__first == __last) 8737: return; 8737: 8737: _Pointer __cur = __first; 8737: try 8737: { 8737: std::_Construct(std::__addressof(*__first), 8737: std::move(*__seed)); 8737: _Pointer __prev = __cur; 8737: ++__cur; 8737: for(; __cur != __last; ++__cur, ++__prev) 8737: std::_Construct(std::__addressof(*__cur), 8737: std::move(*__prev)); 8737: *__seed = std::move(*__prev); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_construct_buf_dispatch 8737: { 8737: template 8737: static void 8737: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 8737: }; 8737: # 229 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8737: template 8737: inline void 8737: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 8737: _ForwardIterator __seed) 8737: { 8737: typedef typename std::iterator_traits<_Pointer>::value_type 8737: _ValueType; 8737: 8737: std::__uninitialized_construct_buf_dispatch< 8737: __has_trivial_constructor(_ValueType)>:: 8737: __ucr(__first, __last, __seed); 8737: } 8737: 8737: template 8737: _Temporary_buffer<_ForwardIterator, _Tp>:: 8737: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) 8737: : _M_original_len(std::distance(__first, __last)), 8737: _M_len(0), _M_buffer(0) 8737: { 8737: try 8737: { 8737: std::pair __p(std::get_temporary_buffer< 8737: value_type>(_M_original_len)); 8737: _M_buffer = __p.first; 8737: _M_len = __p.second; 8737: if (_M_buffer) 8737: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 8737: __first); 8737: } 8737: catch(...) 8737: { 8737: std::return_temporary_buffer(_M_buffer); 8737: _M_buffer = 0; 8737: _M_len = 0; 8737: throw; 8737: } 8737: } 8737: 8737: 8737: } 8737: # 63 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/uniform_int_dist.h" 1 3 8737: # 35 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8737: # 1 "/usr/include/c++/8/limits" 1 3 8737: # 40 "/usr/include/c++/8/limits" 3 8737: 8737: # 41 "/usr/include/c++/8/limits" 3 8737: # 158 "/usr/include/c++/8/limits" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum float_round_style 8737: { 8737: round_indeterminate = -1, 8737: round_toward_zero = 0, 8737: round_to_nearest = 1, 8737: round_toward_infinity = 2, 8737: round_toward_neg_infinity = 3 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum float_denorm_style 8737: { 8737: 8737: denorm_indeterminate = -1, 8737: 8737: denorm_absent = 0, 8737: 8737: denorm_present = 1 8737: }; 8737: # 202 "/usr/include/c++/8/limits" 3 8737: struct __numeric_limits_base 8737: { 8737: 8737: 8737: static constexpr bool is_specialized = false; 8737: 8737: 8737: 8737: 8737: static constexpr int digits = 0; 8737: 8737: 8737: static constexpr int digits10 = 0; 8737: 8737: 8737: 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: 8737: 8737: static constexpr bool is_signed = false; 8737: 8737: 8737: static constexpr bool is_integer = false; 8737: 8737: 8737: 8737: 8737: static constexpr bool is_exact = false; 8737: 8737: 8737: 8737: static constexpr int radix = 0; 8737: 8737: 8737: 8737: static constexpr int min_exponent = 0; 8737: 8737: 8737: 8737: static constexpr int min_exponent10 = 0; 8737: 8737: 8737: 8737: 8737: static constexpr int max_exponent = 0; 8737: 8737: 8737: 8737: static constexpr int max_exponent10 = 0; 8737: 8737: 8737: static constexpr bool has_infinity = false; 8737: 8737: 8737: 8737: static constexpr bool has_quiet_NaN = false; 8737: 8737: 8737: 8737: static constexpr bool has_signaling_NaN = false; 8737: 8737: 8737: static constexpr float_denorm_style has_denorm = denorm_absent; 8737: 8737: 8737: 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: 8737: 8737: static constexpr bool is_iec559 = false; 8737: 8737: 8737: 8737: 8737: static constexpr bool is_bounded = false; 8737: # 288 "/usr/include/c++/8/limits" 3 8737: static constexpr bool is_modulo = false; 8737: 8737: 8737: static constexpr bool traps = false; 8737: 8737: 8737: static constexpr bool tinyness_before = false; 8737: 8737: 8737: 8737: 8737: static constexpr float_round_style round_style = 8737: round_toward_zero; 8737: }; 8737: # 311 "/usr/include/c++/8/limits" 3 8737: template 8737: struct numeric_limits : public __numeric_limits_base 8737: { 8737: 8737: 8737: static constexpr _Tp 8737: min() noexcept { return _Tp(); } 8737: 8737: 8737: static constexpr _Tp 8737: max() noexcept { return _Tp(); } 8737: 8737: 8737: 8737: 8737: static constexpr _Tp 8737: lowest() noexcept { return _Tp(); } 8737: 8737: 8737: 8737: 8737: static constexpr _Tp 8737: epsilon() noexcept { return _Tp(); } 8737: 8737: 8737: static constexpr _Tp 8737: round_error() noexcept { return _Tp(); } 8737: 8737: 8737: static constexpr _Tp 8737: infinity() noexcept { return _Tp(); } 8737: 8737: 8737: 8737: static constexpr _Tp 8737: quiet_NaN() noexcept { return _Tp(); } 8737: 8737: 8737: 8737: static constexpr _Tp 8737: signaling_NaN() noexcept { return _Tp(); } 8737: 8737: 8737: 8737: 8737: static constexpr _Tp 8737: denorm_min() noexcept { return _Tp(); } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct numeric_limits 8737: : public numeric_limits<_Tp> { }; 8737: 8737: template 8737: struct numeric_limits 8737: : public numeric_limits<_Tp> { }; 8737: 8737: template 8737: struct numeric_limits 8737: : public numeric_limits<_Tp> { }; 8737: # 382 "/usr/include/c++/8/limits" 3 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr bool 8737: min() noexcept { return false; } 8737: 8737: static constexpr bool 8737: max() noexcept { return true; } 8737: 8737: 8737: static constexpr bool 8737: lowest() noexcept { return min(); } 8737: 8737: static constexpr int digits = 1; 8737: static constexpr int digits10 = 0; 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = false; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr bool 8737: epsilon() noexcept { return false; } 8737: 8737: static constexpr bool 8737: round_error() noexcept { return false; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr bool 8737: infinity() noexcept { return false; } 8737: 8737: static constexpr bool 8737: quiet_NaN() noexcept { return false; } 8737: 8737: static constexpr bool 8737: signaling_NaN() noexcept { return false; } 8737: 8737: static constexpr bool 8737: denorm_min() noexcept { return false; } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: 8737: 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr char 8737: 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); } 8737: 8737: static constexpr char 8737: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 8737: 8737: 8737: static constexpr char 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 8737: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = ((char)(-1) < 0); 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr char 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr char 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr 8737: char infinity() noexcept { return char(); } 8737: 8737: static constexpr char 8737: quiet_NaN() noexcept { return char(); } 8737: 8737: static constexpr char 8737: signaling_NaN() noexcept { return char(); } 8737: 8737: static constexpr char 8737: denorm_min() noexcept { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = !is_signed; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr signed char 8737: min() noexcept { return -0x7f - 1; } 8737: 8737: static constexpr signed char 8737: max() noexcept { return 0x7f; } 8737: 8737: 8737: static constexpr signed char 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr signed char 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr signed char 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr signed char 8737: infinity() noexcept { return static_cast(0); } 8737: 8737: static constexpr signed char 8737: quiet_NaN() noexcept { return static_cast(0); } 8737: 8737: static constexpr signed char 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr signed char 8737: denorm_min() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr unsigned char 8737: min() noexcept { return 0; } 8737: 8737: static constexpr unsigned char 8737: max() noexcept { return 0x7f * 2U + 1; } 8737: 8737: 8737: static constexpr unsigned char 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits 8737: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = false; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr unsigned char 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr unsigned char 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr unsigned char 8737: infinity() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned char 8737: quiet_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned char 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned char 8737: denorm_min() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = true; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr wchar_t 8737: 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); } 8737: 8737: static constexpr wchar_t 8737: 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); } 8737: 8737: 8737: static constexpr wchar_t 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr wchar_t 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr wchar_t 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr wchar_t 8737: infinity() noexcept { return wchar_t(); } 8737: 8737: static constexpr wchar_t 8737: quiet_NaN() noexcept { return wchar_t(); } 8737: 8737: static constexpr wchar_t 8737: signaling_NaN() noexcept { return wchar_t(); } 8737: 8737: static constexpr wchar_t 8737: denorm_min() noexcept { return wchar_t(); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = !is_signed; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr char16_t 8737: 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); } 8737: 8737: static constexpr char16_t 8737: 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); } 8737: 8737: static constexpr char16_t 8737: lowest() noexcept { return min(); } 8737: 8737: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 8737: static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 8737: static constexpr int max_digits10 = 0; 8737: static constexpr bool is_signed = ((char16_t)(-1) < 0); 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr char16_t 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr char16_t 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr char16_t 8737: infinity() noexcept { return char16_t(); } 8737: 8737: static constexpr char16_t 8737: quiet_NaN() noexcept { return char16_t(); } 8737: 8737: static constexpr char16_t 8737: signaling_NaN() noexcept { return char16_t(); } 8737: 8737: static constexpr char16_t 8737: denorm_min() noexcept { return char16_t(); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = !is_signed; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr char32_t 8737: 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); } 8737: 8737: static constexpr char32_t 8737: 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); } 8737: 8737: static constexpr char32_t 8737: lowest() noexcept { return min(); } 8737: 8737: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 8737: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 8737: static constexpr int max_digits10 = 0; 8737: static constexpr bool is_signed = ((char32_t)(-1) < 0); 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr char32_t 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr char32_t 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr char32_t 8737: infinity() noexcept { return char32_t(); } 8737: 8737: static constexpr char32_t 8737: quiet_NaN() noexcept { return char32_t(); } 8737: 8737: static constexpr char32_t 8737: signaling_NaN() noexcept { return char32_t(); } 8737: 8737: static constexpr char32_t 8737: denorm_min() noexcept { return char32_t(); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = !is_signed; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style = round_toward_zero; 8737: }; 8737: 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr short 8737: min() noexcept { return -0x7fff - 1; } 8737: 8737: static constexpr short 8737: max() noexcept { return 0x7fff; } 8737: 8737: 8737: static constexpr short 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 8737: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr short 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr short 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr short 8737: infinity() noexcept { return short(); } 8737: 8737: static constexpr short 8737: quiet_NaN() noexcept { return short(); } 8737: 8737: static constexpr short 8737: signaling_NaN() noexcept { return short(); } 8737: 8737: static constexpr short 8737: denorm_min() noexcept { return short(); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr unsigned short 8737: min() noexcept { return 0; } 8737: 8737: static constexpr unsigned short 8737: max() noexcept { return 0x7fff * 2U + 1; } 8737: 8737: 8737: static constexpr unsigned short 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits 8737: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = false; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr unsigned short 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr unsigned short 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr unsigned short 8737: infinity() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned short 8737: quiet_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned short 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned short 8737: denorm_min() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = true; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr int 8737: min() noexcept { return -0x7fffffff - 1; } 8737: 8737: static constexpr int 8737: max() noexcept { return 0x7fffffff; } 8737: 8737: 8737: static constexpr int 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 8737: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr int 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr int 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr int 8737: infinity() noexcept { return static_cast(0); } 8737: 8737: static constexpr int 8737: quiet_NaN() noexcept { return static_cast(0); } 8737: 8737: static constexpr int 8737: signaling_NaN() noexcept { return static_cast(0); } 8737: 8737: static constexpr int 8737: denorm_min() noexcept { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr unsigned int 8737: min() noexcept { return 0; } 8737: 8737: static constexpr unsigned int 8737: max() noexcept { return 0x7fffffff * 2U + 1; } 8737: 8737: 8737: static constexpr unsigned int 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits 8737: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = false; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr unsigned int 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr unsigned int 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr unsigned int 8737: infinity() noexcept { return static_cast(0); } 8737: 8737: static constexpr unsigned int 8737: quiet_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned int 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned int 8737: denorm_min() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = true; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr long 8737: min() noexcept { return -0x7fffffffffffffffL - 1; } 8737: 8737: static constexpr long 8737: max() noexcept { return 0x7fffffffffffffffL; } 8737: 8737: 8737: static constexpr long 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 8737: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr long 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr long 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr long 8737: infinity() noexcept { return static_cast(0); } 8737: 8737: static constexpr long 8737: quiet_NaN() noexcept { return static_cast(0); } 8737: 8737: static constexpr long 8737: signaling_NaN() noexcept { return static_cast(0); } 8737: 8737: static constexpr long 8737: denorm_min() noexcept { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr unsigned long 8737: min() noexcept { return 0; } 8737: 8737: static constexpr unsigned long 8737: max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } 8737: 8737: 8737: static constexpr unsigned long 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits 8737: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = false; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr unsigned long 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr unsigned long 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr unsigned long 8737: infinity() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned long 8737: quiet_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned long 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned long 8737: denorm_min() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = true; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr long long 8737: min() noexcept { return -0x7fffffffffffffffLL - 1; } 8737: 8737: static constexpr long long 8737: max() noexcept { return 0x7fffffffffffffffLL; } 8737: 8737: 8737: static constexpr long long 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits 8737: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr long long 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr long long 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr long long 8737: infinity() noexcept { return static_cast(0); } 8737: 8737: static constexpr long long 8737: quiet_NaN() noexcept { return static_cast(0); } 8737: 8737: static constexpr long long 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr long long 8737: denorm_min() noexcept { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr unsigned long long 8737: min() noexcept { return 0; } 8737: 8737: static constexpr unsigned long long 8737: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 8737: 8737: 8737: static constexpr unsigned long long 8737: lowest() noexcept { return min(); } 8737: 8737: 8737: static constexpr int digits 8737: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 8737: static constexpr int digits10 8737: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 8737: 8737: static constexpr int max_digits10 = 0; 8737: 8737: static constexpr bool is_signed = false; 8737: static constexpr bool is_integer = true; 8737: static constexpr bool is_exact = true; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr unsigned long long 8737: epsilon() noexcept { return 0; } 8737: 8737: static constexpr unsigned long long 8737: round_error() noexcept { return 0; } 8737: 8737: static constexpr int min_exponent = 0; 8737: static constexpr int min_exponent10 = 0; 8737: static constexpr int max_exponent = 0; 8737: static constexpr int max_exponent10 = 0; 8737: 8737: static constexpr bool has_infinity = false; 8737: static constexpr bool has_quiet_NaN = false; 8737: static constexpr bool has_signaling_NaN = false; 8737: static constexpr float_denorm_style has_denorm 8737: = denorm_absent; 8737: static constexpr bool has_denorm_loss = false; 8737: 8737: static constexpr unsigned long long 8737: infinity() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned long long 8737: quiet_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned long long 8737: signaling_NaN() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr unsigned long long 8737: denorm_min() noexcept 8737: { return static_cast(0); } 8737: 8737: static constexpr bool is_iec559 = false; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = true; 8737: 8737: static constexpr bool traps = true; 8737: static constexpr bool tinyness_before = false; 8737: static constexpr float_round_style round_style 8737: = round_toward_zero; 8737: }; 8737: # 1570 "/usr/include/c++/8/limits" 3 8737: template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; 8737: # 1593 "/usr/include/c++/8/limits" 3 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr float 8737: min() noexcept { return 1.17549435082228750796873653722224568e-38F; } 8737: 8737: static constexpr float 8737: max() noexcept { return 3.40282346638528859811704183484516925e+38F; } 8737: 8737: 8737: static constexpr float 8737: lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } 8737: 8737: 8737: static constexpr int digits = 24; 8737: static constexpr int digits10 = 6; 8737: 8737: static constexpr int max_digits10 8737: = (2 + (24) * 643L / 2136); 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = false; 8737: static constexpr bool is_exact = false; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr float 8737: epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } 8737: 8737: static constexpr float 8737: round_error() noexcept { return 0.5F; } 8737: 8737: static constexpr int min_exponent = (-125); 8737: static constexpr int min_exponent10 = (-37); 8737: static constexpr int max_exponent = 128; 8737: static constexpr int max_exponent10 = 38; 8737: 8737: static constexpr bool has_infinity = 1; 8737: static constexpr bool has_quiet_NaN = 1; 8737: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8737: static constexpr float_denorm_style has_denorm 8737: = bool(1) ? denorm_present : denorm_absent; 8737: static constexpr bool has_denorm_loss 8737: = false; 8737: 8737: static constexpr float 8737: infinity() noexcept { return __builtin_huge_valf(); } 8737: 8737: static constexpr float 8737: quiet_NaN() noexcept { return __builtin_nanf(""); } 8737: 8737: static constexpr float 8737: signaling_NaN() noexcept { return __builtin_nansf(""); } 8737: 8737: static constexpr float 8737: denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } 8737: 8737: static constexpr bool is_iec559 8737: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = false; 8737: static constexpr bool tinyness_before 8737: = false; 8737: static constexpr float_round_style round_style 8737: = round_to_nearest; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr double 8737: min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } 8737: 8737: static constexpr double 8737: max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } 8737: 8737: 8737: static constexpr double 8737: lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } 8737: 8737: 8737: static constexpr int digits = 53; 8737: static constexpr int digits10 = 15; 8737: 8737: static constexpr int max_digits10 8737: = (2 + (53) * 643L / 2136); 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = false; 8737: static constexpr bool is_exact = false; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr double 8737: epsilon() noexcept { return double(2.22044604925031308084726333618164062e-16L); } 8737: 8737: static constexpr double 8737: round_error() noexcept { return 0.5; } 8737: 8737: static constexpr int min_exponent = (-1021); 8737: static constexpr int min_exponent10 = (-307); 8737: static constexpr int max_exponent = 1024; 8737: static constexpr int max_exponent10 = 308; 8737: 8737: static constexpr bool has_infinity = 1; 8737: static constexpr bool has_quiet_NaN = 1; 8737: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8737: static constexpr float_denorm_style has_denorm 8737: = bool(1) ? denorm_present : denorm_absent; 8737: static constexpr bool has_denorm_loss 8737: = false; 8737: 8737: static constexpr double 8737: infinity() noexcept { return __builtin_huge_val(); } 8737: 8737: static constexpr double 8737: quiet_NaN() noexcept { return __builtin_nan(""); } 8737: 8737: static constexpr double 8737: signaling_NaN() noexcept { return __builtin_nans(""); } 8737: 8737: static constexpr double 8737: denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } 8737: 8737: static constexpr bool is_iec559 8737: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = false; 8737: static constexpr bool tinyness_before 8737: = false; 8737: static constexpr float_round_style round_style 8737: = round_to_nearest; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: struct numeric_limits 8737: { 8737: static constexpr bool is_specialized = true; 8737: 8737: static constexpr long double 8737: min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } 8737: 8737: static constexpr long double 8737: max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } 8737: 8737: 8737: static constexpr long double 8737: lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } 8737: 8737: 8737: static constexpr int digits = 64; 8737: static constexpr int digits10 = 18; 8737: 8737: static constexpr int max_digits10 8737: = (2 + (64) * 643L / 2136); 8737: 8737: static constexpr bool is_signed = true; 8737: static constexpr bool is_integer = false; 8737: static constexpr bool is_exact = false; 8737: static constexpr int radix = 2; 8737: 8737: static constexpr long double 8737: epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } 8737: 8737: static constexpr long double 8737: round_error() noexcept { return 0.5L; } 8737: 8737: static constexpr int min_exponent = (-16381); 8737: static constexpr int min_exponent10 = (-4931); 8737: static constexpr int max_exponent = 16384; 8737: static constexpr int max_exponent10 = 4932; 8737: 8737: static constexpr bool has_infinity = 1; 8737: static constexpr bool has_quiet_NaN = 1; 8737: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8737: static constexpr float_denorm_style has_denorm 8737: = bool(1) ? denorm_present : denorm_absent; 8737: static constexpr bool has_denorm_loss 8737: = false; 8737: 8737: static constexpr long double 8737: infinity() noexcept { return __builtin_huge_vall(); } 8737: 8737: static constexpr long double 8737: quiet_NaN() noexcept { return __builtin_nanl(""); } 8737: 8737: static constexpr long double 8737: signaling_NaN() noexcept { return __builtin_nansl(""); } 8737: 8737: static constexpr long double 8737: denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } 8737: 8737: static constexpr bool is_iec559 8737: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8737: static constexpr bool is_bounded = true; 8737: static constexpr bool is_modulo = false; 8737: 8737: static constexpr bool traps = false; 8737: static constexpr bool tinyness_before = 8737: false; 8737: static constexpr float_round_style round_style = 8737: round_to_nearest; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 36 "/usr/include/c++/8/bits/uniform_int_dist.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace __detail 8737: { 8737: 8737: template 8737: inline bool 8737: _Power_of_2(_Tp __x) 8737: { 8737: return ((__x - 1) & __x) == 0; 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class uniform_int_distribution 8737: { 8737: static_assert(std::is_integral<_IntType>::value, 8737: "template argument must be an integral type"); 8737: 8737: public: 8737: 8737: typedef _IntType result_type; 8737: 8737: struct param_type 8737: { 8737: typedef uniform_int_distribution<_IntType> distribution_type; 8737: 8737: explicit 8737: param_type(_IntType __a = 0, 8737: _IntType __b = std::numeric_limits<_IntType>::max()) 8737: : _M_a(__a), _M_b(__b) 8737: { 8737: ; 8737: } 8737: 8737: result_type 8737: a() const 8737: { return _M_a; } 8737: 8737: result_type 8737: b() const 8737: { return _M_b; } 8737: 8737: friend bool 8737: operator==(const param_type& __p1, const param_type& __p2) 8737: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 8737: 8737: friend bool 8737: operator!=(const param_type& __p1, const param_type& __p2) 8737: { return !(__p1 == __p2); } 8737: 8737: private: 8737: _IntType _M_a; 8737: _IntType _M_b; 8737: }; 8737: 8737: public: 8737: 8737: 8737: 8737: explicit 8737: uniform_int_distribution(_IntType __a = 0, 8737: _IntType __b = std::numeric_limits<_IntType>::max()) 8737: : _M_param(__a, __b) 8737: { } 8737: 8737: explicit 8737: uniform_int_distribution(const param_type& __p) 8737: : _M_param(__p) 8737: { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: reset() { } 8737: 8737: result_type 8737: a() const 8737: { return _M_param.a(); } 8737: 8737: result_type 8737: b() const 8737: { return _M_param.b(); } 8737: 8737: 8737: 8737: 8737: param_type 8737: param() const 8737: { return _M_param; } 8737: 8737: 8737: 8737: 8737: 8737: void 8737: param(const param_type& __param) 8737: { _M_param = __param; } 8737: 8737: 8737: 8737: 8737: result_type 8737: min() const 8737: { return this->a(); } 8737: 8737: 8737: 8737: 8737: result_type 8737: max() const 8737: { return this->b(); } 8737: 8737: 8737: 8737: 8737: template 8737: result_type 8737: operator()(_UniformRandomNumberGenerator& __urng) 8737: { return this->operator()(__urng, _M_param); } 8737: 8737: template 8737: result_type 8737: operator()(_UniformRandomNumberGenerator& __urng, 8737: const param_type& __p); 8737: 8737: template 8737: void 8737: __generate(_ForwardIterator __f, _ForwardIterator __t, 8737: _UniformRandomNumberGenerator& __urng) 8737: { this->__generate(__f, __t, __urng, _M_param); } 8737: 8737: template 8737: void 8737: __generate(_ForwardIterator __f, _ForwardIterator __t, 8737: _UniformRandomNumberGenerator& __urng, 8737: const param_type& __p) 8737: { this->__generate_impl(__f, __t, __urng, __p); } 8737: 8737: template 8737: void 8737: __generate(result_type* __f, result_type* __t, 8737: _UniformRandomNumberGenerator& __urng, 8737: const param_type& __p) 8737: { this->__generate_impl(__f, __t, __urng, __p); } 8737: 8737: 8737: 8737: 8737: 8737: friend bool 8737: operator==(const uniform_int_distribution& __d1, 8737: const uniform_int_distribution& __d2) 8737: { return __d1._M_param == __d2._M_param; } 8737: 8737: private: 8737: template 8737: void 8737: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8737: _UniformRandomNumberGenerator& __urng, 8737: const param_type& __p); 8737: 8737: param_type _M_param; 8737: }; 8737: 8737: template 8737: template 8737: typename uniform_int_distribution<_IntType>::result_type 8737: uniform_int_distribution<_IntType>:: 8737: operator()(_UniformRandomNumberGenerator& __urng, 8737: const param_type& __param) 8737: { 8737: typedef typename _UniformRandomNumberGenerator::result_type 8737: _Gresult_type; 8737: typedef typename std::make_unsigned::type __utype; 8737: typedef typename std::common_type<_Gresult_type, __utype>::type 8737: __uctype; 8737: 8737: const __uctype __urngmin = __urng.min(); 8737: const __uctype __urngmax = __urng.max(); 8737: const __uctype __urngrange = __urngmax - __urngmin; 8737: const __uctype __urange 8737: = __uctype(__param.b()) - __uctype(__param.a()); 8737: 8737: __uctype __ret; 8737: 8737: if (__urngrange > __urange) 8737: { 8737: 8737: const __uctype __uerange = __urange + 1; 8737: const __uctype __scaling = __urngrange / __uerange; 8737: const __uctype __past = __uerange * __scaling; 8737: do 8737: __ret = __uctype(__urng()) - __urngmin; 8737: while (__ret >= __past); 8737: __ret /= __scaling; 8737: } 8737: else if (__urngrange < __urange) 8737: { 8737: # 264 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8737: __uctype __tmp; 8737: do 8737: { 8737: const __uctype __uerngrange = __urngrange + 1; 8737: __tmp = (__uerngrange * operator() 8737: (__urng, param_type(0, __urange / __uerngrange))); 8737: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8737: } 8737: while (__ret > __urange || __ret < __tmp); 8737: } 8737: else 8737: __ret = __uctype(__urng()) - __urngmin; 8737: 8737: return __ret + __param.a(); 8737: } 8737: 8737: 8737: template 8737: template 8737: void 8737: uniform_int_distribution<_IntType>:: 8737: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8737: _UniformRandomNumberGenerator& __urng, 8737: const param_type& __param) 8737: { 8737: 8737: typedef typename _UniformRandomNumberGenerator::result_type 8737: _Gresult_type; 8737: typedef typename std::make_unsigned::type __utype; 8737: typedef typename std::common_type<_Gresult_type, __utype>::type 8737: __uctype; 8737: 8737: const __uctype __urngmin = __urng.min(); 8737: const __uctype __urngmax = __urng.max(); 8737: const __uctype __urngrange = __urngmax - __urngmin; 8737: const __uctype __urange 8737: = __uctype(__param.b()) - __uctype(__param.a()); 8737: 8737: __uctype __ret; 8737: 8737: if (__urngrange > __urange) 8737: { 8737: if (__detail::_Power_of_2(__urngrange + 1) 8737: && __detail::_Power_of_2(__urange + 1)) 8737: { 8737: while (__f != __t) 8737: { 8737: __ret = __uctype(__urng()) - __urngmin; 8737: *__f++ = (__ret & __urange) + __param.a(); 8737: } 8737: } 8737: else 8737: { 8737: 8737: const __uctype __uerange = __urange + 1; 8737: const __uctype __scaling = __urngrange / __uerange; 8737: const __uctype __past = __uerange * __scaling; 8737: while (__f != __t) 8737: { 8737: do 8737: __ret = __uctype(__urng()) - __urngmin; 8737: while (__ret >= __past); 8737: *__f++ = __ret / __scaling + __param.a(); 8737: } 8737: } 8737: } 8737: else if (__urngrange < __urange) 8737: { 8737: # 348 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8737: __uctype __tmp; 8737: while (__f != __t) 8737: { 8737: do 8737: { 8737: const __uctype __uerngrange = __urngrange + 1; 8737: __tmp = (__uerngrange * operator() 8737: (__urng, param_type(0, __urange / __uerngrange))); 8737: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8737: } 8737: while (__ret > __urange || __ret < __tmp); 8737: *__f++ = __ret; 8737: } 8737: } 8737: else 8737: while (__f != __t) 8737: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: # 67 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: void 8737: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 8737: _Iterator __c, _Compare __comp) 8737: { 8737: if (__comp(__a, __b)) 8737: { 8737: if (__comp(__b, __c)) 8737: std::iter_swap(__result, __b); 8737: else if (__comp(__a, __c)) 8737: std::iter_swap(__result, __c); 8737: else 8737: std::iter_swap(__result, __a); 8737: } 8737: else if (__comp(__a, __c)) 8737: std::iter_swap(__result, __a); 8737: else if (__comp(__b, __c)) 8737: std::iter_swap(__result, __c); 8737: else 8737: std::iter_swap(__result, __b); 8737: } 8737: 8737: 8737: template 8737: inline _InputIterator 8737: __find_if(_InputIterator __first, _InputIterator __last, 8737: _Predicate __pred, input_iterator_tag) 8737: { 8737: while (__first != __last && !__pred(__first)) 8737: ++__first; 8737: return __first; 8737: } 8737: 8737: 8737: template 8737: _RandomAccessIterator 8737: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Predicate __pred, random_access_iterator_tag) 8737: { 8737: typename iterator_traits<_RandomAccessIterator>::difference_type 8737: __trip_count = (__last - __first) >> 2; 8737: 8737: for (; __trip_count > 0; --__trip_count) 8737: { 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: } 8737: 8737: switch (__last - __first) 8737: { 8737: case 3: 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: case 2: 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: case 1: 8737: if (__pred(__first)) 8737: return __first; 8737: ++__first; 8737: case 0: 8737: default: 8737: return __last; 8737: } 8737: } 8737: 8737: template 8737: inline _Iterator 8737: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 8737: { 8737: return __find_if(__first, __last, __pred, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: 8737: template 8737: inline _InputIterator 8737: __find_if_not(_InputIterator __first, _InputIterator __last, 8737: _Predicate __pred) 8737: { 8737: return std::__find_if(__first, __last, 8737: __gnu_cxx::__ops::__negate(__pred), 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: _InputIterator 8737: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 8737: { 8737: for (; __len; --__len, (void) ++__first) 8737: if (!__pred(__first)) 8737: break; 8737: return __first; 8737: } 8737: # 202 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _ForwardIterator1 8737: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8737: _BinaryPredicate __predicate) 8737: { 8737: 8737: if (__first1 == __last1 || __first2 == __last2) 8737: return __first1; 8737: 8737: 8737: _ForwardIterator2 __p1(__first2); 8737: if (++__p1 == __last2) 8737: return std::__find_if(__first1, __last1, 8737: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8737: 8737: 8737: _ForwardIterator2 __p; 8737: _ForwardIterator1 __current = __first1; 8737: 8737: for (;;) 8737: { 8737: __first1 = 8737: std::__find_if(__first1, __last1, 8737: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8737: 8737: if (__first1 == __last1) 8737: return __last1; 8737: 8737: __p = __p1; 8737: __current = __first1; 8737: if (++__current == __last1) 8737: return __last1; 8737: 8737: while (__predicate(__current, __p)) 8737: { 8737: if (++__p == __last2) 8737: return __first1; 8737: if (++__current == __last1) 8737: return __last1; 8737: } 8737: ++__first1; 8737: } 8737: return __first1; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 8737: _Integer __count, _UnaryPredicate __unary_pred, 8737: std::forward_iterator_tag) 8737: { 8737: __first = std::__find_if(__first, __last, __unary_pred); 8737: while (__first != __last) 8737: { 8737: typename iterator_traits<_ForwardIterator>::difference_type 8737: __n = __count; 8737: _ForwardIterator __i = __first; 8737: ++__i; 8737: while (__i != __last && __n != 1 && __unary_pred(__i)) 8737: { 8737: ++__i; 8737: --__n; 8737: } 8737: if (__n == 1) 8737: return __first; 8737: if (__i == __last) 8737: return __last; 8737: __first = std::__find_if(++__i, __last, __unary_pred); 8737: } 8737: return __last; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _RandomAccessIter 8737: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 8737: _Integer __count, _UnaryPredicate __unary_pred, 8737: std::random_access_iterator_tag) 8737: { 8737: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 8737: _DistanceType; 8737: 8737: _DistanceType __tailSize = __last - __first; 8737: _DistanceType __remainder = __count; 8737: 8737: while (__remainder <= __tailSize) 8737: { 8737: __first += __remainder; 8737: __tailSize -= __remainder; 8737: 8737: 8737: _RandomAccessIter __backTrack = __first; 8737: while (__unary_pred(--__backTrack)) 8737: { 8737: if (--__remainder == 0) 8737: return (__first - __count); 8737: } 8737: __remainder = __count + 1 - (__first - __backTrack); 8737: } 8737: return __last; 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __search_n(_ForwardIterator __first, _ForwardIterator __last, 8737: _Integer __count, 8737: _UnaryPredicate __unary_pred) 8737: { 8737: if (__count <= 0) 8737: return __first; 8737: 8737: if (__count == 1) 8737: return std::__find_if(__first, __last, __unary_pred); 8737: 8737: return std::__search_n_aux(__first, __last, __count, __unary_pred, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: 8737: template 8737: _ForwardIterator1 8737: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8737: forward_iterator_tag, forward_iterator_tag, 8737: _BinaryPredicate __comp) 8737: { 8737: if (__first2 == __last2) 8737: return __last1; 8737: 8737: _ForwardIterator1 __result = __last1; 8737: while (1) 8737: { 8737: _ForwardIterator1 __new_result 8737: = std::__search(__first1, __last1, __first2, __last2, __comp); 8737: if (__new_result == __last1) 8737: return __result; 8737: else 8737: { 8737: __result = __new_result; 8737: __first1 = __new_result; 8737: ++__first1; 8737: } 8737: } 8737: } 8737: 8737: 8737: template 8737: _BidirectionalIterator1 8737: __find_end(_BidirectionalIterator1 __first1, 8737: _BidirectionalIterator1 __last1, 8737: _BidirectionalIterator2 __first2, 8737: _BidirectionalIterator2 __last2, 8737: bidirectional_iterator_tag, bidirectional_iterator_tag, 8737: _BinaryPredicate __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 8737: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 8737: 8737: _RevIterator1 __rlast1(__first1); 8737: _RevIterator2 __rlast2(__first2); 8737: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 8737: _RevIterator2(__last2), __rlast2, 8737: __comp); 8737: 8737: if (__rresult == __rlast1) 8737: return __last1; 8737: else 8737: { 8737: _BidirectionalIterator1 __result = __rresult.base(); 8737: std::advance(__result, -std::distance(__first2, __last2)); 8737: return __result; 8737: } 8737: } 8737: # 423 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator1 8737: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__find_end(__first1, __last1, __first2, __last2, 8737: std::__iterator_category(__first1), 8737: std::__iterator_category(__first2), 8737: __gnu_cxx::__ops::__iter_equal_to_iter()); 8737: } 8737: # 471 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator1 8737: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8737: _BinaryPredicate __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__find_end(__first1, __last1, __first2, __last2, 8737: std::__iterator_category(__first1), 8737: std::__iterator_category(__first2), 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: # 506 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8737: { return __last == std::find_if_not(__first, __last, __pred); } 8737: # 523 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8737: { return __last == std::find_if(__first, __last, __pred); } 8737: # 541 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8737: { return !std::none_of(__first, __last, __pred); } 8737: # 556 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _InputIterator 8737: find_if_not(_InputIterator __first, _InputIterator __last, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: return std::__find_if_not(__first, __last, 8737: __gnu_cxx::__ops::__pred_iter(__pred)); 8737: } 8737: # 580 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: is_partitioned(_InputIterator __first, _InputIterator __last, 8737: _Predicate __pred) 8737: { 8737: __first = std::find_if_not(__first, __last, __pred); 8737: if (__first == __last) 8737: return true; 8737: ++__first; 8737: return std::none_of(__first, __last, __pred); 8737: } 8737: # 601 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _ForwardIterator 8737: partition_point(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: typedef typename iterator_traits<_ForwardIterator>::difference_type 8737: _DistanceType; 8737: 8737: _DistanceType __len = std::distance(__first, __last); 8737: _DistanceType __half; 8737: _ForwardIterator __middle; 8737: 8737: while (__len > 0) 8737: { 8737: __half = __len >> 1; 8737: __middle = __first; 8737: std::advance(__middle, __half); 8737: if (__pred(*__middle)) 8737: { 8737: __first = __middle; 8737: ++__first; 8737: __len = __len - __half - 1; 8737: } 8737: else 8737: __len = __half; 8737: } 8737: return __first; 8737: } 8737: 8737: 8737: template 8737: _OutputIterator 8737: __remove_copy_if(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _Predicate __pred) 8737: { 8737: for (; __first != __last; ++__first) 8737: if (!__pred(__first)) 8737: { 8737: *__result = *__first; 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: # 668 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: remove_copy(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, const _Tp& __value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__remove_copy_if(__first, __last, __result, 8737: __gnu_cxx::__ops::__iter_equals_val(__value)); 8737: } 8737: # 700 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: remove_copy_if(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__remove_copy_if(__first, __last, __result, 8737: __gnu_cxx::__ops::__pred_iter(__pred)); 8737: } 8737: # 734 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _OutputIterator 8737: copy_if(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: if (__pred(*__first)) 8737: { 8737: *__result = *__first; 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: 8737: template 8737: _OutputIterator 8737: __copy_n(_InputIterator __first, _Size __n, 8737: _OutputIterator __result, input_iterator_tag) 8737: { 8737: if (__n > 0) 8737: { 8737: while (true) 8737: { 8737: *__result = *__first; 8737: ++__result; 8737: if (--__n > 0) 8737: ++__first; 8737: else 8737: break; 8737: } 8737: } 8737: return __result; 8737: } 8737: 8737: template 8737: inline _OutputIterator 8737: __copy_n(_RandomAccessIterator __first, _Size __n, 8737: _OutputIterator __result, random_access_iterator_tag) 8737: { return std::copy(__first, __first + __n, __result); } 8737: # 797 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: return std::__copy_n(__first, __n, __result, 8737: std::__iterator_category(__first)); 8737: } 8737: # 825 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: pair<_OutputIterator1, _OutputIterator2> 8737: partition_copy(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: if (__pred(*__first)) 8737: { 8737: *__out_true = *__first; 8737: ++__out_true; 8737: } 8737: else 8737: { 8737: *__out_false = *__first; 8737: ++__out_false; 8737: } 8737: 8737: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 8737: } 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred) 8737: { 8737: __first = std::__find_if(__first, __last, __pred); 8737: if (__first == __last) 8737: return __first; 8737: _ForwardIterator __result = __first; 8737: ++__first; 8737: for (; __first != __last; ++__first) 8737: if (!__pred(__first)) 8737: { 8737: *__result = std::move(*__first); 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: # 894 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: remove(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__remove_if(__first, __last, 8737: __gnu_cxx::__ops::__iter_equals_val(__value)); 8737: } 8737: # 927 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: remove_if(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__remove_if(__first, __last, 8737: __gnu_cxx::__ops::__pred_iter(__pred)); 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: if (__first == __last) 8737: return __last; 8737: _ForwardIterator __next = __first; 8737: while (++__next != __last) 8737: { 8737: if (__binary_pred(__first, __next)) 8737: return __first; 8737: __first = __next; 8737: } 8737: return __last; 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __unique(_ForwardIterator __first, _ForwardIterator __last, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: 8737: __first = std::__adjacent_find(__first, __last, __binary_pred); 8737: if (__first == __last) 8737: return __last; 8737: 8737: 8737: _ForwardIterator __dest = __first; 8737: ++__first; 8737: while (++__first != __last) 8737: if (!__binary_pred(__dest, __first)) 8737: *++__dest = std::move(*__first); 8737: return ++__dest; 8737: } 8737: # 993 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: unique(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__unique(__first, __last, 8737: __gnu_cxx::__ops::__iter_equal_to_iter()); 8737: } 8737: # 1023 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: unique(_ForwardIterator __first, _ForwardIterator __last, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__unique(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _OutputIterator 8737: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 8737: _OutputIterator __result, _BinaryPredicate __binary_pred, 8737: forward_iterator_tag, output_iterator_tag) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: _ForwardIterator __next = __first; 8737: *__result = *__first; 8737: while (++__next != __last) 8737: if (!__binary_pred(__first, __next)) 8737: { 8737: __first = __next; 8737: *++__result = *__first; 8737: } 8737: return ++__result; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _OutputIterator 8737: __unique_copy(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _BinaryPredicate __binary_pred, 8737: input_iterator_tag, output_iterator_tag) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: typename iterator_traits<_InputIterator>::value_type __value = *__first; 8737: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 8737: __rebound_pred 8737: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 8737: *__result = __value; 8737: while (++__first != __last) 8737: if (!__rebound_pred(__first, __value)) 8737: { 8737: __value = *__first; 8737: *++__result = __value; 8737: } 8737: return ++__result; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __unique_copy(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result, _BinaryPredicate __binary_pred, 8737: input_iterator_tag, forward_iterator_tag) 8737: { 8737: 8737: 8737: 8737: 8737: *__result = *__first; 8737: while (++__first != __last) 8737: if (!__binary_pred(__result, __first)) 8737: *++__result = *__first; 8737: return ++__result; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 8737: bidirectional_iterator_tag) 8737: { 8737: while (true) 8737: if (__first == __last || __first == --__last) 8737: return; 8737: else 8737: { 8737: std::iter_swap(__first, __last); 8737: ++__first; 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: random_access_iterator_tag) 8737: { 8737: if (__first == __last) 8737: return; 8737: --__last; 8737: while (__first < __last) 8737: { 8737: std::iter_swap(__first, __last); 8737: ++__first; 8737: --__last; 8737: } 8737: } 8737: # 1178 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 8737: { 8737: 8737: 8737: 8737: ; 8737: std::__reverse(__first, __last, std::__iterator_category(__first)); 8737: } 8737: # 1205 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _OutputIterator 8737: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: while (__first != __last) 8737: { 8737: --__last; 8737: *__result = *__last; 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _EuclideanRingElement 8737: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 8737: { 8737: while (__n != 0) 8737: { 8737: _EuclideanRingElement __t = __m % __n; 8737: __m = __n; 8737: __n = __t; 8737: } 8737: return __m; 8737: } 8737: 8737: inline namespace _V2 8737: { 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __rotate(_ForwardIterator __first, 8737: _ForwardIterator __middle, 8737: _ForwardIterator __last, 8737: forward_iterator_tag) 8737: { 8737: if (__first == __middle) 8737: return __last; 8737: else if (__last == __middle) 8737: return __first; 8737: 8737: _ForwardIterator __first2 = __middle; 8737: do 8737: { 8737: std::iter_swap(__first, __first2); 8737: ++__first; 8737: ++__first2; 8737: if (__first == __middle) 8737: __middle = __first2; 8737: } 8737: while (__first2 != __last); 8737: 8737: _ForwardIterator __ret = __first; 8737: 8737: __first2 = __middle; 8737: 8737: while (__first2 != __last) 8737: { 8737: std::iter_swap(__first, __first2); 8737: ++__first; 8737: ++__first2; 8737: if (__first == __middle) 8737: __middle = __first2; 8737: else if (__first2 == __last) 8737: __first2 = __middle; 8737: } 8737: return __ret; 8737: } 8737: 8737: 8737: template 8737: _BidirectionalIterator 8737: __rotate(_BidirectionalIterator __first, 8737: _BidirectionalIterator __middle, 8737: _BidirectionalIterator __last, 8737: bidirectional_iterator_tag) 8737: { 8737: 8737: 8737: 8737: 8737: if (__first == __middle) 8737: return __last; 8737: else if (__last == __middle) 8737: return __first; 8737: 8737: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8737: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8737: 8737: while (__first != __middle && __middle != __last) 8737: { 8737: std::iter_swap(__first, --__last); 8737: ++__first; 8737: } 8737: 8737: if (__first == __middle) 8737: { 8737: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8737: return __last; 8737: } 8737: else 8737: { 8737: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8737: return __first; 8737: } 8737: } 8737: 8737: 8737: template 8737: _RandomAccessIterator 8737: __rotate(_RandomAccessIterator __first, 8737: _RandomAccessIterator __middle, 8737: _RandomAccessIterator __last, 8737: random_access_iterator_tag) 8737: { 8737: 8737: 8737: 8737: 8737: if (__first == __middle) 8737: return __last; 8737: else if (__last == __middle) 8737: return __first; 8737: 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _Distance; 8737: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8737: _ValueType; 8737: 8737: _Distance __n = __last - __first; 8737: _Distance __k = __middle - __first; 8737: 8737: if (__k == __n - __k) 8737: { 8737: std::swap_ranges(__first, __middle, __middle); 8737: return __middle; 8737: } 8737: 8737: _RandomAccessIterator __p = __first; 8737: _RandomAccessIterator __ret = __first + (__last - __middle); 8737: 8737: for (;;) 8737: { 8737: if (__k < __n - __k) 8737: { 8737: if (__is_pod(_ValueType) && __k == 1) 8737: { 8737: _ValueType __t = std::move(*__p); 8737: std::move(__p + 1, __p + __n, __p); 8737: *(__p + __n - 1) = std::move(__t); 8737: return __ret; 8737: } 8737: _RandomAccessIterator __q = __p + __k; 8737: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8737: { 8737: std::iter_swap(__p, __q); 8737: ++__p; 8737: ++__q; 8737: } 8737: __n %= __k; 8737: if (__n == 0) 8737: return __ret; 8737: std::swap(__n, __k); 8737: __k = __n - __k; 8737: } 8737: else 8737: { 8737: __k = __n - __k; 8737: if (__is_pod(_ValueType) && __k == 1) 8737: { 8737: _ValueType __t = std::move(*(__p + __n - 1)); 8737: std::move_backward(__p, __p + __n - 1, __p + __n); 8737: *__p = std::move(__t); 8737: return __ret; 8737: } 8737: _RandomAccessIterator __q = __p + __n; 8737: __p = __q - __k; 8737: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8737: { 8737: --__p; 8737: --__q; 8737: std::iter_swap(__p, __q); 8737: } 8737: __n %= __k; 8737: if (__n == 0) 8737: return __ret; 8737: std::swap(__n, __k); 8737: } 8737: } 8737: } 8737: # 1432 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: rotate(_ForwardIterator __first, _ForwardIterator __middle, 8737: _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__rotate(__first, __middle, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: } 8737: # 1469 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 8737: _ForwardIterator __last, _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::copy(__first, __middle, 8737: std::copy(__middle, __last, __result)); 8737: } 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __partition(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred, forward_iterator_tag) 8737: { 8737: if (__first == __last) 8737: return __first; 8737: 8737: while (__pred(*__first)) 8737: if (++__first == __last) 8737: return __first; 8737: 8737: _ForwardIterator __next = __first; 8737: 8737: while (++__next != __last) 8737: if (__pred(*__next)) 8737: { 8737: std::iter_swap(__first, __next); 8737: ++__first; 8737: } 8737: 8737: return __first; 8737: } 8737: 8737: 8737: template 8737: _BidirectionalIterator 8737: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 8737: _Predicate __pred, bidirectional_iterator_tag) 8737: { 8737: while (true) 8737: { 8737: while (true) 8737: if (__first == __last) 8737: return __first; 8737: else if (__pred(*__first)) 8737: ++__first; 8737: else 8737: break; 8737: --__last; 8737: while (true) 8737: if (__first == __last) 8737: return __first; 8737: else if (!bool(__pred(*__last))) 8737: --__last; 8737: else 8737: break; 8737: std::iter_swap(__first, __last); 8737: ++__first; 8737: } 8737: } 8737: # 1546 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _ForwardIterator 8737: __stable_partition_adaptive(_ForwardIterator __first, 8737: _ForwardIterator __last, 8737: _Predicate __pred, _Distance __len, 8737: _Pointer __buffer, 8737: _Distance __buffer_size) 8737: { 8737: if (__len == 1) 8737: return __first; 8737: 8737: if (__len <= __buffer_size) 8737: { 8737: _ForwardIterator __result1 = __first; 8737: _Pointer __result2 = __buffer; 8737: 8737: 8737: 8737: 8737: *__result2 = std::move(*__first); 8737: ++__result2; 8737: ++__first; 8737: for (; __first != __last; ++__first) 8737: if (__pred(__first)) 8737: { 8737: *__result1 = std::move(*__first); 8737: ++__result1; 8737: } 8737: else 8737: { 8737: *__result2 = std::move(*__first); 8737: ++__result2; 8737: } 8737: 8737: std::move(__buffer, __result2, __result1); 8737: return __result1; 8737: } 8737: 8737: _ForwardIterator __middle = __first; 8737: std::advance(__middle, __len / 2); 8737: _ForwardIterator __left_split = 8737: std::__stable_partition_adaptive(__first, __middle, __pred, 8737: __len / 2, __buffer, 8737: __buffer_size); 8737: 8737: 8737: 8737: _Distance __right_len = __len - __len / 2; 8737: _ForwardIterator __right_split = 8737: std::__find_if_not_n(__middle, __right_len, __pred); 8737: 8737: if (__right_len) 8737: __right_split = 8737: std::__stable_partition_adaptive(__right_split, __last, __pred, 8737: __right_len, 8737: __buffer, __buffer_size); 8737: 8737: std::rotate(__left_split, __middle, __right_split); 8737: std::advance(__left_split, std::distance(__middle, __right_split)); 8737: return __left_split; 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred) 8737: { 8737: __first = std::__find_if_not(__first, __last, __pred); 8737: 8737: if (__first == __last) 8737: return __first; 8737: 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_ForwardIterator>::difference_type 8737: _DistanceType; 8737: 8737: _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); 8737: return 8737: std::__stable_partition_adaptive(__first, __last, __pred, 8737: _DistanceType(__buf.requested_size()), 8737: __buf.begin(), 8737: _DistanceType(__buf.size())); 8737: } 8737: # 1649 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__stable_partition(__first, __last, 8737: __gnu_cxx::__ops::__pred_iter(__pred)); 8737: } 8737: 8737: 8737: template 8737: void 8737: __heap_select(_RandomAccessIterator __first, 8737: _RandomAccessIterator __middle, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: std::__make_heap(__first, __middle, __comp); 8737: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 8737: if (__comp(__i, __first)) 8737: std::__pop_heap(__first, __middle, __i, __comp); 8737: } 8737: 8737: 8737: 8737: template 8737: _RandomAccessIterator 8737: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 8737: _RandomAccessIterator __result_first, 8737: _RandomAccessIterator __result_last, 8737: _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_InputIterator>::value_type 8737: _InputValueType; 8737: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 8737: typedef typename _RItTraits::difference_type _DistanceType; 8737: 8737: if (__result_first == __result_last) 8737: return __result_last; 8737: _RandomAccessIterator __result_real_last = __result_first; 8737: while (__first != __last && __result_real_last != __result_last) 8737: { 8737: *__result_real_last = *__first; 8737: ++__result_real_last; 8737: ++__first; 8737: } 8737: 8737: std::__make_heap(__result_first, __result_real_last, __comp); 8737: while (__first != __last) 8737: { 8737: if (__comp(__first, __result_first)) 8737: std::__adjust_heap(__result_first, _DistanceType(0), 8737: _DistanceType(__result_real_last 8737: - __result_first), 8737: _InputValueType(*__first), __comp); 8737: ++__first; 8737: } 8737: std::__sort_heap(__result_first, __result_real_last, __comp); 8737: return __result_real_last; 8737: } 8737: # 1735 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _RandomAccessIterator 8737: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8737: _RandomAccessIterator __result_first, 8737: _RandomAccessIterator __result_last) 8737: { 8737: # 1749 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__partial_sort_copy(__first, __last, 8737: __result_first, __result_last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 1784 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _RandomAccessIterator 8737: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8737: _RandomAccessIterator __result_first, 8737: _RandomAccessIterator __result_last, 8737: _Compare __comp) 8737: { 8737: # 1800 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__partial_sort_copy(__first, __last, 8737: __result_first, __result_last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: 8737: template 8737: void 8737: __unguarded_linear_insert(_RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: typename iterator_traits<_RandomAccessIterator>::value_type 8737: __val = std::move(*__last); 8737: _RandomAccessIterator __next = __last; 8737: --__next; 8737: while (__comp(__val, __next)) 8737: { 8737: *__last = std::move(*__next); 8737: __last = __next; 8737: --__next; 8737: } 8737: *__last = std::move(__val); 8737: } 8737: 8737: 8737: template 8737: void 8737: __insertion_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: if (__first == __last) return; 8737: 8737: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8737: { 8737: if (__comp(__i, __first)) 8737: { 8737: typename iterator_traits<_RandomAccessIterator>::value_type 8737: __val = std::move(*__i); 8737: std::move_backward(__first, __i, __i + 1); 8737: *__first = std::move(__val); 8737: } 8737: else 8737: std::__unguarded_linear_insert(__i, 8737: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8737: } 8737: } 8737: 8737: 8737: template 8737: inline void 8737: __unguarded_insertion_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 8737: std::__unguarded_linear_insert(__i, 8737: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: enum { _S_threshold = 16 }; 8737: 8737: 8737: template 8737: void 8737: __final_insertion_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: if (__last - __first > int(_S_threshold)) 8737: { 8737: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 8737: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 8737: __comp); 8737: } 8737: else 8737: std::__insertion_sort(__first, __last, __comp); 8737: } 8737: 8737: 8737: template 8737: _RandomAccessIterator 8737: __unguarded_partition(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, 8737: _RandomAccessIterator __pivot, _Compare __comp) 8737: { 8737: while (true) 8737: { 8737: while (__comp(__first, __pivot)) 8737: ++__first; 8737: --__last; 8737: while (__comp(__pivot, __last)) 8737: --__last; 8737: if (!(__first < __last)) 8737: return __first; 8737: std::iter_swap(__first, __last); 8737: ++__first; 8737: } 8737: } 8737: 8737: 8737: template 8737: inline _RandomAccessIterator 8737: __unguarded_partition_pivot(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 8737: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 8737: __comp); 8737: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 8737: } 8737: 8737: template 8737: inline void 8737: __partial_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __middle, 8737: _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: std::__heap_select(__first, __middle, __last, __comp); 8737: std::__sort_heap(__first, __middle, __comp); 8737: } 8737: 8737: 8737: template 8737: void 8737: __introsort_loop(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, 8737: _Size __depth_limit, _Compare __comp) 8737: { 8737: while (__last - __first > int(_S_threshold)) 8737: { 8737: if (__depth_limit == 0) 8737: { 8737: std::__partial_sort(__first, __last, __last, __comp); 8737: return; 8737: } 8737: --__depth_limit; 8737: _RandomAccessIterator __cut = 8737: std::__unguarded_partition_pivot(__first, __last, __comp); 8737: std::__introsort_loop(__cut, __last, __depth_limit, __comp); 8737: __last = __cut; 8737: } 8737: } 8737: 8737: 8737: 8737: template 8737: inline void 8737: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: if (__first != __last) 8737: { 8737: std::__introsort_loop(__first, __last, 8737: std::__lg(__last - __first) * 2, 8737: __comp); 8737: std::__final_insertion_sort(__first, __last, __comp); 8737: } 8737: } 8737: 8737: template 8737: void 8737: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8737: _RandomAccessIterator __last, _Size __depth_limit, 8737: _Compare __comp) 8737: { 8737: while (__last - __first > 3) 8737: { 8737: if (__depth_limit == 0) 8737: { 8737: std::__heap_select(__first, __nth + 1, __last, __comp); 8737: 8737: std::iter_swap(__first, __nth); 8737: return; 8737: } 8737: --__depth_limit; 8737: _RandomAccessIterator __cut = 8737: std::__unguarded_partition_pivot(__first, __last, __comp); 8737: if (__cut <= __nth) 8737: __first = __cut; 8737: else 8737: __last = __cut; 8737: } 8737: std::__insertion_sort(__first, __last, __comp); 8737: } 8737: # 2021 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__lower_bound(__first, __last, __val, 8737: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::difference_type 8737: _DistanceType; 8737: 8737: _DistanceType __len = std::distance(__first, __last); 8737: 8737: while (__len > 0) 8737: { 8737: _DistanceType __half = __len >> 1; 8737: _ForwardIterator __middle = __first; 8737: std::advance(__middle, __half); 8737: if (__comp(__val, __middle)) 8737: __len = __half; 8737: else 8737: { 8737: __first = __middle; 8737: ++__first; 8737: __len = __len - __half - 1; 8737: } 8737: } 8737: return __first; 8737: } 8737: # 2075 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__upper_bound(__first, __last, __val, 8737: __gnu_cxx::__ops::__val_less_iter()); 8737: } 8737: # 2105 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__upper_bound(__first, __last, __val, 8737: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: pair<_ForwardIterator, _ForwardIterator> 8737: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, 8737: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::difference_type 8737: _DistanceType; 8737: 8737: _DistanceType __len = std::distance(__first, __last); 8737: 8737: while (__len > 0) 8737: { 8737: _DistanceType __half = __len >> 1; 8737: _ForwardIterator __middle = __first; 8737: std::advance(__middle, __half); 8737: if (__comp_it_val(__middle, __val)) 8737: { 8737: __first = __middle; 8737: ++__first; 8737: __len = __len - __half - 1; 8737: } 8737: else if (__comp_val_it(__val, __middle)) 8737: __len = __half; 8737: else 8737: { 8737: _ForwardIterator __left 8737: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 8737: std::advance(__first, __len); 8737: _ForwardIterator __right 8737: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 8737: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 8737: } 8737: } 8737: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 8737: } 8737: # 2176 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline pair<_ForwardIterator, _ForwardIterator> 8737: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__equal_range(__first, __last, __val, 8737: __gnu_cxx::__ops::__iter_less_val(), 8737: __gnu_cxx::__ops::__val_less_iter()); 8737: } 8737: # 2212 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline pair<_ForwardIterator, _ForwardIterator> 8737: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: ; 8737: 8737: return std::__equal_range(__first, __last, __val, 8737: __gnu_cxx::__ops::__iter_comp_val(__comp), 8737: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8737: } 8737: # 2245 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: bool 8737: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: _ForwardIterator __i 8737: = std::__lower_bound(__first, __last, __val, 8737: __gnu_cxx::__ops::__iter_less_val()); 8737: return __i != __last && !(__val < *__i); 8737: } 8737: # 2278 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: bool 8737: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __val, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: ; 8737: 8737: _ForwardIterator __i 8737: = std::__lower_bound(__first, __last, __val, 8737: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8737: return __i != __last && !bool(__comp(__val, *__i)); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: { 8737: if (__comp(__first2, __first1)) 8737: { 8737: *__result = std::move(*__first2); 8737: ++__first2; 8737: } 8737: else 8737: { 8737: *__result = std::move(*__first1); 8737: ++__first1; 8737: } 8737: ++__result; 8737: } 8737: if (__first1 != __last1) 8737: std::move(__first1, __last1, __result); 8737: } 8737: 8737: 8737: template 8737: void 8737: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 8737: _BidirectionalIterator1 __last1, 8737: _BidirectionalIterator2 __first2, 8737: _BidirectionalIterator2 __last2, 8737: _BidirectionalIterator3 __result, 8737: _Compare __comp) 8737: { 8737: if (__first1 == __last1) 8737: { 8737: std::move_backward(__first2, __last2, __result); 8737: return; 8737: } 8737: else if (__first2 == __last2) 8737: return; 8737: 8737: --__last1; 8737: --__last2; 8737: while (true) 8737: { 8737: if (__comp(__last2, __last1)) 8737: { 8737: *--__result = std::move(*__last1); 8737: if (__first1 == __last1) 8737: { 8737: std::move_backward(__first2, ++__last2, __result); 8737: return; 8737: } 8737: --__last1; 8737: } 8737: else 8737: { 8737: *--__result = std::move(*__last2); 8737: if (__first2 == __last2) 8737: return; 8737: --__last2; 8737: } 8737: } 8737: } 8737: 8737: 8737: template 8737: _BidirectionalIterator1 8737: __rotate_adaptive(_BidirectionalIterator1 __first, 8737: _BidirectionalIterator1 __middle, 8737: _BidirectionalIterator1 __last, 8737: _Distance __len1, _Distance __len2, 8737: _BidirectionalIterator2 __buffer, 8737: _Distance __buffer_size) 8737: { 8737: _BidirectionalIterator2 __buffer_end; 8737: if (__len1 > __len2 && __len2 <= __buffer_size) 8737: { 8737: if (__len2) 8737: { 8737: __buffer_end = std::move(__middle, __last, __buffer); 8737: std::move_backward(__first, __middle, __last); 8737: return std::move(__buffer, __buffer_end, __first); 8737: } 8737: else 8737: return __first; 8737: } 8737: else if (__len1 <= __buffer_size) 8737: { 8737: if (__len1) 8737: { 8737: __buffer_end = std::move(__first, __middle, __buffer); 8737: std::move(__middle, __last, __first); 8737: return std::move_backward(__buffer, __buffer_end, __last); 8737: } 8737: else 8737: return __last; 8737: } 8737: else 8737: { 8737: std::rotate(__first, __middle, __last); 8737: std::advance(__first, std::distance(__middle, __last)); 8737: return __first; 8737: } 8737: } 8737: 8737: 8737: template 8737: void 8737: __merge_adaptive(_BidirectionalIterator __first, 8737: _BidirectionalIterator __middle, 8737: _BidirectionalIterator __last, 8737: _Distance __len1, _Distance __len2, 8737: _Pointer __buffer, _Distance __buffer_size, 8737: _Compare __comp) 8737: { 8737: if (__len1 <= __len2 && __len1 <= __buffer_size) 8737: { 8737: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 8737: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 8737: __first, __comp); 8737: } 8737: else if (__len2 <= __buffer_size) 8737: { 8737: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 8737: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 8737: __buffer_end, __last, __comp); 8737: } 8737: else 8737: { 8737: _BidirectionalIterator __first_cut = __first; 8737: _BidirectionalIterator __second_cut = __middle; 8737: _Distance __len11 = 0; 8737: _Distance __len22 = 0; 8737: if (__len1 > __len2) 8737: { 8737: __len11 = __len1 / 2; 8737: std::advance(__first_cut, __len11); 8737: __second_cut 8737: = std::__lower_bound(__middle, __last, *__first_cut, 8737: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8737: __len22 = std::distance(__middle, __second_cut); 8737: } 8737: else 8737: { 8737: __len22 = __len2 / 2; 8737: std::advance(__second_cut, __len22); 8737: __first_cut 8737: = std::__upper_bound(__first, __middle, *__second_cut, 8737: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8737: __len11 = std::distance(__first, __first_cut); 8737: } 8737: 8737: _BidirectionalIterator __new_middle 8737: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 8737: __len1 - __len11, __len22, __buffer, 8737: __buffer_size); 8737: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 8737: __len22, __buffer, __buffer_size, __comp); 8737: std::__merge_adaptive(__new_middle, __second_cut, __last, 8737: __len1 - __len11, 8737: __len2 - __len22, __buffer, 8737: __buffer_size, __comp); 8737: } 8737: } 8737: 8737: 8737: template 8737: void 8737: __merge_without_buffer(_BidirectionalIterator __first, 8737: _BidirectionalIterator __middle, 8737: _BidirectionalIterator __last, 8737: _Distance __len1, _Distance __len2, 8737: _Compare __comp) 8737: { 8737: if (__len1 == 0 || __len2 == 0) 8737: return; 8737: 8737: if (__len1 + __len2 == 2) 8737: { 8737: if (__comp(__middle, __first)) 8737: std::iter_swap(__first, __middle); 8737: return; 8737: } 8737: 8737: _BidirectionalIterator __first_cut = __first; 8737: _BidirectionalIterator __second_cut = __middle; 8737: _Distance __len11 = 0; 8737: _Distance __len22 = 0; 8737: if (__len1 > __len2) 8737: { 8737: __len11 = __len1 / 2; 8737: std::advance(__first_cut, __len11); 8737: __second_cut 8737: = std::__lower_bound(__middle, __last, *__first_cut, 8737: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8737: __len22 = std::distance(__middle, __second_cut); 8737: } 8737: else 8737: { 8737: __len22 = __len2 / 2; 8737: std::advance(__second_cut, __len22); 8737: __first_cut 8737: = std::__upper_bound(__first, __middle, *__second_cut, 8737: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8737: __len11 = std::distance(__first, __first_cut); 8737: } 8737: 8737: std::rotate(__first_cut, __middle, __second_cut); 8737: _BidirectionalIterator __new_middle = __first_cut; 8737: std::advance(__new_middle, std::distance(__middle, __second_cut)); 8737: std::__merge_without_buffer(__first, __first_cut, __new_middle, 8737: __len11, __len22, __comp); 8737: std::__merge_without_buffer(__new_middle, __second_cut, __last, 8737: __len1 - __len11, __len2 - __len22, __comp); 8737: } 8737: 8737: template 8737: void 8737: __inplace_merge(_BidirectionalIterator __first, 8737: _BidirectionalIterator __middle, 8737: _BidirectionalIterator __last, 8737: _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_BidirectionalIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 8737: _DistanceType; 8737: 8737: if (__first == __middle || __middle == __last) 8737: return; 8737: 8737: const _DistanceType __len1 = std::distance(__first, __middle); 8737: const _DistanceType __len2 = std::distance(__middle, __last); 8737: 8737: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 8737: _TmpBuf __buf(__first, __last); 8737: 8737: if (__buf.begin() == 0) 8737: std::__merge_without_buffer 8737: (__first, __middle, __last, __len1, __len2, __comp); 8737: else 8737: std::__merge_adaptive 8737: (__first, __middle, __last, __len1, __len2, __buf.begin(), 8737: _DistanceType(__buf.size()), __comp); 8737: } 8737: # 2572 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: inplace_merge(_BidirectionalIterator __first, 8737: _BidirectionalIterator __middle, 8737: _BidirectionalIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: std::__inplace_merge(__first, __middle, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 2613 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: inplace_merge(_BidirectionalIterator __first, 8737: _BidirectionalIterator __middle, 8737: _BidirectionalIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: std::__inplace_merge(__first, __middle, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: 8737: 8737: template 8737: _OutputIterator 8737: __move_merge(_InputIterator __first1, _InputIterator __last1, 8737: _InputIterator __first2, _InputIterator __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: { 8737: if (__comp(__first2, __first1)) 8737: { 8737: *__result = std::move(*__first2); 8737: ++__first2; 8737: } 8737: else 8737: { 8737: *__result = std::move(*__first1); 8737: ++__first1; 8737: } 8737: ++__result; 8737: } 8737: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 8737: 8737: ; 8737: } 8737: 8737: template 8737: void 8737: __merge_sort_loop(_RandomAccessIterator1 __first, 8737: _RandomAccessIterator1 __last, 8737: _RandomAccessIterator2 __result, _Distance __step_size, 8737: _Compare __comp) 8737: { 8737: const _Distance __two_step = 2 * __step_size; 8737: 8737: while (__last - __first >= __two_step) 8737: { 8737: __result = std::__move_merge(__first, __first + __step_size, 8737: __first + __step_size, 8737: __first + __two_step, 8737: __result, __comp); 8737: __first += __two_step; 8737: } 8737: __step_size = std::min(_Distance(__last - __first), __step_size); 8737: 8737: std::__move_merge(__first, __first + __step_size, 8737: __first + __step_size, __last, __result, __comp); 8737: } 8737: 8737: template 8737: void 8737: __chunk_insertion_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, 8737: _Distance __chunk_size, _Compare __comp) 8737: { 8737: while (__last - __first >= __chunk_size) 8737: { 8737: std::__insertion_sort(__first, __first + __chunk_size, __comp); 8737: __first += __chunk_size; 8737: } 8737: std::__insertion_sort(__first, __last, __comp); 8737: } 8737: 8737: enum { _S_chunk_size = 7 }; 8737: 8737: template 8737: void 8737: __merge_sort_with_buffer(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, 8737: _Pointer __buffer, _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _Distance; 8737: 8737: const _Distance __len = __last - __first; 8737: const _Pointer __buffer_last = __buffer + __len; 8737: 8737: _Distance __step_size = _S_chunk_size; 8737: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 8737: 8737: while (__step_size < __len) 8737: { 8737: std::__merge_sort_loop(__first, __last, __buffer, 8737: __step_size, __comp); 8737: __step_size *= 2; 8737: std::__merge_sort_loop(__buffer, __buffer_last, __first, 8737: __step_size, __comp); 8737: __step_size *= 2; 8737: } 8737: } 8737: 8737: template 8737: void 8737: __stable_sort_adaptive(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, 8737: _Pointer __buffer, _Distance __buffer_size, 8737: _Compare __comp) 8737: { 8737: const _Distance __len = (__last - __first + 1) / 2; 8737: const _RandomAccessIterator __middle = __first + __len; 8737: if (__len > __buffer_size) 8737: { 8737: std::__stable_sort_adaptive(__first, __middle, __buffer, 8737: __buffer_size, __comp); 8737: std::__stable_sort_adaptive(__middle, __last, __buffer, 8737: __buffer_size, __comp); 8737: } 8737: else 8737: { 8737: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 8737: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 8737: } 8737: std::__merge_adaptive(__first, __middle, __last, 8737: _Distance(__middle - __first), 8737: _Distance(__last - __middle), 8737: __buffer, __buffer_size, 8737: __comp); 8737: } 8737: 8737: 8737: template 8737: void 8737: __inplace_stable_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: if (__last - __first < 15) 8737: { 8737: std::__insertion_sort(__first, __last, __comp); 8737: return; 8737: } 8737: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 8737: std::__inplace_stable_sort(__first, __middle, __comp); 8737: std::__inplace_stable_sort(__middle, __last, __comp); 8737: std::__merge_without_buffer(__first, __middle, __last, 8737: __middle - __first, 8737: __last - __middle, 8737: __comp); 8737: } 8737: # 2785 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: bool 8737: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: if (__comp(__first2, __first1)) 8737: return false; 8737: else if (__comp(__first1, __first2)) 8737: ++__first1; 8737: else 8737: { 8737: ++__first1; 8737: ++__first2; 8737: } 8737: 8737: return __first2 == __last2; 8737: } 8737: # 2824 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__includes(__first1, __last1, __first2, __last2, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 2868 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__includes(__first1, __last1, __first2, __last2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: # 2903 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: bool 8737: __next_permutation(_BidirectionalIterator __first, 8737: _BidirectionalIterator __last, _Compare __comp) 8737: { 8737: if (__first == __last) 8737: return false; 8737: _BidirectionalIterator __i = __first; 8737: ++__i; 8737: if (__i == __last) 8737: return false; 8737: __i = __last; 8737: --__i; 8737: 8737: for(;;) 8737: { 8737: _BidirectionalIterator __ii = __i; 8737: --__i; 8737: if (__comp(__i, __ii)) 8737: { 8737: _BidirectionalIterator __j = __last; 8737: while (!__comp(__i, --__j)) 8737: {} 8737: std::iter_swap(__i, __j); 8737: std::__reverse(__ii, __last, 8737: std::__iterator_category(__first)); 8737: return true; 8737: } 8737: if (__i == __first) 8737: { 8737: std::__reverse(__first, __last, 8737: std::__iterator_category(__first)); 8737: return false; 8737: } 8737: } 8737: } 8737: # 2952 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: next_permutation(_BidirectionalIterator __first, 8737: _BidirectionalIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__next_permutation 8737: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 2984 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: next_permutation(_BidirectionalIterator __first, 8737: _BidirectionalIterator __last, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__next_permutation 8737: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: bool 8737: __prev_permutation(_BidirectionalIterator __first, 8737: _BidirectionalIterator __last, _Compare __comp) 8737: { 8737: if (__first == __last) 8737: return false; 8737: _BidirectionalIterator __i = __first; 8737: ++__i; 8737: if (__i == __last) 8737: return false; 8737: __i = __last; 8737: --__i; 8737: 8737: for(;;) 8737: { 8737: _BidirectionalIterator __ii = __i; 8737: --__i; 8737: if (__comp(__ii, __i)) 8737: { 8737: _BidirectionalIterator __j = __last; 8737: while (!__comp(--__j, __i)) 8737: {} 8737: std::iter_swap(__i, __j); 8737: std::__reverse(__ii, __last, 8737: std::__iterator_category(__first)); 8737: return true; 8737: } 8737: if (__i == __first) 8737: { 8737: std::__reverse(__first, __last, 8737: std::__iterator_category(__first)); 8737: return false; 8737: } 8737: } 8737: } 8737: # 3052 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: prev_permutation(_BidirectionalIterator __first, 8737: _BidirectionalIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__prev_permutation(__first, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 3084 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: prev_permutation(_BidirectionalIterator __first, 8737: _BidirectionalIterator __last, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__prev_permutation(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: _OutputIterator 8737: __replace_copy_if(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, 8737: _Predicate __pred, const _Tp& __new_value) 8737: { 8737: for (; __first != __last; ++__first, (void)++__result) 8737: if (__pred(__first)) 8737: *__result = __new_value; 8737: else 8737: *__result = *__first; 8737: return __result; 8737: } 8737: # 3134 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: replace_copy(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, 8737: const _Tp& __old_value, const _Tp& __new_value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__replace_copy_if(__first, __last, __result, 8737: __gnu_cxx::__ops::__iter_equals_val(__old_value), 8737: __new_value); 8737: } 8737: # 3168 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: replace_copy_if(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, 8737: _Predicate __pred, const _Tp& __new_value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__replace_copy_if(__first, __last, __result, 8737: __gnu_cxx::__ops::__pred_iter(__pred), 8737: __new_value); 8737: } 8737: 8737: template 8737: typename iterator_traits<_InputIterator>::difference_type 8737: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8737: { 8737: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8737: for (; __first != __last; ++__first) 8737: if (__pred(__first)) 8737: ++__n; 8737: return __n; 8737: } 8737: # 3207 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 8737: { return std::is_sorted_until(__first, __last) == __last; } 8737: # 3221 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { return std::is_sorted_until(__first, __last, __comp) == __last; } 8737: 8737: template 8737: _ForwardIterator 8737: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: if (__first == __last) 8737: return __last; 8737: 8737: _ForwardIterator __next = __first; 8737: for (++__next; __next != __last; __first = __next, (void)++__next) 8737: if (__comp(__next, __first)) 8737: return __next; 8737: return __next; 8737: } 8737: # 3250 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__is_sorted_until(__first, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 3274 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__is_sorted_until(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: # 3299 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline pair 8737: minmax(const _Tp& __a, const _Tp& __b) 8737: { 8737: 8737: 8737: 8737: return __b < __a ? pair(__b, __a) 8737: : pair(__a, __b); 8737: } 8737: # 3320 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline pair 8737: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 8737: { 8737: return __comp(__b, __a) ? pair(__b, __a) 8737: : pair(__a, __b); 8737: } 8737: 8737: template 8737: 8737: pair<_ForwardIterator, _ForwardIterator> 8737: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: _ForwardIterator __next = __first; 8737: if (__first == __last 8737: || ++__next == __last) 8737: return std::make_pair(__first, __first); 8737: 8737: _ForwardIterator __min{}, __max{}; 8737: if (__comp(__next, __first)) 8737: { 8737: __min = __next; 8737: __max = __first; 8737: } 8737: else 8737: { 8737: __min = __first; 8737: __max = __next; 8737: } 8737: 8737: __first = __next; 8737: ++__first; 8737: 8737: while (__first != __last) 8737: { 8737: __next = __first; 8737: if (++__next == __last) 8737: { 8737: if (__comp(__first, __min)) 8737: __min = __first; 8737: else if (!__comp(__first, __max)) 8737: __max = __first; 8737: break; 8737: } 8737: 8737: if (__comp(__next, __first)) 8737: { 8737: if (__comp(__next, __min)) 8737: __min = __next; 8737: if (!__comp(__first, __max)) 8737: __max = __first; 8737: } 8737: else 8737: { 8737: if (__comp(__first, __min)) 8737: __min = __first; 8737: if (!__comp(__next, __max)) 8737: __max = __next; 8737: } 8737: 8737: __first = __next; 8737: ++__first; 8737: } 8737: 8737: return std::make_pair(__min, __max); 8737: } 8737: # 3400 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline pair<_ForwardIterator, _ForwardIterator> 8737: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__minmax_element(__first, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 3428 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline pair<_ForwardIterator, _ForwardIterator> 8737: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__minmax_element(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: 8737: template 8737: 8737: inline _Tp 8737: min(initializer_list<_Tp> __l) 8737: { return *std::min_element(__l.begin(), __l.end()); } 8737: 8737: template 8737: 8737: inline _Tp 8737: min(initializer_list<_Tp> __l, _Compare __comp) 8737: { return *std::min_element(__l.begin(), __l.end(), __comp); } 8737: 8737: template 8737: 8737: inline _Tp 8737: max(initializer_list<_Tp> __l) 8737: { return *std::max_element(__l.begin(), __l.end()); } 8737: 8737: template 8737: 8737: inline _Tp 8737: max(initializer_list<_Tp> __l, _Compare __comp) 8737: { return *std::max_element(__l.begin(), __l.end(), __comp); } 8737: 8737: template 8737: 8737: inline pair<_Tp, _Tp> 8737: minmax(initializer_list<_Tp> __l) 8737: { 8737: pair __p = 8737: std::minmax_element(__l.begin(), __l.end()); 8737: return std::make_pair(*__p.first, *__p.second); 8737: } 8737: 8737: template 8737: 8737: inline pair<_Tp, _Tp> 8737: minmax(initializer_list<_Tp> __l, _Compare __comp) 8737: { 8737: pair __p = 8737: std::minmax_element(__l.begin(), __l.end(), __comp); 8737: return std::make_pair(*__p.first, *__p.second); 8737: } 8737: 8737: template 8737: bool 8737: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8737: { 8737: 8737: 8737: for (; __first1 != __last1; ++__first1, (void)++__first2) 8737: if (!__pred(__first1, __first2)) 8737: break; 8737: 8737: if (__first1 == __last1) 8737: return true; 8737: 8737: 8737: 8737: _ForwardIterator2 __last2 = __first2; 8737: std::advance(__last2, std::distance(__first1, __last1)); 8737: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 8737: { 8737: if (__scan != std::__find_if(__first1, __scan, 8737: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 8737: continue; 8737: 8737: auto __matches 8737: = std::__count_if(__first2, __last2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 8737: if (0 == __matches || 8737: std::__count_if(__scan, __last1, 8737: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 8737: != __matches) 8737: return false; 8737: } 8737: return true; 8737: } 8737: # 3540 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__is_permutation(__first1, __last1, __first2, 8737: __gnu_cxx::__ops::__iter_equal_to_iter()); 8737: } 8737: # 3571 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline bool 8737: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__is_permutation(__first1, __last1, __first2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 8737: } 8737: # 3767 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: pair<_IntType, _IntType> 8737: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 8737: _UniformRandomBitGenerator&& __g) 8737: { 8737: _IntType __x 8737: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 8737: return std::make_pair(__x / __b1, __x % __b1); 8737: } 8737: # 3789 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: void 8737: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _UniformRandomNumberGenerator&& __g) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return; 8737: 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _DistanceType; 8737: 8737: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 8737: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 8737: typedef typename __distr_type::param_type __p_type; 8737: 8737: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 8737: _Gen; 8737: typedef typename common_type::type 8737: __uc_type; 8737: 8737: const __uc_type __urngrange = __g.max() - __g.min(); 8737: const __uc_type __urange = __uc_type(__last - __first); 8737: 8737: if (__urngrange / __urange >= __urange) 8737: 8737: { 8737: _RandomAccessIterator __i = __first + 1; 8737: 8737: 8737: 8737: 8737: 8737: if ((__urange % 2) == 0) 8737: { 8737: __distr_type __d{0, 1}; 8737: std::iter_swap(__i++, __first + __d(__g)); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: while (__i != __last) 8737: { 8737: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 8737: 8737: const pair<__uc_type, __uc_type> __pospos = 8737: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 8737: 8737: std::iter_swap(__i++, __first + __pospos.first); 8737: std::iter_swap(__i++, __first + __pospos.second); 8737: } 8737: 8737: return; 8737: } 8737: 8737: __distr_type __d; 8737: 8737: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8737: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: # 3874 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _Function 8737: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 8737: { 8737: 8737: 8737: ; 8737: for (; __first != __last; ++__first) 8737: __f(*__first); 8737: return __f; 8737: } 8737: # 3895 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _InputIterator 8737: find(_InputIterator __first, _InputIterator __last, 8737: const _Tp& __val) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: return std::__find_if(__first, __last, 8737: __gnu_cxx::__ops::__iter_equals_val(__val)); 8737: } 8737: # 3919 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _InputIterator 8737: find_if(_InputIterator __first, _InputIterator __last, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__find_if(__first, __last, 8737: __gnu_cxx::__ops::__pred_iter(__pred)); 8737: } 8737: # 3950 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _InputIterator 8737: find_first_of(_InputIterator __first1, _InputIterator __last1, 8737: _ForwardIterator __first2, _ForwardIterator __last2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1) 8737: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8737: if (*__first1 == *__iter) 8737: return __first1; 8737: return __last1; 8737: } 8737: # 3990 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _InputIterator 8737: find_first_of(_InputIterator __first1, _InputIterator __last1, 8737: _ForwardIterator __first2, _ForwardIterator __last2, 8737: _BinaryPredicate __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1) 8737: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8737: if (__comp(*__first1, *__iter)) 8737: return __first1; 8737: return __last1; 8737: } 8737: # 4022 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__adjacent_find(__first, __last, 8737: __gnu_cxx::__ops::__iter_equal_to_iter()); 8737: } 8737: # 4047 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__adjacent_find(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8737: } 8737: # 4072 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline typename iterator_traits<_InputIterator>::difference_type 8737: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__count_if(__first, __last, 8737: __gnu_cxx::__ops::__iter_equals_val(__value)); 8737: } 8737: # 4095 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline typename iterator_traits<_InputIterator>::difference_type 8737: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__count_if(__first, __last, 8737: __gnu_cxx::__ops::__pred_iter(__pred)); 8737: } 8737: # 4135 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator1 8737: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__search(__first1, __last1, __first2, __last2, 8737: __gnu_cxx::__ops::__iter_equal_to_iter()); 8737: } 8737: # 4174 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator1 8737: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8737: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8737: _BinaryPredicate __predicate) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__search(__first1, __last1, __first2, __last2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 8737: } 8737: # 4209 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: search_n(_ForwardIterator __first, _ForwardIterator __last, 8737: _Integer __count, const _Tp& __val) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__search_n(__first, __last, __count, 8737: __gnu_cxx::__ops::__iter_equals_val(__val)); 8737: } 8737: # 4242 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: search_n(_ForwardIterator __first, _ForwardIterator __last, 8737: _Integer __count, const _Tp& __val, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__search_n(__first, __last, __count, 8737: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 8737: } 8737: # 4290 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _OutputIterator 8737: transform(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _UnaryOperation __unary_op) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first, (void)++__result) 8737: *__result = __unary_op(*__first); 8737: return __result; 8737: } 8737: # 4327 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _OutputIterator 8737: transform(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _OutputIterator __result, 8737: _BinaryOperation __binary_op) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 8737: *__result = __binary_op(*__first1, *__first2); 8737: return __result; 8737: } 8737: # 4360 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: void 8737: replace(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __old_value, const _Tp& __new_value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: if (*__first == __old_value) 8737: *__first = __new_value; 8737: } 8737: # 4392 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: void 8737: replace_if(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred, const _Tp& __new_value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: if (__pred(*__first)) 8737: *__first = __new_value; 8737: } 8737: # 4424 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: void 8737: generate(_ForwardIterator __first, _ForwardIterator __last, 8737: _Generator __gen) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: *__first = __gen(); 8737: } 8737: # 4455 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: _OutputIterator 8737: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: for (__decltype(__n + 0) __niter = __n; 8737: __niter > 0; --__niter, (void) ++__first) 8737: *__first = __gen(); 8737: return __first; 8737: } 8737: # 4491 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: unique_copy(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return __result; 8737: return std::__unique_copy(__first, __last, __result, 8737: __gnu_cxx::__ops::__iter_equal_to_iter(), 8737: std::__iterator_category(__first), 8737: std::__iterator_category(__result)); 8737: } 8737: # 4531 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: unique_copy(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, 8737: _BinaryPredicate __binary_pred) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return __result; 8737: return std::__unique_copy(__first, __last, __result, 8737: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 8737: std::__iterator_category(__first), 8737: std::__iterator_category(__result)); 8737: } 8737: # 4564 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first != __last) 8737: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8737: { 8737: 8737: _RandomAccessIterator __j = __first 8737: + std::rand() % ((__i - __first) + 1); 8737: if (__i != __j) 8737: std::iter_swap(__i, __j); 8737: } 8737: } 8737: # 4599 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: void 8737: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: 8737: _RandomNumberGenerator&& __rand) 8737: 8737: 8737: 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return; 8737: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8737: { 8737: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 8737: if (__i != __j) 8737: std::iter_swap(__i, __j); 8737: } 8737: } 8737: # 4639 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _ForwardIterator 8737: partition(_ForwardIterator __first, _ForwardIterator __last, 8737: _Predicate __pred) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: return std::__partition(__first, __last, __pred, 8737: std::__iterator_category(__first)); 8737: } 8737: # 4672 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: partial_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __middle, 8737: _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: std::__partial_sort(__first, __middle, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 4710 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: partial_sort(_RandomAccessIterator __first, 8737: _RandomAccessIterator __middle, 8737: _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: std::__partial_sort(__first, __middle, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: # 4746 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8737: _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: if (__first == __last || __nth == __last) 8737: return; 8737: 8737: std::__introselect(__first, __nth, __last, 8737: std::__lg(__last - __first) * 2, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 4785 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8737: _RandomAccessIterator __last, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: if (__first == __last || __nth == __last) 8737: return; 8737: 8737: std::__introselect(__first, __nth, __last, 8737: std::__lg(__last - __first) * 2, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: # 4822 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 4852 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: _OutputIterator 8737: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: { 8737: if (__comp(__first2, __first1)) 8737: { 8737: *__result = *__first2; 8737: ++__first2; 8737: } 8737: else 8737: { 8737: *__result = *__first1; 8737: ++__first1; 8737: } 8737: ++__result; 8737: } 8737: return std::copy(__first2, __last2, 8737: std::copy(__first1, __last1, __result)); 8737: } 8737: # 4913 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__merge(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 4963 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__merge(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: inline void 8737: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8737: _ValueType; 8737: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8737: _DistanceType; 8737: 8737: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 8737: _TmpBuf __buf(__first, __last); 8737: 8737: if (__buf.begin() == 0) 8737: std::__inplace_stable_sort(__first, __last, __comp); 8737: else 8737: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 8737: _DistanceType(__buf.size()), __comp); 8737: } 8737: # 5027 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: std::__stable_sort(__first, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5061 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline void 8737: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: std::__stable_sort(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: _OutputIterator 8737: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: { 8737: if (__comp(__first1, __first2)) 8737: { 8737: *__result = *__first1; 8737: ++__first1; 8737: } 8737: else if (__comp(__first2, __first1)) 8737: { 8737: *__result = *__first2; 8737: ++__first2; 8737: } 8737: else 8737: { 8737: *__result = *__first1; 8737: ++__first1; 8737: ++__first2; 8737: } 8737: ++__result; 8737: } 8737: return std::copy(__first2, __last2, 8737: std::copy(__first1, __last1, __result)); 8737: } 8737: # 5130 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_union(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5180 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_union(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: _OutputIterator 8737: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: if (__comp(__first1, __first2)) 8737: ++__first1; 8737: else if (__comp(__first2, __first1)) 8737: ++__first2; 8737: else 8737: { 8737: *__result = *__first1; 8737: ++__first1; 8737: ++__first2; 8737: ++__result; 8737: } 8737: return __result; 8737: } 8737: # 5251 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_intersection(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5300 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_intersection(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: _OutputIterator 8737: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: if (__comp(__first1, __first2)) 8737: { 8737: *__result = *__first1; 8737: ++__first1; 8737: ++__result; 8737: } 8737: else if (__comp(__first2, __first1)) 8737: ++__first2; 8737: else 8737: { 8737: ++__first1; 8737: ++__first2; 8737: } 8737: return std::copy(__first1, __last1, __result); 8737: } 8737: # 5373 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_difference(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5424 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_difference(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: _OutputIterator 8737: __set_symmetric_difference(_InputIterator1 __first1, 8737: _InputIterator1 __last1, 8737: _InputIterator2 __first2, 8737: _InputIterator2 __last2, 8737: _OutputIterator __result, 8737: _Compare __comp) 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: if (__comp(__first1, __first2)) 8737: { 8737: *__result = *__first1; 8737: ++__first1; 8737: ++__result; 8737: } 8737: else if (__comp(__first2, __first1)) 8737: { 8737: *__result = *__first2; 8737: ++__first2; 8737: ++__result; 8737: } 8737: else 8737: { 8737: ++__first1; 8737: ++__first2; 8737: } 8737: return std::copy(__first2, __last2, 8737: std::copy(__first1, __last1, __result)); 8737: } 8737: # 5503 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_symmetric_difference(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5554 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: inline _OutputIterator 8737: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _InputIterator2 __last2, 8737: _OutputIterator __result, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: ; 8737: ; 8737: 8737: return std::__set_symmetric_difference(__first1, __last1, 8737: __first2, __last2, __result, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: 8737: _ForwardIterator 8737: __min_element(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: if (__first == __last) 8737: return __first; 8737: _ForwardIterator __result = __first; 8737: while (++__first != __last) 8737: if (__comp(__first, __result)) 8737: __result = __first; 8737: return __result; 8737: } 8737: # 5607 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: _ForwardIterator 8737: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__min_element(__first, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5632 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline _ForwardIterator 8737: min_element(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__min_element(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: 8737: template 8737: 8737: _ForwardIterator 8737: __max_element(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: if (__first == __last) return __first; 8737: _ForwardIterator __result = __first; 8737: while (++__first != __last) 8737: if (__comp(__result, __first)) 8737: __result = __first; 8737: return __result; 8737: } 8737: # 5671 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline _ForwardIterator 8737: max_element(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__max_element(__first, __last, 8737: __gnu_cxx::__ops::__iter_less_iter()); 8737: } 8737: # 5696 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: template 8737: 8737: inline _ForwardIterator 8737: max_element(_ForwardIterator __first, _ForwardIterator __last, 8737: _Compare __comp) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: ; 8737: 8737: return std::__max_element(__first, __last, 8737: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8737: } 8737: # 5839 "/usr/include/c++/8/bits/stl_algo.h" 3 8737: 8737: 8737: } 8737: # 63 "/usr/include/c++/8/algorithm" 2 3 8737: # 110 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 191 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef signed char qint8; 8737: typedef unsigned char quint8; 8737: typedef short qint16; 8737: typedef unsigned short quint16; 8737: typedef int qint32; 8737: typedef unsigned int quint32; 8737: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: typedef long long qint64; 8737: typedef unsigned long long quint64; 8737: 8737: 8737: typedef qint64 qlonglong; 8737: typedef quint64 qulonglong; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef unsigned char uchar; 8737: typedef unsigned short ushort; 8737: typedef unsigned int uint; 8737: typedef unsigned long ulong; 8737: 8737: 8737: 8737: 8737: 8737: typedef double qreal; 8737: # 356 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: extern "C" 8737: 8737: __attribute__((visibility("default"))) const char *qVersion(void) noexcept; 8737: # 384 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: namespace QtPrivate { 8737: template 8737: struct AlignOfHelper 8737: { 8737: char c; 8737: T type; 8737: 8737: AlignOfHelper(); 8737: ~AlignOfHelper(); 8737: }; 8737: 8737: template 8737: struct AlignOf_Default 8737: { 8737: enum { Value = sizeof(AlignOfHelper) - sizeof(T) }; 8737: }; 8737: 8737: template struct AlignOf : AlignOf_Default { }; 8737: template struct AlignOf : AlignOf {}; 8737: template struct AlignOf : AlignOf {}; 8737: 8737: 8737: template struct AlignOf : AlignOf {}; 8737: # 424 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: } 8737: # 440 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: template struct QIntegerForSize; 8737: template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; }; 8737: template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; }; 8737: template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; }; 8737: template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; }; 8737: 8737: template <> struct QIntegerForSize<16> { __extension__ typedef unsigned __int128 Unsigned; __extension__ typedef __int128 Signed; }; 8737: 8737: template struct QIntegerForSizeof: QIntegerForSize { }; 8737: typedef QIntegerForSize<8>::Signed qregisterint; 8737: typedef QIntegerForSize<8>::Unsigned qregisteruint; 8737: typedef QIntegerForSizeof::Unsigned quintptr; 8737: typedef QIntegerForSizeof::Signed qptrdiff; 8737: typedef qptrdiff qintptr; 8737: # 516 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: typedef int QNoImplicitBoolCast; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: constexpr inline T qAbs(const T &t) { return t >= 0 ? t : -t; } 8737: 8737: constexpr inline int qRound(double d) 8737: { return d >= 0.0 ? int(d + 0.5) : int(d - double(int(d-1)) + 0.5) + int(d-1); } 8737: constexpr inline int qRound(float d) 8737: { return d >= 0.0f ? int(d + 0.5f) : int(d - float(int(d-1)) + 0.5f) + int(d-1); } 8737: 8737: constexpr inline qint64 qRound64(double d) 8737: { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - double(qint64(d-1)) + 0.5) + qint64(d-1); } 8737: constexpr inline qint64 qRound64(float d) 8737: { return d >= 0.0f ? qint64(d + 0.5f) : qint64(d - float(qint64(d-1)) + 0.5f) + qint64(d-1); } 8737: 8737: template 8737: constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } 8737: template 8737: constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; } 8737: template 8737: constexpr inline const T &qBound(const T &min, const T &val, const T &max) 8737: { return qMax(min, qMin(max, val)); } 8737: # 621 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: class QDataStream; 8737: 8737: inline void qt_noop(void) {} 8737: # 655 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qTerminate() noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) bool qSharedBuild() noexcept; 8737: # 702 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: class QString; 8737: __attribute__((visibility("default"))) QString qt_error_string(int errorCode = -1); 8737: 8737: 8737: __attribute__((__noreturn__)) 8737: 8737: __attribute__((visibility("default"))) void qt_assert(const char *assertion, const char *file, int line) noexcept; 8737: # 723 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: __attribute__((__noreturn__)) 8737: 8737: __attribute__((visibility("default"))) void qt_assert_x(const char *where, const char *what, const char *file, int line) noexcept; 8737: # 756 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qt_check_pointer(const char *, int) noexcept; 8737: __attribute__((visibility("default"))) void qBadAlloc(); 8737: # 769 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: template 8737: inline T *q_check_ptr(T *p) { do { if (!(p)) qBadAlloc(); } while (false); return p; } 8737: 8737: typedef void (*QFunctionPointer)(); 8737: 8737: 8737: 8737: 8737: 8737: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(double p1, double p2) 8737: { 8737: return (qAbs(p1 - p2) * 1000000000000. <= qMin(qAbs(p1), qAbs(p2))); 8737: } 8737: 8737: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(float p1, float p2) 8737: { 8737: return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2))); 8737: } 8737: 8737: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(double d) 8737: { 8737: return qAbs(d) <= 0.000000000001; 8737: } 8737: 8737: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(float f) 8737: { 8737: return qAbs(f) <= 0.00001f; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(double d) 8737: { 8737: union U { 8737: double d; 8737: quint64 u; 8737: }; 8737: U val; 8737: val.d = d; 8737: return (val.u & static_cast(0x7fffffffffffffffULL)) == 0; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(float f) 8737: { 8737: union U { 8737: float f; 8737: quint32 u; 8737: }; 8737: U val; 8737: val.f = f; 8737: return (val.u & 0x7fffffff) == 0; 8737: } 8737: # 850 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: namespace QtPrivate 8737: { 8737: namespace SwapExceptionTester { 8737: using std::swap; 8737: template 8737: void checkSwap(T &t) 8737: noexcept(noexcept(swap(t, t))); 8737: 8737: } 8737: } 8737: 8737: template 8737: inline void qSwap(T &value1, T &value2) 8737: noexcept(noexcept(QtPrivate::SwapExceptionTester::checkSwap(value1))) 8737: { 8737: using std::swap; 8737: swap(value1, value2); 8737: } 8737: # 876 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: __attribute__((visibility("default"))) void *qMallocAligned(size_t size, size_t alignment) __attribute__((alloc_size(1))); 8737: __attribute__((visibility("default"))) void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) __attribute__((alloc_size(2))); 8737: __attribute__((visibility("default"))) void qFreeAligned(void *ptr); 8737: # 918 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: namespace QtPrivate { 8737: template struct QAddConst { typedef const T Type; }; 8737: } 8737: 8737: 8737: template 8737: constexpr typename QtPrivate::QAddConst::Type &qAsConst(T &t) noexcept { return t; } 8737: 8737: template 8737: void qAsConst(const T &&) = delete; 8737: 8737: 8737: 8737: namespace QtPrivate { 8737: 8737: template 8737: class QForeachContainer { 8737: QForeachContainer(const QForeachContainer &) = delete; QForeachContainer &operator=(const QForeachContainer &) = delete; 8737: public: 8737: QForeachContainer(const T &t) : c(t), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8737: QForeachContainer(T &&t) : c(std::move(t)), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8737: 8737: QForeachContainer(QForeachContainer &&other) 8737: : c(std::move(other.c)), 8737: i(qAsConst(c).begin()), 8737: e(qAsConst(c).end()), 8737: control(std::move(other.control)) 8737: { 8737: } 8737: 8737: QForeachContainer &operator=(QForeachContainer &&other) 8737: { 8737: c = std::move(other.c); 8737: i = qAsConst(c).begin(); 8737: e = qAsConst(c).end(); 8737: control = std::move(other.control); 8737: return *this; 8737: } 8737: 8737: T c; 8737: typename T::const_iterator i, e; 8737: int control = 1; 8737: }; 8737: 8737: template 8737: QForeachContainer::type> qMakeForeachContainer(T &&t) 8737: { 8737: return QForeachContainer::type>(std::forward(t)); 8737: } 8737: 8737: } 8737: # 998 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: template static inline T *qGetPtrHelper(T *ptr) { return ptr; } 8737: template static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); } 8737: # 1031 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: __attribute__((visibility("default"))) QString qtTrId(const char *id, int n = -1); 8737: # 1063 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: template 8737: struct QNonConstOverload 8737: { 8737: template 8737: constexpr auto operator()(R (T::*ptr)(Args...)) const noexcept -> decltype(ptr) 8737: { return ptr; } 8737: 8737: template 8737: static constexpr auto of(R (T::*ptr)(Args...)) noexcept -> decltype(ptr) 8737: { return ptr; } 8737: }; 8737: 8737: template 8737: struct QConstOverload 8737: { 8737: template 8737: constexpr auto operator()(R (T::*ptr)(Args...) const) const noexcept -> decltype(ptr) 8737: { return ptr; } 8737: 8737: template 8737: static constexpr auto of(R (T::*ptr)(Args...) const) noexcept -> decltype(ptr) 8737: { return ptr; } 8737: }; 8737: 8737: template 8737: struct QOverload : QConstOverload, QNonConstOverload 8737: { 8737: using QConstOverload::of; 8737: using QConstOverload::operator(); 8737: using QNonConstOverload::of; 8737: using QNonConstOverload::operator(); 8737: 8737: template 8737: constexpr auto operator()(R (*ptr)(Args...)) const noexcept -> decltype(ptr) 8737: { return ptr; } 8737: 8737: template 8737: static constexpr auto of(R (*ptr)(Args...)) noexcept -> decltype(ptr) 8737: { return ptr; } 8737: }; 8737: # 1113 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: class QByteArray; 8737: __attribute__((visibility("default"))) QByteArray qgetenv(const char *varName); 8737: __attribute__((visibility("default"))) bool qputenv(const char *varName, const QByteArray& value); 8737: __attribute__((visibility("default"))) bool qunsetenv(const char *varName); 8737: 8737: __attribute__((visibility("default"))) bool qEnvironmentVariableIsEmpty(const char *varName) noexcept; 8737: __attribute__((visibility("default"))) bool qEnvironmentVariableIsSet(const char *varName) noexcept; 8737: __attribute__((visibility("default"))) int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept; 8737: 8737: inline int qIntCast(double f) { return int(f); } 8737: inline int qIntCast(float f) { return int(f); } 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) void qsrand(uint seed); 8737: __attribute__((visibility("default"))) int qrand(); 8737: # 1139 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8737: namespace QtPrivate { 8737: 8737: template struct QEnableIf; 8737: template struct QEnableIf { typedef T Type; }; 8737: 8737: template struct QConditional { typedef T Type; }; 8737: template struct QConditional { typedef F Type; }; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 1 3 4 8737: # 41 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 1 3 4 8737: # 42 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: template 8737: class QTypeInfo 8737: { 8737: public: 8737: enum { 8737: isSpecialized = std::is_enum::value, 8737: isPointer = false, 8737: isIntegral = std::is_integral::value, 8737: isComplex = !isIntegral && !std::is_enum::value, 8737: isStatic = true, 8737: isRelocatable = std::is_enum::value, 8737: isLarge = (sizeof(T)>sizeof(void*)), 8737: isDummy = false, 8737: sizeOf = sizeof(T) 8737: }; 8737: }; 8737: 8737: template<> 8737: class QTypeInfo 8737: { 8737: public: 8737: enum { 8737: isSpecialized = true, 8737: isPointer = false, 8737: isIntegral = false, 8737: isComplex = false, 8737: isStatic = false, 8737: isRelocatable = false, 8737: isLarge = false, 8737: isDummy = false, 8737: sizeOf = 0 8737: }; 8737: }; 8737: 8737: template 8737: class QTypeInfo 8737: { 8737: public: 8737: enum { 8737: isSpecialized = true, 8737: isPointer = true, 8737: isIntegral = false, 8737: isComplex = false, 8737: isStatic = false, 8737: isRelocatable = true, 8737: isLarge = false, 8737: isDummy = false, 8737: sizeOf = sizeof(T*) 8737: }; 8737: }; 8737: # 122 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: template 8737: struct QTypeInfoQuery : public QTypeInfo 8737: { 8737: enum { isRelocatable = !QTypeInfo::isStatic }; 8737: }; 8737: 8737: 8737: template 8737: struct QTypeInfoQuery::isRelocatable || true>::type> : public QTypeInfo 8737: {}; 8737: # 153 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: template 8737: class QTypeInfoMerger 8737: { 8737: public: 8737: enum { 8737: isSpecialized = true, 8737: isComplex = QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex 8737: || QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex, 8737: isStatic = QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic 8737: || QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic, 8737: isRelocatable = QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable 8737: && QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable, 8737: isLarge = sizeof(T) > sizeof(void*), 8737: isPointer = false, 8737: isIntegral = false, 8737: isDummy = false, 8737: sizeOf = sizeof(T) 8737: }; 8737: }; 8737: # 192 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: 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) }; }; 8737: 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) }; }; 8737: 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) }; }; 8737: 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) }; }; 8737: 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) }; }; 8737: 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) }; }; 8737: # 221 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: 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) }; }; 8737: 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) }; }; 8737: 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) }; }; 8737: 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) }; }; 8737: # 236 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: enum { 8737: Q_COMPLEX_TYPE = 0, 8737: Q_PRIMITIVE_TYPE = 0x1, 8737: Q_STATIC_TYPE = 0, 8737: Q_MOVABLE_TYPE = 0x2, 8737: Q_DUMMY_TYPE = 0x4, 8737: Q_RELOCATABLE_TYPE = 0x8 8737: }; 8737: # 268 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: template class QFlags; 8737: template 8737: 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"; } }; 8737: # 300 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 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"; } }; 8737: 8737: 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"; } }; 8737: # 331 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8737: 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"; } }; 8737: 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"; } }; 8737: 8737: 8737: 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"; } }; 8737: 8737: 8737: 8737: 8737: # 1153 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: 8737: # 69 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: class QString; 8737: class __attribute__((visibility("default"))) QSysInfo { 8737: public: 8737: enum Sizes { 8737: WordSize = (sizeof(void *)<<3) 8737: }; 8737: # 84 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: enum Endian { 8737: BigEndian, 8737: LittleEndian 8737: 8737: 8737: 8737: 8737: 8737: 8737: , ByteOrder = LittleEndian 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: enum WinVersion { 8737: WV_None = 0x0000, 8737: 8737: WV_32s = 0x0001, 8737: WV_95 = 0x0002, 8737: WV_98 = 0x0003, 8737: WV_Me = 0x0004, 8737: WV_DOS_based= 0x000f, 8737: 8737: 8737: WV_NT = 0x0010, 8737: WV_2000 = 0x0020, 8737: WV_XP = 0x0030, 8737: WV_2003 = 0x0040, 8737: WV_VISTA = 0x0080, 8737: WV_WINDOWS7 = 0x0090, 8737: WV_WINDOWS8 = 0x00a0, 8737: WV_WINDOWS8_1 = 0x00b0, 8737: WV_WINDOWS10 = 0x00c0, 8737: WV_NT_based = 0x00f0, 8737: 8737: 8737: WV_4_0 = WV_NT, 8737: WV_5_0 = WV_2000, 8737: WV_5_1 = WV_XP, 8737: WV_5_2 = WV_2003, 8737: WV_6_0 = WV_VISTA, 8737: WV_6_1 = WV_WINDOWS7, 8737: WV_6_2 = WV_WINDOWS8, 8737: WV_6_3 = WV_WINDOWS8_1, 8737: WV_10_0 = WV_WINDOWS10, 8737: 8737: WV_CE = 0x0100, 8737: WV_CENET = 0x0200, 8737: WV_CE_5 = 0x0300, 8737: WV_CE_6 = 0x0400, 8737: WV_CE_based = 0x0f00 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: enum MacVersion { 8737: MV_None = 0xffff, 8737: MV_Unknown = 0x0000, 8737: 8737: 8737: MV_9 = (9 == 10 ? 0 + 2 : (9 == 9 ? 1 : 0)), 8737: MV_10_0 = (10 == 10 ? 0 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_1 = (10 == 10 ? 1 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_2 = (10 == 10 ? 2 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_3 = (10 == 10 ? 3 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_4 = (10 == 10 ? 4 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_5 = (10 == 10 ? 5 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_6 = (10 == 10 ? 6 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_7 = (10 == 10 ? 7 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_8 = (10 == 10 ? 8 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_9 = (10 == 10 ? 9 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_10 = (10 == 10 ? 10 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_11 = (10 == 10 ? 11 + 2 : (10 == 9 ? 1 : 0)), 8737: MV_10_12 = (10 == 10 ? 12 + 2 : (10 == 9 ? 1 : 0)), 8737: 8737: 8737: MV_CHEETAH = MV_10_0, 8737: MV_PUMA = MV_10_1, 8737: MV_JAGUAR = MV_10_2, 8737: MV_PANTHER = MV_10_3, 8737: MV_TIGER = MV_10_4, 8737: MV_LEOPARD = MV_10_5, 8737: MV_SNOWLEOPARD = MV_10_6, 8737: MV_LION = MV_10_7, 8737: MV_MOUNTAINLION = MV_10_8, 8737: MV_MAVERICKS = MV_10_9, 8737: MV_YOSEMITE = MV_10_10, 8737: MV_ELCAPITAN = MV_10_11, 8737: MV_SIERRA = MV_10_12, 8737: 8737: 8737: MV_IOS = 1 << 8, 8737: MV_IOS_4_3 = (QSysInfo::MV_IOS | 4 << 4 | 3), 8737: MV_IOS_5_0 = (QSysInfo::MV_IOS | 5 << 4 | 0), 8737: MV_IOS_5_1 = (QSysInfo::MV_IOS | 5 << 4 | 1), 8737: MV_IOS_6_0 = (QSysInfo::MV_IOS | 6 << 4 | 0), 8737: MV_IOS_6_1 = (QSysInfo::MV_IOS | 6 << 4 | 1), 8737: MV_IOS_7_0 = (QSysInfo::MV_IOS | 7 << 4 | 0), 8737: MV_IOS_7_1 = (QSysInfo::MV_IOS | 7 << 4 | 1), 8737: MV_IOS_8_0 = (QSysInfo::MV_IOS | 8 << 4 | 0), 8737: MV_IOS_8_1 = (QSysInfo::MV_IOS | 8 << 4 | 1), 8737: MV_IOS_8_2 = (QSysInfo::MV_IOS | 8 << 4 | 2), 8737: MV_IOS_8_3 = (QSysInfo::MV_IOS | 8 << 4 | 3), 8737: MV_IOS_8_4 = (QSysInfo::MV_IOS | 8 << 4 | 4), 8737: MV_IOS_9_0 = (QSysInfo::MV_IOS | 9 << 4 | 0), 8737: MV_IOS_9_1 = (QSysInfo::MV_IOS | 9 << 4 | 1), 8737: MV_IOS_9_2 = (QSysInfo::MV_IOS | 9 << 4 | 2), 8737: MV_IOS_9_3 = (QSysInfo::MV_IOS | 9 << 4 | 3), 8737: MV_IOS_10_0 = (QSysInfo::MV_IOS | 10 << 4 | 0), 8737: 8737: 8737: MV_TVOS = 1 << 9, 8737: MV_TVOS_9_0 = (QSysInfo::MV_TVOS | 9 << 4 | 0), 8737: MV_TVOS_9_1 = (QSysInfo::MV_TVOS | 9 << 4 | 1), 8737: MV_TVOS_9_2 = (QSysInfo::MV_TVOS | 9 << 4 | 2), 8737: MV_TVOS_10_0 = (QSysInfo::MV_TVOS | 10 << 4 | 0), 8737: 8737: 8737: MV_WATCHOS = 1 << 10, 8737: MV_WATCHOS_2_0 = (QSysInfo::MV_WATCHOS | 2 << 4 | 0), 8737: MV_WATCHOS_2_1 = (QSysInfo::MV_WATCHOS | 2 << 4 | 1), 8737: MV_WATCHOS_2_2 = (QSysInfo::MV_WATCHOS | 2 << 4 | 2), 8737: MV_WATCHOS_3_0 = (QSysInfo::MV_WATCHOS | 3 << 4 | 0) 8737: }; 8737: 8737: 8737: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: 8737: 8737: # 214 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: # 214 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: 8737: 8737: 8737: 8737: 8737: static const WinVersion WindowsVersion = WV_None; 8737: static WinVersion windowsVersion() { return WV_None; } 8737: 8737: 8737: 8737: 8737: 8737: static const MacVersion MacintoshVersion = MV_None; 8737: static MacVersion macVersion() { return MV_None; } 8737: 8737: 8737: # 229 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 229 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8737: 8737: 8737: 8737: static QString buildCpuArchitecture(); 8737: static QString currentCpuArchitecture(); 8737: static QString buildAbi(); 8737: 8737: static QString kernelType(); 8737: static QString kernelVersion(); 8737: static QString productType(); 8737: static QString productVersion(); 8737: static QString prettyProductName(); 8737: 8737: static QString machineHostName(); 8737: }; 8737: 8737: 8737: 8737: 8737: # 1154 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h" 1 3 4 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h" 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QDebug; 8737: class QNoDebug; 8737: 8737: enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtInfoMsg, QtSystemMsg = QtCriticalMsg }; 8737: 8737: class QMessageLogContext 8737: { 8737: QMessageLogContext(const QMessageLogContext &) = delete; QMessageLogContext &operator=(const QMessageLogContext &) = delete; 8737: public: 8737: constexpr QMessageLogContext() 8737: : version(2), line(0), file(nullptr), function(nullptr), category(nullptr) {} 8737: constexpr QMessageLogContext(const char *fileName, int lineNumber, const char *functionName, const char *categoryName) 8737: : version(2), line(lineNumber), file(fileName), function(functionName), category(categoryName) {} 8737: 8737: void copy(const QMessageLogContext &logContext); 8737: 8737: int version; 8737: int line; 8737: const char *file; 8737: const char *function; 8737: const char *category; 8737: 8737: private: 8737: friend class QMessageLogger; 8737: friend class QDebug; 8737: }; 8737: 8737: class QLoggingCategory; 8737: 8737: class __attribute__((visibility("default"))) QMessageLogger 8737: { 8737: QMessageLogger(const QMessageLogger &) = delete; QMessageLogger &operator=(const QMessageLogger &) = delete; 8737: public: 8737: constexpr QMessageLogger() : context() {} 8737: constexpr QMessageLogger(const char *file, int line, const char *function) 8737: : context(file, line, function, "default") {} 8737: constexpr QMessageLogger(const char *file, int line, const char *function, const char *category) 8737: : context(file, line, function, category) {} 8737: 8737: void debug(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8737: void noDebug(const char *, ...) const __attribute__((format(printf, (2), (3)))) 8737: {} 8737: void info(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8737: void warning(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8737: void critical(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8737: 8737: typedef const QLoggingCategory &(*CategoryFunction)(); 8737: 8737: void debug(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void debug(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void info(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void info(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void warning(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void warning(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void critical(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: void critical(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8737: 8737: 8737: __attribute__((__noreturn__)) 8737: 8737: void fatal(const char *msg, ...) const noexcept __attribute__((format(printf, (2), (3)))); 8737: 8737: 8737: QDebug debug() const; 8737: QDebug debug(const QLoggingCategory &cat) const; 8737: QDebug debug(CategoryFunction catFunc) const; 8737: QDebug info() const; 8737: QDebug info(const QLoggingCategory &cat) const; 8737: QDebug info(CategoryFunction catFunc) const; 8737: QDebug warning() const; 8737: QDebug warning(const QLoggingCategory &cat) const; 8737: QDebug warning(CategoryFunction catFunc) const; 8737: QDebug critical() const; 8737: QDebug critical(const QLoggingCategory &cat) const; 8737: QDebug critical(CategoryFunction catFunc) const; 8737: 8737: QNoDebug noDebug() const noexcept; 8737: 8737: 8737: private: 8737: QMessageLogContext context; 8737: }; 8737: # 179 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h" 3 4 8737: __attribute__((visibility("default"))) void qt_message_output(QtMsgType, const QMessageLogContext &context, 8737: const QString &message); 8737: 8737: __attribute__((visibility("default"))) void qErrnoWarning(int code, const char *msg, ...); 8737: __attribute__((visibility("default"))) void qErrnoWarning(const char *msg, ...); 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QString &); 8737: __attribute__((visibility("default"))) QtMessageHandler qInstallMessageHandler(QtMessageHandler); 8737: 8737: __attribute__((visibility("default"))) void qSetMessagePattern(const QString &messagePattern); 8737: __attribute__((visibility("default"))) QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, 8737: const QString &buf); 8737: 8737: 8737: # 1155 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 1 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 3 4 8737: 8737: 8737: class QDataStream; 8737: 8737: class QFlag 8737: { 8737: int i; 8737: public: 8737: constexpr inline QFlag(int ai) noexcept : i(ai) {} 8737: constexpr inline operator int() const noexcept { return i; } 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 3 4 8737: constexpr inline QFlag(uint ai) noexcept : i(int(ai)) {} 8737: constexpr inline QFlag(short ai) noexcept : i(int(ai)) {} 8737: constexpr inline QFlag(ushort ai) noexcept : i(int(uint(ai))) {} 8737: constexpr inline operator uint() const noexcept { return uint(i); } 8737: 8737: }; 8737: 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"; } }; 8737: 8737: class QIncompatibleFlag 8737: { 8737: int i; 8737: public: 8737: constexpr inline explicit QIncompatibleFlag(int i) noexcept; 8737: constexpr inline operator int() const noexcept { return i; } 8737: }; 8737: 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"; } }; 8737: 8737: constexpr inline QIncompatibleFlag::QIncompatibleFlag(int ai) noexcept : i(ai) {} 8737: 8737: 8737: 8737: 8737: template 8737: class QFlags 8737: { 8737: static_assert(bool((sizeof(Enum) <= sizeof(int))), "QFlags uses an int as storage, so an enum with underlying " "long long will overflow.") 8737: 8737: ; 8737: static_assert(bool((std::is_enum::value)), "QFlags is only usable on enumeration types."); 8737: 8737: struct Private; 8737: typedef int (Private::*Zero); 8737: template friend QDataStream &operator>>(QDataStream &, QFlags &); 8737: template friend QDataStream &operator<<(QDataStream &, QFlags); 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: typedef typename std::conditional< 8737: std::is_unsigned::type>::value, 8737: unsigned int, 8737: signed int 8737: >::type Int; 8737: 8737: typedef Enum enum_type; 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QFlags(Enum f) noexcept : i(Int(f)) {} 8737: constexpr inline QFlags(Zero = nullptr) noexcept : i(0) {} 8737: constexpr inline QFlags(QFlag f) noexcept : i(f) {} 8737: 8737: 8737: constexpr inline QFlags(std::initializer_list flags) noexcept 8737: : i(initializer_list_helper(flags.begin(), flags.end())) {} 8737: 8737: 8737: inline QFlags &operator&=(int mask) noexcept { i &= mask; return *this; } 8737: inline QFlags &operator&=(uint mask) noexcept { i &= mask; return *this; } 8737: inline QFlags &operator&=(Enum mask) noexcept { i &= Int(mask); return *this; } 8737: inline QFlags &operator|=(QFlags f) noexcept { i |= f.i; return *this; } 8737: inline QFlags &operator|=(Enum f) noexcept { i |= Int(f); return *this; } 8737: inline QFlags &operator^=(QFlags f) noexcept { i ^= f.i; return *this; } 8737: inline QFlags &operator^=(Enum f) noexcept { i ^= Int(f); return *this; } 8737: 8737: constexpr inline operator Int() const noexcept { return i; } 8737: 8737: constexpr inline QFlags operator|(QFlags f) const noexcept { return QFlags(QFlag(i | f.i)); } 8737: constexpr inline QFlags operator|(Enum f) const noexcept { return QFlags(QFlag(i | Int(f))); } 8737: constexpr inline QFlags operator^(QFlags f) const noexcept { return QFlags(QFlag(i ^ f.i)); } 8737: constexpr inline QFlags operator^(Enum f) const noexcept { return QFlags(QFlag(i ^ Int(f))); } 8737: constexpr inline QFlags operator&(int mask) const noexcept { return QFlags(QFlag(i & mask)); } 8737: constexpr inline QFlags operator&(uint mask) const noexcept { return QFlags(QFlag(i & mask)); } 8737: constexpr inline QFlags operator&(Enum f) const noexcept { return QFlags(QFlag(i & Int(f))); } 8737: constexpr inline QFlags operator~() const noexcept { return QFlags(QFlag(~i)); } 8737: 8737: constexpr inline bool operator!() const noexcept { return !i; } 8737: 8737: constexpr inline bool testFlag(Enum f) const noexcept { return (i & Int(f)) == Int(f) && (Int(f) != 0 || i == Int(f) ); } 8737: inline QFlags &setFlag(Enum f, bool on = true) noexcept 8737: { 8737: return on ? (*this |= f) : (*this &= ~f); 8737: } 8737: 8737: private: 8737: 8737: constexpr static inline Int initializer_list_helper(typename std::initializer_list::const_iterator it, 8737: typename std::initializer_list::const_iterator end) 8737: noexcept 8737: { 8737: return (it == end ? Int(0) : (Int(*it) | initializer_list_helper(it + 1, end))); 8737: } 8737: 8737: 8737: Int i; 8737: }; 8737: # 196 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 3 4 8737: 8737: # 1157 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 1 3 4 8737: # 41 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 42 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 2 3 4 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 2 3 4 8737: 8737: 8737: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8737: template struct QAtomicOpsSupport { enum { IsSupported = 0 }; }; 8737: template<> struct QAtomicOpsSupport<4> { enum { IsSupported = 1 }; }; 8737: 8737: template struct QAtomicAdditiveType 8737: { 8737: typedef T AdditiveT; 8737: static const int AddScale = 1; 8737: }; 8737: template struct QAtomicAdditiveType 8737: { 8737: typedef qptrdiff AdditiveT; 8737: static const int AddScale = sizeof(T); 8737: }; 8737: 8737: 8737: template struct QGenericAtomicOps 8737: { 8737: template struct AtomicType { typedef T Type; typedef T *PointerType; }; 8737: 8737: template static void acquireMemoryFence(const T &_q_value) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: } 8737: template static void releaseMemoryFence(const T &_q_value) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: } 8737: template static void orderedMemoryFence(const T &) noexcept 8737: { 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T load(const T &_q_value) noexcept 8737: { 8737: return _q_value; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: void store(T &_q_value, X newValue) noexcept 8737: { 8737: _q_value = newValue; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T loadAcquire(const T &_q_value) noexcept 8737: { 8737: T tmp = *static_cast(&_q_value); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: void storeRelease(T &_q_value, X newValue) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: *static_cast(&_q_value) = newValue; 8737: } 8737: 8737: static inline constexpr bool isReferenceCountingNative() noexcept 8737: { return BaseClass::isFetchAndAddNative(); } 8737: static inline constexpr bool isReferenceCountingWaitFree() noexcept 8737: { return BaseClass::isFetchAndAddWaitFree(); } 8737: template static inline __attribute__((always_inline)) 8737: bool ref(T &_q_value) noexcept 8737: { 8737: return BaseClass::fetchAndAddRelaxed(_q_value, 1) != T(-1); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: bool deref(T &_q_value) noexcept 8737: { 8737: return BaseClass::fetchAndAddRelaxed(_q_value, -1) != 1; 8737: } 8737: # 141 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8737: template static inline __attribute__((always_inline)) 8737: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue) noexcept 8737: { 8737: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8737: { 8737: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8737: } 8737: 8737: static inline constexpr bool isFetchAndStoreNative() noexcept { return false; } 8737: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndStoreRelaxed(T &_q_value, X newValue) noexcept 8737: { 8737: 8737: for(;;) { 8737: T tmp = load(_q_value); 8737: if (BaseClass::testAndSetRelaxed(_q_value, tmp, newValue)) 8737: return tmp; 8737: } 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndStoreAcquire(T &_q_value, X newValue) noexcept 8737: { 8737: T tmp = BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndStoreRelease(T &_q_value, X newValue) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndStoreOrdered(T &_q_value, X newValue) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8737: } 8737: 8737: static inline constexpr bool isFetchAndAddNative() noexcept { return false; } 8737: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: 8737: for(;;) { 8737: T tmp = BaseClass::load(_q_value); 8737: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp + valueToAdd))) 8737: return tmp; 8737: } 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: T tmp = BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAddRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndSubRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8737: { 8737: 8737: return fetchAndAddRelaxed(_q_value, -operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndSubAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8737: { 8737: T tmp = BaseClass::fetchAndSubRelaxed(_q_value, operand); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndSubRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndSubOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAndRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: 8737: T tmp = BaseClass::load(_q_value); 8737: for(;;) { 8737: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp & operand), &tmp)) 8737: return tmp; 8737: } 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAndAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: T tmp = BaseClass::fetchAndAndRelaxed(_q_value, operand); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAndRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndAndOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndOrRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: 8737: T tmp = BaseClass::load(_q_value); 8737: for(;;) { 8737: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp | operand), &tmp)) 8737: return tmp; 8737: } 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndOrAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: T tmp = BaseClass::fetchAndOrRelaxed(_q_value, operand); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndOrRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndOrOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndXorRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: 8737: T tmp = BaseClass::load(_q_value); 8737: for(;;) { 8737: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp ^ operand), &tmp)) 8737: return tmp; 8737: } 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndXorAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: T tmp = BaseClass::fetchAndXorRelaxed(_q_value, operand); 8737: BaseClass::acquireMemoryFence(_q_value); 8737: return tmp; 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndXorRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: BaseClass::releaseMemoryFence(_q_value); 8737: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8737: } 8737: 8737: template static inline __attribute__((always_inline)) 8737: T fetchAndXorOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8737: { 8737: BaseClass::orderedMemoryFence(_q_value); 8737: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8737: } 8737: }; 8737: 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8737: # 1 "/usr/include/c++/8/atomic" 1 3 4 8737: # 35 "/usr/include/c++/8/atomic" 3 4 8737: 8737: # 36 "/usr/include/c++/8/atomic" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/atomic_base.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/atomic_base.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/atomic_base.h" 3 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h" 1 3 4 8737: # 9 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h" 3 4 8737: # 1 "/usr/include/stdint.h" 1 3 4 8737: # 26 "/usr/include/stdint.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8737: # 27 "/usr/include/stdint.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4 8737: # 29 "/usr/include/stdint.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 30 "/usr/include/stdint.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 1 3 4 8737: # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 3 4 8737: typedef __uint8_t uint8_t; 8737: typedef __uint16_t uint16_t; 8737: typedef __uint32_t uint32_t; 8737: typedef __uint64_t uint64_t; 8737: # 38 "/usr/include/stdint.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: typedef signed char int_least8_t; 8737: typedef short int int_least16_t; 8737: typedef int int_least32_t; 8737: 8737: typedef long int int_least64_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef unsigned char uint_least8_t; 8737: typedef unsigned short int uint_least16_t; 8737: typedef unsigned int uint_least32_t; 8737: 8737: typedef unsigned long int uint_least64_t; 8737: # 68 "/usr/include/stdint.h" 3 4 8737: typedef signed char int_fast8_t; 8737: 8737: typedef long int int_fast16_t; 8737: typedef long int int_fast32_t; 8737: typedef long int int_fast64_t; 8737: # 81 "/usr/include/stdint.h" 3 4 8737: typedef unsigned char uint_fast8_t; 8737: 8737: typedef unsigned long int uint_fast16_t; 8737: typedef unsigned long int uint_fast32_t; 8737: typedef unsigned long int uint_fast64_t; 8737: # 97 "/usr/include/stdint.h" 3 4 8737: typedef long int intptr_t; 8737: 8737: 8737: typedef unsigned long int uintptr_t; 8737: # 111 "/usr/include/stdint.h" 3 4 8737: typedef __intmax_t intmax_t; 8737: typedef __uintmax_t uintmax_t; 8737: # 10 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h" 2 3 4 8737: # 37 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8737: # 1 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8737: # 38 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 55 "/usr/include/c++/8/bits/atomic_base.h" 3 8737: typedef enum memory_order 8737: { 8737: memory_order_relaxed, 8737: memory_order_consume, 8737: memory_order_acquire, 8737: memory_order_release, 8737: memory_order_acq_rel, 8737: memory_order_seq_cst 8737: } memory_order; 8737: 8737: enum __memory_order_modifier 8737: { 8737: __memory_order_mask = 0x0ffff, 8737: __memory_order_modifier_mask = 0xffff0000, 8737: __memory_order_hle_acquire = 0x10000, 8737: __memory_order_hle_release = 0x20000 8737: }; 8737: 8737: constexpr memory_order 8737: operator|(memory_order __m, __memory_order_modifier __mod) 8737: { 8737: return memory_order(__m | int(__mod)); 8737: } 8737: 8737: constexpr memory_order 8737: operator&(memory_order __m, __memory_order_modifier __mod) 8737: { 8737: return memory_order(__m & int(__mod)); 8737: } 8737: 8737: 8737: constexpr memory_order 8737: __cmpexch_failure_order2(memory_order __m) noexcept 8737: { 8737: return __m == memory_order_acq_rel ? memory_order_acquire 8737: : __m == memory_order_release ? memory_order_relaxed : __m; 8737: } 8737: 8737: constexpr memory_order 8737: __cmpexch_failure_order(memory_order __m) noexcept 8737: { 8737: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 8737: | (__m & __memory_order_modifier_mask)); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: atomic_thread_fence(memory_order __m) noexcept 8737: { __atomic_thread_fence(__m); } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: atomic_signal_fence(memory_order __m) noexcept 8737: { __atomic_signal_fence(__m); } 8737: 8737: 8737: template 8737: inline _Tp 8737: kill_dependency(_Tp __y) noexcept 8737: { 8737: _Tp __ret(__y); 8737: return __ret; 8737: } 8737: 8737: 8737: 8737: template 8737: struct __atomic_base; 8737: 8737: 8737: 8737: 8737: template 8737: struct atomic; 8737: 8737: template 8737: struct atomic<_Tp*>; 8737: 8737: 8737: 8737: typedef bool __atomic_flag_data_type; 8737: # 148 "/usr/include/c++/8/bits/atomic_base.h" 3 8737: extern "C" { 8737: 8737: struct __atomic_flag_base 8737: { 8737: __atomic_flag_data_type _M_i; 8737: }; 8737: 8737: } 8737: 8737: 8737: 8737: 8737: struct atomic_flag : public __atomic_flag_base 8737: { 8737: atomic_flag() noexcept = default; 8737: ~atomic_flag() noexcept = default; 8737: atomic_flag(const atomic_flag&) = delete; 8737: atomic_flag& operator=(const atomic_flag&) = delete; 8737: atomic_flag& operator=(const atomic_flag&) volatile = delete; 8737: 8737: 8737: constexpr atomic_flag(bool __i) noexcept 8737: : __atomic_flag_base{ _S_init(__i) } 8737: { } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return __atomic_test_and_set (&_M_i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return __atomic_test_and_set (&_M_i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: clear(memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: __atomic_clear (&_M_i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: __atomic_clear (&_M_i, __m); 8737: } 8737: 8737: private: 8737: static constexpr __atomic_flag_data_type 8737: _S_init(bool __i) 8737: { return __i ? 1 : 0; } 8737: }; 8737: # 237 "/usr/include/c++/8/bits/atomic_base.h" 3 8737: template 8737: struct __atomic_base 8737: { 8737: private: 8737: typedef _ITp __int_type; 8737: 8737: static constexpr int _S_alignment = 8737: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 8737: 8737: alignas(_S_alignment) __int_type _M_i; 8737: 8737: public: 8737: __atomic_base() noexcept = default; 8737: ~__atomic_base() noexcept = default; 8737: __atomic_base(const __atomic_base&) = delete; 8737: __atomic_base& operator=(const __atomic_base&) = delete; 8737: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8737: 8737: 8737: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 8737: 8737: operator __int_type() const noexcept 8737: { return load(); } 8737: 8737: operator __int_type() const volatile noexcept 8737: { return load(); } 8737: 8737: __int_type 8737: operator=(__int_type __i) noexcept 8737: { 8737: store(__i); 8737: return __i; 8737: } 8737: 8737: __int_type 8737: operator=(__int_type __i) volatile noexcept 8737: { 8737: store(__i); 8737: return __i; 8737: } 8737: 8737: __int_type 8737: operator++(int) noexcept 8737: { return fetch_add(1); } 8737: 8737: __int_type 8737: operator++(int) volatile noexcept 8737: { return fetch_add(1); } 8737: 8737: __int_type 8737: operator--(int) noexcept 8737: { return fetch_sub(1); } 8737: 8737: __int_type 8737: operator--(int) volatile noexcept 8737: { return fetch_sub(1); } 8737: 8737: __int_type 8737: operator++() noexcept 8737: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator++() volatile noexcept 8737: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator--() noexcept 8737: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator--() volatile noexcept 8737: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator+=(__int_type __i) noexcept 8737: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator+=(__int_type __i) volatile noexcept 8737: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator-=(__int_type __i) noexcept 8737: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator-=(__int_type __i) volatile noexcept 8737: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator&=(__int_type __i) noexcept 8737: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator&=(__int_type __i) volatile noexcept 8737: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator|=(__int_type __i) noexcept 8737: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator|=(__int_type __i) volatile noexcept 8737: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator^=(__int_type __i) noexcept 8737: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: __int_type 8737: operator^=(__int_type __i) volatile noexcept 8737: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8737: 8737: bool 8737: is_lock_free() const noexcept 8737: { 8737: 8737: return __atomic_is_lock_free(sizeof(_M_i), 8737: reinterpret_cast(-__alignof(_M_i))); 8737: } 8737: 8737: bool 8737: is_lock_free() const volatile noexcept 8737: { 8737: 8737: return __atomic_is_lock_free(sizeof(_M_i), 8737: reinterpret_cast(-__alignof(_M_i))); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: __atomic_store_n(&_M_i, __i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: store(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: __atomic_store_n(&_M_i, __i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: load(memory_order __m = memory_order_seq_cst) const noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: 8737: return __atomic_load_n(&_M_i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: 8737: return __atomic_load_n(&_M_i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: exchange(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return __atomic_exchange_n(&_M_i, __i, __m); 8737: } 8737: 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: exchange(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return __atomic_exchange_n(&_M_i, __i, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8737: memory_order __m1, memory_order __m2) noexcept 8737: { 8737: memory_order __b2 = __m2 & __memory_order_mask; 8737: memory_order __b1 = __m1 & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8737: memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { 8737: memory_order __b2 = __m2 & __memory_order_mask; 8737: memory_order __b1 = __m1 & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return compare_exchange_weak(__i1, __i2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return compare_exchange_weak(__i1, __i2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8737: memory_order __m1, memory_order __m2) noexcept 8737: { 8737: memory_order __b2 = __m2 & __memory_order_mask; 8737: memory_order __b1 = __m1 & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8737: memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { 8737: memory_order __b2 = __m2 & __memory_order_mask; 8737: memory_order __b1 = __m1 & __memory_order_mask; 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return compare_exchange_strong(__i1, __i2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return compare_exchange_strong(__i1, __i2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_add(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_add(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_add(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_add(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_sub(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_sub(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_and(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_and(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_and(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_and(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_or(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_or(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_or(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_or(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_xor(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8737: 8737: inline __attribute__((__always_inline__)) __int_type 8737: fetch_xor(__int_type __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8737: }; 8737: 8737: 8737: 8737: template 8737: struct __atomic_base<_PTp*> 8737: { 8737: private: 8737: typedef _PTp* __pointer_type; 8737: 8737: __pointer_type _M_p; 8737: 8737: 8737: constexpr ptrdiff_t 8737: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 8737: 8737: constexpr ptrdiff_t 8737: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 8737: 8737: public: 8737: __atomic_base() noexcept = default; 8737: ~__atomic_base() noexcept = default; 8737: __atomic_base(const __atomic_base&) = delete; 8737: __atomic_base& operator=(const __atomic_base&) = delete; 8737: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8737: 8737: 8737: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 8737: 8737: operator __pointer_type() const noexcept 8737: { return load(); } 8737: 8737: operator __pointer_type() const volatile noexcept 8737: { return load(); } 8737: 8737: __pointer_type 8737: operator=(__pointer_type __p) noexcept 8737: { 8737: store(__p); 8737: return __p; 8737: } 8737: 8737: __pointer_type 8737: operator=(__pointer_type __p) volatile noexcept 8737: { 8737: store(__p); 8737: return __p; 8737: } 8737: 8737: __pointer_type 8737: operator++(int) noexcept 8737: { return fetch_add(1); } 8737: 8737: __pointer_type 8737: operator++(int) volatile noexcept 8737: { return fetch_add(1); } 8737: 8737: __pointer_type 8737: operator--(int) noexcept 8737: { return fetch_sub(1); } 8737: 8737: __pointer_type 8737: operator--(int) volatile noexcept 8737: { return fetch_sub(1); } 8737: 8737: __pointer_type 8737: operator++() noexcept 8737: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator++() volatile noexcept 8737: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator--() noexcept 8737: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator--() volatile noexcept 8737: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator+=(ptrdiff_t __d) noexcept 8737: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator+=(ptrdiff_t __d) volatile noexcept 8737: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator-=(ptrdiff_t __d) noexcept 8737: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8737: memory_order_seq_cst); } 8737: 8737: __pointer_type 8737: operator-=(ptrdiff_t __d) volatile noexcept 8737: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8737: memory_order_seq_cst); } 8737: 8737: bool 8737: is_lock_free() const noexcept 8737: { 8737: 8737: return __atomic_is_lock_free(sizeof(_M_p), 8737: reinterpret_cast(-__alignof(_M_p))); 8737: } 8737: 8737: bool 8737: is_lock_free() const volatile noexcept 8737: { 8737: 8737: return __atomic_is_lock_free(sizeof(_M_p), 8737: reinterpret_cast(-__alignof(_M_p))); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: store(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: __atomic_store_n(&_M_p, __p, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) void 8737: store(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: __atomic_store_n(&_M_p, __p, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: load(memory_order __m = memory_order_seq_cst) const noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: 8737: return __atomic_load_n(&_M_p, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8737: { 8737: memory_order __b = __m & __memory_order_mask; 8737: ; 8737: ; 8737: 8737: return __atomic_load_n(&_M_p, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: exchange(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return __atomic_exchange_n(&_M_p, __p, __m); 8737: } 8737: 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: exchange(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return __atomic_exchange_n(&_M_p, __p, __m); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m1, 8737: memory_order __m2) noexcept 8737: { 8737: memory_order __b2 = __m2 & __memory_order_mask; 8737: memory_order __b1 = __m1 & __memory_order_mask; 8737: ; 8737: ; 8737: ; 8737: 8737: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) bool 8737: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { 8737: memory_order __b2 = __m2 & __memory_order_mask; 8737: memory_order __b1 = __m1 & __memory_order_mask; 8737: 8737: ; 8737: ; 8737: ; 8737: 8737: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8737: } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: fetch_add(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: fetch_add(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: fetch_sub(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8737: 8737: inline __attribute__((__always_inline__)) __pointer_type 8737: fetch_sub(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8737: }; 8737: 8737: 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/atomic" 2 3 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 57 "/usr/include/c++/8/atomic" 3 8737: template 8737: struct atomic; 8737: 8737: 8737: 8737: template<> 8737: struct atomic 8737: { 8737: private: 8737: __atomic_base _M_base; 8737: 8737: public: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(bool __i) noexcept : _M_base(__i) { } 8737: 8737: bool 8737: operator=(bool __i) noexcept 8737: { return _M_base.operator=(__i); } 8737: 8737: bool 8737: operator=(bool __i) volatile noexcept 8737: { return _M_base.operator=(__i); } 8737: 8737: operator bool() const noexcept 8737: { return _M_base.load(); } 8737: 8737: operator bool() const volatile noexcept 8737: { return _M_base.load(); } 8737: 8737: bool 8737: is_lock_free() const noexcept { return _M_base.is_lock_free(); } 8737: 8737: bool 8737: is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); } 8737: 8737: 8737: 8737: 8737: 8737: void 8737: store(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8737: { _M_base.store(__i, __m); } 8737: 8737: void 8737: store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { _M_base.store(__i, __m); } 8737: 8737: bool 8737: load(memory_order __m = memory_order_seq_cst) const noexcept 8737: { return _M_base.load(__m); } 8737: 8737: bool 8737: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8737: { return _M_base.load(__m); } 8737: 8737: bool 8737: exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_base.exchange(__i, __m); } 8737: 8737: bool 8737: exchange(bool __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_base.exchange(__i, __m); } 8737: 8737: bool 8737: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8737: memory_order __m2) noexcept 8737: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_weak(bool& __i1, bool __i2, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8737: 8737: bool 8737: compare_exchange_weak(bool& __i1, bool __i2, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8737: 8737: bool 8737: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8737: memory_order __m2) noexcept 8737: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_strong(bool& __i1, bool __i2, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8737: 8737: bool 8737: compare_exchange_strong(bool& __i1, bool __i2, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct atomic 8737: { 8737: private: 8737: 8737: static constexpr int _S_min_alignment 8737: = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 8737: ? 0 : sizeof(_Tp); 8737: 8737: static constexpr int _S_alignment 8737: = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); 8737: 8737: alignas(_S_alignment) _Tp _M_i; 8737: 8737: static_assert(__is_trivially_copyable(_Tp), 8737: "std::atomic requires a trivially copyable type"); 8737: 8737: static_assert(sizeof(_Tp) > 0, 8737: "Incomplete or zero-sized types are not supported"); 8737: 8737: public: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(_Tp __i) noexcept : _M_i(__i) { } 8737: 8737: operator _Tp() const noexcept 8737: { return load(); } 8737: 8737: operator _Tp() const volatile noexcept 8737: { return load(); } 8737: 8737: _Tp 8737: operator=(_Tp __i) noexcept 8737: { store(__i); return __i; } 8737: 8737: _Tp 8737: operator=(_Tp __i) volatile noexcept 8737: { store(__i); return __i; } 8737: 8737: bool 8737: is_lock_free() const noexcept 8737: { 8737: 8737: return __atomic_is_lock_free(sizeof(_M_i), 8737: reinterpret_cast(-__alignof(_M_i))); 8737: } 8737: 8737: bool 8737: is_lock_free() const volatile noexcept 8737: { 8737: 8737: return __atomic_is_lock_free(sizeof(_M_i), 8737: reinterpret_cast(-__alignof(_M_i))); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: store(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8737: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8737: 8737: void 8737: store(_Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8737: 8737: _Tp 8737: load(memory_order __m = memory_order_seq_cst) const noexcept 8737: { 8737: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8737: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8737: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8737: return *__ptr; 8737: } 8737: 8737: _Tp 8737: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8737: { 8737: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8737: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8737: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8737: return *__ptr; 8737: } 8737: 8737: _Tp 8737: exchange(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8737: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8737: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8737: __ptr, __m); 8737: return *__ptr; 8737: } 8737: 8737: _Tp 8737: exchange(_Tp __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8737: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8737: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8737: __ptr, __m); 8737: return *__ptr; 8737: } 8737: 8737: bool 8737: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8737: memory_order __f) noexcept 8737: { 8737: return __atomic_compare_exchange(std::__addressof(_M_i), 8737: std::__addressof(__e), 8737: std::__addressof(__i), 8737: true, __s, __f); 8737: } 8737: 8737: bool 8737: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8737: memory_order __f) volatile noexcept 8737: { 8737: return __atomic_compare_exchange(std::__addressof(_M_i), 8737: std::__addressof(__e), 8737: std::__addressof(__i), 8737: true, __s, __f); 8737: } 8737: 8737: bool 8737: compare_exchange_weak(_Tp& __e, _Tp __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return compare_exchange_weak(__e, __i, __m, 8737: __cmpexch_failure_order(__m)); } 8737: 8737: bool 8737: compare_exchange_weak(_Tp& __e, _Tp __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return compare_exchange_weak(__e, __i, __m, 8737: __cmpexch_failure_order(__m)); } 8737: 8737: bool 8737: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8737: memory_order __f) noexcept 8737: { 8737: return __atomic_compare_exchange(std::__addressof(_M_i), 8737: std::__addressof(__e), 8737: std::__addressof(__i), 8737: false, __s, __f); 8737: } 8737: 8737: bool 8737: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8737: memory_order __f) volatile noexcept 8737: { 8737: return __atomic_compare_exchange(std::__addressof(_M_i), 8737: std::__addressof(__e), 8737: std::__addressof(__i), 8737: false, __s, __f); 8737: } 8737: 8737: bool 8737: compare_exchange_strong(_Tp& __e, _Tp __i, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return compare_exchange_strong(__e, __i, __m, 8737: __cmpexch_failure_order(__m)); } 8737: 8737: bool 8737: compare_exchange_strong(_Tp& __e, _Tp __i, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return compare_exchange_strong(__e, __i, __m, 8737: __cmpexch_failure_order(__m)); } 8737: }; 8737: 8737: 8737: 8737: template 8737: struct atomic<_Tp*> 8737: { 8737: typedef _Tp* __pointer_type; 8737: typedef __atomic_base<_Tp*> __base_type; 8737: __base_type _M_b; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__pointer_type __p) noexcept : _M_b(__p) { } 8737: 8737: operator __pointer_type() const noexcept 8737: { return __pointer_type(_M_b); } 8737: 8737: operator __pointer_type() const volatile noexcept 8737: { return __pointer_type(_M_b); } 8737: 8737: __pointer_type 8737: operator=(__pointer_type __p) noexcept 8737: { return _M_b.operator=(__p); } 8737: 8737: __pointer_type 8737: operator=(__pointer_type __p) volatile noexcept 8737: { return _M_b.operator=(__p); } 8737: 8737: __pointer_type 8737: operator++(int) noexcept 8737: { return _M_b++; } 8737: 8737: __pointer_type 8737: operator++(int) volatile noexcept 8737: { return _M_b++; } 8737: 8737: __pointer_type 8737: operator--(int) noexcept 8737: { return _M_b--; } 8737: 8737: __pointer_type 8737: operator--(int) volatile noexcept 8737: { return _M_b--; } 8737: 8737: __pointer_type 8737: operator++() noexcept 8737: { return ++_M_b; } 8737: 8737: __pointer_type 8737: operator++() volatile noexcept 8737: { return ++_M_b; } 8737: 8737: __pointer_type 8737: operator--() noexcept 8737: { return --_M_b; } 8737: 8737: __pointer_type 8737: operator--() volatile noexcept 8737: { return --_M_b; } 8737: 8737: __pointer_type 8737: operator+=(ptrdiff_t __d) noexcept 8737: { return _M_b.operator+=(__d); } 8737: 8737: __pointer_type 8737: operator+=(ptrdiff_t __d) volatile noexcept 8737: { return _M_b.operator+=(__d); } 8737: 8737: __pointer_type 8737: operator-=(ptrdiff_t __d) noexcept 8737: { return _M_b.operator-=(__d); } 8737: 8737: __pointer_type 8737: operator-=(ptrdiff_t __d) volatile noexcept 8737: { return _M_b.operator-=(__d); } 8737: 8737: bool 8737: is_lock_free() const noexcept 8737: { return _M_b.is_lock_free(); } 8737: 8737: bool 8737: is_lock_free() const volatile noexcept 8737: { return _M_b.is_lock_free(); } 8737: 8737: 8737: 8737: 8737: 8737: void 8737: store(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_b.store(__p, __m); } 8737: 8737: void 8737: store(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_b.store(__p, __m); } 8737: 8737: __pointer_type 8737: load(memory_order __m = memory_order_seq_cst) const noexcept 8737: { return _M_b.load(__m); } 8737: 8737: __pointer_type 8737: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8737: { return _M_b.load(__m); } 8737: 8737: __pointer_type 8737: exchange(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_b.exchange(__p, __m); } 8737: 8737: __pointer_type 8737: exchange(__pointer_type __p, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_b.exchange(__p, __m); } 8737: 8737: bool 8737: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m1, memory_order __m2) noexcept 8737: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return compare_exchange_weak(__p1, __p2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: bool 8737: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return compare_exchange_weak(__p1, __p2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: bool 8737: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m1, memory_order __m2) noexcept 8737: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m1, 8737: memory_order __m2) volatile noexcept 8737: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8737: 8737: bool 8737: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { 8737: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: bool 8737: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { 8737: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8737: __cmpexch_failure_order(__m)); 8737: } 8737: 8737: __pointer_type 8737: fetch_add(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_b.fetch_add(__d, __m); } 8737: 8737: __pointer_type 8737: fetch_add(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_b.fetch_add(__d, __m); } 8737: 8737: __pointer_type 8737: fetch_sub(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) noexcept 8737: { return _M_b.fetch_sub(__d, __m); } 8737: 8737: __pointer_type 8737: fetch_sub(ptrdiff_t __d, 8737: memory_order __m = memory_order_seq_cst) volatile noexcept 8737: { return _M_b.fetch_sub(__d, __m); } 8737: }; 8737: 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef char __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef signed char __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept= default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef unsigned char __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept= default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef short __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef unsigned short __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef int __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef unsigned int __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef long __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef unsigned long __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef long long __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef unsigned long long __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef wchar_t __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef char16_t __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: template<> 8737: struct atomic : __atomic_base 8737: { 8737: typedef char32_t __integral_type; 8737: typedef __atomic_base __base_type; 8737: 8737: atomic() noexcept = default; 8737: ~atomic() noexcept = default; 8737: atomic(const atomic&) = delete; 8737: atomic& operator=(const atomic&) = delete; 8737: atomic& operator=(const atomic&) volatile = delete; 8737: 8737: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8737: 8737: using __base_type::operator __integral_type; 8737: using __base_type::operator=; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: 8737: typedef atomic atomic_bool; 8737: 8737: 8737: typedef atomic atomic_char; 8737: 8737: 8737: typedef atomic atomic_schar; 8737: 8737: 8737: typedef atomic atomic_uchar; 8737: 8737: 8737: typedef atomic atomic_short; 8737: 8737: 8737: typedef atomic atomic_ushort; 8737: 8737: 8737: typedef atomic atomic_int; 8737: 8737: 8737: typedef atomic atomic_uint; 8737: 8737: 8737: typedef atomic atomic_long; 8737: 8737: 8737: typedef atomic atomic_ulong; 8737: 8737: 8737: typedef atomic atomic_llong; 8737: 8737: 8737: typedef atomic atomic_ullong; 8737: 8737: 8737: typedef atomic atomic_wchar_t; 8737: 8737: 8737: typedef atomic atomic_char16_t; 8737: 8737: 8737: typedef atomic atomic_char32_t; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef atomic atomic_int8_t; 8737: 8737: 8737: typedef atomic atomic_uint8_t; 8737: 8737: 8737: typedef atomic atomic_int16_t; 8737: 8737: 8737: typedef atomic atomic_uint16_t; 8737: 8737: 8737: typedef atomic atomic_int32_t; 8737: 8737: 8737: typedef atomic atomic_uint32_t; 8737: 8737: 8737: typedef atomic atomic_int64_t; 8737: 8737: 8737: typedef atomic atomic_uint64_t; 8737: 8737: 8737: 8737: typedef atomic atomic_int_least8_t; 8737: 8737: 8737: typedef atomic atomic_uint_least8_t; 8737: 8737: 8737: typedef atomic atomic_int_least16_t; 8737: 8737: 8737: typedef atomic atomic_uint_least16_t; 8737: 8737: 8737: typedef atomic atomic_int_least32_t; 8737: 8737: 8737: typedef atomic atomic_uint_least32_t; 8737: 8737: 8737: typedef atomic atomic_int_least64_t; 8737: 8737: 8737: typedef atomic atomic_uint_least64_t; 8737: 8737: 8737: 8737: typedef atomic atomic_int_fast8_t; 8737: 8737: 8737: typedef atomic atomic_uint_fast8_t; 8737: 8737: 8737: typedef atomic atomic_int_fast16_t; 8737: 8737: 8737: typedef atomic atomic_uint_fast16_t; 8737: 8737: 8737: typedef atomic atomic_int_fast32_t; 8737: 8737: 8737: typedef atomic atomic_uint_fast32_t; 8737: 8737: 8737: typedef atomic atomic_int_fast64_t; 8737: 8737: 8737: typedef atomic atomic_uint_fast64_t; 8737: 8737: 8737: 8737: 8737: typedef atomic atomic_intptr_t; 8737: 8737: 8737: typedef atomic atomic_uintptr_t; 8737: 8737: 8737: typedef atomic atomic_size_t; 8737: 8737: 8737: typedef atomic atomic_ptrdiff_t; 8737: 8737: 8737: 8737: typedef atomic atomic_intmax_t; 8737: 8737: 8737: typedef atomic atomic_uintmax_t; 8737: 8737: 8737: 8737: inline bool 8737: atomic_flag_test_and_set_explicit(atomic_flag* __a, 8737: memory_order __m) noexcept 8737: { return __a->test_and_set(__m); } 8737: 8737: inline bool 8737: atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, 8737: memory_order __m) noexcept 8737: { return __a->test_and_set(__m); } 8737: 8737: inline void 8737: atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept 8737: { __a->clear(__m); } 8737: 8737: inline void 8737: atomic_flag_clear_explicit(volatile atomic_flag* __a, 8737: memory_order __m) noexcept 8737: { __a->clear(__m); } 8737: 8737: inline bool 8737: atomic_flag_test_and_set(atomic_flag* __a) noexcept 8737: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8737: 8737: inline bool 8737: atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept 8737: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8737: 8737: inline void 8737: atomic_flag_clear(atomic_flag* __a) noexcept 8737: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8737: 8737: inline void 8737: atomic_flag_clear(volatile atomic_flag* __a) noexcept 8737: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8737: 8737: 8737: 8737: template 8737: inline bool 8737: atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 8737: { return __a->is_lock_free(); } 8737: 8737: template 8737: inline bool 8737: atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept 8737: { return __a->is_lock_free(); } 8737: 8737: template 8737: inline void 8737: atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept 8737: { __a->store(__i, memory_order_relaxed); } 8737: 8737: template 8737: inline void 8737: atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8737: { __a->store(__i, memory_order_relaxed); } 8737: 8737: template 8737: inline void 8737: atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { __a->store(__i, __m); } 8737: 8737: template 8737: inline void 8737: atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { __a->store(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept 8737: { return __a->load(__m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_load_explicit(const volatile atomic<_ITp>* __a, 8737: memory_order __m) noexcept 8737: { return __a->load(__m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->exchange(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->exchange(__i, __m); } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2, 8737: memory_order __m1, 8737: memory_order __m2) noexcept 8737: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2, 8737: memory_order __m1, 8737: memory_order __m2) noexcept 8737: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2, 8737: memory_order __m1, 8737: memory_order __m2) noexcept 8737: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2, 8737: memory_order __m1, 8737: memory_order __m2) noexcept 8737: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8737: 8737: 8737: template 8737: inline void 8737: atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept 8737: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline void 8737: atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8737: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_load(const atomic<_ITp>* __a) noexcept 8737: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_load(const volatile atomic<_ITp>* __a) noexcept 8737: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak(atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2) noexcept 8737: { 8737: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8737: memory_order_seq_cst, 8737: memory_order_seq_cst); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2) noexcept 8737: { 8737: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8737: memory_order_seq_cst, 8737: memory_order_seq_cst); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_strong(atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2) noexcept 8737: { 8737: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8737: memory_order_seq_cst, 8737: memory_order_seq_cst); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, 8737: _ITp* __i1, _ITp __i2) noexcept 8737: { 8737: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8737: memory_order_seq_cst, 8737: memory_order_seq_cst); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_add(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_add(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_sub(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_sub(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_and(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_and(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_or(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_or(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_xor(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8737: memory_order __m) noexcept 8737: { return __a->fetch_xor(__i, __m); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: template 8737: inline _ITp 8737: atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8737: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8737: 8737: 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8737: memory_order __m) noexcept 8737: { return __a->fetch_add(__d, __m); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d, 8737: memory_order __m) noexcept 8737: { return __a->fetch_add(__d, __m); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8737: { return __a->fetch_add(__d); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8737: { return __a->fetch_add(__d); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a, 8737: ptrdiff_t __d, memory_order __m) noexcept 8737: { return __a->fetch_sub(__d, __m); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8737: memory_order __m) noexcept 8737: { return __a->fetch_sub(__d, __m); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8737: { return __a->fetch_sub(__d); } 8737: 8737: template 8737: inline _ITp* 8737: atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8737: { return __a->fetch_sub(__d); } 8737: 8737: 8737: 8737: } 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8737: 8737: 8737: # 75 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: template struct QAtomicTraits 8737: { static constexpr inline bool isLockFree(); }; 8737: # 89 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: template <> constexpr inline bool QAtomicTraits<4>::isLockFree() 8737: { return true; } 8737: # 134 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: template<> struct QAtomicOpsSupport<1> { enum { IsSupported = 1 }; }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template <> constexpr inline bool QAtomicTraits<1>::isLockFree() 8737: { return true; } 8737: # 162 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: template<> struct QAtomicOpsSupport<2> { enum { IsSupported = 1 }; }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template <> constexpr inline bool QAtomicTraits<2>::isLockFree() 8737: { return false; } 8737: # 191 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: template<> struct QAtomicOpsSupport<8> { enum { IsSupported = 1 }; }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template <> constexpr inline bool QAtomicTraits<8>::isLockFree() 8737: { return true; } 8737: # 220 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8737: template struct QAtomicOps 8737: { 8737: typedef std::atomic Type; 8737: 8737: template static inline 8737: T load(const std::atomic &_q_value) noexcept 8737: { 8737: return _q_value.load(std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T load(const volatile std::atomic &_q_value) noexcept 8737: { 8737: return _q_value.load(std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T loadAcquire(const std::atomic &_q_value) noexcept 8737: { 8737: return _q_value.load(std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: T loadAcquire(const volatile std::atomic &_q_value) noexcept 8737: { 8737: return _q_value.load(std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: void store(std::atomic &_q_value, T newValue) noexcept 8737: { 8737: _q_value.store(newValue, std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: void storeRelease(std::atomic &_q_value, T newValue) noexcept 8737: { 8737: _q_value.store(newValue, std::memory_order_release); 8737: } 8737: 8737: static inline constexpr bool isReferenceCountingNative() noexcept { return isTestAndSetNative(); } 8737: static inline constexpr bool isReferenceCountingWaitFree() noexcept { return false; } 8737: template 8737: static inline bool ref(std::atomic &_q_value) 8737: { 8737: return ++_q_value != 0; 8737: } 8737: 8737: template 8737: static inline bool deref(std::atomic &_q_value) noexcept 8737: { 8737: return --_q_value != 0; 8737: } 8737: 8737: static inline constexpr bool isTestAndSetNative() noexcept 8737: { return QAtomicTraits::isLockFree(); } 8737: static inline constexpr bool isTestAndSetWaitFree() noexcept { return false; } 8737: 8737: template 8737: static bool testAndSetRelaxed(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8737: { 8737: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed, std::memory_order_relaxed); 8737: if (currentValue) 8737: *currentValue = expectedValue; 8737: return tmp; 8737: } 8737: 8737: template 8737: static bool testAndSetAcquire(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8737: { 8737: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire, std::memory_order_acquire); 8737: if (currentValue) 8737: *currentValue = expectedValue; 8737: return tmp; 8737: } 8737: 8737: template 8737: static bool testAndSetRelease(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8737: { 8737: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release, std::memory_order_relaxed); 8737: if (currentValue) 8737: *currentValue = expectedValue; 8737: return tmp; 8737: } 8737: 8737: template 8737: static bool testAndSetOrdered(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8737: { 8737: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel, std::memory_order_acquire); 8737: if (currentValue) 8737: *currentValue = expectedValue; 8737: return tmp; 8737: } 8737: 8737: static inline constexpr bool isFetchAndStoreNative() noexcept { return isTestAndSetNative(); } 8737: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8737: 8737: template 8737: static T fetchAndStoreRelaxed(std::atomic &_q_value, T newValue) noexcept 8737: { 8737: return _q_value.exchange(newValue, std::memory_order_relaxed); 8737: } 8737: 8737: template 8737: static T fetchAndStoreAcquire(std::atomic &_q_value, T newValue) noexcept 8737: { 8737: return _q_value.exchange(newValue, std::memory_order_acquire); 8737: } 8737: 8737: template 8737: static T fetchAndStoreRelease(std::atomic &_q_value, T newValue) noexcept 8737: { 8737: return _q_value.exchange(newValue, std::memory_order_release); 8737: } 8737: 8737: template 8737: static T fetchAndStoreOrdered(std::atomic &_q_value, T newValue) noexcept 8737: { 8737: return _q_value.exchange(newValue, std::memory_order_acq_rel); 8737: } 8737: 8737: static inline constexpr bool isFetchAndAddNative() noexcept { return isTestAndSetNative(); } 8737: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8737: 8737: template static inline 8737: T fetchAndAddRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_add(valueToAdd, std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T fetchAndAddAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_add(valueToAdd, std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: T fetchAndAddRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_add(valueToAdd, std::memory_order_release); 8737: } 8737: 8737: template static inline 8737: T fetchAndAddOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_add(valueToAdd, std::memory_order_acq_rel); 8737: } 8737: 8737: template static inline 8737: T fetchAndSubRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_sub(valueToAdd, std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T fetchAndSubAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_sub(valueToAdd, std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: T fetchAndSubRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_sub(valueToAdd, std::memory_order_release); 8737: } 8737: 8737: template static inline 8737: T fetchAndSubOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_sub(valueToAdd, std::memory_order_acq_rel); 8737: } 8737: 8737: template static inline 8737: T fetchAndAndRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_and(valueToAdd, std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T fetchAndAndAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_and(valueToAdd, std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: T fetchAndAndRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_and(valueToAdd, std::memory_order_release); 8737: } 8737: 8737: template static inline 8737: T fetchAndAndOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_and(valueToAdd, std::memory_order_acq_rel); 8737: } 8737: 8737: template static inline 8737: T fetchAndOrRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_or(valueToAdd, std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T fetchAndOrAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_or(valueToAdd, std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: T fetchAndOrRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_or(valueToAdd, std::memory_order_release); 8737: } 8737: 8737: template static inline 8737: T fetchAndOrOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_or(valueToAdd, std::memory_order_acq_rel); 8737: } 8737: 8737: template static inline 8737: T fetchAndXorRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_xor(valueToAdd, std::memory_order_relaxed); 8737: } 8737: 8737: template static inline 8737: T fetchAndXorAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_xor(valueToAdd, std::memory_order_acquire); 8737: } 8737: 8737: template static inline 8737: T fetchAndXorRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_xor(valueToAdd, std::memory_order_release); 8737: } 8737: 8737: template static inline 8737: T fetchAndXorOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8737: { 8737: return _q_value.fetch_xor(valueToAdd, std::memory_order_acq_rel); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 2 3 4 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: 8737: 8737: 8737: 8737: # 89 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: template 8737: class QBasicAtomicInteger 8737: { 8737: public: 8737: typedef QAtomicOps Ops; 8737: 8737: static_assert(bool(QTypeInfo::isIntegral), "template parameter is not an integral type"); 8737: static_assert(bool(QAtomicOpsSupport::IsSupported), "template parameter is an integral of a size not supported on this platform"); 8737: 8737: typename Ops::Type _q_value; 8737: 8737: 8737: 8737: T load() const noexcept { return Ops::load(_q_value); } 8737: void store(T newValue) noexcept { Ops::store(_q_value, newValue); } 8737: 8737: T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8737: void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8737: operator T() const noexcept { return loadAcquire(); } 8737: T operator=(T newValue) noexcept { storeRelease(newValue); return newValue; } 8737: 8737: static constexpr bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); } 8737: static constexpr bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); } 8737: 8737: bool ref() noexcept { return Ops::ref(_q_value); } 8737: bool deref() noexcept { return Ops::deref(_q_value); } 8737: 8737: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8737: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8737: 8737: bool testAndSetRelaxed(T expectedValue, T newValue) noexcept 8737: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8737: bool testAndSetAcquire(T expectedValue, T newValue) noexcept 8737: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8737: bool testAndSetRelease(T expectedValue, T newValue) noexcept 8737: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8737: bool testAndSetOrdered(T expectedValue, T newValue) noexcept 8737: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8737: 8737: bool testAndSetRelaxed(T expectedValue, T newValue, T ¤tValue) noexcept 8737: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8737: bool testAndSetAcquire(T expectedValue, T newValue, T ¤tValue) noexcept 8737: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8737: bool testAndSetRelease(T expectedValue, T newValue, T ¤tValue) noexcept 8737: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8737: bool testAndSetOrdered(T expectedValue, T newValue, T ¤tValue) noexcept 8737: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8737: 8737: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8737: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8737: 8737: T fetchAndStoreRelaxed(T newValue) noexcept 8737: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8737: T fetchAndStoreAcquire(T newValue) noexcept 8737: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8737: T fetchAndStoreRelease(T newValue) noexcept 8737: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8737: T fetchAndStoreOrdered(T newValue) noexcept 8737: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8737: 8737: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8737: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8737: 8737: T fetchAndAddRelaxed(T valueToAdd) noexcept 8737: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8737: T fetchAndAddAcquire(T valueToAdd) noexcept 8737: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8737: T fetchAndAddRelease(T valueToAdd) noexcept 8737: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8737: T fetchAndAddOrdered(T valueToAdd) noexcept 8737: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8737: 8737: T fetchAndSubRelaxed(T valueToAdd) noexcept 8737: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8737: T fetchAndSubAcquire(T valueToAdd) noexcept 8737: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8737: T fetchAndSubRelease(T valueToAdd) noexcept 8737: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8737: T fetchAndSubOrdered(T valueToAdd) noexcept 8737: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8737: 8737: T fetchAndAndRelaxed(T valueToAdd) noexcept 8737: { return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); } 8737: T fetchAndAndAcquire(T valueToAdd) noexcept 8737: { return Ops::fetchAndAndAcquire(_q_value, valueToAdd); } 8737: T fetchAndAndRelease(T valueToAdd) noexcept 8737: { return Ops::fetchAndAndRelease(_q_value, valueToAdd); } 8737: T fetchAndAndOrdered(T valueToAdd) noexcept 8737: { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); } 8737: 8737: T fetchAndOrRelaxed(T valueToAdd) noexcept 8737: { return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); } 8737: T fetchAndOrAcquire(T valueToAdd) noexcept 8737: { return Ops::fetchAndOrAcquire(_q_value, valueToAdd); } 8737: T fetchAndOrRelease(T valueToAdd) noexcept 8737: { return Ops::fetchAndOrRelease(_q_value, valueToAdd); } 8737: T fetchAndOrOrdered(T valueToAdd) noexcept 8737: { return Ops::fetchAndOrOrdered(_q_value, valueToAdd); } 8737: 8737: T fetchAndXorRelaxed(T valueToAdd) noexcept 8737: { return Ops::fetchAndXorRelaxed(_q_value, v[ 93%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/ifequal.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 alueToAdd); } 8737: T fetchAndXorAcquire(T valueToAdd) noexcept 8737: { return Ops::fetchAndXorAcquire(_q_value, valueToAdd); } 8737: T fetchAndXorRelease(T valueToAdd) noexcept 8737: { return Ops::fetchAndXorRelease(_q_value, valueToAdd); } 8737: T fetchAndXorOrdered(T valueToAdd) noexcept 8737: { return Ops::fetchAndXorOrdered(_q_value, valueToAdd); } 8737: 8737: T operator++() noexcept 8737: { return fetchAndAddOrdered(1) + 1; } 8737: T operator++(int) noexcept 8737: { return fetchAndAddOrdered(1); } 8737: T operator--() noexcept 8737: { return fetchAndSubOrdered(1) - 1; } 8737: T operator--(int) noexcept 8737: { return fetchAndSubOrdered(1); } 8737: 8737: T operator+=(T v) noexcept 8737: { return fetchAndAddOrdered(v) + v; } 8737: T operator-=(T v) noexcept 8737: { return fetchAndSubOrdered(v) - v; } 8737: T operator&=(T v) noexcept 8737: { return fetchAndAndOrdered(v) & v; } 8737: T operator|=(T v) noexcept 8737: { return fetchAndOrOrdered(v) | v; } 8737: T operator^=(T v) noexcept 8737: { return fetchAndXorOrdered(v) ^ v; } 8737: 8737: 8737: 8737: QBasicAtomicInteger() = default; 8737: constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {} 8737: QBasicAtomicInteger(const QBasicAtomicInteger &) = delete; 8737: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete; 8737: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete; 8737: 8737: }; 8737: typedef QBasicAtomicInteger QBasicAtomicInt; 8737: 8737: template 8737: class QBasicAtomicPointer 8737: { 8737: public: 8737: typedef X *Type; 8737: typedef QAtomicOps Ops; 8737: typedef typename Ops::Type AtomicType; 8737: 8737: AtomicType _q_value; 8737: 8737: Type load() const noexcept { return Ops::load(_q_value); } 8737: void store(Type newValue) noexcept { Ops::store(_q_value, newValue); } 8737: operator Type() const noexcept { return loadAcquire(); } 8737: Type operator=(Type newValue) noexcept { storeRelease(newValue); return newValue; } 8737: 8737: 8737: Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8737: void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8737: 8737: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8737: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8737: 8737: bool testAndSetRelaxed(Type expectedValue, Type newValue) noexcept 8737: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8737: bool testAndSetAcquire(Type expectedValue, Type newValue) noexcept 8737: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8737: bool testAndSetRelease(Type expectedValue, Type newValue) noexcept 8737: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8737: bool testAndSetOrdered(Type expectedValue, Type newValue) noexcept 8737: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8737: 8737: bool testAndSetRelaxed(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8737: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8737: bool testAndSetAcquire(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8737: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8737: bool testAndSetRelease(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8737: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8737: bool testAndSetOrdered(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8737: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8737: 8737: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8737: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8737: 8737: Type fetchAndStoreRelaxed(Type newValue) noexcept 8737: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8737: Type fetchAndStoreAcquire(Type newValue) noexcept 8737: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8737: Type fetchAndStoreRelease(Type newValue) noexcept 8737: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8737: Type fetchAndStoreOrdered(Type newValue) noexcept 8737: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8737: 8737: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8737: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8737: 8737: Type fetchAndAddRelaxed(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8737: Type fetchAndAddAcquire(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8737: Type fetchAndAddRelease(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8737: Type fetchAndAddOrdered(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8737: 8737: Type fetchAndSubRelaxed(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8737: Type fetchAndSubAcquire(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8737: Type fetchAndSubRelease(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8737: Type fetchAndSubOrdered(qptrdiff valueToAdd) noexcept 8737: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8737: 8737: Type operator++() noexcept 8737: { return fetchAndAddOrdered(1) + 1; } 8737: Type operator++(int) noexcept 8737: { return fetchAndAddOrdered(1); } 8737: Type operator--() noexcept 8737: { return fetchAndSubOrdered(1) - 1; } 8737: Type operator--(int) noexcept 8737: { return fetchAndSubOrdered(1); } 8737: Type operator+=(qptrdiff valueToAdd) noexcept 8737: { return fetchAndAddOrdered(valueToAdd) + valueToAdd; } 8737: Type operator-=(qptrdiff valueToSub) noexcept 8737: { return fetchAndSubOrdered(valueToSub) - valueToSub; } 8737: 8737: 8737: QBasicAtomicPointer() = default; 8737: constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {} 8737: QBasicAtomicPointer(const QBasicAtomicPointer &) = delete; 8737: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete; 8737: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete; 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 329 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 329 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8737: 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 2 3 4 8737: 8737: 8737: 8737: 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: 8737: 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wextra" 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: 8737: 8737: 8737: template 8737: class QAtomicInteger : public QBasicAtomicInteger 8737: { 8737: public: 8737: 8737: 8737: constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger(value) {} 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline QAtomicInteger(const QAtomicInteger &other) noexcept 8737: 8737: : QBasicAtomicInteger() 8737: 8737: { 8737: this->storeRelease(other.loadAcquire()); 8737: } 8737: 8737: inline QAtomicInteger &operator=(const QAtomicInteger &other) noexcept 8737: { 8737: this->storeRelease(other.loadAcquire()); 8737: return *this; 8737: } 8737: # 151 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: }; 8737: 8737: class QAtomicInt : public QAtomicInteger 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: constexpr 8737: 8737: QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} 8737: }; 8737: 8737: 8737: template 8737: class QAtomicPointer : public QBasicAtomicPointer 8737: { 8737: public: 8737: 8737: constexpr QAtomicPointer(T *value = 0) noexcept : QBasicAtomicPointer(value) {} 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline QAtomicPointer(const QAtomicPointer &other) noexcept 8737: 8737: : QBasicAtomicPointer() 8737: 8737: { 8737: this->storeRelease(other.loadAcquire()); 8737: } 8737: 8737: inline QAtomicPointer &operator=(const QAtomicPointer &other) noexcept 8737: { 8737: this->storeRelease(other.loadAcquire()); 8737: return *this; 8737: } 8737: # 222 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: }; 8737: 8737: 8737: # 224 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 224 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: 8737: # 236 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: template 8737: inline void qAtomicAssign(T *&d, T *x) 8737: { 8737: if (d == x) 8737: return; 8737: x->ref.ref(); 8737: if (!d->ref.deref()) 8737: delete d; 8737: d = x; 8737: } 8737: # 255 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8737: template 8737: inline void qAtomicDetach(T *&d) 8737: { 8737: if (d->ref.load() == 1) 8737: return; 8737: T *x = d; 8737: d = new T(*d); 8737: if (!x->ref.deref()) 8737: delete x; 8737: } 8737: 8737: 8737: # 1159 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 2 3 4 8737: 8737: 8737: 8737: namespace QtGlobalStatic { 8737: enum GuardValues { 8737: Destroyed = -2, 8737: Initialized = -1, 8737: Uninitialized = 0, 8737: Initializing = 1 8737: }; 8737: } 8737: # 127 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8737: template 8737: struct QGlobalStatic 8737: { 8737: typedef T Type; 8737: 8737: bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; } 8737: bool exists() const { return guard.load() == QtGlobalStatic::Initialized; } 8737: operator Type *() { if (isDestroyed()) return 0; return innerFunction(); } 8737: Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); } 8737: Type *operator->() 8737: { 8737: do { } while ((false) && (!isDestroyed())); 8737: return innerFunction(); 8737: } 8737: Type &operator*() 8737: { 8737: do { } while ((false) && (!isDestroyed())); 8737: return *innerFunction(); 8737: } 8737: }; 8737: # 161 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8737: 8737: # 1160 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnumeric.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnumeric.h" 3 4 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) bool qIsInf(double d); 8737: __attribute__((visibility("default"))) bool qIsNaN(double d); 8737: __attribute__((visibility("default"))) bool qIsFinite(double d); 8737: __attribute__((visibility("default"))) bool qIsInf(float f); 8737: __attribute__((visibility("default"))) bool qIsNaN(float f); 8737: __attribute__((visibility("default"))) bool qIsFinite(float f); 8737: __attribute__((visibility("default"))) double qSNaN(); 8737: __attribute__((visibility("default"))) double qQNaN(); 8737: __attribute__((visibility("default"))) double qInf(); 8737: 8737: __attribute__((visibility("default"))) quint32 qFloatDistance(float a, float b); 8737: __attribute__((visibility("default"))) quint64 qFloatDistance(double a, double b); 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1161 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qversiontagging.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qversiontagging.h" 3 4 8737: 8737: # 85 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qversiontagging.h" 3 4 8737: asm ( ".section .qtversion, \"aG\", @progbits, " "qt_version_tag" ", comdat\n" ".align 8\n" ".quad " "qt_version_tag" "@GOT\n" ".long " "((5<<16)|(9<<8)|(3))" "\n" ".align 8\n" ".previous" ); 8737: 8737: 8737: 8737: # 1162 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 2 3 4 8737: 8737: 8737: 8737: 8737: class QString; 8737: 8737: struct QLatin1Char 8737: { 8737: public: 8737: constexpr inline explicit QLatin1Char(char c) noexcept : ch(c) {} 8737: constexpr inline char toLatin1() const noexcept { return ch; } 8737: constexpr inline ushort unicode() const noexcept { return ushort(uchar(ch)); } 8737: 8737: private: 8737: char ch; 8737: }; 8737: 8737: 8737: class __attribute__((visibility("default"))) QChar { 8737: public: 8737: enum SpecialCharacter { 8737: Null = 0x0000, 8737: Tabulation = 0x0009, 8737: LineFeed = 0x000a, 8737: CarriageReturn = 0x000d, 8737: Space = 0x0020, 8737: Nbsp = 0x00a0, 8737: SoftHyphen = 0x00ad, 8737: ReplacementCharacter = 0xfffd, 8737: ObjectReplacementCharacter = 0xfffc, 8737: ByteOrderMark = 0xfeff, 8737: ByteOrderSwapped = 0xfffe, 8737: ParagraphSeparator = 0x2029, 8737: LineSeparator = 0x2028, 8737: LastValidCodePoint = 0x10ffff 8737: }; 8737: 8737: constexpr QChar() noexcept : ucs(0) {} 8737: constexpr QChar(ushort rc) noexcept : ucs(rc) {} 8737: constexpr QChar(uchar c, uchar r) noexcept : ucs(ushort((r << 8) | c)) {} 8737: constexpr QChar(short rc) noexcept : ucs(ushort(rc)) {} 8737: constexpr QChar(uint rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8737: constexpr QChar(int rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8737: constexpr QChar(SpecialCharacter s) noexcept : ucs(ushort(s)) {} 8737: constexpr QChar(QLatin1Char ch) noexcept : ucs(ch.unicode()) {} 8737: # 98 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 3 4 8737: enum Category 8737: { 8737: Mark_NonSpacing, 8737: Mark_SpacingCombining, 8737: Mark_Enclosing, 8737: 8737: Number_DecimalDigit, 8737: Number_Letter, 8737: Number_Other, 8737: 8737: Separator_Space, 8737: Separator_Line, 8737: Separator_Paragraph, 8737: 8737: Other_Control, 8737: Other_Format, 8737: Other_Surrogate, 8737: Other_PrivateUse, 8737: Other_NotAssigned, 8737: 8737: Letter_Uppercase, 8737: Letter_Lowercase, 8737: Letter_Titlecase, 8737: Letter_Modifier, 8737: Letter_Other, 8737: 8737: Punctuation_Connector, 8737: Punctuation_Dash, 8737: Punctuation_Open, 8737: Punctuation_Close, 8737: Punctuation_InitialQuote, 8737: Punctuation_FinalQuote, 8737: Punctuation_Other, 8737: 8737: Symbol_Math, 8737: Symbol_Currency, 8737: Symbol_Modifier, 8737: Symbol_Other 8737: }; 8737: 8737: enum Script 8737: { 8737: Script_Unknown, 8737: Script_Inherited, 8737: Script_Common, 8737: 8737: Script_Latin, 8737: Script_Greek, 8737: Script_Cyrillic, 8737: Script_Armenian, 8737: Script_Hebrew, 8737: Script_Arabic, 8737: Script_Syriac, 8737: Script_Thaana, 8737: Script_Devanagari, 8737: Script_Bengali, 8737: Script_Gurmukhi, 8737: Script_Gujarati, 8737: Script_Oriya, 8737: Script_Tamil, 8737: Script_Telugu, 8737: Script_Kannada, 8737: Script_Malayalam, 8737: Script_Sinhala, 8737: Script_Thai, 8737: Script_Lao, 8737: Script_Tibetan, 8737: Script_Myanmar, 8737: Script_Georgian, 8737: Script_Hangul, 8737: Script_Ethiopic, 8737: Script_Cherokee, 8737: Script_CanadianAboriginal, 8737: Script_Ogham, 8737: Script_Runic, 8737: Script_Khmer, 8737: Script_Mongolian, 8737: Script_Hiragana, 8737: Script_Katakana, 8737: Script_Bopomofo, 8737: Script_Han, 8737: Script_Yi, 8737: Script_OldItalic, 8737: Script_Gothic, 8737: Script_Deseret, 8737: Script_Tagalog, 8737: Script_Hanunoo, 8737: Script_Buhid, 8737: Script_Tagbanwa, 8737: Script_Coptic, 8737: 8737: 8737: Script_Limbu, 8737: Script_TaiLe, 8737: Script_LinearB, 8737: Script_Ugaritic, 8737: Script_Shavian, 8737: Script_Osmanya, 8737: Script_Cypriot, 8737: Script_Braille, 8737: 8737: 8737: Script_Buginese, 8737: Script_NewTaiLue, 8737: Script_Glagolitic, 8737: Script_Tifinagh, 8737: Script_SylotiNagri, 8737: Script_OldPersian, 8737: Script_Kharoshthi, 8737: 8737: 8737: Script_Balinese, 8737: Script_Cuneiform, 8737: Script_Phoenician, 8737: Script_PhagsPa, 8737: Script_Nko, 8737: 8737: 8737: Script_Sundanese, 8737: Script_Lepcha, 8737: Script_OlChiki, 8737: Script_Vai, 8737: Script_Saurashtra, 8737: Script_KayahLi, 8737: Script_Rejang, 8737: Script_Lycian, 8737: Script_Carian, 8737: Script_Lydian, 8737: Script_Cham, 8737: 8737: 8737: Script_TaiTham, 8737: Script_TaiViet, 8737: Script_Avestan, 8737: Script_EgyptianHieroglyphs, 8737: Script_Samaritan, 8737: Script_Lisu, 8737: Script_Bamum, 8737: Script_Javanese, 8737: Script_MeeteiMayek, 8737: Script_ImperialAramaic, 8737: Script_OldSouthArabian, 8737: Script_InscriptionalParthian, 8737: Script_InscriptionalPahlavi, 8737: Script_OldTurkic, 8737: Script_Kaithi, 8737: 8737: 8737: Script_Batak, 8737: Script_Brahmi, 8737: Script_Mandaic, 8737: 8737: 8737: Script_Chakma, 8737: Script_MeroiticCursive, 8737: Script_MeroiticHieroglyphs, 8737: Script_Miao, 8737: Script_Sharada, 8737: Script_SoraSompeng, 8737: Script_Takri, 8737: 8737: 8737: Script_CaucasianAlbanian, 8737: Script_BassaVah, 8737: Script_Duployan, 8737: Script_Elbasan, 8737: Script_Grantha, 8737: Script_PahawhHmong, 8737: Script_Khojki, 8737: Script_LinearA, 8737: Script_Mahajani, 8737: Script_Manichaean, 8737: Script_MendeKikakui, 8737: Script_Modi, 8737: Script_Mro, 8737: Script_OldNorthArabian, 8737: Script_Nabataean, 8737: Script_Palmyrene, 8737: Script_PauCinHau, 8737: Script_OldPermic, 8737: Script_PsalterPahlavi, 8737: Script_Siddham, 8737: Script_Khudawadi, 8737: Script_Tirhuta, 8737: Script_WarangCiti, 8737: 8737: 8737: Script_Ahom, 8737: Script_AnatolianHieroglyphs, 8737: Script_Hatran, 8737: Script_Multani, 8737: Script_OldHungarian, 8737: Script_SignWriting, 8737: 8737: ScriptCount 8737: }; 8737: 8737: enum Direction 8737: { 8737: DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, 8737: DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN, 8737: DirLRI, DirRLI, DirFSI, DirPDI 8737: }; 8737: 8737: enum Decomposition 8737: { 8737: NoDecomposition, 8737: Canonical, 8737: Font, 8737: NoBreak, 8737: Initial, 8737: Medial, 8737: Final, 8737: Isolated, 8737: Circle, 8737: Super, 8737: Sub, 8737: Vertical, 8737: Wide, 8737: Narrow, 8737: Small, 8737: Square, 8737: Compat, 8737: Fraction 8737: }; 8737: 8737: enum JoiningType { 8737: Joining_None, 8737: Joining_Causing, 8737: Joining_Dual, 8737: Joining_Right, 8737: Joining_Left, 8737: Joining_Transparent 8737: }; 8737: 8737: 8737: enum Joining 8737: { 8737: OtherJoining, Dual, Right, Center 8737: }; 8737: 8737: 8737: enum CombiningClass 8737: { 8737: Combining_BelowLeftAttached = 200, 8737: Combining_BelowAttached = 202, 8737: Combining_BelowRightAttached = 204, 8737: Combining_LeftAttached = 208, 8737: Combining_RightAttached = 210, 8737: Combining_AboveLeftAttached = 212, 8737: Combining_AboveAttached = 214, 8737: Combining_AboveRightAttached = 216, 8737: 8737: Combining_BelowLeft = 218, 8737: Combining_Below = 220, 8737: Combining_BelowRight = 222, 8737: Combining_Left = 224, 8737: Combining_Right = 226, 8737: Combining_AboveLeft = 228, 8737: Combining_Above = 230, 8737: Combining_AboveRight = 232, 8737: 8737: Combining_DoubleBelow = 233, 8737: Combining_DoubleAbove = 234, 8737: Combining_IotaSubscript = 240 8737: }; 8737: 8737: enum UnicodeVersion { 8737: Unicode_Unassigned, 8737: Unicode_1_1, 8737: Unicode_2_0, 8737: Unicode_2_1_2, 8737: Unicode_3_0, 8737: Unicode_3_1, 8737: Unicode_3_2, 8737: Unicode_4_0, 8737: Unicode_4_1, 8737: Unicode_5_0, 8737: Unicode_5_1, 8737: Unicode_5_2, 8737: Unicode_6_0, 8737: Unicode_6_1, 8737: Unicode_6_2, 8737: Unicode_6_3, 8737: Unicode_7_0, 8737: Unicode_8_0 8737: }; 8737: 8737: 8737: inline Category category() const noexcept { return QChar::category(ucs); } 8737: inline Direction direction() const noexcept { return QChar::direction(ucs); } 8737: inline JoiningType joiningType() const noexcept { return QChar::joiningType(ucs); } 8737: 8737: inline Joining joining() const noexcept 8737: { 8737: switch (QChar::joiningType(ucs)) { 8737: case QChar::Joining_Causing: return QChar::Center; 8737: case QChar::Joining_Dual: return QChar::Dual; 8737: case QChar::Joining_Right: return QChar::Right; 8737: case QChar::Joining_None: 8737: case QChar::Joining_Left: 8737: case QChar::Joining_Transparent: 8737: default: return QChar::OtherJoining; 8737: } 8737: } 8737: 8737: inline unsigned char combiningClass() const noexcept { return QChar::combiningClass(ucs); } 8737: 8737: inline QChar mirroredChar() const noexcept { return QChar::mirroredChar(ucs); } 8737: inline bool hasMirrored() const noexcept { return QChar::hasMirrored(ucs); } 8737: 8737: QString decomposition() const; 8737: inline Decomposition decompositionTag() const noexcept { return QChar::decompositionTag(ucs); } 8737: 8737: inline int digitValue() const noexcept { return QChar::digitValue(ucs); } 8737: inline QChar toLower() const noexcept { return QChar::toLower(ucs); } 8737: inline QChar toUpper() const noexcept { return QChar::toUpper(ucs); } 8737: inline QChar toTitleCase() const noexcept { return QChar::toTitleCase(ucs); } 8737: inline QChar toCaseFolded() const noexcept { return QChar::toCaseFolded(ucs); } 8737: 8737: inline Script script() const noexcept { return QChar::script(ucs); } 8737: 8737: inline UnicodeVersion unicodeVersion() const noexcept { return QChar::unicodeVersion(ucs); } 8737: 8737: 8737: 8737: 8737: constexpr inline char toLatin1() const noexcept { return ucs > 0xff ? '\0' : char(ucs); } 8737: constexpr inline ushort unicode() const noexcept { return ucs; } 8737: inline ushort &unicode() noexcept { return ucs; } 8737: 8737: 8737: 8737: 8737: 8737: static constexpr inline QChar fromLatin1(char c) noexcept { return QChar(ushort(uchar(c))); } 8737: 8737: constexpr inline bool isNull() const noexcept { return ucs == 0; } 8737: 8737: inline bool isPrint() const noexcept { return QChar::isPrint(ucs); } 8737: constexpr inline bool isSpace() const noexcept { return QChar::isSpace(ucs); } 8737: inline bool isMark() const noexcept { return QChar::isMark(ucs); } 8737: inline bool isPunct() const noexcept { return QChar::isPunct(ucs); } 8737: inline bool isSymbol() const noexcept { return QChar::isSymbol(ucs); } 8737: constexpr inline bool isLetter() const noexcept { return QChar::isLetter(ucs); } 8737: constexpr inline bool isNumber() const noexcept { return QChar::isNumber(ucs); } 8737: constexpr inline bool isLetterOrNumber() const noexcept { return QChar::isLetterOrNumber(ucs); } 8737: constexpr inline bool isDigit() const noexcept { return QChar::isDigit(ucs); } 8737: constexpr inline bool isLower() const noexcept { return QChar::isLower(ucs); } 8737: constexpr inline bool isUpper() const noexcept { return QChar::isUpper(ucs); } 8737: constexpr inline bool isTitleCase() const noexcept { return QChar::isTitleCase(ucs); } 8737: 8737: constexpr inline bool isNonCharacter() const noexcept { return QChar::isNonCharacter(ucs); } 8737: constexpr inline bool isHighSurrogate() const noexcept { return QChar::isHighSurrogate(ucs); } 8737: constexpr inline bool isLowSurrogate() const noexcept { return QChar::isLowSurrogate(ucs); } 8737: constexpr inline bool isSurrogate() const noexcept { return QChar::isSurrogate(ucs); } 8737: 8737: constexpr inline uchar cell() const noexcept { return uchar(ucs & 0xff); } 8737: constexpr inline uchar row() const noexcept { return uchar((ucs>>8)&0xff); } 8737: inline void setCell(uchar acell) noexcept { ucs = ushort((ucs & 0xff00) + acell); } 8737: inline void setRow(uchar arow) noexcept { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); } 8737: 8737: static constexpr inline bool isNonCharacter(uint ucs4) noexcept 8737: { 8737: return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe); 8737: } 8737: static constexpr inline bool isHighSurrogate(uint ucs4) noexcept 8737: { 8737: return ((ucs4 & 0xfffffc00) == 0xd800); 8737: } 8737: static constexpr inline bool isLowSurrogate(uint ucs4) noexcept 8737: { 8737: return ((ucs4 & 0xfffffc00) == 0xdc00); 8737: } 8737: static constexpr inline bool isSurrogate(uint ucs4) noexcept 8737: { 8737: return (ucs4 - 0xd800u < 2048u); 8737: } 8737: static constexpr inline bool requiresSurrogates(uint ucs4) noexcept 8737: { 8737: return (ucs4 >= 0x10000); 8737: } 8737: static constexpr inline uint surrogateToUcs4(ushort high, ushort low) noexcept 8737: { 8737: return (uint(high)<<10) + low - 0x35fdc00; 8737: } 8737: static constexpr inline uint surrogateToUcs4(QChar high, QChar low) noexcept 8737: { 8737: return surrogateToUcs4(high.ucs, low.ucs); 8737: } 8737: static constexpr inline ushort highSurrogate(uint ucs4) noexcept 8737: { 8737: return ushort((ucs4>>10) + 0xd7c0); 8737: } 8737: static constexpr inline ushort lowSurrogate(uint ucs4) noexcept 8737: { 8737: return ushort(ucs4%0x400 + 0xdc00); 8737: } 8737: 8737: static Category category(uint ucs4) noexcept __attribute__((const)); 8737: static Direction direction(uint ucs4) noexcept __attribute__((const)); 8737: static JoiningType joiningType(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static Joining joining(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static unsigned char combiningClass(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static uint mirroredChar(uint ucs4) noexcept __attribute__((const)); 8737: static bool hasMirrored(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static QString decomposition(uint ucs4); 8737: static Decomposition decompositionTag(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static int digitValue(uint ucs4) noexcept __attribute__((const)); 8737: static uint toLower(uint ucs4) noexcept __attribute__((const)); 8737: static uint toUpper(uint ucs4) noexcept __attribute__((const)); 8737: static uint toTitleCase(uint ucs4) noexcept __attribute__((const)); 8737: static uint toCaseFolded(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static Script script(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static UnicodeVersion unicodeVersion(uint ucs4) noexcept __attribute__((const)); 8737: 8737: static UnicodeVersion currentUnicodeVersion() noexcept __attribute__((const)); 8737: 8737: static bool isPrint(uint ucs4) noexcept __attribute__((const)); 8737: static constexpr inline bool isSpace(uint ucs4) noexcept __attribute__((const)) 8737: { 8737: 8737: return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09) 8737: || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4))); 8737: } 8737: static bool isMark(uint ucs4) noexcept __attribute__((const)); 8737: static bool isPunct(uint ucs4) noexcept __attribute__((const)); 8737: static bool isSymbol(uint ucs4) noexcept __attribute__((const)); 8737: static constexpr inline bool isLetter(uint ucs4) noexcept __attribute__((const)) 8737: { 8737: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8737: || (ucs4 > 127 && QChar::isLetter_helper(ucs4)); 8737: } 8737: static constexpr inline bool isNumber(uint ucs4) noexcept __attribute__((const)) 8737: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); } 8737: static constexpr inline bool isLetterOrNumber(uint ucs4) noexcept __attribute__((const)) 8737: { 8737: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8737: || (ucs4 >= '0' && ucs4 <= '9') 8737: || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4)); 8737: } 8737: static constexpr inline bool isDigit(uint ucs4) noexcept __attribute__((const)) 8737: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); } 8737: static constexpr inline bool isLower(uint ucs4) noexcept __attribute__((const)) 8737: { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); } 8737: static constexpr inline bool isUpper(uint ucs4) noexcept __attribute__((const)) 8737: { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); } 8737: static constexpr inline bool isTitleCase(uint ucs4) noexcept __attribute__((const)) 8737: { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; } 8737: 8737: private: 8737: static bool isSpace_helper(uint ucs4) noexcept __attribute__((const)); 8737: static bool isLetter_helper(uint ucs4) noexcept __attribute__((const)); 8737: static bool isNumber_helper(uint ucs4) noexcept __attribute__((const)); 8737: static bool isLetterOrNumber_helper(uint ucs4) noexcept __attribute__((const)); 8737: 8737: 8737: QChar(char c) noexcept; 8737: QChar(uchar c) noexcept; 8737: 8737: 8737: friend constexpr bool operator==(QChar, QChar) noexcept; 8737: friend constexpr bool operator< (QChar, QChar) noexcept; 8737: ushort ucs; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: constexpr inline bool operator==(QChar c1, QChar c2) noexcept { return c1.ucs == c2.ucs; } 8737: constexpr inline bool operator< (QChar c1, QChar c2) noexcept { return c1.ucs < c2.ucs; } 8737: 8737: constexpr inline bool operator!=(QChar c1, QChar c2) noexcept { return !operator==(c1, c2); } 8737: constexpr inline bool operator>=(QChar c1, QChar c2) noexcept { return !operator< (c1, c2); } 8737: constexpr inline bool operator> (QChar c1, QChar c2) noexcept { return operator< (c2, c1); } 8737: constexpr inline bool operator<=(QChar c1, QChar c2) noexcept { return !operator< (c2, c1); } 8737: 8737: 8737: constexpr inline bool operator==(QChar lhs, std::nullptr_t) noexcept { return lhs.isNull(); } 8737: constexpr inline bool operator< (QChar, std::nullptr_t) noexcept { return false; } 8737: constexpr inline bool operator==(std::nullptr_t, QChar rhs) noexcept { return rhs.isNull(); } 8737: constexpr inline bool operator< (std::nullptr_t, QChar rhs) noexcept { return !rhs.isNull(); } 8737: 8737: constexpr inline bool operator!=(QChar lhs, std::nullptr_t) noexcept { return !operator==(lhs, nullptr); } 8737: constexpr inline bool operator>=(QChar lhs, std::nullptr_t) noexcept { return !operator< (lhs, nullptr); } 8737: constexpr inline bool operator> (QChar lhs, std::nullptr_t) noexcept { return operator< (nullptr, lhs); } 8737: constexpr inline bool operator<=(QChar lhs, std::nullptr_t) noexcept { return !operator< (nullptr, lhs); } 8737: 8737: constexpr inline bool operator!=(std::nullptr_t, QChar rhs) noexcept { return !operator==(nullptr, rhs); } 8737: constexpr inline bool operator>=(std::nullptr_t, QChar rhs) noexcept { return !operator< (nullptr, rhs); } 8737: constexpr inline bool operator> (std::nullptr_t, QChar rhs) noexcept { return operator< (rhs, nullptr); } 8737: constexpr inline bool operator<=(std::nullptr_t, QChar rhs) noexcept { return !operator< (rhs, nullptr); } 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, QChar); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QChar &); 8737: 8737: 8737: 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h" 2 3 4 8737: 8737: 8737: 8737: 8737: namespace QtPrivate 8737: { 8737: 8737: class RefCount 8737: { 8737: public: 8737: inline bool ref() noexcept { 8737: int count = atomic.load(); 8737: 8737: if (count == 0) 8737: return false; 8737: 8737: if (count != -1) 8737: atomic.ref(); 8737: return true; 8737: } 8737: 8737: inline bool deref() noexcept { 8737: int count = atomic.load(); 8737: 8737: if (count == 0) 8737: return false; 8737: 8737: if (count == -1) 8737: return true; 8737: return atomic.deref(); 8737: } 8737: 8737: 8737: bool setSharable(bool sharable) noexcept 8737: { 8737: do { } while ((false) && (!isShared())); 8737: if (sharable) 8737: return atomic.testAndSetRelaxed(0, 1); 8737: else 8737: return atomic.testAndSetRelaxed(1, 0); 8737: } 8737: 8737: bool isSharable() const noexcept 8737: { 8737: 8737: return atomic.load() != 0; 8737: } 8737: 8737: 8737: bool isStatic() const noexcept 8737: { 8737: 8737: return atomic.load() == -1; 8737: } 8737: 8737: bool isShared() const noexcept 8737: { 8737: int count = atomic.load(); 8737: return (count != 1) && (count != 0); 8737: } 8737: 8737: void initializeOwned() noexcept { atomic.store(1); } 8737: void initializeUnsharable() noexcept { atomic.store(0); } 8737: 8737: QBasicAtomicInt atomic; 8737: }; 8737: 8737: } 8737: 8737: 8737: 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 1 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8737: 8737: 8737: 8737: struct QMetaObject; 8737: const QMetaObject *qt_getQtMetaObject() noexcept; 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8737: namespace 8737: 8737: 8737: 8737: Qt { 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum GlobalColor { 8737: color0, 8737: color1, 8737: black, 8737: white, 8737: darkGray, 8737: gray, 8737: lightGray, 8737: red, 8737: green, 8737: blue, 8737: cyan, 8737: magenta, 8737: yellow, 8737: darkRed, 8737: darkGreen, 8737: darkBlue, 8737: darkCyan, 8737: darkMagenta, 8737: darkYellow, 8737: transparent 8737: }; 8737: 8737: enum KeyboardModifier { 8737: NoModifier = 0x00000000, 8737: ShiftModifier = 0x02000000, 8737: ControlModifier = 0x04000000, 8737: AltModifier = 0x08000000, 8737: MetaModifier = 0x10000000, 8737: KeypadModifier = 0x20000000, 8737: GroupSwitchModifier = 0x40000000, 8737: 8737: KeyboardModifierMask = 0xfe000000 8737: }; 8737: typedef QFlags KeyboardModifiers; 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum Modifier { 8737: META = Qt::MetaModifier, 8737: SHIFT = Qt::ShiftModifier, 8737: CTRL = Qt::ControlModifier, 8737: ALT = Qt::AltModifier, 8737: MODIFIER_MASK = KeyboardModifierMask, 8737: UNICODE_ACCEL = 0x00000000 8737: }; 8737: 8737: enum MouseButton { 8737: NoButton = 0x00000000, 8737: LeftButton = 0x00000001, 8737: RightButton = 0x00000002, 8737: MidButton = 0x00000004, 8737: MiddleButton = MidButton, 8737: BackButton = 0x00000008, 8737: XButton1 = BackButton, 8737: ExtraButton1 = XButton1, 8737: ForwardButton = 0x00000010, 8737: XButton2 = ForwardButton, 8737: ExtraButton2 = ForwardButton, 8737: TaskButton = 0x00000020, 8737: ExtraButton3 = TaskButton, 8737: ExtraButton4 = 0x00000040, 8737: ExtraButton5 = 0x00000080, 8737: ExtraButton6 = 0x00000100, 8737: ExtraButton7 = 0x00000200, 8737: ExtraButton8 = 0x00000400, 8737: ExtraButton9 = 0x00000800, 8737: ExtraButton10 = 0x00001000, 8737: ExtraButton11 = 0x00002000, 8737: ExtraButton12 = 0x00004000, 8737: ExtraButton13 = 0x00008000, 8737: ExtraButton14 = 0x00010000, 8737: ExtraButton15 = 0x00020000, 8737: ExtraButton16 = 0x00040000, 8737: ExtraButton17 = 0x00080000, 8737: ExtraButton18 = 0x00100000, 8737: ExtraButton19 = 0x00200000, 8737: ExtraButton20 = 0x00400000, 8737: ExtraButton21 = 0x00800000, 8737: ExtraButton22 = 0x01000000, 8737: ExtraButton23 = 0x02000000, 8737: ExtraButton24 = 0x04000000, 8737: AllButtons = 0x07ffffff, 8737: MaxMouseButton = ExtraButton24, 8737: 8737: MouseButtonMask = 0xffffffff 8737: }; 8737: typedef QFlags MouseButtons; 8737: 8737: enum Orientation { 8737: Horizontal = 0x1, 8737: Vertical = 0x2 8737: }; 8737: 8737: typedef QFlags Orientations; 8737: 8737: enum FocusPolicy { 8737: NoFocus = 0, 8737: TabFocus = 0x1, 8737: ClickFocus = 0x2, 8737: StrongFocus = TabFocus | ClickFocus | 0x8, 8737: WheelFocus = StrongFocus | 0x4 8737: }; 8737: 8737: enum TabFocusBehavior { 8737: NoTabFocus = 0x00, 8737: TabFocusTextControls = 0x01, 8737: TabFocusListControls = 0x02, 8737: TabFocusAllControls = 0xff 8737: }; 8737: 8737: enum SortOrder { 8737: AscendingOrder, 8737: DescendingOrder 8737: }; 8737: 8737: enum TileRule { 8737: StretchTile, 8737: RepeatTile, 8737: RoundTile 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: enum AlignmentFlag { 8737: AlignLeft = 0x0001, 8737: AlignLeading = AlignLeft, 8737: AlignRight = 0x0002, 8737: AlignTrailing = AlignRight, 8737: AlignHCenter = 0x0004, 8737: AlignJustify = 0x0008, 8737: AlignAbsolute = 0x0010, 8737: AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute, 8737: 8737: AlignTop = 0x0020, 8737: AlignBottom = 0x0040, 8737: AlignVCenter = 0x0080, 8737: AlignBaseline = 0x0100, 8737: 8737: 8737: 8737: 8737: AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline, 8737: 8737: AlignCenter = AlignVCenter | AlignHCenter 8737: }; 8737: 8737: typedef QFlags Alignment; 8737: 8737: enum TextFlag { 8737: TextSingleLine = 0x0100, 8737: TextDontClip = 0x0200, 8737: TextExpandTabs = 0x0400, 8737: TextShowMnemonic = 0x0800, 8737: TextWordWrap = 0x1000, 8737: TextWrapAnywhere = 0x2000, 8737: TextDontPrint = 0x4000, 8737: TextIncludeTrailingSpaces = 0x08000000, 8737: TextHideMnemonic = 0x8000, 8737: TextJustificationForced = 0x10000, 8737: TextForceLeftToRight = 0x20000, 8737: TextForceRightToLeft = 0x40000, 8737: 8737: 8737: TextLongestVariant = 0x80000, 8737: TextBypassShaping = 0x100000 8737: }; 8737: 8737: enum TextElideMode { 8737: ElideLeft, 8737: ElideRight, 8737: ElideMiddle, 8737: ElideNone 8737: }; 8737: 8737: enum WhiteSpaceMode { 8737: WhiteSpaceNormal, 8737: WhiteSpacePre, 8737: WhiteSpaceNoWrap, 8737: WhiteSpaceModeUndefined = -1 8737: }; 8737: 8737: enum HitTestAccuracy { ExactHit, FuzzyHit }; 8737: 8737: enum WindowType { 8737: Widget = 0x00000000, 8737: Window = 0x00000001, 8737: Dialog = 0x00000002 | Window, 8737: Sheet = 0x00000004 | Window, 8737: Drawer = Sheet | Dialog, 8737: Popup = 0x00000008 | Window, 8737: Tool = Popup | Dialog, 8737: ToolTip = Popup | Sheet, 8737: SplashScreen = ToolTip | Dialog, 8737: Desktop = 0x00000010 | Window, 8737: SubWindow = 0x00000012, 8737: ForeignWindow = 0x00000020 | Window, 8737: CoverWindow = 0x00000040 | Window, 8737: 8737: WindowType_Mask = 0x000000ff, 8737: MSWindowsFixedSizeDialogHint = 0x00000100, 8737: MSWindowsOwnDC = 0x00000200, 8737: BypassWindowManagerHint = 0x00000400, 8737: X11BypassWindowManagerHint = BypassWindowManagerHint, 8737: FramelessWindowHint = 0x00000800, 8737: WindowTitleHint = 0x00001000, 8737: WindowSystemMenuHint = 0x00002000, 8737: WindowMinimizeButtonHint = 0x00004000, 8737: WindowMaximizeButtonHint = 0x00008000, 8737: WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint, 8737: WindowContextHelpButtonHint = 0x00010000, 8737: WindowShadeButtonHint = 0x00020000, 8737: WindowStaysOnTopHint = 0x00040000, 8737: WindowTransparentForInput = 0x00080000, 8737: WindowOverridesSystemGestures = 0x00100000, 8737: WindowDoesNotAcceptFocus = 0x00200000, 8737: MaximizeUsingFullscreenGeometryHint = 0x00400000, 8737: 8737: CustomizeWindowHint = 0x02000000, 8737: WindowStaysOnBottomHint = 0x04000000, 8737: WindowCloseButtonHint = 0x08000000, 8737: MacWindowToolBarButtonHint = 0x10000000, 8737: BypassGraphicsProxyWidget = 0x20000000, 8737: NoDropShadowWindowHint = 0x40000000, 8737: WindowFullscreenButtonHint = 0x80000000 8737: }; 8737: 8737: typedef QFlags WindowFlags; 8737: 8737: enum WindowState { 8737: WindowNoState = 0x00000000, 8737: WindowMinimized = 0x00000001, 8737: WindowMaximized = 0x00000002, 8737: WindowFullScreen = 0x00000004, 8737: WindowActive = 0x00000008 8737: }; 8737: 8737: typedef QFlags WindowStates; 8737: 8737: enum ApplicationState { 8737: ApplicationSuspended = 0x00000000, 8737: ApplicationHidden = 0x00000001, 8737: ApplicationInactive = 0x00000002, 8737: ApplicationActive = 0x00000004 8737: }; 8737: 8737: typedef QFlags ApplicationStates; 8737: 8737: enum ScreenOrientation { 8737: PrimaryOrientation = 0x00000000, 8737: PortraitOrientation = 0x00000001, 8737: LandscapeOrientation = 0x00000002, 8737: InvertedPortraitOrientation = 0x00000004, 8737: InvertedLandscapeOrientation = 0x00000008 8737: }; 8737: 8737: typedef QFlags ScreenOrientations; 8737: 8737: enum WidgetAttribute { 8737: WA_Disabled = 0, 8737: WA_UnderMouse = 1, 8737: WA_MouseTracking = 2, 8737: WA_ContentsPropagated = 3, 8737: WA_OpaquePaintEvent = 4, 8737: WA_NoBackground = WA_OpaquePaintEvent, 8737: WA_StaticContents = 5, 8737: WA_LaidOut = 7, 8737: WA_PaintOnScreen = 8, 8737: WA_NoSystemBackground = 9, 8737: WA_UpdatesDisabled = 10, 8737: WA_Mapped = 11, 8737: WA_MacNoClickThrough = 12, 8737: WA_InputMethodEnabled = 14, 8737: WA_WState_Visible = 15, 8737: WA_WState_Hidden = 16, 8737: 8737: WA_ForceDisabled = 32, 8737: WA_KeyCompression = 33, 8737: WA_PendingMoveEvent = 34, 8737: WA_PendingResizeEvent = 35, 8737: WA_SetPalette = 36, 8737: WA_SetFont = 37, 8737: WA_SetCursor = 38, 8737: WA_NoChildEventsFromChildren = 39, 8737: WA_WindowModified = 41, 8737: WA_Resized = 42, 8737: WA_Moved = 43, 8737: WA_PendingUpdate = 44, 8737: WA_InvalidSize = 45, 8737: WA_MacBrushedMetal = 46, 8737: WA_MacMetalStyle = WA_MacBrushedMetal, 8737: WA_CustomWhatsThis = 47, 8737: WA_LayoutOnEntireRect = 48, 8737: WA_OutsideWSRange = 49, 8737: WA_GrabbedShortcut = 50, 8737: WA_TransparentForMouseEvents = 51, 8737: WA_PaintUnclipped = 52, 8737: WA_SetWindowIcon = 53, 8737: WA_NoMouseReplay = 54, 8737: WA_DeleteOnClose = 55, 8737: WA_RightToLeft = 56, 8737: WA_SetLayoutDirection = 57, 8737: WA_NoChildEventsForParent = 58, 8737: WA_ForceUpdatesDisabled = 59, 8737: 8737: WA_WState_Created = 60, 8737: WA_WState_CompressKeys = 61, 8737: WA_WState_InPaintEvent = 62, 8737: WA_WState_Reparented = 63, 8737: WA_WState_ConfigPending = 64, 8737: WA_WState_Polished = 66, 8737: WA_WState_DND = 67, 8737: WA_WState_OwnSizePolicy = 68, 8737: WA_WState_ExplicitShowHide = 69, 8737: 8737: WA_ShowModal = 70, 8737: WA_MouseNoMask = 71, 8737: WA_GroupLeader = 72, 8737: WA_NoMousePropagation = 73, 8737: WA_Hover = 74, 8737: WA_InputMethodTransparent = 75, 8737: WA_QuitOnClose = 76, 8737: 8737: WA_KeyboardFocusChange = 77, 8737: 8737: WA_AcceptDrops = 78, 8737: WA_DropSiteRegistered = 79, 8737: WA_ForceAcceptDrops = WA_DropSiteRegistered, 8737: 8737: WA_WindowPropagation = 80, 8737: 8737: WA_NoX11EventCompression = 81, 8737: WA_TintedBackground = 82, 8737: WA_X11OpenGLOverlay = 83, 8737: WA_AlwaysShowToolTips = 84, 8737: WA_MacOpaqueSizeGrip = 85, 8737: WA_SetStyle = 86, 8737: 8737: WA_SetLocale = 87, 8737: WA_MacShowFocusRect = 88, 8737: 8737: WA_MacNormalSize = 89, 8737: WA_MacSmallSize = 90, 8737: WA_MacMiniSize = 91, 8737: 8737: WA_LayoutUsesWidgetRect = 92, 8737: WA_StyledBackground = 93, 8737: WA_MSWindowsUseDirect3D = 94, 8737: WA_CanHostQMdiSubWindowTitleBar = 95, 8737: 8737: WA_MacAlwaysShowToolWindow = 96, 8737: 8737: WA_StyleSheet = 97, 8737: 8737: WA_ShowWithoutActivating = 98, 8737: 8737: WA_X11BypassTransientForHint = 99, 8737: 8737: WA_NativeWindow = 100, 8737: WA_DontCreateNativeAncestors = 101, 8737: 8737: WA_MacVariableSize = 102, 8737: 8737: WA_DontShowOnScreen = 103, 8737: 8737: 8737: WA_X11NetWmWindowTypeDesktop = 104, 8737: WA_X11NetWmWindowTypeDock = 105, 8737: WA_X11NetWmWindowTypeToolBar = 106, 8737: WA_X11NetWmWindowTypeMenu = 107, 8737: WA_X11NetWmWindowTypeUtility = 108, 8737: WA_X11NetWmWindowTypeSplash = 109, 8737: WA_X11NetWmWindowTypeDialog = 110, 8737: WA_X11NetWmWindowTypeDropDownMenu = 111, 8737: WA_X11NetWmWindowTypePopupMenu = 112, 8737: WA_X11NetWmWindowTypeToolTip = 113, 8737: WA_X11NetWmWindowTypeNotification = 114, 8737: WA_X11NetWmWindowTypeCombo = 115, 8737: WA_X11NetWmWindowTypeDND = 116, 8737: 8737: WA_MacFrameworkScaled = 117, 8737: 8737: WA_SetWindowModality = 118, 8737: WA_WState_WindowOpacitySet = 119, 8737: WA_TranslucentBackground = 120, 8737: 8737: WA_AcceptTouchEvents = 121, 8737: WA_WState_AcceptedTouchBeginEvent = 122, 8737: WA_TouchPadAcceptSingleTouchEvents = 123, 8737: 8737: WA_X11DoNotAcceptFocus = 126, 8737: WA_MacNoShadow = 127, 8737: 8737: WA_AlwaysStackOnTop = 128, 8737: 8737: WA_TabletTracking = 129, 8737: 8737: 8737: WA_AttributeCount 8737: }; 8737: 8737: enum ApplicationAttribute 8737: { 8737: AA_ImmediateWidgetCreation = 0, 8737: AA_MSWindowsUseDirect3DByDefault = 1, 8737: AA_DontShowIconsInMenus = 2, 8737: AA_NativeWindows = 3, 8737: AA_DontCreateNativeWidgetSiblings = 4, 8737: AA_PluginApplication = 5, 8737: AA_MacPluginApplication = AA_PluginApplication, 8737: AA_DontUseNativeMenuBar = 6, 8737: AA_MacDontSwapCtrlAndMeta = 7, 8737: AA_Use96Dpi = 8, 8737: AA_X11InitThreads = 10, 8737: AA_SynthesizeTouchForUnhandledMouseEvents = 11, 8737: AA_SynthesizeMouseForUnhandledTouchEvents = 12, 8737: AA_UseHighDpiPixmaps = 13, 8737: AA_ForceRasterWidgets = 14, 8737: AA_UseDesktopOpenGL = 15, 8737: AA_UseOpenGLES = 16, 8737: AA_UseSoftwareOpenGL = 17, 8737: AA_ShareOpenGLContexts = 18, 8737: AA_SetPalette = 19, 8737: AA_EnableHighDpiScaling = 20, 8737: AA_DisableHighDpiScaling = 21, 8737: AA_UseStyleSheetPropagationInWidgetStyles = 22, 8737: AA_DontUseNativeDialogs = 23, 8737: AA_SynthesizeMouseForUnhandledTabletEvents = 24, 8737: AA_CompressHighFrequencyEvents = 25, 8737: AA_DontCheckOpenGLContextThreadAffinity = 26, 8737: AA_DisableShaderDiskCache = 27, 8737: 8737: 8737: AA_AttributeCount 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: enum ImageConversionFlag { 8737: ColorMode_Mask = 0x00000003, 8737: AutoColor = 0x00000000, 8737: ColorOnly = 0x00000003, 8737: MonoOnly = 0x00000002, 8737: 8737: 8737: AlphaDither_Mask = 0x0000000c, 8737: ThresholdAlphaDither = 0x00000000, 8737: OrderedAlphaDither = 0x00000004, 8737: DiffuseAlphaDither = 0x00000008, 8737: NoAlpha = 0x0000000c, 8737: 8737: Dither_Mask = 0x00000030, 8737: DiffuseDither = 0x00000000, 8737: OrderedDither = 0x00000010, 8737: ThresholdDither = 0x00000020, 8737: 8737: 8737: DitherMode_Mask = 0x000000c0, 8737: AutoDither = 0x00000000, 8737: PreferDither = 0x00000040, 8737: AvoidDither = 0x00000080, 8737: 8737: NoOpaqueDetection = 0x00000100, 8737: NoFormatConversion = 0x00000200 8737: }; 8737: typedef QFlags ImageConversionFlags; 8737: 8737: enum BGMode { 8737: TransparentMode, 8737: OpaqueMode 8737: }; 8737: 8737: enum Key { 8737: Key_Escape = 0x01000000, 8737: Key_Tab = 0x01000001, 8737: Key_Backtab = 0x01000002, 8737: Key_Backspace = 0x01000003, 8737: Key_Return = 0x01000004, 8737: Key_Enter = 0x01000005, 8737: Key_Insert = 0x01000006, 8737: Key_Delete = 0x01000007, 8737: Key_Pause = 0x01000008, 8737: Key_Print = 0x01000009, 8737: Key_SysReq = 0x0100000a, 8737: Key_Clear = 0x0100000b, 8737: Key_Home = 0x01000010, 8737: Key_End = 0x01000011, 8737: Key_Left = 0x01000012, 8737: Key_Up = 0x01000013, 8737: Key_Right = 0x01000014, 8737: Key_Down = 0x01000015, 8737: Key_PageUp = 0x01000016, 8737: Key_PageDown = 0x01000017, 8737: Key_Shift = 0x01000020, 8737: Key_Control = 0x01000021, 8737: Key_Meta = 0x01000022, 8737: Key_Alt = 0x01000023, 8737: Key_CapsLock = 0x01000024, 8737: Key_NumLock = 0x01000025, 8737: Key_ScrollLock = 0x01000026, 8737: Key_F1 = 0x01000030, 8737: Key_F2 = 0x01000031, 8737: Key_F3 = 0x01000032, 8737: Key_F4 = 0x01000033, 8737: Key_F5 = 0x01000034, 8737: Key_F6 = 0x01000035, 8737: Key_F7 = 0x01000036, 8737: Key_F8 = 0x01000037, 8737: Key_F9 = 0x01000038, 8737: Key_F10 = 0x01000039, 8737: Key_F11 = 0x0100003a, 8737: Key_F12 = 0x0100003b, 8737: Key_F13 = 0x0100003c, 8737: Key_F14 = 0x0100003d, 8737: Key_F15 = 0x0100003e, 8737: Key_F16 = 0x0100003f, 8737: Key_F17 = 0x01000040, 8737: Key_F18 = 0x01000041, 8737: Key_F19 = 0x01000042, 8737: Key_F20 = 0x01000043, 8737: Key_F21 = 0x01000044, 8737: Key_F22 = 0x01000045, 8737: Key_F23 = 0x01000046, 8737: Key_F24 = 0x01000047, 8737: Key_F25 = 0x01000048, 8737: Key_F26 = 0x01000049, 8737: Key_F27 = 0x0100004a, 8737: Key_F28 = 0x0100004b, 8737: Key_F29 = 0x0100004c, 8737: Key_F30 = 0x0100004d, 8737: Key_F31 = 0x0100004e, 8737: Key_F32 = 0x0100004f, 8737: Key_F33 = 0x01000050, 8737: Key_F34 = 0x01000051, 8737: Key_F35 = 0x01000052, 8737: Key_Super_L = 0x01000053, 8737: Key_Super_R = 0x01000054, 8737: Key_Menu = 0x01000055, 8737: Key_Hyper_L = 0x01000056, 8737: Key_Hyper_R = 0x01000057, 8737: Key_Help = 0x01000058, 8737: Key_Direction_L = 0x01000059, 8737: Key_Direction_R = 0x01000060, 8737: Key_Space = 0x20, 8737: Key_Any = Key_Space, 8737: Key_Exclam = 0x21, 8737: Key_QuoteDbl = 0x22, 8737: Key_NumberSign = 0x23, 8737: Key_Dollar = 0x24, 8737: Key_Percent = 0x25, 8737: Key_Ampersand = 0x26, 8737: Key_Apostrophe = 0x27, 8737: Key_ParenLeft = 0x28, 8737: Key_ParenRight = 0x29, 8737: Key_Asterisk = 0x2a, 8737: Key_Plus = 0x2b, 8737: Key_Comma = 0x2c, 8737: Key_Minus = 0x2d, 8737: Key_Period = 0x2e, 8737: Key_Slash = 0x2f, 8737: Key_0 = 0x30, 8737: Key_1 = 0x31, 8737: Key_2 = 0x32, 8737: Key_3 = 0x33, 8737: Key_4 = 0x34, 8737: Key_5 = 0x35, 8737: Key_6 = 0x36, 8737: Key_7 = 0x37, 8737: Key_8 = 0x38, 8737: Key_9 = 0x39, 8737: Key_Colon = 0x3a, 8737: Key_Semicolon = 0x3b, 8737: Key_Less = 0x3c, 8737: Key_Equal = 0x3d, 8737: Key_Greater = 0x3e, 8737: Key_Question = 0x3f, 8737: Key_At = 0x40, 8737: Key_A = 0x41, 8737: Key_B = 0x42, 8737: Key_C = 0x43, 8737: Key_D = 0x44, 8737: Key_E = 0x45, 8737: Key_F = 0x46, 8737: Key_G = 0x47, 8737: Key_H = 0x48, 8737: Key_I = 0x49, 8737: Key_J = 0x4a, 8737: Key_K = 0x4b, 8737: Key_L = 0x4c, 8737: Key_M = 0x4d, 8737: Key_N = 0x4e, 8737: Key_O = 0x4f, 8737: Key_P = 0x50, 8737: Key_Q = 0x51, 8737: Key_R = 0x52, 8737: Key_S = 0x53, 8737: Key_T = 0x54, 8737: Key_U = 0x55, 8737: Key_V = 0x56, 8737: Key_W = 0x57, 8737: Key_X = 0x58, 8737: Key_Y = 0x59, 8737: Key_Z = 0x5a, 8737: Key_BracketLeft = 0x5b, 8737: Key_Backslash = 0x5c, 8737: Key_BracketRight = 0x5d, 8737: Key_AsciiCircum = 0x5e, 8737: Key_Underscore = 0x5f, 8737: Key_QuoteLeft = 0x60, 8737: Key_BraceLeft = 0x7b, 8737: Key_Bar = 0x7c, 8737: Key_BraceRight = 0x7d, 8737: Key_AsciiTilde = 0x7e, 8737: 8737: Key_nobreakspace = 0x0a0, 8737: Key_exclamdown = 0x0a1, 8737: Key_cent = 0x0a2, 8737: Key_sterling = 0x0a3, 8737: Key_currency = 0x0a4, 8737: Key_yen = 0x0a5, 8737: Key_brokenbar = 0x0a6, 8737: Key_section = 0x0a7, 8737: Key_diaeresis = 0x0a8, 8737: Key_copyright = 0x0a9, 8737: Key_ordfeminine = 0x0aa, 8737: Key_guillemotleft = 0x0ab, 8737: Key_notsign = 0x0ac, 8737: Key_hyphen = 0x0ad, 8737: Key_registered = 0x0ae, 8737: Key_macron = 0x0af, 8737: Key_degree = 0x0b0, 8737: Key_plusminus = 0x0b1, 8737: Key_twosuperior = 0x0b2, 8737: Key_threesuperior = 0x0b3, 8737: Key_acute = 0x0b4, 8737: Key_mu = 0x0b5, 8737: Key_paragraph = 0x0b6, 8737: Key_periodcentered = 0x0b7, 8737: Key_cedilla = 0x0b8, 8737: Key_onesuperior = 0x0b9, 8737: Key_masculine = 0x0ba, 8737: Key_guillemotright = 0x0bb, 8737: Key_onequarter = 0x0bc, 8737: Key_onehalf = 0x0bd, 8737: Key_threequarters = 0x0be, 8737: Key_questiondown = 0x0bf, 8737: Key_Agrave = 0x0c0, 8737: Key_Aacute = 0x0c1, 8737: Key_Acircumflex = 0x0c2, 8737: Key_Atilde = 0x0c3, 8737: Key_Adiaeresis = 0x0c4, 8737: Key_Aring = 0x0c5, 8737: Key_AE = 0x0c6, 8737: Key_Ccedilla = 0x0c7, 8737: Key_Egrave = 0x0c8, 8737: Key_Eacute = 0x0c9, 8737: Key_Ecircumflex = 0x0ca, 8737: Key_Ediaeresis = 0x0cb, 8737: Key_Igrave = 0x0cc, 8737: Key_Iacute = 0x0cd, 8737: Key_Icircumflex = 0x0ce, 8737: Key_Idiaeresis = 0x0cf, 8737: Key_ETH = 0x0d0, 8737: Key_Ntilde = 0x0d1, 8737: Key_Ograve = 0x0d2, 8737: Key_Oacute = 0x0d3, 8737: Key_Ocircumflex = 0x0d4, 8737: Key_Otilde = 0x0d5, 8737: Key_Odiaeresis = 0x0d6, 8737: Key_multiply = 0x0d7, 8737: Key_Ooblique = 0x0d8, 8737: Key_Ugrave = 0x0d9, 8737: Key_Uacute = 0x0da, 8737: Key_Ucircumflex = 0x0db, 8737: Key_Udiaeresis = 0x0dc, 8737: Key_Yacute = 0x0dd, 8737: Key_THORN = 0x0de, 8737: Key_ssharp = 0x0df, 8737: Key_division = 0x0f7, 8737: Key_ydiaeresis = 0x0ff, 8737: 8737: 8737: 8737: 8737: 8737: 8737: Key_AltGr = 0x01001103, 8737: Key_Multi_key = 0x01001120, 8737: Key_Codeinput = 0x01001137, 8737: Key_SingleCandidate = 0x0100113c, 8737: Key_MultipleCandidate = 0x0100113d, 8737: Key_PreviousCandidate = 0x0100113e, 8737: 8737: 8737: Key_Mode_switch = 0x0100117e, 8737: 8737: 8737: 8737: Key_Kanji = 0x01001121, 8737: Key_Muhenkan = 0x01001122, 8737: 8737: Key_Henkan = 0x01001123, 8737: Key_Romaji = 0x01001124, 8737: Key_Hiragana = 0x01001125, 8737: Key_Katakana = 0x01001126, 8737: Key_Hiragana_Katakana = 0x01001127, 8737: Key_Zenkaku = 0x01001128, 8737: Key_Hankaku = 0x01001129, 8737: Key_Zenkaku_Hankaku = 0x0100112a, 8737: Key_Touroku = 0x0100112b, 8737: Key_Massyo = 0x0100112c, 8737: Key_Kana_Lock = 0x0100112d, 8737: Key_Kana_Shift = 0x0100112e, 8737: Key_Eisu_Shift = 0x0100112f, 8737: Key_Eisu_toggle = 0x01001130, 8737: # 806 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8737: Key_Hangul = 0x01001131, 8737: Key_Hangul_Start = 0x01001132, 8737: Key_Hangul_End = 0x01001133, 8737: Key_Hangul_Hanja = 0x01001134, 8737: Key_Hangul_Jamo = 0x01001135, 8737: Key_Hangul_Romaja = 0x01001136, 8737: 8737: Key_Hangul_Jeonja = 0x01001138, 8737: Key_Hangul_Banja = 0x01001139, 8737: Key_Hangul_PreHanja = 0x0100113a, 8737: Key_Hangul_PostHanja = 0x0100113b, 8737: 8737: 8737: 8737: Key_Hangul_Special = 0x0100113f, 8737: 8737: 8737: 8737: Key_Dead_Grave = 0x01001250, 8737: Key_Dead_Acute = 0x01001251, 8737: Key_Dead_Circumflex = 0x01001252, 8737: Key_Dead_Tilde = 0x01001253, 8737: Key_Dead_Macron = 0x01001254, 8737: Key_Dead_Breve = 0x01001255, 8737: Key_Dead_Abovedot = 0x01001256, 8737: Key_Dead_Diaeresis = 0x01001257, 8737: Key_Dead_Abovering = 0x01001258, 8737: Key_Dead_Doubleacute = 0x01001259, 8737: Key_Dead_Caron = 0x0100125a, 8737: Key_Dead_Cedilla = 0x0100125b, 8737: Key_Dead_Ogonek = 0x0100125c, 8737: Key_Dead_Iota = 0x0100125d, 8737: Key_Dead_Voiced_Sound = 0x0100125e, 8737: Key_Dead_Semivoiced_Sound = 0x0100125f, 8737: Key_Dead_Belowdot = 0x01001260, 8737: Key_Dead_Hook = 0x01001261, 8737: Key_Dead_Horn = 0x01001262, 8737: 8737: 8737: Key_Back = 0x01000061, 8737: Key_Forward = 0x01000062, 8737: Key_Stop = 0x01000063, 8737: Key_Refresh = 0x01000064, 8737: Key_VolumeDown = 0x01000070, 8737: Key_VolumeMute = 0x01000071, 8737: Key_VolumeUp = 0x01000072, 8737: Key_BassBoost = 0x01000073, 8737: Key_BassUp = 0x01000074, 8737: Key_BassDown = 0x01000075, 8737: Key_TrebleUp = 0x01000076, 8737: Key_TrebleDown = 0x01000077, 8737: Key_MediaPlay = 0x01000080, 8737: Key_MediaStop = 0x01000081, 8737: Key_MediaPrevious = 0x01000082, 8737: Key_MediaNext = 0x01000083, 8737: Key_MediaRecord = 0x01000084, 8737: Key_MediaPause = 0x1000085, 8737: Key_MediaTogglePlayPause = 0x1000086, 8737: Key_HomePage = 0x01000090, 8737: Key_Favorites = 0x01000091, 8737: Key_Search = 0x01000092, 8737: Key_Standby = 0x01000093, 8737: Key_OpenUrl = 0x01000094, 8737: Key_LaunchMail = 0x010000a0, 8737: Key_LaunchMedia = 0x010000a1, 8737: Key_Launch0 = 0x010000a2, 8737: Key_Launch1 = 0x010000a3, 8737: Key_Launch2 = 0x010000a4, 8737: Key_Launch3 = 0x010000a5, 8737: Key_Launch4 = 0x010000a6, 8737: Key_Launch5 = 0x010000a7, 8737: Key_Launch6 = 0x010000a8, 8737: Key_Launch7 = 0x010000a9, 8737: Key_Launch8 = 0x010000aa, 8737: Key_Launch9 = 0x010000ab, 8737: Key_LaunchA = 0x010000ac, 8737: Key_LaunchB = 0x010000ad, 8737: Key_LaunchC = 0x010000ae, 8737: Key_LaunchD = 0x010000af, 8737: Key_LaunchE = 0x010000b0, 8737: Key_LaunchF = 0x010000b1, 8737: Key_MonBrightnessUp = 0x010000b2, 8737: Key_MonBrightnessDown = 0x010000b3, 8737: Key_KeyboardLightOnOff = 0x010000b4, 8737: Key_KeyboardBrightnessUp = 0x010000b5, 8737: Key_KeyboardBrightnessDown = 0x010000b6, 8737: Key_PowerOff = 0x010000b7, 8737: Key_WakeUp = 0x010000b8, 8737: Key_Eject = 0x010000b9, 8737: Key_ScreenSaver = 0x010000ba, 8737: Key_WWW = 0x010000bb, 8737: Key_Memo = 0x010000bc, 8737: Key_LightBulb = 0x010000bd, 8737: Key_Shop = 0x010000be, 8737: Key_History = 0x010000bf, 8737: Key_AddFavorite = 0x010000c0, 8737: Key_HotLinks = 0x010000c1, 8737: Key_BrightnessAdjust = 0x010000c2, 8737: Key_Finance = 0x010000c3, 8737: Key_Community = 0x010000c4, 8737: Key_AudioRewind = 0x010000c5, 8737: Key_BackForward = 0x010000c6, 8737: Key_ApplicationLeft = 0x010000c7, 8737: Key_ApplicationRight = 0x010000c8, 8737: Key_Book = 0x010000c9, 8737: Key_CD = 0x010000ca, 8737: Key_Calculator = 0x010000cb, 8737: Key_ToDoList = 0x010000cc, 8737: Key_ClearGrab = 0x010000cd, 8737: Key_Close = 0x010000ce, 8737: Key_Copy = 0x010000cf, 8737: Key_Cut = 0x010000d0, 8737: Key_Display = 0x010000d1, 8737: Key_DOS = 0x010000d2, 8737: Key_Documents = 0x010000d3, 8737: Key_Excel = 0x010000d4, 8737: Key_Explorer = 0x010000d5, 8737: Key_Game = 0x010000d6, 8737: Key_Go = 0x010000d7, 8737: Key_iTouch = 0x010000d8, 8737: Key_LogOff = 0x010000d9, 8737: Key_Market = 0x010000da, 8737: Key_Meeting = 0x010000db, 8737: Key_MenuKB = 0x010000dc, 8737: Key_MenuPB = 0x010000dd, 8737: Key_MySites = 0x010000de, 8737: Key_News = 0x010000df, 8737: Key_OfficeHome = 0x010000e0, 8737: Key_Option = 0x010000e1, 8737: Key_Paste = 0x010000e2, 8737: Key_Phone = 0x010000e3, 8737: Key_Calendar = 0x010000e4, 8737: Key_Reply = 0x010000e5, 8737: Key_Reload = 0x010000e6, 8737: Key_RotateWindows = 0x010000e7, 8737: Key_RotationPB = 0x010000e8, 8737: Key_RotationKB = 0x010000e9, 8737: Key_Save = 0x010000ea, 8737: Key_Send = 0x010000eb, 8737: Key_Spell = 0x010000ec, 8737: Key_SplitScreen = 0x010000ed, 8737: Key_Support = 0x010000ee, 8737: Key_TaskPane = 0x010000ef, 8737: Key_Terminal = 0x010000f0, 8737: Key_Tools = 0x010000f1, 8737: Key_Travel = 0x010000f2, 8737: Key_Video = 0x010000f3, 8737: Key_Word = 0x010000f4, 8737: Key_Xfer = 0x010000f5, 8737: Key_ZoomIn = 0x010000f6, 8737: Key_ZoomOut = 0x010000f7, 8737: Key_Away = 0x010000f8, 8737: Key_Messenger = 0x010000f9, 8737: Key_WebCam = 0x010000fa, 8737: Key_MailForward = 0x010000fb, 8737: Key_Pictures = 0x010000fc, 8737: Key_Music = 0x010000fd, 8737: Key_Battery = 0x010000fe, 8737: Key_Bluetooth = 0x010000ff, 8737: Key_WLAN = 0x01000100, 8737: Key_UWB = 0x01000101, 8737: Key_AudioForward = 0x01000102, 8737: Key_AudioRepeat = 0x01000103, 8737: Key_AudioRandomPlay = 0x01000104, 8737: Key_Subtitle = 0x01000105, 8737: Key_AudioCycleTrack = 0x01000106, 8737: Key_Time = 0x01000107, 8737: Key_Hibernate = 0x01000108, 8737: Key_View = 0x01000109, 8737: Key_TopMenu = 0x0100010a, 8737: Key_PowerDown = 0x0100010b, 8737: Key_Suspend = 0x0100010c, 8737: Key_ContrastAdjust = 0x0100010d, 8737: 8737: Key_LaunchG = 0x0100010e, 8737: Key_LaunchH = 0x0100010f, 8737: 8737: Key_TouchpadToggle = 0x01000110, 8737: Key_TouchpadOn = 0x01000111, 8737: Key_TouchpadOff = 0x01000112, 8737: 8737: Key_MicMute = 0x01000113, 8737: 8737: Key_Red = 0x01000114, 8737: Key_Green = 0x01000115, 8737: Key_Yellow = 0x01000116, 8737: Key_Blue = 0x01000117, 8737: 8737: Key_ChannelUp = 0x01000118, 8737: Key_ChannelDown = 0x01000119, 8737: 8737: Key_Guide = 0x0100011a, 8737: Key_Info = 0x0100011b, 8737: Key_Settings = 0x0100011c, 8737: 8737: Key_MicVolumeUp = 0x0100011d, 8737: Key_MicVolumeDown = 0x0100011e, 8737: 8737: Key_New = 0x01000120, 8737: Key_Open = 0x01000121, 8737: Key_Find = 0x01000122, 8737: Key_Undo = 0x01000123, 8737: Key_Redo = 0x01000124, 8737: 8737: Key_MediaLast = 0x0100ffff, 8737: 8737: 8737: Key_Select = 0x01010000, 8737: Key_Yes = 0x01010001, 8737: Key_No = 0x01010002, 8737: 8737: 8737: Key_Cancel = 0x01020001, 8737: Key_Printer = 0x01020002, 8737: Key_Execute = 0x01020003, 8737: Key_Sleep = 0x01020004, 8737: Key_Play = 0x01020005, 8737: Key_Zoom = 0x01020006, 8737: 8737: 8737: 8737: Key_Exit = 0x0102000a, 8737: 8737: 8737: Key_Context1 = 0x01100000, 8737: Key_Context2 = 0x01100001, 8737: Key_Context3 = 0x01100002, 8737: Key_Context4 = 0x01100003, 8737: Key_Call = 0x01100004, 8737: Key_Hangup = 0x01100005, 8737: Key_Flip = 0x01100006, 8737: Key_ToggleCallHangup = 0x01100007, 8737: Key_VoiceDial = 0x01100008, 8737: Key_LastNumberRedial = 0x01100009, 8737: 8737: Key_Camera = 0x01100020, 8737: Key_CameraFocus = 0x01100021, 8737: 8737: Key_unknown = 0x01ffffff 8737: }; 8737: 8737: enum ArrowType { 8737: NoArrow, 8737: UpArrow, 8737: DownArrow, 8737: LeftArrow, 8737: RightArrow 8737: }; 8737: 8737: enum PenStyle { 8737: NoPen, 8737: SolidLine, 8737: DashLine, 8737: DotLine, 8737: DashDotLine, 8737: DashDotDotLine, 8737: CustomDashLine 8737: 8737: , MPenStyle = 0x0f 8737: 8737: }; 8737: 8737: enum PenCapStyle { 8737: FlatCap = 0x00, 8737: SquareCap = 0x10, 8737: RoundCap = 0x20, 8737: MPenCapStyle = 0x30 8737: }; 8737: 8737: enum PenJoinStyle { 8737: MiterJoin = 0x00, 8737: BevelJoin = 0x40, 8737: RoundJoin = 0x80, 8737: SvgMiterJoin = 0x100, 8737: MPenJoinStyle = 0x1c0 8737: }; 8737: 8737: enum BrushStyle { 8737: NoBrush, 8737: SolidPattern, 8737: Dense1Pattern, 8737: Dense2Pattern, 8737: Dense3Pattern, 8737: Dense4Pattern, 8737: Dense5Pattern, 8737: Dense6Pattern, 8737: Dense7Pattern, 8737: HorPattern, 8737: VerPattern, 8737: CrossPattern, 8737: BDiagPattern, 8737: FDiagPattern, 8737: DiagCrossPattern, 8737: LinearGradientPattern, 8737: RadialGradientPattern, 8737: ConicalGradientPattern, 8737: TexturePattern = 24 8737: }; 8737: 8737: enum SizeMode { 8737: AbsoluteSize, 8737: RelativeSize 8737: }; 8737: 8737: enum UIEffect { 8737: UI_General, 8737: UI_AnimateMenu, 8737: UI_FadeMenu, 8737: UI_AnimateCombo, 8737: UI_AnimateTooltip, 8737: UI_FadeTooltip, 8737: UI_AnimateToolBox 8737: }; 8737: 8737: enum CursorShape { 8737: ArrowCursor, 8737: UpArrowCursor, 8737: CrossCursor, 8737: WaitCursor, 8737: IBeamCursor, 8737: SizeVerCursor, 8737: SizeHorCursor, 8737: SizeBDiagCursor, 8737: SizeFDiagCursor, 8737: SizeAllCursor, 8737: BlankCursor, 8737: SplitVCursor, 8737: SplitHCursor, 8737: PointingHandCursor, 8737: ForbiddenCursor, 8737: WhatsThisCursor, 8737: BusyCursor, 8737: OpenHandCursor, 8737: ClosedHandCursor, 8737: DragCopyCursor, 8737: DragMoveCursor, 8737: DragLinkCursor, 8737: LastCursor = DragLinkCursor, 8737: BitmapCursor = 24, 8737: CustomCursor = 25 8737: }; 8737: 8737: enum TextFormat { 8737: PlainText, 8737: RichText, 8737: AutoText 8737: }; 8737: 8737: enum AspectRatioMode { 8737: IgnoreAspectRatio, 8737: KeepAspectRatio, 8737: KeepAspectRatioByExpanding 8737: }; 8737: 8737: enum DockWidgetArea { 8737: LeftDockWidgetArea = 0x1, 8737: RightDockWidgetArea = 0x2, 8737: TopDockWidgetArea = 0x4, 8737: BottomDockWidgetArea = 0x8, 8737: 8737: DockWidgetArea_Mask = 0xf, 8737: AllDockWidgetAreas = DockWidgetArea_Mask, 8737: NoDockWidgetArea = 0 8737: }; 8737: enum DockWidgetAreaSizes { 8737: NDockWidgetAreas = 4 8737: }; 8737: 8737: typedef QFlags DockWidgetAreas; 8737: 8737: enum ToolBarArea { 8737: LeftToolBarArea = 0x1, 8737: RightToolBarArea = 0x2, 8737: TopToolBarArea = 0x4, 8737: BottomToolBarArea = 0x8, 8737: 8737: ToolBarArea_Mask = 0xf, 8737: AllToolBarAreas = ToolBarArea_Mask, 8737: NoToolBarArea = 0 8737: }; 8737: 8737: enum ToolBarAreaSizes { 8737: NToolBarAreas = 4 8737: }; 8737: 8737: typedef QFlags ToolBarAreas; 8737: 8737: enum DateFormat { 8737: TextDate, 8737: ISODate, 8737: SystemLocaleDate, 8737: LocalDate = SystemLocaleDate, 8737: LocaleDate, 8737: SystemLocaleShortDate, 8737: SystemLocaleLongDate, 8737: DefaultLocaleShortDate, 8737: DefaultLocaleLongDate, 8737: RFC2822Date, 8737: ISODateWithMs 8737: }; 8737: 8737: enum TimeSpec { 8737: LocalTime, 8737: UTC, 8737: OffsetFromUTC, 8737: TimeZone 8737: }; 8737: 8737: enum DayOfWeek { 8737: Monday = 1, 8737: Tuesday = 2, 8737: Wednesday = 3, 8737: Thursday = 4, 8737: Friday = 5, 8737: Saturday = 6, 8737: Sunday = 7 8737: }; 8737: 8737: enum ScrollBarPolicy { 8737: ScrollBarAsNeeded, 8737: ScrollBarAlwaysOff, 8737: ScrollBarAlwaysOn 8737: }; 8737: 8737: enum CaseSensitivity { 8737: CaseInsensitive, 8737: CaseSensitive 8737: }; 8737: 8737: enum Corner { 8737: TopLeftCorner = 0x00000, 8737: TopRightCorner = 0x00001, 8737: BottomLeftCorner = 0x00002, 8737: BottomRightCorner = 0x00003 8737: }; 8737: 8737: enum Edge { 8737: TopEdge = 0x00001, 8737: LeftEdge = 0x00002, 8737: RightEdge = 0x00004, 8737: BottomEdge = 0x00008 8737: }; 8737: 8737: typedef QFlags Edges; 8737: 8737: enum ConnectionType { 8737: AutoConnection, 8737: DirectConnection, 8737: QueuedConnection, 8737: BlockingQueuedConnection, 8737: UniqueConnection = 0x80 8737: }; 8737: 8737: enum ShortcutContext { 8737: WidgetShortcut, 8737: WindowShortcut, 8737: ApplicationShortcut, 8737: WidgetWithChildrenShortcut 8737: }; 8737: 8737: enum FillRule { 8737: OddEvenFill, 8737: WindingFill 8737: }; 8737: 8737: enum MaskMode { 8737: MaskInColor, 8737: MaskOutColor 8737: }; 8737: 8737: enum ClipOperation { 8737: NoClip, 8737: ReplaceClip, 8737: IntersectClip 8737: }; 8737: 8737: 8737: enum ItemSelectionMode { 8737: ContainsItemShape = 0x0, 8737: IntersectsItemShape = 0x1, 8737: ContainsItemBoundingRect = 0x2, 8737: IntersectsItemBoundingRect = 0x3 8737: }; 8737: 8737: enum ItemSelectionOperation { 8737: ReplaceSelection, 8737: AddToSelection 8737: }; 8737: 8737: enum TransformationMode { 8737: FastTransformation, 8737: SmoothTransformation 8737: }; 8737: 8737: enum Axis { 8737: XAxis, 8737: YAxis, 8737: ZAxis 8737: }; 8737: 8737: enum FocusReason { 8737: MouseFocusReason, 8737: TabFocusReason, 8737: BacktabFocusReason, 8737: ActiveWindowFocusReason, 8737: PopupFocusReason, 8737: ShortcutFocusReason, 8737: MenuBarFocusReason, 8737: OtherFocusReason, 8737: NoFocusReason 8737: }; 8737: 8737: enum ContextMenuPolicy { 8737: NoContextMenu, 8737: DefaultContextMenu, 8737: ActionsContextMenu, 8737: CustomContextMenu, 8737: PreventContextMenu 8737: }; 8737: 8737: enum InputMethodQuery { 8737: ImEnabled = 0x1, 8737: ImCursorRectangle = 0x2, 8737: ImMicroFocus = 0x2, 8737: ImFont = 0x4, 8737: ImCursorPosition = 0x8, 8737: ImSurroundingText = 0x10, 8737: ImCurrentSelection = 0x20, 8737: ImMaximumTextLength = 0x40, 8737: ImAnchorPosition = 0x80, 8737: ImHints = 0x100, 8737: ImPreferredLanguage = 0x200, 8737: 8737: ImAbsolutePosition = 0x400, 8737: ImTextBeforeCursor = 0x800, 8737: ImTextAfterCursor = 0x1000, 8737: ImEnterKeyType = 0x2000, 8737: ImAnchorRectangle = 0x4000, 8737: ImInputItemClipRectangle = 0x8000, 8737: 8737: ImPlatformData = 0x80000000, 8737: ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText | 8737: ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition, 8737: ImQueryAll = 0xffffffff 8737: }; 8737: typedef QFlags InputMethodQueries; 8737: 8737: enum InputMethodHint { 8737: ImhNone = 0x0, 8737: 8737: ImhHiddenText = 0x1, 8737: ImhSensitiveData = 0x2, 8737: ImhNoAutoUppercase = 0x4, 8737: ImhPreferNumbers = 0x8, 8737: ImhPreferUppercase = 0x10, 8737: ImhPreferLowercase = 0x20, 8737: ImhNoPredictiveText = 0x40, 8737: 8737: ImhDate = 0x80, 8737: ImhTime = 0x100, 8737: 8737: ImhPreferLatin = 0x200, 8737: 8737: ImhMultiLine = 0x400, 8737: 8737: ImhDigitsOnly = 0x10000, 8737: ImhFormattedNumbersOnly = 0x20000, 8737: ImhUppercaseOnly = 0x40000, 8737: ImhLowercaseOnly = 0x80000, 8737: ImhDialableCharactersOnly = 0x100000, 8737: ImhEmailCharactersOnly = 0x200000, 8737: ImhUrlCharactersOnly = 0x400000, 8737: ImhLatinOnly = 0x800000, 8737: 8737: ImhExclusiveInputMask = 0xffff0000 8737: }; 8737: typedef QFlags InputMethodHints; 8737: 8737: enum EnterKeyType { 8737: EnterKeyDefault, 8737: EnterKeyReturn, 8737: EnterKeyDone, 8737: EnterKeyGo, 8737: EnterKeySend, 8737: EnterKeySearch, 8737: EnterKeyNext, 8737: EnterKeyPrevious 8737: }; 8737: 8737: enum ToolButtonStyle { 8737: ToolButtonIconOnly, 8737: ToolButtonTextOnly, 8737: ToolButtonTextBesideIcon, 8737: ToolButtonTextUnderIcon, 8737: ToolButtonFollowStyle 8737: }; 8737: 8737: enum LayoutDirection { 8737: LeftToRight, 8737: RightToLeft, 8737: LayoutDirectionAuto 8737: }; 8737: 8737: enum AnchorPoint { 8737: AnchorLeft = 0, 8737: AnchorHorizontalCenter, 8737: AnchorRight, 8737: AnchorTop, 8737: AnchorVerticalCenter, 8737: AnchorBottom 8737: }; 8737: 8737: enum FindChildOption { 8737: FindDirectChildrenOnly = 0x0, 8737: FindChildrenRecursively = 0x1 8737: }; 8737: typedef QFlags FindChildOptions; 8737: 8737: enum DropAction { 8737: CopyAction = 0x1, 8737: MoveAction = 0x2, 8737: LinkAction = 0x4, 8737: ActionMask = 0xff, 8737: TargetMoveAction = 0x8002, 8737: IgnoreAction = 0x0 8737: }; 8737: typedef QFlags DropActions; 8737: 8737: enum CheckState { 8737: Unchecked, 8737: PartiallyChecked, 8737: Checked 8737: }; 8737: 8737: enum ItemDataRole { 8737: DisplayRole = 0, 8737: DecorationRole = 1, 8737: EditRole = 2, 8737: ToolTipRole = 3, 8737: StatusTipRole = 4, 8737: WhatsThisRole = 5, 8737: 8737: FontRole = 6, 8737: TextAlignmentRole = 7, 8737: BackgroundColorRole = 8, 8737: BackgroundRole = 8, 8737: TextColorRole = 9, 8737: ForegroundRole = 9, 8737: CheckStateRole = 10, 8737: 8737: AccessibleTextRole = 11, 8737: AccessibleDescriptionRole = 12, 8737: 8737: SizeHintRole = 13, 8737: InitialSortOrderRole = 14, 8737: 8737: DisplayPropertyRole = 27, 8737: DecorationPropertyRole = 28, 8737: ToolTipPropertyRole = 29, 8737: StatusTipPropertyRole = 30, 8737: WhatsThisPropertyRole = 31, 8737: 8737: UserRole = 0x0100 8737: }; 8737: 8737: enum ItemFlag { 8737: NoItemFlags = 0, 8737: ItemIsSelectable = 1, 8737: ItemIsEditable = 2, 8737: ItemIsDragEnabled = 4, 8737: ItemIsDropEnabled = 8, 8737: ItemIsUserCheckable = 16, 8737: ItemIsEnabled = 32, 8737: ItemIsAutoTristate = 64, 8737: 8737: ItemIsTristate = ItemIsAutoTristate, 8737: 8737: ItemNeverHasChildren = 128, 8737: ItemIsUserTristate = 256 8737: }; 8737: typedef QFlags ItemFlags; 8737: 8737: enum MatchFlag { 8737: MatchExactly = 0, 8737: MatchContains = 1, 8737: MatchStartsWith = 2, 8737: MatchEndsWith = 3, 8737: MatchRegExp = 4, 8737: MatchWildcard = 5, 8737: MatchFixedString = 8, 8737: MatchCaseSensitive = 16, 8737: MatchWrap = 32, 8737: MatchRecursive = 64 8737: }; 8737: typedef QFlags MatchFlags; 8737: 8737: typedef void * HANDLE; 8737: 8737: 8737: 8737: 8737: enum WindowModality { 8737: NonModal, 8737: WindowModal, 8737: ApplicationModal 8737: }; 8737: 8737: enum TextInteractionFlag { 8737: NoTextInteraction = 0, 8737: TextSelectableByMouse = 1, 8737: TextSelectableByKeyboard = 2, 8737: LinksAccessibleByMouse = 4, 8737: LinksAccessibleByKeyboard = 8, 8737: TextEditable = 16, 8737: 8737: TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable, 8737: TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard 8737: }; 8737: typedef QFlags TextInteractionFlags; 8737: 8737: enum EventPriority { 8737: HighEventPriority = 1, 8737: NormalEventPriority = 0, 8737: LowEventPriority = -1 8737: }; 8737: 8737: enum SizeHint { 8737: MinimumSize, 8737: PreferredSize, 8737: MaximumSize, 8737: MinimumDescent, 8737: NSizeHints 8737: }; 8737: 8737: enum WindowFrameSection { 8737: NoSection, 8737: LeftSection, 8737: TopLeftSection, 8737: TopSection, 8737: TopRightSection, 8737: RightSection, 8737: BottomRightSection, 8737: BottomSection, 8737: BottomLeftSection, 8737: TitleBarArea 8737: }; 8737: 8737: 8737: enum class Initialization { 8737: Uninitialized 8737: }; 8737: static constexpr __attribute__((__unused__)) Initialization Uninitialized = Initialization::Uninitialized; 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum CoordinateSystem { 8737: DeviceCoordinates, 8737: LogicalCoordinates 8737: }; 8737: 8737: enum TouchPointState { 8737: TouchPointPressed = 0x01, 8737: TouchPointMoved = 0x02, 8737: TouchPointStationary = 0x04, 8737: TouchPointReleased = 0x08 8737: }; 8737: typedef QFlags TouchPointStates; 8737: 8737: 8737: enum GestureState 8737: { 8737: NoGesture, 8737: GestureStarted = 1, 8737: GestureUpdated = 2, 8737: GestureFinished = 3, 8737: GestureCanceled = 4 8737: }; 8737: 8737: enum GestureType 8737: { 8737: TapGesture = 1, 8737: TapAndHoldGesture = 2, 8737: PanGesture = 3, 8737: PinchGesture = 4, 8737: SwipeGesture = 5, 8737: 8737: CustomGesture = 0x0100, 8737: 8737: LastGestureType = ~0u 8737: }; 8737: 8737: enum GestureFlag 8737: { 8737: DontStartGestureOnChildren = 0x01, 8737: ReceivePartialGestures = 0x02, 8737: IgnoredGesturesPropagateToParent = 0x04 8737: }; 8737: typedef QFlags GestureFlags; 8737: 8737: enum NativeGestureType 8737: { 8737: BeginNativeGesture, 8737: EndNativeGesture, 8737: PanNativeGesture, 8737: ZoomNativeGesture, 8737: SmartZoomNativeGesture, 8737: RotateNativeGesture, 8737: SwipeNativeGesture 8737: }; 8737: 8737: 8737: 8737: enum NavigationMode 8737: { 8737: NavigationModeNone, 8737: NavigationModeKeypadTabOrder, 8737: NavigationModeKeypadDirectional, 8737: NavigationModeCursorAuto, 8737: NavigationModeCursorForceVisible 8737: }; 8737: 8737: enum CursorMoveStyle { 8737: LogicalMoveStyle, 8737: VisualMoveStyle 8737: }; 8737: 8737: enum TimerType { 8737: PreciseTimer, 8737: CoarseTimer, 8737: VeryCoarseTimer 8737: }; 8737: 8737: enum ScrollPhase { 8737: NoScrollPhase = 0, 8737: ScrollBegin, 8737: ScrollUpdate, 8737: ScrollEnd 8737: }; 8737: 8737: enum MouseEventSource { 8737: MouseEventNotSynthesized, 8737: MouseEventSynthesizedBySystem, 8737: MouseEventSynthesizedByQt, 8737: MouseEventSynthesizedByApplication 8737: }; 8737: 8737: enum MouseEventFlag { 8737: MouseEventCreatedDoubleClick = 0x01, 8737: MouseEventFlagMask = 0xFF 8737: }; 8737: typedef QFlags MouseEventFlags; 8737: 8737: enum ChecksumType { 8737: ChecksumIso3309, 8737: ChecksumItuV41 8737: }; 8737: 8737: 8737: 8737: inline const QMetaObject *qt_getEnumMetaObject(ScrollBarPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollBarPolicy) noexcept { return "ScrollBarPolicy"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(FocusPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusPolicy) noexcept { return "FocusPolicy"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ContextMenuPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ContextMenuPolicy) noexcept { return "ContextMenuPolicy"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ArrowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ArrowType) noexcept { return "ArrowType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ToolButtonStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolButtonStyle) noexcept { return "ToolButtonStyle"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(PenStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenStyle) noexcept { return "PenStyle"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(PenCapStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenCapStyle) noexcept { return "PenCapStyle"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(PenJoinStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenJoinStyle) noexcept { return "PenJoinStyle"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(BrushStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BrushStyle) noexcept { return "BrushStyle"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(FillRule) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FillRule) noexcept { return "FillRule"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(MaskMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MaskMode) noexcept { return "MaskMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(BGMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BGMode) noexcept { return "BGMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ClipOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ClipOperation) noexcept { return "ClipOperation"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(SizeMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeMode) noexcept { return "SizeMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Axis) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Axis) noexcept { return "Axis"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Corner) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Corner) noexcept { return "Corner"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Edge) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edge) noexcept { return "Edge"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(LayoutDirection) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(LayoutDirection) noexcept { return "LayoutDirection"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(SizeHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeHint) noexcept { return "SizeHint"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Orientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientation) noexcept { return "Orientation"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(DropAction) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropAction) noexcept { return "DropAction"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Alignment) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Alignment) noexcept { return "Alignment"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TextFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFlag) noexcept { return "TextFlag"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Orientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientations) noexcept { return "Orientations"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(DropActions) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropActions) noexcept { return "DropActions"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Edges) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edges) noexcept { return "Edges"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetAreas) noexcept { return "DockWidgetAreas"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ToolBarAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarAreas) noexcept { return "ToolBarAreas"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetArea) noexcept { return "DockWidgetArea"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ToolBarArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarArea) noexcept { return "ToolBarArea"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TextFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFormat) noexcept { return "TextFormat"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TextElideMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextElideMode) noexcept { return "TextElideMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(DateFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DateFormat) noexcept { return "DateFormat"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TimeSpec) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimeSpec) noexcept { return "TimeSpec"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(DayOfWeek) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DayOfWeek) noexcept { return "DayOfWeek"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(CursorShape) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorShape) noexcept { return "CursorShape"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(GlobalColor) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GlobalColor) noexcept { return "GlobalColor"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(AspectRatioMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(AspectRatioMode) noexcept { return "AspectRatioMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TransformationMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TransformationMode) noexcept { return "TransformationMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ImageConversionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ImageConversionFlags) noexcept { return "ImageConversionFlags"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(Key) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Key) noexcept { return "Key"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ShortcutContext) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ShortcutContext) noexcept { return "ShortcutContext"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlag) noexcept { return "TextInteractionFlag"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlags) noexcept { return "TextInteractionFlags"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionMode) noexcept { return "ItemSelectionMode"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionOperation) noexcept { return "ItemSelectionOperation"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ItemFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemFlags) noexcept { return "ItemFlags"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(CheckState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CheckState) noexcept { return "CheckState"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ItemDataRole) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemDataRole) noexcept { return "ItemDataRole"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(SortOrder) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SortOrder) noexcept { return "SortOrder"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(CaseSensitivity) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CaseSensitivity) noexcept { return "CaseSensitivity"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(MatchFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MatchFlags) noexcept { return "MatchFlags"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(KeyboardModifiers) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(KeyboardModifiers) noexcept { return "KeyboardModifiers"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(MouseButtons) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseButtons) noexcept { return "MouseButtons"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(WindowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowType) noexcept { return "WindowType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(WindowState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowState) noexcept { return "WindowState"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(WindowModality) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowModality) noexcept { return "WindowModality"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(WidgetAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WidgetAttribute) noexcept { return "WidgetAttribute"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ApplicationAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationAttribute) noexcept { return "ApplicationAttribute"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(WindowFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowFlags) noexcept { return "WindowFlags"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(WindowStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowStates) noexcept { return "WindowStates"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(FocusReason) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusReason) noexcept { return "FocusReason"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHint) noexcept { return "InputMethodHint"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQuery) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQuery) noexcept { return "InputMethodQuery"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHints) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHints) noexcept { return "InputMethodHints"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(EnterKeyType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(EnterKeyType) noexcept { return "EnterKeyType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQueries) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQueries) noexcept { return "InputMethodQueries"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TouchPointStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TouchPointStates) noexcept { return "TouchPointStates"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientation) noexcept { return "ScreenOrientation"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientations) noexcept { return "ScreenOrientations"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ConnectionType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ConnectionType) noexcept { return "ConnectionType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ApplicationState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationState) noexcept { return "ApplicationState"; } 8737: 8737: inline const QMetaObject *qt_getEnumMetaObject(GestureState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureState) noexcept { return "GestureState"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(GestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureType) noexcept { return "GestureType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(NativeGestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(NativeGestureType) noexcept { return "NativeGestureType"; } 8737: 8737: inline const QMetaObject *qt_getEnumMetaObject(CursorMoveStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorMoveStyle) noexcept { return "CursorMoveStyle"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TimerType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimerType) noexcept { return "TimerType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ScrollPhase) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollPhase) noexcept { return "ScrollPhase"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(MouseEventSource) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventSource) noexcept { return "MouseEventSource"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(MouseEventFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventFlag) noexcept { return "MouseEventFlag"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(ChecksumType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ChecksumType) noexcept { return "ChecksumType"; } 8737: inline const QMetaObject *qt_getEnumMetaObject(TabFocusBehavior) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TabFocusBehavior) noexcept { return "TabFocusBehavior"; } 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 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); } 8737: 8737: 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); } 8737: 8737: 8737: typedef bool (*qInternalCallback)(void **); 8737: 8737: class __attribute__((visibility("default"))) QInternal { 8737: public: 8737: enum PaintDeviceFlags { 8737: UnknownDevice = 0x00, 8737: Widget = 0x01, 8737: Pixmap = 0x02, 8737: Image = 0x03, 8737: Printer = 0x04, 8737: Picture = 0x05, 8737: Pbuffer = 0x06, 8737: FramebufferObject = 0x07, 8737: CustomRaster = 0x08, 8737: MacQuartz = 0x09, 8737: PaintBuffer = 0x0a, 8737: OpenGL = 0x0b 8737: }; 8737: enum RelayoutType { 8737: RelayoutNormal, 8737: RelayoutDragging, 8737: RelayoutDropped 8737: }; 8737: 8737: enum DockPosition { 8737: LeftDock, 8737: RightDock, 8737: TopDock, 8737: BottomDock, 8737: DockCount 8737: }; 8737: 8737: enum Callback { 8737: EventNotifyCallback, 8737: LastCallback 8737: }; 8737: static bool registerCallback(Callback, qInternalCallback); 8737: static bool unregisterCallback(Callback, qInternalCallback); 8737: static bool activateCallbacks(Callback, void **); 8737: }; 8737: 8737: 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8737: # 1 "/usr/include/string.h" 1 3 4 8737: # 26 "/usr/include/string.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8737: # 27 "/usr/include/string.h" 2 3 4 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 34 "/usr/include/string.h" 2 3 4 8737: # 42 "/usr/include/string.h" 3 4 8737: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 8737: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern void *memmove (void *__dest, const void *__src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: 8737: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 8737: int __c, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern "C++" 8737: { 8737: extern void *memchr (void *__s, int __c, size_t __n) 8737: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern const void *memchr (const void *__s, int __c, size_t __n) 8737: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 8737: memchr (void *__s, int __c, size_t __n) throw () 8737: { 8737: return __builtin_memchr (__s, __c, __n); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 8737: memchr (const void *__s, int __c, size_t __n) throw () 8737: { 8737: return __builtin_memchr (__s, __c, __n); 8737: } 8737: 8737: } 8737: # 98 "/usr/include/string.h" 3 4 8737: extern "C++" void *rawmemchr (void *__s, int __c) 8737: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern "C++" const void *rawmemchr (const void *__s, int __c) 8737: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 8737: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 8737: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: # 121 "/usr/include/string.h" 3 4 8737: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern char *strncpy (char *__restrict __dest, 8737: const char *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 8737: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int strcmp (const char *__s1, const char *__s2) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int strcoll (const char *__s1, const char *__s2) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern size_t strxfrm (char *__restrict __dest, 8737: const char *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8737: 8737: 8737: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 8737: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 8737: 8737: 8737: 8737: 8737: 8737: extern char *strdup (const char *__s) 8737: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern char *strndup (const char *__string, size_t __n) 8737: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8737: # 203 "/usr/include/string.h" 3 4 8737: extern "C++" 8737: { 8737: extern char *strchr (char *__s, int __c) 8737: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern const char *strchr (const char *__s, int __c) 8737: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8737: strchr (char *__s, int __c) throw () 8737: { 8737: return __builtin_strchr (__s, __c); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8737: strchr (const char *__s, int __c) throw () 8737: { 8737: return __builtin_strchr (__s, __c); 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" 8737: { 8737: extern char *strrchr (char *__s, int __c) 8737: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern const char *strrchr (const char *__s, int __c) 8737: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8737: strrchr (char *__s, int __c) throw () 8737: { 8737: return __builtin_strrchr (__s, __c); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8737: strrchr (const char *__s, int __c) throw () 8737: { 8737: return __builtin_strrchr (__s, __c); 8737: } 8737: 8737: } 8737: # 260 "/usr/include/string.h" 3 4 8737: extern "C++" char *strchrnul (char *__s, int __c) 8737: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern "C++" const char *strchrnul (const char *__s, int __c) 8737: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: # 272 "/usr/include/string.h" 3 4 8737: extern size_t strcspn (const char *__s, const char *__reject) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern size_t strspn (const char *__s, const char *__accept) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern "C++" 8737: { 8737: extern char *strpbrk (char *__s, const char *__accept) 8737: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: extern const char *strpbrk (const char *__s, const char *__accept) 8737: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8737: strpbrk (char *__s, const char *__accept) throw () 8737: { 8737: return __builtin_strpbrk (__s, __accept); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8737: strpbrk (const char *__s, const char *__accept) throw () 8737: { 8737: return __builtin_strpbrk (__s, __accept); 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" 8737: { 8737: extern char *strstr (char *__haystack, const char *__needle) 8737: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: extern const char *strstr (const char *__haystack, const char *__needle) 8737: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8737: strstr (char *__haystack, const char *__needle) throw () 8737: { 8737: return __builtin_strstr (__haystack, __needle); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8737: strstr (const char *__haystack, const char *__needle) throw () 8737: { 8737: return __builtin_strstr (__haystack, __needle); 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: 8737: extern char *__strtok_r (char *__restrict __s, 8737: const char *__restrict __delim, 8737: char **__restrict __save_ptr) 8737: throw () __attribute__ ((__nonnull__ (2, 3))); 8737: 8737: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 8737: char **__restrict __save_ptr) 8737: throw () __attribute__ ((__nonnull__ (2, 3))); 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 8737: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: extern "C++" const char *strcasestr (const char *__haystack, 8737: const char *__needle) 8737: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: # 368 "/usr/include/string.h" 3 4 8737: extern void *memmem (const void *__haystack, size_t __haystacklen, 8737: const void *__needle, size_t __needlelen) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: 8737: extern void *__mempcpy (void *__restrict __dest, 8737: const void *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: extern void *mempcpy (void *__restrict __dest, 8737: const void *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern size_t strlen (const char *__s) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: extern size_t strnlen (const char *__string, size_t __maxlen) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: extern char *strerror (int __errnum) throw (); 8737: # 420 "/usr/include/string.h" 3 4 8737: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 8737: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern char *strerror_l (int __errnum, locale_t __l) throw (); 8737: 8737: 8737: 8737: # 1 "/usr/include/strings.h" 1 3 4 8737: # 23 "/usr/include/strings.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 24 "/usr/include/strings.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern void bcopy (const void *__src, void *__dest, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern "C++" 8737: { 8737: extern char *index (char *__s, int __c) 8737: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern const char *index (const char *__s, int __c) 8737: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8737: index (char *__s, int __c) throw () 8737: { 8737: return __builtin_index (__s, __c); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8737: index (const char *__s, int __c) throw () 8737: { 8737: return __builtin_index (__s, __c); 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" 8737: { 8737: extern char *rindex (char *__s, int __c) 8737: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: extern const char *rindex (const char *__s, int __c) 8737: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8737: rindex (char *__s, int __c) throw () 8737: { 8737: return __builtin_rindex (__s, __c); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8737: rindex (const char *__s, int __c) throw () 8737: { 8737: return __builtin_rindex (__s, __c); 8737: } 8737: 8737: } 8737: # 104 "/usr/include/strings.h" 3 4 8737: extern int ffs (int __i) throw () __attribute__ ((__const__)); 8737: 8737: 8737: 8737: 8737: 8737: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 8737: __extension__ extern int ffsll (long long int __ll) 8737: throw () __attribute__ ((__const__)); 8737: 8737: 8737: 8737: extern int strcasecmp (const char *__s1, const char *__s2) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8737: 8737: 8737: 8737: extern int strncasecmp_l (const char *__s1, const char *__s2, 8737: size_t __n, locale_t __loc) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" 1 3 4 8737: # 22 "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" 3 4 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8737: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 8737: { 8737: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8737: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 8737: { 8737: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 8737: } 8737: # 145 "/usr/include/strings.h" 2 3 4 8737: # 432 "/usr/include/string.h" 2 3 4 8737: 8737: 8737: 8737: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern char *strsep (char **__restrict __stringp, 8737: const char *__restrict __delim) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern char *strsignal (int __sig) throw (); 8737: 8737: 8737: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern char *__stpncpy (char *__restrict __dest, 8737: const char *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: extern char *stpncpy (char *__restrict __dest, 8737: const char *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern int strverscmp (const char *__s1, const char *__s2) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" char *basename (char *__filename) 8737: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8737: extern "C++" const char *basename (const char *__filename) 8737: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8737: # 494 "/usr/include/string.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 1 3 4 8737: # 30 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8737: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8737: 8737: { 8737: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8737: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 8737: { 8737: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8737: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8737: 8737: { 8737: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8737: } 8737: # 58 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8737: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 8737: { 8737: # 71 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 8737: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 8737: } 8737: 8737: 8737: 8737: 8737: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8737: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 8737: { 8737: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8737: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 8737: { 8737: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8737: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 8737: { 8737: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8737: } 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8737: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8737: 8737: { 8737: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8737: } 8737: 8737: 8737: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 8737: size_t __destlen) throw (); 8737: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8737: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 8737: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 8737: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 8737: return __stpncpy_alias (__dest, __src, __n); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8737: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 8737: { 8737: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8737: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8737: 8737: { 8737: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8737: } 8737: # 495 "/usr/include/string.h" 2 3 4 8737: 8737: 8737: 8737: } 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 2 3 4 8737: 8737: 8737: 8737: struct __attribute__((visibility("default"))) QArrayData 8737: { 8737: QtPrivate::RefCount ref; 8737: int size; 8737: uint alloc : 31; 8737: uint capacityReserved : 1; 8737: 8737: qptrdiff offset; 8737: 8737: void *data() 8737: { 8737: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8737: ; 8737: return reinterpret_cast(this) + offset; 8737: } 8737: 8737: const void *data() const 8737: { 8737: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8737: ; 8737: return reinterpret_cast(this) + offset; 8737: } 8737: 8737: 8737: 8737: 8737: bool isMutable() const 8737: { 8737: return alloc != 0; 8737: } 8737: 8737: enum AllocationOption { 8737: CapacityReserved = 0x1, 8737: 8737: Unsharable = 0x2, 8737: 8737: RawData = 0x4, 8737: Grow = 0x8, 8737: 8737: Default = 0 8737: }; 8737: 8737: typedef QFlags AllocationOptions; 8737: 8737: size_t detachCapacity(size_t newSize) const 8737: { 8737: if (capacityReserved && newSize < alloc) 8737: return alloc; 8737: return newSize; 8737: } 8737: 8737: AllocationOptions detachFlags() const 8737: { 8737: AllocationOptions result; 8737: if (capacityReserved) 8737: result |= CapacityReserved; 8737: return result; 8737: } 8737: 8737: AllocationOptions cloneFlags() const 8737: { 8737: AllocationOptions result; 8737: if (capacityReserved) 8737: result |= CapacityReserved; 8737: return result; 8737: } 8737: 8737: [[nodiscard]] static QArrayData *allocate(size_t objectSize, size_t alignment, 8737: size_t capacity, AllocationOptions options = Default) noexcept; 8737: [[nodiscard]] static QArrayData *reallocateUnaligned(QArrayData *data, size_t objectSize, 8737: size_t newCapacity, AllocationOptions newOptions = Default) noexcept; 8737: static void deallocate(QArrayData *data, size_t objectSize, 8737: size_t alignment) noexcept; 8737: 8737: static const QArrayData shared_null[2]; 8737: static QArrayData *sharedNull() noexcept { return const_cast(shared_null); } 8737: }; 8737: 8737: 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); } 8737: 8737: template 8737: struct QTypedArrayData 8737: : QArrayData 8737: { 8737: 8737: class iterator { 8737: public: 8737: T *i; 8737: typedef std::random_access_iterator_tag iterator_category; 8737: typedef int difference_type; 8737: typedef T value_type; 8737: typedef T *pointer; 8737: typedef T &reference; 8737: 8737: inline iterator() : i(nullptr) {} 8737: inline iterator(T *n) : i(n) {} 8737: inline iterator(const iterator &o): i(o.i){} 8737: inline T &operator*() const { return *i; } 8737: inline T *operator->() const { return i; } 8737: inline T &operator[](int j) const { return *(i + j); } 8737: inline bool operator==(const iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const iterator &o) const { return i != o.i; } 8737: inline bool operator<(const iterator& other) const { return i < other.i; } 8737: inline bool operator<=(const iterator& other) const { return i <= other.i; } 8737: inline bool operator>(const iterator& other) const { return i > other.i; } 8737: inline bool operator>=(const iterator& other) const { return i >= other.i; } 8737: inline iterator &operator++() { ++i; return *this; } 8737: inline iterator operator++(int) { T *n = i; ++i; return n; } 8737: inline iterator &operator--() { i--; return *this; } 8737: inline iterator operator--(int) { T *n = i; i--; return n; } 8737: inline iterator &operator+=(int j) { i+=j; return *this; } 8737: inline iterator &operator-=(int j) { i-=j; return *this; } 8737: inline iterator operator+(int j) const { return iterator(i+j); } 8737: inline iterator operator-(int j) const { return iterator(i-j); } 8737: inline int operator-(iterator j) const { return i - j.i; } 8737: inline operator T*() const { return i; } 8737: }; 8737: friend class iterator; 8737: 8737: class const_iterator { 8737: public: 8737: const T *i; 8737: typedef std::random_access_iterator_tag iterator_category; 8737: typedef int difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: 8737: inline const_iterator() : i(nullptr) {} 8737: inline const_iterator(const T *n) : i(n) {} 8737: inline const_iterator(const const_iterator &o): i(o.i) {} 8737: inline explicit const_iterator(const iterator &o): i(o.i) {} 8737: inline const T &operator*() const { return *i; } 8737: inline const T *operator->() const { return i; } 8737: inline const T &operator[](int j) const { return *(i + j); } 8737: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8737: inline bool operator<(const const_iterator& other) const { return i < other.i; } 8737: inline bool operator<=(const const_iterator& other) const { return i <= other.i; } 8737: inline bool operator>(const const_iterator& other) const { return i > other.i; } 8737: inline bool operator>=(const const_iterator& other) const { return i >= other.i; } 8737: inline const_iterator &operator++() { ++i; return *this; } 8737: inline const_iterator operator++(int) { const T *n = i; ++i; return n; } 8737: inline const_iterator &operator--() { i--; return *this; } 8737: inline const_iterator operator--(int) { const T *n = i; i--; return n; } 8737: inline const_iterator &operator+=(int j) { i+=j; return *this; } 8737: inline const_iterator &operator-=(int j) { i-=j; return *this; } 8737: inline const_iterator operator+(int j) const { return const_iterator(i+j); } 8737: inline const_iterator operator-(int j) const { return const_iterator(i-j); } 8737: inline int operator-(const_iterator j) const { return i - j.i; } 8737: inline operator const T*() const { return i; } 8737: }; 8737: friend class const_iterator; 8737: 8737: 8737: 8737: 8737: 8737: T *data() { return static_cast(QArrayData::data()); } 8737: const T *data() const { return static_cast(QArrayData::data()); } 8737: 8737: iterator begin(iterator = iterator()) { return data(); } 8737: iterator end(iterator = iterator()) { return data() + size; } 8737: const_iterator begin(const_iterator = const_iterator()) const { return data(); } 8737: const_iterator end(const_iterator = const_iterator()) const { return data() + size; } 8737: const_iterator constBegin(const_iterator = const_iterator()) const { return data(); } 8737: const_iterator constEnd(const_iterator = const_iterator()) const { return data() + size; } 8737: 8737: class AlignmentDummy { QArrayData header; T data; }; 8737: 8737: [[nodiscard]] static QTypedArrayData *allocate(size_t capacity, 8737: AllocationOptions options = Default) 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: return static_cast(QArrayData::allocate(sizeof(T), 8737: alignof(AlignmentDummy), capacity, options)); 8737: } 8737: 8737: static QTypedArrayData *reallocateUnaligned(QTypedArrayData *data, size_t capacity, 8737: AllocationOptions options = Default) 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: return static_cast(QArrayData::reallocateUnaligned(data, sizeof(T), 8737: capacity, options)); 8737: } 8737: 8737: static void deallocate(QArrayData *data) 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy)); 8737: } 8737: 8737: static QTypedArrayData *fromRawData(const T *data, size_t n, 8737: AllocationOptions options = Default) 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: QTypedArrayData *result = allocate(0, options | RawData); 8737: if (result) { 8737: do { } while ((false) && (!result->ref.isShared())); 8737: 8737: result->offset = reinterpret_cast(data) 8737: - reinterpret_cast(result); 8737: result->size = int(n); 8737: } 8737: return result; 8737: } 8737: 8737: static QTypedArrayData *sharedNull() noexcept 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: return static_cast(QArrayData::sharedNull()); 8737: } 8737: 8737: static QTypedArrayData *sharedEmpty() 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: return allocate( 0); 8737: } 8737: 8737: 8737: static QTypedArrayData *unsharableEmpty() 8737: { 8737: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8737: return allocate( 0, Unsharable); 8737: } 8737: 8737: }; 8737: 8737: template 8737: struct QStaticArrayData 8737: { 8737: QArrayData header; 8737: T data[N]; 8737: }; 8737: 8737: 8737: template 8737: struct QArrayDataPointerRef 8737: { 8737: QTypedArrayData *ptr; 8737: }; 8737: # 369 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8737: namespace QtPrivate { 8737: struct __attribute__((visibility("default"))) QContainerImplHelper 8737: { 8737: enum CutResult { Null, Empty, Full, Subset }; 8737: static CutResult mid(int originalLength, int *position, int *length); 8737: }; 8737: } 8737: 8737: 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: 8737: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8737: # 36 "/usr/include/c++/8/stdlib.h" 3 4 8737: # 1 "/usr/include/c++/8/cstdlib" 1 3 4 8737: # 39 "/usr/include/c++/8/cstdlib" 3 4 8737: 8737: # 40 "/usr/include/c++/8/cstdlib" 3 8737: # 37 "/usr/include/c++/8/stdlib.h" 2 3 4 8737: 8737: using std::abort; 8737: using std::atexit; 8737: using std::exit; 8737: 8737: 8737: using std::at_quick_exit; 8737: 8737: 8737: using std::quick_exit; 8737: 8737: 8737: 8737: 8737: using std::div_t; 8737: using std::ldiv_t; 8737: 8737: using std::abs; 8737: using std::atof; 8737: using std::atoi; 8737: using std::atol; 8737: using std::bsearch; 8737: using std::calloc; 8737: using std::div; 8737: using std::free; 8737: using std::getenv; 8737: using std::labs; 8737: using std::ldiv; 8737: using std::malloc; 8737: 8737: using std::mblen; 8737: using std::mbstowcs; 8737: using std::mbtowc; 8737: 8737: using std::qsort; 8737: using std::rand; 8737: using std::realloc; 8737: using std::srand; 8737: using std::strtod; 8737: using std::strtol; 8737: using std::strtoul; 8737: using std::system; 8737: 8737: using std::wcstombs; 8737: using std::wctomb; 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdarg.h" 1 3 4 8737: # 40 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdarg.h" 3 4 8737: typedef __builtin_va_list __gnuc_va_list; 8737: # 99 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdarg.h" 3 4 8737: typedef __gnuc_va_list va_list; 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: 8737: # 1 "/usr/include/c++/8/string" 1 3 4 8737: # 36 "/usr/include/c++/8/string" 3 4 8737: 8737: # 37 "/usr/include/c++/8/string" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stringfwd.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/stringfwd.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/stringfwd.h" 3 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct char_traits; 8737: 8737: template<> struct char_traits; 8737: 8737: 8737: template<> struct char_traits; 8737: 8737: 8737: 8737: 8737: template<> struct char_traits; 8737: template<> struct char_traits; 8737: 8737: 8737: namespace __cxx11 { 8737: 8737: template, 8737: typename _Alloc = allocator<_CharT> > 8737: class basic_string; 8737: 8737: 8737: typedef basic_string string; 8737: 8737: 8737: 8737: typedef basic_string wstring; 8737: 8737: 8737: 8737: 8737: 8737: typedef basic_string u16string; 8737: 8737: 8737: typedef basic_string u32string; 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: # 40 "/usr/include/c++/8/string" 2 3 8737: # 1 "/usr/include/c++/8/bits/char_traits.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/char_traits.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/char_traits.h" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/postypes.h" 1 3 8737: # 38 "/usr/include/c++/8/bits/postypes.h" 3 8737: 8737: # 39 "/usr/include/c++/8/bits/postypes.h" 3 8737: 8737: # 1 "/usr/include/c++/8/cwchar" 1 3 8737: # 39 "/usr/include/c++/8/cwchar" 3 8737: 8737: # 40 "/usr/include/c++/8/cwchar" 3 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/wchar.h" 1 3 4 8737: # 27 "/usr/include/wchar.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8737: # 28 "/usr/include/wchar.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 36 "/usr/include/wchar.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" 1 3 4 8737: # 20 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" 3 4 8737: typedef unsigned int wint_t; 8737: # 42 "/usr/include/wchar.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" 1 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 8737: # 13 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 3 4 8737: typedef struct 8737: { 8737: int __count; 8737: union 8737: { 8737: unsigned int __wch; 8737: char __wchb[4]; 8737: } __value; 8737: } __mbstate_t; 8737: # 5 "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" 2 3 4 8737: 8737: typedef __mbstate_t mbstate_t; 8737: # 43 "/usr/include/wchar.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" 1 3 4 8737: 8737: 8737: 8737: struct _IO_FILE; 8737: typedef struct _IO_FILE __FILE; 8737: # 44 "/usr/include/wchar.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" 1 3 4 8737: 8737: 8737: 8737: struct _IO_FILE; 8737: 8737: 8737: typedef struct _IO_FILE FILE; 8737: # 47 "/usr/include/wchar.h" 2 3 4 8737: # 79 "/usr/include/wchar.h" 3 4 8737: extern "C" { 8737: 8737: 8737: 8737: struct tm; 8737: 8737: 8737: 8737: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern wchar_t *wcscat (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, size_t __n) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8737: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 8737: 8737: 8737: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 8737: size_t __n) throw (); 8737: 8737: 8737: 8737: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8737: locale_t __loc) throw (); 8737: 8737: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8737: size_t __n, locale_t __loc) throw (); 8737: 8737: 8737: 8737: 8737: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 8737: 8737: 8737: 8737: extern size_t wcsxfrm (wchar_t *__restrict __s1, 8737: const wchar_t *__restrict __s2, size_t __n) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 8737: locale_t __loc) throw (); 8737: 8737: 8737: 8737: 8737: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 8737: size_t __n, locale_t __loc) throw (); 8737: 8737: 8737: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 8737: 8737: 8737: 8737: 8737: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 8737: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8737: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 8737: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 8737: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8737: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 8737: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8737: # 181 "/usr/include/wchar.h" 3 4 8737: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 8737: throw () __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 8737: throw () __attribute__ ((__pure__)); 8737: 8737: 8737: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 8737: throw () __attribute__ ((__pure__)); 8737: 8737: 8737: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 8737: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8737: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 8737: const wchar_t *__accept) 8737: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 8737: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8737: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 8737: const wchar_t *__needle) 8737: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wchar_t *wcstok (wchar_t *__restrict __s, 8737: const wchar_t *__restrict __delim, 8737: wchar_t **__restrict __ptr) throw (); 8737: 8737: 8737: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 8737: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8737: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 8737: const wchar_t *__needle) 8737: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8737: # 240 "/usr/include/wchar.h" 3 4 8737: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 8737: throw () __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: 8737: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 8737: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8737: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 8737: size_t __n) 8737: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8737: throw () __attribute__ ((__pure__)); 8737: 8737: 8737: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 8737: const wchar_t *__restrict __s2, size_t __n) throw (); 8737: 8737: 8737: 8737: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 8737: throw (); 8737: 8737: 8737: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 8737: 8737: 8737: 8737: 8737: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 8737: const wchar_t *__restrict __s2, size_t __n) 8737: throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t btowc (int __c) throw (); 8737: 8737: 8737: 8737: extern int wctob (wint_t __c) throw (); 8737: 8737: 8737: 8737: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 8737: 8737: 8737: 8737: extern size_t mbrtowc (wchar_t *__restrict __pwc, 8737: const char *__restrict __s, size_t __n, 8737: mbstate_t *__restrict __p) throw (); 8737: 8737: 8737: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 8737: mbstate_t *__restrict __ps) throw (); 8737: 8737: 8737: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 8737: mbstate_t *__restrict __ps) throw (); 8737: extern size_t mbrlen (const char *__restrict __s, size_t __n, 8737: mbstate_t *__restrict __ps) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 8737: extern __inline __attribute__ ((__gnu_inline__)) wint_t 8737: __attribute__ ((__leaf__)) btowc (int __c) throw () 8737: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 8737: ? (wint_t) __c : __btowc_alias (__c)); } 8737: 8737: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 8737: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 8737: ? (int) __wc : __wctob_alias (__wc)); } 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) size_t 8737: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 8737: 8737: { return (__ps != __null 8737: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 8737: 8737: 8737: 8737: 8737: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 8737: const char **__restrict __src, size_t __len, 8737: mbstate_t *__restrict __ps) throw (); 8737: 8737: 8737: 8737: extern size_t wcsrtombs (char *__restrict __dst, 8737: const wchar_t **__restrict __src, size_t __len, 8737: mbstate_t *__restrict __ps) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 8737: const char **__restrict __src, size_t __nmc, 8737: size_t __len, mbstate_t *__restrict __ps) throw (); 8737: 8737: 8737: 8737: extern size_t wcsnrtombs (char *__restrict __dst, 8737: const wchar_t **__restrict __src, 8737: size_t __nwc, size_t __len, 8737: mbstate_t *__restrict __ps) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int wcwidth (wchar_t __c) throw (); 8737: 8737: 8737: 8737: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern double wcstod (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr) throw (); 8737: 8737: 8737: 8737: extern float wcstof (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr) throw (); 8737: extern long double wcstold (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr) throw (); 8737: 8737: 8737: 8737: 8737: extern _Float128 wcstof128 (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern long int wcstol (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, int __base) throw (); 8737: 8737: 8737: 8737: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, int __base) 8737: throw (); 8737: 8737: 8737: 8737: 8737: __extension__ 8737: extern long long int wcstoll (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, int __base) 8737: throw (); 8737: 8737: 8737: 8737: __extension__ 8737: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: int __base) throw (); 8737: 8737: 8737: 8737: 8737: 8737: __extension__ 8737: extern long long int wcstoq (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, int __base) 8737: throw (); 8737: 8737: 8737: 8737: __extension__ 8737: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: int __base) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern long int wcstol_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, int __base, 8737: locale_t __loc) throw (); 8737: 8737: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: int __base, locale_t __loc) throw (); 8737: 8737: __extension__ 8737: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: int __base, locale_t __loc) throw (); 8737: 8737: __extension__ 8737: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: int __base, locale_t __loc) 8737: throw (); 8737: 8737: extern double wcstod_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, locale_t __loc) 8737: throw (); 8737: 8737: extern float wcstof_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, locale_t __loc) 8737: throw (); 8737: 8737: extern long double wcstold_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: locale_t __loc) throw (); 8737: 8737: 8737: extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, 8737: wchar_t **__restrict __endptr, 8737: locale_t __loc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src) throw (); 8737: 8737: 8737: 8737: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, size_t __n) 8737: throw (); 8737: # 500 "/usr/include/wchar.h" 3 4 8737: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int fwide (__FILE *__fp, int __mode) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fwprintf (__FILE *__restrict __stream, 8737: const wchar_t *__restrict __format, ...) 8737: ; 8737: 8737: 8737: 8737: 8737: extern int wprintf (const wchar_t *__restrict __format, ...) 8737: ; 8737: 8737: extern int swprintf (wchar_t *__restrict __s, size_t __n, 8737: const wchar_t *__restrict __format, ...) 8737: throw () ; 8737: 8737: 8737: 8737: 8737: 8737: extern int vfwprintf (__FILE *__restrict __s, 8737: const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: ; 8737: 8737: 8737: 8737: 8737: extern int vwprintf (const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: ; 8737: 8737: 8737: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 8737: const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: throw () ; 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fwscanf (__FILE *__restrict __stream, 8737: const wchar_t *__restrict __format, ...) 8737: ; 8737: 8737: 8737: 8737: 8737: extern int wscanf (const wchar_t *__restrict __format, ...) 8737: ; 8737: 8737: extern int swscanf (const wchar_t *__restrict __s, 8737: const wchar_t *__restrict __format, ...) 8737: throw () ; 8737: # 606 "/usr/include/wchar.h" 3 4 8737: extern int vfwscanf (__FILE *__restrict __s, 8737: const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: ; 8737: 8737: 8737: 8737: 8737: extern int vwscanf (const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: ; 8737: 8737: extern int vswscanf (const wchar_t *__restrict __s, 8737: const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: throw () ; 8737: # 660 "/usr/include/wchar.h" 3 4 8737: extern wint_t fgetwc (__FILE *__stream); 8737: extern wint_t getwc (__FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t getwchar (void); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 8737: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t putwchar (wchar_t __wc); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 8737: __FILE *__restrict __stream); 8737: 8737: 8737: 8737: 8737: 8737: extern int fputws (const wchar_t *__restrict __ws, 8737: __FILE *__restrict __stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 8737: # 715 "/usr/include/wchar.h" 3 4 8737: extern wint_t getwc_unlocked (__FILE *__stream); 8737: extern wint_t getwchar_unlocked (void); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t fgetwc_unlocked (__FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 8737: # 741 "/usr/include/wchar.h" 3 4 8737: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 8737: extern wint_t putwchar_unlocked (wchar_t __wc); 8737: # 751 "/usr/include/wchar.h" 3 4 8737: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 8737: __FILE *__restrict __stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fputws_unlocked (const wchar_t *__restrict __ws, 8737: __FILE *__restrict __stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 8737: const wchar_t *__restrict __format, 8737: const struct tm *__restrict __tp) throw (); 8737: 8737: 8737: 8737: 8737: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 8737: const wchar_t *__restrict __format, 8737: const struct tm *__restrict __tp, 8737: locale_t __loc) throw (); 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 1 3 4 8737: # 24 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 3 4 8737: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 8737: const wchar_t *__restrict __s2, size_t __n, 8737: size_t __ns1) throw (); 8737: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8737: 8737: { 8737: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n)) 8737: return __wmemcpy_chk (__s1, __s2, __n, 8737: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8737: 8737: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8737: return __wmemcpy_chk_warn (__s1, __s2, __n, 8737: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8737: } 8737: return __wmemcpy_alias (__s1, __s2, __n); 8737: } 8737: 8737: 8737: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 8737: size_t __n, size_t __ns1) throw (); 8737: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 8737: 8737: ; 8737: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 8737: 8737: 8737: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 8737: { 8737: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n)) 8737: return __wmemmove_chk (__s1, __s2, __n, 8737: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8737: 8737: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8737: return __wmemmove_chk_warn (__s1, __s2, __n, 8737: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8737: } 8737: return __wmemmove_alias (__s1, __s2, __n); 8737: } 8737: 8737: 8737: 8737: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 8737: const wchar_t *__restrict __s2, size_t __n, 8737: size_t __ns1) throw (); 8737: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8737: 8737: { 8737: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n)) 8737: return __wmempcpy_chk (__s1, __s2, __n, 8737: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8737: 8737: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8737: return __wmempcpy_chk_warn (__s1, __s2, __n, 8737: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8737: } 8737: return __wmempcpy_alias (__s1, __s2, __n); 8737: } 8737: 8737: 8737: 8737: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 8737: size_t __ns) throw (); 8737: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 8737: ; 8737: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 8737: 8737: 8737: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 8737: { 8737: if (__builtin_object_size (__s, 0) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n)) 8737: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8737: 8737: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 8737: return __wmemset_chk_warn (__s, __c, __n, 8737: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8737: } 8737: return __wmemset_alias (__s, __c, __n); 8737: } 8737: 8737: 8737: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, 8737: size_t __n) throw (); 8737: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 8737: 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8737: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: return __wcscpy_alias (__dest, __src); 8737: } 8737: 8737: 8737: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, 8737: size_t __destlen) throw (); 8737: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 8737: 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8737: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: return __wcpcpy_alias (__dest, __src); 8737: } 8737: 8737: 8737: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, size_t __n, 8737: size_t __destlen) throw (); 8737: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n)) 8737: return __wcsncpy_chk (__dest, __src, __n, 8737: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8737: return __wcsncpy_chk_warn (__dest, __src, __n, 8737: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: } 8737: return __wcsncpy_alias (__dest, __src, __n); 8737: } 8737: 8737: 8737: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, size_t __n, 8737: size_t __destlen) throw (); 8737: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n)) 8737: return __wcpncpy_chk (__dest, __src, __n, 8737: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8737: return __wcpncpy_chk_warn (__dest, __src, __n, 8737: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: } 8737: return __wcpncpy_alias (__dest, __src, __n); 8737: } 8737: 8737: 8737: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, 8737: size_t __destlen) throw (); 8737: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 8737: 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8737: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: return __wcscat_alias (__dest, __src); 8737: } 8737: 8737: 8737: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 8737: const wchar_t *__restrict __src, 8737: size_t __n, size_t __destlen) throw (); 8737: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 8737: 8737: 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8737: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8737: return __wcsncat_chk (__dest, __src, __n, 8737: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8737: return __wcsncat_alias (__dest, __src, __n); 8737: } 8737: 8737: 8737: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 8737: int __flag, size_t __s_len, 8737: const wchar_t *__restrict __format, ...) 8737: throw () ; 8737: 8737: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 8737: 8737: 8737: ; 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 8737: 8737: { 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8737: return __swprintf_chk (__s, __n, 2 - 1, 8737: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8737: __fmt, __builtin_va_arg_pack ()); 8737: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 8737: } 8737: # 303 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 3 4 8737: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 8737: int __flag, size_t __s_len, 8737: const wchar_t *__restrict __format, 8737: __gnuc_va_list __arg) 8737: throw () ; 8737: 8737: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 8737: 8737: 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 8737: 8737: { 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8737: return __vswprintf_chk (__s, __n, 2 - 1, 8737: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 8737: return __vswprintf_alias (__s, __n, __fmt, __ap); 8737: } 8737: 8737: 8737: 8737: 8737: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 8737: const wchar_t *__restrict __format, ...); 8737: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 8737: ...); 8737: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 8737: const wchar_t *__restrict __format, 8737: __gnuc_va_list __ap); 8737: extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format, 8737: __gnuc_va_list __ap); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: wprintf (const wchar_t *__restrict __fmt, ...) 8737: { 8737: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 8737: { 8737: return __fwprintf_chk (__stream, 2 - 1, __fmt, 8737: __builtin_va_arg_pack ()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8737: { 8737: return __vwprintf_chk (2 - 1, __fmt, __ap); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: vfwprintf (__FILE *__restrict __stream, 8737: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8737: { 8737: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 8737: } 8737: 8737: 8737: 8737: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 8737: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8737: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8737: { 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n) || __n <= 0) 8737: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8737: __n, __stream); 8737: 8737: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8737: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8737: __n, __stream); 8737: } 8737: return __fgetws_alias (__s, __n, __stream); 8737: } 8737: 8737: 8737: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 8737: int __n, __FILE *__restrict __stream) 8737: __attribute__ ((__warn_unused_result__)); 8737: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 8737: 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8737: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8737: { 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n) || __n <= 0) 8737: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8737: __n, __stream); 8737: 8737: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8737: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8737: __n, __stream); 8737: } 8737: return __fgetws_unlocked_alias (__s, __n, __stream); 8737: } 8737: 8737: 8737: 8737: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 8737: mbstate_t *__restrict __p, 8737: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 8737: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8737: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 8737: 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8737: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 8737: return __wcrtomb_alias (__s, __wchar, __ps); 8737: } 8737: 8737: 8737: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 8737: const char **__restrict __src, 8737: size_t __len, mbstate_t *__restrict __ps, 8737: size_t __dstlen) throw (); 8737: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 8737: 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: 8737: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8737: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__len)) 8737: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 8737: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8737: 8737: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8737: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 8737: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8737: } 8737: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 8737: } 8737: 8737: 8737: extern size_t __wcsrtombs_chk (char *__restrict __dst, 8737: const wchar_t **__restrict __src, 8737: size_t __len, mbstate_t *__restrict __ps, 8737: size_t __dstlen) throw (); 8737: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 8737: 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8737: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__len)) 8737: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8737: 8737: if (__len > __builtin_object_size (__dst, 2 > 1)) 8737: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8737: } 8737: return __wcsrtombs_alias (__dst, __src, __len, __ps); 8737: } 8737: 8737: 8737: 8737: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 8737: const char **__restrict __src, size_t __nmc, 8737: size_t __len, mbstate_t *__restrict __ps, 8737: size_t __dstlen) throw (); 8737: 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") 8737: 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: 8737: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8737: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__len)) 8737: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 8737: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8737: 8737: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8737: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 8737: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8737: } 8737: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 8737: } 8737: 8737: 8737: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 8737: const wchar_t **__restrict __src, 8737: size_t __nwc, size_t __len, 8737: mbstate_t *__restrict __ps, size_t __dstlen) 8737: throw (); 8737: 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") 8737: 8737: 8737: 8737: ; 8737: 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") 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8737: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 8737: 8737: { 8737: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__len)) 8737: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 8737: __builtin_object_size (__dst, 2 > 1)); 8737: 8737: if (__len > __builtin_object_size (__dst, 2 > 1)) 8737: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 8737: __builtin_object_size (__dst, 2 > 1)); 8737: } 8737: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 8737: } 8737: # 784 "/usr/include/wchar.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 45 "/usr/include/c++/8/cwchar" 2 3 8737: # 62 "/usr/include/c++/8/cwchar" 3 8737: namespace std 8737: { 8737: using ::mbstate_t; 8737: } 8737: # 135 "/usr/include/c++/8/cwchar" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: using ::wint_t; 8737: 8737: using ::btowc; 8737: using ::fgetwc; 8737: using ::fgetws; 8737: using ::fputwc; 8737: using ::fputws; 8737: using ::fwide; 8737: using ::fwprintf; 8737: using ::fwscanf; 8737: using ::getwc; 8737: using ::getwchar; 8737: using ::mbrlen; 8737: using ::mbrtowc; 8737: using ::mbsinit; 8737: using ::mbsrtowcs; 8737: using ::putwc; 8737: using ::putwchar; 8737: 8737: using ::swprintf; 8737: 8737: using ::swscanf; 8737: using ::ungetwc; 8737: using ::vfwprintf; 8737: 8737: using ::vfwscanf; 8737: 8737: 8737: using ::vswprintf; 8737: 8737: 8737: using ::vswscanf; 8737: 8737: using ::vwprintf; 8737: 8737: using ::vwscanf; 8737: 8737: using ::wcrtomb; 8737: using ::wcscat; 8737: using ::wcscmp; 8737: using ::wcscoll; 8737: using ::wcscpy; 8737: using ::wcscspn; 8737: using ::wcsftime; 8737: using ::wcslen; 8737: using ::wcsncat; 8737: using ::wcsncmp; 8737: using ::wcsncpy; 8737: using ::wcsrtombs; 8737: using ::wcsspn; 8737: using ::wcstod; 8737: 8737: using ::wcstof; 8737: 8737: using ::wcstok; 8737: using ::wcstol; 8737: using ::wcstoul; 8737: using ::wcsxfrm; 8737: using ::wctob; 8737: using ::wmemcmp; 8737: using ::wmemcpy; 8737: using ::wmemmove; 8737: using ::wmemset; 8737: using ::wprintf; 8737: using ::wscanf; 8737: using ::wcschr; 8737: using ::wcspbrk; 8737: using ::wcsrchr; 8737: using ::wcsstr; 8737: using ::wmemchr; 8737: # 232 "/usr/include/c++/8/cwchar" 3 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx 8737: { 8737: 8737: 8737: 8737: 8737: 8737: using ::wcstold; 8737: # 257 "/usr/include/c++/8/cwchar" 3 8737: using ::wcstoll; 8737: using ::wcstoull; 8737: 8737: } 8737: 8737: namespace std 8737: { 8737: using ::__gnu_cxx::wcstold; 8737: using ::__gnu_cxx::wcstoll; 8737: using ::__gnu_cxx::wcstoull; 8737: } 8737: # 277 "/usr/include/c++/8/cwchar" 3 8737: namespace std 8737: { 8737: 8737: using std::wcstof; 8737: 8737: 8737: using std::vfwscanf; 8737: 8737: 8737: using std::vswscanf; 8737: 8737: 8737: using std::vwscanf; 8737: 8737: 8737: 8737: using std::wcstold; 8737: using std::wcstoll; 8737: using std::wcstoull; 8737: 8737: } 8737: # 41 "/usr/include/c++/8/bits/postypes.h" 2 3 8737: # 68 "/usr/include/c++/8/bits/postypes.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 88 "/usr/include/c++/8/bits/postypes.h" 3 8737: typedef long streamoff; 8737: # 98 "/usr/include/c++/8/bits/postypes.h" 3 8737: typedef ptrdiff_t streamsize; 8737: # 111 "/usr/include/c++/8/bits/postypes.h" 3 8737: template 8737: class fpos 8737: { 8737: private: 8737: streamoff _M_off; 8737: _StateT _M_state; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: fpos() 8737: : _M_off(0), _M_state() { } 8737: # 133 "/usr/include/c++/8/bits/postypes.h" 3 8737: fpos(streamoff __off) 8737: : _M_off(__off), _M_state() { } 8737: 8737: 8737: operator streamoff() const { return _M_off; } 8737: 8737: 8737: void 8737: state(_StateT __st) 8737: { _M_state = __st; } 8737: 8737: 8737: _StateT 8737: state() const 8737: { return _M_state; } 8737: 8737: 8737: 8737: 8737: 8737: fpos& 8737: operator+=(streamoff __off) 8737: { 8737: _M_off += __off; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: fpos& 8737: operator-=(streamoff __off) 8737: { 8737: _M_off -= __off; 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: fpos 8737: operator+(streamoff __off) const 8737: { 8737: fpos __pos(*this); 8737: __pos += __off; 8737: return __pos; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: fpos 8737: operator-(streamoff __off) const 8737: { 8737: fpos __pos(*this); 8737: __pos -= __off; 8737: return __pos; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: streamoff 8737: operator-(const fpos& __other) const 8737: { return _M_off - __other._M_off; } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8737: { return streamoff(__lhs) == streamoff(__rhs); } 8737: 8737: template 8737: inline bool 8737: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8737: { return streamoff(__lhs) != streamoff(__rhs); } 8737: 8737: 8737: 8737: 8737: 8737: typedef fpos streampos; 8737: 8737: typedef fpos wstreampos; 8737: 8737: 8737: 8737: typedef fpos u16streampos; 8737: 8737: typedef fpos u32streampos; 8737: 8737: 8737: 8737: } 8737: # 41 "/usr/include/c++/8/bits/char_traits.h" 2 3 8737: # 1 "/usr/include/c++/8/cwchar" 1 3 8737: # 39 "/usr/include/c++/8/cwchar" 3 8737: 8737: # 40 "/usr/include/c++/8/cwchar" 3 8737: # 42 "/usr/include/c++/8/bits/char_traits.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 61 "/usr/include/c++/8/bits/char_traits.h" 3 8737: template 8737: struct _Char_types 8737: { 8737: typedef unsigned long int_type; 8737: typedef std::streampos pos_type; 8737: typedef std::streamoff off_type; 8737: typedef std::mbstate_t state_type; 8737: }; 8737: # 86 "/usr/include/c++/8/bits/char_traits.h" 3 8737: template 8737: struct char_traits 8737: { 8737: typedef _CharT char_type; 8737: typedef typename _Char_types<_CharT>::int_type int_type; 8737: typedef typename _Char_types<_CharT>::pos_type pos_type; 8737: typedef typename _Char_types<_CharT>::off_type off_type; 8737: typedef typename _Char_types<_CharT>::state_type state_type; 8737: 8737: static void 8737: assign(char_type& __c1, const char_type& __c2) 8737: { __c1 = __c2; } 8737: 8737: static constexpr bool 8737: eq(const char_type& __c1, const char_type& __c2) 8737: { return __c1 == __c2; } 8737: 8737: static constexpr bool 8737: lt(const char_type& __c1, const char_type& __c2) 8737: { return __c1 < __c2; } 8737: 8737: static int 8737: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 8737: 8737: static std::size_t 8737: length(const char_type* __s); 8737: 8737: static const char_type* 8737: find(const char_type* __s, std::size_t __n, const char_type& __a); 8737: 8737: static char_type* 8737: move(char_type* __s1, const char_type* __s2, std::size_t __n); 8737: 8737: static char_type* 8737: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 8737: 8737: static char_type* 8737: assign(char_type* __s, std::size_t __n, char_type __a); 8737: 8737: static constexpr char_type 8737: to_char_type(const int_type& __c) 8737: { return static_cast(__c); } 8737: 8737: static constexpr int_type 8737: to_int_type(const char_type& __c) 8737: { return static_cast(__c); } 8737: 8737: static constexpr bool 8737: eq_int_type(const int_type& __c1, const int_type& __c2) 8737: { return __c1 == __c2; } 8737: 8737: static constexpr int_type 8737: eof() 8737: { return static_cast(-1); } 8737: 8737: static constexpr int_type 8737: not_eof(const int_type& __c) 8737: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 8737: }; 8737: 8737: 8737: 8737: template 8737: int 8737: char_traits<_CharT>:: 8737: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 8737: { 8737: for (std::size_t __i = 0; __i < __n; ++__i) 8737: if (lt(__s1[__i], __s2[__i])) 8737: return -1; 8737: else if (lt(__s2[__i], __s1[__i])) 8737: return 1; 8737: return 0; 8737: } 8737: 8737: template 8737: std::size_t 8737: char_traits<_CharT>:: 8737: length(const char_type* __p) 8737: { 8737: std::size_t __i = 0; 8737: while (!eq(__p[__i], char_type())) 8737: ++__i; 8737: return __i; 8737: } 8737: 8737: template 8737: const typename char_traits<_CharT>::char_type* 8737: char_traits<_CharT>:: 8737: find(const char_type* __s, std::size_t __n, const char_type& __a) 8737: { 8737: for (std::size_t __i = 0; __i < __n; ++__i) 8737: if (eq(__s[__i], __a)) 8737: return __s + __i; 8737: return 0; 8737: } 8737: 8737: template 8737: typename char_traits<_CharT>::char_type* 8737: char_traits<_CharT>:: 8737: move(char_type* __s1, const char_type* __s2, std::size_t __n) 8737: { 8737: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 8737: __n * sizeof(char_type))); 8737: } 8737: 8737: template 8737: typename char_traits<_CharT>::char_type* 8737: char_traits<_CharT>:: 8737: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 8737: { 8737: 8737: std::copy(__s2, __s2 + __n, __s1); 8737: return __s1; 8737: } 8737: 8737: template 8737: typename char_traits<_CharT>::char_type* 8737: char_traits<_CharT>:: 8737: assign(char_type* __s, std::size_t __n, char_type __a) 8737: { 8737: 8737: std::fill_n(__s, __n, __a); 8737: return __s; 8737: } 8737: 8737: 8737: } 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 268 "/usr/include/c++/8/bits/char_traits.h" 3 8737: template 8737: struct char_traits : public __gnu_cxx::char_traits<_CharT> 8737: { }; 8737: 8737: 8737: 8737: template<> 8737: struct char_traits 8737: { 8737: typedef char char_type; 8737: typedef int int_type; 8737: typedef streampos pos_type; 8737: typedef streamoff off_type; 8737: typedef mbstate_t state_type; 8737: 8737: static void 8737: assign(char_type& __c1, const char_type& __c2) noexcept 8737: { __c1 = __c2; } 8737: 8737: static constexpr bool 8737: eq(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr bool 8737: lt(const char_type& __c1, const char_type& __c2) noexcept 8737: { 8737: 8737: return (static_cast(__c1) 8737: < static_cast(__c2)); 8737: } 8737: 8737: static int 8737: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: if (__n == 0) 8737: return 0; 8737: return __builtin_memcmp(__s1, __s2, __n); 8737: } 8737: 8737: static size_t 8737: length(const char_type* __s) 8737: { 8737: 8737: 8737: 8737: 8737: return __builtin_strlen(__s); 8737: } 8737: 8737: static const char_type* 8737: find(const char_type* __s, size_t __n, const char_type& __a) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: if (__n == 0) 8737: return 0; 8737: return static_cast(__builtin_memchr(__s, __a, __n)); 8737: } 8737: 8737: static char_type* 8737: move(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return static_cast(__builtin_memmove(__s1, __s2, __n)); 8737: } 8737: 8737: static char_type* 8737: copy(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 8737: } 8737: 8737: static char_type* 8737: assign(char_type* __s, size_t __n, char_type __a) 8737: { 8737: if (__n == 0) 8737: return __s; 8737: return static_cast(__builtin_memset(__s, __a, __n)); 8737: } 8737: 8737: static constexpr char_type 8737: to_char_type(const int_type& __c) noexcept 8737: { return static_cast(__c); } 8737: 8737: 8737: 8737: static constexpr int_type 8737: to_int_type(const char_type& __c) noexcept 8737: { return static_cast(static_cast(__c)); } 8737: 8737: static constexpr bool 8737: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr int_type 8737: eof() noexcept 8737: { return static_cast(-1); } 8737: 8737: static constexpr int_type 8737: not_eof(const int_type& __c) noexcept 8737: { return (__c == eof()) ? 0 : __c; } 8737: }; 8737: 8737: 8737: 8737: 8737: template<> 8737: struct char_traits 8737: { 8737: typedef wchar_t char_type; 8737: typedef wint_t int_type; 8737: typedef streamoff off_type; 8737: typedef wstreampos pos_type; 8737: typedef mbstate_t state_type; 8737: 8737: static void 8737: assign(char_type& __c1, const char_type& __c2) noexcept 8737: { __c1 = __c2; } 8737: 8737: static constexpr bool 8737: eq(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr bool 8737: lt(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 < __c2; } 8737: 8737: static int 8737: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: if (__n == 0) 8737: return 0; 8737: else 8737: return wmemcmp(__s1, __s2, __n); 8737: } 8737: 8737: static size_t 8737: length(const char_type* __s) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: return wcslen(__s); 8737: } 8737: 8737: static const char_type* 8737: find(const char_type* __s, size_t __n, const char_type& __a) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: if (__n == 0) 8737: return 0; 8737: else 8737: return wmemchr(__s, __a, __n); 8737: } 8737: 8737: static char_type* 8737: move(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return wmemmove(__s1, __s2, __n); 8737: } 8737: 8737: static char_type* 8737: copy(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return wmemcpy(__s1, __s2, __n); 8737: } 8737: 8737: static char_type* 8737: assign(char_type* __s, size_t __n, char_type __a) 8737: { 8737: if (__n == 0) 8737: return __s; 8737: return wmemset(__s, __a, __n); 8737: } 8737: 8737: static constexpr char_type 8737: to_char_type(const int_type& __c) noexcept 8737: { return char_type(__c); } 8737: 8737: static constexpr int_type 8737: to_int_type(const char_type& __c) noexcept 8737: { return int_type(__c); } 8737: 8737: static constexpr bool 8737: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr int_type 8737: eof() noexcept 8737: { return static_cast((0xffffffffu)); } 8737: 8737: static constexpr int_type 8737: not_eof(const int_type& __c) noexcept 8737: { return eq_int_type(__c, eof()) ? 0 : __c; } 8737: }; 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/cstdint" 1 3 8737: # 32 "/usr/include/c++/8/cstdint" 3 8737: 8737: # 33 "/usr/include/c++/8/cstdint" 3 8737: # 46 "/usr/include/c++/8/cstdint" 3 8737: namespace std 8737: { 8737: using ::int8_t; 8737: using ::int16_t; 8737: using ::int32_t; 8737: using ::int64_t; 8737: 8737: using ::int_fast8_t; 8737: using ::int_fast16_t; 8737: using ::int_fast32_t; 8737: using ::int_fast64_t; 8737: 8737: using ::int_least8_t; 8737: using ::int_least16_t; 8737: using ::int_least32_t; 8737: using ::int_least64_t; 8737: 8737: using ::intmax_t; 8737: using ::intptr_t; 8737: 8737: using ::uint8_t; 8737: using ::uint16_t; 8737: using ::uint32_t; 8737: using ::uint64_t; 8737: 8737: using ::uint_fast8_t; 8737: using ::uint_fast16_t; 8737: using ::uint_fast32_t; 8737: using ::uint_fast64_t; 8737: 8737: using ::uint_least8_t; 8737: using ::uint_least16_t; 8737: using ::uint_least32_t; 8737: using ::uint_least64_t; 8737: 8737: using ::uintmax_t; 8737: using ::uintptr_t; 8737: } 8737: # 502 "/usr/include/c++/8/bits/char_traits.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template<> 8737: struct char_traits 8737: { 8737: typedef char16_t char_type; 8737: typedef uint_least16_t int_type; 8737: typedef streamoff off_type; 8737: typedef u16streampos pos_type; 8737: typedef mbstate_t state_type; 8737: 8737: static void 8737: assign(char_type& __c1, const char_type& __c2) noexcept 8737: { __c1 = __c2; } 8737: 8737: static constexpr bool 8737: eq(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr bool 8737: lt(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 < __c2; } 8737: 8737: static int 8737: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: for (size_t __i = 0; __i < __n; ++__i) 8737: if (lt(__s1[__i], __s2[__i])) 8737: return -1; 8737: else if (lt(__s2[__i], __s1[__i])) 8737: return 1; 8737: return 0; 8737: } 8737: 8737: static size_t 8737: length(const char_type* __s) 8737: { 8737: size_t __i = 0; 8737: while (!eq(__s[__i], char_type())) 8737: ++__i; 8737: return __i; 8737: } 8737: 8737: static const char_type* 8737: find(const char_type* __s, size_t __n, const char_type& __a) 8737: { 8737: for (size_t __i = 0; __i < __n; ++__i) 8737: if (eq(__s[__i], __a)) 8737: return __s + __i; 8737: return 0; 8737: } 8737: 8737: static char_type* 8737: move(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return (static_cast 8737: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8737: } 8737: 8737: static char_type* 8737: copy(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return (static_cast 8737: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8737: } 8737: 8737: static char_type* 8737: assign(char_type* __s, size_t __n, char_type __a) 8737: { 8737: for (size_t __i = 0; __i < __n; ++__i) 8737: assign(__s[__i], __a); 8737: return __s; 8737: } 8737: 8737: static constexpr char_type 8737: to_char_type(const int_type& __c) noexcept 8737: { return char_type(__c); } 8737: 8737: static constexpr int_type 8737: to_int_type(const char_type& __c) noexcept 8737: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 8737: 8737: static constexpr bool 8737: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr int_type 8737: eof() noexcept 8737: { return static_cast(-1); } 8737: 8737: static constexpr int_type 8737: not_eof(const int_type& __c) noexcept 8737: { return eq_int_type(__c, eof()) ? 0 : __c; } 8737: }; 8737: 8737: template<> 8737: struct char_traits 8737: { 8737: typedef char32_t char_type; 8737: typedef uint_least32_t int_type; 8737: typedef streamoff off_type; 8737: typedef u32streampos pos_type; 8737: typedef mbstate_t state_type; 8737: 8737: static void 8737: assign(char_type& __c1, const char_type& __c2) noexcept 8737: { __c1 = __c2; } 8737: 8737: static constexpr bool 8737: eq(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr bool 8737: lt(const char_type& __c1, const char_type& __c2) noexcept 8737: { return __c1 < __c2; } 8737: 8737: static int 8737: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: for (size_t __i = 0; __i < __n; ++__i) 8737: if (lt(__s1[__i], __s2[__i])) 8737: return -1; 8737: else if (lt(__s2[__i], __s1[__i])) 8737: return 1; 8737: return 0; 8737: } 8737: 8737: static size_t 8737: length(const char_type* __s) 8737: { 8737: size_t __i = 0; 8737: while (!eq(__s[__i], char_type())) 8737: ++__i; 8737: return __i; 8737: } 8737: 8737: static const char_type* 8737: find(const char_type* __s, size_t __n, const char_type& __a) 8737: { 8737: for (size_t __i = 0; __i < __n; ++__i) 8737: if (eq(__s[__i], __a)) 8737: return __s + __i; 8737: return 0; 8737: } 8737: 8737: static char_type* 8737: move(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return (static_cast 8737: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8737: } 8737: 8737: static char_type* 8737: copy(char_type* __s1, const char_type* __s2, size_t __n) 8737: { 8737: if (__n == 0) 8737: return __s1; 8737: return (static_cast 8737: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8737: } 8737: 8737: static char_type* 8737: assign(char_type* __s, size_t __n, char_type __a) 8737: { 8737: for (size_t __i = 0; __i < __n; ++__i) 8737: assign(__s[__i], __a); 8737: return __s; 8737: } 8737: 8737: static constexpr char_type 8737: to_char_type(const int_type& __c) noexcept 8737: { return char_type(__c); } 8737: 8737: static constexpr int_type 8737: to_int_type(const char_type& __c) noexcept 8737: { return int_type(__c); } 8737: 8737: static constexpr bool 8737: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8737: { return __c1 == __c2; } 8737: 8737: static constexpr int_type 8737: eof() noexcept 8737: { return static_cast(-1); } 8737: 8737: static constexpr int_type 8737: not_eof(const int_type& __c) noexcept 8737: { return eq_int_type(__c, eof()) ? 0 : __c; } 8737: }; 8737: 8737: 8737: } 8737: # 41 "/usr/include/c++/8/string" 2 3 8737: # 1 "/usr/include/c++/8/bits/allocator.h" 1 3 8737: # 46 "/usr/include/c++/8/bits/allocator.h" 3 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 1 3 8737: # 33 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 3 8737: # 1 "/usr/include/c++/8/ext/new_allocator.h" 1 3 8737: # 40 "/usr/include/c++/8/ext/new_allocator.h" 3 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: using std::size_t; 8737: using std::ptrdiff_t; 8737: # 57 "/usr/include/c++/8/ext/new_allocator.h" 3 8737: template 8737: class new_allocator 8737: { 8737: public: 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Tp* pointer; 8737: typedef const _Tp* const_pointer; 8737: typedef _Tp& reference; 8737: typedef const _Tp& const_reference; 8737: typedef _Tp value_type; 8737: 8737: template 8737: struct rebind 8737: { typedef new_allocator<_Tp1> other; }; 8737: 8737: 8737: 8737: 8737: typedef std::true_type propagate_on_container_move_assignment; 8737: 8737: 8737: new_allocator() noexcept { } 8737: 8737: new_allocator(const new_allocator&) noexcept { } 8737: 8737: template 8737: new_allocator(const new_allocator<_Tp1>&) noexcept { } 8737: 8737: ~new_allocator() noexcept { } 8737: 8737: pointer 8737: address(reference __x) const noexcept 8737: { return std::__addressof(__x); } 8737: 8737: const_pointer 8737: address(const_reference __x) const noexcept 8737: { return std::__addressof(__x); } 8737: 8737: 8737: 8737: pointer 8737: allocate(size_type __n, const void* = static_cast(0)) 8737: { 8737: if (__n > this->max_size()) 8737: std::__throw_bad_alloc(); 8737: # 111 "/usr/include/c++/8/ext/new_allocator.h" 3 8737: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 8737: } 8737: 8737: 8737: void 8737: deallocate(pointer __p, size_type) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ::operator delete(__p); 8737: } 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return size_t(-1) / sizeof(_Tp); } 8737: 8737: 8737: template 8737: void 8737: construct(_Up* __p, _Args&&... __args) 8737: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8737: 8737: template 8737: void 8737: destroy(_Up* __p) { __p->~_Up(); } 8737: # 151 "/usr/include/c++/8/ext/new_allocator.h" 3 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8737: { return true; } 8737: 8737: template 8737: inline bool 8737: operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8737: { return false; } 8737: 8737: 8737: } 8737: # 34 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 2 3 8737: 8737: 8737: namespace std 8737: { 8737: # 47 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 3 8737: template 8737: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 8737: } 8737: # 47 "/usr/include/c++/8/bits/allocator.h" 2 3 8737: # 57 "/usr/include/c++/8/bits/allocator.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: class allocator 8737: { 8737: public: 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef void* pointer; 8737: typedef const void* const_pointer; 8737: typedef void value_type; 8737: 8737: template 8737: struct rebind 8737: { typedef allocator<_Tp1> other; }; 8737: 8737: 8737: 8737: 8737: typedef true_type propagate_on_container_move_assignment; 8737: 8737: typedef true_type is_always_equal; 8737: 8737: template 8737: void 8737: construct(_Up* __p, _Args&&... __args) 8737: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8737: 8737: template 8737: void 8737: destroy(_Up* __p) { __p->~_Up(); } 8737: 8737: }; 8737: # 107 "/usr/include/c++/8/bits/allocator.h" 3 8737: template 8737: class allocator : public __allocator_base<_Tp> 8737: { 8737: public: 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Tp* pointer; 8737: typedef const _Tp* const_pointer; 8737: typedef _Tp& reference; 8737: typedef const _Tp& const_reference; 8737: typedef _Tp value_type; 8737: 8737: template 8737: struct rebind 8737: { typedef allocator<_Tp1> other; }; 8737: 8737: 8737: 8737: 8737: typedef true_type propagate_on_container_move_assignment; 8737: 8737: typedef true_type is_always_equal; 8737: 8737: 8737: allocator() throw() { } 8737: 8737: allocator(const allocator& __a) throw() 8737: : __allocator_base<_Tp>(__a) { } 8737: 8737: template 8737: allocator(const allocator<_Tp1>&) throw() { } 8737: 8737: ~allocator() throw() { } 8737: 8737: 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const allocator<_T1>&, const allocator<_T2>&) 8737: noexcept 8737: { return true; } 8737: 8737: template 8737: inline bool 8737: operator==(const allocator<_Tp>&, const allocator<_Tp>&) 8737: noexcept 8737: { return true; } 8737: 8737: template 8737: inline bool 8737: operator!=(const allocator<_T1>&, const allocator<_T2>&) 8737: noexcept 8737: { return false; } 8737: 8737: template 8737: inline bool 8737: operator!=(const allocator<_Tp>&, const allocator<_Tp>&) 8737: noexcept 8737: { return false; } 8737: 8737: 8737: 8737: template 8737: class allocator 8737: { 8737: public: 8737: typedef _Tp value_type; 8737: template allocator(const allocator<_Up>&) { } 8737: }; 8737: 8737: template 8737: class allocator 8737: { 8737: public: 8737: typedef _Tp value_type; 8737: template allocator(const allocator<_Up>&) { } 8737: }; 8737: 8737: template 8737: class allocator 8737: { 8737: public: 8737: typedef _Tp value_type; 8737: template allocator(const allocator<_Up>&) { } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern template class allocator; 8737: extern template class allocator; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __alloc_swap 8737: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 8737: 8737: template 8737: struct __alloc_swap<_Alloc, false> 8737: { 8737: static void 8737: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 8737: { 8737: 8737: if (__one != __two) 8737: swap(__one, __two); 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct __alloc_neq 8737: { 8737: static bool 8737: _S_do_it(const _Alloc&, const _Alloc&) 8737: { return false; } 8737: }; 8737: 8737: template 8737: struct __alloc_neq<_Alloc, false> 8737: { 8737: static bool 8737: _S_do_it(const _Alloc& __one, const _Alloc& __two) 8737: { return __one != __two; } 8737: }; 8737: 8737: 8737: template, 8737: is_nothrow_move_constructible>::value> 8737: struct __shrink_to_fit_aux 8737: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 8737: 8737: template 8737: struct __shrink_to_fit_aux<_Tp, true> 8737: { 8737: static bool 8737: _S_do_it(_Tp& __c) noexcept 8737: { 8737: 8737: try 8737: { 8737: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 8737: __make_move_if_noexcept_iterator(__c.end()), 8737: __c.get_allocator()).swap(__c); 8737: return true; 8737: } 8737: catch(...) 8737: { return false; } 8737: 8737: 8737: 8737: } 8737: }; 8737: 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/string" 2 3 8737: 8737: # 1 "/usr/include/c++/8/bits/localefwd.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/localefwd.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/localefwd.h" 3 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 1 3 8737: # 39 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 3 8737: 8737: # 40 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 3 8737: 8737: # 1 "/usr/include/c++/8/clocale" 1 3 8737: # 39 "/usr/include/c++/8/clocale" 3 8737: 8737: # 40 "/usr/include/c++/8/clocale" 3 8737: 8737: 8737: # 1 "/usr/include/locale.h" 1 3 4 8737: # 28 "/usr/include/locale.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 29 "/usr/include/locale.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/locale.h" 1 3 4 8737: # 30 "/usr/include/locale.h" 2 3 4 8737: 8737: extern "C" { 8737: # 51 "/usr/include/locale.h" 3 4 8737: struct lconv 8737: { 8737: 8737: 8737: char *decimal_point; 8737: char *thousands_sep; 8737: 8737: 8737: 8737: 8737: 8737: char *grouping; 8737: 8737: 8737: 8737: 8737: 8737: char *int_curr_symbol; 8737: char *currency_symbol; 8737: char *mon_decimal_point; 8737: char *mon_thousands_sep; 8737: char *mon_grouping; 8737: char *positive_sign; 8737: char *negative_sign; 8737: char int_frac_digits; 8737: char frac_digits; 8737: 8737: char p_cs_precedes; 8737: 8737: char p_sep_by_space; 8737: 8737: char n_cs_precedes; 8737: 8737: char n_sep_by_space; 8737: 8737: 8737: 8737: 8737: 8737: 8737: char p_sign_posn; 8737: char n_sign_posn; 8737: 8737: 8737: char int_p_cs_precedes; 8737: 8737: char int_p_sep_by_space; 8737: 8737: char int_n_cs_precedes; 8737: 8737: char int_n_sep_by_space; 8737: 8737: 8737: 8737: 8737: 8737: 8737: char int_p_sign_posn; 8737: char int_n_sign_posn; 8737: # 118 "/usr/include/locale.h" 3 4 8737: }; 8737: 8737: 8737: 8737: extern char *setlocale (int __category, const char *__locale) throw (); 8737: 8737: 8737: extern struct lconv *localeconv (void) throw (); 8737: # 141 "/usr/include/locale.h" 3 4 8737: extern locale_t newlocale (int __category_mask, const char *__locale, 8737: locale_t __base) throw (); 8737: # 176 "/usr/include/locale.h" 3 4 8737: extern locale_t duplocale (locale_t __dataset) throw (); 8737: 8737: 8737: 8737: extern void freelocale (locale_t __dataset) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern locale_t uselocale (locale_t __dataset) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 43 "/usr/include/c++/8/clocale" 2 3 8737: # 51 "/usr/include/c++/8/clocale" 3 8737: namespace std 8737: { 8737: using ::lconv; 8737: using ::setlocale; 8737: using ::localeconv; 8737: } 8737: # 42 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: extern "C" __typeof(uselocale) __uselocale; 8737: 8737: 8737: } 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: typedef __locale_t __c_locale; 8737: 8737: 8737: 8737: 8737: 8737: inline int 8737: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 8737: char* __out, 8737: const int __size __attribute__ ((__unused__)), 8737: const char* __fmt, ...) 8737: { 8737: 8737: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 8737: # 88 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 3 8737: __builtin_va_list __args; 8737: __builtin_va_start(__args, __fmt); 8737: 8737: 8737: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 8737: 8737: 8737: 8737: 8737: __builtin_va_end(__args); 8737: 8737: 8737: __gnu_cxx::__uselocale(__old); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: return __ret; 8737: } 8737: 8737: 8737: } 8737: # 41 "/usr/include/c++/8/bits/localefwd.h" 2 3 8737: # 1 "/usr/include/c++/8/iosfwd" 1 3 8737: # 36 "/usr/include/c++/8/iosfwd" 3 8737: 8737: # 37 "/usr/include/c++/8/iosfwd" 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 74 "/usr/include/c++/8/iosfwd" 3 8737: class ios_base; 8737: 8737: template > 8737: class basic_ios; 8737: 8737: template > 8737: class basic_streambuf; 8737: 8737: template > 8737: class basic_istream; 8737: 8737: template > 8737: class basic_ostream; 8737: 8737: template > 8737: class basic_iostream; 8737: 8737: 8737: namespace __cxx11 { 8737: 8737: template, 8737: typename _Alloc = allocator<_CharT> > 8737: class basic_stringbuf; 8737: 8737: template, 8737: typename _Alloc = allocator<_CharT> > 8737: class basic_istringstream; 8737: 8737: template, 8737: typename _Alloc = allocator<_CharT> > 8737: class basic_ostringstream; 8737: 8737: template, 8737: typename _Alloc = allocator<_CharT> > 8737: class basic_stringstream; 8737: 8737: } 8737: 8737: template > 8737: class basic_filebuf; 8737: 8737: template > 8737: class basic_ifstream; 8737: 8737: template > 8737: class basic_ofstream; 8737: 8737: template > 8737: class basic_fstream; 8737: 8737: template > 8737: class istreambuf_iterator; 8737: 8737: template > 8737: class ostreambuf_iterator; 8737: 8737: 8737: 8737: typedef basic_ios ios; 8737: 8737: 8737: typedef basic_streambuf streambuf; 8737: 8737: 8737: typedef basic_istream istream; 8737: 8737: 8737: typedef basic_ostream ostream; 8737: 8737: 8737: typedef basic_iostream iostream; 8737: 8737: 8737: typedef basic_stringbuf stringbuf; 8737: 8737: 8737: typedef basic_istringstream istringstream; 8737: 8737: 8737: typedef basic_ostringstream ostringstream; 8737: 8737: 8737: typedef basic_stringstream stringstream; 8737: 8737: 8737: typedef basic_filebuf filebuf; 8737: 8737: 8737: typedef basic_ifstream ifstream; 8737: 8737: 8737: typedef basic_ofstream ofstream; 8737: 8737: 8737: typedef basic_fstream fstream; 8737: 8737: 8737: 8737: typedef basic_ios wios; 8737: 8737: 8737: typedef basic_streambuf wstreambuf; 8737: 8737: 8737: typedef basic_istream wistream; 8737: 8737: 8737: typedef basic_ostream wostream; 8737: 8737: 8737: typedef basic_iostream wiostream; 8737: 8737: 8737: typedef basic_stringbuf wstringbuf; 8737: 8737: 8737: typedef basic_istringstream wistringstream; 8737: 8737: 8737: typedef basic_ostringstream wostringstream; 8737: 8737: 8737: typedef basic_stringstream wstringstream; 8737: 8737: 8737: typedef basic_filebuf wfilebuf; 8737: 8737: 8737: typedef basic_ifstream wifstream; 8737: 8737: 8737: typedef basic_ofstream wofstream; 8737: 8737: 8737: typedef basic_fstream wfstream; 8737: 8737: 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/bits/localefwd.h" 2 3 8737: # 1 "/usr/include/c++/8/cctype" 1 3 8737: # 39 "/usr/include/c++/8/cctype" 3 8737: 8737: # 40 "/usr/include/c++/8/cctype" 3 8737: 8737: 8737: # 1 "/usr/include/ctype.h" 1 3 4 8737: # 28 "/usr/include/ctype.h" 3 4 8737: extern "C" { 8737: # 46 "/usr/include/ctype.h" 3 4 8737: enum 8737: { 8737: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 8737: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 8737: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 8737: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 8737: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 8737: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 8737: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 8737: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 8737: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 8737: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 8737: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 8737: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 8737: }; 8737: # 79 "/usr/include/ctype.h" 3 4 8737: extern const unsigned short int **__ctype_b_loc (void) 8737: throw () __attribute__ ((__const__)); 8737: extern const __int32_t **__ctype_tolower_loc (void) 8737: throw () __attribute__ ((__const__)); 8737: extern const __int32_t **__ctype_toupper_loc (void) 8737: throw () __attribute__ ((__const__)); 8737: # 108 "/usr/include/ctype.h" 3 4 8737: extern int isalnum (int) throw (); 8737: extern int isalpha (int) throw (); 8737: extern int iscntrl (int) throw (); 8737: extern int isdigit (int) throw (); 8737: extern int islower (int) throw (); 8737: extern int isgraph (int) throw (); 8737: extern int isprint (int) throw (); 8737: extern int ispunct (int) throw (); 8737: extern int isspace (int) throw (); 8737: extern int isupper (int) throw (); 8737: extern int isxdigit (int) throw (); 8737: 8737: 8737: 8737: extern int tolower (int __c) throw (); 8737: 8737: 8737: extern int toupper (int __c) throw (); 8737: 8737: 8737: 8737: 8737: extern int isblank (int) throw (); 8737: 8737: 8737: 8737: 8737: extern int isctype (int __c, int __mask) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int isascii (int __c) throw (); 8737: 8737: 8737: 8737: extern int toascii (int __c) throw (); 8737: 8737: 8737: 8737: extern int _toupper (int) throw (); 8737: extern int _tolower (int) throw (); 8737: # 251 "/usr/include/ctype.h" 3 4 8737: extern int isalnum_l (int, locale_t) throw (); 8737: extern int isalpha_l (int, locale_t) throw (); 8737: extern int iscntrl_l (int, locale_t) throw (); 8737: extern int isdigit_l (int, locale_t) throw (); 8737: extern int islower_l (int, locale_t) throw (); 8737: extern int isgraph_l (int, locale_t) throw (); 8737: extern int isprint_l (int, locale_t) throw (); 8737: extern int ispunct_l (int, locale_t) throw (); 8737: extern int isspace_l (int, locale_t) throw (); 8737: extern int isupper_l (int, locale_t) throw (); 8737: extern int isxdigit_l (int, locale_t) throw (); 8737: 8737: extern int isblank_l (int, locale_t) throw (); 8737: 8737: 8737: 8737: extern int __tolower_l (int __c, locale_t __l) throw (); 8737: extern int tolower_l (int __c, locale_t __l) throw (); 8737: 8737: 8737: extern int __toupper_l (int __c, locale_t __l) throw (); 8737: extern int toupper_l (int __c, locale_t __l) throw (); 8737: # 327 "/usr/include/ctype.h" 3 4 8737: } 8737: # 43 "/usr/include/c++/8/cctype" 2 3 8737: # 62 "/usr/include/c++/8/cctype" 3 8737: namespace std 8737: { 8737: using ::isalnum; 8737: using ::isalpha; 8737: using ::iscntrl; 8737: using ::isdigit; 8737: using ::isgraph; 8737: using ::islower; 8737: using ::isprint; 8737: using ::ispunct; 8737: using ::isspace; 8737: using ::isupper; 8737: using ::isxdigit; 8737: using ::tolower; 8737: using ::toupper; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace std 8737: { 8737: using ::isblank; 8737: } 8737: # 43 "/usr/include/c++/8/bits/localefwd.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 55 "/usr/include/c++/8/bits/localefwd.h" 3 8737: class locale; 8737: 8737: template 8737: bool 8737: has_facet(const locale&) throw(); 8737: 8737: template 8737: const _Facet& 8737: use_facet(const locale&); 8737: 8737: 8737: template 8737: bool 8737: isspace(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isprint(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: iscntrl(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isupper(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: islower(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isalpha(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isdigit(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: ispunct(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isxdigit(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isalnum(_CharT, const locale&); 8737: 8737: template 8737: bool 8737: isgraph(_CharT, const locale&); 8737: 8737: 8737: template 8737: bool 8737: isblank(_CharT, const locale&); 8737: 8737: 8737: template 8737: _CharT 8737: toupper(_CharT, const locale&); 8737: 8737: template 8737: _CharT 8737: tolower(_CharT, const locale&); 8737: 8737: 8737: class ctype_base; 8737: template 8737: class ctype; 8737: template<> class ctype; 8737: 8737: template<> class ctype; 8737: 8737: template 8737: class ctype_byname; 8737: 8737: 8737: class codecvt_base; 8737: template 8737: class codecvt; 8737: template<> class codecvt; 8737: 8737: template<> class codecvt; 8737: 8737: template 8737: class codecvt_byname; 8737: 8737: 8737: 8737: template > 8737: class num_get; 8737: template > 8737: class num_put; 8737: 8737: namespace __cxx11 { 8737: template class numpunct; 8737: template class numpunct_byname; 8737: } 8737: 8737: namespace __cxx11 { 8737: 8737: template 8737: class collate; 8737: template 8737: class collate_byname; 8737: } 8737: 8737: 8737: class time_base; 8737: namespace __cxx11 { 8737: template > 8737: class time_get; 8737: template > 8737: class time_get_byname; 8737: } 8737: template > 8737: class time_put; 8737: template > 8737: class time_put_byname; 8737: 8737: 8737: class money_base; 8737: namespace __cxx11 { 8737: template > 8737: class money_get; 8737: template > 8737: class money_put; 8737: } 8737: namespace __cxx11 { 8737: template 8737: class moneypunct; 8737: template 8737: class moneypunct_byname; 8737: } 8737: 8737: 8737: class messages_base; 8737: namespace __cxx11 { 8737: template 8737: class messages; 8737: template 8737: class messages_byname; 8737: } 8737: 8737: 8737: } 8737: # 44 "/usr/include/c++/8/string" 2 3 8737: # 1 "/usr/include/c++/8/bits/ostream_insert.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/ostream_insert.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/ostream_insert.h" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/cxxabi_forced.h" 1 3 8737: # 34 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8737: 8737: # 35 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8737: 8737: #pragma GCC visibility push(default) 8737: 8737: 8737: namespace __cxxabiv1 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class __forced_unwind 8737: { 8737: virtual ~__forced_unwind() throw(); 8737: 8737: 8737: virtual void __pure_dummy() = 0; 8737: }; 8737: } 8737: 8737: 8737: #pragma GCC visibility pop 8737: # 37 "/usr/include/c++/8/bits/ostream_insert.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: inline void 8737: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 8737: const _CharT* __s, streamsize __n) 8737: { 8737: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8737: typedef typename __ostream_type::ios_base __ios_base; 8737: 8737: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 8737: if (__put != __n) 8737: __out.setstate(__ios_base::badbit); 8737: } 8737: 8737: template 8737: inline void 8737: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 8737: { 8737: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8737: typedef typename __ostream_type::ios_base __ios_base; 8737: 8737: const _CharT __c = __out.fill(); 8737: for (; __n > 0; --__n) 8737: { 8737: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 8737: if (_Traits::eq_int_type(__put, _Traits::eof())) 8737: { 8737: __out.setstate(__ios_base::badbit); 8737: break; 8737: } 8737: } 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 8737: const _CharT* __s, streamsize __n) 8737: { 8737: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8737: typedef typename __ostream_type::ios_base __ios_base; 8737: 8737: typename __ostream_type::sentry __cerb(__out); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: const streamsize __w = __out.width(); 8737: if (__w > __n) 8737: { 8737: const bool __left = ((__out.flags() 8737: & __ios_base::adjustfield) 8737: == __ios_base::left); 8737: if (!__left) 8737: __ostream_fill(__out, __w - __n); 8737: if (__out.good()) 8737: __ostream_write(__out, __s, __n); 8737: if (__left && __out.good()) 8737: __ostream_fill(__out, __w - __n); 8737: } 8737: else 8737: __ostream_write(__out, __s, __n); 8737: __out.width(0); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __out._M_setstate(__ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { __out._M_setstate(__ios_base::badbit); } 8737: } 8737: return __out; 8737: } 8737: 8737: 8737: 8737: 8737: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 8737: 8737: 8737: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 8737: streamsize); 8737: 8737: 8737: 8737: 8737: } 8737: # 45 "/usr/include/c++/8/string" 2 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_function.h" 1 3 8737: # 63 "/usr/include/c++/8/bits/stl_function.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 104 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: struct unary_function 8737: { 8737: 8737: typedef _Arg argument_type; 8737: 8737: 8737: typedef _Result result_type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct binary_function 8737: { 8737: 8737: typedef _Arg1 first_argument_type; 8737: 8737: 8737: typedef _Arg2 second_argument_type; 8737: 8737: 8737: typedef _Result result_type; 8737: }; 8737: # 166 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: struct plus : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x + __y; } 8737: }; 8737: 8737: 8737: template 8737: struct minus : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x - __y; } 8737: }; 8737: 8737: 8737: template 8737: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x * __y; } 8737: }; 8737: 8737: 8737: template 8737: struct divides : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x / __y; } 8737: }; 8737: 8737: 8737: template 8737: struct modulus : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x % __y; } 8737: }; 8737: 8737: 8737: template 8737: struct negate : public unary_function<_Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x) const 8737: { return -__x; } 8737: }; 8737: # 350 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: struct equal_to : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x == __y; } 8737: }; 8737: 8737: 8737: template 8737: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x != __y; } 8737: }; 8737: 8737: 8737: template 8737: struct greater : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x > __y; } 8737: }; 8737: 8737: 8737: template 8737: struct less : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x < __y; } 8737: }; 8737: 8737: 8737: template 8737: struct greater_equal : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x >= __y; } 8737: }; 8737: 8737: 8737: template 8737: struct less_equal : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x <= __y; } 8737: }; 8737: # 523 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: struct logical_and : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x && __y; } 8737: }; 8737: 8737: 8737: template 8737: struct logical_or : public binary_function<_Tp, _Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x || __y; } 8737: }; 8737: 8737: 8737: template 8737: struct logical_not : public unary_function<_Tp, bool> 8737: { 8737: 8737: bool 8737: operator()(const _Tp& __x) const 8737: { return !__x; } 8737: }; 8737: # 616 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x & __y; } 8737: }; 8737: 8737: template 8737: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x | __y; } 8737: }; 8737: 8737: template 8737: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x, const _Tp& __y) const 8737: { return __x ^ __y; } 8737: }; 8737: 8737: template 8737: struct bit_not : public unary_function<_Tp, _Tp> 8737: { 8737: 8737: _Tp 8737: operator()(const _Tp& __x) const 8737: { return ~__x; } 8737: }; 8737: # 740 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: class unary_negate 8737: : public unary_function 8737: { 8737: protected: 8737: _Predicate _M_pred; 8737: 8737: public: 8737: 8737: explicit 8737: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 8737: 8737: 8737: bool 8737: operator()(const typename _Predicate::argument_type& __x) const 8737: { return !_M_pred(__x); } 8737: }; 8737: 8737: 8737: template 8737: 8737: inline unary_negate<_Predicate> 8737: not1(const _Predicate& __pred) 8737: { return unary_negate<_Predicate>(__pred); } 8737: 8737: 8737: template 8737: class binary_negate 8737: : public binary_function 8737: { 8737: protected: 8737: _Predicate _M_pred; 8737: 8737: public: 8737: 8737: explicit 8737: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 8737: 8737: 8737: bool 8737: operator()(const typename _Predicate::first_argument_type& __x, 8737: const typename _Predicate::second_argument_type& __y) const 8737: { return !_M_pred(__x, __y); } 8737: }; 8737: 8737: 8737: template 8737: 8737: inline binary_negate<_Predicate> 8737: not2(const _Predicate& __pred) 8737: { return binary_negate<_Predicate>(__pred); } 8737: # 817 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: class pointer_to_unary_function : public unary_function<_Arg, _Result> 8737: { 8737: protected: 8737: _Result (*_M_ptr)(_Arg); 8737: 8737: public: 8737: pointer_to_unary_function() { } 8737: 8737: explicit 8737: pointer_to_unary_function(_Result (*__x)(_Arg)) 8737: : _M_ptr(__x) { } 8737: 8737: _Result 8737: operator()(_Arg __x) const 8737: { return _M_ptr(__x); } 8737: }; 8737: 8737: 8737: template 8737: inline pointer_to_unary_function<_Arg, _Result> 8737: ptr_fun(_Result (*__x)(_Arg)) 8737: { return pointer_to_unary_function<_Arg, _Result>(__x); } 8737: 8737: 8737: template 8737: class pointer_to_binary_function 8737: : public binary_function<_Arg1, _Arg2, _Result> 8737: { 8737: protected: 8737: _Result (*_M_ptr)(_Arg1, _Arg2); 8737: 8737: public: 8737: pointer_to_binary_function() { } 8737: 8737: explicit 8737: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 8737: : _M_ptr(__x) { } 8737: 8737: _Result 8737: operator()(_Arg1 __x, _Arg2 __y) const 8737: { return _M_ptr(__x, __y); } 8737: }; 8737: 8737: 8737: template 8737: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 8737: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 8737: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 8737: 8737: 8737: template 8737: struct _Identity 8737: : public unary_function<_Tp, _Tp> 8737: { 8737: _Tp& 8737: operator()(_Tp& __x) const 8737: { return __x; } 8737: 8737: const _Tp& 8737: operator()(const _Tp& __x) const 8737: { return __x; } 8737: }; 8737: 8737: 8737: template struct _Identity : _Identity<_Tp> { }; 8737: 8737: template 8737: struct _Select1st 8737: : public unary_function<_Pair, typename _Pair::first_type> 8737: { 8737: typename _Pair::first_type& 8737: operator()(_Pair& __x) const 8737: { return __x.first; } 8737: 8737: const typename _Pair::first_type& 8737: operator()(const _Pair& __x) const 8737: { return __x.first; } 8737: 8737: 8737: template 8737: typename _Pair2::first_type& 8737: operator()(_Pair2& __x) const 8737: { return __x.first; } 8737: 8737: template 8737: const typename _Pair2::first_type& 8737: operator()(const _Pair2& __x) const 8737: { return __x.first; } 8737: 8737: }; 8737: 8737: template 8737: struct _Select2nd 8737: : public unary_function<_Pair, typename _Pair::second_type> 8737: { 8737: typename _Pair::second_type& 8737: operator()(_Pair& __x) const 8737: { return __x.second; } 8737: 8737: const typename _Pair::second_type& 8737: operator()(const _Pair& __x) const 8737: { return __x.second; } 8737: }; 8737: # 940 "/usr/include/c++/8/bits/stl_function.h" 3 8737: template 8737: class mem_fun_t : public unary_function<_Tp*, _Ret> 8737: { 8737: public: 8737: explicit 8737: mem_fun_t(_Ret (_Tp::*__pf)()) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(_Tp* __p) const 8737: { return (__p->*_M_f)(); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)(); 8737: }; 8737: 8737: 8737: 8737: template 8737: class const_mem_fun_t : public unary_function 8737: { 8737: public: 8737: explicit 8737: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(const _Tp* __p) const 8737: { return (__p->*_M_f)(); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)() const; 8737: }; 8737: 8737: 8737: 8737: template 8737: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 8737: { 8737: public: 8737: explicit 8737: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(_Tp& __r) const 8737: { return (__r.*_M_f)(); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)(); 8737: }; 8737: 8737: 8737: 8737: template 8737: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 8737: { 8737: public: 8737: explicit 8737: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(const _Tp& __r) const 8737: { return (__r.*_M_f)(); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)() const; 8737: }; 8737: 8737: 8737: 8737: template 8737: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 8737: { 8737: public: 8737: explicit 8737: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(_Tp* __p, _Arg __x) const 8737: { return (__p->*_M_f)(__x); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)(_Arg); 8737: }; 8737: 8737: 8737: 8737: template 8737: class const_mem_fun1_t : public binary_function 8737: { 8737: public: 8737: explicit 8737: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(const _Tp* __p, _Arg __x) const 8737: { return (__p->*_M_f)(__x); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)(_Arg) const; 8737: }; 8737: 8737: 8737: 8737: template 8737: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8737: { 8737: public: 8737: explicit 8737: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(_Tp& __r, _Arg __x) const 8737: { return (__r.*_M_f)(__x); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)(_Arg); 8737: }; 8737: 8737: 8737: 8737: template 8737: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8737: { 8737: public: 8737: explicit 8737: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 8737: : _M_f(__pf) { } 8737: 8737: _Ret 8737: operator()(const _Tp& __r, _Arg __x) const 8737: { return (__r.*_M_f)(__x); } 8737: 8737: private: 8737: _Ret (_Tp::*_M_f)(_Arg) const; 8737: }; 8737: 8737: 8737: 8737: template 8737: inline mem_fun_t<_Ret, _Tp> 8737: mem_fun(_Ret (_Tp::*__f)()) 8737: { return mem_fun_t<_Ret, _Tp>(__f); } 8737: 8737: template 8737: inline const_mem_fun_t<_Ret, _Tp> 8737: mem_fun(_Ret (_Tp::*__f)() const) 8737: { return const_mem_fun_t<_Ret, _Tp>(__f); } 8737: 8737: template 8737: inline mem_fun_ref_t<_Ret, _Tp> 8737: mem_fun_ref(_Ret (_Tp::*__f)()) 8737: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 8737: 8737: template 8737: inline const_mem_fun_ref_t<_Ret, _Tp> 8737: mem_fun_ref(_Ret (_Tp::*__f)() const) 8737: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 8737: 8737: template 8737: inline mem_fun1_t<_Ret, _Tp, _Arg> 8737: mem_fun(_Ret (_Tp::*__f)(_Arg)) 8737: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8737: 8737: template 8737: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 8737: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 8737: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8737: 8737: template 8737: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 8737: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 8737: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8737: 8737: template 8737: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 8737: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 8737: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8737: 8737: 8737: 8737: 8737: } 8737: 8737: 8737: # 1 "/usr/include/c++/8/backward/binders.h" 1 3 8737: # 60 "/usr/include/c++/8/backward/binders.h" 3 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 107 "/usr/include/c++/8/backward/binders.h" 3 8737: template 8737: class binder1st 8737: : public unary_function 8737: { 8737: protected: 8737: _Operation op; 8737: typename _Operation::first_argument_type value; 8737: 8737: public: 8737: binder1st(const _Operation& __x, 8737: const typename _Operation::first_argument_type& __y) 8737: : op(__x), value(__y) { } 8737: 8737: typename _Operation::result_type 8737: operator()(const typename _Operation::second_argument_type& __x) const 8737: { return op(value, __x); } 8737: 8737: 8737: 8737: typename _Operation::result_type 8737: operator()(typename _Operation::second_argument_type& __x) const 8737: { return op(value, __x); } 8737: } __attribute__ ((__deprecated__)); 8737: 8737: 8737: template 8737: inline binder1st<_Operation> 8737: bind1st(const _Operation& __fn, const _Tp& __x) 8737: { 8737: typedef typename _Operation::first_argument_type _Arg1_type; 8737: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 8737: } 8737: 8737: 8737: template 8737: class binder2nd 8737: : public unary_function 8737: { 8737: protected: 8737: _Operation op; 8737: typename _Operation::second_argument_type value; 8737: 8737: public: 8737: binder2nd(const _Operation& __x, 8737: const typename _Operation::second_argument_type& __y) 8737: : op(__x), value(__y) { } 8737: 8737: typename _Operation::result_type 8737: operator()(const typename _Operation::first_argument_type& __x) const 8737: { return op(__x, value); } 8737: 8737: 8737: 8737: typename _Operation::result_type 8737: operator()(typename _Operation::first_argument_type& __x) const 8737: { return op(__x, value); } 8737: } __attribute__ ((__deprecated__)); 8737: 8737: 8737: template 8737: inline binder2nd<_Operation> 8737: bind2nd(const _Operation& __fn, const _Tp& __x) 8737: { 8737: typedef typename _Operation::second_argument_type _Arg2_type; 8737: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 8737: } 8737: 8737: 8737: 8737: } 8737: 8737: #pragma GCC diagnostic pop 8737: # 1131 "/usr/include/c++/8/bits/stl_function.h" 2 3 8737: # 49 "/usr/include/c++/8/string" 2 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/range_access.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/range_access.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/range_access.h" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline auto 8737: begin(_Container& __cont) -> decltype(__cont.begin()) 8737: { return __cont.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline auto 8737: begin(const _Container& __cont) -> decltype(__cont.begin()) 8737: { return __cont.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline auto 8737: end(_Container& __cont) -> decltype(__cont.end()) 8737: { return __cont.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline auto 8737: end(const _Container& __cont) -> decltype(__cont.end()) 8737: { return __cont.end(); } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline _Tp* 8737: begin(_Tp (&__arr)[_Nm]) 8737: { return __arr; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline _Tp* 8737: end(_Tp (&__arr)[_Nm]) 8737: { return __arr + _Nm; } 8737: # 323 "/usr/include/c++/8/bits/range_access.h" 3 8737: 8737: } 8737: # 52 "/usr/include/c++/8/string" 2 3 8737: # 1 "/usr/include/c++/8/bits/basic_string.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/basic_string.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/basic_string.h" 3 8737: 8737: # 1 "/usr/include/c++/8/ext/atomicity.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/atomicity.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/atomicity.h" 3 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 1 3 8737: # 30 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 3 8737: #pragma GCC visibility push(default) 8737: # 148 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 3 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 1 3 8737: # 35 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: # 1 "/usr/include/pthread.h" 1 3 4 8737: # 23 "/usr/include/pthread.h" 3 4 8737: # 1 "/usr/include/sched.h" 1 3 4 8737: # 29 "/usr/include/sched.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 30 "/usr/include/sched.h" 2 3 4 8737: # 43 "/usr/include/sched.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/sched.h" 1 3 4 8737: # 75 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4 8737: struct sched_param 8737: { 8737: int sched_priority; 8737: }; 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 8737: int __flags, void *__arg, ...) throw (); 8737: 8737: 8737: extern int unshare (int __flags) throw (); 8737: 8737: 8737: extern int sched_getcpu (void) throw (); 8737: 8737: 8737: extern int setns (int __fd, int __nstype) throw (); 8737: 8737: 8737: } 8737: # 44 "/usr/include/sched.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 1 3 4 8737: # 32 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 3 4 8737: typedef unsigned long int __cpu_mask; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef struct 8737: { 8737: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 8737: } cpu_set_t; 8737: # 115 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 3 4 8737: extern "C" { 8737: 8737: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 8737: throw (); 8737: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 8737: extern void __sched_cpufree (cpu_set_t *__set) throw (); 8737: 8737: } 8737: # 45 "/usr/include/sched.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern "C" { 8737: 8737: 8737: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 8737: throw (); 8737: 8737: 8737: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 8737: 8737: 8737: extern int sched_setscheduler (__pid_t __pid, int __policy, 8737: const struct sched_param *__param) throw (); 8737: 8737: 8737: extern int sched_getscheduler (__pid_t __pid) throw (); 8737: 8737: 8737: extern int sched_yield (void) throw (); 8737: 8737: 8737: extern int sched_get_priority_max (int __algorithm) throw (); 8737: 8737: 8737: extern int sched_get_priority_min (int __algorithm) throw (); 8737: 8737: 8737: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 8737: # 121 "/usr/include/sched.h" 3 4 8737: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 8737: const cpu_set_t *__cpuset) throw (); 8737: 8737: 8737: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 8737: cpu_set_t *__cpuset) throw (); 8737: 8737: 8737: } 8737: # 24 "/usr/include/pthread.h" 2 3 4 8737: # 1 "/usr/include/time.h" 1 3 4 8737: # 29 "/usr/include/time.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 30 "/usr/include/time.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 8737: # 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 8737: # 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 8737: struct timex 8737: { 8737: unsigned int modes; 8737: __syscall_slong_t offset; 8737: __syscall_slong_t freq; 8737: __syscall_slong_t maxerror; 8737: __syscall_slong_t esterror; 8737: int status; 8737: __syscall_slong_t constant; 8737: __syscall_slong_t precision; 8737: __syscall_slong_t tolerance; 8737: struct timeval time; 8737: __syscall_slong_t tick; 8737: __syscall_slong_t ppsfreq; 8737: __syscall_slong_t jitter; 8737: int shift; 8737: __syscall_slong_t stabil; 8737: __syscall_slong_t jitcnt; 8737: __syscall_slong_t calcnt; 8737: __syscall_slong_t errcnt; 8737: __syscall_slong_t stbcnt; 8737: 8737: int tai; 8737: 8737: 8737: int :32; int :32; int :32; int :32; 8737: int :32; int :32; int :32; int :32; 8737: int :32; int :32; int :32; 8737: }; 8737: # 74 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 8737: 8737: extern "C" { 8737: 8737: 8737: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 8737: 8737: } 8737: # 34 "/usr/include/time.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct tm 8737: { 8737: int tm_sec; 8737: int tm_min; 8737: int tm_hour; 8737: int tm_mday; 8737: int tm_mon; 8737: int tm_year; 8737: int tm_wday; 8737: int tm_yday; 8737: int tm_isdst; 8737: 8737: 8737: long int tm_gmtoff; 8737: const char *tm_zone; 8737: 8737: 8737: 8737: 8737: }; 8737: # 40 "/usr/include/time.h" 2 3 4 8737: # 48 "/usr/include/time.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct itimerspec 8737: { 8737: struct timespec it_interval; 8737: struct timespec it_value; 8737: }; 8737: # 49 "/usr/include/time.h" 2 3 4 8737: struct sigevent; 8737: # 68 "/usr/include/time.h" 3 4 8737: extern "C" { 8737: 8737: 8737: 8737: extern clock_t clock (void) throw (); 8737: 8737: 8737: extern time_t time (time_t *__timer) throw (); 8737: 8737: 8737: extern double difftime (time_t __time1, time_t __time0) 8737: throw () __attribute__ ((__const__)); 8737: 8737: 8737: extern time_t mktime (struct tm *__tp) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern size_t strftime (char *__restrict __s, size_t __maxsize, 8737: const char *__restrict __format, 8737: const struct tm *__restrict __tp) throw (); 8737: 8737: 8737: 8737: 8737: extern char *strptime (const char *__restrict __s, 8737: const char *__restrict __fmt, struct tm *__tp) 8737: throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 8737: const char *__restrict __format, 8737: const struct tm *__restrict __tp, 8737: locale_t __loc) throw (); 8737: 8737: 8737: 8737: extern char *strptime_l (const char *__restrict __s, 8737: const char *__restrict __fmt, struct tm *__tp, 8737: locale_t __loc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern struct tm *gmtime (const time_t *__timer) throw (); 8737: 8737: 8737: 8737: extern struct tm *localtime (const time_t *__timer) throw (); 8737: 8737: 8737: 8737: 8737: extern struct tm *gmtime_r (const time_t *__restrict __timer, 8737: struct tm *__restrict __tp) throw (); 8737: 8737: 8737: 8737: extern struct tm *localtime_r (const time_t *__restrict __timer, 8737: struct tm *__restrict __tp) throw (); 8737: 8737: 8737: 8737: 8737: extern char *asctime (const struct tm *__tp) throw (); 8737: 8737: 8737: extern char *ctime (const time_t *__timer) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern char *asctime_r (const struct tm *__restrict __tp, 8737: char *__restrict __buf) throw (); 8737: 8737: 8737: extern char *ctime_r (const time_t *__restrict __timer, 8737: char *__restrict __buf) throw (); 8737: 8737: 8737: 8737: 8737: extern char *__tzname[2]; 8737: extern int __daylight; 8737: extern long int __timezone; 8737: 8737: 8737: 8737: 8737: extern char *tzname[2]; 8737: 8737: 8737: 8737: extern void tzset (void) throw (); 8737: 8737: 8737: 8737: extern int daylight; 8737: extern long int timezone; 8737: 8737: 8737: 8737: 8737: 8737: extern int stime (const time_t *__when) throw (); 8737: # 196 "/usr/include/time.h" 3 4 8737: extern time_t timegm (struct tm *__tp) throw (); 8737: 8737: 8737: extern time_t timelocal (struct tm *__tp) throw (); 8737: 8737: 8737: extern int dysize (int __year) throw () __attribute__ ((__const__)); 8737: # 211 "/usr/include/time.h" 3 4 8737: extern int nanosleep (const struct timespec *__requested_time, 8737: struct timespec *__remaining); 8737: 8737: 8737: 8737: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 8737: 8737: 8737: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 8737: 8737: 8737: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 8737: throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 8737: const struct timespec *__req, 8737: struct timespec *__rem); 8737: 8737: 8737: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 8737: 8737: 8737: 8737: 8737: extern int timer_create (clockid_t __clock_id, 8737: struct sigevent *__restrict __evp, 8737: timer_t *__restrict __timerid) throw (); 8737: 8737: 8737: extern int timer_delete (timer_t __timerid) throw (); 8737: 8737: 8737: extern int timer_settime (timer_t __timerid, int __flags, 8737: const struct itimerspec *__restrict __value, 8737: struct itimerspec *__restrict __ovalue) throw (); 8737: 8737: 8737: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 8737: throw (); 8737: 8737: 8737: extern int timer_getoverrun (timer_t __timerid) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int timespec_get (struct timespec *__ts, int __base) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: # 280 "/usr/include/time.h" 3 4 8737: extern int getdate_err; 8737: # 289 "/usr/include/time.h" 3 4 8737: extern struct tm *getdate (const char *__string); 8737: # 303 "/usr/include/time.h" 3 4 8737: extern int getdate_r (const char *__restrict __string, 8737: struct tm *__restrict __resbufp); 8737: 8737: 8737: } 8737: # 25 "/usr/include/pthread.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4 8737: # 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4 8737: 8737: 8737: 8737: 8737: typedef long int __jmp_buf[8]; 8737: # 28 "/usr/include/pthread.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8737: # 29 "/usr/include/pthread.h" 2 3 4 8737: 8737: 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_CREATE_JOINABLE, 8737: 8737: PTHREAD_CREATE_DETACHED 8737: 8737: }; 8737: 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_MUTEX_TIMED_NP, 8737: PTHREAD_MUTEX_RECURSIVE_NP, 8737: PTHREAD_MUTEX_ERRORCHECK_NP, 8737: PTHREAD_MUTEX_ADAPTIVE_NP 8737: 8737: , 8737: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 8737: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 8737: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 8737: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 8737: 8737: 8737: 8737: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_MUTEX_STALLED, 8737: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 8737: PTHREAD_MUTEX_ROBUST, 8737: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_PRIO_NONE, 8737: PTHREAD_PRIO_INHERIT, 8737: PTHREAD_PRIO_PROTECT 8737: }; 8737: # 115 "/usr/include/pthread.h" 3 4 8737: enum 8737: { 8737: PTHREAD_RWLOCK_PREFER_READER_NP, 8737: PTHREAD_RWLOCK_PREFER_WRITER_NP, 8737: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 8737: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 8737: }; 8737: # 156 "/usr/include/pthread.h" 3 4 8737: enum 8737: { 8737: PTHREAD_INHERIT_SCHED, 8737: 8737: PTHREAD_EXPLICIT_SCHED 8737: 8737: }; 8737: 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_SCOPE_SYSTEM, 8737: 8737: PTHREAD_SCOPE_PROCESS 8737: 8737: }; 8737: 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_PROCESS_PRIVATE, 8737: 8737: PTHREAD_PROCESS_SHARED 8737: 8737: }; 8737: # 191 "/usr/include/pthread.h" 3 4 8737: struct _pthread_cleanup_buffer 8737: { 8737: void (*__routine) (void *); 8737: void *__arg; 8737: int __canceltype; 8737: struct _pthread_cleanup_buffer *__prev; 8737: }; 8737: 8737: 8737: enum 8737: { 8737: PTHREAD_CANCEL_ENABLE, 8737: 8737: PTHREAD_CANCEL_DISABLE 8737: 8737: }; 8737: enum 8737: { 8737: PTHREAD_CANCEL_DEFERRED, 8737: 8737: PTHREAD_CANCEL_ASYNCHRONOUS 8737: 8737: }; 8737: # 229 "/usr/include/pthread.h" 3 4 8737: extern "C" { 8737: 8737: 8737: 8737: 8737: extern int pthread_create (pthread_t *__restrict __newthread, 8737: const pthread_attr_t *__restrict __attr, 8737: void *(*__start_routine) (void *), 8737: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: 8737: 8737: 8737: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_join (pthread_t __th, void **__thread_return); 8737: 8737: 8737: 8737: 8737: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 8737: const struct timespec *__abstime); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_detach (pthread_t __th) throw (); 8737: 8737: 8737: 8737: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 8737: 8737: 8737: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 8737: throw () __attribute__ ((__const__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_attr_destroy (pthread_attr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 8737: int *__detachstate) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 8737: int __detachstate) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 8737: size_t *__guardsize) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 8737: size_t __guardsize) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 8737: struct sched_param *__restrict __param) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 8737: const struct sched_param *__restrict 8737: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 8737: __attr, int *__restrict __policy) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 8737: __attr, int *__restrict __inherit) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 8737: int __inherit) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 8737: int *__restrict __scope) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 8737: __attr, void **__restrict __stackaddr) 8737: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 8737: void *__stackaddr) 8737: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 8737: 8737: 8737: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 8737: __attr, size_t *__restrict __stacksize) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 8737: size_t __stacksize) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 8737: void **__restrict __stackaddr, 8737: size_t *__restrict __stacksize) 8737: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 8737: 8737: 8737: 8737: 8737: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 8737: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 8737: size_t __cpusetsize, 8737: const cpu_set_t *__cpuset) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: 8737: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 8737: size_t __cpusetsize, 8737: cpu_set_t *__cpuset) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 8737: const struct sched_param *__param) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: 8737: 8737: extern int pthread_getschedparam (pthread_t __target_thread, 8737: int *__restrict __policy, 8737: struct sched_param *__restrict __param) 8737: throw () __attribute__ ((__nonnull__ (2, 3))); 8737: 8737: 8737: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 8737: throw (); 8737: 8737: 8737: 8737: 8737: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 8737: size_t __buflen) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_getconcurrency (void) throw (); 8737: 8737: 8737: extern int pthread_setconcurrency (int __level) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_yield (void) throw (); 8737: 8737: 8737: 8737: 8737: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 8737: const cpu_set_t *__cpuset) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: 8737: 8737: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 8737: cpu_set_t *__cpuset) 8737: throw () __attribute__ ((__nonnull__ (3))); 8737: # 495 "/usr/include/pthread.h" 3 4 8737: extern int pthread_once (pthread_once_t *__once_control, 8737: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 8737: # 507 "/usr/include/pthread.h" 3 4 8737: extern int pthread_setcancelstate (int __state, int *__oldstate); 8737: 8737: 8737: 8737: extern int pthread_setcanceltype (int __type, int *__oldtype); 8737: 8737: 8737: extern int pthread_cancel (pthread_t __th); 8737: 8737: 8737: 8737: 8737: extern void pthread_testcancel (void); 8737: 8737: 8737: 8737: 8737: typedef struct 8737: { 8737: struct 8737: { 8737: __jmp_buf __cancel_jmp_buf; 8737: int __mask_was_saved; 8737: } __cancel_jmp_buf[1]; 8737: void *__pad[4]; 8737: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 8737: # 541 "/usr/include/pthread.h" 3 4 8737: struct __pthread_cleanup_frame 8737: { 8737: void (*__cancel_routine) (void *); 8737: void *__cancel_arg; 8737: int __do_it; 8737: int __cancel_type; 8737: }; 8737: 8737: 8737: 8737: 8737: class __pthread_cleanup_class 8737: { 8737: void (*__cancel_routine) (void *); 8737: void *__cancel_arg; 8737: int __do_it; 8737: int __cancel_type; 8737: 8737: public: 8737: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 8737: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 8737: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 8737: void __setdoit (int __newval) { __do_it = __newval; } 8737: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 8737: &__cancel_type); } 8737: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 8737: }; 8737: # 743 "/usr/include/pthread.h" 3 4 8737: struct __jmp_buf_tag; 8737: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 8737: const pthread_mutexattr_t *__mutexattr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 8737: const struct timespec *__restrict 8737: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 8737: __restrict __mutex, 8737: int *__restrict __prioceiling) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 8737: int __prioceiling, 8737: int *__restrict __old_ceiling) 8737: throw () __attribute__ ((__nonnull__ (1, 3))); 8737: 8737: 8737: 8737: 8737: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: # 807 "/usr/include/pthread.h" 3 4 8737: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 8737: __restrict __attr, 8737: int *__restrict __pshared) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 8737: int __pshared) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 8737: __attr, int *__restrict __kind) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: 8737: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 8737: __restrict __attr, 8737: int *__restrict __protocol) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 8737: int __protocol) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 8737: __restrict __attr, 8737: int *__restrict __prioceiling) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 8737: int __prioceiling) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 8737: int *__robustness) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 8737: int *__robustness) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 8737: int __robustness) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 8737: int __robustness) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: # 889 "/usr/include/pthread.h" 3 4 8737: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 8737: const pthread_rwlockattr_t *__restrict 8737: __attr) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 8737: const struct timespec *__restrict 8737: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 8737: const struct timespec *__restrict 8737: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: 8737: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 8737: __restrict __attr, 8737: int *__restrict __pshared) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 8737: int __pshared) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 8737: __restrict __attr, 8737: int *__restrict __pref) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 8737: int __pref) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 8737: const pthread_condattr_t *__restrict __cond_attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_cond_destroy (pthread_cond_t *__cond) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_cond_signal (pthread_cond_t *__cond) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 8737: pthread_mutex_t *__restrict __mutex) 8737: __attribute__ ((__nonnull__ (1, 2))); 8737: # 1001 "/usr/include/pthread.h" 3 4 8737: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 8737: pthread_mutex_t *__restrict __mutex, 8737: const struct timespec *__restrict __abstime) 8737: __attribute__ ((__nonnull__ (1, 2, 3))); 8737: 8737: 8737: 8737: 8737: extern int pthread_condattr_init (pthread_condattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_condattr_getpshared (const pthread_condattr_t * 8737: __restrict __attr, 8737: int *__restrict __pshared) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 8737: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_condattr_getclock (const pthread_condattr_t * 8737: __restrict __attr, 8737: __clockid_t *__restrict __clock_id) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 8737: __clockid_t __clock_id) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: # 1045 "/usr/include/pthread.h" 3 4 8737: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 8737: const pthread_barrierattr_t *__restrict 8737: __attr, unsigned int __count) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: 8737: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 8737: __restrict __attr, 8737: int *__restrict __pshared) 8737: throw () __attribute__ ((__nonnull__ (1, 2))); 8737: 8737: 8737: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 8737: int __pshared) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: # 1112 "/usr/include/pthread.h" 3 4 8737: extern int pthread_key_create (pthread_key_t *__key, 8737: void (*__destr_function) (void *)) 8737: throw () __attribute__ ((__nonnull__ (1))); 8737: 8737: 8737: extern int pthread_key_delete (pthread_key_t __key) throw (); 8737: 8737: 8737: extern void *pthread_getspecific (pthread_key_t __key) throw (); 8737: 8737: 8737: extern int pthread_setspecific (pthread_key_t __key, 8737: const void *__pointer) throw () ; 8737: 8737: 8737: 8737: 8737: extern int pthread_getcpuclockid (pthread_t __thread_id, 8737: __clockid_t *__clock_id) 8737: throw () __attribute__ ((__nonnull__ (2))); 8737: # 1146 "/usr/include/pthread.h" 3 4 8737: extern int pthread_atfork (void (*__prepare) (void), 8737: void (*__parent) (void), 8737: void (*__child) (void)) throw (); 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 8737: { 8737: return __thread1 == __thread2; 8737: } 8737: 8737: 8737: } 8737: # 36 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 2 3 8737: # 47 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: typedef pthread_t __gthread_t; 8737: typedef pthread_key_t __gthread_key_t; 8737: typedef pthread_once_t __gthread_once_t; 8737: typedef pthread_mutex_t __gthread_mutex_t; 8737: typedef pthread_mutex_t __gthread_recursive_mutex_t; 8737: typedef pthread_cond_t __gthread_cond_t; 8737: typedef struct timespec __gthread_time_t; 8737: # 101 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); 8737: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); 8737: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); 8737: 8737: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); 8737: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); 8737: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); 8737: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); 8737: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); 8737: 8737: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); 8737: 8737: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); 8737: 8737: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); 8737: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); 8737: 8737: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); 8737: 8737: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); 8737: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); 8737: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); 8737: 8737: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); 8737: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); 8737: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); 8737: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); 8737: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); 8737: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); 8737: 8737: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); 8737: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); 8737: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); 8737: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); 8737: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); 8737: # 236 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); 8737: # 246 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: static inline int 8737: __gthread_active_p (void) 8737: { 8737: static void *const __gthread_active_ptr 8737: = __extension__ (void *) &__gthrw___pthread_key_create; 8737: return __gthread_active_ptr != 0; 8737: } 8737: # 658 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: static inline int 8737: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 8737: void *__args) 8737: { 8737: return __gthrw_pthread_create (__threadid, __null, __func, __args); 8737: } 8737: 8737: static inline int 8737: __gthread_join (__gthread_t __threadid, void **__value_ptr) 8737: { 8737: return __gthrw_pthread_join (__threadid, __value_ptr); 8737: } 8737: 8737: static inline int 8737: __gthread_detach (__gthread_t __threadid) 8737: { 8737: return __gthrw_pthread_detach (__threadid); 8737: } 8737: 8737: static inline int 8737: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 8737: { 8737: return __gthrw_pthread_equal (__t1, __t2); 8737: } 8737: 8737: static inline __gthread_t 8737: __gthread_self (void) 8737: { 8737: return __gthrw_pthread_self (); 8737: } 8737: 8737: static inline int 8737: __gthread_yield (void) 8737: { 8737: return __gthrw_sched_yield (); 8737: } 8737: 8737: static inline int 8737: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 8737: { 8737: if (__gthread_active_p ()) 8737: return __gthrw_pthread_once (__once, __func); 8737: else 8737: return -1; 8737: } 8737: 8737: static inline int 8737: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 8737: { 8737: return __gthrw_pthread_key_create (__key, __dtor); 8737: } 8737: 8737: static inline int 8737: __gthread_key_delete (__gthread_key_t __key) 8737: { 8737: return __gthrw_pthread_key_delete (__key); 8737: } 8737: 8737: static inline void * 8737: __gthread_getspecific (__gthread_key_t __key) 8737: { 8737: return __gthrw_pthread_getspecific (__key); 8737: } 8737: 8737: static inline int 8737: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 8737: { 8737: return __gthrw_pthread_setspecific (__key, __ptr); 8737: } 8737: 8737: static inline void 8737: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 8737: { 8737: if (__gthread_active_p ()) 8737: __gthrw_pthread_mutex_init (__mutex, __null); 8737: } 8737: 8737: static inline int 8737: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 8737: { 8737: if (__gthread_active_p ()) 8737: return __gthrw_pthread_mutex_destroy (__mutex); 8737: else 8737: return 0; 8737: } 8737: 8737: static inline int 8737: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 8737: { 8737: if (__gthread_active_p ()) 8737: return __gthrw_pthread_mutex_lock (__mutex); 8737: else 8737: return 0; 8737: } 8737: 8737: static inline int 8737: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 8737: { 8737: if (__gthread_active_p ()) 8737: return __gthrw_pthread_mutex_trylock (__mutex); 8737: else 8737: return 0; 8737: } 8737: 8737: 8737: static inline int 8737: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 8737: const __gthread_time_t *__abs_timeout) 8737: { 8737: if (__gthread_active_p ()) 8737: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 8737: else 8737: return 0; 8737: } 8737: 8737: 8737: static inline int 8737: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 8737: { 8737: if (__gthread_active_p ()) 8737: return __gthrw_pthread_mutex_unlock (__mutex); 8737: else 8737: return 0; 8737: } 8737: # 807 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: static inline int 8737: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 8737: { 8737: return __gthread_mutex_lock (__mutex); 8737: } 8737: 8737: static inline int 8737: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 8737: { 8737: return __gthread_mutex_trylock (__mutex); 8737: } 8737: 8737: 8737: static inline int 8737: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 8737: const __gthread_time_t *__abs_timeout) 8737: { 8737: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 8737: } 8737: 8737: 8737: static inline int 8737: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 8737: { 8737: return __gthread_mutex_unlock (__mutex); 8737: } 8737: 8737: static inline int 8737: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 8737: { 8737: return __gthread_mutex_destroy (__mutex); 8737: } 8737: # 849 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8737: static inline int 8737: __gthread_cond_broadcast (__gthread_cond_t *__cond) 8737: { 8737: return __gthrw_pthread_cond_broadcast (__cond); 8737: } 8737: 8737: static inline int 8737: __gthread_cond_signal (__gthread_cond_t *__cond) 8737: { 8737: return __gthrw_pthread_cond_signal (__cond); 8737: } 8737: 8737: static inline int 8737: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 8737: { 8737: return __gthrw_pthread_cond_wait (__cond, __mutex); 8737: } 8737: 8737: static inline int 8737: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 8737: const __gthread_time_t *__abs_timeout) 8737: { 8737: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 8737: } 8737: 8737: static inline int 8737: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 8737: __gthread_recursive_mutex_t *__mutex) 8737: { 8737: return __gthread_cond_wait (__cond, __mutex); 8737: } 8737: 8737: static inline int 8737: __gthread_cond_destroy (__gthread_cond_t* __cond) 8737: { 8737: return __gthrw_pthread_cond_destroy (__cond); 8737: } 8737: # 149 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 2 3 8737: 8737: 8737: #pragma GCC visibility pop 8737: # 36 "/usr/include/c++/8/ext/atomicity.h" 2 3 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/atomic_word.h" 1 3 8737: # 32 "/usr/include/x86_64-linux-gnu/c++/8/bits/atomic_word.h" 3 8737: typedef int _Atomic_word; 8737: # 37 "/usr/include/c++/8/ext/atomicity.h" 2 3 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: static inline _Atomic_word 8737: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 8737: { return __atomic_fetch_add(__mem, __val, 4); } 8737: 8737: static inline void 8737: __atomic_add(volatile _Atomic_word* __mem, int __val) 8737: { __atomic_fetch_add(__mem, __val, 4); } 8737: # 64 "/usr/include/c++/8/ext/atomicity.h" 3 8737: static inline _Atomic_word 8737: __exchange_and_add_single(_Atomic_word* __mem, int __val) 8737: { 8737: _Atomic_word __result = *__mem; 8737: *__mem += __val; 8737: return __result; 8737: } 8737: 8737: static inline void 8737: __atomic_add_single(_Atomic_word* __mem, int __val) 8737: { *__mem += __val; } 8737: 8737: static inline _Atomic_word 8737: __attribute__ ((__unused__)) 8737: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 8737: { 8737: 8737: if (__gthread_active_p()) 8737: return __exchange_and_add(__mem, __val); 8737: else 8737: return __exchange_and_add_single(__mem, __val); 8737: 8737: 8737: 8737: } 8737: 8737: static inline void 8737: __attribute__ ((__unused__)) 8737: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 8737: { 8737: 8737: if (__gthread_active_p()) 8737: __atomic_add(__mem, __val); 8737: else 8737: __atomic_add_single(__mem, __val); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: } 8737: # 40 "/usr/include/c++/8/bits/basic_string.h" 2 3 8737: # 52 "/usr/include/c++/8/bits/basic_string.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: namespace __cxx11 { 8737: # 76 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: class basic_string 8737: { 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_CharT>::other _Char_alloc_type; 8737: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 8737: 8737: 8737: public: 8737: typedef _Traits traits_type; 8737: typedef typename _Traits::char_type value_type; 8737: typedef _Char_alloc_type allocator_type; 8737: typedef typename _Alloc_traits::size_type size_type; 8737: typedef typename _Alloc_traits::difference_type difference_type; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: typedef typename _Alloc_traits::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef __gnu_cxx::__normal_iterator iterator; 8737: typedef __gnu_cxx::__normal_iterator 8737: const_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: 8737: 8737: static const size_type npos = static_cast(-1); 8737: 8737: private: 8737: 8737: 8737: 8737: 8737: typedef const_iterator __const_iterator; 8737: # 139 "/usr/include/c++/8/bits/basic_string.h" 3 8737: struct _Alloc_hider : allocator_type 8737: { 8737: 8737: 8737: 8737: 8737: _Alloc_hider(pointer __dat, const _Alloc& __a) 8737: : allocator_type(__a), _M_p(__dat) { } 8737: 8737: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 8737: : allocator_type(std::move(__a)), _M_p(__dat) { } 8737: 8737: 8737: pointer _M_p; 8737: }; 8737: 8737: _Alloc_hider _M_dataplus; 8737: size_type _M_string_length; 8737: 8737: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 8737: 8737: union 8737: { 8737: _CharT _M_local_buf[_S_local_capacity + 1]; 8737: size_type _M_allocated_capacity; 8737: }; 8737: 8737: void 8737: _M_data(pointer __p) 8737: { _M_dataplus._M_p = __p; } 8737: 8737: void 8737: _M_length(size_type __length) 8737: { _M_string_length = __length; } 8737: 8737: pointer 8737: _M_data() const 8737: { return _M_dataplus._M_p; } 8737: 8737: pointer 8737: _M_local_data() 8737: { 8737: 8737: return std::pointer_traits::pointer_to(*_M_local_buf); 8737: 8737: 8737: 8737: } 8737: 8737: const_pointer 8737: _M_local_data() const 8737: { 8737: 8737: return std::pointer_traits::pointer_to(*_M_local_buf); 8737: 8737: 8737: 8737: } 8737: 8737: void 8737: _M_capacity(size_type __capacity) 8737: { _M_allocated_capacity = __capacity; } 8737: 8737: void 8737: _M_set_length(size_type __n) 8737: { 8737: _M_length(__n); 8737: traits_type::assign(_M_data()[__n], _CharT()); 8737: } 8737: 8737: bool 8737: _M_is_local() const 8737: { return _M_data() == _M_local_data(); } 8737: 8737: 8737: pointer 8737: _M_create(size_type&, size_type); 8737: 8737: void 8737: _M_dispose() 8737: { 8737: if (!_M_is_local()) 8737: _M_destroy(_M_allocated_capacity); 8737: } 8737: 8737: void 8737: _M_destroy(size_type __size) throw() 8737: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 8737: 8737: 8737: 8737: template 8737: void 8737: _M_construct_aux(_InIterator __beg, _InIterator __end, 8737: std::__false_type) 8737: { 8737: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 8737: _M_construct(__beg, __end, _Tag()); 8737: } 8737: 8737: 8737: 8737: template 8737: void 8737: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 8737: { _M_construct_aux_2(static_cast(__beg), __end); } 8737: 8737: void 8737: _M_construct_aux_2(size_type __req, _CharT __c) 8737: { _M_construct(__req, __c); } 8737: 8737: template 8737: void 8737: _M_construct(_InIterator __beg, _InIterator __end) 8737: { 8737: typedef typename std::__is_integer<_InIterator>::__type _Integral; 8737: _M_construct_aux(__beg, __end, _Integral()); 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_construct(_InIterator __beg, _InIterator __end, 8737: std::input_iterator_tag); 8737: 8737: 8737: 8737: template 8737: void 8737: _M_construct(_FwdIterator __beg, _FwdIterator __end, 8737: std::forward_iterator_tag); 8737: 8737: void 8737: _M_construct(size_type __req, _CharT __c); 8737: 8737: allocator_type& 8737: _M_get_allocator() 8737: { return _M_dataplus; } 8737: 8737: const allocator_type& 8737: _M_get_allocator() const 8737: { return _M_dataplus; } 8737: 8737: private: 8737: # 298 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: _M_check(size_type __pos, const char* __s) const 8737: { 8737: if (__pos > this->size()) 8737: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 8737: , 8737: __s, __pos, this->size()); 8737: return __pos; 8737: } 8737: 8737: void 8737: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 8737: { 8737: if (this->max_size() - (this->size() - __n1) < __n2) 8737: __throw_length_error((__s)); 8737: } 8737: 8737: 8737: 8737: size_type 8737: _M_limit(size_type __pos, size_type __off) const noexcept 8737: { 8737: const bool __testoff = __off < this->size() - __pos; 8737: return __testoff ? __off : this->size() - __pos; 8737: } 8737: 8737: 8737: bool 8737: _M_disjunct(const _CharT* __s) const noexcept 8737: { 8737: return (less()(__s, _M_data()) 8737: || less()(_M_data() + this->size(), __s)); 8737: } 8737: 8737: 8737: 8737: static void 8737: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 8737: { 8737: if (__n == 1) 8737: traits_type::assign(*__d, *__s); 8737: else 8737: traits_type::copy(__d, __s, __n); 8737: } 8737: 8737: static void 8737: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 8737: { 8737: if (__n == 1) 8737: traits_type::assign(*__d, *__s); 8737: else 8737: traits_type::move(__d, __s, __n); 8737: } 8737: 8737: static void 8737: _S_assign(_CharT* __d, size_type __n, _CharT __c) 8737: { 8737: if (__n == 1) 8737: traits_type::assign(*__d, __c); 8737: else 8737: traits_type::assign(__d, __n, __c); 8737: } 8737: 8737: 8737: 8737: template 8737: static void 8737: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 8737: { 8737: for (; __k1 != __k2; ++__k1, (void)++__p) 8737: traits_type::assign(*__p, *__k1); 8737: } 8737: 8737: static void 8737: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 8737: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8737: 8737: static void 8737: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 8737: noexcept 8737: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8737: 8737: static void 8737: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 8737: { _S_copy(__p, __k1, __k2 - __k1); } 8737: 8737: static void 8737: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 8737: noexcept 8737: { _S_copy(__p, __k1, __k2 - __k1); } 8737: 8737: static int 8737: _S_compare(size_type __n1, size_type __n2) noexcept 8737: { 8737: const difference_type __d = difference_type(__n1 - __n2); 8737: 8737: if (__d > __gnu_cxx::__numeric_traits::__max) 8737: return __gnu_cxx::__numeric_traits::__max; 8737: else if (__d < __gnu_cxx::__numeric_traits::__min) 8737: return __gnu_cxx::__numeric_traits::__min; 8737: else 8737: return int(__d); 8737: } 8737: 8737: void 8737: _M_assign(const basic_string&); 8737: 8737: void 8737: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8737: size_type __len2); 8737: 8737: void 8737: _M_erase(size_type __pos, size_type __n); 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string() 8737: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8737: : _M_dataplus(_M_local_data()) 8737: { _M_set_length(0); } 8737: 8737: 8737: 8737: 8737: explicit 8737: basic_string(const _Alloc& __a) noexcept 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_set_length(0); } 8737: 8737: 8737: 8737: 8737: 8737: basic_string(const basic_string& __str) 8737: : _M_dataplus(_M_local_data(), 8737: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 8737: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 8737: # 450 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string(const basic_string& __str, size_type __pos, 8737: const _Alloc& __a = _Alloc()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { 8737: const _CharT* __start = __str._M_data() 8737: + __str._M_check(__pos, "basic_string::basic_string"); 8737: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string(const basic_string& __str, size_type __pos, 8737: size_type __n) 8737: : _M_dataplus(_M_local_data()) 8737: { 8737: const _CharT* __start = __str._M_data() 8737: + __str._M_check(__pos, "basic_string::basic_string"); 8737: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8737: } 8737: # 481 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string(const basic_string& __str, size_type __pos, 8737: size_type __n, const _Alloc& __a) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { 8737: const _CharT* __start 8737: = __str._M_data() + __str._M_check(__pos, "string::string"); 8737: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8737: } 8737: # 499 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string(const _CharT* __s, size_type __n, 8737: const _Alloc& __a = _Alloc()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_construct(__s, __s + __n); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_construct(__n, __c); } 8737: # 531 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string(basic_string&& __str) noexcept 8737: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 8737: { 8737: if (__str._M_is_local()) 8737: { 8737: traits_type::copy(_M_local_buf, __str._M_local_buf, 8737: _S_local_capacity + 1); 8737: } 8737: else 8737: { 8737: _M_data(__str._M_data()); 8737: _M_capacity(__str._M_allocated_capacity); 8737: } 8737: 8737: 8737: 8737: 8737: _M_length(__str.length()); 8737: __str._M_data(__str._M_local_data()); 8737: __str._M_set_length(0); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_construct(__l.begin(), __l.end()); } 8737: 8737: basic_string(const basic_string& __str, const _Alloc& __a) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_construct(__str.begin(), __str.end()); } 8737: 8737: basic_string(basic_string&& __str, const _Alloc& __a) 8737: noexcept(_Alloc_traits::_S_always_equal()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { 8737: if (__str._M_is_local()) 8737: { 8737: traits_type::copy(_M_local_buf, __str._M_local_buf, 8737: _S_local_capacity + 1); 8737: _M_length(__str.length()); 8737: __str._M_set_length(0); 8737: } 8737: else if (_Alloc_traits::_S_always_equal() 8737: || __str.get_allocator() == __a) 8737: { 8737: _M_data(__str._M_data()); 8737: _M_length(__str.length()); 8737: _M_capacity(__str._M_allocated_capacity); 8737: __str._M_data(__str._M_local_buf); 8737: __str._M_set_length(0); 8737: } 8737: else 8737: _M_construct(__str.begin(), __str.end()); 8737: } 8737: # 599 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template> 8737: 8737: 8737: 8737: basic_string(_InputIterator __beg, _InputIterator __end, 8737: const _Alloc& __a = _Alloc()) 8737: : _M_dataplus(_M_local_data(), __a) 8737: { _M_construct(__beg, __end); } 8737: # 646 "/usr/include/c++/8/bits/basic_string.h" 3 8737: ~basic_string() 8737: { _M_dispose(); } 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: operator=(const basic_string& __str) 8737: { 8737: 8737: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8737: { 8737: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 8737: && _M_get_allocator() != __str._M_get_allocator()) 8737: { 8737: 8737: 8737: if (__str.size() <= _S_local_capacity) 8737: { 8737: _M_destroy(_M_allocated_capacity); 8737: _M_data(_M_local_data()); 8737: _M_set_length(0); 8737: } 8737: else 8737: { 8737: const auto __len = __str.size(); 8737: auto __alloc = __str._M_get_allocator(); 8737: 8737: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 8737: _M_destroy(_M_allocated_capacity); 8737: _M_data(__ptr); 8737: _M_capacity(__len); 8737: _M_set_length(__len); 8737: } 8737: } 8737: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 8737: } 8737: 8737: return this->assign(__str); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: operator=(const _CharT* __s) 8737: { return this->assign(__s); } 8737: # 703 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: operator=(_CharT __c) 8737: { 8737: this->assign(1, __c); 8737: return *this; 8737: } 8737: # 721 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: operator=(basic_string&& __str) 8737: noexcept(_Alloc_traits::_S_nothrow_move()) 8737: { 8737: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 8737: && !_Alloc_traits::_S_always_equal() 8737: && _M_get_allocator() != __str._M_get_allocator()) 8737: { 8737: 8737: _M_destroy(_M_allocated_capacity); 8737: _M_data(_M_local_data()); 8737: _M_set_length(0); 8737: } 8737: 8737: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 8737: 8737: if (!__str._M_is_local() 8737: && (_Alloc_traits::_S_propagate_on_move_assign() 8737: || _Alloc_traits::_S_always_equal())) 8737: { 8737: pointer __data = nullptr; 8737: size_type __capacity; 8737: if (!_M_is_local()) 8737: { 8737: if (_Alloc_traits::_S_always_equal()) 8737: { 8737: __data = _M_data(); 8737: __capacity = _M_allocated_capacity; 8737: } 8737: else 8737: _M_destroy(_M_allocated_capacity); 8737: } 8737: 8737: _M_data(__str._M_data()); 8737: _M_length(__str.length()); 8737: _M_capacity(__str._M_allocated_capacity); 8737: if (__data) 8737: { 8737: __str._M_data(__data); 8737: __str._M_capacity(__capacity); 8737: } 8737: else 8737: __str._M_data(__str._M_local_buf); 8737: } 8737: else 8737: assign(__str); 8737: __str.clear(); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: operator=(initializer_list<_CharT> __l) 8737: { 8737: this->assign(__l.begin(), __l.size()); 8737: return *this; 8737: } 8737: # 806 "/usr/include/c++/8/bits/basic_string.h" 3 8737: iterator 8737: begin() noexcept 8737: { return iterator(_M_data()); } 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return const_iterator(_M_data()); } 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() noexcept 8737: { return iterator(_M_data() + this->size()); } 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return const_iterator(_M_data() + this->size()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(this->end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(this->end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(this->begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(this->begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return const_iterator(this->_M_data()); } 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return const_iterator(this->_M_data() + this->size()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return const_reverse_iterator(this->end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return const_reverse_iterator(this->begin()); } 8737: 8737: 8737: public: 8737: 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_string_length; } 8737: 8737: 8737: 8737: size_type 8737: length() const noexcept 8737: { return _M_string_length; } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 8737: # 935 "/usr/include/c++/8/bits/basic_string.h" 3 8737: void 8737: resize(size_type __n, _CharT __c); 8737: # 948 "/usr/include/c++/8/bits/basic_string.h" 3 8737: void 8737: resize(size_type __n) 8737: { this->resize(__n, _CharT()); } 8737: 8737: 8737: 8737: void 8737: shrink_to_fit() noexcept 8737: { 8737: 8737: if (capacity() > size()) 8737: { 8737: try 8737: { reserve(0); } 8737: catch(...) 8737: { } 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: size_type 8737: capacity() const noexcept 8737: { 8737: return _M_is_local() ? size_type(_S_local_capacity) 8737: : _M_allocated_capacity; 8737: } 8737: # 997 "/usr/include/c++/8/bits/basic_string.h" 3 8737: void 8737: reserve(size_type __res_arg = 0); 8737: 8737: 8737: 8737: 8737: void 8737: clear() noexcept 8737: { _M_set_length(0); } 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return this->size() == 0; } 8737: # 1026 "/usr/include/c++/8/bits/basic_string.h" 3 8737: const_reference 8737: operator[] (size_type __pos) const noexcept 8737: { 8737: ; 8737: return _M_data()[__pos]; 8737: } 8737: # 1043 "/usr/include/c++/8/bits/basic_string.h" 3 8737: reference 8737: operator[](size_type __pos) 8737: { 8737: 8737: 8737: ; 8737: 8737: ; 8737: return _M_data()[__pos]; 8737: } 8737: # 1064 "/usr/include/c++/8/bits/basic_string.h" 3 8737: const_reference 8737: at(size_type __n) const 8737: { 8737: if (__n >= this->size()) 8737: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8737: 8737: , 8737: __n, this->size()); 8737: return _M_data()[__n]; 8737: } 8737: # 1085 "/usr/include/c++/8/bits/basic_string.h" 3 8737: reference 8737: at(size_type __n) 8737: { 8737: if (__n >= size()) 8737: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8737: 8737: , 8737: __n, this->size()); 8737: return _M_data()[__n]; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: front() noexcept 8737: { 8737: ; 8737: return operator[](0); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: front() const noexcept 8737: { 8737: ; 8737: return operator[](0); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: back() noexcept 8737: { 8737: ; 8737: return operator[](this->size() - 1); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: back() const noexcept 8737: { 8737: ; 8737: return operator[](this->size() - 1); 8737: } 8737: # 1148 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: operator+=(const basic_string& __str) 8737: { return this->append(__str); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: operator+=(const _CharT* __s) 8737: { return this->append(__s); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: operator+=(_CharT __c) 8737: { 8737: this->push_back(__c); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: operator+=(initializer_list<_CharT> __l) 8737: { return this->append(__l.begin(), __l.size()); } 8737: # 1201 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: append(const basic_string& __str) 8737: { return _M_append(__str._M_data(), __str.size()); } 8737: # 1218 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: append(const basic_string& __str, size_type __pos, size_type __n) 8737: { return _M_append(__str._M_data() 8737: + __str._M_check(__pos, "basic_string::append"), 8737: __str._M_limit(__pos, __n)); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: append(const _CharT* __s, size_type __n) 8737: { 8737: ; 8737: _M_check_length(size_type(0), __n, "basic_string::append"); 8737: return _M_append(__s, __n); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: append(const _CharT* __s) 8737: { 8737: ; 8737: const size_type __n = traits_type::length(__s); 8737: _M_check_length(size_type(0), __n, "basic_string::append"); 8737: return _M_append(__s, __n); 8737: } 8737: # 1260 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: append(size_type __n, _CharT __c) 8737: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: append(initializer_list<_CharT> __l) 8737: { return this->append(__l.begin(), __l.size()); } 8737: # 1284 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template> 8737: 8737: 8737: 8737: basic_string& 8737: append(_InputIterator __first, _InputIterator __last) 8737: { return this->replace(end(), end(), __first, __last); } 8737: # 1329 "/usr/include/c++/8/bits/basic_string.h" 3 8737: void 8737: push_back(_CharT __c) 8737: { 8737: const size_type __size = this->size(); 8737: if (__size + 1 > this->capacity()) 8737: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 8737: traits_type::assign(this->_M_data()[__size], __c); 8737: this->_M_set_length(__size + 1); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: assign(const basic_string& __str) 8737: { 8737: this->_M_assign(__str); 8737: return *this; 8737: } 8737: # 1360 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: assign(basic_string&& __str) 8737: noexcept(_Alloc_traits::_S_nothrow_move()) 8737: { 8737: 8737: 8737: return *this = std::move(__str); 8737: } 8737: # 1383 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: assign(const basic_string& __str, size_type __pos, size_type __n) 8737: { return _M_replace(size_type(0), this->size(), __str._M_data() 8737: + __str._M_check(__pos, "basic_string::assign"), 8737: __str._M_limit(__pos, __n)); } 8737: # 1399 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: assign(const _CharT* __s, size_type __n) 8737: { 8737: ; 8737: return _M_replace(size_type(0), this->size(), __s, __n); 8737: } 8737: # 1415 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: assign(const _CharT* __s) 8737: { 8737: ; 8737: return _M_replace(size_type(0), this->size(), __s, 8737: traits_type::length(__s)); 8737: } 8737: # 1432 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: assign(size_type __n, _CharT __c) 8737: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 8737: # 1445 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template> 8737: 8737: 8737: 8737: basic_string& 8737: assign(_InputIterator __first, _InputIterator __last) 8737: { return this->replace(begin(), end(), __first, __last); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_string& 8737: assign(initializer_list<_CharT> __l) 8737: { return this->assign(__l.begin(), __l.size()); } 8737: # 1513 "/usr/include/c++/8/bits/basic_string.h" 3 8737: iterator 8737: insert(const_iterator __p, size_type __n, _CharT __c) 8737: { 8737: ; 8737: const size_type __pos = __p - begin(); 8737: this->replace(__p, __p, __n, __c); 8737: return iterator(this->_M_data() + __pos); 8737: } 8737: # 1555 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template> 8737: iterator 8737: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 8737: { 8737: ; 8737: const size_type __pos = __p - begin(); 8737: this->replace(__p, __p, __beg, __end); 8737: return iterator(this->_M_data() + __pos); 8737: } 8737: # 1591 "/usr/include/c++/8/bits/basic_string.h" 3 8737: void 8737: insert(iterator __p, initializer_list<_CharT> __l) 8737: { 8737: ; 8737: this->insert(__p - begin(), __l.begin(), __l.size()); 8737: } 8737: # 1611 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: insert(size_type __pos1, const basic_string& __str) 8737: { return this->replace(__pos1, size_type(0), 8737: __str._M_data(), __str.size()); } 8737: # 1634 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: insert(size_type __pos1, const basic_string& __str, 8737: size_type __pos2, size_type __n) 8737: { return this->replace(__pos1, size_type(0), __str._M_data() 8737: + __str._M_check(__pos2, "basic_string::insert"), 8737: __str._M_limit(__pos2, __n)); } 8737: # 1657 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: insert(size_type __pos, const _CharT* __s, size_type __n) 8737: { return this->replace(__pos, size_type(0), __s, __n); } 8737: # 1676 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: insert(size_type __pos, const _CharT* __s) 8737: { 8737: ; 8737: return this->replace(__pos, size_type(0), __s, 8737: traits_type::length(__s)); 8737: } 8737: # 1700 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: insert(size_type __pos, size_type __n, _CharT __c) 8737: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 8737: size_type(0), __n, __c); } 8737: # 1718 "/usr/include/c++/8/bits/basic_string.h" 3 8737: iterator 8737: insert(__const_iterator __p, _CharT __c) 8737: { 8737: ; 8737: const size_type __pos = __p - begin(); 8737: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 8737: return iterator(_M_data() + __pos); 8737: } 8737: # 1778 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: erase(size_type __pos = 0, size_type __n = npos) 8737: { 8737: _M_check(__pos, "basic_string::erase"); 8737: if (__n == npos) 8737: this->_M_set_length(__pos); 8737: else if (__n != 0) 8737: this->_M_erase(__pos, _M_limit(__pos, __n)); 8737: return *this; 8737: } 8737: # 1797 "/usr/include/c++/8/bits/basic_string.h" 3 8737: iterator 8737: erase(__const_iterator __position) 8737: { 8737: 8737: ; 8737: const size_type __pos = __position - begin(); 8737: this->_M_erase(__pos, size_type(1)); 8737: return iterator(_M_data() + __pos); 8737: } 8737: # 1816 "/usr/include/c++/8/bits/basic_string.h" 3 8737: iterator 8737: erase(__const_iterator __first, __const_iterator __last) 8737: { 8737: 8737: ; 8737: const size_type __pos = __first - begin(); 8737: if (__last == end()) 8737: this->_M_set_length(__pos); 8737: else 8737: this->_M_erase(__pos, __last - __first); 8737: return iterator(this->_M_data() + __pos); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: pop_back() noexcept 8737: { 8737: ; 8737: _M_erase(size() - 1, 1); 8737: } 8737: # 1860 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(size_type __pos, size_type __n, const basic_string& __str) 8737: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 8737: # 1882 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(size_type __pos1, size_type __n1, const basic_string& __str, 8737: size_type __pos2, size_type __n2) 8737: { return this->replace(__pos1, __n1, __str._M_data() 8737: + __str._M_check(__pos2, "basic_string::replace"), 8737: __str._M_limit(__pos2, __n2)); } 8737: # 1907 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(size_type __pos, size_type __n1, const _CharT* __s, 8737: size_type __n2) 8737: { 8737: ; 8737: return _M_replace(_M_check(__pos, "basic_string::replace"), 8737: _M_limit(__pos, __n1), __s, __n2); 8737: } 8737: # 1932 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(size_type __pos, size_type __n1, const _CharT* __s) 8737: { 8737: ; 8737: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 8737: } 8737: # 1956 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 8737: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 8737: _M_limit(__pos, __n1), __n2, __c); } 8737: # 1974 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, 8737: const basic_string& __str) 8737: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 8737: # 1994 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, 8737: const _CharT* __s, size_type __n) 8737: { 8737: 8737: ; 8737: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 8737: } 8737: # 2016 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 8737: { 8737: ; 8737: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 8737: } 8737: # 2037 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 8737: _CharT __c) 8737: { 8737: 8737: ; 8737: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 8737: } 8737: # 2062 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template> 8737: basic_string& 8737: replace(const_iterator __i1, const_iterator __i2, 8737: _InputIterator __k1, _InputIterator __k2) 8737: { 8737: 8737: ; 8737: ; 8737: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 8737: std::__false_type()); 8737: } 8737: # 2094 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, 8737: _CharT* __k1, _CharT* __k2) 8737: { 8737: 8737: ; 8737: ; 8737: return this->replace(__i1 - begin(), __i2 - __i1, 8737: __k1, __k2 - __k1); 8737: } 8737: 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, 8737: const _CharT* __k1, const _CharT* __k2) 8737: { 8737: 8737: ; 8737: ; 8737: return this->replace(__i1 - begin(), __i2 - __i1, 8737: __k1, __k2 - __k1); 8737: } 8737: 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, 8737: iterator __k1, iterator __k2) 8737: { 8737: 8737: ; 8737: ; 8737: return this->replace(__i1 - begin(), __i2 - __i1, 8737: __k1.base(), __k2 - __k1); 8737: } 8737: 8737: basic_string& 8737: replace(__const_iterator __i1, __const_iterator __i2, 8737: const_iterator __k1, const_iterator __k2) 8737: { 8737: 8737: ; 8737: ; 8737: return this->replace(__i1 - begin(), __i2 - __i1, 8737: __k1.base(), __k2 - __k1); 8737: } 8737: # 2153 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string& replace(const_iterator __i1, const_iterator __i2, 8737: initializer_list<_CharT> __l) 8737: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 8737: # 2212 "/usr/include/c++/8/bits/basic_string.h" 3 8737: private: 8737: template 8737: basic_string& 8737: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8737: _Integer __n, _Integer __val, __true_type) 8737: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 8737: 8737: template 8737: basic_string& 8737: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8737: _InputIterator __k1, _InputIterator __k2, 8737: __false_type); 8737: 8737: basic_string& 8737: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8737: _CharT __c); 8737: 8737: basic_string& 8737: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8737: const size_type __len2); 8737: 8737: basic_string& 8737: _M_append(const _CharT* __s, size_type __n); 8737: 8737: public: 8737: # 2250 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 8737: # 2260 "/usr/include/c++/8/bits/basic_string.h" 3 8737: void 8737: swap(basic_string& __s) noexcept; 8737: # 2270 "/usr/include/c++/8/bits/basic_string.h" 3 8737: const _CharT* 8737: c_str() const noexcept 8737: { return _M_data(); } 8737: # 2282 "/usr/include/c++/8/bits/basic_string.h" 3 8737: const _CharT* 8737: data() const noexcept 8737: { return _M_data(); } 8737: # 2301 "/usr/include/c++/8/bits/basic_string.h" 3 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return _M_get_allocator(); } 8737: # 2317 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept; 8737: # 2331 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find(const basic_string& __str, size_type __pos = 0) const 8737: noexcept 8737: { return this->find(__str.data(), __pos, __str.size()); } 8737: # 2363 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find(const _CharT* __s, size_type __pos = 0) const noexcept 8737: { 8737: ; 8737: return this->find(__s, __pos, traits_type::length(__s)); 8737: } 8737: # 2380 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find(_CharT __c, size_type __pos = 0) const noexcept; 8737: # 2393 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: rfind(const basic_string& __str, size_type __pos = npos) const 8737: noexcept 8737: { return this->rfind(__str.data(), __pos, __str.size()); } 8737: # 2427 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept; 8737: # 2441 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: rfind(const _CharT* __s, size_type __pos = npos) const 8737: { 8737: ; 8737: return this->rfind(__s, __pos, traits_type::length(__s)); 8737: } 8737: # 2458 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: rfind(_CharT __c, size_type __pos = npos) const noexcept; 8737: # 2472 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_of(const basic_string& __str, size_type __pos = 0) const 8737: noexcept 8737: { return this->find_first_of(__str.data(), __pos, __str.size()); } 8737: # 2507 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept; 8737: # 2521 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_of(const _CharT* __s, size_type __pos = 0) const 8737: noexcept 8737: { 8737: ; 8737: return this->find_first_of(__s, __pos, traits_type::length(__s)); 8737: } 8737: # 2541 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 8737: { return this->find(__c, __pos); } 8737: # 2556 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_of(const basic_string& __str, size_type __pos = npos) const 8737: noexcept 8737: { return this->find_last_of(__str.data(), __pos, __str.size()); } 8737: # 2591 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept; 8737: # 2605 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_of(const _CharT* __s, size_type __pos = npos) const 8737: noexcept 8737: { 8737: ; 8737: return this->find_last_of(__s, __pos, traits_type::length(__s)); 8737: } 8737: # 2625 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 8737: { return this->rfind(__c, __pos); } 8737: # 2639 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 8737: noexcept 8737: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 8737: # 2674 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_not_of(const _CharT* __s, size_type __pos, 8737: size_type __n) const noexcept; 8737: # 2688 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 8737: noexcept 8737: { 8737: ; 8737: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 8737: } 8737: # 2706 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_first_not_of(_CharT __c, size_type __pos = 0) const 8737: noexcept; 8737: # 2721 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 8737: noexcept 8737: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 8737: # 2756 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_not_of(const _CharT* __s, size_type __pos, 8737: size_type __n) const noexcept; 8737: # 2770 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 8737: noexcept 8737: { 8737: ; 8737: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 8737: } 8737: # 2788 "/usr/include/c++/8/bits/basic_string.h" 3 8737: size_type 8737: find_last_not_of(_CharT __c, size_type __pos = npos) const 8737: noexcept; 8737: # 2804 "/usr/include/c++/8/bits/basic_string.h" 3 8737: basic_string 8737: substr(size_type __pos = 0, size_type __n = npos) const 8737: { return basic_string(*this, 8737: _M_check(__pos, "basic_string::substr"), __n); } 8737: # 2823 "/usr/include/c++/8/bits/basic_string.h" 3 8737: int 8737: compare(const basic_string& __str) const 8737: { 8737: const size_type __size = this->size(); 8737: const size_type __osize = __str.size(); 8737: const size_type __len = std::min(__size, __osize); 8737: 8737: int __r = traits_type::compare(_M_data(), __str.data(), __len); 8737: if (!__r) 8737: __r = _S_compare(__size, __osize); 8737: return __r; 8737: } 8737: # 2916 "/usr/include/c++/8/bits/basic_string.h" 3 8737: int 8737: compare(size_type __pos, size_type __n, const basic_string& __str) const; 8737: # 2942 "/usr/include/c++/8/bits/basic_string.h" 3 8737: int 8737: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8737: size_type __pos2, size_type __n2) const; 8737: # 2960 "/usr/include/c++/8/bits/basic_string.h" 3 8737: int 8737: compare(const _CharT* __s) const noexcept; 8737: # 2984 "/usr/include/c++/8/bits/basic_string.h" 3 8737: int 8737: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 8737: # 3011 "/usr/include/c++/8/bits/basic_string.h" 3 8737: int 8737: compare(size_type __pos, size_type __n1, const _CharT* __s, 8737: size_type __n2) const; 8737: 8737: 8737: template friend class basic_stringbuf; 8737: }; 8737: } 8737: # 5886 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: basic_string<_CharT, _Traits, _Alloc> 8737: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { 8737: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8737: __str.append(__rhs); 8737: return __str; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: basic_string<_CharT,_Traits,_Alloc> 8737: operator+(const _CharT* __lhs, 8737: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: basic_string<_CharT,_Traits,_Alloc> 8737: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { 8737: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8737: __str.append(__rhs); 8737: return __str; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 8737: { 8737: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8737: typedef typename __string_type::size_type __size_type; 8737: __string_type __str(__lhs); 8737: __str.append(__size_type(1), __rhs); 8737: return __str; 8737: } 8737: 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return std::move(__lhs.append(__rhs)); } 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8737: { return std::move(__rhs.insert(0, __lhs)); } 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8737: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8737: { 8737: const auto __size = __lhs.size() + __rhs.size(); 8737: const bool __cond = (__size > __lhs.capacity() 8737: && __size <= __rhs.capacity()); 8737: return __cond ? std::move(__rhs.insert(0, __lhs)) 8737: : std::move(__lhs.append(__rhs)); 8737: } 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(const _CharT* __lhs, 8737: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8737: { return std::move(__rhs.insert(0, __lhs)); } 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(_CharT __lhs, 8737: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8737: { return std::move(__rhs.insert(0, 1, __lhs)); } 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8737: const _CharT* __rhs) 8737: { return std::move(__lhs.append(__rhs)); } 8737: 8737: template 8737: inline basic_string<_CharT, _Traits, _Alloc> 8737: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8737: _CharT __rhs) 8737: { return std::move(__lhs.append(1, __rhs)); } 8737: # 6007 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline bool 8737: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept 8737: { return __lhs.compare(__rhs) == 0; } 8737: 8737: template 8737: inline 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 8737: operator==(const basic_string<_CharT>& __lhs, 8737: const basic_string<_CharT>& __rhs) noexcept 8737: { return (__lhs.size() == __rhs.size() 8737: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 8737: __lhs.size())); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return __rhs.compare(__lhs) == 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { return __lhs.compare(__rhs) == 0; } 8737: # 6054 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline bool 8737: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept 8737: { return !(__lhs == __rhs); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return !(__lhs == __rhs); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { return !(__lhs == __rhs); } 8737: # 6092 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline bool 8737: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept 8737: { return __lhs.compare(__rhs) < 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { return __lhs.compare(__rhs) < 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator<(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return __rhs.compare(__lhs) > 0; } 8737: # 6130 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline bool 8737: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept 8737: { return __lhs.compare(__rhs) > 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { return __lhs.compare(__rhs) > 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return __rhs.compare(__lhs) < 0; } 8737: # 6168 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline bool 8737: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept 8737: { return __lhs.compare(__rhs) <= 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { return __lhs.compare(__rhs) <= 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return __rhs.compare(__lhs) >= 0; } 8737: # 6206 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline bool 8737: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept 8737: { return __lhs.compare(__rhs) >= 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: const _CharT* __rhs) 8737: { return __lhs.compare(__rhs) >= 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { return __rhs.compare(__lhs) <= 0; } 8737: # 6244 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline void 8737: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 8737: basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: noexcept(noexcept(__lhs.swap(__rhs))) 8737: { __lhs.swap(__rhs); } 8737: # 6264 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: operator>>(basic_istream<_CharT, _Traits>& __is, 8737: basic_string<_CharT, _Traits, _Alloc>& __str); 8737: 8737: template<> 8737: basic_istream& 8737: operator>>(basic_istream& __is, basic_string& __str); 8737: # 6282 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: operator<<(basic_ostream<_CharT, _Traits>& __os, 8737: const basic_string<_CharT, _Traits, _Alloc>& __str) 8737: { 8737: 8737: 8737: return __ostream_insert(__os, __str.data(), __str.size()); 8737: } 8737: # 6305 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: getline(basic_istream<_CharT, _Traits>& __is, 8737: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 8737: # 6322 "/usr/include/c++/8/bits/basic_string.h" 3 8737: template 8737: inline basic_istream<_CharT, _Traits>& 8737: getline(basic_istream<_CharT, _Traits>& __is, 8737: basic_string<_CharT, _Traits, _Alloc>& __str) 8737: { return std::getline(__is, __str, __is.widen('\n')); } 8737: 8737: 8737: 8737: template 8737: inline basic_istream<_CharT, _Traits>& 8737: getline(basic_istream<_CharT, _Traits>&& __is, 8737: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8737: { return std::getline(__is, __str, __delim); } 8737: 8737: 8737: template 8737: inline basic_istream<_CharT, _Traits>& 8737: getline(basic_istream<_CharT, _Traits>&& __is, 8737: basic_string<_CharT, _Traits, _Alloc>& __str) 8737: { return std::getline(__is, __str); } 8737: 8737: 8737: template<> 8737: basic_istream& 8737: getline(basic_istream& __in, basic_string& __str, 8737: char __delim); 8737: 8737: 8737: template<> 8737: basic_istream& 8737: getline(basic_istream& __in, basic_string& __str, 8737: wchar_t __delim); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/ext/string_conversions.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/string_conversions.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/string_conversions.h" 3 8737: # 41 "/usr/include/c++/8/ext/string_conversions.h" 3 8737: # 1 "/usr/include/c++/8/cstdlib" 1 3 8737: # 39 "/usr/include/c++/8/cstdlib" 3 8737: 8737: # 40 "/usr/include/c++/8/cstdlib" 3 8737: # 42 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8737: # 1 "/usr/include/c++/8/cwchar" 1 3 8737: # 39 "/usr/include/c++/8/cwchar" 3 8737: 8737: # 40 "/usr/include/c++/8/cwchar" 3 8737: # 43 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8737: # 1 "/usr/include/c++/8/cstdio" 1 3 8737: # 39 "/usr/include/c++/8/cstdio" 3 8737: 8737: # 40 "/usr/include/c++/8/cstdio" 3 8737: 8737: 8737: # 1 "/usr/include/stdio.h" 1 3 4 8737: # 27 "/usr/include/stdio.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8737: # 28 "/usr/include/stdio.h" 2 3 4 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 34 "/usr/include/stdio.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/libio.h" 1 3 4 8737: # 31 "/usr/include/libio.h" 3 4 8737: # 1 "/usr/include/_G_config.h" 1 3 4 8737: # 15 "/usr/include/_G_config.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8737: # 16 "/usr/include/_G_config.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef struct 8737: { 8737: __off_t __pos; 8737: __mbstate_t __state; 8737: } _G_fpos_t; 8737: typedef struct 8737: { 8737: __off64_t __pos; 8737: __mbstate_t __state; 8737: } _G_fpos64_t; 8737: # 32 "/usr/include/libio.h" 2 3 4 8737: # 145 "/usr/include/libio.h" 3 4 8737: struct _IO_jump_t; struct _IO_FILE; 8737: 8737: 8737: 8737: 8737: typedef void _IO_lock_t; 8737: 8737: 8737: 8737: 8737: 8737: struct _IO_marker { 8737: struct _IO_marker *_next; 8737: struct _IO_FILE *_sbuf; 8737: 8737: 8737: 8737: int _pos; 8737: # 173 "/usr/include/libio.h" 3 4 8737: }; 8737: 8737: 8737: enum __codecvt_result 8737: { 8737: __codecvt_ok, 8737: __codecvt_partial, 8737: __codecvt_error, 8737: __codecvt_noconv 8737: }; 8737: # 241 "/usr/include/libio.h" 3 4 8737: struct _IO_FILE { 8737: int _flags; 8737: 8737: 8737: 8737: 8737: char* _IO_read_ptr; 8737: char* _IO_read_end; 8737: char* _IO_read_base; 8737: char* _IO_write_base; 8737: char* _IO_write_ptr; 8737: char* _IO_write_end; 8737: char* _IO_buf_base; 8737: char* _IO_buf_end; 8737: 8737: char *_IO_save_base; 8737: char *_IO_backup_base; 8737: char *_IO_save_end; 8737: 8737: struct _IO_marker *_markers; 8737: 8737: struct _IO_FILE *_chain; 8737: 8737: int _fileno; 8737: 8737: 8737: 8737: int _flags2; 8737: 8737: __off_t _old_offset; 8737: 8737: 8737: 8737: unsigned short _cur_column; 8737: signed char _vtable_offset; 8737: char _shortbuf[1]; 8737: 8737: 8737: 8737: _IO_lock_t *_lock; 8737: # 289 "/usr/include/libio.h" 3 4 8737: __off64_t _offset; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void *__pad1; 8737: void *__pad2; 8737: void *__pad3; 8737: void *__pad4; 8737: 8737: size_t __pad5; 8737: int _mode; 8737: 8737: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: struct _IO_FILE_plus; 8737: 8737: extern struct _IO_FILE_plus _IO_2_1_stdin_; 8737: extern struct _IO_FILE_plus _IO_2_1_stdout_; 8737: extern struct _IO_FILE_plus _IO_2_1_stderr_; 8737: # 333 "/usr/include/libio.h" 3 4 8737: typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, 8737: size_t __n); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); 8737: 8737: 8737: typedef int __io_close_fn (void *__cookie); 8737: 8737: 8737: 8737: 8737: typedef __io_read_fn cookie_read_function_t; 8737: typedef __io_write_fn cookie_write_function_t; 8737: typedef __io_seek_fn cookie_seek_function_t; 8737: typedef __io_close_fn cookie_close_function_t; 8737: 8737: 8737: typedef struct 8737: { 8737: __io_read_fn *read; 8737: __io_write_fn *write; 8737: __io_seek_fn *seek; 8737: __io_close_fn *close; 8737: } _IO_cookie_io_functions_t; 8737: typedef _IO_cookie_io_functions_t cookie_io_functions_t; 8737: 8737: struct _IO_cookie_file; 8737: 8737: 8737: extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, 8737: void *__cookie, _IO_cookie_io_functions_t __fns); 8737: 8737: 8737: 8737: 8737: extern "C" { 8737: 8737: 8737: extern int __underflow (_IO_FILE *); 8737: extern int __uflow (_IO_FILE *); 8737: extern int __overflow (_IO_FILE *, int); 8737: # 429 "/usr/include/libio.h" 3 4 8737: extern int _IO_getc (_IO_FILE *__fp); 8737: extern int _IO_putc (int __c, _IO_FILE *__fp); 8737: extern int _IO_feof (_IO_FILE *__fp) throw (); 8737: extern int _IO_ferror (_IO_FILE *__fp) throw (); 8737: 8737: extern int _IO_peekc_locked (_IO_FILE *__fp); 8737: 8737: 8737: 8737: 8737: 8737: extern void _IO_flockfile (_IO_FILE *) throw (); 8737: extern void _IO_funlockfile (_IO_FILE *) throw (); 8737: extern int _IO_ftrylockfile (_IO_FILE *) throw (); 8737: # 458 "/usr/include/libio.h" 3 4 8737: extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, 8737: __gnuc_va_list, int *__restrict); 8737: extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, 8737: __gnuc_va_list); 8737: extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); 8737: extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); 8737: 8737: extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); 8737: extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); 8737: 8737: extern void _IO_free_backup_area (_IO_FILE *) throw (); 8737: # 520 "/usr/include/libio.h" 3 4 8737: } 8737: # 42 "/usr/include/stdio.h" 2 3 4 8737: # 78 "/usr/include/stdio.h" 3 4 8737: typedef _G_fpos_t fpos_t; 8737: 8737: 8737: 8737: 8737: typedef _G_fpos64_t fpos64_t; 8737: # 131 "/usr/include/stdio.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 8737: # 132 "/usr/include/stdio.h" 2 3 4 8737: 8737: 8737: 8737: extern struct _IO_FILE *stdin; 8737: extern struct _IO_FILE *stdout; 8737: extern struct _IO_FILE *stderr; 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int remove (const char *__filename) throw (); 8737: 8737: extern int rename (const char *__old, const char *__new) throw (); 8737: 8737: 8737: 8737: extern int renameat (int __oldfd, const char *__old, int __newfd, 8737: const char *__new) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 8737: # 169 "/usr/include/stdio.h" 3 4 8737: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8737: # 190 "/usr/include/stdio.h" 3 4 8737: extern char *tempnam (const char *__dir, const char *__pfx) 8737: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fclose (FILE *__stream); 8737: 8737: 8737: 8737: 8737: extern int fflush (FILE *__stream); 8737: # 213 "/usr/include/stdio.h" 3 4 8737: extern int fflush_unlocked (FILE *__stream); 8737: # 223 "/usr/include/stdio.h" 3 4 8737: extern int fcloseall (void); 8737: # 232 "/usr/include/stdio.h" 3 4 8737: extern FILE *fopen (const char *__restrict __filename, 8737: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern FILE *freopen (const char *__restrict __filename, 8737: const char *__restrict __modes, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: # 256 "/usr/include/stdio.h" 3 4 8737: extern FILE *fopen64 (const char *__restrict __filename, 8737: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8737: extern FILE *freopen64 (const char *__restrict __filename, 8737: const char *__restrict __modes, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern FILE *fopencookie (void *__restrict __magic_cookie, 8737: const char *__restrict __modes, 8737: _IO_cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 8737: throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 8737: 8737: 8737: 8737: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 8737: int __modes, size_t __n) throw (); 8737: 8737: 8737: 8737: 8737: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 8737: size_t __size) throw (); 8737: 8737: 8737: extern void setlinebuf (FILE *__stream) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fprintf (FILE *__restrict __stream, 8737: const char *__restrict __format, ...); 8737: 8737: 8737: 8737: 8737: extern int printf (const char *__restrict __format, ...); 8737: 8737: extern int sprintf (char *__restrict __s, 8737: const char *__restrict __format, ...) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 8737: __gnuc_va_list __arg); 8737: 8737: 8737: 8737: 8737: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 8737: 8737: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 8737: __gnuc_va_list __arg) throw (); 8737: 8737: 8737: 8737: extern int snprintf (char *__restrict __s, size_t __maxlen, 8737: const char *__restrict __format, ...) 8737: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8737: 8737: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 8737: const char *__restrict __format, __gnuc_va_list __arg) 8737: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8737: 8737: 8737: 8737: 8737: 8737: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 8737: __gnuc_va_list __arg) 8737: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8737: extern int __asprintf (char **__restrict __ptr, 8737: const char *__restrict __fmt, ...) 8737: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8737: extern int asprintf (char **__restrict __ptr, 8737: const char *__restrict __fmt, ...) 8737: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern int vdprintf (int __fd, const char *__restrict __fmt, 8737: __gnuc_va_list __arg) 8737: __attribute__ ((__format__ (__printf__, 2, 0))); 8737: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 8737: __attribute__ ((__format__ (__printf__, 2, 3))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fscanf (FILE *__restrict __stream, 8737: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8737: 8737: extern int sscanf (const char *__restrict __s, 8737: const char *__restrict __format, ...) throw (); 8737: # 420 "/usr/include/stdio.h" 3 4 8737: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 8737: __gnuc_va_list __arg) 8737: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 8737: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: extern int vsscanf (const char *__restrict __s, 8737: const char *__restrict __format, __gnuc_va_list __arg) 8737: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 8737: # 477 "/usr/include/stdio.h" 3 4 8737: extern int fgetc (FILE *__stream); 8737: extern int getc (FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: extern int getchar (void); 8737: # 495 "/usr/include/stdio.h" 3 4 8737: extern int getc_unlocked (FILE *__stream); 8737: extern int getchar_unlocked (void); 8737: # 506 "/usr/include/stdio.h" 3 4 8737: extern int fgetc_unlocked (FILE *__stream); 8737: # 517 "/usr/include/stdio.h" 3 4 8737: extern int fputc (int __c, FILE *__stream); 8737: extern int putc (int __c, FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: extern int putchar (int __c); 8737: # 537 "/usr/include/stdio.h" 3 4 8737: extern int fputc_unlocked (int __c, FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int putc_unlocked (int __c, FILE *__stream); 8737: extern int putchar_unlocked (int __c); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int getw (FILE *__stream); 8737: 8737: 8737: extern int putw (int __w, FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8737: __attribute__ ((__warn_unused_result__)); 8737: # 577 "/usr/include/stdio.h" 3 4 8737: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 8737: # 587 "/usr/include/stdio.h" 3 4 8737: extern char *fgets_unlocked (char *__restrict __s, int __n, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: # 603 "/usr/include/stdio.h" 3 4 8737: extern __ssize_t __getdelim (char **__restrict __lineptr, 8737: size_t *__restrict __n, int __delimiter, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern __ssize_t getdelim (char **__restrict __lineptr, 8737: size_t *__restrict __n, int __delimiter, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern __ssize_t getline (char **__restrict __lineptr, 8737: size_t *__restrict __n, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 8737: 8737: 8737: 8737: 8737: 8737: extern int puts (const char *__s); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int ungetc (int __c, FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern size_t fread (void *__restrict __ptr, size_t __size, 8737: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 8737: size_t __n, FILE *__restrict __s); 8737: # 662 "/usr/include/stdio.h" 3 4 8737: extern int fputs_unlocked (const char *__restrict __s, 8737: FILE *__restrict __stream); 8737: # 673 "/usr/include/stdio.h" 3 4 8737: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 8737: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 8737: size_t __n, FILE *__restrict __stream); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int fseek (FILE *__stream, long int __off, int __whence); 8737: 8737: 8737: 8737: 8737: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern void rewind (FILE *__stream); 8737: # 707 "/usr/include/stdio.h" 3 4 8737: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 8737: 8737: 8737: 8737: 8737: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8737: # 731 "/usr/include/stdio.h" 3 4 8737: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 8737: 8737: 8737: 8737: 8737: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 8737: # 750 "/usr/include/stdio.h" 3 4 8737: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 8737: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8737: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 8737: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 8737: 8737: 8737: 8737: extern void clearerr (FILE *__stream) throw (); 8737: 8737: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: extern void clearerr_unlocked (FILE *__stream) throw (); 8737: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern void perror (const char *__s); 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 8737: # 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 8737: extern int sys_nerr; 8737: extern const char *const sys_errlist[]; 8737: 8737: 8737: extern int _sys_nerr; 8737: extern const char *const _sys_errlist[]; 8737: # 782 "/usr/include/stdio.h" 2 3 4 8737: 8737: 8737: 8737: 8737: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: # 800 "/usr/include/stdio.h" 3 4 8737: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: 8737: 8737: 8737: extern int pclose (FILE *__stream); 8737: 8737: 8737: 8737: 8737: 8737: extern char *ctermid (char *__s) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern char *cuserid (char *__s); 8737: 8737: 8737: 8737: 8737: struct obstack; 8737: 8737: 8737: extern int obstack_printf (struct obstack *__restrict __obstack, 8737: const char *__restrict __format, ...) 8737: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 8737: extern int obstack_vprintf (struct obstack *__restrict __obstack, 8737: const char *__restrict __format, 8737: __gnuc_va_list __args) 8737: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern void flockfile (FILE *__stream) throw (); 8737: 8737: 8737: 8737: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8737: 8737: 8737: extern void funlockfile (FILE *__stream) throw (); 8737: # 859 "/usr/include/stdio.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 3 4 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: getchar (void) 8737: { 8737: return _IO_getc (stdin); 8737: } 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: fgetc_unlocked (FILE *__fp) 8737: { 8737: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: getc_unlocked (FILE *__fp) 8737: { 8737: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: getchar_unlocked (void) 8737: { 8737: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 8737: } 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: putchar (int __c) 8737: { 8737: return _IO_putc (__c, stdout); 8737: } 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: fputc_unlocked (int __c, FILE *__stream) 8737: { 8737: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: putc_unlocked (int __c, FILE *__stream) 8737: { 8737: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: putchar_unlocked (int __c) 8737: { 8737: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 8737: getline (char **__lineptr, size_t *__n, FILE *__stream) 8737: { 8737: return __getdelim (__lineptr, __n, '\n', __stream); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 8737: { 8737: return (((__stream)->_flags & 0x10) != 0); 8737: } 8737: 8737: 8737: extern __inline __attribute__ ((__gnu_inline__)) int 8737: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 8737: { 8737: return (((__stream)->_flags & 0x20) != 0); 8737: } 8737: # 860 "/usr/include/stdio.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 1 3 4 8737: # 23 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 8737: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8737: const char *__restrict __format, ...) throw (); 8737: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8737: const char *__restrict __format, 8737: __gnuc_va_list __ap) throw (); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 8737: { 8737: return __builtin___sprintf_chk (__s, 2 - 1, 8737: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8737: 8737: { 8737: return __builtin___vsprintf_chk (__s, 2 - 1, 8737: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8737: } 8737: 8737: 8737: 8737: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 8737: size_t __slen, const char *__restrict __format, 8737: ...) throw (); 8737: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 8737: size_t __slen, const char *__restrict __format, 8737: __gnuc_va_list __ap) throw (); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 8737: 8737: { 8737: return __builtin___snprintf_chk (__s, __n, 2 - 1, 8737: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8737: 8737: { 8737: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 8737: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 8737: const char *__restrict __format, ...); 8737: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 8737: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 8737: const char *__restrict __format, __gnuc_va_list __ap); 8737: extern int __vprintf_chk (int __flag, const char *__restrict __format, 8737: __gnuc_va_list __ap); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 8737: { 8737: return __fprintf_chk (__stream, 2 - 1, __fmt, 8737: __builtin_va_arg_pack ()); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: printf (const char *__restrict __fmt, ...) 8737: { 8737: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 8737: { 8737: 8737: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 8737: 8737: 8737: 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: vfprintf (FILE *__restrict __stream, 8737: const char *__restrict __fmt, __gnuc_va_list __ap) 8737: { 8737: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 8737: } 8737: 8737: 8737: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 8737: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 8737: extern int __vdprintf_chk (int __fd, int __flag, 8737: const char *__restrict __fmt, __gnuc_va_list __arg) 8737: __attribute__ ((__format__ (__printf__, 3, 0))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: dprintf (int __fd, const char *__restrict __fmt, ...) 8737: { 8737: return __dprintf_chk (__fd, 2 - 1, __fmt, 8737: __builtin_va_arg_pack ()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 8737: { 8737: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 8737: } 8737: 8737: 8737: 8737: 8737: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 8737: const char *__restrict __fmt, ...) 8737: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 8737: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 8737: const char *__restrict __fmt, __gnuc_va_list __arg) 8737: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 8737: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 8737: int __flag, const char *__restrict __format, 8737: ...) 8737: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8737: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 8737: int __flag, 8737: const char *__restrict __format, 8737: __gnuc_va_list __args) 8737: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8737: 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8737: { 8737: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8737: __builtin_va_arg_pack ()); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8737: 8737: { 8737: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8737: __builtin_va_arg_pack ()); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 8737: 8737: { 8737: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 8737: __builtin_va_arg_pack ()); 8737: } 8737: # 206 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8737: 8737: { 8737: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 8737: } 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8737: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8737: 8737: { 8737: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 8737: __ap); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 8737: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8737: gets (char *__str) 8737: { 8737: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 8737: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 8737: return __gets_warn (__str); 8737: } 8737: 8737: 8737: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8737: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8737: { 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n) || __n <= 0) 8737: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8737: 8737: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8737: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8737: } 8737: return __fgets_alias (__s, __n, __stream); 8737: } 8737: 8737: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 8737: size_t __size, size_t __n, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 8737: 8737: 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8737: fread (void *__restrict __ptr, size_t __size, size_t __n, 8737: FILE *__restrict __stream) 8737: { 8737: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__size) 8737: || !__builtin_constant_p (__n) 8737: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8737: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8737: 8737: if (__size * __n > __builtin_object_size (__ptr, 0)) 8737: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8737: } 8737: return __fread_alias (__ptr, __size, __n, __stream); 8737: } 8737: 8737: 8737: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 8737: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8737: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 8737: { 8737: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__n) || __n <= 0) 8737: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8737: 8737: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8737: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8737: } 8737: return __fgets_unlocked_alias (__s, __n, __stream); 8737: } 8737: 8737: 8737: 8737: 8737: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 8737: size_t __size, size_t __n, 8737: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8737: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)); 8737: 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") 8737: 8737: 8737: 8737: 8737: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 8737: ; 8737: 8737: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8737: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 8737: FILE *__restrict __stream) 8737: { 8737: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8737: { 8737: if (!__builtin_constant_p (__size) 8737: || !__builtin_constant_p (__n) 8737: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8737: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8737: __stream); 8737: 8737: if (__size * __n > __builtin_object_size (__ptr, 0)) 8737: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8737: __stream); 8737: } 8737: 8737: 8737: if (__builtin_constant_p (__size) 8737: && __builtin_constant_p (__n) 8737: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 8737: && __size * __n <= 8) 8737: { 8737: size_t __cnt = __size * __n; 8737: char *__cptr = (char *) __ptr; 8737: if (__cnt == 0) 8737: return 0; 8737: 8737: for (; __cnt > 0; --__cnt) 8737: { 8737: int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 8737: if (__c == (-1)) 8737: break; 8737: *__cptr++ = __c; 8737: } 8737: return (__cptr - (char *) __ptr) / __size; 8737: } 8737: 8737: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 8737: } 8737: # 863 "/usr/include/stdio.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 43 "/usr/include/c++/8/cstdio" 2 3 8737: # 96 "/usr/include/c++/8/cstdio" 3 8737: namespace std 8737: { 8737: using ::FILE; 8737: using ::fpos_t; 8737: 8737: using ::clearerr; 8737: using ::fclose; 8737: using ::feof; 8737: using ::ferror; 8737: using ::fflush; 8737: using ::fgetc; 8737: using ::fgetpos; 8737: using ::fgets; 8737: using ::fopen; 8737: using ::fprintf; 8737: using ::fputc; 8737: using ::fputs; 8737: using ::fread; 8737: using ::freopen; 8737: using ::fscanf; 8737: using ::fseek; 8737: using ::fsetpos; 8737: using ::ftell; 8737: using ::fwrite; 8737: using ::getc; 8737: using ::getchar; 8737: 8737: 8737: using ::gets; 8737: 8737: using ::perror; 8737: using ::printf; 8737: using ::putc; 8737: using ::putchar; 8737: using ::puts; 8737: using ::remove; 8737: using ::rename; 8737: using ::rewind; 8737: using ::scanf; 8737: using ::setbuf; 8737: using ::setvbuf; 8737: using ::sprintf; 8737: using ::sscanf; 8737: using ::tmpfile; 8737: 8737: using ::tmpnam; 8737: 8737: using ::ungetc; 8737: using ::vfprintf; 8737: using ::vprintf; 8737: using ::vsprintf; 8737: } 8737: # 157 "/usr/include/c++/8/cstdio" 3 8737: namespace __gnu_cxx 8737: { 8737: # 175 "/usr/include/c++/8/cstdio" 3 8737: using ::snprintf; 8737: using ::vfscanf; 8737: using ::vscanf; 8737: using ::vsnprintf; 8737: using ::vsscanf; 8737: 8737: } 8737: 8737: namespace std 8737: { 8737: using ::__gnu_cxx::snprintf; 8737: using ::__gnu_cxx::vfscanf; 8737: using ::__gnu_cxx::vscanf; 8737: using ::__gnu_cxx::vsnprintf; 8737: using ::__gnu_cxx::vsscanf; 8737: } 8737: # 44 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8737: # 1 "/usr/include/c++/8/cerrno" 1 3 8737: # 39 "/usr/include/c++/8/cerrno" 3 8737: 8737: # 40 "/usr/include/c++/8/cerrno" 3 8737: 8737: 8737: # 1 "/usr/include/errno.h" 1 3 4 8737: # 28 "/usr/include/errno.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/errno.h" 1 3 4 8737: # 26 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4 8737: # 1 "/usr/include/linux/errno.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 1 3 4 8737: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 8737: # 5 "/usr/include/asm-generic/errno.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 2 3 4 8737: # 1 "/usr/include/linux/errno.h" 2 3 4 8737: # 27 "/usr/include/x86_64-linux-gnu/bits/errno.h" 2 3 4 8737: # 29 "/usr/include/errno.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: extern "C" { 8737: 8737: 8737: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern char *program_invocation_name; 8737: extern char *program_invocation_short_name; 8737: 8737: 8737: 8737: 8737: 8737: typedef int error_t; 8737: 8737: 8737: 8737: 8737: } 8737: # 43 "/usr/include/c++/8/cerrno" 2 3 8737: # 45 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: _Ret 8737: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 8737: const char* __name, const _CharT* __str, std::size_t* __idx, 8737: _Base... __base) 8737: { 8737: _Ret __ret; 8737: 8737: _CharT* __endptr; 8737: 8737: struct _Save_errno { 8737: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 8737: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 8737: int _M_errno; 8737: } const __save_errno; 8737: 8737: struct _Range_chk { 8737: static bool 8737: _S_chk(_TRet, std::false_type) { return false; } 8737: 8737: static bool 8737: _S_chk(_TRet __val, std::true_type) 8737: { 8737: return __val < _TRet(__numeric_traits::__min) 8737: || __val > _TRet(__numeric_traits::__max); 8737: } 8737: }; 8737: 8737: const _TRet __tmp = __convf(__str, &__endptr, __base...); 8737: 8737: if (__endptr == __str) 8737: std::__throw_invalid_argument(__name); 8737: else if ((*__errno_location ()) == 34 8737: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 8737: std::__throw_out_of_range(__name); 8737: else 8737: __ret = __tmp; 8737: 8737: if (__idx) 8737: *__idx = __endptr - __str; 8737: 8737: return __ret; 8737: } 8737: 8737: 8737: template 8737: _String 8737: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 8737: __builtin_va_list), std::size_t __n, 8737: const _CharT* __fmt, ...) 8737: { 8737: 8737: 8737: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __n)); 8737: 8737: __builtin_va_list __args; 8737: __builtin_va_start(__args, __fmt); 8737: 8737: const int __len = __convf(__s, __n, __fmt, __args); 8737: 8737: __builtin_va_end(__args); 8737: 8737: return _String(__s, __s + __len); 8737: } 8737: 8737: 8737: } 8737: # 6362 "/usr/include/c++/8/bits/basic_string.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: namespace __cxx11 { 8737: 8737: 8737: 8737: inline int 8737: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline long 8737: stol(const string& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline unsigned long 8737: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline long long 8737: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline unsigned long long 8737: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 8737: __idx, __base); } 8737: 8737: 8737: inline float 8737: stof(const string& __str, size_t* __idx = 0) 8737: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 8737: 8737: inline double 8737: stod(const string& __str, size_t* __idx = 0) 8737: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 8737: 8737: inline long double 8737: stold(const string& __str, size_t* __idx = 0) 8737: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline string 8737: to_string(int __val) 8737: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 8737: "%d", __val); } 8737: 8737: inline string 8737: to_string(unsigned __val) 8737: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8737: 4 * sizeof(unsigned), 8737: "%u", __val); } 8737: 8737: inline string 8737: to_string(long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 8737: "%ld", __val); } 8737: 8737: inline string 8737: to_string(unsigned long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8737: 4 * sizeof(unsigned long), 8737: "%lu", __val); } 8737: 8737: inline string 8737: to_string(long long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8737: 4 * sizeof(long long), 8737: "%lld", __val); } 8737: 8737: inline string 8737: to_string(unsigned long long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8737: 4 * sizeof(unsigned long long), 8737: "%llu", __val); } 8737: 8737: inline string 8737: to_string(float __val) 8737: { 8737: const int __n = 8737: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8737: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8737: "%f", __val); 8737: } 8737: 8737: inline string 8737: to_string(double __val) 8737: { 8737: const int __n = 8737: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8737: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8737: "%f", __val); 8737: } 8737: 8737: inline string 8737: to_string(long double __val) 8737: { 8737: const int __n = 8737: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8737: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8737: "%Lf", __val); 8737: } 8737: 8737: 8737: 8737: inline int 8737: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline long 8737: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline unsigned long 8737: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline long long 8737: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 8737: __idx, __base); } 8737: 8737: inline unsigned long long 8737: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 8737: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 8737: __idx, __base); } 8737: 8737: 8737: inline float 8737: stof(const wstring& __str, size_t* __idx = 0) 8737: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 8737: 8737: inline double 8737: stod(const wstring& __str, size_t* __idx = 0) 8737: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 8737: 8737: inline long double 8737: stold(const wstring& __str, size_t* __idx = 0) 8737: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 8737: 8737: 8737: 8737: inline wstring 8737: to_wstring(int __val) 8737: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 8737: L"%d", __val); } 8737: 8737: inline wstring 8737: to_wstring(unsigned __val) 8737: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8737: 4 * sizeof(unsigned), 8737: L"%u", __val); } 8737: 8737: inline wstring 8737: to_wstring(long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 8737: L"%ld", __val); } 8737: 8737: inline wstring 8737: to_wstring(unsigned long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8737: 4 * sizeof(unsigned long), 8737: L"%lu", __val); } 8737: 8737: inline wstring 8737: to_wstring(long long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8737: 4 * sizeof(long long), 8737: L"%lld", __val); } 8737: 8737: inline wstring 8737: to_wstring(unsigned long long __val) 8737: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8737: 4 * sizeof(unsigned long long), 8737: L"%llu", __val); } 8737: 8737: inline wstring 8737: to_wstring(float __val) 8737: { 8737: const int __n = 8737: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8737: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8737: L"%f", __val); 8737: } 8737: 8737: inline wstring 8737: to_wstring(double __val) 8737: { 8737: const int __n = 8737: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8737: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8737: L"%f", __val); 8737: } 8737: 8737: inline wstring 8737: to_wstring(long double __val) 8737: { 8737: const int __n = 8737: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8737: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8737: L"%Lf", __val); 8737: } 8737: 8737: 8737: 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/functional_hash.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/functional_hash.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/functional_hash.h" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 49 "/usr/include/c++/8/bits/functional_hash.h" 3 8737: template 8737: struct __hash_base 8737: { 8737: typedef _Result result_type ; 8737: typedef _Arg argument_type ; 8737: }; 8737: 8737: 8737: template 8737: struct hash; 8737: 8737: template 8737: struct __poison_hash 8737: { 8737: static constexpr bool __enable_hash_call = false; 8737: private: 8737: 8737: __poison_hash(__poison_hash&&); 8737: ~__poison_hash(); 8737: }; 8737: 8737: template 8737: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 8737: { 8737: static constexpr bool __enable_hash_call = true; 8737: }; 8737: 8737: 8737: template::value> 8737: struct __hash_enum 8737: { 8737: private: 8737: 8737: __hash_enum(__hash_enum&&); 8737: ~__hash_enum(); 8737: }; 8737: 8737: 8737: template 8737: struct __hash_enum<_Tp, true> : public __hash_base 8737: { 8737: size_t 8737: operator()(_Tp __val) const noexcept 8737: { 8737: using __type = typename underlying_type<_Tp>::type; 8737: return hash<__type>{}(static_cast<__type>(__val)); 8737: } 8737: }; 8737: 8737: 8737: 8737: template 8737: struct hash : __hash_enum<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct hash<_Tp*> : public __hash_base 8737: { 8737: size_t 8737: operator()(_Tp* __p) const noexcept 8737: { return reinterpret_cast(__p); } 8737: }; 8737: # 124 "/usr/include/c++/8/bits/functional_hash.h" 3 8737: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 8737: 8737: 8737: template<> struct hash<__int128> : public __hash_base { size_t operator()(__int128 __val) const noexcept { return static_cast(__val); } }; 8737: template<> struct hash<__int128 unsigned> : public __hash_base { size_t operator()(__int128 unsigned __val) const noexcept { return static_cast(__val); } }; 8737: # 187 "/usr/include/c++/8/bits/functional_hash.h" 3 8737: struct _Hash_impl 8737: { 8737: static size_t 8737: hash(const void* __ptr, size_t __clength, 8737: size_t __seed = static_cast(0xc70f6907UL)) 8737: { return _Hash_bytes(__ptr, __clength, __seed); } 8737: 8737: template 8737: static size_t 8737: hash(const _Tp& __val) 8737: { return hash(&__val, sizeof(__val)); } 8737: 8737: template 8737: static size_t 8737: __hash_combine(const _Tp& __val, size_t __hash) 8737: { return hash(&__val, sizeof(__val), __hash); } 8737: }; 8737: 8737: 8737: struct _Fnv_hash_impl 8737: { 8737: static size_t 8737: hash(const void* __ptr, size_t __clength, 8737: size_t __seed = static_cast(2166136261UL)) 8737: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 8737: 8737: template 8737: static size_t 8737: hash(const _Tp& __val) 8737: { return hash(&__val, sizeof(__val)); } 8737: 8737: template 8737: static size_t 8737: __hash_combine(const _Tp& __val, size_t __hash) 8737: { return hash(&__val, sizeof(__val), __hash); } 8737: }; 8737: 8737: 8737: template<> 8737: struct hash : public __hash_base 8737: { 8737: size_t 8737: operator()(float __val) const noexcept 8737: { 8737: 8737: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 8737: } 8737: }; 8737: 8737: 8737: template<> 8737: struct hash : public __hash_base 8737: { 8737: size_t 8737: operator()(double __val) const noexcept 8737: { 8737: 8737: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 8737: } 8737: }; 8737: 8737: 8737: template<> 8737: struct hash 8737: : public __hash_base 8737: { 8737: __attribute__ ((__pure__)) size_t 8737: operator()(long double __val) const noexcept; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_fast_hash : public std::true_type 8737: { }; 8737: 8737: template<> 8737: struct __is_fast_hash> : public std::false_type 8737: { }; 8737: 8737: 8737: } 8737: # 6588 "/usr/include/c++/8/bits/basic_string.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: struct hash 8737: : public __hash_base 8737: { 8737: size_t 8737: operator()(const string& __s) const noexcept 8737: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 8737: }; 8737: 8737: template<> 8737: struct __is_fast_hash> : std::false_type 8737: { }; 8737: 8737: 8737: 8737: template<> 8737: struct hash 8737: : public __hash_base 8737: { 8737: size_t 8737: operator()(const wstring& __s) const noexcept 8737: { return std::_Hash_impl::hash(__s.data(), 8737: __s.length() * sizeof(wchar_t)); } 8737: }; 8737: 8737: template<> 8737: struct __is_fast_hash> : std::false_type 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: struct hash 8737: : public __hash_base 8737: { 8737: size_t 8737: operator()(const u16string& __s) const noexcept 8737: { return std::_Hash_impl::hash(__s.data(), 8737: __s.length() * sizeof(char16_t)); } 8737: }; 8737: 8737: template<> 8737: struct __is_fast_hash> : std::false_type 8737: { }; 8737: 8737: 8737: template<> 8737: struct hash 8737: : public __hash_base 8737: { 8737: size_t 8737: operator()(const u32string& __s) const noexcept 8737: { return std::_Hash_impl::hash(__s.data(), 8737: __s.length() * sizeof(char32_t)); } 8737: }; 8737: 8737: template<> 8737: struct __is_fast_hash> : std::false_type 8737: { }; 8737: # 6700 "/usr/include/c++/8/bits/basic_string.h" 3 8737: 8737: } 8737: # 53 "/usr/include/c++/8/string" 2 3 8737: # 1 "/usr/include/c++/8/bits/basic_string.tcc" 1 3 8737: # 42 "/usr/include/c++/8/bits/basic_string.tcc" 3 8737: 8737: # 43 "/usr/include/c++/8/bits/basic_string.tcc" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>::npos; 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: swap(basic_string& __s) noexcept 8737: { 8737: if (this == &__s) 8737: return; 8737: 8737: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 8737: 8737: if (_M_is_local()) 8737: if (__s._M_is_local()) 8737: { 8737: if (length() && __s.length()) 8737: { 8737: _CharT __tmp_data[_S_local_capacity + 1]; 8737: traits_type::copy(__tmp_data, __s._M_local_buf, 8737: _S_local_capacity + 1); 8737: traits_type::copy(__s._M_local_buf, _M_local_buf, 8737: _S_local_capacity + 1); 8737: traits_type::copy(_M_local_buf, __tmp_data, 8737: _S_local_capacity + 1); 8737: } 8737: else if (__s.length()) 8737: { 8737: traits_type::copy(_M_local_buf, __s._M_local_buf, 8737: _S_local_capacity + 1); 8737: _M_length(__s.length()); 8737: __s._M_set_length(0); 8737: return; 8737: } 8737: else if (length()) 8737: { 8737: traits_type::copy(__s._M_local_buf, _M_local_buf, 8737: _S_local_capacity + 1); 8737: __s._M_length(length()); 8737: _M_set_length(0); 8737: return; 8737: } 8737: } 8737: else 8737: { 8737: const size_type __tmp_capacity = __s._M_allocated_capacity; 8737: traits_type::copy(__s._M_local_buf, _M_local_buf, 8737: _S_local_capacity + 1); 8737: _M_data(__s._M_data()); 8737: __s._M_data(__s._M_local_buf); 8737: _M_capacity(__tmp_capacity); 8737: } 8737: else 8737: { 8737: const size_type __tmp_capacity = _M_allocated_capacity; 8737: if (__s._M_is_local()) 8737: { 8737: traits_type::copy(_M_local_buf, __s._M_local_buf, 8737: _S_local_capacity + 1); 8737: __s._M_data(_M_data()); 8737: _M_data(_M_local_buf); 8737: } 8737: else 8737: { 8737: pointer __tmp_ptr = _M_data(); 8737: _M_data(__s._M_data()); 8737: __s._M_data(__tmp_ptr); 8737: _M_capacity(__s._M_allocated_capacity); 8737: } 8737: __s._M_capacity(__tmp_capacity); 8737: } 8737: 8737: const size_type __tmp_length = length(); 8737: _M_length(__s.length()); 8737: __s._M_length(__tmp_length); 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::pointer 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_create(size_type& __capacity, size_type __old_capacity) 8737: { 8737: 8737: 8737: if (__capacity > max_size()) 8737: std::__throw_length_error(("basic_string::_M_create")); 8737: 8737: 8737: 8737: 8737: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 8737: { 8737: __capacity = 2 * __old_capacity; 8737: 8737: if (__capacity > max_size()) 8737: __capacity = max_size(); 8737: } 8737: 8737: 8737: 8737: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_construct(_InIterator __beg, _InIterator __end, 8737: std::input_iterator_tag) 8737: { 8737: size_type __len = 0; 8737: size_type __capacity = size_type(_S_local_capacity); 8737: 8737: while (__beg != __end && __len < __capacity) 8737: { 8737: _M_data()[__len++] = *__beg; 8737: ++__beg; 8737: } 8737: 8737: try 8737: { 8737: while (__beg != __end) 8737: { 8737: if (__len == __capacity) 8737: { 8737: 8737: __capacity = __len + 1; 8737: pointer __another = _M_create(__capacity, __len); 8737: this->_S_copy(__another, _M_data(), __len); 8737: _M_dispose(); 8737: _M_data(__another); 8737: _M_capacity(__capacity); 8737: } 8737: _M_data()[__len++] = *__beg; 8737: ++__beg; 8737: } 8737: } 8737: catch(...) 8737: { 8737: _M_dispose(); 8737: throw; 8737: } 8737: 8737: _M_set_length(__len); 8737: } 8737: 8737: template 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_construct(_InIterator __beg, _InIterator __end, 8737: std::forward_iterator_tag) 8737: { 8737: 8737: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 8737: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 8737: ); 8737: 8737: size_type __dnew = static_cast(std::distance(__beg, __end)); 8737: 8737: if (__dnew > size_type(_S_local_capacity)) 8737: { 8737: _M_data(_M_create(__dnew, size_type(0))); 8737: _M_capacity(__dnew); 8737: } 8737: 8737: 8737: try 8737: { this->_S_copy_chars(_M_data(), __beg, __end); } 8737: catch(...) 8737: { 8737: _M_dispose(); 8737: throw; 8737: } 8737: 8737: _M_set_length(__dnew); 8737: } 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_construct(size_type __n, _CharT __c) 8737: { 8737: if (__n > size_type(_S_local_capacity)) 8737: { 8737: _M_data(_M_create(__n, size_type(0))); 8737: _M_capacity(__n); 8737: } 8737: 8737: if (__n) 8737: this->_S_assign(_M_data(), __n, __c); 8737: 8737: _M_set_length(__n); 8737: } 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_assign(const basic_string& __str) 8737: { 8737: if (this != &__str) 8737: { 8737: const size_type __rsize = __str.length(); 8737: const size_type __capacity = capacity(); 8737: 8737: if (__rsize > __capacity) 8737: { 8737: size_type __new_capacity = __rsize; 8737: pointer __tmp = _M_create(__new_capacity, __capacity); 8737: _M_dispose(); 8737: _M_data(__tmp); 8737: _M_capacity(__new_capacity); 8737: } 8737: 8737: if (__rsize) 8737: this->_S_copy(_M_data(), __str._M_data(), __rsize); 8737: 8737: _M_set_length(__rsize); 8737: } 8737: } 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: reserve(size_type __res) 8737: { 8737: 8737: if (__res < length()) 8737: __res = length(); 8737: 8737: const size_type __capacity = capacity(); 8737: if (__res != __capacity) 8737: { 8737: if (__res > __capacity 8737: || __res > size_type(_S_local_capacity)) 8737: { 8737: pointer __tmp = _M_create(__res, __capacity); 8737: this->_S_copy(__tmp, _M_data(), length() + 1); 8737: _M_dispose(); 8737: _M_data(__tmp); 8737: _M_capacity(__res); 8737: } 8737: else if (!_M_is_local()) 8737: { 8737: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 8737: _M_destroy(__capacity); 8737: _M_data(_M_local_data()); 8737: } 8737: } 8737: } 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8737: size_type __len2) 8737: { 8737: const size_type __how_much = length() - __pos - __len1; 8737: 8737: size_type __new_capacity = length() + __len2 - __len1; 8737: pointer __r = _M_create(__new_capacity, capacity()); 8737: 8737: if (__pos) 8737: this->_S_copy(__r, _M_data(), __pos); 8737: if (__s && __len2) 8737: this->_S_copy(__r + __pos, __s, __len2); 8737: if (__how_much) 8737: this->_S_copy(__r + __pos + __len2, 8737: _M_data() + __pos + __len1, __how_much); 8737: 8737: _M_dispose(); 8737: _M_data(__r); 8737: _M_capacity(__new_capacity); 8737: } 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_erase(size_type __pos, size_type __n) 8737: { 8737: const size_type __how_much = length() - __pos - __n; 8737: 8737: if (__how_much && __n) 8737: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 8737: 8737: _M_set_length(length() - __n); 8737: } 8737: 8737: template 8737: void 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: resize(size_type __n, _CharT __c) 8737: { 8737: const size_type __size = this->size(); 8737: if (__size < __n) 8737: this->append(__n - __size, __c); 8737: else if (__n < __size) 8737: this->_M_set_length(__n); 8737: } 8737: 8737: template 8737: basic_string<_CharT, _Traits, _Alloc>& 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_append(const _CharT* __s, size_type __n) 8737: { 8737: const size_type __len = __n + this->size(); 8737: 8737: if (__len <= this->capacity()) 8737: { 8737: if (__n) 8737: this->_S_copy(this->_M_data() + this->size(), __s, __n); 8737: } 8737: else 8737: this->_M_mutate(this->size(), size_type(0), __s, __n); 8737: 8737: this->_M_set_length(__len); 8737: return *this; 8737: } 8737: 8737: template 8737: template 8737: basic_string<_CharT, _Traits, _Alloc>& 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8737: _InputIterator __k1, _InputIterator __k2, 8737: std::__false_type) 8737: { 8737: const basic_string __s(__k1, __k2); 8737: const size_type __n1 = __i2 - __i1; 8737: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 8737: __s.size()); 8737: } 8737: 8737: template 8737: basic_string<_CharT, _Traits, _Alloc>& 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8737: _CharT __c) 8737: { 8737: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 8737: 8737: const size_type __old_size = this->size(); 8737: const size_type __new_size = __old_size + __n2 - __n1; 8737: 8737: if (__new_size <= this->capacity()) 8737: { 8737: pointer __p = this->_M_data() + __pos1; 8737: 8737: const size_type __how_much = __old_size - __pos1 - __n1; 8737: if (__how_much && __n1 != __n2) 8737: this->_S_move(__p + __n2, __p + __n1, __how_much); 8737: } 8737: else 8737: this->_M_mutate(__pos1, __n1, 0, __n2); 8737: 8737: if (__n2) 8737: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 8737: 8737: this->_M_set_length(__new_size); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_string<_CharT, _Traits, _Alloc>& 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8737: const size_type __len2) 8737: { 8737: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 8737: 8737: const size_type __old_size = this->size(); 8737: const size_type __new_size = __old_size + __len2 - __len1; 8737: 8737: if (__new_size <= this->capacity()) 8737: { 8737: pointer __p = this->_M_data() + __pos; 8737: 8737: const size_type __how_much = __old_size - __pos - __len1; 8737: if (_M_disjunct(__s)) 8737: { 8737: if (__how_much && __len1 != __len2) 8737: this->_S_move(__p + __len2, __p + __len1, __how_much); 8737: if (__len2) 8737: this->_S_copy(__p, __s, __len2); 8737: } 8737: else 8737: { 8737: 8737: if (__len2 && __len2 <= __len1) 8737: this->_S_move(__p, __s, __len2); 8737: if (__how_much && __len1 != __len2) 8737: this->_S_move(__p + __len2, __p + __len1, __how_much); 8737: if (__len2 > __len1) 8737: { 8737: if (__s + __len2 <= __p + __len1) 8737: this->_S_move(__p, __s, __len2); 8737: else if (__s >= __p + __len1) 8737: this->_S_copy(__p, __s + __len2 - __len1, __len2); 8737: else 8737: { 8737: const size_type __nleft = (__p + __len1) - __s; 8737: this->_S_move(__p, __s, __nleft); 8737: this->_S_copy(__p + __nleft, __p + __len2, 8737: __len2 - __nleft); 8737: } 8737: } 8737: } 8737: } 8737: else 8737: this->_M_mutate(__pos, __len1, __s, __len2); 8737: 8737: this->_M_set_length(__new_size); 8737: return *this; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: copy(_CharT* __s, size_type __n, size_type __pos) const 8737: { 8737: _M_check(__pos, "basic_string::copy"); 8737: __n = _M_limit(__pos, __n); 8737: ; 8737: if (__n) 8737: _S_copy(__s, _M_data() + __pos, __n); 8737: 8737: return __n; 8737: } 8737: # 1155 "/usr/include/c++/8/bits/basic_string.tcc" 3 8737: template 8737: basic_string<_CharT, _Traits, _Alloc> 8737: operator+(const _CharT* __lhs, 8737: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { 8737: ; 8737: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8737: typedef typename __string_type::size_type __size_type; 8737: const __size_type __len = _Traits::length(__lhs); 8737: __string_type __str; 8737: __str.reserve(__len + __rhs.size()); 8737: __str.append(__lhs, __len); 8737: __str.append(__rhs); 8737: return __str; 8737: } 8737: 8737: template 8737: basic_string<_CharT, _Traits, _Alloc> 8737: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8737: { 8737: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8737: typedef typename __string_type::size_type __size_type; 8737: __string_type __str; 8737: const __size_type __len = __rhs.size(); 8737: __str.reserve(__len + 1); 8737: __str.append(__size_type(1), __lhs); 8737: __str.append(__rhs); 8737: return __str; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept 8737: { 8737: ; 8737: const size_type __size = this->size(); 8737: 8737: if (__n == 0) 8737: return __pos <= __size ? __pos : npos; 8737: if (__pos >= __size) 8737: return npos; 8737: 8737: const _CharT __elem0 = __s[0]; 8737: const _CharT* const __data = data(); 8737: const _CharT* __first = __data + __pos; 8737: const _CharT* const __last = __data + __size; 8737: size_type __len = __size - __pos; 8737: 8737: while (__len >= __n) 8737: { 8737: 8737: __first = traits_type::find(__first, __len - __n + 1, __elem0); 8737: if (!__first) 8737: return npos; 8737: 8737: 8737: 8737: if (traits_type::compare(__first, __s, __n) == 0) 8737: return __first - __data; 8737: __len = __last - ++__first; 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find(_CharT __c, size_type __pos) const noexcept 8737: { 8737: size_type __ret = npos; 8737: const size_type __size = this->size(); 8737: if (__pos < __size) 8737: { 8737: const _CharT* __data = _M_data(); 8737: const size_type __n = __size - __pos; 8737: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 8737: if (__p) 8737: __ret = __p - __data; 8737: } 8737: return __ret; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept 8737: { 8737: ; 8737: const size_type __size = this->size(); 8737: if (__n <= __size) 8737: { 8737: __pos = std::min(size_type(__size - __n), __pos); 8737: const _CharT* __data = _M_data(); 8737: do 8737: { 8737: if (traits_type::compare(__data + __pos, __s, __n) == 0) 8737: return __pos; 8737: } 8737: while (__pos-- > 0); 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: rfind(_CharT __c, size_type __pos) const noexcept 8737: { 8737: size_type __size = this->size(); 8737: if (__size) 8737: { 8737: if (--__size > __pos) 8737: __size = __pos; 8737: for (++__size; __size-- > 0; ) 8737: if (traits_type::eq(_M_data()[__size], __c)) 8737: return __size; 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept 8737: { 8737: ; 8737: for (; __n && __pos < this->size(); ++__pos) 8737: { 8737: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 8737: if (__p) 8737: return __pos; 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept 8737: { 8737: ; 8737: size_type __size = this->size(); 8737: if (__size && __n) 8737: { 8737: if (--__size > __pos) 8737: __size = __pos; 8737: do 8737: { 8737: if (traits_type::find(__s, __n, _M_data()[__size])) 8737: return __size; 8737: } 8737: while (__size-- != 0); 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept 8737: { 8737: ; 8737: for (; __pos < this->size(); ++__pos) 8737: if (!traits_type::find(__s, __n, _M_data()[__pos])) 8737: return __pos; 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find_first_not_of(_CharT __c, size_type __pos) const noexcept 8737: { 8737: for (; __pos < this->size(); ++__pos) 8737: if (!traits_type::eq(_M_data()[__pos], __c)) 8737: return __pos; 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8737: noexcept 8737: { 8737: ; 8737: size_type __size = this->size(); 8737: if (__size) 8737: { 8737: if (--__size > __pos) 8737: __size = __pos; 8737: do 8737: { 8737: if (!traits_type::find(__s, __n, _M_data()[__size])) 8737: return __size; 8737: } 8737: while (__size--); 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: find_last_not_of(_CharT __c, size_type __pos) const noexcept 8737: { 8737: size_type __size = this->size(); 8737: if (__size) 8737: { 8737: if (--__size > __pos) 8737: __size = __pos; 8737: do 8737: { 8737: if (!traits_type::eq(_M_data()[__size], __c)) 8737: return __size; 8737: } 8737: while (__size--); 8737: } 8737: return npos; 8737: } 8737: 8737: template 8737: int 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: compare(size_type __pos, size_type __n, const basic_string& __str) const 8737: { 8737: _M_check(__pos, "basic_string::compare"); 8737: __n = _M_limit(__pos, __n); 8737: const size_type __osize = __str.size(); 8737: const size_type __len = std::min(__n, __osize); 8737: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 8737: if (!__r) 8737: __r = _S_compare(__n, __osize); 8737: return __r; 8737: } 8737: 8737: template 8737: int 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8737: size_type __pos2, size_type __n2) const 8737: { 8737: _M_check(__pos1, "basic_string::compare"); 8737: __str._M_check(__pos2, "basic_string::compare"); 8737: __n1 = _M_limit(__pos1, __n1); 8737: __n2 = __str._M_limit(__pos2, __n2); 8737: const size_type __len = std::min(__n1, __n2); 8737: int __r = traits_type::compare(_M_data() + __pos1, 8737: __str.data() + __pos2, __len); 8737: if (!__r) 8737: __r = _S_compare(__n1, __n2); 8737: return __r; 8737: } 8737: 8737: template 8737: int 8737: basic_string<_CharT, _Traits, _Alloc>:: 8737: compare(const _CharT* __s) const noexcept 8737: { 8737: ; 8737: const size_type __size = this->size(); 8737: const size_type __osize = traits_type::length(__s); 8737: const size_type __len = std::min(__size, __osize); 8737: int __r = traits_type::compare(_M_data(), __s, __len); 8737: if (!__r) 8737: __r = _S_compare(__size, __osize); 8737: return __r; 8737: } 8737: 8737: template 8737: int 8737: basic_string <_CharT, _Traits, _Alloc>:: 8737: compare(size_type __pos, size_type __n1, const _CharT* __s) const 8737: { 8737: ; 8737: _M_check(__pos, "basic_string::compare"); 8737: __n1 = _M_limit(__pos, __n1); 8737: const size_type __osize = traits_type::length(__s); 8737: const size_type __len = std::min(__n1, __osize); 8737: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8737: if (!__r) 8737: __r = _S_compare(__n1, __osize); 8737: return __r; 8737: } 8737: 8737: template 8737: int 8737: basic_string <_CharT, _Traits, _Alloc>:: 8737: compare(size_type __pos, size_type __n1, const _CharT* __s, 8737: size_type __n2) const 8737: { 8737: ; 8737: _M_check(__pos, "basic_string::compare"); 8737: __n1 = _M_limit(__pos, __n1); 8737: const size_type __len = std::min(__n1, __n2); 8737: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8737: if (!__r) 8737: __r = _S_compare(__n1, __n2); 8737: return __r; 8737: } 8737: 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: operator>>(basic_istream<_CharT, _Traits>& __in, 8737: basic_string<_CharT, _Traits, _Alloc>& __str) 8737: { 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8737: typedef typename __istream_type::ios_base __ios_base; 8737: typedef typename __istream_type::int_type __int_type; 8737: typedef typename __string_type::size_type __size_type; 8737: typedef ctype<_CharT> __ctype_type; 8737: typedef typename __ctype_type::ctype_base __ctype_base; 8737: 8737: __size_type __extracted = 0; 8737: typename __ios_base::iostate __err = __ios_base::goodbit; 8737: typename __istream_type::sentry __cerb(__in, false); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: 8737: __str.erase(); 8737: _CharT __buf[128]; 8737: __size_type __len = 0; 8737: const streamsize __w = __in.width(); 8737: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 8737: : __str.max_size(); 8737: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8737: const __int_type __eof = _Traits::eof(); 8737: __int_type __c = __in.rdbuf()->sgetc(); 8737: 8737: while (__extracted < __n 8737: && !_Traits::eq_int_type(__c, __eof) 8737: && !__ct.is(__ctype_base::space, 8737: _Traits::to_char_type(__c))) 8737: { 8737: if (__len == sizeof(__buf) / sizeof(_CharT)) 8737: { 8737: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 8737: __len = 0; 8737: } 8737: __buf[__len++] = _Traits::to_char_type(__c); 8737: ++__extracted; 8737: __c = __in.rdbuf()->snextc(); 8737: } 8737: __str.append(__buf, __len); 8737: 8737: if (_Traits::eq_int_type(__c, __eof)) 8737: __err |= __ios_base::eofbit; 8737: __in.width(0); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __in._M_setstate(__ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { 8737: 8737: 8737: 8737: __in._M_setstate(__ios_base::badbit); 8737: } 8737: } 8737: 8737: if (!__extracted) 8737: __err |= __ios_base::failbit; 8737: if (__err) 8737: __in.setstate(__err); 8737: return __in; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: getline(basic_istream<_CharT, _Traits>& __in, 8737: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8737: { 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8737: typedef typename __istream_type::ios_base __ios_base; 8737: typedef typename __istream_type::int_type __int_type; 8737: typedef typename __string_type::size_type __size_type; 8737: 8737: __size_type __extracted = 0; 8737: const __size_type __n = __str.max_size(); 8737: typename __ios_base::iostate __err = __ios_base::goodbit; 8737: typename __istream_type::sentry __cerb(__in, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: __str.erase(); 8737: const __int_type __idelim = _Traits::to_int_type(__delim); 8737: const __int_type __eof = _Traits::eof(); 8737: __int_type __c = __in.rdbuf()->sgetc(); 8737: 8737: while (__extracted < __n 8737: && !_Traits::eq_int_type(__c, __eof) 8737: && !_Traits::eq_int_type(__c, __idelim)) 8737: { 8737: __str += _Traits::to_char_type(__c); 8737: ++__extracted; 8737: __c = __in.rdbuf()->snextc(); 8737: } 8737: 8737: if (_Traits::eq_int_type(__c, __eof)) 8737: __err |= __ios_base::eofbit; 8737: else if (_Traits::eq_int_type(__c, __idelim)) 8737: { 8737: ++__extracted; 8737: __in.rdbuf()->sbumpc(); 8737: } 8737: else 8737: __err |= __ios_base::failbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __in._M_setstate(__ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { 8737: 8737: 8737: 8737: __in._M_setstate(__ios_base::badbit); 8737: } 8737: } 8737: if (!__extracted) 8737: __err |= __ios_base::failbit; 8737: if (__err) 8737: __in.setstate(__err); 8737: return __in; 8737: } 8737: 8737: 8737: 8737: 8737: extern template class basic_string; 8737: extern template 8737: basic_istream& 8737: operator>>(basic_istream&, string&); 8737: extern template 8737: basic_ostream& 8737: operator<<(basic_ostream&, const string&); 8737: extern template 8737: basic_istream& 8737: getline(basic_istream&, string&, char); 8737: extern template 8737: basic_istream& 8737: getline(basic_istream&, string&); 8737: 8737: 8737: extern template class basic_string; 8737: extern template 8737: basic_istream& 8737: operator>>(basic_istream&, wstring&); 8737: extern template 8737: basic_ostream& 8737: operator<<(basic_ostream&, const wstring&); 8737: extern template 8737: basic_istream& 8737: getline(basic_istream&, wstring&, wchar_t); 8737: extern template 8737: basic_istream& 8737: getline(basic_istream&, wstring&); 8737: 8737: 8737: 8737: 8737: } 8737: # 54 "/usr/include/c++/8/string" 2 3 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: # 1 "/usr/include/c++/8/iterator" 1 3 4 8737: # 58 "/usr/include/c++/8/iterator" 3 4 8737: 8737: # 59 "/usr/include/c++/8/iterator" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/ostream" 1 3 8737: # 36 "/usr/include/c++/8/ostream" 3 8737: 8737: # 37 "/usr/include/c++/8/ostream" 3 8737: 8737: # 1 "/usr/include/c++/8/ios" 1 3 8737: # 36 "/usr/include/c++/8/ios" 3 8737: 8737: # 37 "/usr/include/c++/8/ios" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/ios_base.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/ios_base.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/ios_base.h" 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/locale_classes.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 62 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: class locale 8737: { 8737: public: 8737: 8737: 8737: typedef int category; 8737: 8737: 8737: class facet; 8737: class id; 8737: class _Impl; 8737: 8737: friend class facet; 8737: friend class _Impl; 8737: 8737: template 8737: friend bool 8737: has_facet(const locale&) throw(); 8737: 8737: template 8737: friend const _Facet& 8737: use_facet(const locale&); 8737: 8737: template 8737: friend struct __use_cache; 8737: # 98 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: static const category none = 0; 8737: static const category ctype = 1L << 0; 8737: static const category numeric = 1L << 1; 8737: static const category collate = 1L << 2; 8737: static const category time = 1L << 3; 8737: static const category monetary = 1L << 4; 8737: static const category messages = 1L << 5; 8737: static const category all = (ctype | numeric | collate | 8737: time | monetary | messages); 8737: # 117 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: locale() throw(); 8737: # 126 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: locale(const locale& __other) throw(); 8737: # 136 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: explicit 8737: locale(const char* __s); 8737: # 151 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: locale(const locale& __base, const char* __s, category __cat); 8737: # 162 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: explicit 8737: locale(const std::string& __s) : locale(__s.c_str()) { } 8737: # 177 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: locale(const locale& __base, const std::string& __s, category __cat) 8737: : locale(__base, __s.c_str(), __cat) { } 8737: # 192 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: locale(const locale& __base, const locale& __add, category __cat); 8737: # 205 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: template 8737: locale(const locale& __other, _Facet* __f); 8737: 8737: 8737: ~locale() throw(); 8737: # 219 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: const locale& 8737: operator=(const locale& __other) throw(); 8737: # 234 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: template 8737: locale 8737: combine(const locale& __other) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: string 8737: name() const; 8737: # 254 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: bool 8737: operator==(const locale& __other) const throw(); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: operator!=(const locale& __other) const throw() 8737: { return !(this->operator==(__other)); } 8737: # 282 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: template 8737: bool 8737: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 8737: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 8737: # 298 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: static locale 8737: global(const locale& __loc); 8737: 8737: 8737: 8737: 8737: static const locale& 8737: classic(); 8737: 8737: private: 8737: 8737: _Impl* _M_impl; 8737: 8737: 8737: static _Impl* _S_classic; 8737: 8737: 8737: static _Impl* _S_global; 8737: 8737: 8737: 8737: 8737: 8737: static const char* const* const _S_categories; 8737: # 333 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: enum { _S_categories_size = 6 + 6 }; 8737: 8737: 8737: static __gthread_once_t _S_once; 8737: 8737: 8737: explicit 8737: locale(_Impl*) throw(); 8737: 8737: static void 8737: _S_initialize(); 8737: 8737: static void 8737: _S_initialize_once() throw(); 8737: 8737: static category 8737: _S_normalize_category(category); 8737: 8737: void 8737: _M_coalesce(const locale& __base, const locale& __add, category __cat); 8737: 8737: 8737: static const id* const _S_twinned_facets[]; 8737: 8737: }; 8737: # 371 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: class locale::facet 8737: { 8737: private: 8737: friend class locale; 8737: friend class locale::_Impl; 8737: 8737: mutable _Atomic_word _M_refcount; 8737: 8737: 8737: static __c_locale _S_c_locale; 8737: 8737: 8737: static const char _S_c_name[2]; 8737: 8737: 8737: static __gthread_once_t _S_once; 8737: 8737: 8737: static void 8737: _S_initialize_once(); 8737: 8737: protected: 8737: # 402 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: explicit 8737: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 8737: { } 8737: 8737: 8737: virtual 8737: ~facet(); 8737: 8737: static void 8737: _S_create_c_locale(__c_locale& __cloc, const char* __s, 8737: __c_locale __old = 0); 8737: 8737: static __c_locale 8737: _S_clone_c_locale(__c_locale& __cloc) throw(); 8737: 8737: static void 8737: _S_destroy_c_locale(__c_locale& __cloc); 8737: 8737: static __c_locale 8737: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 8737: 8737: 8737: 8737: static __c_locale 8737: _S_get_c_locale(); 8737: 8737: __attribute__ ((__const__)) static const char* 8737: _S_get_c_name() throw(); 8737: # 438 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: facet(const facet&) = delete; 8737: 8737: facet& 8737: operator=(const facet&) = delete; 8737: 8737: 8737: private: 8737: void 8737: _M_add_reference() const throw() 8737: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8737: 8737: void 8737: _M_remove_reference() const throw() 8737: { 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8737: { 8737: ; 8737: try 8737: { delete this; } 8737: catch(...) 8737: { } 8737: } 8737: } 8737: 8737: const facet* _M_sso_shim(const id*) const; 8737: const facet* _M_cow_shim(const id*) const; 8737: 8737: protected: 8737: class __shim; 8737: }; 8737: # 483 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: class locale::id 8737: { 8737: private: 8737: friend class locale; 8737: friend class locale::_Impl; 8737: 8737: template 8737: friend const _Facet& 8737: use_facet(const locale&); 8737: 8737: template 8737: friend bool 8737: has_facet(const locale&) throw(); 8737: 8737: 8737: 8737: 8737: mutable size_t _M_index; 8737: 8737: 8737: static _Atomic_word _S_refcount; 8737: 8737: void 8737: operator=(const id&); 8737: 8737: id(const id&); 8737: 8737: public: 8737: 8737: 8737: 8737: id() { } 8737: 8737: size_t 8737: _M_id() const throw(); 8737: }; 8737: 8737: 8737: 8737: class locale::_Impl 8737: { 8737: public: 8737: 8737: friend class locale; 8737: friend class locale::facet; 8737: 8737: template 8737: friend bool 8737: has_facet(const locale&) throw(); 8737: 8737: template 8737: friend const _Facet& 8737: use_facet(const locale&); 8737: 8737: template 8737: friend struct __use_cache; 8737: 8737: private: 8737: 8737: _Atomic_word _M_refcount; 8737: const facet** _M_facets; 8737: size_t _M_facets_size; 8737: const facet** _M_caches; 8737: char** _M_names; 8737: static const locale::id* const _S_id_ctype[]; 8737: static const locale::id* const _S_id_numeric[]; 8737: static const locale::id* const _S_id_collate[]; 8737: static const locale::id* const _S_id_time[]; 8737: static const locale::id* const _S_id_monetary[]; 8737: static const locale::id* const _S_id_messages[]; 8737: static const locale::id* const* const _S_facet_categories[]; 8737: 8737: void 8737: _M_add_reference() throw() 8737: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8737: 8737: void 8737: _M_remove_reference() throw() 8737: { 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8737: { 8737: ; 8737: try 8737: { delete this; } 8737: catch(...) 8737: { } 8737: } 8737: } 8737: 8737: _Impl(const _Impl&, size_t); 8737: _Impl(const char*, size_t); 8737: _Impl(size_t) throw(); 8737: 8737: ~_Impl() throw(); 8737: 8737: _Impl(const _Impl&); 8737: 8737: void 8737: operator=(const _Impl&); 8737: 8737: bool 8737: _M_check_same_name() 8737: { 8737: bool __ret = true; 8737: if (_M_names[1]) 8737: 8737: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 8737: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 8737: return __ret; 8737: } 8737: 8737: void 8737: _M_replace_categories(const _Impl*, category); 8737: 8737: void 8737: _M_replace_category(const _Impl*, const locale::id* const*); 8737: 8737: void 8737: _M_replace_facet(const _Impl*, const locale::id*); 8737: 8737: void 8737: _M_install_facet(const locale::id*, const facet*); 8737: 8737: template 8737: void 8737: _M_init_facet(_Facet* __facet) 8737: { _M_install_facet(&_Facet::id, __facet); } 8737: 8737: template 8737: void 8737: _M_init_facet_unchecked(_Facet* __facet) 8737: { 8737: __facet->_M_add_reference(); 8737: _M_facets[_Facet::id._M_id()] = __facet; 8737: } 8737: 8737: void 8737: _M_install_cache(const facet*, size_t); 8737: 8737: void _M_init_extra(facet**); 8737: void _M_init_extra(void*, void*, const char*, const char*); 8737: }; 8737: # 641 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: template 8737: class __cxx11:: collate : public locale::facet 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef basic_string<_CharT> string_type; 8737: 8737: 8737: protected: 8737: 8737: 8737: __c_locale _M_c_locale_collate; 8737: 8737: public: 8737: 8737: static locale::id id; 8737: # 668 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: explicit 8737: collate(size_t __refs = 0) 8737: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 8737: { } 8737: # 682 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: explicit 8737: collate(__c_locale __cloc, size_t __refs = 0) 8737: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 8737: { } 8737: # 699 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: int 8737: compare(const _CharT* __lo1, const _CharT* __hi1, 8737: const _CharT* __lo2, const _CharT* __hi2) const 8737: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 8737: # 718 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: string_type 8737: transform(const _CharT* __lo, const _CharT* __hi) const 8737: { return this->do_transform(__lo, __hi); } 8737: # 732 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: long 8737: hash(const _CharT* __lo, const _CharT* __hi) const 8737: { return this->do_hash(__lo, __hi); } 8737: 8737: 8737: int 8737: _M_compare(const _CharT*, const _CharT*) const throw(); 8737: 8737: size_t 8737: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 8737: 8737: protected: 8737: 8737: virtual 8737: ~collate() 8737: { _S_destroy_c_locale(_M_c_locale_collate); } 8737: # 761 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: virtual int 8737: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8737: const _CharT* __lo2, const _CharT* __hi2) const; 8737: # 775 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: virtual string_type 8737: do_transform(const _CharT* __lo, const _CharT* __hi) const; 8737: # 788 "/usr/include/c++/8/bits/locale_classes.h" 3 8737: virtual long 8737: do_hash(const _CharT* __lo, const _CharT* __hi) const; 8737: }; 8737: 8737: template 8737: locale::id collate<_CharT>::id; 8737: 8737: 8737: template<> 8737: int 8737: collate::_M_compare(const char*, const char*) const throw(); 8737: 8737: template<> 8737: size_t 8737: collate::_M_transform(char*, const char*, size_t) const throw(); 8737: 8737: 8737: template<> 8737: int 8737: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 8737: 8737: template<> 8737: size_t 8737: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 8737: 8737: 8737: 8737: template 8737: class __cxx11:: collate_byname : public collate<_CharT> 8737: { 8737: public: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef basic_string<_CharT> string_type; 8737: 8737: 8737: explicit 8737: collate_byname(const char* __s, size_t __refs = 0) 8737: : collate<_CharT>(__refs) 8737: { 8737: if (__builtin_strcmp(__s, "C") != 0 8737: && __builtin_strcmp(__s, "POSIX") != 0) 8737: { 8737: this->_S_destroy_c_locale(this->_M_c_locale_collate); 8737: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 8737: } 8737: } 8737: 8737: 8737: explicit 8737: collate_byname(const string& __s, size_t __refs = 0) 8737: : collate_byname(__s.c_str(), __refs) { } 8737: 8737: 8737: protected: 8737: virtual 8737: ~collate_byname() { } 8737: }; 8737: 8737: 8737: } 8737: 8737: # 1 "/usr/include/c++/8/bits/locale_classes.tcc" 1 3 8737: # 37 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: locale:: 8737: locale(const locale& __other, _Facet* __f) 8737: { 8737: _M_impl = new _Impl(*__other._M_impl, 1); 8737: 8737: try 8737: { _M_impl->_M_install_facet(&_Facet::id, __f); } 8737: catch(...) 8737: { 8737: _M_impl->_M_remove_reference(); 8737: throw; 8737: } 8737: delete [] _M_impl->_M_names[0]; 8737: _M_impl->_M_names[0] = 0; 8737: } 8737: 8737: template 8737: locale 8737: locale:: 8737: combine(const locale& __other) const 8737: { 8737: _Impl* __tmp = new _Impl(*_M_impl, 1); 8737: try 8737: { 8737: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 8737: } 8737: catch(...) 8737: { 8737: __tmp->_M_remove_reference(); 8737: throw; 8737: } 8737: return locale(__tmp); 8737: } 8737: 8737: template 8737: bool 8737: locale:: 8737: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 8737: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 8737: { 8737: typedef std::collate<_CharT> __collate_type; 8737: const __collate_type& __collate = use_facet<__collate_type>(*this); 8737: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 8737: __s2.data(), __s2.data() + __s2.length()) < 0); 8737: } 8737: # 102 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8737: template 8737: bool 8737: has_facet(const locale& __loc) throw() 8737: { 8737: const size_t __i = _Facet::id._M_id(); 8737: const locale::facet** __facets = __loc._M_impl->_M_facets; 8737: return (__i < __loc._M_impl->_M_facets_size 8737: 8737: && dynamic_cast(__facets[__i])); 8737: 8737: 8737: 8737: } 8737: # 130 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8737: template 8737: const _Facet& 8737: use_facet(const locale& __loc) 8737: { 8737: const size_t __i = _Facet::id._M_id(); 8737: const locale::facet** __facets = __loc._M_impl->_M_facets; 8737: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 8737: __throw_bad_cast(); 8737: 8737: return dynamic_cast(*__facets[__i]); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: template 8737: int 8737: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 8737: { return 0; } 8737: 8737: 8737: template 8737: size_t 8737: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 8737: { return 0; } 8737: 8737: template 8737: int 8737: collate<_CharT>:: 8737: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8737: const _CharT* __lo2, const _CharT* __hi2) const 8737: { 8737: 8737: 8737: const string_type __one(__lo1, __hi1); 8737: const string_type __two(__lo2, __hi2); 8737: 8737: const _CharT* __p = __one.c_str(); 8737: const _CharT* __pend = __one.data() + __one.length(); 8737: const _CharT* __q = __two.c_str(); 8737: const _CharT* __qend = __two.data() + __two.length(); 8737: 8737: 8737: 8737: 8737: for (;;) 8737: { 8737: const int __res = _M_compare(__p, __q); 8737: if (__res) 8737: return __res; 8737: 8737: __p += char_traits<_CharT>::length(__p); 8737: __q += char_traits<_CharT>::length(__q); 8737: if (__p == __pend && __q == __qend) 8737: return 0; 8737: else if (__p == __pend) 8737: return -1; 8737: else if (__q == __qend) 8737: return 1; 8737: 8737: __p++; 8737: __q++; 8737: } 8737: } 8737: 8737: template 8737: typename collate<_CharT>::string_type 8737: collate<_CharT>:: 8737: do_transform(const _CharT* __lo, const _CharT* __hi) const 8737: { 8737: string_type __ret; 8737: 8737: 8737: const string_type __str(__lo, __hi); 8737: 8737: const _CharT* __p = __str.c_str(); 8737: const _CharT* __pend = __str.data() + __str.length(); 8737: 8737: size_t __len = (__hi - __lo) * 2; 8737: 8737: _CharT* __c = new _CharT[__len]; 8737: 8737: try 8737: { 8737: 8737: 8737: 8737: for (;;) 8737: { 8737: 8737: size_t __res = _M_transform(__c, __p, __len); 8737: 8737: 8737: if (__res >= __len) 8737: { 8737: __len = __res + 1; 8737: delete [] __c, __c = 0; 8737: __c = new _CharT[__len]; 8737: __res = _M_transform(__c, __p, __len); 8737: } 8737: 8737: __ret.append(__c, __res); 8737: __p += char_traits<_CharT>::length(__p); 8737: if (__p == __pend) 8737: break; 8737: 8737: __p++; 8737: __ret.push_back(_CharT()); 8737: } 8737: } 8737: catch(...) 8737: { 8737: delete [] __c; 8737: throw; 8737: } 8737: 8737: delete [] __c; 8737: 8737: return __ret; 8737: } 8737: 8737: template 8737: long 8737: collate<_CharT>:: 8737: do_hash(const _CharT* __lo, const _CharT* __hi) const 8737: { 8737: unsigned long __val = 0; 8737: for (; __lo < __hi; ++__lo) 8737: __val = 8737: *__lo + ((__val << 7) 8737: | (__val >> (__gnu_cxx::__numeric_traits:: 8737: __digits - 7))); 8737: return static_cast(__val); 8737: } 8737: 8737: 8737: 8737: 8737: extern template class collate; 8737: extern template class collate_byname; 8737: 8737: extern template 8737: const collate& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: 8737: extern template class collate; 8737: extern template class collate_byname; 8737: 8737: extern template 8737: const collate& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: 8737: 8737: 8737: } 8737: # 852 "/usr/include/c++/8/bits/locale_classes.h" 2 3 8737: # 42 "/usr/include/c++/8/bits/ios_base.h" 2 3 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/system_error" 1 3 8737: # 32 "/usr/include/c++/8/system_error" 3 8737: 8737: # 33 "/usr/include/c++/8/system_error" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/error_constants.h" 1 3 8737: # 34 "/usr/include/x86_64-linux-gnu/c++/8/bits/error_constants.h" 3 8737: # 1 "/usr/include/c++/8/cerrno" 1 3 8737: # 39 "/usr/include/c++/8/cerrno" 3 8737: 8737: # 40 "/usr/include/c++/8/cerrno" 3 8737: # 35 "/usr/include/x86_64-linux-gnu/c++/8/bits/error_constants.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: enum class errc 8737: { 8737: address_family_not_supported = 97, 8737: address_in_use = 98, 8737: address_not_available = 99, 8737: already_connected = 106, 8737: argument_list_too_long = 7, 8737: argument_out_of_domain = 33, 8737: bad_address = 14, 8737: bad_file_descriptor = 9, 8737: 8737: 8737: bad_message = 74, 8737: 8737: 8737: broken_pipe = 32, 8737: connection_aborted = 103, 8737: connection_already_in_progress = 114, 8737: connection_refused = 111, 8737: connection_reset = 104, 8737: cross_device_link = 18, 8737: destination_address_required = 89, 8737: device_or_resource_busy = 16, 8737: directory_not_empty = 39, 8737: executable_format_error = 8, 8737: file_exists = 17, 8737: file_too_large = 27, 8737: filename_too_long = 36, 8737: function_not_supported = 38, 8737: host_unreachable = 113, 8737: 8737: 8737: identifier_removed = 43, 8737: 8737: 8737: illegal_byte_sequence = 84, 8737: inappropriate_io_control_operation = 25, 8737: interrupted = 4, 8737: invalid_argument = 22, 8737: invalid_seek = 29, 8737: io_error = 5, 8737: is_a_directory = 21, 8737: message_size = 90, 8737: network_down = 100, 8737: network_reset = 102, 8737: network_unreachable = 101, 8737: no_buffer_space = 105, 8737: no_child_process = 10, 8737: 8737: 8737: no_link = 67, 8737: 8737: 8737: no_lock_available = 37, 8737: 8737: 8737: no_message_available = 61, 8737: 8737: 8737: no_message = 42, 8737: no_protocol_option = 92, 8737: no_space_on_device = 28, 8737: 8737: 8737: no_stream_resources = 63, 8737: 8737: 8737: no_such_device_or_address = 6, 8737: no_such_device = 19, 8737: no_such_file_or_directory = 2, 8737: no_such_process = 3, 8737: not_a_directory = 20, 8737: not_a_socket = 88, 8737: 8737: 8737: not_a_stream = 60, 8737: 8737: 8737: not_connected = 107, 8737: not_enough_memory = 12, 8737: 8737: 8737: not_supported = 95, 8737: 8737: 8737: 8737: operation_canceled = 125, 8737: 8737: 8737: operation_in_progress = 115, 8737: operation_not_permitted = 1, 8737: operation_not_supported = 95, 8737: operation_would_block = 11, 8737: 8737: 8737: owner_dead = 130, 8737: 8737: 8737: permission_denied = 13, 8737: 8737: 8737: protocol_error = 71, 8737: 8737: 8737: protocol_not_supported = 93, 8737: read_only_file_system = 30, 8737: resource_deadlock_would_occur = 35, 8737: resource_unavailable_try_again = 11, 8737: result_out_of_range = 34, 8737: 8737: 8737: state_not_recoverable = 131, 8737: 8737: 8737: 8737: stream_timeout = 62, 8737: 8737: 8737: 8737: text_file_busy = 26, 8737: 8737: 8737: timed_out = 110, 8737: too_many_files_open_in_system = 23, 8737: too_many_files_open = 24, 8737: too_many_links = 31, 8737: too_many_symbolic_link_levels = 40, 8737: 8737: 8737: value_too_large = 75, 8737: 8737: 8737: wrong_protocol_type = 91 8737: }; 8737: 8737: 8737: } 8737: # 40 "/usr/include/c++/8/system_error" 2 3 8737: 8737: # 1 "/usr/include/c++/8/stdexcept" 1 3 8737: # 36 "/usr/include/c++/8/stdexcept" 3 8737: 8737: # 37 "/usr/include/c++/8/stdexcept" 3 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: struct __cow_string 8737: { 8737: union { 8737: const char* _M_p; 8737: char _M_bytes[sizeof(const char*)]; 8737: }; 8737: 8737: __cow_string(); 8737: __cow_string(const std::string&); 8737: __cow_string(const char*, size_t); 8737: __cow_string(const __cow_string&) noexcept; 8737: __cow_string& operator=(const __cow_string&) noexcept; 8737: ~__cow_string(); 8737: 8737: __cow_string(__cow_string&&) noexcept; 8737: __cow_string& operator=(__cow_string&&) noexcept; 8737: 8737: }; 8737: 8737: typedef basic_string __sso_string; 8737: # 113 "/usr/include/c++/8/stdexcept" 3 8737: class logic_error : public exception 8737: { 8737: __cow_string _M_msg; 8737: 8737: public: 8737: 8737: explicit 8737: logic_error(const string& __arg) ; 8737: 8737: 8737: explicit 8737: logic_error(const char*) ; 8737: 8737: 8737: 8737: logic_error(const logic_error&) noexcept; 8737: logic_error& operator=(const logic_error&) noexcept; 8737: 8737: 8737: virtual ~logic_error() noexcept; 8737: 8737: 8737: 8737: virtual const char* 8737: what() const noexcept; 8737: 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: 8737: class domain_error : public logic_error 8737: { 8737: public: 8737: explicit domain_error(const string& __arg) ; 8737: 8737: explicit domain_error(const char*) ; 8737: 8737: virtual ~domain_error() noexcept; 8737: }; 8737: 8737: 8737: class invalid_argument : public logic_error 8737: { 8737: public: 8737: explicit invalid_argument(const string& __arg) ; 8737: 8737: explicit invalid_argument(const char*) ; 8737: 8737: virtual ~invalid_argument() noexcept; 8737: }; 8737: 8737: 8737: 8737: class length_error : public logic_error 8737: { 8737: public: 8737: explicit length_error(const string& __arg) ; 8737: 8737: explicit length_error(const char*) ; 8737: 8737: virtual ~length_error() noexcept; 8737: }; 8737: 8737: 8737: 8737: class out_of_range : public logic_error 8737: { 8737: public: 8737: explicit out_of_range(const string& __arg) ; 8737: 8737: explicit out_of_range(const char*) ; 8737: 8737: virtual ~out_of_range() noexcept; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: class runtime_error : public exception 8737: { 8737: __cow_string _M_msg; 8737: 8737: public: 8737: 8737: explicit 8737: runtime_error(const string& __arg) ; 8737: 8737: 8737: explicit 8737: runtime_error(const char*) ; 8737: 8737: 8737: 8737: runtime_error(const runtime_error&) noexcept; 8737: runtime_error& operator=(const runtime_error&) noexcept; 8737: 8737: 8737: virtual ~runtime_error() noexcept; 8737: 8737: 8737: 8737: virtual const char* 8737: what() const noexcept; 8737: 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: class range_error : public runtime_error 8737: { 8737: public: 8737: explicit range_error(const string& __arg) ; 8737: 8737: explicit range_error(const char*) ; 8737: 8737: virtual ~range_error() noexcept; 8737: }; 8737: 8737: 8737: class overflow_error : public runtime_error 8737: { 8737: public: 8737: explicit overflow_error(const string& __arg) ; 8737: 8737: explicit overflow_error(const char*) ; 8737: 8737: virtual ~overflow_error() noexcept; 8737: }; 8737: 8737: 8737: class underflow_error : public runtime_error 8737: { 8737: public: 8737: explicit underflow_error(const string& __arg) ; 8737: 8737: explicit underflow_error(const char*) ; 8737: 8737: virtual ~underflow_error() noexcept; 8737: }; 8737: 8737: 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/system_error" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: class error_code; 8737: class error_condition; 8737: class system_error; 8737: 8737: 8737: template 8737: struct is_error_code_enum : public false_type { }; 8737: 8737: 8737: template 8737: struct is_error_condition_enum : public false_type { }; 8737: 8737: template<> 8737: struct is_error_condition_enum 8737: : public true_type { }; 8737: # 71 "/usr/include/c++/8/system_error" 3 8737: inline namespace _V2 { 8737: 8737: 8737: class error_category 8737: { 8737: public: 8737: constexpr error_category() noexcept = default; 8737: 8737: virtual ~error_category(); 8737: 8737: error_category(const error_category&) = delete; 8737: error_category& operator=(const error_category&) = delete; 8737: 8737: virtual const char* 8737: name() const noexcept = 0; 8737: 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: virtual __cow_string 8737: _M_message(int) const; 8737: 8737: public: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: virtual string 8737: message(int) const = 0; 8737: # 110 "/usr/include/c++/8/system_error" 3 8737: public: 8737: virtual error_condition 8737: default_error_condition(int __i) const noexcept; 8737: 8737: virtual bool 8737: equivalent(int __i, const error_condition& __cond) const noexcept; 8737: 8737: virtual bool 8737: equivalent(const error_code& __code, int __i) const noexcept; 8737: 8737: bool 8737: operator<(const error_category& __other) const noexcept 8737: { return less()(this, &__other); } 8737: 8737: bool 8737: operator==(const error_category& __other) const noexcept 8737: { return this == &__other; } 8737: 8737: bool 8737: operator!=(const error_category& __other) const noexcept 8737: { return this != &__other; } 8737: }; 8737: 8737: 8737: __attribute__ ((__const__)) const error_category& system_category() noexcept; 8737: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 8737: 8737: } 8737: 8737: error_code make_error_code(errc) noexcept; 8737: 8737: template 8737: struct hash; 8737: 8737: 8737: 8737: struct error_code 8737: { 8737: error_code() noexcept 8737: : _M_value(0), _M_cat(&system_category()) { } 8737: 8737: error_code(int __v, const error_category& __cat) noexcept 8737: : _M_value(__v), _M_cat(&__cat) { } 8737: 8737: template::value>::type> 8737: error_code(_ErrorCodeEnum __e) noexcept 8737: { *this = make_error_code(__e); } 8737: 8737: void 8737: assign(int __v, const error_category& __cat) noexcept 8737: { 8737: _M_value = __v; 8737: _M_cat = &__cat; 8737: } 8737: 8737: void 8737: clear() noexcept 8737: { assign(0, system_category()); } 8737: 8737: 8737: template 8737: typename enable_if::value, 8737: error_code&>::type 8737: operator=(_ErrorCodeEnum __e) noexcept 8737: { return *this = make_error_code(__e); } 8737: 8737: int 8737: value() const noexcept { return _M_value; } 8737: 8737: const error_category& 8737: category() const noexcept { return *_M_cat; } 8737: 8737: error_condition 8737: default_error_condition() const noexcept; 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: string 8737: message() const 8737: { return category().message(value()); } 8737: 8737: explicit operator bool() const noexcept 8737: { return _M_value != 0; } 8737: 8737: 8737: private: 8737: friend class hash; 8737: 8737: int _M_value; 8737: const error_category* _M_cat; 8737: }; 8737: 8737: 8737: inline error_code 8737: make_error_code(errc __e) noexcept 8737: { return error_code(static_cast(__e), generic_category()); } 8737: 8737: inline bool 8737: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 8737: { 8737: return (__lhs.category() < __rhs.category() 8737: || (__lhs.category() == __rhs.category() 8737: && __lhs.value() < __rhs.value())); 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 8737: { return (__os << __e.category().name() << ':' << __e.value()); } 8737: 8737: error_condition make_error_condition(errc) noexcept; 8737: 8737: 8737: 8737: struct error_condition 8737: { 8737: error_condition() noexcept 8737: : _M_value(0), _M_cat(&generic_category()) { } 8737: 8737: error_condition(int __v, const error_category& __cat) noexcept 8737: : _M_value(__v), _M_cat(&__cat) { } 8737: 8737: template::value>::type> 8737: error_condition(_ErrorConditionEnum __e) noexcept 8737: { *this = make_error_condition(__e); } 8737: 8737: void 8737: assign(int __v, const error_category& __cat) noexcept 8737: { 8737: _M_value = __v; 8737: _M_cat = &__cat; 8737: } 8737: 8737: 8737: template 8737: typename enable_if::value, error_condition&>::type 8737: operator=(_ErrorConditionEnum __e) noexcept 8737: { return *this = make_error_condition(__e); } 8737: 8737: void 8737: clear() noexcept 8737: { assign(0, generic_category()); } 8737: 8737: 8737: int 8737: value() const noexcept { return _M_value; } 8737: 8737: const error_category& 8737: category() const noexcept { return *_M_cat; } 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: string 8737: message() const 8737: { return category().message(value()); } 8737: 8737: explicit operator bool() const noexcept 8737: { return _M_value != 0; } 8737: 8737: 8737: private: 8737: int _M_value; 8737: const error_category* _M_cat; 8737: }; 8737: 8737: 8737: inline error_condition 8737: make_error_condition(errc __e) noexcept 8737: { return error_condition(static_cast(__e), generic_category()); } 8737: 8737: inline bool 8737: operator<(const error_condition& __lhs, 8737: const error_condition& __rhs) noexcept 8737: { 8737: return (__lhs.category() < __rhs.category() 8737: || (__lhs.category() == __rhs.category() 8737: && __lhs.value() < __rhs.value())); 8737: } 8737: 8737: 8737: inline bool 8737: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 8737: { return (__lhs.category() == __rhs.category() 8737: && __lhs.value() == __rhs.value()); } 8737: 8737: inline bool 8737: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 8737: { 8737: return (__lhs.category().equivalent(__lhs.value(), __rhs) 8737: || __rhs.category().equivalent(__lhs, __rhs.value())); 8737: } 8737: 8737: inline bool 8737: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 8737: { 8737: return (__rhs.category().equivalent(__rhs.value(), __lhs) 8737: || __lhs.category().equivalent(__rhs, __lhs.value())); 8737: } 8737: 8737: inline bool 8737: operator==(const error_condition& __lhs, 8737: const error_condition& __rhs) noexcept 8737: { 8737: return (__lhs.category() == __rhs.category() 8737: && __lhs.value() == __rhs.value()); 8737: } 8737: 8737: inline bool 8737: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 8737: { return !(__lhs == __rhs); } 8737: 8737: inline bool 8737: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 8737: { return !(__lhs == __rhs); } 8737: 8737: inline bool 8737: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 8737: { return !(__lhs == __rhs); } 8737: 8737: inline bool 8737: operator!=(const error_condition& __lhs, 8737: const error_condition& __rhs) noexcept 8737: { return !(__lhs == __rhs); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class system_error : public std::runtime_error 8737: { 8737: private: 8737: error_code _M_code; 8737: 8737: public: 8737: system_error(error_code __ec = error_code()) 8737: : runtime_error(__ec.message()), _M_code(__ec) { } 8737: 8737: system_error(error_code __ec, const string& __what) 8737: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 8737: 8737: system_error(error_code __ec, const char* __what) 8737: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 8737: 8737: system_error(int __v, const error_category& __ecat, const char* __what) 8737: : system_error(error_code(__v, __ecat), __what) { } 8737: 8737: system_error(int __v, const error_category& __ecat) 8737: : runtime_error(error_code(__v, __ecat).message()), 8737: _M_code(__v, __ecat) { } 8737: 8737: system_error(int __v, const error_category& __ecat, const string& __what) 8737: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 8737: _M_code(__v, __ecat) { } 8737: 8737: virtual ~system_error() noexcept; 8737: 8737: const error_code& 8737: code() const noexcept { return _M_code; } 8737: }; 8737: 8737: 8737: } 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: template<> 8737: struct hash 8737: : public __hash_base 8737: { 8737: size_t 8737: operator()(const error_code& __e) const noexcept 8737: { 8737: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 8737: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 8737: } 8737: }; 8737: # 414 "/usr/include/c++/8/system_error" 3 8737: 8737: } 8737: # 47 "/usr/include/c++/8/bits/ios_base.h" 2 3 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum _Ios_Fmtflags 8737: { 8737: _S_boolalpha = 1L << 0, 8737: _S_dec = 1L << 1, 8737: _S_fixed = 1L << 2, 8737: _S_hex = 1L << 3, 8737: _S_internal = 1L << 4, 8737: _S_left = 1L << 5, 8737: _S_oct = 1L << 6, 8737: _S_right = 1L << 7, 8737: _S_scientific = 1L << 8, 8737: _S_showbase = 1L << 9, 8737: _S_showpoint = 1L << 10, 8737: _S_showpos = 1L << 11, 8737: _S_skipws = 1L << 12, 8737: _S_unitbuf = 1L << 13, 8737: _S_uppercase = 1L << 14, 8737: _S_adjustfield = _S_left | _S_right | _S_internal, 8737: _S_basefield = _S_dec | _S_oct | _S_hex, 8737: _S_floatfield = _S_scientific | _S_fixed, 8737: _S_ios_fmtflags_end = 1L << 16, 8737: _S_ios_fmtflags_max = 0x7fffffff, 8737: _S_ios_fmtflags_min = ~0x7fffffff 8737: }; 8737: 8737: inline constexpr _Ios_Fmtflags 8737: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8737: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Fmtflags 8737: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8737: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Fmtflags 8737: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8737: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Fmtflags 8737: operator~(_Ios_Fmtflags __a) 8737: { return _Ios_Fmtflags(~static_cast(__a)); } 8737: 8737: inline const _Ios_Fmtflags& 8737: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8737: { return __a = __a | __b; } 8737: 8737: inline const _Ios_Fmtflags& 8737: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8737: { return __a = __a & __b; } 8737: 8737: inline const _Ios_Fmtflags& 8737: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8737: { return __a = __a ^ __b; } 8737: 8737: 8737: enum _Ios_Openmode 8737: { 8737: _S_app = 1L << 0, 8737: _S_ate = 1L << 1, 8737: _S_bin = 1L << 2, 8737: _S_in = 1L << 3, 8737: _S_out = 1L << 4, 8737: _S_trunc = 1L << 5, 8737: _S_ios_openmode_end = 1L << 16, 8737: _S_ios_openmode_max = 0x7fffffff, 8737: _S_ios_openmode_min = ~0x7fffffff 8737: }; 8737: 8737: inline constexpr _Ios_Openmode 8737: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 8737: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Openmode 8737: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 8737: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Openmode 8737: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 8737: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Openmode 8737: operator~(_Ios_Openmode __a) 8737: { return _Ios_Openmode(~static_cast(__a)); } 8737: 8737: inline const _Ios_Openmode& 8737: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 8737: { return __a = __a | __b; } 8737: 8737: inline const _Ios_Openmode& 8737: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 8737: { return __a = __a & __b; } 8737: 8737: inline const _Ios_Openmode& 8737: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 8737: { return __a = __a ^ __b; } 8737: 8737: 8737: enum _Ios_Iostate 8737: { 8737: _S_goodbit = 0, 8737: _S_badbit = 1L << 0, 8737: _S_eofbit = 1L << 1, 8737: _S_failbit = 1L << 2, 8737: _S_ios_iostate_end = 1L << 16, 8737: _S_ios_iostate_max = 0x7fffffff, 8737: _S_ios_iostate_min = ~0x7fffffff 8737: }; 8737: 8737: inline constexpr _Ios_Iostate 8737: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 8737: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Iostate 8737: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 8737: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Iostate 8737: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 8737: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 8737: 8737: inline constexpr _Ios_Iostate 8737: operator~(_Ios_Iostate __a) 8737: { return _Ios_Iostate(~static_cast(__a)); } 8737: 8737: inline const _Ios_Iostate& 8737: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 8737: { return __a = __a | __b; } 8737: 8737: inline const _Ios_Iostate& 8737: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 8737: { return __a = __a & __b; } 8737: 8737: inline const _Ios_Iostate& 8737: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 8737: { return __a = __a ^ __b; } 8737: 8737: 8737: enum _Ios_Seekdir 8737: { 8737: _S_beg = 0, 8737: _S_cur = 1, 8737: _S_end = 2, 8737: _S_ios_seekdir_end = 1L << 16 8737: }; 8737: 8737: 8737: 8737: enum class io_errc { stream = 1 }; 8737: 8737: template <> struct is_error_code_enum : public true_type { }; 8737: 8737: const error_category& iostream_category() noexcept; 8737: 8737: inline error_code 8737: make_error_code(io_errc __e) noexcept 8737: { return error_code(static_cast(__e), iostream_category()); } 8737: 8737: inline error_condition 8737: make_error_condition(io_errc __e) noexcept 8737: { return error_condition(static_cast(__e), iostream_category()); } 8737: # 228 "/usr/include/c++/8/bits/ios_base.h" 3 8737: class ios_base 8737: { 8737: # 246 "/usr/include/c++/8/bits/ios_base.h" 3 8737: public: 8737: # 255 "/usr/include/c++/8/bits/ios_base.h" 3 8737: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 8737: { 8737: public: 8737: explicit 8737: failure(const string& __str); 8737: 8737: 8737: explicit 8737: failure(const string&, const error_code&); 8737: 8737: explicit 8737: failure(const char*, const error_code& = io_errc::stream); 8737: 8737: 8737: virtual 8737: ~failure() throw(); 8737: 8737: virtual const char* 8737: what() const throw(); 8737: }; 8737: # 323 "/usr/include/c++/8/bits/ios_base.h" 3 8737: typedef _Ios_Fmtflags fmtflags; 8737: 8737: 8737: static const fmtflags boolalpha = _S_boolalpha; 8737: 8737: 8737: static const fmtflags dec = _S_dec; 8737: 8737: 8737: static const fmtflags fixed = _S_fixed; 8737: 8737: 8737: static const fmtflags hex = _S_hex; 8737: 8737: 8737: 8737: 8737: static const fmtflags internal = _S_internal; 8737: 8737: 8737: 8737: static const fmtflags left = _S_left; 8737: 8737: 8737: static const fmtflags oct = _S_oct; 8737: 8737: 8737: 8737: static const fmtflags right = _S_right; 8737: 8737: 8737: static const fmtflags scientific = _S_scientific; 8737: 8737: 8737: 8737: static const fmtflags showbase = _S_showbase; 8737: 8737: 8737: 8737: static const fmtflags showpoint = _S_showpoint; 8737: 8737: 8737: static const fmtflags showpos = _S_showpos; 8737: 8737: 8737: static const fmtflags skipws = _S_skipws; 8737: 8737: 8737: static const fmtflags unitbuf = _S_unitbuf; 8737: 8737: 8737: 8737: static const fmtflags uppercase = _S_uppercase; 8737: 8737: 8737: static const fmtflags adjustfield = _S_adjustfield; 8737: 8737: 8737: static const fmtflags basefield = _S_basefield; 8737: 8737: 8737: static const fmtflags floatfield = _S_floatfield; 8737: # 398 "/usr/include/c++/8/bits/ios_base.h" 3 8737: typedef _Ios_Iostate iostate; 8737: 8737: 8737: 8737: static const iostate badbit = _S_badbit; 8737: 8737: 8737: static const iostate eofbit = _S_eofbit; 8737: 8737: 8737: 8737: 8737: static const iostate failbit = _S_failbit; 8737: 8737: 8737: static const iostate goodbit = _S_goodbit; 8737: # 429 "/usr/include/c++/8/bits/ios_base.h" 3 8737: typedef _Ios_Openmode openmode; 8737: 8737: 8737: static const openmode app = _S_app; 8737: 8737: 8737: static const openmode ate = _S_ate; 8737: 8737: 8737: 8737: 8737: static const openmode binary = _S_bin; 8737: 8737: 8737: static const openmode in = _S_in; 8737: 8737: 8737: static const openmode out = _S_out; 8737: 8737: 8737: static const openmode trunc = _S_trunc; 8737: # 461 "/usr/include/c++/8/bits/ios_base.h" 3 8737: typedef _Ios_Seekdir seekdir; 8737: 8737: 8737: static const seekdir beg = _S_beg; 8737: 8737: 8737: static const seekdir cur = _S_cur; 8737: 8737: 8737: static const seekdir end = _S_end; 8737: 8737: 8737: 8737: typedef int io_state; 8737: typedef int open_mode; 8737: typedef int seek_dir; 8737: 8737: typedef std::streampos streampos; 8737: typedef std::streamoff streamoff; 8737: # 489 "/usr/include/c++/8/bits/ios_base.h" 3 8737: enum event 8737: { 8737: erase_event, 8737: imbue_event, 8737: copyfmt_event 8737: }; 8737: # 506 "/usr/include/c++/8/bits/ios_base.h" 3 8737: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 8737: # 518 "/usr/include/c++/8/bits/ios_base.h" 3 8737: void 8737: register_callback(event_callback __fn, int __index); 8737: 8737: protected: 8737: streamsize _M_precision; 8737: streamsize _M_width; 8737: fmtflags _M_flags; 8737: iostate _M_exception; 8737: iostate _M_streambuf_state; 8737: 8737: 8737: 8737: struct _Callback_list 8737: { 8737: 8737: _Callback_list* _M_next; 8737: ios_base::event_callback _M_fn; 8737: int _M_index; 8737: _Atomic_word _M_refcount; 8737: 8737: _Callback_list(ios_base::event_callback __fn, int __index, 8737: _Callback_list* __cb) 8737: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 8737: 8737: void 8737: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8737: 8737: 8737: int 8737: _M_remove_reference() 8737: { 8737: 8737: ; 8737: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 8737: if (__res == 0) 8737: { 8737: ; 8737: } 8737: return __res; 8737: } 8737: }; 8737: 8737: _Callback_list* _M_callbacks; 8737: 8737: void 8737: _M_call_callbacks(event __ev) throw(); 8737: 8737: void 8737: _M_dispose_callbacks(void) throw(); 8737: 8737: 8737: struct _Words 8737: { 8737: void* _M_pword; 8737: long _M_iword; 8737: _Words() : _M_pword(0), _M_iword(0) { } 8737: }; 8737: 8737: 8737: _Words _M_word_zero; 8737: 8737: 8737: 8737: enum { _S_local_word_size = 8 }; 8737: _Words _M_local_word[_S_local_word_size]; 8737: 8737: 8737: int _M_word_size; 8737: _Words* _M_word; 8737: 8737: _Words& 8737: _M_grow_words(int __index, bool __iword); 8737: 8737: 8737: locale _M_ios_locale; 8737: 8737: void 8737: _M_init() throw(); 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: class Init 8737: { 8737: friend class ios_base; 8737: public: 8737: Init(); 8737: ~Init(); 8737: 8737: private: 8737: static _Atomic_word _S_refcount; 8737: static bool _S_synced_with_stdio; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: fmtflags 8737: flags() const 8737: { return _M_flags; } 8737: # 631 "/usr/include/c++/8/bits/ios_base.h" 3 8737: fmtflags 8737: flags(fmtflags __fmtfl) 8737: { 8737: fmtflags __old = _M_flags; 8737: _M_flags = __fmtfl; 8737: return __old; 8737: } 8737: # 647 "/usr/include/c++/8/bits/ios_base.h" 3 8737: fmtflags 8737: setf(fmtflags __fmtfl) 8737: { 8737: fmtflags __old = _M_flags; 8737: _M_flags |= __fmtfl; 8737: return __old; 8737: } 8737: # 664 "/usr/include/c++/8/bits/ios_base.h" 3 8737: fmtflags 8737: setf(fmtflags __fmtfl, fmtflags __mask) 8737: { 8737: fmtflags __old = _M_flags; 8737: _M_flags &= ~__mask; 8737: _M_flags |= (__fmtfl & __mask); 8737: return __old; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: unsetf(fmtflags __mask) 8737: { _M_flags &= ~__mask; } 8737: # 690 "/usr/include/c++/8/bits/ios_base.h" 3 8737: streamsize 8737: precision() const 8737: { return _M_precision; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: streamsize 8737: precision(streamsize __prec) 8737: { 8737: streamsize __old = _M_precision; 8737: _M_precision = __prec; 8737: return __old; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: streamsize 8737: width() const 8737: { return _M_width; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: streamsize 8737: width(streamsize __wide) 8737: { 8737: streamsize __old = _M_width; 8737: _M_width = __wide; 8737: return __old; 8737: } 8737: # 741 "/usr/include/c++/8/bits/ios_base.h" 3 8737: static bool 8737: sync_with_stdio(bool __sync = true); 8737: # 753 "/usr/include/c++/8/bits/ios_base.h" 3 8737: locale 8737: imbue(const locale& __loc) throw(); 8737: # 764 "/usr/include/c++/8/bits/ios_base.h" 3 8737: locale 8737: getloc() const 8737: { return _M_ios_locale; } 8737: # 775 "/usr/include/c++/8/bits/ios_base.h" 3 8737: const locale& 8737: _M_getloc() const 8737: { return _M_ios_locale; } 8737: # 794 "/usr/include/c++/8/bits/ios_base.h" 3 8737: static int 8737: xalloc() throw(); 8737: # 810 "/usr/include/c++/8/bits/ios_base.h" 3 8737: long& 8737: iword(int __ix) 8737: { 8737: _Words& __word = (__ix < _M_word_size) 8737: ? _M_word[__ix] : _M_grow_words(__ix, true); 8737: return __word._M_iword; 8737: } 8737: # 831 "/usr/include/c++/8/bits/ios_base.h" 3 8737: void*& 8737: pword(int __ix) 8737: { 8737: _Words& __word = (__ix < _M_word_size) 8737: ? _M_word[__ix] : _M_grow_words(__ix, false); 8737: return __word._M_pword; 8737: } 8737: # 848 "/usr/include/c++/8/bits/ios_base.h" 3 8737: virtual ~ios_base(); 8737: 8737: protected: 8737: ios_base() throw (); 8737: # 862 "/usr/include/c++/8/bits/ios_base.h" 3 8737: public: 8737: ios_base(const ios_base&) = delete; 8737: 8737: ios_base& 8737: operator=(const ios_base&) = delete; 8737: 8737: protected: 8737: void 8737: _M_move(ios_base&) noexcept; 8737: 8737: void 8737: _M_swap(ios_base& __rhs) noexcept; 8737: 8737: }; 8737: 8737: 8737: 8737: inline ios_base& 8737: boolalpha(ios_base& __base) 8737: { 8737: __base.setf(ios_base::boolalpha); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: noboolalpha(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::boolalpha); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: showbase(ios_base& __base) 8737: { 8737: __base.setf(ios_base::showbase); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: noshowbase(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::showbase); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: showpoint(ios_base& __base) 8737: { 8737: __base.setf(ios_base::showpoint); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: noshowpoint(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::showpoint); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: showpos(ios_base& __base) 8737: { 8737: __base.setf(ios_base::showpos); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: noshowpos(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::showpos); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: skipws(ios_base& __base) 8737: { 8737: __base.setf(ios_base::skipws); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: noskipws(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::skipws); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: uppercase(ios_base& __base) 8737: { 8737: __base.setf(ios_base::uppercase); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: nouppercase(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::uppercase); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: unitbuf(ios_base& __base) 8737: { 8737: __base.setf(ios_base::unitbuf); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: nounitbuf(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::unitbuf); 8737: return __base; 8737: } 8737: 8737: 8737: 8737: inline ios_base& 8737: internal(ios_base& __base) 8737: { 8737: __base.setf(ios_base::internal, ios_base::adjustfield); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: left(ios_base& __base) 8737: { 8737: __base.setf(ios_base::left, ios_base::adjustfield); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: right(ios_base& __base) 8737: { 8737: __base.setf(ios_base::right, ios_base::adjustfield); 8737: return __base; 8737: } 8737: 8737: 8737: 8737: inline ios_base& 8737: dec(ios_base& __base) 8737: { 8737: __base.setf(ios_base::dec, ios_base::basefield); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: hex(ios_base& __base) 8737: { 8737: __base.setf(ios_base::hex, ios_base::basefield); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: oct(ios_base& __base) 8737: { 8737: __base.setf(ios_base::oct, ios_base::basefield); 8737: return __base; 8737: } 8737: 8737: 8737: 8737: inline ios_base& 8737: fixed(ios_base& __base) 8737: { 8737: __base.setf(ios_base::fixed, ios_base::floatfield); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: scientific(ios_base& __base) 8737: { 8737: __base.setf(ios_base::scientific, ios_base::floatfield); 8737: return __base; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline ios_base& 8737: hexfloat(ios_base& __base) 8737: { 8737: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 8737: return __base; 8737: } 8737: 8737: 8737: inline ios_base& 8737: defaultfloat(ios_base& __base) 8737: { 8737: __base.unsetf(ios_base::floatfield); 8737: return __base; 8737: } 8737: 8737: 8737: 8737: } 8737: # 43 "/usr/include/c++/8/ios" 2 3 8737: # 1 "/usr/include/c++/8/streambuf" 1 3 8737: # 36 "/usr/include/c++/8/streambuf" 3 8737: 8737: # 37 "/usr/include/c++/8/streambuf" 3 8737: # 45 "/usr/include/c++/8/streambuf" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: streamsize 8737: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 8737: basic_streambuf<_CharT, _Traits>*, bool&); 8737: # 121 "/usr/include/c++/8/streambuf" 3 8737: template 8737: class basic_streambuf 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef _Traits traits_type; 8737: typedef typename traits_type::int_type int_type; 8737: typedef typename traits_type::pos_type pos_type; 8737: typedef typename traits_type::off_type off_type; 8737: 8737: 8737: 8737: 8737: typedef basic_streambuf __streambuf_type; 8737: 8737: 8737: friend class basic_ios; 8737: friend class basic_istream; 8737: friend class basic_ostream; 8737: friend class istreambuf_iterator; 8737: friend class ostreambuf_iterator; 8737: 8737: friend streamsize 8737: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: _CharT2*>::__type 8737: __copy_move_a2(istreambuf_iterator<_CharT2>, 8737: istreambuf_iterator<_CharT2>, _CharT2*); 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: istreambuf_iterator<_CharT2> >::__type 8737: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8737: const _CharT2&); 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: void>::__type 8737: advance(istreambuf_iterator<_CharT2>&, _Distance); 8737: 8737: template 8737: friend basic_istream<_CharT2, _Traits2>& 8737: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 8737: 8737: template 8737: friend basic_istream<_CharT2, _Traits2>& 8737: operator>>(basic_istream<_CharT2, _Traits2>&, 8737: basic_string<_CharT2, _Traits2, _Alloc>&); 8737: 8737: template 8737: friend basic_istream<_CharT2, _Traits2>& 8737: getline(basic_istream<_CharT2, _Traits2>&, 8737: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: char_type* _M_in_beg; 8737: char_type* _M_in_cur; 8737: char_type* _M_in_end; 8737: char_type* _M_out_beg; 8737: char_type* _M_out_cur; 8737: char_type* _M_out_end; 8737: 8737: 8737: locale _M_buf_locale; 8737: 8737: public: 8737: 8737: virtual 8737: ~basic_streambuf() 8737: { } 8737: # 215 "/usr/include/c++/8/streambuf" 3 8737: locale 8737: pubimbue(const locale& __loc) 8737: { 8737: locale __tmp(this->getloc()); 8737: this->imbue(__loc); 8737: _M_buf_locale = __loc; 8737: return __tmp; 8737: } 8737: # 232 "/usr/include/c++/8/streambuf" 3 8737: locale 8737: getloc() const 8737: { return _M_buf_locale; } 8737: # 245 "/usr/include/c++/8/streambuf" 3 8737: basic_streambuf* 8737: pubsetbuf(char_type* __s, streamsize __n) 8737: { return this->setbuf(__s, __n); } 8737: # 257 "/usr/include/c++/8/streambuf" 3 8737: pos_type 8737: pubseekoff(off_type __off, ios_base::seekdir __way, 8737: ios_base::openmode __mode = ios_base::in | ios_base::out) 8737: { return this->seekoff(__off, __way, __mode); } 8737: # 269 "/usr/include/c++/8/streambuf" 3 8737: pos_type 8737: pubseekpos(pos_type __sp, 8737: ios_base::openmode __mode = ios_base::in | ios_base::out) 8737: { return this->seekpos(__sp, __mode); } 8737: 8737: 8737: 8737: 8737: int 8737: pubsync() { return this->sync(); } 8737: # 290 "/usr/include/c++/8/streambuf" 3 8737: streamsize 8737: in_avail() 8737: { 8737: const streamsize __ret = this->egptr() - this->gptr(); 8737: return __ret ? __ret : this->showmanyc(); 8737: } 8737: # 304 "/usr/include/c++/8/streambuf" 3 8737: int_type 8737: snextc() 8737: { 8737: int_type __ret = traits_type::eof(); 8737: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 8737: __ret), true)) 8737: __ret = this->sgetc(); 8737: return __ret; 8737: } 8737: # 322 "/usr/include/c++/8/streambuf" 3 8737: int_type 8737: sbumpc() 8737: { 8737: int_type __ret; 8737: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8737: { 8737: __ret = traits_type::to_int_type(*this->gptr()); 8737: this->gbump(1); 8737: } 8737: else 8737: __ret = this->uflow(); 8737: return __ret; 8737: } 8737: # 344 "/usr/include/c++/8/streambuf" 3 8737: int_type 8737: sgetc() 8737: { 8737: int_type __ret; 8737: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8737: __ret = traits_type::to_int_type(*this->gptr()); 8737: else 8737: __ret = this->underflow(); 8737: return __ret; 8737: } 8737: # 363 "/usr/include/c++/8/streambuf" 3 8737: streamsize 8737: sgetn(char_type* __s, streamsize __n) 8737: { return this->xsgetn(__s, __n); } 8737: # 378 "/usr/include/c++/8/streambuf" 3 8737: int_type 8737: sputbackc(char_type __c) 8737: { 8737: int_type __ret; 8737: const bool __testpos = this->eback() < this->gptr(); 8737: if (__builtin_expect(!__testpos || 8737: !traits_type::eq(__c, this->gptr()[-1]), false)) 8737: __ret = this->pbackfail(traits_type::to_int_type(__c)); 8737: else 8737: { 8737: this->gbump(-1); 8737: __ret = traits_type::to_int_type(*this->gptr()); 8737: } 8737: return __ret; 8737: } 8737: # 403 "/usr/include/c++/8/streambuf" 3 8737: int_type 8737: sungetc() 8737: { 8737: int_type __ret; 8737: if (__builtin_expect(this->eback() < this->gptr(), true)) 8737: { 8737: this->gbump(-1); 8737: __ret = traits_type::to_int_type(*this->gptr()); 8737: } 8737: else 8737: __ret = this->pbackfail(); 8737: return __ret; 8737: } 8737: # 430 "/usr/include/c++/8/streambuf" 3 8737: int_type 8737: sputc(char_type __c) 8737: { 8737: int_type __ret; 8737: if (__builtin_expect(this->pptr() < this->epptr(), true)) 8737: { 8737: *this->pptr() = __c; 8737: this->pbump(1); 8737: __ret = traits_type::to_int_type(__c); 8737: } 8737: else 8737: __ret = this->overflow(traits_type::to_int_type(__c)); 8737: return __ret; 8737: } 8737: # 456 "/usr/include/c++/8/streambuf" 3 8737: streamsize 8737: sputn(const char_type* __s, streamsize __n) 8737: { return this->xsputn(__s, __n); } 8737: 8737: protected: 8737: # 470 "/usr/include/c++/8/streambuf" 3 8737: basic_streambuf() 8737: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 8737: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 8737: _M_buf_locale(locale()) 8737: { } 8737: # 488 "/usr/include/c++/8/streambuf" 3 8737: char_type* 8737: eback() const { return _M_in_beg; } 8737: 8737: char_type* 8737: gptr() const { return _M_in_cur; } 8737: 8737: char_type* 8737: egptr() const { return _M_in_end; } 8737: # 504 "/usr/include/c++/8/streambuf" 3 8737: void 8737: gbump(int __n) { _M_in_cur += __n; } 8737: # 515 "/usr/include/c++/8/streambuf" 3 8737: void 8737: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 8737: { 8737: _M_in_beg = __gbeg; 8737: _M_in_cur = __gnext; 8737: _M_in_end = __gend; 8737: } 8737: # 535 "/usr/include/c++/8/streambuf" 3 8737: char_type* 8737: pbase() const { return _M_out_beg; } 8737: 8737: char_type* 8737: pptr() const { return _M_out_cur; } 8737: 8737: char_type* 8737: epptr() const { return _M_out_end; } 8737: # 551 "/usr/include/c++/8/streambuf" 3 8737: void 8737: pbump(int __n) { _M_out_cur += __n; } 8737: # 561 "/usr/include/c++/8/streambuf" 3 8737: void 8737: setp(char_type* __pbeg, char_type* __pend) 8737: { 8737: _M_out_beg = _M_out_cur = __pbeg; 8737: _M_out_end = __pend; 8737: } 8737: # 582 "/usr/include/c++/8/streambuf" 3 8737: virtual void 8737: imbue(const locale& __loc __attribute__ ((__unused__))) 8737: { } 8737: # 597 "/usr/include/c++/8/streambuf" 3 8737: virtual basic_streambuf* 8737: setbuf(char_type*, streamsize) 8737: { return this; } 8737: # 608 "/usr/include/c++/8/streambuf" 3 8737: virtual pos_type 8737: seekoff(off_type, ios_base::seekdir, 8737: ios_base::openmode = ios_base::in | ios_base::out) 8737: { return pos_type(off_type(-1)); } 8737: # 620 "/usr/include/c++/8/streambuf" 3 8737: virtual pos_type 8737: seekpos(pos_type, 8737: ios_base::openmode = ios_base::in | ios_base::out) 8737: { return pos_type(off_type(-1)); } 8737: # 633 "/usr/include/c++/8/streambuf" 3 8737: virtual int 8737: sync() { return 0; } 8737: # 655 "/usr/include/c++/8/streambuf" 3 8737: virtual streamsize 8737: showmanyc() { return 0; } 8737: # 671 "/usr/include/c++/8/streambuf" 3 8737: virtual streamsize 8737: xsgetn(char_type* __s, streamsize __n); 8737: # 693 "/usr/include/c++/8/streambuf" 3 8737: virtual int_type 8737: underflow() 8737: { return traits_type::eof(); } 8737: # 706 "/usr/include/c++/8/streambuf" 3 8737: virtual int_type 8737: uflow() 8737: { 8737: int_type __ret = traits_type::eof(); 8737: const bool __testeof = traits_type::eq_int_type(this->underflow(), 8737: __ret); 8737: if (!__testeof) 8737: { 8737: __ret = traits_type::to_int_type(*this->gptr()); 8737: this->gbump(1); 8737: } 8737: return __ret; 8737: } 8737: # 730 "/usr/include/c++/8/streambuf" 3 8737: virtual int_type 8737: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8737: { return traits_type::eof(); } 8737: # 748 "/usr/include/c++/8/streambuf" 3 8737: virtual streamsize 8737: xsputn(const char_type* __s, streamsize __n); 8737: # 774 "/usr/include/c++/8/streambuf" 3 8737: virtual int_type 8737: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8737: { return traits_type::eof(); } 8737: 8737: 8737: 8737: public: 8737: # 790 "/usr/include/c++/8/streambuf" 3 8737: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 8737: 8737: void 8737: stossc() 8737: { 8737: if (this->gptr() < this->egptr()) 8737: this->gbump(1); 8737: else 8737: this->uflow(); 8737: } 8737: 8737: 8737: 8737: void 8737: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 8737: 8737: void 8737: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 8737: 8737: 8737: 8737: 8737: protected: 8737: 8737: basic_streambuf(const basic_streambuf&); 8737: 8737: basic_streambuf& 8737: operator=(const basic_streambuf&); 8737: 8737: 8737: void 8737: swap(basic_streambuf& __sb) 8737: { 8737: std::swap(_M_in_beg, __sb._M_in_beg); 8737: std::swap(_M_in_cur, __sb._M_in_cur); 8737: std::swap(_M_in_end, __sb._M_in_end); 8737: std::swap(_M_out_beg, __sb._M_out_beg); 8737: std::swap(_M_out_cur, __sb._M_out_cur); 8737: std::swap(_M_out_end, __sb._M_out_end); 8737: std::swap(_M_buf_locale, __sb._M_buf_locale); 8737: } 8737: 8737: }; 8737: 8737: 8737: template 8737: std::basic_streambuf<_CharT, _Traits>:: 8737: basic_streambuf(const basic_streambuf&) = default; 8737: 8737: template 8737: std::basic_streambuf<_CharT, _Traits>& 8737: std::basic_streambuf<_CharT, _Traits>:: 8737: operator=(const basic_streambuf&) = default; 8737: 8737: 8737: 8737: template<> 8737: streamsize 8737: __copy_streambufs_eof(basic_streambuf* __sbin, 8737: basic_streambuf* __sbout, bool& __ineof); 8737: 8737: template<> 8737: streamsize 8737: __copy_streambufs_eof(basic_streambuf* __sbin, 8737: basic_streambuf* __sbout, bool& __ineof); 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: # 1 "/usr/include/c++/8/bits/streambuf.tcc" 1 3 8737: # 37 "/usr/include/c++/8/bits/streambuf.tcc" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/streambuf.tcc" 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: streamsize 8737: basic_streambuf<_CharT, _Traits>:: 8737: xsgetn(char_type* __s, streamsize __n) 8737: { 8737: streamsize __ret = 0; 8737: while (__ret < __n) 8737: { 8737: const streamsize __buf_len = this->egptr() - this->gptr(); 8737: if (__buf_len) 8737: { 8737: const streamsize __remaining = __n - __ret; 8737: const streamsize __len = std::min(__buf_len, __remaining); 8737: traits_type::copy(__s, this->gptr(), __len); 8737: __ret += __len; 8737: __s += __len; 8737: this->__safe_gbump(__len); 8737: } 8737: 8737: if (__ret < __n) 8737: { 8737: const int_type __c = this->uflow(); 8737: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8737: { 8737: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 8737: ++__ret; 8737: } 8737: else 8737: break; 8737: } 8737: } 8737: return __ret; 8737: } 8737: 8737: template 8737: streamsize 8737: basic_streambuf<_CharT, _Traits>:: 8737: xsputn(const char_type* __s, streamsize __n) 8737: { 8737: streamsize __ret = 0; 8737: while (__ret < __n) 8737: { 8737: const streamsize __buf_len = this->epptr() - this->pptr(); 8737: if (__buf_len) 8737: { 8737: const streamsize __remaining = __n - __ret; 8737: const streamsize __len = std::min(__buf_len, __remaining); 8737: traits_type::copy(this->pptr(), __s, __len); 8737: __ret += __len; 8737: __s += __len; 8737: this->__safe_pbump(__len); 8737: } 8737: 8737: if (__ret < __n) 8737: { 8737: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 8737: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8737: { 8737: ++__ret; 8737: ++__s; 8737: } 8737: else 8737: break; 8737: } 8737: } 8737: return __ret; 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: streamsize 8737: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 8737: basic_streambuf<_CharT, _Traits>* __sbout, 8737: bool& __ineof) 8737: { 8737: streamsize __ret = 0; 8737: __ineof = true; 8737: typename _Traits::int_type __c = __sbin->sgetc(); 8737: while (!_Traits::eq_int_type(__c, _Traits::eof())) 8737: { 8737: __c = __sbout->sputc(_Traits::to_char_type(__c)); 8737: if (_Traits::eq_int_type(__c, _Traits::eof())) 8737: { 8737: __ineof = false; 8737: break; 8737: } 8737: ++__ret; 8737: __c = __sbin->snextc(); 8737: } 8737: return __ret; 8737: } 8737: 8737: template 8737: inline streamsize 8737: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 8737: basic_streambuf<_CharT, _Traits>* __sbout) 8737: { 8737: bool __ineof; 8737: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 8737: } 8737: 8737: 8737: 8737: 8737: extern template class basic_streambuf; 8737: extern template 8737: streamsize 8737: __copy_streambufs(basic_streambuf*, 8737: basic_streambuf*); 8737: extern template 8737: streamsize 8737: __copy_streambufs_eof(basic_streambuf*, 8737: basic_streambuf*, bool&); 8737: 8737: 8737: extern template class basic_streambuf; 8737: extern template 8737: streamsize 8737: __copy_streambufs(basic_streambuf*, 8737: basic_streambuf*); 8737: extern template 8737: streamsize 8737: __copy_streambufs_eof(basic_streambuf*, 8737: basic_streambuf*, bool&); 8737: 8737: 8737: 8737: 8737: } 8737: # 863 "/usr/include/c++/8/streambuf" 2 3 8737: # 44 "/usr/include/c++/8/ios" 2 3 8737: # 1 "/usr/include/c++/8/bits/basic_ios.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/locale_facets.h" 1 3 8737: # 37 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: 8737: # 1 "/usr/include/c++/8/cwctype" 1 3 8737: # 39 "/usr/include/c++/8/cwctype" 3 8737: 8737: # 40 "/usr/include/c++/8/cwctype" 3 8737: # 50 "/usr/include/c++/8/cwctype" 3 8737: # 1 "/usr/include/wctype.h" 1 3 4 8737: # 38 "/usr/include/wctype.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 1 3 4 8737: # 38 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 8737: typedef unsigned long int wctype_t; 8737: # 56 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 8737: enum 8737: { 8737: __ISwupper = 0, 8737: __ISwlower = 1, 8737: __ISwalpha = 2, 8737: __ISwdigit = 3, 8737: __ISwxdigit = 4, 8737: __ISwspace = 5, 8737: __ISwprint = 6, 8737: __ISwgraph = 7, 8737: __ISwblank = 8, 8737: __ISwcntrl = 9, 8737: __ISwpunct = 10, 8737: __ISwalnum = 11, 8737: 8737: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 8737: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 8737: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 8737: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 8737: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 8737: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 8737: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 8737: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 8737: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 8737: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 8737: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 8737: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 8737: }; 8737: 8737: 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int iswalnum (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int iswalpha (wint_t __wc) throw (); 8737: 8737: 8737: extern int iswcntrl (wint_t __wc) throw (); 8737: 8737: 8737: 8737: extern int iswdigit (wint_t __wc) throw (); 8737: 8737: 8737: 8737: extern int iswgraph (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswlower (wint_t __wc) throw (); 8737: 8737: 8737: extern int iswprint (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswpunct (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswspace (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswupper (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswxdigit (wint_t __wc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int iswblank (wint_t __wc) throw (); 8737: # 155 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 8737: extern wctype_t wctype (const char *__property) throw (); 8737: 8737: 8737: 8737: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t towlower (wint_t __wc) throw (); 8737: 8737: 8737: extern wint_t towupper (wint_t __wc) throw (); 8737: 8737: } 8737: # 39 "/usr/include/wctype.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: extern "C" { 8737: 8737: 8737: 8737: typedef const __int32_t *wctrans_t; 8737: 8737: 8737: 8737: extern wctrans_t wctrans (const char *__property) throw (); 8737: 8737: 8737: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: 8737: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: 8737: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: extern wctype_t wctype_l (const char *__property, locale_t __locale) 8737: throw (); 8737: 8737: 8737: 8737: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 8737: throw (); 8737: 8737: 8737: 8737: 8737: 8737: 8737: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 8737: 8737: 8737: 8737: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 8737: throw (); 8737: 8737: 8737: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 8737: locale_t __locale) throw (); 8737: 8737: 8737: 8737: } 8737: # 51 "/usr/include/c++/8/cwctype" 2 3 8737: # 80 "/usr/include/c++/8/cwctype" 3 8737: namespace std 8737: { 8737: using ::wctrans_t; 8737: using ::wctype_t; 8737: using ::wint_t; 8737: 8737: using ::iswalnum; 8737: using ::iswalpha; 8737: 8737: using ::iswblank; 8737: 8737: using ::iswcntrl; 8737: using ::iswctype; 8737: using ::iswdigit; 8737: using ::iswgraph; 8737: using ::iswlower; 8737: using ::iswprint; 8737: using ::iswpunct; 8737: using ::iswspace; 8737: using ::iswupper; 8737: using ::iswxdigit; 8737: using ::towctrans; 8737: using ::towlower; 8737: using ::towupper; 8737: using ::wctrans; 8737: using ::wctype; 8737: } 8737: # 40 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8737: # 1 "/usr/include/c++/8/cctype" 1 3 8737: # 39 "/usr/include/c++/8/cctype" 3 8737: 8737: # 40 "/usr/include/c++/8/cctype" 3 8737: # 41 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_base.h" 1 3 8737: # 36 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_base.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: struct ctype_base 8737: { 8737: 8737: typedef const int* __to_type; 8737: 8737: 8737: 8737: typedef unsigned short mask; 8737: static const mask upper = _ISupper; 8737: static const mask lower = _ISlower; 8737: static const mask alpha = _ISalpha; 8737: static const mask digit = _ISdigit; 8737: static const mask xdigit = _ISxdigit; 8737: static const mask space = _ISspace; 8737: static const mask print = _ISprint; 8737: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 8737: static const mask cntrl = _IScntrl; 8737: static const mask punct = _ISpunct; 8737: static const mask alnum = _ISalpha | _ISdigit; 8737: 8737: static const mask blank = _ISblank; 8737: 8737: }; 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/streambuf_iterator.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 49 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8737: template 8737: class istreambuf_iterator 8737: : public iterator 8737: 8737: 8737: 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef _Traits traits_type; 8737: typedef typename _Traits::int_type int_type; 8737: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8737: typedef basic_istream<_CharT, _Traits> istream_type; 8737: 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: ostreambuf_iterator<_CharT2> >::__type 8737: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8737: ostreambuf_iterator<_CharT2>); 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: _CharT2*>::__type 8737: __copy_move_a2(istreambuf_iterator<_CharT2>, 8737: istreambuf_iterator<_CharT2>, _CharT2*); 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: istreambuf_iterator<_CharT2> >::__type 8737: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8737: const _CharT2&); 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: void>::__type 8737: advance(istreambuf_iterator<_CharT2>&, _Distance); 8737: 8737: private: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: mutable streambuf_type* _M_sbuf; 8737: int_type _M_c; 8737: 8737: public: 8737: 8737: constexpr istreambuf_iterator() noexcept 8737: : _M_sbuf(0), _M_c(traits_type::eof()) { } 8737: 8737: 8737: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 8737: 8737: ~istreambuf_iterator() = default; 8737: 8737: 8737: 8737: istreambuf_iterator(istream_type& __s) noexcept 8737: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 8737: 8737: 8737: istreambuf_iterator(streambuf_type* __s) noexcept 8737: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 8737: 8737: 8737: 8737: 8737: char_type 8737: operator*() const 8737: { 8737: int_type __c = _M_get(); 8737: # 139 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8737: return traits_type::to_char_type(__c); 8737: } 8737: 8737: 8737: istreambuf_iterator& 8737: operator++() 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: _M_sbuf->sbumpc(); 8737: _M_c = traits_type::eof(); 8737: return *this; 8737: } 8737: 8737: 8737: istreambuf_iterator 8737: operator++(int) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: istreambuf_iterator __old = *this; 8737: __old._M_c = _M_sbuf->sbumpc(); 8737: _M_c = traits_type::eof(); 8737: return __old; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: equal(const istreambuf_iterator& __b) const 8737: { return _M_at_eof() == __b._M_at_eof(); } 8737: 8737: private: 8737: int_type 8737: _M_get() const 8737: { 8737: int_type __ret = _M_c; 8737: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 8737: _M_sbuf = 0; 8737: return __ret; 8737: } 8737: 8737: bool 8737: _M_at_eof() const 8737: { return _S_is_eof(_M_get()); } 8737: 8737: static bool 8737: _S_is_eof(int_type __c) 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: return traits_type::eq_int_type(__c, __eof); 8737: } 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 8737: const istreambuf_iterator<_CharT, _Traits>& __b) 8737: { return __a.equal(__b); } 8737: 8737: template 8737: inline bool 8737: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 8737: const istreambuf_iterator<_CharT, _Traits>& __b) 8737: { return !__a.equal(__b); } 8737: 8737: 8737: template 8737: class ostreambuf_iterator 8737: : public iterator 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef _Traits traits_type; 8737: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8737: typedef basic_ostream<_CharT, _Traits> ostream_type; 8737: 8737: 8737: template 8737: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8737: ostreambuf_iterator<_CharT2> >::__type 8737: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8737: ostreambuf_iterator<_CharT2>); 8737: 8737: private: 8737: streambuf_type* _M_sbuf; 8737: bool _M_failed; 8737: 8737: public: 8737: 8737: ostreambuf_iterator(ostream_type& __s) noexcept 8737: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 8737: 8737: 8737: ostreambuf_iterator(streambuf_type* __s) noexcept 8737: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 8737: 8737: 8737: ostreambuf_iterator& 8737: operator=(_CharT __c) 8737: { 8737: if (!_M_failed && 8737: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 8737: _M_failed = true; 8737: return *this; 8737: } 8737: 8737: 8737: ostreambuf_iterator& 8737: operator*() 8737: { return *this; } 8737: 8737: 8737: ostreambuf_iterator& 8737: operator++(int) 8737: { return *this; } 8737: 8737: 8737: ostreambuf_iterator& 8737: operator++() 8737: { return *this; } 8737: 8737: 8737: bool 8737: failed() const noexcept 8737: { return _M_failed; } 8737: 8737: ostreambuf_iterator& 8737: _M_put(const _CharT* __ws, streamsize __len) 8737: { 8737: if (__builtin_expect(!_M_failed, true) 8737: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 8737: false)) 8737: _M_failed = true; 8737: return *this; 8737: } 8737: }; 8737: 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: ostreambuf_iterator<_CharT> >::__type 8737: copy(istreambuf_iterator<_CharT> __first, 8737: istreambuf_iterator<_CharT> __last, 8737: ostreambuf_iterator<_CharT> __result) 8737: { 8737: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 8737: { 8737: bool __ineof; 8737: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 8737: if (!__ineof) 8737: __result._M_failed = true; 8737: } 8737: return __result; 8737: } 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: ostreambuf_iterator<_CharT> >::__type 8737: __copy_move_a2(_CharT* __first, _CharT* __last, 8737: ostreambuf_iterator<_CharT> __result) 8737: { 8737: const streamsize __num = __last - __first; 8737: if (__num > 0) 8737: __result._M_put(__first, __num); 8737: return __result; 8737: } 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: ostreambuf_iterator<_CharT> >::__type 8737: __copy_move_a2(const _CharT* __first, const _CharT* __last, 8737: ostreambuf_iterator<_CharT> __result) 8737: { 8737: const streamsize __num = __last - __first; 8737: if (__num > 0) 8737: __result._M_put(__first, __num); 8737: return __result; 8737: } 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: _CharT*>::__type 8737: __copy_move_a2(istreambuf_iterator<_CharT> __first, 8737: istreambuf_iterator<_CharT> __last, _CharT* __result) 8737: { 8737: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8737: typedef typename __is_iterator_type::traits_type traits_type; 8737: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8737: typedef typename traits_type::int_type int_type; 8737: 8737: if (__first._M_sbuf && !__last._M_sbuf) 8737: { 8737: streambuf_type* __sb = __first._M_sbuf; 8737: int_type __c = __sb->sgetc(); 8737: while (!traits_type::eq_int_type(__c, traits_type::eof())) 8737: { 8737: const streamsize __n = __sb->egptr() - __sb->gptr(); 8737: if (__n > 1) 8737: { 8737: traits_type::copy(__result, __sb->gptr(), __n); 8737: __sb->__safe_gbump(__n); 8737: __result += __n; 8737: __c = __sb->underflow(); 8737: } 8737: else 8737: { 8737: *__result++ = traits_type::to_char_type(__c); 8737: __c = __sb->snextc(); 8737: } 8737: } 8737: } 8737: return __result; 8737: } 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: istreambuf_iterator<_CharT> >::__type 8737: find(istreambuf_iterator<_CharT> __first, 8737: istreambuf_iterator<_CharT> __last, const _CharT& __val) 8737: { 8737: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8737: typedef typename __is_iterator_type::traits_type traits_type; 8737: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8737: typedef typename traits_type::int_type int_type; 8737: const int_type __eof = traits_type::eof(); 8737: 8737: if (__first._M_sbuf && !__last._M_sbuf) 8737: { 8737: const int_type __ival = traits_type::to_int_type(__val); 8737: streambuf_type* __sb = __first._M_sbuf; 8737: int_type __c = __sb->sgetc(); 8737: while (!traits_type::eq_int_type(__c, __eof) 8737: && !traits_type::eq_int_type(__c, __ival)) 8737: { 8737: streamsize __n = __sb->egptr() - __sb->gptr(); 8737: if (__n > 1) 8737: { 8737: const _CharT* __p = traits_type::find(__sb->gptr(), 8737: __n, __val); 8737: if (__p) 8737: __n = __p - __sb->gptr(); 8737: __sb->__safe_gbump(__n); 8737: __c = __sb->sgetc(); 8737: } 8737: else 8737: __c = __sb->snextc(); 8737: } 8737: 8737: __first._M_c = __eof; 8737: } 8737: 8737: return __first; 8737: } 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8737: void>::__type 8737: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 8737: { 8737: if (__n == 0) 8737: return; 8737: 8737: ; 8737: 8737: 8737: ; 8737: 8737: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8737: typedef typename __is_iterator_type::traits_type traits_type; 8737: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8737: typedef typename traits_type::int_type int_type; 8737: const int_type __eof = traits_type::eof(); 8737: 8737: streambuf_type* __sb = __i._M_sbuf; 8737: while (__n > 0) 8737: { 8737: streamsize __size = __sb->egptr() - __sb->gptr(); 8737: if (__size > __n) 8737: { 8737: __sb->__safe_gbump(__n); 8737: break; 8737: } 8737: 8737: __sb->__safe_gbump(__size); 8737: __n -= __size; 8737: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 8737: { 8737: 8737: 8737: ; 8737: break; 8737: } 8737: } 8737: 8737: __i._M_c = __eof; 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: # 49 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 71 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template 8737: void 8737: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 8737: const __c_locale&) throw(); 8737: 8737: 8737: template<> 8737: void 8737: __convert_to_v(const char*, float&, ios_base::iostate&, 8737: const __c_locale&) throw(); 8737: 8737: template<> 8737: void 8737: __convert_to_v(const char*, double&, ios_base::iostate&, 8737: const __c_locale&) throw(); 8737: 8737: template<> 8737: void 8737: __convert_to_v(const char*, long double&, ios_base::iostate&, 8737: const __c_locale&) throw(); 8737: 8737: 8737: 8737: template 8737: struct __pad 8737: { 8737: static void 8737: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 8737: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _CharT* 8737: __add_grouping(_CharT* __s, _CharT __sep, 8737: const char* __gbeg, size_t __gsize, 8737: const _CharT* __first, const _CharT* __last); 8737: 8737: 8737: 8737: 8737: template 8737: inline 8737: ostreambuf_iterator<_CharT> 8737: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 8737: { 8737: __s._M_put(__ws, __len); 8737: return __s; 8737: } 8737: 8737: 8737: template 8737: inline 8737: _OutIter 8737: __write(_OutIter __s, const _CharT* __ws, int __len) 8737: { 8737: for (int __j = 0; __j < __len; __j++, ++__s) 8737: *__s = __ws[__j]; 8737: return __s; 8737: } 8737: # 149 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template 8737: class __ctype_abstract_base : public locale::facet, public ctype_base 8737: { 8737: public: 8737: 8737: 8737: typedef _CharT char_type; 8737: # 168 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: bool 8737: is(mask __m, char_type __c) const 8737: { return this->do_is(__m, __c); } 8737: # 185 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 8737: { return this->do_is(__lo, __hi, __vec); } 8737: # 201 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 8737: { return this->do_scan_is(__m, __lo, __hi); } 8737: # 217 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 8737: { return this->do_scan_not(__m, __lo, __hi); } 8737: # 231 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: toupper(char_type __c) const 8737: { return this->do_toupper(__c); } 8737: # 246 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: toupper(char_type *__lo, const char_type* __hi) const 8737: { return this->do_toupper(__lo, __hi); } 8737: # 260 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: tolower(char_type __c) const 8737: { return this->do_tolower(__c); } 8737: # 275 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: tolower(char_type* __lo, const char_type* __hi) const 8737: { return this->do_tolower(__lo, __hi); } 8737: # 292 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: widen(char __c) const 8737: { return this->do_widen(__c); } 8737: # 311 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char* 8737: widen(const char* __lo, const char* __hi, char_type* __to) const 8737: { return this->do_widen(__lo, __hi, __to); } 8737: # 330 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char 8737: narrow(char_type __c, char __dfault) const 8737: { return this->do_narrow(__c, __dfault); } 8737: # 352 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: narrow(const char_type* __lo, const char_type* __hi, 8737: char __dfault, char* __to) const 8737: { return this->do_narrow(__lo, __hi, __dfault, __to); } 8737: 8737: protected: 8737: explicit 8737: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 8737: 8737: virtual 8737: ~__ctype_abstract_base() { } 8737: # 377 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual bool 8737: do_is(mask __m, char_type __c) const = 0; 8737: # 396 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_is(const char_type* __lo, const char_type* __hi, 8737: mask* __vec) const = 0; 8737: # 415 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_scan_is(mask __m, const char_type* __lo, 8737: const char_type* __hi) const = 0; 8737: # 434 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_scan_not(mask __m, const char_type* __lo, 8737: const char_type* __hi) const = 0; 8737: # 452 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_toupper(char_type __c) const = 0; 8737: # 469 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 8737: # 485 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_tolower(char_type __c) const = 0; 8737: # 502 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 8737: # 521 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_widen(char __c) const = 0; 8737: # 542 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char* 8737: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 8737: # 563 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char 8737: do_narrow(char_type __c, char __dfault) const = 0; 8737: # 588 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_narrow(const char_type* __lo, const char_type* __hi, 8737: char __dfault, char* __to) const = 0; 8737: }; 8737: # 611 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template 8737: class ctype : public __ctype_abstract_base<_CharT> 8737: { 8737: public: 8737: 8737: typedef _CharT char_type; 8737: typedef typename __ctype_abstract_base<_CharT>::mask mask; 8737: 8737: 8737: static locale::id id; 8737: 8737: explicit 8737: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 8737: 8737: protected: 8737: virtual 8737: ~ctype(); 8737: 8737: virtual bool 8737: do_is(mask __m, char_type __c) const; 8737: 8737: virtual const char_type* 8737: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8737: 8737: virtual const char_type* 8737: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8737: 8737: virtual const char_type* 8737: do_scan_not(mask __m, const char_type* __lo, 8737: const char_type* __hi) const; 8737: 8737: virtual char_type 8737: do_toupper(char_type __c) const; 8737: 8737: virtual const char_type* 8737: do_toupper(char_type* __lo, const char_type* __hi) const; 8737: 8737: virtual char_type 8737: do_tolower(char_type __c) const; 8737: 8737: virtual const char_type* 8737: do_tolower(char_type* __lo, const char_type* __hi) const; 8737: 8737: virtual char_type 8737: do_widen(char __c) const; 8737: 8737: virtual const char* 8737: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 8737: 8737: virtual char 8737: do_narrow(char_type, char __dfault) const; 8737: 8737: virtual const char_type* 8737: do_narrow(const char_type* __lo, const char_type* __hi, 8737: char __dfault, char* __to) const; 8737: }; 8737: 8737: template 8737: locale::id ctype<_CharT>::id; 8737: # 680 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template<> 8737: class ctype : public locale::facet, public ctype_base 8737: { 8737: public: 8737: 8737: 8737: typedef char char_type; 8737: 8737: protected: 8737: 8737: __c_locale _M_c_locale_ctype; 8737: bool _M_del; 8737: __to_type _M_toupper; 8737: __to_type _M_tolower; 8737: const mask* _M_table; 8737: mutable char _M_widen_ok; 8737: mutable char _M_widen[1 + static_cast(-1)]; 8737: mutable char _M_narrow[1 + static_cast(-1)]; 8737: mutable char _M_narrow_ok; 8737: 8737: 8737: public: 8737: 8737: static locale::id id; 8737: 8737: static const size_t table_size = 1 + static_cast(-1); 8737: # 717 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 8737: # 730 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 8737: size_t __refs = 0); 8737: # 743 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: inline bool 8737: is(mask __m, char __c) const; 8737: # 758 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: inline const char* 8737: is(const char* __lo, const char* __hi, mask* __vec) const; 8737: # 772 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: inline const char* 8737: scan_is(mask __m, const char* __lo, const char* __hi) const; 8737: # 786 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: inline const char* 8737: scan_not(mask __m, const char* __lo, const char* __hi) const; 8737: # 801 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: toupper(char_type __c) const 8737: { return this->do_toupper(__c); } 8737: # 818 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: toupper(char_type *__lo, const char_type* __hi) const 8737: { return this->do_toupper(__lo, __hi); } 8737: # 834 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: tolower(char_type __c) const 8737: { return this->do_tolower(__c); } 8737: # 851 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: tolower(char_type* __lo, const char_type* __hi) const 8737: { return this->do_tolower(__lo, __hi); } 8737: # 871 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: widen(char __c) const 8737: { 8737: if (_M_widen_ok) 8737: return _M_widen[static_cast(__c)]; 8737: this->_M_widen_init(); 8737: return this->do_widen(__c); 8737: } 8737: # 898 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char* 8737: widen(const char* __lo, const char* __hi, char_type* __to) const 8737: { 8737: if (_M_widen_ok == 1) 8737: { 8737: __builtin_memcpy(__to, __lo, __hi - __lo); 8737: return __hi; 8737: } 8737: if (!_M_widen_ok) 8737: _M_widen_init(); 8737: return this->do_widen(__lo, __hi, __to); 8737: } 8737: # 929 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char 8737: narrow(char_type __c, char __dfault) const 8737: { 8737: if (_M_narrow[static_cast(__c)]) 8737: return _M_narrow[static_cast(__c)]; 8737: const char __t = do_narrow(__c, __dfault); 8737: if (__t != __dfault) 8737: _M_narrow[static_cast(__c)] = __t; 8737: return __t; 8737: } 8737: # 962 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: const char_type* 8737: narrow(const char_type* __lo, const char_type* __hi, 8737: char __dfault, char* __to) const 8737: { 8737: if (__builtin_expect(_M_narrow_ok == 1, true)) 8737: { 8737: __builtin_memcpy(__to, __lo, __hi - __lo); 8737: return __hi; 8737: } 8737: if (!_M_narrow_ok) 8737: _M_narrow_init(); 8737: return this->do_narrow(__lo, __hi, __dfault, __to); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const mask* 8737: table() const throw() 8737: { return _M_table; } 8737: 8737: 8737: static const mask* 8737: classic_table() throw(); 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual 8737: ~ctype(); 8737: # 1011 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_toupper(char_type __c) const; 8737: # 1028 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_toupper(char_type* __lo, const char_type* __hi) const; 8737: # 1044 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_tolower(char_type __c) const; 8737: # 1061 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_tolower(char_type* __lo, const char_type* __hi) const; 8737: # 1081 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_widen(char __c) const 8737: { return __c; } 8737: # 1104 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char* 8737: do_widen(const char* __lo, const char* __hi, char_type* __to) const 8737: { 8737: __builtin_memcpy(__to, __lo, __hi - __lo); 8737: return __hi; 8737: } 8737: # 1130 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char 8737: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 8737: { return __c; } 8737: # 1156 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_narrow(const char_type* __lo, const char_type* __hi, 8737: char __dfault __attribute__((__unused__)), char* __to) const 8737: { 8737: __builtin_memcpy(__to, __lo, __hi - __lo); 8737: return __hi; 8737: } 8737: 8737: private: 8737: void _M_narrow_init() const; 8737: void _M_widen_init() const; 8737: }; 8737: # 1181 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template<> 8737: class ctype : public __ctype_abstract_base 8737: { 8737: public: 8737: 8737: 8737: typedef wchar_t char_type; 8737: typedef wctype_t __wmask_type; 8737: 8737: protected: 8737: __c_locale _M_c_locale_ctype; 8737: 8737: 8737: bool _M_narrow_ok; 8737: char _M_narrow[128]; 8737: wint_t _M_widen[1 + static_cast(-1)]; 8737: 8737: 8737: mask _M_bit[16]; 8737: __wmask_type _M_wmask[16]; 8737: 8737: public: 8737: 8737: 8737: static locale::id id; 8737: # 1214 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: ctype(size_t __refs = 0); 8737: # 1225 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: ctype(__c_locale __cloc, size_t __refs = 0); 8737: 8737: protected: 8737: __wmask_type 8737: _M_convert_to_wmask(const mask __m) const throw(); 8737: 8737: 8737: virtual 8737: ~ctype(); 8737: # 1249 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual bool 8737: do_is(mask __m, char_type __c) const; 8737: # 1268 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8737: # 1286 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8737: # 1304 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_scan_not(mask __m, const char_type* __lo, 8737: const char_type* __hi) const; 8737: # 1321 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_toupper(char_type __c) const; 8737: # 1338 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_toupper(char_type* __lo, const char_type* __hi) const; 8737: # 1354 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_tolower(char_type __c) const; 8737: # 1371 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_tolower(char_type* __lo, const char_type* __hi) const; 8737: # 1391 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_widen(char __c) const; 8737: # 1413 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char* 8737: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 8737: # 1436 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char 8737: do_narrow(char_type __c, char __dfault) const; 8737: # 1462 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual const char_type* 8737: do_narrow(const char_type* __lo, const char_type* __hi, 8737: char __dfault, char* __to) const; 8737: 8737: 8737: void 8737: _M_initialize_ctype() throw(); 8737: }; 8737: 8737: 8737: 8737: template 8737: class ctype_byname : public ctype<_CharT> 8737: { 8737: public: 8737: typedef typename ctype<_CharT>::mask mask; 8737: 8737: explicit 8737: ctype_byname(const char* __s, size_t __refs = 0); 8737: 8737: 8737: explicit 8737: ctype_byname(const string& __s, size_t __refs = 0) 8737: : ctype_byname(__s.c_str(), __refs) { } 8737: 8737: 8737: protected: 8737: virtual 8737: ~ctype_byname() { } 8737: }; 8737: 8737: 8737: template<> 8737: class ctype_byname : public ctype 8737: { 8737: public: 8737: explicit 8737: ctype_byname(const char* __s, size_t __refs = 0); 8737: 8737: 8737: explicit 8737: ctype_byname(const string& __s, size_t __refs = 0); 8737: 8737: 8737: protected: 8737: virtual 8737: ~ctype_byname(); 8737: }; 8737: 8737: 8737: template<> 8737: class ctype_byname : public ctype 8737: { 8737: public: 8737: explicit 8737: ctype_byname(const char* __s, size_t __refs = 0); 8737: 8737: 8737: explicit 8737: ctype_byname(const string& __s, size_t __refs = 0); 8737: 8737: 8737: protected: 8737: virtual 8737: ~ctype_byname(); 8737: }; 8737: 8737: 8737: 8737: } 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_inline.h" 1 3 8737: # 37 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_inline.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: bool 8737: ctype:: 8737: is(mask __m, char __c) const 8737: { return _M_table[static_cast(__c)] & __m; } 8737: 8737: const char* 8737: ctype:: 8737: is(const char* __low, const char* __high, mask* __vec) const 8737: { 8737: while (__low < __high) 8737: *__vec++ = _M_table[static_cast(*__low++)]; 8737: return __high; 8737: } 8737: 8737: const char* 8737: ctype:: 8737: scan_is(mask __m, const char* __low, const char* __high) const 8737: { 8737: while (__low < __high 8737: && !(_M_table[static_cast(*__low)] & __m)) 8737: ++__low; 8737: return __low; 8737: } 8737: 8737: const char* 8737: ctype:: 8737: scan_not(mask __m, const char* __low, const char* __high) const 8737: { 8737: while (__low < __high 8737: && (_M_table[static_cast(*__low)] & __m) != 0) 8737: ++__low; 8737: return __low; 8737: } 8737: 8737: 8737: } 8737: # 1535 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: class __num_base 8737: { 8737: public: 8737: 8737: 8737: enum 8737: { 8737: _S_ominus, 8737: _S_oplus, 8737: _S_ox, 8737: _S_oX, 8737: _S_odigits, 8737: _S_odigits_end = _S_odigits + 16, 8737: _S_oudigits = _S_odigits_end, 8737: _S_oudigits_end = _S_oudigits + 16, 8737: _S_oe = _S_odigits + 14, 8737: _S_oE = _S_oudigits + 14, 8737: _S_oend = _S_oudigits_end 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: static const char* _S_atoms_out; 8737: 8737: 8737: 8737: static const char* _S_atoms_in; 8737: 8737: enum 8737: { 8737: _S_iminus, 8737: _S_iplus, 8737: _S_ix, 8737: _S_iX, 8737: _S_izero, 8737: _S_ie = _S_izero + 14, 8737: _S_iE = _S_izero + 20, 8737: _S_iend = 26 8737: }; 8737: 8737: 8737: 8737: static void 8737: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 8737: }; 8737: 8737: template 8737: struct __numpunct_cache : public locale::facet 8737: { 8737: const char* _M_grouping; 8737: size_t _M_grouping_size; 8737: bool _M_use_grouping; 8737: const _CharT* _M_truename; 8737: size_t _M_truename_size; 8737: const _CharT* _M_falsename; 8737: size_t _M_falsename_size; 8737: _CharT _M_decimal_point; 8737: _CharT _M_thousands_sep; 8737: 8737: 8737: 8737: 8737: 8737: _CharT _M_atoms_out[__num_base::_S_oend]; 8737: 8737: 8737: 8737: 8737: 8737: _CharT _M_atoms_in[__num_base::_S_iend]; 8737: 8737: bool _M_allocated; 8737: 8737: __numpunct_cache(size_t __refs = 0) 8737: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 8737: _M_use_grouping(false), 8737: _M_truename(0), _M_truename_size(0), _M_falsename(0), 8737: _M_falsename_size(0), _M_decimal_point(_CharT()), 8737: _M_thousands_sep(_CharT()), _M_allocated(false) 8737: { } 8737: 8737: ~__numpunct_cache(); 8737: 8737: void 8737: _M_cache(const locale& __loc); 8737: 8737: private: 8737: __numpunct_cache& 8737: operator=(const __numpunct_cache&); 8737: 8737: explicit 8737: __numpunct_cache(const __numpunct_cache&); 8737: }; 8737: 8737: template 8737: __numpunct_cache<_CharT>::~__numpunct_cache() 8737: { 8737: if (_M_allocated) 8737: { 8737: delete [] _M_grouping; 8737: delete [] _M_truename; 8737: delete [] _M_falsename; 8737: } 8737: } 8737: 8737: namespace __cxx11 { 8737: # 1665 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template 8737: class numpunct : public locale::facet 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef basic_string<_CharT> string_type; 8737: 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: 8737: protected: 8737: __cache_type* _M_data; 8737: 8737: public: 8737: 8737: static locale::id id; 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: numpunct(size_t __refs = 0) 8737: : facet(__refs), _M_data(0) 8737: { _M_initialize_numpunct(); } 8737: # 1703 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: numpunct(__cache_type* __cache, size_t __refs = 0) 8737: : facet(__refs), _M_data(__cache) 8737: { _M_initialize_numpunct(); } 8737: # 1717 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: numpunct(__c_locale __cloc, size_t __refs = 0) 8737: : facet(__refs), _M_data(0) 8737: { _M_initialize_numpunct(__cloc); } 8737: # 1731 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: decimal_point() const 8737: { return this->do_decimal_point(); } 8737: # 1744 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: char_type 8737: thousands_sep() const 8737: { return this->do_thousands_sep(); } 8737: # 1775 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: string 8737: grouping() const 8737: { return this->do_grouping(); } 8737: # 1788 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: string_type 8737: truename() const 8737: { return this->do_truename(); } 8737: # 1801 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: string_type 8737: falsename() const 8737: { return this->do_falsename(); } 8737: 8737: protected: 8737: 8737: virtual 8737: ~numpunct(); 8737: # 1818 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_decimal_point() const 8737: { return _M_data->_M_decimal_point; } 8737: # 1830 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual char_type 8737: do_thousands_sep() const 8737: { return _M_data->_M_thousands_sep; } 8737: # 1843 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual string 8737: do_grouping() const 8737: { return _M_data->_M_grouping; } 8737: # 1856 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual string_type 8737: do_truename() const 8737: { return _M_data->_M_truename; } 8737: # 1869 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual string_type 8737: do_falsename() const 8737: { return _M_data->_M_falsename; } 8737: 8737: 8737: void 8737: _M_initialize_numpunct(__c_locale __cloc = 0); 8737: }; 8737: 8737: template 8737: locale::id numpunct<_CharT>::id; 8737: 8737: template<> 8737: numpunct::~numpunct(); 8737: 8737: template<> 8737: void 8737: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8737: 8737: 8737: template<> 8737: numpunct::~numpunct(); 8737: 8737: template<> 8737: void 8737: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8737: 8737: 8737: 8737: template 8737: class numpunct_byname : public numpunct<_CharT> 8737: { 8737: public: 8737: typedef _CharT char_type; 8737: typedef basic_string<_CharT> string_type; 8737: 8737: explicit 8737: numpunct_byname(const char* __s, size_t __refs = 0) 8737: : numpunct<_CharT>(__refs) 8737: { 8737: if (__builtin_strcmp(__s, "C") != 0 8737: && __builtin_strcmp(__s, "POSIX") != 0) 8737: { 8737: __c_locale __tmp; 8737: this->_S_create_c_locale(__tmp, __s); 8737: this->_M_initialize_numpunct(__tmp); 8737: this->_S_destroy_c_locale(__tmp); 8737: } 8737: } 8737: 8737: 8737: explicit 8737: numpunct_byname(const string& __s, size_t __refs = 0) 8737: : numpunct_byname(__s.c_str(), __refs) { } 8737: 8737: 8737: protected: 8737: virtual 8737: ~numpunct_byname() { } 8737: }; 8737: 8737: } 8737: 8737: 8737: # 1947 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template 8737: class num_get : public locale::facet 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef _InIter iter_type; 8737: 8737: 8737: 8737: static locale::id id; 8737: # 1968 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: num_get(size_t __refs = 0) : facet(__refs) { } 8737: # 1994 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, bool& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: # 2031 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, long& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned short& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned int& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned long& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, long long& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned long long& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: # 2091 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, float& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, double& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, long double& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: # 2134 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: get(iter_type __in, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, void*& __v) const 8737: { return this->do_get(__in, __end, __io, __err, __v); } 8737: 8737: protected: 8737: 8737: virtual ~num_get() { } 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iter_type 8737: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 8737: string&) const; 8737: 8737: template 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iter_type 8737: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 8737: _ValueT&) const; 8737: 8737: template 8737: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 8737: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 8737: { 8737: int __ret = -1; 8737: if (__len <= 10) 8737: { 8737: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 8737: __ret = __c - _CharT2('0'); 8737: } 8737: else 8737: { 8737: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 8737: __ret = __c - _CharT2('0'); 8737: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 8737: __ret = 10 + (__c - _CharT2('a')); 8737: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 8737: __ret = 10 + (__c - _CharT2('A')); 8737: } 8737: return __ret; 8737: } 8737: 8737: template 8737: typename __gnu_cxx::__enable_if::__value, 8737: int>::__type 8737: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 8737: { 8737: int __ret = -1; 8737: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 8737: if (__q) 8737: { 8737: __ret = __q - __zero; 8737: if (__ret > 15) 8737: __ret -= 6; 8737: } 8737: return __ret; 8737: } 8737: # 2207 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual iter_type 8737: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 8737: 8737: virtual iter_type 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, long& __v) const 8737: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8737: 8737: virtual iter_type 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned short& __v) const 8737: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8737: 8737: virtual iter_type 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned int& __v) const 8737: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8737: 8737: virtual iter_type 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned long& __v) const 8737: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8737: 8737: 8737: virtual iter_type 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, long long& __v) const 8737: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8737: 8737: virtual iter_type 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, unsigned long long& __v) const 8737: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8737: 8737: 8737: virtual iter_type 8737: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 8737: 8737: virtual iter_type 8737: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8737: double&) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual iter_type 8737: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8737: long double&) const; 8737: 8737: 8737: virtual iter_type 8737: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 8737: # 2270 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: }; 8737: 8737: template 8737: locale::id num_get<_CharT, _InIter>::id; 8737: # 2288 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: template 8737: class num_put : public locale::facet 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef _OutIter iter_type; 8737: 8737: 8737: 8737: static locale::id id; 8737: # 2309 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: explicit 8737: num_put(size_t __refs = 0) : facet(__refs) { } 8737: # 2327 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: # 2369 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, 8737: unsigned long __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: 8737: 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, 8737: unsigned long long __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: # 2432 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, 8737: long double __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: # 2457 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: iter_type 8737: put(iter_type __s, ios_base& __io, char_type __fill, 8737: const void* __v) const 8737: { return this->do_put(__s, __io, __fill, __v); } 8737: 8737: protected: 8737: template 8737: iter_type 8737: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 8737: char __mod, _ValueT __v) const; 8737: 8737: void 8737: _M_group_float(const char* __grouping, size_t __grouping_size, 8737: char_type __sep, const char_type* __p, char_type* __new, 8737: char_type* __cs, int& __len) const; 8737: 8737: template 8737: iter_type 8737: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 8737: _ValueT __v) const; 8737: 8737: void 8737: _M_group_int(const char* __grouping, size_t __grouping_size, 8737: char_type __sep, ios_base& __io, char_type* __new, 8737: char_type* __cs, int& __len) const; 8737: 8737: void 8737: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 8737: char_type* __new, const char_type* __cs, int& __len) const; 8737: 8737: 8737: virtual 8737: ~num_put() { } 8737: # 2505 "/usr/include/c++/8/bits/locale_facets.h" 3 8737: virtual iter_type 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 8737: 8737: virtual iter_type 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8737: { return _M_insert_int(__s, __io, __fill, __v); } 8737: 8737: virtual iter_type 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, 8737: unsigned long __v) const 8737: { return _M_insert_int(__s, __io, __fill, __v); } 8737: 8737: 8737: virtual iter_type 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, 8737: long long __v) const 8737: { return _M_insert_int(__s, __io, __fill, __v); } 8737: 8737: virtual iter_type 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, 8737: unsigned long long __v) const 8737: { return _M_insert_int(__s, __io, __fill, __v); } 8737: 8737: 8737: virtual iter_type 8737: do_put(iter_type, ios_base&, char_type, double) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual iter_type 8737: do_put(iter_type, ios_base&, char_type, long double) const; 8737: 8737: 8737: virtual iter_type 8737: do_put(iter_type, ios_base&, char_type, const void*) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: template 8737: locale::id num_put<_CharT, _OutIter>::id; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: isspace(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::space, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isprint(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::print, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: iscntrl(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isupper(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::upper, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: islower(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::lower, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isalpha(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isdigit(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::digit, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: ispunct(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::punct, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isxdigit(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isalnum(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 8737: 8737: 8737: template 8737: inline bool 8737: isgraph(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::graph, __c); } 8737: 8737: 8737: 8737: template 8737: inline bool 8737: isblank(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).is(ctype_base::blank, __c); } 8737: 8737: 8737: 8737: template 8737: inline _CharT 8737: toupper(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).toupper(__c); } 8737: 8737: 8737: template 8737: inline _CharT 8737: tolower(_CharT __c, const locale& __loc) 8737: { return use_facet >(__loc).tolower(__c); } 8737: 8737: 8737: } 8737: 8737: # 1 "/usr/include/c++/8/bits/locale_facets.tcc" 1 3 8737: # 33 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: struct __use_cache 8737: { 8737: const _Facet* 8737: operator() (const locale& __loc) const; 8737: }; 8737: 8737: 8737: template 8737: struct __use_cache<__numpunct_cache<_CharT> > 8737: { 8737: const __numpunct_cache<_CharT>* 8737: operator() (const locale& __loc) const 8737: { 8737: const size_t __i = numpunct<_CharT>::id._M_id(); 8737: const locale::facet** __caches = __loc._M_impl->_M_caches; 8737: if (!__caches[__i]) 8737: { 8737: __numpunct_cache<_CharT>* __tmp = 0; 8737: try 8737: { 8737: __tmp = new __numpunct_cache<_CharT>; 8737: __tmp->_M_cache(__loc); 8737: } 8737: catch(...) 8737: { 8737: delete __tmp; 8737: throw; 8737: } 8737: __loc._M_impl->_M_install_cache(__tmp, __i); 8737: } 8737: return static_cast*>(__caches[__i]); 8737: } 8737: }; 8737: 8737: template 8737: void 8737: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 8737: { 8737: const numpunct<_CharT>& __np = use_facet >(__loc); 8737: 8737: char* __grouping = 0; 8737: _CharT* __truename = 0; 8737: _CharT* __falsename = 0; 8737: try 8737: { 8737: const string& __g = __np.grouping(); 8737: _M_grouping_size = __g.size(); 8737: __grouping = new char[_M_grouping_size]; 8737: __g.copy(__grouping, _M_grouping_size); 8737: _M_use_grouping = (_M_grouping_size 8737: && static_cast(__grouping[0]) > 0 8737: && (__grouping[0] 8737: != __gnu_cxx::__numeric_traits::__max)); 8737: 8737: const basic_string<_CharT>& __tn = __np.truename(); 8737: _M_truename_size = __tn.size(); 8737: __truename = new _CharT[_M_truename_size]; 8737: __tn.copy(__truename, _M_truename_size); 8737: 8737: const basic_string<_CharT>& __fn = __np.falsename(); 8737: _M_falsename_size = __fn.size(); 8737: __falsename = new _CharT[_M_falsename_size]; 8737: __fn.copy(__falsename, _M_falsename_size); 8737: 8737: _M_decimal_point = __np.decimal_point(); 8737: _M_thousands_sep = __np.thousands_sep(); 8737: 8737: const ctype<_CharT>& __ct = use_facet >(__loc); 8737: __ct.widen(__num_base::_S_atoms_out, 8737: __num_base::_S_atoms_out 8737: + __num_base::_S_oend, _M_atoms_out); 8737: __ct.widen(__num_base::_S_atoms_in, 8737: __num_base::_S_atoms_in 8737: + __num_base::_S_iend, _M_atoms_in); 8737: 8737: _M_grouping = __grouping; 8737: _M_truename = __truename; 8737: _M_falsename = __falsename; 8737: _M_allocated = true; 8737: } 8737: catch(...) 8737: { 8737: delete [] __grouping; 8737: delete [] __truename; 8737: delete [] __falsename; 8737: throw; 8737: } 8737: } 8737: # 139 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: __attribute__ ((__pure__)) bool 8737: __verify_grouping(const char* __grouping, size_t __grouping_size, 8737: const string& __grouping_tmp) throw (); 8737: 8737: 8737: 8737: template 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 8737: ios_base::iostate& __err, string& __xtrc) const 8737: { 8737: typedef char_traits<_CharT> __traits_type; 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: __use_cache<__cache_type> __uc; 8737: const locale& __loc = __io._M_getloc(); 8737: const __cache_type* __lc = __uc(__loc); 8737: const _CharT* __lit = __lc->_M_atoms_in; 8737: char_type __c = char_type(); 8737: 8737: 8737: bool __testeof = __beg == __end; 8737: 8737: 8737: if (!__testeof) 8737: { 8737: __c = *__beg; 8737: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8737: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8737: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8737: && !(__c == __lc->_M_decimal_point)) 8737: { 8737: __xtrc += __plus ? '+' : '-'; 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: } 8737: 8737: 8737: bool __found_mantissa = false; 8737: int __sep_pos = 0; 8737: while (!__testeof) 8737: { 8737: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8737: || __c == __lc->_M_decimal_point) 8737: break; 8737: else if (__c == __lit[__num_base::_S_izero]) 8737: { 8737: if (!__found_mantissa) 8737: { 8737: __xtrc += '0'; 8737: __found_mantissa = true; 8737: } 8737: ++__sep_pos; 8737: 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: else 8737: break; 8737: } 8737: 8737: 8737: bool __found_dec = false; 8737: bool __found_sci = false; 8737: string __found_grouping; 8737: if (__lc->_M_use_grouping) 8737: __found_grouping.reserve(32); 8737: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8737: 8737: if (!__lc->_M_allocated) 8737: 8737: while (!__testeof) 8737: { 8737: const int __digit = _M_find(__lit_zero, 10, __c); 8737: if (__digit != -1) 8737: { 8737: __xtrc += '0' + __digit; 8737: __found_mantissa = true; 8737: } 8737: else if (__c == __lc->_M_decimal_point 8737: && !__found_dec && !__found_sci) 8737: { 8737: __xtrc += '.'; 8737: __found_dec = true; 8737: } 8737: else if ((__c == __lit[__num_base::_S_ie] 8737: || __c == __lit[__num_base::_S_iE]) 8737: && !__found_sci && __found_mantissa) 8737: { 8737: 8737: __xtrc += 'e'; 8737: __found_sci = true; 8737: 8737: 8737: if (++__beg != __end) 8737: { 8737: __c = *__beg; 8737: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8737: if (__plus || __c == __lit[__num_base::_S_iminus]) 8737: __xtrc += __plus ? '+' : '-'; 8737: else 8737: continue; 8737: } 8737: else 8737: { 8737: __testeof = true; 8737: break; 8737: } 8737: } 8737: else 8737: break; 8737: 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: else 8737: while (!__testeof) 8737: { 8737: 8737: 8737: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8737: { 8737: if (!__found_dec && !__found_sci) 8737: { 8737: 8737: 8737: if (__sep_pos) 8737: { 8737: __found_grouping += static_cast(__sep_pos); 8737: __sep_pos = 0; 8737: } 8737: else 8737: { 8737: 8737: 8737: __xtrc.clear(); 8737: break; 8737: } 8737: } 8737: else 8737: break; 8737: } 8737: else if (__c == __lc->_M_decimal_point) 8737: { 8737: if (!__found_dec && !__found_sci) 8737: { 8737: 8737: 8737: 8737: if (__found_grouping.size()) 8737: __found_grouping += static_cast(__sep_pos); 8737: __xtrc += '.'; 8737: __found_dec = true; 8737: } 8737: else 8737: break; 8737: } 8737: else 8737: { 8737: const char_type* __q = 8737: __traits_type::find(__lit_zero, 10, __c); 8737: if (__q) 8737: { 8737: __xtrc += '0' + (__q - __lit_zero); 8737: __found_mantissa = true; 8737: ++__sep_pos; 8737: } 8737: else if ((__c == __lit[__num_base::_S_ie] 8737: || __c == __lit[__num_base::_S_iE]) 8737: && !__found_sci && __found_mantissa) 8737: { 8737: 8737: if (__found_grouping.size() && !__found_dec) 8737: __found_grouping += static_cast(__sep_pos); 8737: __xtrc += 'e'; 8737: __found_sci = true; 8737: 8737: 8737: if (++__beg != __end) 8737: { 8737: __c = *__beg; 8737: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8737: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8737: && !(__lc->_M_use_grouping 8737: && __c == __lc->_M_thousands_sep) 8737: && !(__c == __lc->_M_decimal_point)) 8737: __xtrc += __plus ? '+' : '-'; 8737: else 8737: continue; 8737: } 8737: else 8737: { 8737: __testeof = true; 8737: break; 8737: } 8737: } 8737: else 8737: break; 8737: } 8737: 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: 8737: 8737: 8737: if (__found_grouping.size()) 8737: { 8737: 8737: if (!__found_dec && !__found_sci) 8737: __found_grouping += static_cast(__sep_pos); 8737: 8737: if (!std::__verify_grouping(__lc->_M_grouping, 8737: __lc->_M_grouping_size, 8737: __found_grouping)) 8737: __err = ios_base::failbit; 8737: } 8737: 8737: return __beg; 8737: } 8737: 8737: template 8737: template 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 8737: ios_base::iostate& __err, _ValueT& __v) const 8737: { 8737: typedef char_traits<_CharT> __traits_type; 8737: using __gnu_cxx::__add_unsigned; 8737: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: __use_cache<__cache_type> __uc; 8737: const locale& __loc = __io._M_getloc(); 8737: const __cache_type* __lc = __uc(__loc); 8737: const _CharT* __lit = __lc->_M_atoms_in; 8737: char_type __c = char_type(); 8737: 8737: 8737: const ios_base::fmtflags __basefield = __io.flags() 8737: & ios_base::basefield; 8737: const bool __oct = __basefield == ios_base::oct; 8737: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 8737: 8737: 8737: bool __testeof = __beg == __end; 8737: 8737: 8737: bool __negative = false; 8737: if (!__testeof) 8737: { 8737: __c = *__beg; 8737: __negative = __c == __lit[__num_base::_S_iminus]; 8737: if ((__negative || __c == __lit[__num_base::_S_iplus]) 8737: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8737: && !(__c == __lc->_M_decimal_point)) 8737: { 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: } 8737: 8737: 8737: 8737: bool __found_zero = false; 8737: int __sep_pos = 0; 8737: while (!__testeof) 8737: { 8737: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8737: || __c == __lc->_M_decimal_point) 8737: break; 8737: else if (__c == __lit[__num_base::_S_izero] 8737: && (!__found_zero || __base == 10)) 8737: { 8737: __found_zero = true; 8737: ++__sep_pos; 8737: if (__basefield == 0) 8737: __base = 8; 8737: if (__base == 8) 8737: __sep_pos = 0; 8737: } 8737: else if (__found_zero 8737: && (__c == __lit[__num_base::_S_ix] 8737: || __c == __lit[__num_base::_S_iX])) 8737: { 8737: if (__basefield == 0) 8737: __base = 16; 8737: if (__base == 16) 8737: { 8737: __found_zero = false; 8737: __sep_pos = 0; 8737: } 8737: else 8737: break; 8737: } 8737: else 8737: break; 8737: 8737: if (++__beg != __end) 8737: { 8737: __c = *__beg; 8737: if (!__found_zero) 8737: break; 8737: } 8737: else 8737: __testeof = true; 8737: } 8737: 8737: 8737: 8737: const size_t __len = (__base == 16 ? __num_base::_S_iend 8737: - __num_base::_S_izero : __base); 8737: 8737: 8737: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 8737: string __found_grouping; 8737: if (__lc->_M_use_grouping) 8737: __found_grouping.reserve(32); 8737: bool __testfail = false; 8737: bool __testoverflow = false; 8737: const __unsigned_type __max = 8737: (__negative && __num_traits::__is_signed) 8737: ? -static_cast<__unsigned_type>(__num_traits::__min) 8737: : __num_traits::__max; 8737: const __unsigned_type __smax = __max / __base; 8737: __unsigned_type __result = 0; 8737: int __digit = 0; 8737: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8737: 8737: if (!__lc->_M_allocated) 8737: 8737: while (!__testeof) 8737: { 8737: __digit = _M_find(__lit_zero, __len, __c); 8737: if (__digit == -1) 8737: break; 8737: 8737: if (__result > __smax) 8737: __testoverflow = true; 8737: else 8737: { 8737: __result *= __base; 8737: __testoverflow |= __result > __max - __digit; 8737: __result += __digit; 8737: ++__sep_pos; 8737: } 8737: 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: else 8737: while (!__testeof) 8737: { 8737: 8737: 8737: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8737: { 8737: 8737: 8737: if (__sep_pos) 8737: { 8737: __found_grouping += static_cast(__sep_pos); 8737: __sep_pos = 0; 8737: } 8737: else 8737: { 8737: __testfail = true; 8737: break; 8737: } 8737: } 8737: else if (__c == __lc->_M_decimal_point) 8737: break; 8737: else 8737: { 8737: const char_type* __q = 8737: __traits_type::find(__lit_zero, __len, __c); 8737: if (!__q) 8737: break; 8737: 8737: __digit = __q - __lit_zero; 8737: if (__digit > 15) 8737: __digit -= 6; 8737: if (__result > __smax) 8737: __testoverflow = true; 8737: else 8737: { 8737: __result *= __base; 8737: __testoverflow |= __result > __max - __digit; 8737: __result += __digit; 8737: ++__sep_pos; 8737: } 8737: } 8737: 8737: if (++__beg != __end) 8737: __c = *__beg; 8737: else 8737: __testeof = true; 8737: } 8737: 8737: 8737: 8737: if (__found_grouping.size()) 8737: { 8737: 8737: __found_grouping += static_cast(__sep_pos); 8737: 8737: if (!std::__verify_grouping(__lc->_M_grouping, 8737: __lc->_M_grouping_size, 8737: __found_grouping)) 8737: __err = ios_base::failbit; 8737: } 8737: 8737: 8737: 8737: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 8737: || __testfail) 8737: { 8737: __v = 0; 8737: __err = ios_base::failbit; 8737: } 8737: else if (__testoverflow) 8737: { 8737: if (__negative && __num_traits::__is_signed) 8737: __v = __num_traits::__min; 8737: else 8737: __v = __num_traits::__max; 8737: __err = ios_base::failbit; 8737: } 8737: else 8737: __v = __negative ? -__result : __result; 8737: 8737: if (__testeof) 8737: __err |= ios_base::eofbit; 8737: return __beg; 8737: } 8737: 8737: 8737: 8737: template 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, bool& __v) const 8737: { 8737: if (!(__io.flags() & ios_base::boolalpha)) 8737: { 8737: 8737: 8737: 8737: long __l = -1; 8737: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 8737: if (__l == 0 || __l == 1) 8737: __v = bool(__l); 8737: else 8737: { 8737: 8737: 8737: __v = true; 8737: __err = ios_base::failbit; 8737: if (__beg == __end) 8737: __err |= ios_base::eofbit; 8737: } 8737: } 8737: else 8737: { 8737: 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: __use_cache<__cache_type> __uc; 8737: const locale& __loc = __io._M_getloc(); 8737: const __cache_type* __lc = __uc(__loc); 8737: 8737: bool __testf = true; 8737: bool __testt = true; 8737: bool __donef = __lc->_M_falsename_size == 0; 8737: bool __donet = __lc->_M_truename_size == 0; 8737: bool __testeof = false; 8737: size_t __n = 0; 8737: while (!__donef || !__donet) 8737: { 8737: if (__beg == __end) 8737: { 8737: __testeof = true; 8737: break; 8737: } 8737: 8737: const char_type __c = *__beg; 8737: 8737: if (!__donef) 8737: __testf = __c == __lc->_M_falsename[__n]; 8737: 8737: if (!__testf && __donet) 8737: break; 8737: 8737: if (!__donet) 8737: __testt = __c == __lc->_M_truename[__n]; 8737: 8737: if (!__testt && __donef) 8737: break; 8737: 8737: if (!__testt && !__testf) 8737: break; 8737: 8737: ++__n; 8737: ++__beg; 8737: 8737: __donef = !__testf || __n >= __lc->_M_falsename_size; 8737: __donet = !__testt || __n >= __lc->_M_truename_size; 8737: } 8737: if (__testf && __n == __lc->_M_falsename_size && __n) 8737: { 8737: __v = false; 8737: if (__testt && __n == __lc->_M_truename_size) 8737: __err = ios_base::failbit; 8737: else 8737: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8737: } 8737: else if (__testt && __n == __lc->_M_truename_size && __n) 8737: { 8737: __v = true; 8737: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8737: } 8737: else 8737: { 8737: 8737: 8737: __v = false; 8737: __err = ios_base::failbit; 8737: if (__testeof) 8737: __err |= ios_base::eofbit; 8737: } 8737: } 8737: return __beg; 8737: } 8737: 8737: template 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, float& __v) const 8737: { 8737: string __xtrc; 8737: __xtrc.reserve(32); 8737: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8737: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8737: if (__beg == __end) 8737: __err |= ios_base::eofbit; 8737: return __beg; 8737: } 8737: 8737: template 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, double& __v) const 8737: { 8737: string __xtrc; 8737: __xtrc.reserve(32); 8737: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8737: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8737: if (__beg == __end) 8737: __err |= ios_base::eofbit; 8737: return __beg; 8737: } 8737: # 735 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: template 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, long double& __v) const 8737: { 8737: string __xtrc; 8737: __xtrc.reserve(32); 8737: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8737: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8737: if (__beg == __end) 8737: __err |= ios_base::eofbit; 8737: return __beg; 8737: } 8737: 8737: template 8737: _InIter 8737: num_get<_CharT, _InIter>:: 8737: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8737: ios_base::iostate& __err, void*& __v) const 8737: { 8737: 8737: typedef ios_base::fmtflags fmtflags; 8737: const fmtflags __fmt = __io.flags(); 8737: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 8737: 8737: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 8737: <= sizeof(unsigned long)), 8737: unsigned long, unsigned long long>::__type _UIntPtrType; 8737: 8737: _UIntPtrType __ul; 8737: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 8737: 8737: 8737: __io.flags(__fmt); 8737: 8737: __v = reinterpret_cast(__ul); 8737: return __beg; 8737: } 8737: 8737: 8737: 8737: template 8737: void 8737: num_put<_CharT, _OutIter>:: 8737: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 8737: _CharT* __new, const _CharT* __cs, int& __len) const 8737: { 8737: 8737: 8737: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 8737: __cs, __w, __len); 8737: __len = static_cast(__w); 8737: } 8737: 8737: 8737: 8737: template 8737: int 8737: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 8737: ios_base::fmtflags __flags, bool __dec) 8737: { 8737: _CharT* __buf = __bufend; 8737: if (__builtin_expect(__dec, true)) 8737: { 8737: 8737: do 8737: { 8737: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 8737: __v /= 10; 8737: } 8737: while (__v != 0); 8737: } 8737: else if ((__flags & ios_base::basefield) == ios_base::oct) 8737: { 8737: 8737: do 8737: { 8737: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 8737: __v >>= 3; 8737: } 8737: while (__v != 0); 8737: } 8737: else 8737: { 8737: 8737: const bool __uppercase = __flags & ios_base::uppercase; 8737: const int __case_offset = __uppercase ? __num_base::_S_oudigits 8737: : __num_base::_S_odigits; 8737: do 8737: { 8737: *--__buf = __lit[(__v & 0xf) + __case_offset]; 8737: __v >>= 4; 8737: } 8737: while (__v != 0); 8737: } 8737: return __bufend - __buf; 8737: } 8737: 8737: 8737: 8737: template 8737: void 8737: num_put<_CharT, _OutIter>:: 8737: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 8737: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 8737: { 8737: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 8737: __grouping_size, __cs, __cs + __len); 8737: __len = __p - __new; 8737: } 8737: 8737: template 8737: template 8737: _OutIter 8737: num_put<_CharT, _OutIter>:: 8737: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 8737: _ValueT __v) const 8737: { 8737: using __gnu_cxx::__add_unsigned; 8737: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: __use_cache<__cache_type> __uc; 8737: const locale& __loc = __io._M_getloc(); 8737: const __cache_type* __lc = __uc(__loc); 8737: const _CharT* __lit = __lc->_M_atoms_out; 8737: const ios_base::fmtflags __flags = __io.flags(); 8737: 8737: 8737: const int __ilen = 5 * sizeof(_ValueT); 8737: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __ilen)); 8737: 8737: 8737: 8737: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 8737: const bool __dec = (__basefield != ios_base::oct 8737: && __basefield != ios_base::hex); 8737: const __unsigned_type __u = ((__v > 0 || !__dec) 8737: ? __unsigned_type(__v) 8737: : -__unsigned_type(__v)); 8737: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 8737: __cs += __ilen - __len; 8737: 8737: 8737: if (__lc->_M_use_grouping) 8737: { 8737: 8737: 8737: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * (__len + 1) 8737: * 2)); 8737: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 8737: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 8737: __cs = __cs2 + 2; 8737: } 8737: 8737: 8737: if (__builtin_expect(__dec, true)) 8737: { 8737: 8737: if (__v >= 0) 8737: { 8737: if (bool(__flags & ios_base::showpos) 8737: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 8737: *--__cs = __lit[__num_base::_S_oplus], ++__len; 8737: } 8737: else 8737: *--__cs = __lit[__num_base::_S_ominus], ++__len; 8737: } 8737: else if (bool(__flags & ios_base::showbase) && __v) 8737: { 8737: if (__basefield == ios_base::oct) 8737: *--__cs = __lit[__num_base::_S_odigits], ++__len; 8737: else 8737: { 8737: 8737: const bool __uppercase = __flags & ios_base::uppercase; 8737: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 8737: 8737: *--__cs = __lit[__num_base::_S_odigits]; 8737: __len += 2; 8737: } 8737: } 8737: 8737: 8737: const streamsize __w = __io.width(); 8737: if (__w > static_cast(__len)) 8737: { 8737: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __w)); 8737: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 8737: __cs = __cs3; 8737: } 8737: __io.width(0); 8737: 8737: 8737: 8737: return std::__write(__s, __cs, __len); 8737: } 8737: 8737: template 8737: void 8737: num_put<_CharT, _OutIter>:: 8737: _M_group_float(const char* __grouping, size_t __grouping_size, 8737: _CharT __sep, const _CharT* __p, _CharT* __new, 8737: _CharT* __cs, int& __len) const 8737: { 8737: 8737: 8737: 8737: const int __declen = __p ? __p - __cs : __len; 8737: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 8737: __grouping_size, 8737: __cs, __cs + __declen); 8737: 8737: 8737: int __newlen = __p2 - __new; 8737: if (__p) 8737: { 8737: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 8737: __newlen += __len - __declen; 8737: } 8737: __len = __newlen; 8737: } 8737: # 971 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: template 8737: template 8737: _OutIter 8737: num_put<_CharT, _OutIter>:: 8737: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 8737: _ValueT __v) const 8737: { 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: __use_cache<__cache_type> __uc; 8737: const locale& __loc = __io._M_getloc(); 8737: const __cache_type* __lc = __uc(__loc); 8737: 8737: 8737: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 8737: 8737: const int __max_digits = 8737: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 8737: 8737: 8737: int __len; 8737: 8737: char __fbuf[16]; 8737: __num_base::_S_format_float(__io, __fbuf, __mod); 8737: 8737: 8737: 8737: const bool __use_prec = 8737: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 8737: 8737: 8737: 8737: int __cs_size = __max_digits * 3; 8737: char* __cs = static_cast(__builtin_alloca(__cs_size)); 8737: if (__use_prec) 8737: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8737: __fbuf, __prec, __v); 8737: else 8737: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8737: __fbuf, __v); 8737: 8737: 8737: if (__len >= __cs_size) 8737: { 8737: __cs_size = __len + 1; 8737: __cs = static_cast(__builtin_alloca(__cs_size)); 8737: if (__use_prec) 8737: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8737: __fbuf, __prec, __v); 8737: else 8737: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8737: __fbuf, __v); 8737: } 8737: # 1044 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: const ctype<_CharT>& __ctype = use_facet >(__loc); 8737: 8737: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __len)); 8737: __ctype.widen(__cs, __cs + __len, __ws); 8737: 8737: 8737: _CharT* __wp = 0; 8737: const char* __p = char_traits::find(__cs, __len, '.'); 8737: if (__p) 8737: { 8737: __wp = __ws + (__p - __cs); 8737: *__wp = __lc->_M_decimal_point; 8737: } 8737: 8737: 8737: 8737: 8737: if (__lc->_M_use_grouping 8737: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 8737: && __cs[1] >= '0' && __cs[2] >= '0'))) 8737: { 8737: 8737: 8737: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __len * 2)); 8737: 8737: streamsize __off = 0; 8737: if (__cs[0] == '-' || __cs[0] == '+') 8737: { 8737: __off = 1; 8737: __ws2[0] = __ws[0]; 8737: __len -= 1; 8737: } 8737: 8737: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 8737: __lc->_M_thousands_sep, __wp, __ws2 + __off, 8737: __ws + __off, __len); 8737: __len += __off; 8737: 8737: __ws = __ws2; 8737: } 8737: 8737: 8737: const streamsize __w = __io.width(); 8737: if (__w > static_cast(__len)) 8737: { 8737: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __w)); 8737: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 8737: __ws = __ws3; 8737: } 8737: __io.width(0); 8737: 8737: 8737: 8737: return std::__write(__s, __ws, __len); 8737: } 8737: 8737: template 8737: _OutIter 8737: num_put<_CharT, _OutIter>:: 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8737: { 8737: const ios_base::fmtflags __flags = __io.flags(); 8737: if ((__flags & ios_base::boolalpha) == 0) 8737: { 8737: const long __l = __v; 8737: __s = _M_insert_int(__s, __io, __fill, __l); 8737: } 8737: else 8737: { 8737: typedef __numpunct_cache<_CharT> __cache_type; 8737: __use_cache<__cache_type> __uc; 8737: const locale& __loc = __io._M_getloc(); 8737: const __cache_type* __lc = __uc(__loc); 8737: 8737: const _CharT* __name = __v ? __lc->_M_truename 8737: : __lc->_M_falsename; 8737: int __len = __v ? __lc->_M_truename_size 8737: : __lc->_M_falsename_size; 8737: 8737: const streamsize __w = __io.width(); 8737: if (__w > static_cast(__len)) 8737: { 8737: const streamsize __plen = __w - __len; 8737: _CharT* __ps 8737: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8737: * __plen)); 8737: 8737: char_traits<_CharT>::assign(__ps, __plen, __fill); 8737: __io.width(0); 8737: 8737: if ((__flags & ios_base::adjustfield) == ios_base::left) 8737: { 8737: __s = std::__write(__s, __name, __len); 8737: __s = std::__write(__s, __ps, __plen); 8737: } 8737: else 8737: { 8737: __s = std::__write(__s, __ps, __plen); 8737: __s = std::__write(__s, __name, __len); 8737: } 8737: return __s; 8737: } 8737: __io.width(0); 8737: __s = std::__write(__s, __name, __len); 8737: } 8737: return __s; 8737: } 8737: 8737: template 8737: _OutIter 8737: num_put<_CharT, _OutIter>:: 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8737: { return _M_insert_float(__s, __io, __fill, char(), __v); } 8737: # 1169 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: template 8737: _OutIter 8737: num_put<_CharT, _OutIter>:: 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, 8737: long double __v) const 8737: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 8737: 8737: template 8737: _OutIter 8737: num_put<_CharT, _OutIter>:: 8737: do_put(iter_type __s, ios_base& __io, char_type __fill, 8737: const void* __v) const 8737: { 8737: const ios_base::fmtflags __flags = __io.flags(); 8737: const ios_base::fmtflags __fmt = ~(ios_base::basefield 8737: | ios_base::uppercase); 8737: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 8737: 8737: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 8737: <= sizeof(unsigned long)), 8737: unsigned long, unsigned long long>::__type _UIntPtrType; 8737: 8737: __s = _M_insert_int(__s, __io, __fill, 8737: reinterpret_cast<_UIntPtrType>(__v)); 8737: __io.flags(__flags); 8737: return __s; 8737: } 8737: 8737: 8737: # 1206 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8737: template 8737: void 8737: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 8737: _CharT* __news, const _CharT* __olds, 8737: streamsize __newlen, streamsize __oldlen) 8737: { 8737: const size_t __plen = static_cast(__newlen - __oldlen); 8737: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 8737: 8737: 8737: if (__adjust == ios_base::left) 8737: { 8737: _Traits::copy(__news, __olds, __oldlen); 8737: _Traits::assign(__news + __oldlen, __plen, __fill); 8737: return; 8737: } 8737: 8737: size_t __mod = 0; 8737: if (__adjust == ios_base::internal) 8737: { 8737: 8737: 8737: 8737: const locale& __loc = __io._M_getloc(); 8737: const ctype<_CharT>& __ctype = use_facet >(__loc); 8737: 8737: if (__ctype.widen('-') == __olds[0] 8737: || __ctype.widen('+') == __olds[0]) 8737: { 8737: __news[0] = __olds[0]; 8737: __mod = 1; 8737: ++__news; 8737: } 8737: else if (__ctype.widen('0') == __olds[0] 8737: && __oldlen > 1 8737: && (__ctype.widen('x') == __olds[1] 8737: || __ctype.widen('X') == __olds[1])) 8737: { 8737: __news[0] = __olds[0]; 8737: __news[1] = __olds[1]; 8737: __mod = 2; 8737: __news += 2; 8737: } 8737: 8737: } 8737: _Traits::assign(__news, __plen, __fill); 8737: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 8737: } 8737: 8737: template 8737: _CharT* 8737: __add_grouping(_CharT* __s, _CharT __sep, 8737: const char* __gbeg, size_t __gsize, 8737: const _CharT* __first, const _CharT* __last) 8737: { 8737: size_t __idx = 0; 8737: size_t __ctr = 0; 8737: 8737: while (__last - __first > __gbeg[__idx] 8737: && static_cast(__gbeg[__idx]) > 0 8737: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 8737: { 8737: __last -= __gbeg[__idx]; 8737: __idx < __gsize - 1 ? ++__idx : ++__ctr; 8737: } 8737: 8737: while (__first != __last) 8737: *__s++ = *__first++; 8737: 8737: while (__ctr--) 8737: { 8737: *__s++ = __sep; 8737: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8737: *__s++ = *__first++; 8737: } 8737: 8737: while (__idx--) 8737: { 8737: *__s++ = __sep; 8737: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8737: *__s++ = *__first++; 8737: } 8737: 8737: return __s; 8737: } 8737: 8737: 8737: 8737: 8737: extern template class __cxx11:: numpunct; 8737: extern template class __cxx11:: numpunct_byname; 8737: extern template class num_get; 8737: extern template class num_put; 8737: extern template class ctype_byname; 8737: 8737: extern template 8737: const ctype& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: const numpunct& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: const num_put& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: const num_get& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: 8737: extern template class __cxx11:: numpunct; 8737: extern template class __cxx11:: numpunct_byname; 8737: extern template class num_get; 8737: extern template class num_put; 8737: extern template class ctype_byname; 8737: 8737: extern template 8737: const ctype& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: const numpunct& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: const num_put& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: const num_get& 8737: use_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: extern template 8737: bool 8737: has_facet >(const locale&); 8737: 8737: 8737: 8737: 8737: } 8737: # 2652 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8737: # 38 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: inline const _Facet& 8737: __check_facet(const _Facet* __f) 8737: { 8737: if (!__f) 8737: __throw_bad_cast(); 8737: return *__f; 8737: } 8737: # 66 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: template 8737: class basic_ios : public ios_base 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef typename _Traits::int_type int_type; 8737: typedef typename _Traits::pos_type pos_type; 8737: typedef typename _Traits::off_type off_type; 8737: typedef _Traits traits_type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef ctype<_CharT> __ctype_type; 8737: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8737: __num_put_type; 8737: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8737: __num_get_type; 8737: 8737: 8737: 8737: protected: 8737: basic_ostream<_CharT, _Traits>* _M_tie; 8737: mutable char_type _M_fill; 8737: mutable bool _M_fill_init; 8737: basic_streambuf<_CharT, _Traits>* _M_streambuf; 8737: 8737: 8737: const __ctype_type* _M_ctype; 8737: 8737: const __num_put_type* _M_num_put; 8737: 8737: const __num_get_type* _M_num_get; 8737: 8737: public: 8737: # 117 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: explicit operator bool() const 8737: { return !this->fail(); } 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: operator!() const 8737: { return this->fail(); } 8737: # 136 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: iostate 8737: rdstate() const 8737: { return _M_streambuf_state; } 8737: # 147 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: void 8737: clear(iostate __state = goodbit); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: setstate(iostate __state) 8737: { this->clear(this->rdstate() | __state); } 8737: 8737: 8737: 8737: 8737: void 8737: _M_setstate(iostate __state) 8737: { 8737: 8737: 8737: _M_streambuf_state |= __state; 8737: if (this->exceptions() & __state) 8737: throw; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: good() const 8737: { return this->rdstate() == 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: eof() const 8737: { return (this->rdstate() & eofbit) != 0; } 8737: # 200 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: bool 8737: fail() const 8737: { return (this->rdstate() & (badbit | failbit)) != 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: bad() const 8737: { return (this->rdstate() & badbit) != 0; } 8737: # 221 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: iostate 8737: exceptions() const 8737: { return _M_exception; } 8737: # 256 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: void 8737: exceptions(iostate __except) 8737: { 8737: _M_exception = __except; 8737: this->clear(_M_streambuf_state); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 8737: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 8737: _M_ctype(0), _M_num_put(0), _M_num_get(0) 8737: { this->init(__sb); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual 8737: ~basic_ios() { } 8737: # 294 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: basic_ostream<_CharT, _Traits>* 8737: tie() const 8737: { return _M_tie; } 8737: # 306 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: basic_ostream<_CharT, _Traits>* 8737: tie(basic_ostream<_CharT, _Traits>* __tiestr) 8737: { 8737: basic_ostream<_CharT, _Traits>* __old = _M_tie; 8737: _M_tie = __tiestr; 8737: return __old; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_streambuf<_CharT, _Traits>* 8737: rdbuf() const 8737: { return _M_streambuf; } 8737: # 346 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: basic_streambuf<_CharT, _Traits>* 8737: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 8737: # 360 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: basic_ios& 8737: copyfmt(const basic_ios& __rhs); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: char_type 8737: fill() const 8737: { 8737: if (!_M_fill_init) 8737: { 8737: _M_fill = this->widen(' '); 8737: _M_fill_init = true; 8737: } 8737: return _M_fill; 8737: } 8737: # 389 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: char_type 8737: fill(char_type __ch) 8737: { 8737: char_type __old = this->fill(); 8737: _M_fill = __ch; 8737: return __old; 8737: } 8737: # 409 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: locale 8737: imbue(const locale& __loc); 8737: # 429 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: char 8737: narrow(char_type __c, char __dfault) const 8737: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 8737: # 448 "/usr/include/c++/8/bits/basic_ios.h" 3 8737: char_type 8737: widen(char __c) const 8737: { return __check_facet(_M_ctype).widen(__c); } 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: basic_ios() 8737: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 8737: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 8737: { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: init(basic_streambuf<_CharT, _Traits>* __sb); 8737: 8737: 8737: basic_ios(const basic_ios&) = delete; 8737: basic_ios& operator=(const basic_ios&) = delete; 8737: 8737: void 8737: move(basic_ios& __rhs) 8737: { 8737: ios_base::_M_move(__rhs); 8737: _M_cache_locale(_M_ios_locale); 8737: this->tie(__rhs.tie(nullptr)); 8737: _M_fill = __rhs._M_fill; 8737: _M_fill_init = __rhs._M_fill_init; 8737: _M_streambuf = nullptr; 8737: } 8737: 8737: void 8737: move(basic_ios&& __rhs) 8737: { this->move(__rhs); } 8737: 8737: void 8737: swap(basic_ios& __rhs) noexcept 8737: { 8737: ios_base::_M_swap(__rhs); 8737: _M_cache_locale(_M_ios_locale); 8737: __rhs._M_cache_locale(__rhs._M_ios_locale); 8737: std::swap(_M_tie, __rhs._M_tie); 8737: std::swap(_M_fill, __rhs._M_fill); 8737: std::swap(_M_fill_init, __rhs._M_fill_init); 8737: } 8737: 8737: void 8737: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8737: { _M_streambuf = __sb; } 8737: 8737: 8737: void 8737: _M_cache_locale(const locale& __loc); 8737: }; 8737: 8737: 8737: } 8737: 8737: # 1 "/usr/include/c++/8/bits/basic_ios.tcc" 1 3 8737: # 33 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: void 8737: basic_ios<_CharT, _Traits>::clear(iostate __state) 8737: { 8737: if (this->rdbuf()) 8737: _M_streambuf_state = __state; 8737: else 8737: _M_streambuf_state = __state | badbit; 8737: if (this->exceptions() & this->rdstate()) 8737: __throw_ios_failure(("basic_ios::clear")); 8737: } 8737: 8737: template 8737: basic_streambuf<_CharT, _Traits>* 8737: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8737: { 8737: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 8737: _M_streambuf = __sb; 8737: this->clear(); 8737: return __old; 8737: } 8737: 8737: template 8737: basic_ios<_CharT, _Traits>& 8737: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 8737: { 8737: 8737: 8737: if (this != &__rhs) 8737: { 8737: 8737: 8737: 8737: 8737: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 8737: _M_local_word : new _Words[__rhs._M_word_size]; 8737: 8737: 8737: _Callback_list* __cb = __rhs._M_callbacks; 8737: if (__cb) 8737: __cb->_M_add_reference(); 8737: _M_call_callbacks(erase_event); 8737: if (_M_word != _M_local_word) 8737: { 8737: delete [] _M_word; 8737: _M_word = 0; 8737: } 8737: _M_dispose_callbacks(); 8737: 8737: 8737: _M_callbacks = __cb; 8737: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 8737: __words[__i] = __rhs._M_word[__i]; 8737: _M_word = __words; 8737: _M_word_size = __rhs._M_word_size; 8737: 8737: this->flags(__rhs.flags()); 8737: this->width(__rhs.width()); 8737: this->precision(__rhs.precision()); 8737: this->tie(__rhs.tie()); 8737: this->fill(__rhs.fill()); 8737: _M_ios_locale = __rhs.getloc(); 8737: _M_cache_locale(_M_ios_locale); 8737: 8737: _M_call_callbacks(copyfmt_event); 8737: 8737: 8737: this->exceptions(__rhs.exceptions()); 8737: } 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: locale 8737: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 8737: { 8737: locale __old(this->getloc()); 8737: ios_base::imbue(__loc); 8737: _M_cache_locale(__loc); 8737: if (this->rdbuf() != 0) 8737: this->rdbuf()->pubimbue(__loc); 8737: return __old; 8737: } 8737: 8737: template 8737: void 8737: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 8737: { 8737: 8737: ios_base::_M_init(); 8737: 8737: 8737: _M_cache_locale(_M_ios_locale); 8737: # 146 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8737: _M_fill = _CharT(); 8737: _M_fill_init = false; 8737: 8737: _M_tie = 0; 8737: _M_exception = goodbit; 8737: _M_streambuf = __sb; 8737: _M_streambuf_state = __sb ? goodbit : badbit; 8737: } 8737: 8737: template 8737: void 8737: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 8737: { 8737: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 8737: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 8737: else 8737: _M_ctype = 0; 8737: 8737: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 8737: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 8737: else 8737: _M_num_put = 0; 8737: 8737: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 8737: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 8737: else 8737: _M_num_get = 0; 8737: } 8737: 8737: 8737: 8737: 8737: extern template class basic_ios; 8737: 8737: 8737: extern template class basic_ios; 8737: 8737: 8737: 8737: 8737: } 8737: # 517 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8737: # 45 "/usr/include/c++/8/ios" 2 3 8737: # 39 "/usr/include/c++/8/ostream" 2 3 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 57 "/usr/include/c++/8/ostream" 3 8737: template 8737: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 8737: { 8737: public: 8737: 8737: typedef _CharT char_type; 8737: typedef typename _Traits::int_type int_type; 8737: typedef typename _Traits::pos_type pos_type; 8737: typedef typename _Traits::off_type off_type; 8737: typedef _Traits traits_type; 8737: 8737: 8737: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8737: typedef basic_ios<_CharT, _Traits> __ios_type; 8737: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8737: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8737: __num_put_type; 8737: typedef ctype<_CharT> __ctype_type; 8737: # 83 "/usr/include/c++/8/ostream" 3 8737: explicit 8737: basic_ostream(__streambuf_type* __sb) 8737: { this->init(__sb); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual 8737: ~basic_ostream() { } 8737: 8737: 8737: class sentry; 8737: friend class sentry; 8737: # 107 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 8737: { 8737: 8737: 8737: 8737: return __pf(*this); 8737: } 8737: 8737: __ostream_type& 8737: operator<<(__ios_type& (*__pf)(__ios_type&)) 8737: { 8737: 8737: 8737: 8737: __pf(*this); 8737: return *this; 8737: } 8737: 8737: __ostream_type& 8737: operator<<(ios_base& (*__pf) (ios_base&)) 8737: { 8737: 8737: 8737: 8737: __pf(*this); 8737: return *this; 8737: } 8737: # 165 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: operator<<(long __n) 8737: { return _M_insert(__n); } 8737: 8737: __ostream_type& 8737: operator<<(unsigned long __n) 8737: { return _M_insert(__n); } 8737: 8737: __ostream_type& 8737: operator<<(bool __n) 8737: { return _M_insert(__n); } 8737: 8737: __ostream_type& 8737: operator<<(short __n); 8737: 8737: __ostream_type& 8737: operator<<(unsigned short __n) 8737: { 8737: 8737: 8737: return _M_insert(static_cast(__n)); 8737: } 8737: 8737: __ostream_type& 8737: operator<<(int __n); 8737: 8737: __ostream_type& 8737: operator<<(unsigned int __n) 8737: { 8737: 8737: 8737: return _M_insert(static_cast(__n)); 8737: } 8737: 8737: 8737: __ostream_type& 8737: operator<<(long long __n) 8737: { return _M_insert(__n); } 8737: 8737: __ostream_type& 8737: operator<<(unsigned long long __n) 8737: { return _M_insert(__n); } 8737: # 219 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: operator<<(double __f) 8737: { return _M_insert(__f); } 8737: 8737: __ostream_type& 8737: operator<<(float __f) 8737: { 8737: 8737: 8737: return _M_insert(static_cast(__f)); 8737: } 8737: 8737: __ostream_type& 8737: operator<<(long double __f) 8737: { return _M_insert(__f); } 8737: # 244 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: operator<<(const void* __p) 8737: { return _M_insert(__p); } 8737: # 269 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: operator<<(__streambuf_type* __sb); 8737: # 302 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: put(char_type __c); 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: _M_write(const char_type* __s, streamsize __n) 8737: { 8737: const streamsize __put = this->rdbuf()->sputn(__s, __n); 8737: if (__put != __n) 8737: this->setstate(ios_base::badbit); 8737: } 8737: # 334 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: write(const char_type* __s, streamsize __n); 8737: # 347 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: flush(); 8737: # 357 "/usr/include/c++/8/ostream" 3 8737: pos_type 8737: tellp(); 8737: # 368 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: seekp(pos_type); 8737: # 380 "/usr/include/c++/8/ostream" 3 8737: __ostream_type& 8737: seekp(off_type, ios_base::seekdir); 8737: 8737: protected: 8737: basic_ostream() 8737: { this->init(0); } 8737: 8737: 8737: 8737: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 8737: 8737: basic_ostream(const basic_ostream&) = delete; 8737: 8737: basic_ostream(basic_ostream&& __rhs) 8737: : __ios_type() 8737: { __ios_type::move(__rhs); } 8737: 8737: 8737: 8737: basic_ostream& operator=(const basic_ostream&) = delete; 8737: 8737: basic_ostream& 8737: operator=(basic_ostream&& __rhs) 8737: { 8737: swap(__rhs); 8737: return *this; 8737: } 8737: 8737: void 8737: swap(basic_ostream& __rhs) 8737: { __ios_type::swap(__rhs); } 8737: 8737: 8737: template 8737: __ostream_type& 8737: _M_insert(_ValueT __v); 8737: }; 8737: # 425 "/usr/include/c++/8/ostream" 3 8737: template 8737: class basic_ostream<_CharT, _Traits>::sentry 8737: { 8737: 8737: bool _M_ok; 8737: basic_ostream<_CharT, _Traits>& _M_os; 8737: 8737: public: 8737: # 444 "/usr/include/c++/8/ostream" 3 8737: explicit 8737: sentry(basic_ostream<_CharT, _Traits>& __os); 8737: # 454 "/usr/include/c++/8/ostream" 3 8737: ~sentry() 8737: { 8737: 8737: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 8737: { 8737: 8737: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 8737: _M_os.setstate(ios_base::badbit); 8737: } 8737: } 8737: # 473 "/usr/include/c++/8/ostream" 3 8737: explicit 8737: 8737: operator bool() const 8737: { return _M_ok; } 8737: }; 8737: # 495 "/usr/include/c++/8/ostream" 3 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 8737: { return __ostream_insert(__out, &__c, 1); } 8737: 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 8737: { return (__out << __out.widen(__c)); } 8737: 8737: 8737: template 8737: inline basic_ostream& 8737: operator<<(basic_ostream& __out, char __c) 8737: { return __ostream_insert(__out, &__c, 1); } 8737: 8737: 8737: template 8737: inline basic_ostream& 8737: operator<<(basic_ostream& __out, signed char __c) 8737: { return (__out << static_cast(__c)); } 8737: 8737: template 8737: inline basic_ostream& 8737: operator<<(basic_ostream& __out, unsigned char __c) 8737: { return (__out << static_cast(__c)); } 8737: # 537 "/usr/include/c++/8/ostream" 3 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 8737: { 8737: if (!__s) 8737: __out.setstate(ios_base::badbit); 8737: else 8737: __ostream_insert(__out, __s, 8737: static_cast(_Traits::length(__s))); 8737: return __out; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits> & 8737: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 8737: 8737: 8737: template 8737: inline basic_ostream& 8737: operator<<(basic_ostream& __out, const char* __s) 8737: { 8737: if (!__s) 8737: __out.setstate(ios_base::badbit); 8737: else 8737: __ostream_insert(__out, __s, 8737: static_cast(_Traits::length(__s))); 8737: return __out; 8737: } 8737: 8737: 8737: template 8737: inline basic_ostream& 8737: operator<<(basic_ostream& __out, const signed char* __s) 8737: { return (__out << reinterpret_cast(__s)); } 8737: 8737: template 8737: inline basic_ostream & 8737: operator<<(basic_ostream& __out, const unsigned char* __s) 8737: { return (__out << reinterpret_cast(__s)); } 8737: # 588 "/usr/include/c++/8/ostream" 3 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: endl(basic_ostream<_CharT, _Traits>& __os) 8737: { return flush(__os.put(__os.widen('\n'))); } 8737: # 600 "/usr/include/c++/8/ostream" 3 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: ends(basic_ostream<_CharT, _Traits>& __os) 8737: { return __os.put(_CharT()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline basic_ostream<_CharT, _Traits>& 8737: flush(basic_ostream<_CharT, _Traits>& __os) 8737: { return __os.flush(); } 8737: 8737: 8737: template 8737: basic_ostream<_Ch, _Up>& 8737: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 8737: 8737: template 8737: struct __is_convertible_to_basic_ostream_impl 8737: { 8737: using __ostream_type = void; 8737: }; 8737: 8737: template 8737: using __do_is_convertible_to_basic_ostream_impl = 8737: decltype(__is_convertible_to_basic_ostream_test 8737: (declval::type*>())); 8737: 8737: template 8737: struct __is_convertible_to_basic_ostream_impl 8737: <_Tp, 8737: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 8737: { 8737: using __ostream_type = 8737: __do_is_convertible_to_basic_ostream_impl<_Tp>; 8737: }; 8737: 8737: template 8737: struct __is_convertible_to_basic_ostream 8737: : __is_convertible_to_basic_ostream_impl<_Tp> 8737: { 8737: public: 8737: using type = __not_::__ostream_type>>; 8737: constexpr static bool value = type::value; 8737: }; 8737: 8737: template 8737: struct __is_insertable : false_type {}; 8737: 8737: template 8737: struct __is_insertable<_Ostream, _Tp, 8737: __void_t() 8737: << declval())>> 8737: : true_type {}; 8737: 8737: template 8737: using __rvalue_ostream_type = 8737: typename __is_convertible_to_basic_ostream< 8737: _Ostream>::__ostream_type; 8737: # 674 "/usr/include/c++/8/ostream" 3 8737: template 8737: inline 8737: typename enable_if<__and_<__not_>, 8737: __is_convertible_to_basic_ostream<_Ostream>, 8737: __is_insertable< 8737: __rvalue_ostream_type<_Ostream>, 8737: const _Tp&>>::value, 8737: __rvalue_ostream_type<_Ostream>>::type 8737: operator<<(_Ostream&& __os, const _Tp& __x) 8737: { 8737: __rvalue_ostream_type<_Ostream> __ret_os = __os; 8737: __ret_os << __x; 8737: return __ret_os; 8737: } 8737: 8737: 8737: 8737: } 8737: 8737: # 1 "/usr/include/c++/8/bits/ostream.tcc" 1 3 8737: # 37 "/usr/include/c++/8/bits/ostream.tcc" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/ostream.tcc" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>::sentry:: 8737: sentry(basic_ostream<_CharT, _Traits>& __os) 8737: : _M_ok(false), _M_os(__os) 8737: { 8737: 8737: if (__os.tie() && __os.good()) 8737: __os.tie()->flush(); 8737: 8737: if (__os.good()) 8737: _M_ok = true; 8737: else 8737: __os.setstate(ios_base::failbit); 8737: } 8737: 8737: template 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: _M_insert(_ValueT __v) 8737: { 8737: sentry __cerb(*this); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const __num_put_type& __np = __check_facet(this->_M_num_put); 8737: if (__np.put(*this, *this, this->fill(), __v).failed()) 8737: __err |= ios_base::badbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: operator<<(short __n) 8737: { 8737: 8737: 8737: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8737: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8737: return _M_insert(static_cast(static_cast(__n))); 8737: else 8737: return _M_insert(static_cast(__n)); 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: operator<<(int __n) 8737: { 8737: 8737: 8737: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8737: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8737: return _M_insert(static_cast(static_cast(__n))); 8737: else 8737: return _M_insert(static_cast(__n)); 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: operator<<(__streambuf_type* __sbin) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this); 8737: if (__cerb && __sbin) 8737: { 8737: try 8737: { 8737: if (!__copy_streambufs(__sbin, this->rdbuf())) 8737: __err |= ios_base::failbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::failbit); } 8737: } 8737: else if (!__sbin) 8737: __err |= ios_base::badbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: put(char_type __c) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: sentry __cerb(*this); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const int_type __put = this->rdbuf()->sputc(__c); 8737: if (traits_type::eq_int_type(__put, traits_type::eof())) 8737: __err |= ios_base::badbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: write(const _CharT* __s, streamsize __n) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: sentry __cerb(*this); 8737: if (__cerb) 8737: { 8737: try 8737: { _M_write(__s, __n); } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: flush() 8737: { 8737: 8737: 8737: 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 8737: __err |= ios_base::badbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: typename basic_ostream<_CharT, _Traits>::pos_type 8737: basic_ostream<_CharT, _Traits>:: 8737: tellp() 8737: { 8737: pos_type __ret = pos_type(-1); 8737: try 8737: { 8737: if (!this->fail()) 8737: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: return __ret; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: seekp(pos_type __pos) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: if (!this->fail()) 8737: { 8737: 8737: 8737: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8737: ios_base::out); 8737: 8737: 8737: if (__p == pos_type(off_type(-1))) 8737: __err |= ios_base::failbit; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: basic_ostream<_CharT, _Traits>:: 8737: seekp(off_type __off, ios_base::seekdir __dir) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: if (!this->fail()) 8737: { 8737: 8737: 8737: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8737: ios_base::out); 8737: 8737: 8737: if (__p == pos_type(off_type(-1))) 8737: __err |= ios_base::failbit; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_ostream<_CharT, _Traits>& 8737: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 8737: { 8737: if (!__s) 8737: __out.setstate(ios_base::badbit); 8737: else 8737: { 8737: 8737: 8737: const size_t __clen = char_traits::length(__s); 8737: try 8737: { 8737: struct __ptr_guard 8737: { 8737: _CharT *__p; 8737: __ptr_guard (_CharT *__ip): __p(__ip) { } 8737: ~__ptr_guard() { delete[] __p; } 8737: _CharT* __get() { return __p; } 8737: } __pg (new _CharT[__clen]); 8737: 8737: _CharT *__ws = __pg.__get(); 8737: for (size_t __i = 0; __i < __clen; ++__i) 8737: __ws[__i] = __out.widen(__s[__i]); 8737: __ostream_insert(__out, __ws, __clen); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __out._M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { __out._M_setstate(ios_base::badbit); } 8737: } 8737: return __out; 8737: } 8737: 8737: 8737: 8737: 8737: extern template class basic_ostream; 8737: extern template ostream& endl(ostream&); 8737: extern template ostream& ends(ostream&); 8737: extern template ostream& flush(ostream&); 8737: extern template ostream& operator<<(ostream&, char); 8737: extern template ostream& operator<<(ostream&, unsigned char); 8737: extern template ostream& operator<<(ostream&, signed char); 8737: extern template ostream& operator<<(ostream&, const char*); 8737: extern template ostream& operator<<(ostream&, const unsigned char*); 8737: extern template ostream& operator<<(ostream&, const signed char*); 8737: 8737: extern template ostream& ostream::_M_insert(long); 8737: extern template ostream& ostream::_M_insert(unsigned long); 8737: extern template ostream& ostream::_M_insert(bool); 8737: 8737: extern template ostream& ostream::_M_insert(long long); 8737: extern template ostream& ostream::_M_insert(unsigned long long); 8737: 8737: extern template ostream& ostream::_M_insert(double); 8737: extern template ostream& ostream::_M_insert(long double); 8737: extern template ostream& ostream::_M_insert(const void*); 8737: 8737: 8737: extern template class basic_ostream; 8737: extern template wostream& endl(wostream&); 8737: extern template wostream& ends(wostream&); 8737: extern template wostream& flush(wostream&); 8737: extern template wostream& operator<<(wostream&, wchar_t); 8737: extern template wostream& operator<<(wostream&, char); 8737: extern template wostream& operator<<(wostream&, const wchar_t*); 8737: extern template wostream& operator<<(wostream&, const char*); 8737: 8737: extern template wostream& wostream::_M_insert(long); 8737: extern template wostream& wostream::_M_insert(unsigned long); 8737: extern template wostream& wostream::_M_insert(bool); 8737: 8737: extern template wostream& wostream::_M_insert(long long); 8737: extern template wostream& wostream::_M_insert(unsigned long long); 8737: 8737: extern template wostream& wostream::_M_insert(double); 8737: extern template wostream& wostream::_M_insert(long double); 8737: extern template wostream& wostream::_M_insert(const void*); 8737: 8737: 8737: 8737: 8737: } 8737: # 694 "/usr/include/c++/8/ostream" 2 3 8737: # 65 "/usr/include/c++/8/iterator" 2 3 8737: # 1 "/usr/include/c++/8/istream" 1 3 8737: # 36 "/usr/include/c++/8/istream" 3 8737: 8737: # 37 "/usr/include/c++/8/istream" 3 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 57 "/usr/include/c++/8/istream" 3 8737: template 8737: class basic_istream : virtual public basic_ios<_CharT, _Traits> 8737: { 8737: public: 8737: 8737: typedef _CharT char_type; 8737: typedef typename _Traits::int_type int_type; 8737: typedef typename _Traits::pos_type pos_type; 8737: typedef typename _Traits::off_type off_type; 8737: typedef _Traits traits_type; 8737: 8737: 8737: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8737: typedef basic_ios<_CharT, _Traits> __ios_type; 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8737: __num_get_type; 8737: typedef ctype<_CharT> __ctype_type; 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: streamsize _M_gcount; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: basic_istream(__streambuf_type* __sb) 8737: : _M_gcount(streamsize(0)) 8737: { this->init(__sb); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual 8737: ~basic_istream() 8737: { _M_gcount = streamsize(0); } 8737: 8737: 8737: class sentry; 8737: friend class sentry; 8737: # 119 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: operator>>(__istream_type& (*__pf)(__istream_type&)) 8737: { return __pf(*this); } 8737: 8737: __istream_type& 8737: operator>>(__ios_type& (*__pf)(__ios_type&)) 8737: { 8737: __pf(*this); 8737: return *this; 8737: } 8737: 8737: __istream_type& 8737: operator>>(ios_base& (*__pf)(ios_base&)) 8737: { 8737: __pf(*this); 8737: return *this; 8737: } 8737: # 167 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: operator>>(bool& __n) 8737: { return _M_extract(__n); } 8737: 8737: __istream_type& 8737: operator>>(short& __n); 8737: 8737: __istream_type& 8737: operator>>(unsigned short& __n) 8737: { return _M_extract(__n); } 8737: 8737: __istream_type& 8737: operator>>(int& __n); 8737: 8737: __istream_type& 8737: operator>>(unsigned int& __n) 8737: { return _M_extract(__n); } 8737: 8737: __istream_type& 8737: operator>>(long& __n) 8737: { return _M_extract(__n); } 8737: 8737: __istream_type& 8737: operator>>(unsigned long& __n) 8737: { return _M_extract(__n); } 8737: 8737: 8737: __istream_type& 8737: operator>>(long long& __n) 8737: { return _M_extract(__n); } 8737: 8737: __istream_type& 8737: operator>>(unsigned long long& __n) 8737: { return _M_extract(__n); } 8737: # 213 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: operator>>(float& __f) 8737: { return _M_extract(__f); } 8737: 8737: __istream_type& 8737: operator>>(double& __f) 8737: { return _M_extract(__f); } 8737: 8737: __istream_type& 8737: operator>>(long double& __f) 8737: { return _M_extract(__f); } 8737: # 234 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: operator>>(void*& __p) 8737: { return _M_extract(__p); } 8737: # 258 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: operator>>(__streambuf_type* __sb); 8737: # 268 "/usr/include/c++/8/istream" 3 8737: streamsize 8737: gcount() const 8737: { return _M_gcount; } 8737: # 301 "/usr/include/c++/8/istream" 3 8737: int_type 8737: get(); 8737: # 315 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: get(char_type& __c); 8737: # 342 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: get(char_type* __s, streamsize __n, char_type __delim); 8737: # 353 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: get(char_type* __s, streamsize __n) 8737: { return this->get(__s, __n, this->widen('\n')); } 8737: # 376 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: get(__streambuf_type& __sb, char_type __delim); 8737: # 386 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: get(__streambuf_type& __sb) 8737: { return this->get(__sb, this->widen('\n')); } 8737: # 415 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: getline(char_type* __s, streamsize __n, char_type __delim); 8737: # 426 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: getline(char_type* __s, streamsize __n) 8737: { return this->getline(__s, __n, this->widen('\n')); } 8737: # 450 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: ignore(streamsize __n, int_type __delim); 8737: 8737: __istream_type& 8737: ignore(streamsize __n); 8737: 8737: __istream_type& 8737: ignore(); 8737: # 467 "/usr/include/c++/8/istream" 3 8737: int_type 8737: peek(); 8737: # 485 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: read(char_type* __s, streamsize __n); 8737: # 504 "/usr/include/c++/8/istream" 3 8737: streamsize 8737: readsome(char_type* __s, streamsize __n); 8737: # 521 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: putback(char_type __c); 8737: # 537 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: unget(); 8737: # 555 "/usr/include/c++/8/istream" 3 8737: int 8737: sync(); 8737: # 570 "/usr/include/c++/8/istream" 3 8737: pos_type 8737: tellg(); 8737: # 585 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: seekg(pos_type); 8737: # 601 "/usr/include/c++/8/istream" 3 8737: __istream_type& 8737: seekg(off_type, ios_base::seekdir); 8737: 8737: 8737: protected: 8737: basic_istream() 8737: : _M_gcount(streamsize(0)) 8737: { this->init(0); } 8737: 8737: 8737: basic_istream(const basic_istream&) = delete; 8737: 8737: basic_istream(basic_istream&& __rhs) 8737: : __ios_type(), _M_gcount(__rhs._M_gcount) 8737: { 8737: __ios_type::move(__rhs); 8737: __rhs._M_gcount = 0; 8737: } 8737: 8737: 8737: 8737: basic_istream& operator=(const basic_istream&) = delete; 8737: 8737: basic_istream& 8737: operator=(basic_istream&& __rhs) 8737: { 8737: swap(__rhs); 8737: return *this; 8737: } 8737: 8737: void 8737: swap(basic_istream& __rhs) 8737: { 8737: __ios_type::swap(__rhs); 8737: std::swap(_M_gcount, __rhs._M_gcount); 8737: } 8737: 8737: 8737: template 8737: __istream_type& 8737: _M_extract(_ValueT& __v); 8737: }; 8737: 8737: 8737: template<> 8737: basic_istream& 8737: basic_istream:: 8737: getline(char_type* __s, streamsize __n, char_type __delim); 8737: 8737: template<> 8737: basic_istream& 8737: basic_istream:: 8737: ignore(streamsize __n); 8737: 8737: template<> 8737: basic_istream& 8737: basic_istream:: 8737: ignore(streamsize __n, int_type __delim); 8737: 8737: 8737: template<> 8737: basic_istream& 8737: basic_istream:: 8737: getline(char_type* __s, streamsize __n, char_type __delim); 8737: 8737: template<> 8737: basic_istream& 8737: basic_istream:: 8737: ignore(streamsize __n); 8737: 8737: template<> 8737: basic_istream& 8737: basic_istream:: 8737: ignore(streamsize __n, int_type __delim); 8737: # 685 "/usr/include/c++/8/istream" 3 8737: template 8737: class basic_istream<_CharT, _Traits>::sentry 8737: { 8737: 8737: bool _M_ok; 8737: 8737: public: 8737: 8737: typedef _Traits traits_type; 8737: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef typename __istream_type::__ctype_type __ctype_type; 8737: typedef typename _Traits::int_type __int_type; 8737: # 721 "/usr/include/c++/8/istream" 3 8737: explicit 8737: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 8737: # 732 "/usr/include/c++/8/istream" 3 8737: explicit 8737: 8737: operator bool() const 8737: { return _M_ok; } 8737: }; 8737: # 750 "/usr/include/c++/8/istream" 3 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 8737: 8737: template 8737: inline basic_istream& 8737: operator>>(basic_istream& __in, unsigned char& __c) 8737: { return (__in >> reinterpret_cast(__c)); } 8737: 8737: template 8737: inline basic_istream& 8737: operator>>(basic_istream& __in, signed char& __c) 8737: { return (__in >> reinterpret_cast(__c)); } 8737: # 792 "/usr/include/c++/8/istream" 3 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 8737: 8737: 8737: template<> 8737: basic_istream& 8737: operator>>(basic_istream& __in, char* __s); 8737: 8737: template 8737: inline basic_istream& 8737: operator>>(basic_istream& __in, unsigned char* __s) 8737: { return (__in >> reinterpret_cast(__s)); } 8737: 8737: template 8737: inline basic_istream& 8737: operator>>(basic_istream& __in, signed char* __s) 8737: { return (__in >> reinterpret_cast(__s)); } 8737: # 823 "/usr/include/c++/8/istream" 3 8737: template 8737: class basic_iostream 8737: : public basic_istream<_CharT, _Traits>, 8737: public basic_ostream<_CharT, _Traits> 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef typename _Traits::int_type int_type; 8737: typedef typename _Traits::pos_type pos_type; 8737: typedef typename _Traits::off_type off_type; 8737: typedef _Traits traits_type; 8737: 8737: 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 8737: : __istream_type(__sb), __ostream_type(__sb) { } 8737: 8737: 8737: 8737: 8737: virtual 8737: ~basic_iostream() { } 8737: 8737: protected: 8737: basic_iostream() 8737: : __istream_type(), __ostream_type() { } 8737: 8737: 8737: basic_iostream(const basic_iostream&) = delete; 8737: 8737: basic_iostream(basic_iostream&& __rhs) 8737: : __istream_type(std::move(__rhs)), __ostream_type(*this) 8737: { } 8737: 8737: 8737: 8737: basic_iostream& operator=(const basic_iostream&) = delete; 8737: 8737: basic_iostream& 8737: operator=(basic_iostream&& __rhs) 8737: { 8737: swap(__rhs); 8737: return *this; 8737: } 8737: 8737: void 8737: swap(basic_iostream& __rhs) 8737: { __istream_type::swap(__rhs); } 8737: 8737: }; 8737: # 906 "/usr/include/c++/8/istream" 3 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: ws(basic_istream<_CharT, _Traits>& __is); 8737: 8737: 8737: template 8737: basic_istream<_Ch, _Up>& 8737: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 8737: 8737: template 8737: struct __is_convertible_to_basic_istream_impl 8737: { 8737: using __istream_type = void; 8737: }; 8737: 8737: template 8737: using __do_is_convertible_to_basic_istream_impl = 8737: decltype(__is_convertible_to_basic_istream_test 8737: (declval::type*>())); 8737: 8737: template 8737: struct __is_convertible_to_basic_istream_impl 8737: <_Tp, 8737: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 8737: { 8737: using __istream_type = 8737: __do_is_convertible_to_basic_istream_impl<_Tp>; 8737: }; 8737: 8737: template 8737: struct __is_convertible_to_basic_istream 8737: : __is_convertible_to_basic_istream_impl<_Tp> 8737: { 8737: public: 8737: using type = __not_::__istream_type>>; 8737: constexpr static bool value = type::value; 8737: }; 8737: 8737: template 8737: struct __is_extractable : false_type {}; 8737: 8737: template 8737: struct __is_extractable<_Istream, _Tp, 8737: __void_t() 8737: >> declval<_Tp>())>> 8737: : true_type {}; 8737: 8737: template 8737: using __rvalue_istream_type = 8737: typename __is_convertible_to_basic_istream< 8737: _Istream>::__istream_type; 8737: # 972 "/usr/include/c++/8/istream" 3 8737: template 8737: inline 8737: typename enable_if<__and_<__not_>, 8737: __is_convertible_to_basic_istream<_Istream>, 8737: __is_extractable< 8737: __rvalue_istream_type<_Istream>, 8737: _Tp&&>>::value, 8737: __rvalue_istream_type<_Istream>>::type 8737: operator>>(_Istream&& __is, _Tp&& __x) 8737: { 8737: __rvalue_istream_type<_Istream> __ret_is = __is; 8737: __ret_is >> std::forward<_Tp>(__x); 8737: return __ret_is; 8737: } 8737: 8737: 8737: 8737: } 8737: 8737: # 1 "/usr/include/c++/8/bits/istream.tcc" 1 3 8737: # 37 "/usr/include/c++/8/bits/istream.tcc" 3 8737: 8737: # 38 "/usr/include/c++/8/bits/istream.tcc" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: basic_istream<_CharT, _Traits>::sentry:: 8737: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: if (__in.good()) 8737: try 8737: { 8737: if (__in.tie()) 8737: __in.tie()->flush(); 8737: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 8737: { 8737: const __int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = __in.rdbuf(); 8737: __int_type __c = __sb->sgetc(); 8737: 8737: const __ctype_type& __ct = __check_facet(__in._M_ctype); 8737: while (!traits_type::eq_int_type(__c, __eof) 8737: && __ct.is(ctype_base::space, 8737: traits_type::to_char_type(__c))) 8737: __c = __sb->snextc(); 8737: 8737: 8737: 8737: 8737: if (traits_type::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __in._M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { __in._M_setstate(ios_base::badbit); } 8737: 8737: if (__in.good() && __err == ios_base::goodbit) 8737: _M_ok = true; 8737: else 8737: { 8737: __err |= ios_base::failbit; 8737: __in.setstate(__err); 8737: } 8737: } 8737: 8737: template 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: _M_extract(_ValueT& __v) 8737: { 8737: sentry __cerb(*this, false); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8737: __ng.get(*this, 0, *this, __err, __v); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: operator>>(short& __n) 8737: { 8737: 8737: 8737: sentry __cerb(*this, false); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: long __l; 8737: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8737: __ng.get(*this, 0, *this, __err, __l); 8737: 8737: 8737: 8737: if (__l < __gnu_cxx::__numeric_traits::__min) 8737: { 8737: __err |= ios_base::failbit; 8737: __n = __gnu_cxx::__numeric_traits::__min; 8737: } 8737: else if (__l > __gnu_cxx::__numeric_traits::__max) 8737: { 8737: __err |= ios_base::failbit; 8737: __n = __gnu_cxx::__numeric_traits::__max; 8737: } 8737: else 8737: __n = short(__l); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: operator>>(int& __n) 8737: { 8737: 8737: 8737: sentry __cerb(*this, false); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: long __l; 8737: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8737: __ng.get(*this, 0, *this, __err, __l); 8737: 8737: 8737: 8737: if (__l < __gnu_cxx::__numeric_traits::__min) 8737: { 8737: __err |= ios_base::failbit; 8737: __n = __gnu_cxx::__numeric_traits::__min; 8737: } 8737: else if (__l > __gnu_cxx::__numeric_traits::__max) 8737: { 8737: __err |= ios_base::failbit; 8737: __n = __gnu_cxx::__numeric_traits::__max; 8737: } 8737: else 8737: __n = int(__l); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: operator>>(__streambuf_type* __sbout) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this, false); 8737: if (__cerb && __sbout) 8737: { 8737: try 8737: { 8737: bool __ineof; 8737: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 8737: __err |= ios_base::failbit; 8737: if (__ineof) 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::failbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::failbit); } 8737: } 8737: else if (!__sbout) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: typename basic_istream<_CharT, _Traits>::int_type 8737: basic_istream<_CharT, _Traits>:: 8737: get(void) 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: int_type __c = __eof; 8737: _M_gcount = 0; 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: __c = this->rdbuf()->sbumpc(); 8737: 8737: if (!traits_type::eq_int_type(__c, __eof)) 8737: _M_gcount = 1; 8737: else 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: if (!_M_gcount) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return __c; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: get(char_type& __c) 8737: { 8737: _M_gcount = 0; 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: const int_type __cb = this->rdbuf()->sbumpc(); 8737: 8737: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 8737: { 8737: _M_gcount = 1; 8737: __c = traits_type::to_char_type(__cb); 8737: } 8737: else 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: if (!_M_gcount) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: get(char_type* __s, streamsize __n, char_type __delim) 8737: { 8737: _M_gcount = 0; 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: const int_type __idelim = traits_type::to_int_type(__delim); 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: int_type __c = __sb->sgetc(); 8737: 8737: while (_M_gcount + 1 < __n 8737: && !traits_type::eq_int_type(__c, __eof) 8737: && !traits_type::eq_int_type(__c, __idelim)) 8737: { 8737: *__s++ = traits_type::to_char_type(__c); 8737: ++_M_gcount; 8737: __c = __sb->snextc(); 8737: } 8737: if (traits_type::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: 8737: 8737: if (__n > 0) 8737: *__s = char_type(); 8737: if (!_M_gcount) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: get(__streambuf_type& __sb, char_type __delim) 8737: { 8737: _M_gcount = 0; 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: const int_type __idelim = traits_type::to_int_type(__delim); 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __this_sb = this->rdbuf(); 8737: int_type __c = __this_sb->sgetc(); 8737: char_type __c2 = traits_type::to_char_type(__c); 8737: 8737: while (!traits_type::eq_int_type(__c, __eof) 8737: && !traits_type::eq_int_type(__c, __idelim) 8737: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 8737: { 8737: ++_M_gcount; 8737: __c = __this_sb->snextc(); 8737: __c2 = traits_type::to_char_type(__c); 8737: } 8737: if (traits_type::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: if (!_M_gcount) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: getline(char_type* __s, streamsize __n, char_type __delim) 8737: { 8737: _M_gcount = 0; 8737: ios_base::iostate __err = ios_base::goodbit; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: const int_type __idelim = traits_type::to_int_type(__delim); 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: int_type __c = __sb->sgetc(); 8737: 8737: while (_M_gcount + 1 < __n 8737: && !traits_type::eq_int_type(__c, __eof) 8737: && !traits_type::eq_int_type(__c, __idelim)) 8737: { 8737: *__s++ = traits_type::to_char_type(__c); 8737: __c = __sb->snextc(); 8737: ++_M_gcount; 8737: } 8737: if (traits_type::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: else 8737: { 8737: if (traits_type::eq_int_type(__c, __idelim)) 8737: { 8737: __sb->sbumpc(); 8737: ++_M_gcount; 8737: } 8737: else 8737: __err |= ios_base::failbit; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: 8737: 8737: if (__n > 0) 8737: *__s = char_type(); 8737: if (!_M_gcount) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: this->setstate(__err); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: ignore(void) 8737: { 8737: _M_gcount = 0; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: 8737: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 8737: __err |= ios_base::eofbit; 8737: else 8737: _M_gcount = 1; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: ignore(streamsize __n) 8737: { 8737: _M_gcount = 0; 8737: sentry __cerb(*this, true); 8737: if (__cerb && __n > 0) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: int_type __c = __sb->sgetc(); 8737: # 521 "/usr/include/c++/8/bits/istream.tcc" 3 8737: bool __large_ignore = false; 8737: while (true) 8737: { 8737: while (_M_gcount < __n 8737: && !traits_type::eq_int_type(__c, __eof)) 8737: { 8737: ++_M_gcount; 8737: __c = __sb->snextc(); 8737: } 8737: if (__n == __gnu_cxx::__numeric_traits::__max 8737: && !traits_type::eq_int_type(__c, __eof)) 8737: { 8737: _M_gcount = 8737: __gnu_cxx::__numeric_traits::__min; 8737: __large_ignore = true; 8737: } 8737: else 8737: break; 8737: } 8737: 8737: if (__large_ignore) 8737: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8737: 8737: if (traits_type::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: ignore(streamsize __n, int_type __delim) 8737: { 8737: _M_gcount = 0; 8737: sentry __cerb(*this, true); 8737: if (__cerb && __n > 0) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: int_type __c = __sb->sgetc(); 8737: 8737: 8737: bool __large_ignore = false; 8737: while (true) 8737: { 8737: while (_M_gcount < __n 8737: && !traits_type::eq_int_type(__c, __eof) 8737: && !traits_type::eq_int_type(__c, __delim)) 8737: { 8737: ++_M_gcount; 8737: __c = __sb->snextc(); 8737: } 8737: if (__n == __gnu_cxx::__numeric_traits::__max 8737: && !traits_type::eq_int_type(__c, __eof) 8737: && !traits_type::eq_int_type(__c, __delim)) 8737: { 8737: _M_gcount = 8737: __gnu_cxx::__numeric_traits::__min; 8737: __large_ignore = true; 8737: } 8737: else 8737: break; 8737: } 8737: 8737: if (__large_ignore) 8737: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8737: 8737: if (traits_type::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: else if (traits_type::eq_int_type(__c, __delim)) 8737: { 8737: if (_M_gcount 8737: < __gnu_cxx::__numeric_traits::__max) 8737: ++_M_gcount; 8737: __sb->sbumpc(); 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: typename basic_istream<_CharT, _Traits>::int_type 8737: basic_istream<_CharT, _Traits>:: 8737: peek(void) 8737: { 8737: int_type __c = traits_type::eof(); 8737: _M_gcount = 0; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: __c = this->rdbuf()->sgetc(); 8737: if (traits_type::eq_int_type(__c, traits_type::eof())) 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return __c; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: read(char_type* __s, streamsize __n) 8737: { 8737: _M_gcount = 0; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: _M_gcount = this->rdbuf()->sgetn(__s, __n); 8737: if (_M_gcount != __n) 8737: __err |= (ios_base::eofbit | ios_base::failbit); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: streamsize 8737: basic_istream<_CharT, _Traits>:: 8737: readsome(char_type* __s, streamsize __n) 8737: { 8737: _M_gcount = 0; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: 8737: const streamsize __num = this->rdbuf()->in_avail(); 8737: if (__num > 0) 8737: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 8737: else if (__num == -1) 8737: __err |= ios_base::eofbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return _M_gcount; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: putback(char_type __c) 8737: { 8737: 8737: 8737: _M_gcount = 0; 8737: 8737: this->clear(this->rdstate() & ~ios_base::eofbit); 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: if (!__sb 8737: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 8737: __err |= ios_base::badbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: unget(void) 8737: { 8737: 8737: 8737: _M_gcount = 0; 8737: 8737: this->clear(this->rdstate() & ~ios_base::eofbit); 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const int_type __eof = traits_type::eof(); 8737: __streambuf_type* __sb = this->rdbuf(); 8737: if (!__sb 8737: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 8737: __err |= ios_base::badbit; 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: int 8737: basic_istream<_CharT, _Traits>:: 8737: sync(void) 8737: { 8737: 8737: 8737: int __ret = -1; 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: __streambuf_type* __sb = this->rdbuf(); 8737: if (__sb) 8737: { 8737: if (__sb->pubsync() == -1) 8737: __err |= ios_base::badbit; 8737: else 8737: __ret = 0; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return __ret; 8737: } 8737: 8737: template 8737: typename basic_istream<_CharT, _Traits>::pos_type 8737: basic_istream<_CharT, _Traits>:: 8737: tellg(void) 8737: { 8737: 8737: 8737: pos_type __ret = pos_type(-1); 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: if (!this->fail()) 8737: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 8737: ios_base::in); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: } 8737: return __ret; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: seekg(pos_type __pos) 8737: { 8737: 8737: 8737: 8737: this->clear(this->rdstate() & ~ios_base::eofbit); 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: if (!this->fail()) 8737: { 8737: 8737: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8737: ios_base::in); 8737: 8737: 8737: if (__p == pos_type(off_type(-1))) 8737: __err |= ios_base::failbit; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: basic_istream<_CharT, _Traits>:: 8737: seekg(off_type __off, ios_base::seekdir __dir) 8737: { 8737: 8737: 8737: 8737: this->clear(this->rdstate() & ~ios_base::eofbit); 8737: sentry __cerb(*this, true); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: if (!this->fail()) 8737: { 8737: 8737: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8737: ios_base::in); 8737: 8737: 8737: if (__p == pos_type(off_type(-1))) 8737: __err |= ios_base::failbit; 8737: } 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: this->_M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { this->_M_setstate(ios_base::badbit); } 8737: if (__err) 8737: this->setstate(__err); 8737: } 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 8737: { 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef typename __istream_type::int_type __int_type; 8737: 8737: typename __istream_type::sentry __cerb(__in, false); 8737: if (__cerb) 8737: { 8737: ios_base::iostate __err = ios_base::goodbit; 8737: try 8737: { 8737: const __int_type __cb = __in.rdbuf()->sbumpc(); 8737: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 8737: __c = _Traits::to_char_type(__cb); 8737: else 8737: __err |= (ios_base::eofbit | ios_base::failbit); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __in._M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { __in._M_setstate(ios_base::badbit); } 8737: if (__err) 8737: __in.setstate(__err); 8737: } 8737: return __in; 8737: } 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 8737: { 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8737: typedef typename _Traits::int_type int_type; 8737: typedef _CharT char_type; 8737: typedef ctype<_CharT> __ctype_type; 8737: 8737: streamsize __extracted = 0; 8737: ios_base::iostate __err = ios_base::goodbit; 8737: typename __istream_type::sentry __cerb(__in, false); 8737: if (__cerb) 8737: { 8737: try 8737: { 8737: 8737: streamsize __num = __in.width(); 8737: if (__num <= 0) 8737: __num = __gnu_cxx::__numeric_traits::__max; 8737: 8737: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8737: 8737: const int_type __eof = _Traits::eof(); 8737: __streambuf_type* __sb = __in.rdbuf(); 8737: int_type __c = __sb->sgetc(); 8737: 8737: while (__extracted < __num - 1 8737: && !_Traits::eq_int_type(__c, __eof) 8737: && !__ct.is(ctype_base::space, 8737: _Traits::to_char_type(__c))) 8737: { 8737: *__s++ = _Traits::to_char_type(__c); 8737: ++__extracted; 8737: __c = __sb->snextc(); 8737: } 8737: if (_Traits::eq_int_type(__c, __eof)) 8737: __err |= ios_base::eofbit; 8737: 8737: 8737: 8737: *__s = char_type(); 8737: __in.width(0); 8737: } 8737: catch(__cxxabiv1::__forced_unwind&) 8737: { 8737: __in._M_setstate(ios_base::badbit); 8737: throw; 8737: } 8737: catch(...) 8737: { __in._M_setstate(ios_base::badbit); } 8737: } 8737: if (!__extracted) 8737: __err |= ios_base::failbit; 8737: if (__err) 8737: __in.setstate(__err); 8737: return __in; 8737: } 8737: 8737: 8737: template 8737: basic_istream<_CharT, _Traits>& 8737: ws(basic_istream<_CharT, _Traits>& __in) 8737: { 8737: typedef basic_istream<_CharT, _Traits> __istream_type; 8737: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8737: typedef typename __istream_type::int_type __int_type; 8737: typedef ctype<_CharT> __ctype_type; 8737: 8737: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8737: const __int_type __eof = _Traits::eof(); 8737: __streambuf_type* __sb = __in.rdbuf(); 8737: __int_type __c = __sb->sgetc(); 8737: 8737: while (!_Traits::eq_int_type(__c, __eof) 8737: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 8737: __c = __sb->snextc(); 8737: 8737: if (_Traits::eq_int_type(__c, __eof)) 8737: __in.setstate(ios_base::eofbit); 8737: return __in; 8737: } 8737: 8737: 8737: 8737: 8737: extern template class basic_istream; 8737: extern template istream& ws(istream&); 8737: extern template istream& operator>>(istream&, char&); 8737: extern template istream& operator>>(istream&, char*); 8737: extern template istream& operator>>(istream&, unsigned char&); 8737: extern template istream& operator>>(istream&, signed char&); 8737: extern template istream& operator>>(istream&, unsigned char*); 8737: extern template istream& operator>>(istream&, signed char*); 8737: 8737: extern template istream& istream::_M_extract(unsigned short&); 8737: extern template istream& istream::_M_extract(unsigned int&); 8737: extern template istream& istream::_M_extract(long&); 8737: extern template istream& istream::_M_extract(unsigned long&); 8737: extern template istream& istream::_M_extract(bool&); 8737: 8737: extern template istream& istream::_M_extract(long long&); 8737: extern template istream& istream::_M_extract(unsigned long long&); 8737: 8737: extern template istream& istream::_M_extract(float&); 8737: extern template istream& istream::_M_extract(double&); 8737: extern template istream& istream::_M_extract(long double&); 8737: extern template istream& istream::_M_extract(void*&); 8737: 8737: extern template class basic_iostream; 8737: 8737: 8737: extern template class basic_istream; 8737: extern template wistream& ws(wistream&); 8737: extern template wistream& operator>>(wistream&, wchar_t&); 8737: extern template wistream& operator>>(wistream&, wchar_t*); 8737: 8737: extern template wistream& wistream::_M_extract(unsigned short&); 8737: extern template wistream& wistream::_M_extract(unsigned int&); 8737: extern template wistream& wistream::_M_extract(long&); 8737: extern template wistream& wistream::_M_extract(unsigned long&); 8737: extern template wistream& wistream::_M_extract(bool&); 8737: 8737: extern template wistream& wistream::_M_extract(long long&); 8737: extern template wistream& wistream::_M_extract(unsigned long long&); 8737: 8737: extern template wistream& wistream::_M_extract(float&); 8737: extern template wistream& wistream::_M_extract(double&); 8737: extern template wistream& wistream::_M_extract(long double&); 8737: extern template wistream& wistream::_M_extract(void*&); 8737: 8737: extern template class basic_iostream; 8737: 8737: 8737: 8737: 8737: } 8737: # 992 "/usr/include/c++/8/istream" 2 3 8737: # 66 "/usr/include/c++/8/iterator" 2 3 8737: # 1 "/usr/include/c++/8/bits/stream_iterator.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/stream_iterator.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/stream_iterator.h" 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template, typename _Dist = ptrdiff_t> 8737: class istream_iterator 8737: : public iterator 8737: { 8737: public: 8737: typedef _CharT char_type; 8737: typedef _Traits traits_type; 8737: typedef basic_istream<_CharT, _Traits> istream_type; 8737: 8737: private: 8737: istream_type* _M_stream; 8737: _Tp _M_value; 8737: bool _M_ok; 8737: 8737: public: 8737: 8737: constexpr istream_iterator() 8737: : _M_stream(0), _M_value(), _M_ok(false) {} 8737: 8737: 8737: istream_iterator(istream_type& __s) 8737: : _M_stream(std::__addressof(__s)) 8737: { _M_read(); } 8737: 8737: istream_iterator(const istream_iterator& __obj) 8737: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 8737: _M_ok(__obj._M_ok) 8737: { } 8737: 8737: const _Tp& 8737: operator*() const 8737: { 8737: 8737: 8737: ; 8737: return _M_value; 8737: } 8737: 8737: const _Tp* 8737: operator->() const { return std::__addressof((operator*())); } 8737: 8737: istream_iterator& 8737: operator++() 8737: { 8737: 8737: 8737: ; 8737: _M_read(); 8737: return *this; 8737: } 8737: 8737: istream_iterator 8737: operator++(int) 8737: { 8737: 8737: 8737: ; 8737: istream_iterator __tmp = *this; 8737: _M_read(); 8737: return __tmp; 8737: } 8737: 8737: bool 8737: _M_equal(const istream_iterator& __x) const 8737: { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } 8737: 8737: private: 8737: void 8737: _M_read() 8737: { 8737: _M_ok = (_M_stream && *_M_stream) ? true : false; 8737: if (_M_ok) 8737: { 8737: *_M_stream >> _M_value; 8737: _M_ok = *_M_stream ? true : false; 8737: } 8737: } 8737: }; 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8737: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8737: { return __x._M_equal(__y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8737: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8737: { return !__x._M_equal(__y); } 8737: # 152 "/usr/include/c++/8/bits/stream_iterator.h" 3 8737: template > 8737: class ostream_iterator 8737: : public iterator 8737: { 8737: public: 8737: 8737: 8737: typedef _CharT char_type; 8737: typedef _Traits traits_type; 8737: typedef basic_ostream<_CharT, _Traits> ostream_type; 8737: 8737: 8737: private: 8737: ostream_type* _M_stream; 8737: const _CharT* _M_string; 8737: 8737: public: 8737: 8737: ostream_iterator(ostream_type& __s) 8737: : _M_stream(std::__addressof(__s)), _M_string(0) {} 8737: # 184 "/usr/include/c++/8/bits/stream_iterator.h" 3 8737: ostream_iterator(ostream_type& __s, const _CharT* __c) 8737: : _M_stream(&__s), _M_string(__c) { } 8737: 8737: 8737: ostream_iterator(const ostream_iterator& __obj) 8737: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 8737: 8737: 8737: 8737: ostream_iterator& 8737: operator=(const _Tp& __value) 8737: { 8737: 8737: 8737: ; 8737: *_M_stream << __value; 8737: if (_M_string) *_M_stream << _M_string; 8737: return *this; 8737: } 8737: 8737: ostream_iterator& 8737: operator*() 8737: { return *this; } 8737: 8737: ostream_iterator& 8737: operator++() 8737: { return *this; } 8737: 8737: ostream_iterator& 8737: operator++(int) 8737: { return *this; } 8737: }; 8737: 8737: 8737: 8737: 8737: } 8737: # 67 "/usr/include/c++/8/iterator" 2 3 8737: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) char *qstrdup(const char *); 8737: 8737: inline uint qstrlen(const char *str) 8737: { return str ? uint(strlen(str)) : 0; } 8737: 8737: inline uint qstrnlen(const char *str, uint maxlen) 8737: { 8737: uint length = 0; 8737: if (str) { 8737: while (length < maxlen && *str++) 8737: length++; 8737: } 8737: return length; 8737: } 8737: 8737: __attribute__((visibility("default"))) char *qstrcpy(char *dst, const char *src); 8737: __attribute__((visibility("default"))) char *qstrncpy(char *dst, const char *src, uint len); 8737: 8737: __attribute__((visibility("default"))) int qstrcmp(const char *str1, const char *str2); 8737: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const QByteArray &str2); 8737: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const char *str2); 8737: static inline int qstrcmp(const char *str1, const QByteArray &str2) 8737: { return -qstrcmp(str2, str1); } 8737: 8737: inline int qstrncmp(const char *str1, const char *str2, uint len) 8737: { 8737: return (str1 && str2) ? strncmp(str1, str2, len) 8737: : (str1 ? 1 : (str2 ? -1 : 0)); 8737: } 8737: __attribute__((visibility("default"))) int qstricmp(const char *, const char *); 8737: __attribute__((visibility("default"))) int qstrnicmp(const char *, const char *, uint len); 8737: 8737: 8737: __attribute__((visibility("default"))) int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); 8737: __attribute__((visibility("default"))) int qsnprintf(char *str, size_t n, const char *fmt, ...); 8737: 8737: 8737: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len); 8737: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len, Qt::ChecksumType standard); 8737: 8737: class QByteRef; 8737: class QString; 8737: class QDataStream; 8737: template class QList; 8737: 8737: typedef QArrayData QByteArrayData; 8737: 8737: template struct QStaticByteArrayData 8737: { 8737: QByteArrayData ba; 8737: char data[N + 1]; 8737: 8737: QByteArrayData *data_ptr() const 8737: { 8737: do { } while ((false) && (ba.ref.isStatic())); 8737: return const_cast(&ba); 8737: } 8737: }; 8737: 8737: struct QByteArrayDataPtr 8737: { 8737: QByteArrayData *ptr; 8737: }; 8737: # 155 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: class __attribute__((visibility("default"))) QByteArray 8737: { 8737: private: 8737: typedef QTypedArrayData Data; 8737: 8737: public: 8737: enum Base64Option { 8737: Base64Encoding = 0, 8737: Base64UrlEncoding = 1, 8737: 8737: KeepTrailingEquals = 0, 8737: OmitTrailingEquals = 2 8737: }; 8737: typedef QFlags Base64Options; 8737: 8737: inline QByteArray() noexcept; 8737: QByteArray(const char *, int size = -1); 8737: QByteArray(int size, char c); 8737: QByteArray(int size, Qt::Initialization); 8737: inline QByteArray(const QByteArray &) noexcept; 8737: inline ~QByteArray(); 8737: 8737: QByteArray &operator=(const QByteArray &) noexcept; 8737: QByteArray &operator=(const char *str); 8737: 8737: inline QByteArray(QByteArray && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8737: inline QByteArray &operator=(QByteArray &&other) noexcept 8737: { qSwap(d, other.d); return *this; } 8737: 8737: 8737: inline void swap(QByteArray &other) noexcept 8737: { qSwap(d, other.d); } 8737: 8737: inline int size() const; 8737: bool isEmpty() const; 8737: void resize(int size); 8737: 8737: QByteArray &fill(char c, int size = -1); 8737: 8737: int capacity() const; 8737: void reserve(int size); 8737: void squeeze(); 8737: 8737: 8737: 8737: 8737: 8737: char *data(); 8737: const char *data() const; 8737: inline const char *constData() const; 8737: inline void detach(); 8737: bool isDetached() const; 8737: inline bool isSharedWith(const QByteArray &other) const { return d == other.d; } 8737: void clear(); 8737: 8737: char at(int i) const; 8737: char operator[](int i) const; 8737: char operator[](uint i) const; 8737: QByteRef operator[](int i); 8737: QByteRef operator[](uint i); 8737: 8737: int indexOf(char c, int from = 0) const; 8737: int indexOf(const char *c, int from = 0) const; 8737: int indexOf(const QByteArray &a, int from = 0) const; 8737: int lastIndexOf(char c, int from = -1) const; 8737: int lastIndexOf(const char *c, int from = -1) const; 8737: int lastIndexOf(const QByteArray &a, int from = -1) const; 8737: 8737: bool contains(char c) const; 8737: bool contains(const char *a) const; 8737: bool contains(const QByteArray &a) const; 8737: int count(char c) const; 8737: int count(const char *a) const; 8737: int count(const QByteArray &a) const; 8737: 8737: [[nodiscard]] QByteArray left(int len) const; 8737: [[nodiscard]] QByteArray right(int len) const; 8737: [[nodiscard]] QByteArray mid(int index, int len = -1) const; 8737: 8737: bool startsWith(const QByteArray &a) const; 8737: bool startsWith(char c) const; 8737: bool startsWith(const char *c) const; 8737: 8737: bool endsWith(const QByteArray &a) const; 8737: bool endsWith(char c) const; 8737: bool endsWith(const char *c) const; 8737: 8737: void truncate(int pos); 8737: void chop(int n); 8737: # 253 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() const & 8737: { return toLower_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() && 8737: { return toLower_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() const & 8737: { return toUpper_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() && 8737: { return toUpper_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() const & 8737: { return trimmed_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() && 8737: { return trimmed_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() const & 8737: { return simplified_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() && 8737: { return simplified_helper(*this); } 8737: # 279 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: [[nodiscard]] QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; 8737: [[nodiscard]] QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; 8737: 8737: QByteArray &prepend(char c); 8737: QByteArray &prepend(int count, char c); 8737: QByteArray &prepend(const char *s); 8737: QByteArray &prepend(const char *s, int len); 8737: QByteArray &prepend(const QByteArray &a); 8737: QByteArray &append(char c); 8737: QByteArray &append(int count, char c); 8737: QByteArray &append(const char *s); 8737: QByteArray &append(const char *s, int len); 8737: QByteArray &append(const QByteArray &a); 8737: QByteArray &insert(int i, char c); 8737: QByteArray &insert(int i, int count, char c); 8737: QByteArray &insert(int i, const char *s); 8737: QByteArray &insert(int i, const char *s, int len); 8737: QByteArray &insert(int i, const QByteArray &a); 8737: QByteArray &remove(int index, int len); 8737: QByteArray &replace(int index, int len, const char *s); 8737: QByteArray &replace(int index, int len, const char *s, int alen); 8737: QByteArray &replace(int index, int len, const QByteArray &s); 8737: QByteArray &replace(char before, const char *after); 8737: QByteArray &replace(char before, const QByteArray &after); 8737: QByteArray &replace(const char *before, const char *after); 8737: QByteArray &replace(const char *before, int bsize, const char *after, int asize); 8737: QByteArray &replace(const QByteArray &before, const QByteArray &after); 8737: QByteArray &replace(const QByteArray &before, const char *after); 8737: QByteArray &replace(const char *before, const QByteArray &after); 8737: QByteArray &replace(char before, char after); 8737: QByteArray &operator+=(char c); 8737: QByteArray &operator+=(const char *s); 8737: QByteArray &operator+=(const QByteArray &a); 8737: 8737: QList split(char sep) const; 8737: 8737: [[nodiscard]] QByteArray repeated(int times) const; 8737: # 337 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: short toShort(bool *ok = nullptr, int base = 10) const; 8737: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8737: int toInt(bool *ok = nullptr, int base = 10) const; 8737: uint toUInt(bool *ok = nullptr, int base = 10) const; 8737: long toLong(bool *ok = nullptr, int base = 10) const; 8737: ulong toULong(bool *ok = nullptr, int base = 10) const; 8737: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8737: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8737: float toFloat(bool *ok = nullptr) const; 8737: double toDouble(bool *ok = nullptr) const; 8737: QByteArray toBase64(Base64Options options) const; 8737: QByteArray toBase64() const; 8737: QByteArray toHex() const; 8737: QByteArray toHex(char separator) const; 8737: QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), 8737: const QByteArray &include = QByteArray(), 8737: char percent = '%') const; 8737: 8737: QByteArray &setNum(short, int base = 10); 8737: QByteArray &setNum(ushort, int base = 10); 8737: QByteArray &setNum(int, int base = 10); 8737: QByteArray &setNum(uint, int base = 10); 8737: QByteArray &setNum(qlonglong, int base = 10); 8737: QByteArray &setNum(qulonglong, int base = 10); 8737: QByteArray &setNum(float, char f = 'g', int prec = 6); 8737: QByteArray &setNum(double, char f = 'g', int prec = 6); 8737: QByteArray &setRawData(const char *a, uint n); 8737: 8737: [[nodiscard]] static QByteArray number(int, int base = 10); 8737: [[nodiscard]] static QByteArray number(uint, int base = 10); 8737: [[nodiscard]] static QByteArray number(qlonglong, int base = 10); 8737: [[nodiscard]] static QByteArray number(qulonglong, int base = 10); 8737: [[nodiscard]] static QByteArray number(double, char f = 'g', int prec = 6); 8737: [[nodiscard]] static QByteArray fromRawData(const char *, int size); 8737: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64, Base64Options options); 8737: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64); 8737: [[nodiscard]] static QByteArray fromHex(const QByteArray &hexEncoded); 8737: [[nodiscard]] static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent = '%'); 8737: # 387 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: typedef char *iterator; 8737: typedef const char *const_iterator; 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: inline iterator begin(); 8737: inline const_iterator begin() const; 8737: inline const_iterator cbegin() const; 8737: inline const_iterator constBegin() const; 8737: inline iterator end(); 8737: inline const_iterator end() const; 8737: inline const_iterator cend() const; 8737: inline const_iterator constEnd() const; 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8737: 8737: 8737: typedef int size_type; 8737: typedef qptrdiff difference_type; 8737: typedef const char & const_reference; 8737: typedef char & reference; 8737: typedef char *pointer; 8737: typedef const char *const_pointer; 8737: typedef char value_type; 8737: void push_back(char c); 8737: void push_back(const char *c); 8737: void push_back(const QByteArray &a); 8737: void push_front(char c); 8737: void push_front(const char *c); 8737: void push_front(const QByteArray &a); 8737: 8737: static inline QByteArray fromStdString(const std::string &s); 8737: inline std::string toStdString() const; 8737: 8737: inline int count() const { return d->size; } 8737: int length() const { return d->size; } 8737: bool isNull() const; 8737: 8737: inline QByteArray(QByteArrayDataPtr dd) 8737: : d(static_cast(dd.ptr)) 8737: { 8737: } 8737: 8737: private: 8737: operator QNoImplicitBoolCast() const; 8737: Data *d; 8737: void reallocData(uint alloc, Data::AllocationOptions options); 8737: void expand(int i); 8737: QByteArray nulTerminated() const; 8737: 8737: static QByteArray toLower_helper(const QByteArray &a); 8737: static QByteArray toLower_helper(QByteArray &a); 8737: static QByteArray toUpper_helper(const QByteArray &a); 8737: static QByteArray toUpper_helper(QByteArray &a); 8737: static QByteArray trimmed_helper(const QByteArray &a); 8737: static QByteArray trimmed_helper(QByteArray &a); 8737: static QByteArray simplified_helper(const QByteArray &a); 8737: static QByteArray simplified_helper(QByteArray &a); 8737: 8737: friend class QByteRef; 8737: friend class QString; 8737: friend __attribute__((visibility("default"))) QByteArray qUncompress(const uchar *data, int nbytes); 8737: public: 8737: typedef Data * DataPtr; 8737: inline DataPtr &data_ptr() { return d; } 8737: }; 8737: 8737: 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); } 8737: 8737: inline QByteArray::QByteArray() noexcept : d(Data::sharedNull()) { } 8737: inline QByteArray::~QByteArray() { if (!d->ref.deref()) Data::deallocate(d); } 8737: inline int QByteArray::size() const 8737: { return d->size; } 8737: 8737: inline char QByteArray::at(int i) const 8737: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8737: inline char QByteArray::operator[](int i) const 8737: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8737: inline char QByteArray::operator[](uint i) const 8737: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8737: 8737: inline bool QByteArray::isEmpty() const 8737: { return d->size == 0; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline char *QByteArray::data() 8737: { detach(); return d->data(); } 8737: inline const char *QByteArray::data() const 8737: { return d->data(); } 8737: inline const char *QByteArray::constData() const 8737: { return d->data(); } 8737: inline void QByteArray::detach() 8737: { if (d->ref.isShared() || (d->offset != sizeof(QByteArrayData))) reallocData(uint(d->size) + 1u, d->detachFlags()); } 8737: inline bool QByteArray::isDetached() const 8737: { return !d->ref.isShared(); } 8737: inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d) 8737: { d->ref.ref(); } 8737: 8737: inline int QByteArray::capacity() const 8737: { return d->alloc ? d->alloc - 1 : 0; } 8737: 8737: inline void QByteArray::reserve(int asize) 8737: { 8737: if (d->ref.isShared() || uint(asize) + 1u > d->alloc) { 8737: reallocData(qMax(uint(size()), uint(asize)) + 1u, d->detachFlags() | Data::CapacityReserved); 8737: } else { 8737: 8737: 8737: d->capacityReserved = true; 8737: } 8737: } 8737: 8737: inline void QByteArray::squeeze() 8737: { 8737: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) { 8737: reallocData(uint(d->size) + 1u, d->detachFlags() & ~Data::CapacityReserved); 8737: } else { 8737: 8737: 8737: d->capacityReserved = false; 8737: } 8737: } 8737: 8737: class __attribute__((visibility("default"))) QByteRef { 8737: QByteArray &a; 8737: int i; 8737: inline QByteRef(QByteArray &array, int idx) 8737: : a(array),i(idx) {} 8737: friend class QByteArray; 8737: public: 8737: inline operator char() const 8737: { return i < a.d->size ? a.d->data()[i] : char(0); } 8737: inline QByteRef &operator=(char c) 8737: { if (i >= a.d->size) a.expand(i); else a.detach(); 8737: a.d->data()[i] = c; return *this; } 8737: inline QByteRef &operator=(const QByteRef &c) 8737: { if (i >= a.d->size) a.expand(i); else a.detach(); 8737: a.d->data()[i] = c.a.d->data()[c.i]; return *this; } 8737: inline bool operator==(char c) const 8737: { return a.d->data()[i] == c; } 8737: inline bool operator!=(char c) const 8737: { return a.d->data()[i] != c; } 8737: inline bool operator>(char c) const 8737: { return a.d->data()[i] > c; } 8737: inline bool operator>=(char c) const 8737: { return a.d->data()[i] >= c; } 8737: inline bool operator<(char c) const 8737: { return a.d->data()[i] < c; } 8737: inline bool operator<=(char c) const 8737: { return a.d->data()[i] <= c; } 8737: }; 8737: 8737: inline QByteRef QByteArray::operator[](int i) 8737: { do { } while ((false) && (i >= 0)); return QByteRef(*this, i); } 8737: inline QByteRef QByteArray::operator[](uint i) 8737: { return QByteRef(*this, i); } 8737: inline QByteArray::iterator QByteArray::begin() 8737: { detach(); return d->data(); } 8737: inline QByteArray::const_iterator QByteArray::begin() const 8737: { return d->data(); } 8737: inline QByteArray::const_iterator QByteArray::cbegin() const 8737: { return d->data(); } 8737: inline QByteArray::const_iterator QByteArray::constBegin() const 8737: { return d->data(); } 8737: inline QByteArray::iterator QByteArray::end() 8737: { detach(); return d->data() + d->size; } 8737: inline QByteArray::const_iterator QByteArray::end() const 8737: { return d->data() + d->size; } 8737: inline QByteArray::const_iterator QByteArray::cend() const 8737: { return d->data() + d->size; } 8737: inline QByteArray::const_iterator QByteArray::constEnd() const 8737: { return d->data() + d->size; } 8737: inline QByteArray &QByteArray::append(int n, char ch) 8737: { return insert(d->size, n, ch); } 8737: inline QByteArray &QByteArray::prepend(int n, char ch) 8737: { return insert(0, n, ch); } 8737: inline QByteArray &QByteArray::operator+=(char c) 8737: { return append(c); } 8737: inline QByteArray &QByteArray::operator+=(const char *s) 8737: { return append(s); } 8737: inline QByteArray &QByteArray::operator+=(const QByteArray &a) 8737: { return append(a); } 8737: inline void QByteArray::push_back(char c) 8737: { append(c); } 8737: inline void QByteArray::push_back(const char *c) 8737: { append(c); } 8737: inline void QByteArray::push_back(const QByteArray &a) 8737: { append(a); } 8737: inline void QByteArray::push_front(char c) 8737: { prepend(c); } 8737: inline void QByteArray::push_front(const char *c) 8737: { prepend(c); } 8737: inline void QByteArray::push_front(const QByteArray &a) 8737: { prepend(a); } 8737: inline bool QByteArray::contains(const QByteArray &a) const 8737: { return indexOf(a) != -1; } 8737: inline bool QByteArray::contains(char c) const 8737: { return indexOf(c) != -1; } 8737: inline bool operator==(const QByteArray &a1, const QByteArray &a2) noexcept 8737: { return (a1.size() == a2.size()) && (memcmp(a1.constData(), a2.constData(), a1.size())==0); } 8737: inline bool operator==(const QByteArray &a1, const char *a2) noexcept 8737: { return a2 ? qstrcmp(a1,a2) == 0 : a1.isEmpty(); } 8737: inline bool operator==(const char *a1, const QByteArray &a2) noexcept 8737: { return a1 ? qstrcmp(a1,a2) == 0 : a2.isEmpty(); } 8737: inline bool operator!=(const QByteArray &a1, const QByteArray &a2) noexcept 8737: { return !(a1==a2); } 8737: inline bool operator!=(const QByteArray &a1, const char *a2) noexcept 8737: { return a2 ? qstrcmp(a1,a2) != 0 : !a1.isEmpty(); } 8737: inline bool operator!=(const char *a1, const QByteArray &a2) noexcept 8737: { return a1 ? qstrcmp(a1,a2) != 0 : !a2.isEmpty(); } 8737: inline bool operator<(const QByteArray &a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) < 0; } 8737: inline bool operator<(const QByteArray &a1, const char *a2) noexcept 8737: { return qstrcmp(a1, a2) < 0; } 8737: inline bool operator<(const char *a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) < 0; } 8737: inline bool operator<=(const QByteArray &a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) <= 0; } 8737: inline bool operator<=(const QByteArray &a1, const char *a2) noexcept 8737: { return qstrcmp(a1, a2) <= 0; } 8737: inline bool operator<=(const char *a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) <= 0; } 8737: inline bool operator>(const QByteArray &a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) > 0; } 8737: inline bool operator>(const QByteArray &a1, const char *a2) noexcept 8737: { return qstrcmp(a1, a2) > 0; } 8737: inline bool operator>(const char *a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) > 0; } 8737: inline bool operator>=(const QByteArray &a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) >= 0; } 8737: inline bool operator>=(const QByteArray &a1, const char *a2) noexcept 8737: { return qstrcmp(a1, a2) >= 0; } 8737: inline bool operator>=(const char *a1, const QByteArray &a2) noexcept 8737: { return qstrcmp(a1, a2) >= 0; } 8737: # 642 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8737: inline bool QByteArray::contains(const char *c) const 8737: { return indexOf(c) != -1; } 8737: inline QByteArray &QByteArray::replace(char before, const char *c) 8737: { return replace(&before, 1, c, qstrlen(c)); } 8737: inline QByteArray &QByteArray::replace(const QByteArray &before, const char *c) 8737: { return replace(before.constData(), before.size(), c, qstrlen(c)); } 8737: inline QByteArray &QByteArray::replace(const char *before, const char *after) 8737: { return replace(before, qstrlen(before), after, qstrlen(after)); } 8737: 8737: inline QByteArray &QByteArray::setNum(short n, int base) 8737: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(ushort(n)), base); } 8737: inline QByteArray &QByteArray::setNum(ushort n, int base) 8737: { return setNum(qulonglong(n), base); } 8737: inline QByteArray &QByteArray::setNum(int n, int base) 8737: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(uint(n)), base); } 8737: inline QByteArray &QByteArray::setNum(uint n, int base) 8737: { return setNum(qulonglong(n), base); } 8737: inline QByteArray &QByteArray::setNum(float n, char f, int prec) 8737: { return setNum(double(n),f,prec); } 8737: 8737: inline std::string QByteArray::toStdString() const 8737: { return std::string(constData(), length()); } 8737: 8737: inline QByteArray QByteArray::fromStdString(const std::string &s) 8737: { return QByteArray(s.data(), int(s.size())); } 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QByteArray &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QByteArray &); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel = -1); 8737: __attribute__((visibility("default"))) QByteArray qUncompress(const uchar* data, int nbytes); 8737: inline QByteArray qCompress(const QByteArray& data, int compressionLevel = -1) 8737: { return qCompress(reinterpret_cast(data.constData()), data.size(), compressionLevel); } 8737: inline QByteArray qUncompress(const QByteArray& data) 8737: { return qUncompress(reinterpret_cast(data.constData()), data.size()); } 8737: 8737: 8737: 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); } 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 1 3 4 8737: # 688 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 2 3 4 8737: # 76 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: 8737: 8737: class QCharRef; 8737: class QRegExp; 8737: class QRegularExpression; 8737: class QRegularExpressionMatch; 8737: class QString; 8737: class QStringList; 8737: class QTextCodec; 8737: class QStringRef; 8737: template class QVector; 8737: 8737: class QLatin1String 8737: { 8737: public: 8737: constexpr inline QLatin1String() noexcept : m_size(0), m_data(nullptr) {} 8737: constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? int(strlen(s)) : 0), m_data(s) {} 8737: constexpr inline explicit QLatin1String(const char *s, int sz) noexcept : m_size(sz), m_data(s) {} 8737: inline explicit QLatin1String(const QByteArray &s) noexcept : m_size(int(qstrnlen(s.constData(), s.size()))), m_data(s.constData()) {} 8737: 8737: constexpr const char *latin1() const noexcept { return m_data; } 8737: constexpr int size() const noexcept { return m_size; } 8737: constexpr const char *data() const noexcept { return m_data; } 8737: 8737: constexpr QLatin1Char at(int i) const { return QLatin1Char(m_data[i]); } 8737: constexpr QLatin1Char operator[](int i) const { return at(i); } 8737: 8737: constexpr QLatin1String mid(int pos) const 8737: { return QLatin1String(m_data + pos, m_size - pos); } 8737: constexpr QLatin1String mid(int pos, int n) const 8737: { return QLatin1String(m_data + pos, n); } 8737: constexpr QLatin1String left(int n) const 8737: { return QLatin1String(m_data, n); } 8737: constexpr QLatin1String right(int n) const 8737: { return QLatin1String(m_data + m_size - n, n); } 8737: 8737: inline bool operator==(const QString &s) const noexcept; 8737: inline bool operator!=(const QString &s) const noexcept; 8737: inline bool operator>(const QString &s) const noexcept; 8737: inline bool operator<(const QString &s) const noexcept; 8737: inline bool operator>=(const QString &s) const noexcept; 8737: inline bool operator<=(const QString &s) const noexcept; 8737: # 135 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: private: 8737: int m_size; 8737: const char *m_data; 8737: }; 8737: 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"; } }; 8737: 8737: 8737: typedef QLatin1String QLatin1Literal; 8737: 8737: 8737: typedef QTypedArrayData QStringData; 8737: # 166 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: typedef char16_t qunicodechar; 8737: 8737: 8737: 8737: static_assert(bool(sizeof(qunicodechar) == 2), "qunicodechar must typedef an integral type of size 2") 8737: ; 8737: # 194 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: template 8737: struct QStaticStringData 8737: { 8737: QArrayData str; 8737: qunicodechar data[N + 1]; 8737: 8737: QStringData *data_ptr() const 8737: { 8737: do { } while ((false) && (str.ref.isStatic())); 8737: return const_cast(static_cast(&str)); 8737: } 8737: }; 8737: 8737: struct QStringDataPtr 8737: { 8737: QStringData *ptr; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QString 8737: { 8737: public: 8737: typedef QStringData Data; 8737: 8737: inline QString() noexcept; 8737: explicit QString(const QChar *unicode, int size = -1); 8737: QString(QChar c); 8737: QString(int size, QChar c); 8737: inline QString(QLatin1String latin1); 8737: inline QString(const QString &) noexcept; 8737: inline ~QString(); 8737: QString &operator=(QChar c); 8737: QString &operator=(const QString &) noexcept; 8737: QString &operator=(QLatin1String latin1); 8737: 8737: inline QString(QString && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8737: inline QString &operator=(QString &&other) noexcept 8737: { qSwap(d, other.d); return *this; } 8737: 8737: inline void swap(QString &other) noexcept { qSwap(d, other.d); } 8737: inline int size() const { return d->size; } 8737: inline int count() const { return d->size; } 8737: inline int length() const; 8737: inline bool isEmpty() const; 8737: void resize(int size); 8737: void resize(int size, QChar fillChar); 8737: 8737: QString &fill(QChar c, int size = -1); 8737: void truncate(int pos); 8737: void chop(int n); 8737: 8737: int capacity() const; 8737: inline void reserve(int size); 8737: inline void squeeze(); 8737: 8737: inline const QChar *unicode() const; 8737: inline QChar *data(); 8737: inline const QChar *data() const; 8737: inline const QChar *constData() const; 8737: 8737: inline void detach(); 8737: inline bool isDetached() const; 8737: inline bool isSharedWith(const QString &other) const { return d == other.d; } 8737: void clear(); 8737: 8737: inline const QChar at(int i) const; 8737: const QChar operator[](int i) const; 8737: QCharRef operator[](int i); 8737: const QChar operator[](uint i) const; 8737: QCharRef operator[](uint i); 8737: 8737: [[nodiscard]] QString arg(qlonglong a, int fieldwidth=0, int base=10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(qulonglong a, int fieldwidth=0, int base=10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(long a, int fieldwidth=0, int base=10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(ulong a, int fieldwidth=0, int base=10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(int a, int fieldWidth = 0, int base = 10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(uint a, int fieldWidth = 0, int base = 10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(short a, int fieldWidth = 0, int base = 10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(ushort a, int fieldWidth = 0, int base = 10, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(char a, int fieldWidth = 0, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(QChar a, int fieldWidth = 0, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(const QString &a, int fieldWidth = 0, 8737: QChar fillChar = QLatin1Char(' ')) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6, 8737: const QString &a7) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6, 8737: const QString &a7, const QString &a8) const; 8737: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6, 8737: const QString &a7, const QString &a8, const QString &a9) const; 8737: 8737: QString &vsprintf(const char *format, va_list ap) __attribute__((format(printf, (2), (0)))); 8737: QString &sprintf(const char *format, ...) __attribute__((format(printf, (2), (3)))); 8737: static QString vasprintf(const char *format, va_list ap) __attribute__((format(printf, (1), (0)))); 8737: static QString asprintf(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8737: 8737: int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int indexOf(QLatin1String s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int indexOf(const QStringRef &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(QLatin1String s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(const QStringRef &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: inline bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline bool contains(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: 8737: int indexOf(const QRegExp &, int from = 0) const; 8737: int lastIndexOf(const QRegExp &, int from = -1) const; 8737: inline bool contains(const QRegExp &rx) const { return indexOf(rx) != -1; } 8737: int count(const QRegExp &) const; 8737: 8737: int indexOf(QRegExp &, int from = 0) const; 8737: int lastIndexOf(QRegExp &, int from = -1) const; 8737: inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; } 8737: 8737: 8737: 8737: int indexOf(const QRegularExpression &re, int from = 0) const; 8737: int indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8737: int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8737: int lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8737: bool contains(const QRegularExpression &re) const; 8737: bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; 8737: int count(const QRegularExpression &re) const; 8737: 8737: 8737: enum SectionFlag { 8737: SectionDefault = 0x00, 8737: SectionSkipEmpty = 0x01, 8737: SectionIncludeLeadingSep = 0x02, 8737: SectionIncludeTrailingSep = 0x04, 8737: SectionCaseInsensitiveSeps = 0x08 8737: }; 8737: typedef QFlags SectionFlags; 8737: 8737: QString section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8737: QString section(const QString &in_sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8737: 8737: QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8737: 8737: 8737: QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8737: 8737: [[nodiscard]] QString left(int n) const; 8737: [[nodiscard]] QString right(int n) const; 8737: [[nodiscard]] QString mid(int position, int n = -1) const; 8737: [[nodiscard]] QStringRef leftRef(int n) const; 8737: [[nodiscard]] QStringRef rightRef(int n) const; 8737: [[nodiscard]] QStringRef midRef(int position, int n = -1) const; 8737: 8737: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: [[nodiscard]] QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8737: [[nodiscard]] QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8737: # 393 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() const & 8737: { return toLower_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() && 8737: { return toLower_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() const & 8737: { return toUpper_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() && 8737: { return toUpper_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() const & 8737: { return toCaseFolded_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() && 8737: { return toCaseFolded_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() const & 8737: { return trimmed_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() && 8737: { return trimmed_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() const & 8737: { return simplified_helper(*this); } 8737: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() && 8737: { return simplified_helper(*this); } 8737: # 423 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: [[nodiscard]] QString toHtmlEscaped() const; 8737: 8737: QString &insert(int i, QChar c); 8737: QString &insert(int i, const QChar *uc, int len); 8737: inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); } 8737: inline QString &insert(int i, const QStringRef &s); 8737: QString &insert(int i, QLatin1String s); 8737: QString &append(QChar c); 8737: QString &append(const QChar *uc, int len); 8737: QString &append(const QString &s); 8737: QString &append(const QStringRef &s); 8737: QString &append(QLatin1String s); 8737: inline QString &prepend(QChar c) { return insert(0, c); } 8737: inline QString &prepend(const QChar *uc, int len) { return insert(0, uc, len); } 8737: inline QString &prepend(const QString &s) { return insert(0, s); } 8737: inline QString &prepend(const QStringRef &s) { return insert(0, s); } 8737: inline QString &prepend(QLatin1String s) { return insert(0, s); } 8737: 8737: inline QString &operator+=(QChar c) { 8737: if (d->ref.isShared() || uint(d->size) + 2u > d->alloc) 8737: reallocData(uint(d->size) + 2u, true); 8737: d->data()[d->size++] = c.unicode(); 8737: d->data()[d->size] = '\0'; 8737: return *this; 8737: } 8737: 8737: inline QString &operator+=(QChar::SpecialCharacter c) { return append(QChar(c)); } 8737: inline QString &operator+=(const QString &s) { return append(s); } 8737: inline QString &operator+=(const QStringRef &s) { return append(s); } 8737: inline QString &operator+=(QLatin1String s) { return append(s); } 8737: 8737: QString &remove(int i, int len); 8737: QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(int i, int len, QChar after); 8737: QString &replace(int i, int len, const QChar *s, int slen); 8737: QString &replace(int i, int len, const QString &after); 8737: QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(const QString &before, const QString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: 8737: QString &replace(const QRegExp &rx, const QString &after); 8737: inline QString &remove(const QRegExp &rx) 8737: { return replace(rx, QString()); } 8737: 8737: 8737: QString &replace(const QRegularExpression &re, const QString &after); 8737: inline QString &remove(const QRegularExpression &re) 8737: { return replace(re, QString()); } 8737: 8737: 8737: enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; 8737: 8737: [[nodiscard]] QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: [[nodiscard]] QVector splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: [[nodiscard]] QStringList split(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: [[nodiscard]] QVector splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: [[nodiscard]] QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8737: [[nodiscard]] QVector splitRef(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8737: 8737: 8737: [[nodiscard]] QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8737: [[nodiscard]] QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8737: 8737: enum NormalizationForm { 8737: NormalizationForm_D, 8737: NormalizationForm_C, 8737: NormalizationForm_KD, 8737: NormalizationForm_KC 8737: }; 8737: [[nodiscard]] QString normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const; 8737: 8737: [[nodiscard]] QString repeated(int times) const; 8737: 8737: const ushort *utf16() const; 8737: 8737: 8737: [[nodiscard]] QByteArray toLatin1() const & 8737: { return toLatin1_helper(*this); } 8737: [[nodiscard]] QByteArray toLatin1() && 8737: { return toLatin1_helper_inplace(*this); } 8737: [[nodiscard]] QByteArray toUtf8() const & 8737: { return toUtf8_helper(*this); } 8737: [[nodiscard]] QByteArray toUtf8() && 8737: { return toUtf8_helper(*this); } 8737: [[nodiscard]] QByteArray toLocal8Bit() const & 8737: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8737: [[nodiscard]] QByteArray toLocal8Bit() && 8737: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8737: 8737: 8737: 8737: 8737: 8737: [[nodiscard]] QVector toUcs4() const; 8737: 8737: 8737: static inline QString fromLatin1(const char *str, int size = -1) 8737: { 8737: QStringDataPtr dataPtr = { fromLatin1_helper(str, (str && size == -1) ? int(strlen(str)) : size) }; 8737: return QString(dataPtr); 8737: } 8737: static inline QString fromUtf8(const char *str, int size = -1) 8737: { 8737: return fromUtf8_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8737: } 8737: static inline QString fromLocal8Bit(const char *str, int size = -1) 8737: { 8737: return fromLocal8Bit_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8737: } 8737: static inline QString fromLatin1(const QByteArray &str) 8737: { return str.isNull() ? QString() : fromLatin1(str.data(), qstrnlen(str.constData(), str.size())); } 8737: static inline QString fromUtf8(const QByteArray &str) 8737: { return str.isNull() ? QString() : fromUtf8(str.data(), qstrnlen(str.constData(), str.size())); } 8737: static inline QString fromLocal8Bit(const QByteArray &str) 8737: { return str.isNull() ? QString() : fromLocal8Bit(str.data(), qstrnlen(str.constData(), str.size())); } 8737: static QString fromUtf16(const ushort *, int size = -1); 8737: static QString fromUcs4(const uint *, int size = -1); 8737: static QString fromRawData(const QChar *, int size); 8737: 8737: 8737: static QString fromUtf16(const char16_t *str, int size = -1) 8737: { return fromUtf16(reinterpret_cast(str), size); } 8737: static QString fromUcs4(const char32_t *str, int size = -1) 8737: { return fromUcs4(reinterpret_cast(str), size); } 8737: # 570 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: inline int toWCharArray(wchar_t *array) const; 8737: [[nodiscard]] static inline QString fromWCharArray(const wchar_t *string, int size = -1); 8737: 8737: QString &setRawData(const QChar *unicode, int size); 8737: QString &setUnicode(const QChar *unicode, int size); 8737: inline QString &setUtf16(const ushort *utf16, int size); 8737: 8737: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8737: int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8737: 8737: static inline int compare(const QString &s1, const QString &s2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8737: { return s1.compare(s2, cs); } 8737: 8737: static inline int compare(const QString &s1, QLatin1String s2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8737: { return s1.compare(s2, cs); } 8737: static inline int compare(QLatin1String s1, const QString &s2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8737: { return -s2.compare(s1, cs); } 8737: 8737: inline int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8737: static int compare(const QString &s1, const QStringRef &s2, 8737: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8737: 8737: int localeAwareCompare(const QString& s) const; 8737: static int localeAwareCompare(const QString& s1, const QString& s2) 8737: { return s1.localeAwareCompare(s2); } 8737: 8737: int localeAwareCompare(const QStringRef &s) const; 8737: static int localeAwareCompare(const QString& s1, const QStringRef& s2); 8737: 8737: 8737: short toShort(bool *ok=nullptr, int base=10) const; 8737: ushort toUShort(bool *ok=nullptr, int base=10) const; 8737: int toInt(bool *ok=nullptr, int base=10) const; 8737: uint toUInt(bool *ok=nullptr, int base=10) const; 8737: long toLong(bool *ok=nullptr, int base=10) const; 8737: ulong toULong(bool *ok=nullptr, int base=10) const; 8737: qlonglong toLongLong(bool *ok=nullptr, int base=10) const; 8737: qulonglong toULongLong(bool *ok=nullptr, int base=10) const; 8737: float toFloat(bool *ok=nullptr) const; 8737: double toDouble(bool *ok=nullptr) const; 8737: 8737: QString &setNum(short, int base=10); 8737: QString &setNum(ushort, int base=10); 8737: QString &setNum(int, int base=10); 8737: QString &setNum(uint, int base=10); 8737: QString &setNum(long, int base=10); 8737: QString &setNum(ulong, int base=10); 8737: QString &setNum(qlonglong, int base=10); 8737: QString &setNum(qulonglong, int base=10); 8737: QString &setNum(float, char f='g', int prec=6); 8737: QString &setNum(double, char f='g', int prec=6); 8737: 8737: static QString number(int, int base=10); 8737: static QString number(uint, int base=10); 8737: static QString number(long, int base=10); 8737: static QString number(ulong, int base=10); 8737: static QString number(qlonglong, int base=10); 8737: static QString number(qulonglong, int base=10); 8737: static QString number(double, char f='g', int prec=6); 8737: 8737: friend __attribute__((visibility("default"))) bool operator==(const QString &s1, const QString &s2) noexcept; 8737: friend __attribute__((visibility("default"))) bool operator<(const QString &s1, const QString &s2) noexcept; 8737: friend inline bool operator>(const QString &s1, const QString &s2) noexcept { return s2 < s1; } 8737: friend inline bool operator!=(const QString &s1, const QString &s2) noexcept { return !(s1 == s2); } 8737: friend inline bool operator<=(const QString &s1, const QString &s2) noexcept { return !(s1 > s2); } 8737: friend inline bool operator>=(const QString &s1, const QString &s2) noexcept { return !(s1 < s2); } 8737: 8737: bool operator==(QLatin1String s) const noexcept; 8737: bool operator<(QLatin1String s) const noexcept; 8737: bool operator>(QLatin1String s) const noexcept; 8737: inline bool operator!=(QLatin1String s) const noexcept { return !operator==(s); } 8737: inline bool operator<=(QLatin1String s) const noexcept { return !operator>(s); } 8737: inline bool operator>=(QLatin1String s) const noexcept { return !operator<(s); } 8737: # 720 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: typedef QChar *iterator; 8737: typedef const QChar *const_iterator; 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: inline iterator begin(); 8737: inline const_iterator begin() const; 8737: inline const_iterator cbegin() const; 8737: inline const_iterator constBegin() const; 8737: inline iterator end(); 8737: inline const_iterator end() const; 8737: inline const_iterator cend() const; 8737: inline const_iterator constEnd() const; 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8737: 8737: 8737: typedef int size_type; 8737: typedef qptrdiff difference_type; 8737: typedef const QChar & const_reference; 8737: typedef QChar & reference; 8737: typedef QChar *pointer; 8737: typedef const QChar *const_pointer; 8737: typedef QChar value_type; 8737: inline void push_back(QChar c) { append(c); } 8737: inline void push_back(const QString &s) { append(s); } 8737: inline void push_front(QChar c) { prepend(c); } 8737: inline void push_front(const QString &s) { prepend(s); } 8737: 8737: static inline QString fromStdString(const std::string &s); 8737: inline std::string toStdString() const; 8737: static inline QString fromStdWString(const std::wstring &s); 8737: inline std::wstring toStdWString() const; 8737: 8737: 8737: static inline QString fromStdU16String(const std::u16string &s); 8737: inline std::u16string toStdU16String() const; 8737: static inline QString fromStdU32String(const std::u32string &s); 8737: inline std::u32string toStdU32String() const; 8737: # 774 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: struct Null { }; 8737: 8737: static const Null null; 8737: inline QString(const Null &): d(Data::sharedNull()) {} 8737: inline QString &operator=(const Null &) { *this = QString(); return *this; } 8737: 8737: inline bool isNull() const { return d == Data::sharedNull(); } 8737: 8737: 8737: bool isSimpleText() const; 8737: bool isRightToLeft() const; 8737: 8737: QString(int size, Qt::Initialization); 8737: constexpr inline QString(QStringDataPtr dd) : d(dd.ptr) {} 8737: 8737: private: 8737: 8737: QString &operator+=(const char *s); 8737: QString &operator+=(const QByteArray &s); 8737: QString(const char *ch); 8737: QString(const QByteArray &a); 8737: QString &operator=(const char *ch); 8737: QString &operator=(const QByteArray &a); 8737: 8737: 8737: Data *d; 8737: 8737: friend inline bool operator==(QChar, const QString &) noexcept; 8737: friend inline bool operator< (QChar, const QString &) noexcept; 8737: friend inline bool operator> (QChar, const QString &) noexcept; 8737: friend inline bool operator==(QChar, const QStringRef &) noexcept; 8737: friend inline bool operator< (QChar, const QStringRef &) noexcept; 8737: friend inline bool operator> (QChar, const QStringRef &) noexcept; 8737: friend inline bool operator==(QChar, QLatin1String) noexcept; 8737: friend inline bool operator< (QChar, QLatin1String) noexcept; 8737: friend inline bool operator> (QChar, QLatin1String) noexcept; 8737: 8737: void reallocData(uint alloc, bool grow = false); 8737: 8737: void expand(int i); 8737: 8737: QString multiArg(int numArgs, const QString **args) const; 8737: static int compare_helper(const QChar *data1, int length1, 8737: const QChar *data2, int length2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8737: static int compare_helper(const QChar *data1, int length1, 8737: const char *data2, int length2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: static int compare_helper(const QChar *data1, int length1, 8737: QLatin1String s2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8737: static int localeAwareCompare_helper(const QChar *data1, int length1, 8737: const QChar *data2, int length2); 8737: static QString toLower_helper(const QString &str); 8737: static QString toLower_helper(QString &str); 8737: static QString toUpper_helper(const QString &str); 8737: static QString toUpper_helper(QString &str); 8737: static QString toCaseFolded_helper(const QString &str); 8737: static QString toCaseFolded_helper(QString &str); 8737: static QString trimmed_helper(const QString &str); 8737: static QString trimmed_helper(QString &str); 8737: static QString simplified_helper(const QString &str); 8737: static QString simplified_helper(QString &str); 8737: static Data *fromLatin1_helper(const char *str, int size = -1); 8737: static Data *fromAscii_helper(const char *str, int size = -1); 8737: static QString fromUtf8_helper(const char *str, int size); 8737: static QString fromLocal8Bit_helper(const char *, int size); 8737: static QByteArray toLatin1_helper(const QString &); 8737: static QByteArray toLatin1_helper(const QChar *data, int size); 8737: static QByteArray toLatin1_helper_inplace(QString &); 8737: static QByteArray toUtf8_helper(const QString &); 8737: static QByteArray toLocal8Bit_helper(const QChar *data, int size); 8737: static int toUcs4_helper(const ushort *uc, int length, uint *out); 8737: static qlonglong toIntegral_helper(const QChar *data, int len, bool *ok, int base); 8737: static qulonglong toIntegral_helper(const QChar *data, uint len, bool *ok, int base); 8737: void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); 8737: friend class QCharRef; 8737: friend class QTextCodec; 8737: friend class QStringRef; 8737: friend class QByteArray; 8737: friend class QCollator; 8737: friend struct QAbstractConcatenable; 8737: 8737: template static 8737: T toIntegral_helper(const QChar *data, int len, bool *ok, int base) 8737: { 8737: 8737: const bool isUnsigned = T(0) < T(-1); 8737: typedef typename QtPrivate::QConditional::Type Int64; 8737: typedef typename QtPrivate::QConditional::Type Int32; 8737: 8737: 8737: Int64 val = toIntegral_helper(data, Int32(len), ok, base); 8737: if (T(val) != val) { 8737: if (ok) 8737: *ok = false; 8737: val = 0; 8737: } 8737: return T(val); 8737: } 8737: 8737: public: 8737: typedef Data * DataPtr; 8737: inline DataPtr &data_ptr() { return d; } 8737: }; 8737: 8737: inline QString::QString(QLatin1String aLatin1) : d(fromLatin1_helper(aLatin1.latin1(), aLatin1.size())) 8737: { } 8737: inline int QString::length() const 8737: { return d->size; } 8737: inline const QChar QString::at(int i) const 8737: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8737: inline const QChar QString::operator[](int i) const 8737: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8737: inline const QChar QString::operator[](uint i) const 8737: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8737: inline bool QString::isEmpty() const 8737: { return d->size == 0; } 8737: inline const QChar *QString::unicode() const 8737: { return reinterpret_cast(d->data()); } 8737: inline const QChar *QString::data() const 8737: { return reinterpret_cast(d->data()); } 8737: inline QChar *QString::data() 8737: { detach(); return reinterpret_cast(d->data()); } 8737: inline const QChar *QString::constData() const 8737: { return reinterpret_cast(d->data()); } 8737: inline void QString::detach() 8737: { if (d->ref.isShared() || (d->offset != sizeof(QStringData))) reallocData(uint(d->size) + 1u); } 8737: inline bool QString::isDetached() const 8737: { return !d->ref.isShared(); } 8737: inline void QString::clear() 8737: { if (!isNull()) *this = QString(); } 8737: inline QString::QString(const QString &other) noexcept : d(other.d) 8737: { do { } while ((false) && (&other != this)); d->ref.ref(); } 8737: inline int QString::capacity() const 8737: { return d->alloc ? d->alloc - 1 : 0; } 8737: inline QString &QString::setNum(short n, int base) 8737: { return setNum(qlonglong(n), base); } 8737: inline QString &QString::setNum(ushort n, int base) 8737: { return setNum(qulonglong(n), base); } 8737: inline QString &QString::setNum(int n, int base) 8737: { return setNum(qlonglong(n), base); } 8737: inline QString &QString::setNum(uint n, int base) 8737: { return setNum(qulonglong(n), base); } 8737: inline QString &QString::setNum(long n, int base) 8737: { return setNum(qlonglong(n), base); } 8737: inline QString &QString::setNum(ulong n, int base) 8737: { return setNum(qulonglong(n), base); } 8737: inline QString &QString::setNum(float n, char f, int prec) 8737: { return setNum(double(n),f,prec); } 8737: inline QString QString::arg(int a, int fieldWidth, int base, QChar fillChar) const 8737: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8737: inline QString QString::arg(uint a, int fieldWidth, int base, QChar fillChar) const 8737: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8737: inline QString QString::arg(long a, int fieldWidth, int base, QChar fillChar) const 8737: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8737: inline QString QString::arg(ulong a, int fieldWidth, int base, QChar fillChar) const 8737: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8737: inline QString QString::arg(short a, int fieldWidth, int base, QChar fillChar) const 8737: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8737: inline QString QString::arg(ushort a, int fieldWidth, int base, QChar fillChar) const 8737: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8737: inline QString QString::arg(const QString &a1, const QString &a2) const 8737: { const QString *args[2] = { &a1, &a2 }; return multiArg(2, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const 8737: { const QString *args[3] = { &a1, &a2, &a3 }; return multiArg(3, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4) const 8737: { const QString *args[4] = { &a1, &a2, &a3, &a4 }; return multiArg(4, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5) const 8737: { const QString *args[5] = { &a1, &a2, &a3, &a4, &a5 }; return multiArg(5, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6) const 8737: { const QString *args[6] = { &a1, &a2, &a3, &a4, &a5, &a6 }; return multiArg(6, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6, 8737: const QString &a7) const 8737: { const QString *args[7] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; return multiArg(7, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6, 8737: const QString &a7, const QString &a8) const 8737: { const QString *args[8] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; return multiArg(8, args); } 8737: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8737: const QString &a4, const QString &a5, const QString &a6, 8737: const QString &a7, const QString &a8, const QString &a9) const 8737: { const QString *args[9] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &a9 }; return multiArg(9, args); } 8737: 8737: inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const 8737: { return section(QString(asep), astart, aend, aflags); } 8737: 8737: 8737: # 965 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 965 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: 8737: 8737: 8737: 8737: inline int QString::toWCharArray(wchar_t *array) const 8737: { 8737: if (sizeof(wchar_t) == sizeof(QChar)) { 8737: memcpy(array, d->data(), sizeof(QChar) * size()); 8737: return size(); 8737: } else { 8737: return toUcs4_helper(d->data(), size(), reinterpret_cast(array)); 8737: } 8737: } 8737: 8737: 8737: # 979 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 979 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: 8737: 8737: inline QString QString::fromWCharArray(const wchar_t *string, int size) 8737: { 8737: return sizeof(wchar_t) == sizeof(QChar) ? fromUtf16(reinterpret_cast(string), size) 8737: : fromUcs4(reinterpret_cast(string), size); 8737: } 8737: 8737: 8737: class __attribute__((visibility("default"))) QCharRef { 8737: QString &s; 8737: int i; 8737: inline QCharRef(QString &str, int idx) 8737: : s(str),i(idx) {} 8737: friend class QString; 8737: public: 8737: 8737: 8737: 8737: 8737: inline operator QChar() const 8737: { return i < s.d->size ? s.d->data()[i] : 0; } 8737: inline QCharRef &operator=(QChar c) 8737: { if (i >= s.d->size) s.resize(i + 1, QLatin1Char(' ')); else s.detach(); 8737: s.d->data()[i] = c.unicode(); return *this; } 8737: # 1012 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); } 8737: inline QCharRef &operator=(ushort rc) { return operator=(QChar(rc)); } 8737: inline QCharRef &operator=(short rc) { return operator=(QChar(rc)); } 8737: inline QCharRef &operator=(uint rc) { return operator=(QChar(rc)); } 8737: inline QCharRef &operator=(int rc) { return operator=(QChar(rc)); } 8737: 8737: 8737: inline bool isNull() const { return QChar(*this).isNull(); } 8737: inline bool isPrint() const { return QChar(*this).isPrint(); } 8737: inline bool isPunct() const { return QChar(*this).isPunct(); } 8737: inline bool isSpace() const { return QChar(*this).isSpace(); } 8737: inline bool isMark() const { return QChar(*this).isMark(); } 8737: inline bool isLetter() const { return QChar(*this).isLetter(); } 8737: inline bool isNumber() const { return QChar(*this).isNumber(); } 8737: inline bool isLetterOrNumber() { return QChar(*this).isLetterOrNumber(); } 8737: inline bool isDigit() const { return QChar(*this).isDigit(); } 8737: inline bool isLower() const { return QChar(*this).isLower(); } 8737: inline bool isUpper() const { return QChar(*this).isUpper(); } 8737: inline bool isTitleCase() const { return QChar(*this).isTitleCase(); } 8737: 8737: inline int digitValue() const { return QChar(*this).digitValue(); } 8737: QChar toLower() const { return QChar(*this).toLower(); } 8737: QChar toUpper() const { return QChar(*this).toUpper(); } 8737: QChar toTitleCase () const { return QChar(*this).toTitleCase(); } 8737: 8737: QChar::Category category() const { return QChar(*this).category(); } 8737: QChar::Direction direction() const { return QChar(*this).direction(); } 8737: QChar::JoiningType joiningType() const { return QChar(*this).joiningType(); } 8737: 8737: QChar::Joining joining() const 8737: { 8737: switch (QChar(*this).joiningType()) { 8737: case QChar::Joining_Causing: return QChar::Center; 8737: case QChar::Joining_Dual: return QChar::Dual; 8737: case QChar::Joining_Right: return QChar::Right; 8737: case QChar::Joining_None: 8737: case QChar::Joining_Left: 8737: case QChar::Joining_Transparent: 8737: default: return QChar::OtherJoining; 8737: } 8737: } 8737: 8737: bool hasMirrored() const { return QChar(*this).hasMirrored(); } 8737: QChar mirroredChar() const { return QChar(*this).mirroredChar(); } 8737: QString decomposition() const { return QChar(*this).decomposition(); } 8737: QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } 8737: uchar combiningClass() const { return QChar(*this).combiningClass(); } 8737: 8737: inline QChar::Script script() const { return QChar(*this).script(); } 8737: 8737: QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } 8737: 8737: inline uchar cell() const { return QChar(*this).cell(); } 8737: inline uchar row() const { return QChar(*this).row(); } 8737: inline void setCell(uchar cell); 8737: inline void setRow(uchar row); 8737: 8737: 8737: 8737: 8737: char toLatin1() const { return QChar(*this).toLatin1(); } 8737: ushort unicode() const { return QChar(*this).unicode(); } 8737: ushort& unicode() { return s.data()[i].unicode(); } 8737: 8737: }; 8737: 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"; } }; 8737: 8737: inline void QCharRef::setRow(uchar arow) { QChar(*this).setRow(arow); } 8737: inline void QCharRef::setCell(uchar acell) { QChar(*this).setCell(acell); } 8737: 8737: 8737: inline QString::QString() noexcept : d(Data::sharedNull()) {} 8737: inline QString::~QString() { if (!d->ref.deref()) Data::deallocate(d); } 8737: 8737: inline void QString::reserve(int asize) 8737: { 8737: if (d->ref.isShared() || uint(asize) >= d->alloc) 8737: reallocData(qMax(asize, d->size) + 1u); 8737: 8737: if (!d->capacityReserved) { 8737: 8737: d->capacityReserved = true; 8737: } 8737: } 8737: 8737: inline void QString::squeeze() 8737: { 8737: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) 8737: reallocData(uint(d->size) + 1u); 8737: 8737: if (d->capacityReserved) { 8737: 8737: 8737: d->capacityReserved = false; 8737: } 8737: } 8737: 8737: inline QString &QString::setUtf16(const ushort *autf16, int asize) 8737: { return setUnicode(reinterpret_cast(autf16), asize); } 8737: inline QCharRef QString::operator[](int i) 8737: { do { } while ((false) && (i >= 0)); return QCharRef(*this, i); } 8737: inline QCharRef QString::operator[](uint i) 8737: { return QCharRef(*this, i); } 8737: inline QString::iterator QString::begin() 8737: { detach(); return reinterpret_cast(d->data()); } 8737: inline QString::const_iterator QString::begin() const 8737: { return reinterpret_cast(d->data()); } 8737: inline QString::const_iterator QString::cbegin() const 8737: { return reinterpret_cast(d->data()); } 8737: inline QString::const_iterator QString::constBegin() const 8737: { return reinterpret_cast(d->data()); } 8737: inline QString::iterator QString::end() 8737: { detach(); return reinterpret_cast(d->data() + d->size); } 8737: inline QString::const_iterator QString::end() const 8737: { return reinterpret_cast(d->data() + d->size); } 8737: inline QString::const_iterator QString::cend() const 8737: { return reinterpret_cast(d->data() + d->size); } 8737: inline QString::const_iterator QString::constEnd() const 8737: { return reinterpret_cast(d->data() + d->size); } 8737: inline bool QString::contains(const QString &s, Qt::CaseSensitivity cs) const 8737: { return indexOf(s, 0, cs) != -1; } 8737: inline bool QString::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8737: { return indexOf(s, 0, cs) != -1; } 8737: inline bool QString::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8737: { return indexOf(s, 0, cs) != -1; } 8737: inline bool QString::contains(QChar c, Qt::CaseSensitivity cs) const 8737: { return indexOf(c, 0, cs) != -1; } 8737: 8737: 8737: inline bool operator==(QString::Null, QString::Null) { return true; } 8737: 8737: inline bool operator==(QString::Null, const QString &s) { return s.isNull(); } 8737: 8737: inline bool operator==(const QString &s, QString::Null) { return s.isNull(); } 8737: inline bool operator!=(QString::Null, QString::Null) { return false; } 8737: 8737: inline bool operator!=(QString::Null, const QString &s) { return !s.isNull(); } 8737: 8737: inline bool operator!=(const QString &s, QString::Null) { return !s.isNull(); } 8737: 8737: 8737: inline bool operator==(QLatin1String s1, QLatin1String s2) noexcept 8737: { return s1.size() == s2.size() && (!s1.size() || !memcmp(s1.latin1(), s2.latin1(), s1.size())); } 8737: inline bool operator!=(QLatin1String s1, QLatin1String s2) noexcept 8737: { return !operator==(s1, s2); } 8737: inline bool operator<(QLatin1String s1, QLatin1String s2) noexcept 8737: { 8737: const int len = qMin(s1.size(), s2.size()); 8737: const int r = len ? memcmp(s1.latin1(), s2.latin1(), len) : 0; 8737: return r < 0 || (r == 0 && s1.size() < s2.size()); 8737: } 8737: inline bool operator>(QLatin1String s1, QLatin1String s2) noexcept 8737: { return operator<(s2, s1); } 8737: inline bool operator<=(QLatin1String s1, QLatin1String s2) noexcept 8737: { return !operator>(s1, s2); } 8737: inline bool operator>=(QLatin1String s1, QLatin1String s2) noexcept 8737: { return !operator<(s1, s2); } 8737: 8737: inline bool QLatin1String::operator==(const QString &s) const noexcept 8737: { return s == *this; } 8737: inline bool QLatin1String::operator!=(const QString &s) const noexcept 8737: { return s != *this; } 8737: inline bool QLatin1String::operator>(const QString &s) const noexcept 8737: { return s < *this; } 8737: inline bool QLatin1String::operator<(const QString &s) const noexcept 8737: { return s > *this; } 8737: inline bool QLatin1String::operator>=(const QString &s) const noexcept 8737: { return s <= *this; } 8737: inline bool QLatin1String::operator<=(const QString &s) const noexcept 8737: { return s >= *this; } 8737: # 1318 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: inline std::string QString::toStdString() const 8737: { return toUtf8().toStdString(); } 8737: 8737: inline QString QString::fromStdString(const std::string &s) 8737: { return fromUtf8(s.data(), int(s.size())); } 8737: 8737: inline std::wstring QString::toStdWString() const 8737: { 8737: std::wstring str; 8737: str.resize(length()); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: str.resize(toWCharArray(&(*str.begin()))); 8737: return str; 8737: } 8737: 8737: inline QString QString::fromStdWString(const std::wstring &s) 8737: { return fromWCharArray(s.data(), int(s.size())); } 8737: 8737: 8737: inline QString QString::fromStdU16String(const std::u16string &s) 8737: { return fromUtf16(s.data(), int(s.size())); } 8737: 8737: inline std::u16string QString::toStdU16String() const 8737: { return std::u16string(reinterpret_cast(utf16()), length()); } 8737: 8737: inline QString QString::fromStdU32String(const std::u32string &s) 8737: { return fromUcs4(s.data(), int(s.size())); } 8737: 8737: inline std::u32string QString::toStdU32String() const 8737: { 8737: std::u32string u32str(length(), char32_t(0)); 8737: int len = toUcs4_helper(d->data(), length(), reinterpret_cast(&u32str[0])); 8737: u32str.resize(len); 8737: return u32str; 8737: } 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QString &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QString &); 8737: 8737: 8737: 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); } 8737: 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); } 8737: 8737: 8737: class __attribute__((visibility("default"))) QStringRef { 8737: const QString *m_string; 8737: int m_position; 8737: int m_size; 8737: public: 8737: typedef QString::size_type size_type; 8737: typedef QString::value_type value_type; 8737: typedef const QChar *const_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: typedef QString::const_pointer const_pointer; 8737: typedef QString::const_reference const_reference; 8737: 8737: 8737: inline QStringRef() : m_string(nullptr), m_position(0), m_size(0) {} 8737: inline QStringRef(const QString *string, int position, int size); 8737: inline QStringRef(const QString *string); 8737: 8737: 8737: 8737: QStringRef(const QStringRef &other) noexcept 8737: :m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) 8737: {} 8737: 8737: QStringRef(QStringRef &&other) noexcept : m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) {} 8737: QStringRef &operator=(QStringRef &&other) noexcept { return *this = other; } 8737: 8737: QStringRef &operator=(const QStringRef &other) noexcept 8737: { 8737: m_string = other.m_string; m_position = other.m_position; 8737: m_size = other.m_size; return *this; 8737: } 8737: inline ~QStringRef(){} 8737: 8737: 8737: inline const QString *string() const { return m_string; } 8737: inline int position() const { return m_position; } 8737: inline int size() const { return m_size; } 8737: inline int count() const { return m_size; } 8737: inline int length() const { return m_size; } 8737: 8737: int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline bool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: [[nodiscard]] QVector split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: [[nodiscard]] QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: [[nodiscard]] QStringRef left(int n) const; 8737: [[nodiscard]] QStringRef right(int n) const; 8737: [[nodiscard]] QStringRef mid(int pos, int n = -1) const; 8737: 8737: void truncate(int pos) noexcept { m_size = qBound(0, pos, m_size); } 8737: void chop(int n) noexcept 8737: { 8737: if (n >= m_size) 8737: m_size = 0; 8737: else if (n > 0) 8737: m_size -= n; 8737: } 8737: 8737: bool isRightToLeft() const; 8737: 8737: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: inline QStringRef &operator=(const QString *string); 8737: 8737: inline const QChar *unicode() const 8737: { 8737: if (!m_string) 8737: return reinterpret_cast(QString::Data::sharedNull()->data()); 8737: return m_string->unicode() + m_position; 8737: } 8737: inline const QChar *data() const { return unicode(); } 8737: inline const QChar *constData() const { return unicode(); } 8737: 8737: inline const_iterator begin() const { return unicode(); } 8737: inline const_iterator cbegin() const { return unicode(); } 8737: inline const_iterator constBegin() const { return unicode(); } 8737: inline const_iterator end() const { return unicode() + size(); } 8737: inline const_iterator cend() const { return unicode() + size(); } 8737: inline const_iterator constEnd() const { return unicode() + size(); } 8737: inline const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8737: inline const_reverse_iterator crbegin() const { return rbegin(); } 8737: inline const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8737: inline const_reverse_iterator crend() const { return rend(); } 8737: 8737: 8737: 8737: 8737: 8737: [[nodiscard]] QByteArray toLatin1() const; 8737: [[nodiscard]] QByteArray toUtf8() const; 8737: [[nodiscard]] QByteArray toLocal8Bit() const; 8737: [[nodiscard]] QVector toUcs4() const; 8737: 8737: inline void clear() { m_string = nullptr; m_position = m_size = 0; } 8737: QString toString() const; 8737: inline bool isEmpty() const { return m_size == 0; } 8737: inline bool isNull() const { return m_string == nullptr || m_string->isNull(); } 8737: 8737: QStringRef appendTo(QString *string) const; 8737: 8737: inline const QChar at(int i) const 8737: { do { } while ((false) && (uint(i) < uint(size()))); return m_string->at(i + m_position); } 8737: QChar operator[](int i) const { return at(i); } 8737: # 1510 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8737: int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8737: int compare(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8737: 8737: 8737: 8737: 8737: static int compare(const QStringRef &s1, const QString &s2, 8737: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8737: static int compare(const QStringRef &s1, const QStringRef &s2, 8737: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8737: static int compare(const QStringRef &s1, QLatin1String s2, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8737: 8737: int localeAwareCompare(const QString &s) const; 8737: int localeAwareCompare(const QStringRef &s) const; 8737: static int localeAwareCompare(const QStringRef &s1, const QString &s2); 8737: static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); 8737: 8737: [[nodiscard]] QStringRef trimmed() const; 8737: short toShort(bool *ok = nullptr, int base = 10) const; 8737: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8737: int toInt(bool *ok = nullptr, int base = 10) const; 8737: uint toUInt(bool *ok = nullptr, int base = 10) const; 8737: long toLong(bool *ok = nullptr, int base = 10) const; 8737: ulong toULong(bool *ok = nullptr, int base = 10) const; 8737: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8737: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8737: float toFloat(bool *ok = nullptr) const; 8737: double toDouble(bool *ok = nullptr) const; 8737: }; 8737: 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"; } }; 8737: 8737: inline QStringRef &QStringRef::operator=(const QString *aString) 8737: { m_string = aString; m_position = 0; m_size = aString?aString->size():0; return *this; } 8737: 8737: inline QStringRef::QStringRef(const QString *aString, int aPosition, int aSize) 8737: :m_string(aString), m_position(aPosition), m_size(aSize){} 8737: 8737: inline QStringRef::QStringRef(const QString *aString) 8737: :m_string(aString), m_position(0), m_size(aString?aString->size() : 0){} 8737: 8737: 8737: __attribute__((visibility("default"))) bool operator==(const QStringRef &s1, const QStringRef &s2) noexcept; 8737: inline bool operator!=(const QStringRef &s1, const QStringRef &s2) noexcept 8737: { return !(s1 == s2); } 8737: __attribute__((visibility("default"))) bool operator<(const QStringRef &s1, const QStringRef &s2) noexcept; 8737: inline bool operator>(const QStringRef &s1, const QStringRef &s2) noexcept 8737: { return s2 < s1; } 8737: inline bool operator<=(const QStringRef &s1, const QStringRef &s2) noexcept 8737: { return !(s1 > s2); } 8737: inline bool operator>=(const QStringRef &s1, const QStringRef &s2) noexcept 8737: { return !(s1 < s2); } 8737: 8737: 8737: __attribute__((visibility("default"))) bool operator==(const QString &lhs, const QStringRef &rhs) noexcept; 8737: inline bool operator!=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) != 0; } 8737: inline bool operator< (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) < 0; } 8737: inline bool operator> (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) > 0; } 8737: inline bool operator<=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) <= 0; } 8737: inline bool operator>=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) >= 0; } 8737: 8737: inline bool operator==(const QStringRef &lhs, const QString &rhs) noexcept { return rhs == lhs; } 8737: inline bool operator!=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs != lhs; } 8737: inline bool operator< (const QStringRef &lhs, const QString &rhs) noexcept { return rhs > lhs; } 8737: inline bool operator> (const QStringRef &lhs, const QString &rhs) noexcept { return rhs < lhs; } 8737: inline bool operator<=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs >= lhs; } 8737: inline bool operator>=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs <= lhs; } 8737: 8737: inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8737: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8737: inline int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8737: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8737: inline int QStringRef::compare(const QString &s, Qt::CaseSensitivity cs) const noexcept 8737: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8737: inline int QStringRef::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8737: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8737: inline int QStringRef::compare(QLatin1String s, Qt::CaseSensitivity cs) const noexcept 8737: { return QString::compare_helper(constData(), length(), s, cs); } 8737: inline int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs) noexcept 8737: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8737: inline int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8737: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8737: inline int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs) noexcept 8737: { return QString::compare_helper(s1.constData(), s1.length(), s2, cs); } 8737: 8737: 8737: __attribute__((visibility("default"))) bool operator==(QLatin1String lhs, const QStringRef &rhs) noexcept; 8737: inline bool operator!=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) != 0; } 8737: inline bool operator< (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) > 0; } 8737: inline bool operator> (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) < 0; } 8737: inline bool operator<=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) >= 0; } 8737: inline bool operator>=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) <= 0; } 8737: 8737: inline bool operator==(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs == lhs; } 8737: inline bool operator!=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs != lhs; } 8737: inline bool operator< (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs > lhs; } 8737: inline bool operator> (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs < lhs; } 8737: inline bool operator<=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs >= lhs; } 8737: inline bool operator>=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs <= lhs; } 8737: 8737: 8737: inline bool operator==(QChar lhs, const QString &rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8737: inline bool operator< (QChar lhs, const QString &rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8737: inline bool operator> (QChar lhs, const QString &rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8737: 8737: inline bool operator!=(QChar lhs, const QString &rhs) noexcept { return !(lhs == rhs); } 8737: inline bool operator<=(QChar lhs, const QString &rhs) noexcept { return !(lhs > rhs); } 8737: inline bool operator>=(QChar lhs, const QString &rhs) noexcept { return !(lhs < rhs); } 8737: 8737: inline bool operator==(const QString &lhs, QChar rhs) noexcept { return rhs == lhs; } 8737: inline bool operator!=(const QString &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8737: inline bool operator< (const QString &lhs, QChar rhs) noexcept { return rhs > lhs; } 8737: inline bool operator> (const QString &lhs, QChar rhs) noexcept { return rhs < lhs; } 8737: inline bool operator<=(const QString &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8737: inline bool operator>=(const QString &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8737: 8737: 8737: inline bool operator==(QChar lhs, const QStringRef &rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8737: inline bool operator< (QChar lhs, const QStringRef &rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8737: inline bool operator> (QChar lhs, const QStringRef &rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8737: 8737: inline bool operator!=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs == rhs); } 8737: inline bool operator<=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs > rhs); } 8737: inline bool operator>=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs < rhs); } 8737: 8737: inline bool operator==(const QStringRef &lhs, QChar rhs) noexcept { return rhs == lhs; } 8737: inline bool operator!=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8737: inline bool operator< (const QStringRef &lhs, QChar rhs) noexcept { return rhs > lhs; } 8737: inline bool operator> (const QStringRef &lhs, QChar rhs) noexcept { return rhs < lhs; } 8737: inline bool operator<=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8737: inline bool operator>=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8737: 8737: 8737: inline bool operator==(QChar lhs, QLatin1String rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs) == 0; } 8737: inline bool operator< (QChar lhs, QLatin1String rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs) < 0; } 8737: inline bool operator> (QChar lhs, QLatin1String rhs) noexcept 8737: { return QString::compare_helper(&lhs, 1, rhs) > 0; } 8737: 8737: inline bool operator!=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs == rhs); } 8737: inline bool operator<=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs > rhs); } 8737: inline bool operator>=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs < rhs); } 8737: 8737: inline bool operator==(QLatin1String lhs, QChar rhs) noexcept { return rhs == lhs; } 8737: inline bool operator!=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8737: inline bool operator< (QLatin1String lhs, QChar rhs) noexcept { return rhs > lhs; } 8737: inline bool operator> (QLatin1String lhs, QChar rhs) noexcept { return rhs < lhs; } 8737: inline bool operator<=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8737: inline bool operator>=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8737: # 1712 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: inline int QString::localeAwareCompare(const QStringRef &s) const 8737: { return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8737: inline int QString::localeAwareCompare(const QString& s1, const QStringRef& s2) 8737: { return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8737: inline int QStringRef::localeAwareCompare(const QString &s) const 8737: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8737: inline int QStringRef::localeAwareCompare(const QStringRef &s) const 8737: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8737: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QString &s2) 8737: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8737: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QStringRef &s2) 8737: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8737: 8737: inline bool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const 8737: { return indexOf(s, 0, cs) != -1; } 8737: inline bool QStringRef::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8737: { return indexOf(s, 0, cs) != -1; } 8737: inline bool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const 8737: { return indexOf(c, 0, cs) != -1; } 8737: inline bool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8737: { return indexOf(s, 0, cs) != -1; } 8737: 8737: inline QString &QString::insert(int i, const QStringRef &s) 8737: { return insert(i, s.constData(), s.length()); } 8737: # 1754 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8737: namespace Qt { 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h" 1 3 4 8737: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8737: 8737: 8737: 8737: struct __attribute__((visibility("default"))) QAbstractConcatenable 8737: { 8737: protected: 8737: static void convertFromAscii(const char *a, int len, QChar *&out) noexcept; 8737: static inline void convertFromAscii(char a, QChar *&out) noexcept 8737: { 8737: *out++ = QLatin1Char(a); 8737: } 8737: static void appendLatin1To(const char *a, int len, QChar *out) noexcept; 8737: }; 8737: 8737: template struct QConcatenable {}; 8737: 8737: namespace QtStringBuilder { 8737: template struct ConvertToTypeHelper 8737: { typedef A ConvertTo; }; 8737: template struct ConvertToTypeHelper 8737: { typedef QString ConvertTo; }; 8737: } 8737: 8737: template 8737: struct QStringBuilderCommon 8737: { 8737: T toUpper() const { return resolved().toUpper(); } 8737: T toLower() const { return resolved().toLower(); } 8737: 8737: protected: 8737: T resolved() const { return *static_cast(this); } 8737: }; 8737: 8737: template 8737: struct QStringBuilderBase : public QStringBuilderCommon 8737: { 8737: }; 8737: 8737: template 8737: struct QStringBuilderBase : public QStringBuilderCommon 8737: { 8737: QByteArray toLatin1() const { return this->resolved().toLatin1(); } 8737: QByteArray toUtf8() const { return this->resolved().toUtf8(); } 8737: QByteArray toLocal8Bit() const { return this->resolved().toLocal8Bit(); } 8737: }; 8737: 8737: template 8737: class QStringBuilder : public QStringBuilderBase, typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo> 8737: { 8737: public: 8737: QStringBuilder(const A &a_, const B &b_) : a(a_), b(b_) {} 8737: private: 8737: friend class QByteArray; 8737: friend class QString; 8737: template T convertTo() const 8737: { 8737: const uint len = QConcatenable< QStringBuilder >::size(*this); 8737: T s(len, Qt::Uninitialized); 8737: 8737: 8737: 8737: typename T::iterator d = const_cast(s.constData()); 8737: typename T::const_iterator const start = d; 8737: QConcatenable< QStringBuilder >::appendTo(*this, d); 8737: 8737: if (!QConcatenable< QStringBuilder >::ExactSize && int(len) != d - start) { 8737: 8737: 8737: s.resize(d - start); 8737: } 8737: return s; 8737: } 8737: 8737: typedef QConcatenable > Concatenable; 8737: typedef typename Concatenable::ConvertTo ConvertTo; 8737: public: 8737: operator ConvertTo() const { return convertTo(); } 8737: 8737: int size() const { return Concatenable::size(*this); } 8737: 8737: const A &a; 8737: const B &b; 8737: }; 8737: 8737: template <> 8737: class QStringBuilder : public QStringBuilderBase, QString> 8737: { 8737: public: 8737: QStringBuilder(const QString &a_, const QString &b_) : a(a_), b(b_) {} 8737: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8737: 8737: operator QString() const 8737: { QString r(a); r += b; return r; } 8737: 8737: const QString &a; 8737: const QString &b; 8737: 8737: private: 8737: QStringBuilder &operator=(const QStringBuilder &) = delete; 8737: }; 8737: 8737: template <> 8737: class QStringBuilder : public QStringBuilderBase, QByteArray> 8737: { 8737: public: 8737: QStringBuilder(const QByteArray &a_, const QByteArray &b_) : a(a_), b(b_) {} 8737: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8737: 8737: operator QByteArray() const 8737: { QByteArray r(a); r += b; return r; } 8737: 8737: const QByteArray &a; 8737: const QByteArray &b; 8737: 8737: private: 8737: QStringBuilder &operator=(const QStringBuilder &) = delete; 8737: }; 8737: 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef char type; 8737: typedef QByteArray ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const char) { return 1; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: static inline void appendTo(const char c, char *&out) 8737: { *out++ = c; } 8737: }; 8737: 8737: template <> struct QConcatenable 8737: { 8737: typedef QLatin1Char type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const QLatin1Char) { return 1; } 8737: static inline void appendTo(const QLatin1Char c, QChar *&out) 8737: { *out++ = c; } 8737: static inline void appendTo(const QLatin1Char c, char *&out) 8737: { *out++ = c.toLatin1(); } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QChar type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const QChar) { return 1; } 8737: static inline void appendTo(const QChar c, QChar *&out) 8737: { *out++ = c; } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QChar::SpecialCharacter type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const QChar::SpecialCharacter) { return 1; } 8737: static inline void appendTo(const QChar::SpecialCharacter c, QChar *&out) 8737: { *out++ = c; } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QCharRef type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(QCharRef) { return 1; } 8737: static inline void appendTo(QCharRef c, QChar *&out) 8737: { *out++ = QChar(c); } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QLatin1String type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const QLatin1String a) { return a.size(); } 8737: static inline void appendTo(const QLatin1String a, QChar *&out) 8737: { 8737: appendLatin1To(a.latin1(), a.size(), out); 8737: out += a.size(); 8737: } 8737: static inline void appendTo(const QLatin1String a, char *&out) 8737: { 8737: if (const char *data = a.data()) { 8737: memcpy(out, data, a.size()); 8737: out += a.size(); 8737: } 8737: } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QString type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const QString &a) { return a.size(); } 8737: static inline void appendTo(const QString &a, QChar *&out) 8737: { 8737: const int n = a.size(); 8737: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8737: out += n; 8737: } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QStringRef type; 8737: typedef QString ConvertTo; 8737: enum { ExactSize = true }; 8737: static int size(const QStringRef &a) { return a.size(); } 8737: static inline void appendTo(const QStringRef &a, QChar *&out) 8737: { 8737: const int n = a.size(); 8737: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8737: out += n; 8737: } 8737: }; 8737: 8737: template struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef const char type[N]; 8737: typedef QByteArray ConvertTo; 8737: enum { ExactSize = false }; 8737: static int size(const char[N]) { return N - 1; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: static inline void appendTo(const char a[N], char *&out) 8737: { 8737: while (*a) 8737: *out++ = *a++; 8737: } 8737: }; 8737: 8737: template struct QConcatenable : QConcatenable 8737: { 8737: typedef char type[N]; 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef char const *type; 8737: typedef QByteArray ConvertTo; 8737: enum { ExactSize = false }; 8737: static int size(const char *a) { return qstrlen(a); } 8737: 8737: 8737: 8737: 8737: static inline void appendTo(const char *a, char *&out) 8737: { 8737: if (!a) 8737: return; 8737: while (*a) 8737: *out++ = *a++; 8737: } 8737: }; 8737: 8737: template <> struct QConcatenable : private QAbstractConcatenable 8737: { 8737: typedef QByteArray type; 8737: typedef QByteArray ConvertTo; 8737: enum { ExactSize = false }; 8737: static int size(const QByteArray &ba) { return ba.size(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: static inline void appendTo(const QByteArray &ba, char *&out) 8737: { 8737: const char *a = ba.constData(); 8737: const char * const end = ba.end(); 8737: while (a != end) 8737: *out++ = *a++; 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct QConcatenable< QStringBuilder > 8737: { 8737: typedef QStringBuilder type; 8737: typedef typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo ConvertTo; 8737: enum { ExactSize = QConcatenable::ExactSize && QConcatenable::ExactSize }; 8737: static int size(const type &p) 8737: { 8737: return QConcatenable::size(p.a) + QConcatenable::size(p.b); 8737: } 8737: template static inline void appendTo(const type &p, T *&out) 8737: { 8737: QConcatenable::appendTo(p.a, out); 8737: QConcatenable::appendTo(p.b, out); 8737: } 8737: }; 8737: 8737: template 8737: QStringBuilder::type, typename QConcatenable::type> 8737: operator%(const A &a, const B &b) 8737: { 8737: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: QStringBuilder::type, typename QConcatenable::type> 8737: operator+(const A &a, const B &b) 8737: { 8737: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8737: } 8737: 8737: 8737: namespace QtStringBuilder { 8737: template 8737: QByteArray &appendToByteArray(QByteArray &a, const QStringBuilder &b, char) 8737: { 8737: 8737: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8737: a.reserve(len); 8737: char *it = a.data() + a.size(); 8737: QConcatenable< QStringBuilder >::appendTo(b, it); 8737: a.resize(len); 8737: return a; 8737: } 8737: # 400 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8737: } 8737: 8737: template 8737: QByteArray &operator+=(QByteArray &a, const QStringBuilder &b) 8737: { 8737: return QtStringBuilder::appendToByteArray(a, b, 8737: typename QConcatenable< QStringBuilder >::ConvertTo::value_type()); 8737: } 8737: 8737: template 8737: QString &operator+=(QString &a, const QStringBuilder &b) 8737: { 8737: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8737: a.reserve(len); 8737: QChar *it = a.data() + a.size(); 8737: QConcatenable< QStringBuilder >::appendTo(b, it); 8737: a.resize(int(it - a.constData())); 8737: return a; 8737: } 8737: 8737: 8737: 8737: # 1766 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QString" 2 3 4 8737: # 27 "/<>/templates/lib/exception.h" 2 8737: 8737: 8737: 8737: 8737: # 30 "/<>/templates/lib/exception.h" 8737: namespace Grantlee 8737: { 8737: 8737: 8737: 8737: 8737: enum Error { 8737: NoError, 8737: EmptyVariableError, 8737: EmptyBlockTagError, 8737: InvalidBlockTagError, 8737: UnclosedBlockTagError, 8737: UnknownFilterError, 8737: TagSyntaxError, 8737: 8737: 8737: VariableNotInContext, 8737: ObjectReturnTypeInvalid, 8737: CompileFunctionError 8737: }; 8737: # 82 "/<>/templates/lib/exception.h" 8737: class __attribute__((visibility("default"))) Exception 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: Exception(Error errorCode, const QString &what) 8737: : m_errorCode(errorCode), m_what(what) 8737: { 8737: } 8737: 8737: virtual ~Exception() throw() {} 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: const QString what() const throw() { return m_what; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: Error errorCode() const { return m_errorCode; } 8737: 8737: 8737: private: 8737: Error m_errorCode; 8737: QString m_what; 8737: }; 8737: } 8737: # 25 "/<>/templates/lib/template.h" 2 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 26 "/<>/templates/lib/template.h" 2 8737: # 1 "/<>/templates/lib/node.h" 1 8737: # 26 "/<>/templates/lib/node.h" 8737: # 1 "/<>/templates/lib/context.h" 1 8737: # 24 "/<>/templates/lib/context.h" 8737: # 1 "/<>/templates/lib/abstractlocalizer.h" 1 8737: # 24 "/<>/templates/lib/abstractlocalizer.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/abstractlocalizer.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLocale" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 1 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: 8737: 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: 8737: 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: namespace QAlgorithmsPrivate { 8737: 8737: 8737: template 8737: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8737: template 8737: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy); 8737: 8737: template 8737: void qStableSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8737: template 8737: inline void qStableSortHelper(RandomAccessIterator, RandomAccessIterator, const T &); 8737: 8737: template 8737: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8737: template 8737: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8737: template 8737: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8737: 8737: 8737: } 8737: 8737: 8737: template 8737: inline OutputIterator qCopy(InputIterator begin, InputIterator end, OutputIterator dest) 8737: { 8737: while (begin != end) 8737: *dest++ = *begin++; 8737: return dest; 8737: } 8737: 8737: template 8737: inline BiIterator2 qCopyBackward(BiIterator1 begin, BiIterator1 end, BiIterator2 dest) 8737: { 8737: while (begin != end) 8737: *--dest = *--end; 8737: return dest; 8737: } 8737: 8737: template 8737: inline bool qEqual(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) 8737: { 8737: for (; first1 != last1; ++first1, ++first2) 8737: if (!(*first1 == *first2)) 8737: return false; 8737: return true; 8737: } 8737: 8737: template 8737: inline void qFill(ForwardIterator first, ForwardIterator last, const T &val) 8737: { 8737: for (; first != last; ++first) 8737: *first = val; 8737: } 8737: 8737: template 8737: inline void qFill(Container &container, const T &val) 8737: { 8737: qFill(container.begin(), container.end(), val); 8737: } 8737: 8737: template 8737: inline InputIterator qFind(InputIterator first, InputIterator last, const T &val) 8737: { 8737: while (first != last && !(*first == val)) 8737: ++first; 8737: return first; 8737: } 8737: 8737: template 8737: inline typename Container::const_iterator qFind(const Container &container, const T &val) 8737: { 8737: return qFind(container.constBegin(), container.constEnd(), val); 8737: } 8737: 8737: template 8737: inline void qCount(InputIterator first, InputIterator last, const T &value, Size &n) 8737: { 8737: for (; first != last; ++first) 8737: if (*first == value) 8737: ++n; 8737: } 8737: 8737: template 8737: inline void qCount(const Container &container, const T &value, Size &n) 8737: { 8737: qCount(container.constBegin(), container.constEnd(), value, n); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class qLess 8737: { 8737: public: 8737: inline bool operator()(const T &t1, const T &t2) const 8737: { 8737: return (t1 < t2); 8737: } 8737: }; 8737: 8737: template 8737: class qGreater 8737: { 8737: public: 8737: inline bool operator()(const T &t1, const T &t2) const 8737: { 8737: return (t2 < t1); 8737: } 8737: }; 8737: 8737: 8737: template 8737: inline void qSort(RandomAccessIterator start, RandomAccessIterator end) 8737: { 8737: if (start != end) 8737: QAlgorithmsPrivate::qSortHelper(start, end, *start); 8737: } 8737: 8737: template 8737: inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8737: { 8737: if (start != end) 8737: QAlgorithmsPrivate::qSortHelper(start, end, *start, lessThan); 8737: } 8737: 8737: template 8737: inline void qSort(Container &c) 8737: { 8737: 8737: 8737: 8737: 8737: if (!c.empty()) 8737: QAlgorithmsPrivate::qSortHelper(c.begin(), c.end(), *c.begin()); 8737: } 8737: 8737: template 8737: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end) 8737: { 8737: if (start != end) 8737: QAlgorithmsPrivate::qStableSortHelper(start, end, *start); 8737: } 8737: 8737: template 8737: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8737: { 8737: if (start != end) 8737: QAlgorithmsPrivate::qStableSortHelper(start, end, *start, lessThan); 8737: } 8737: 8737: template 8737: inline void qStableSort(Container &c) 8737: { 8737: 8737: 8737: 8737: 8737: if (!c.empty()) 8737: QAlgorithmsPrivate::qStableSortHelper(c.begin(), c.end(), *c.begin()); 8737: } 8737: 8737: template 8737: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8737: { 8737: 8737: 8737: 8737: RandomAccessIterator middle; 8737: int n = end - begin; 8737: int half; 8737: 8737: while (n > 0) { 8737: half = n >> 1; 8737: middle = begin + half; 8737: if (*middle < value) { 8737: begin = middle + 1; 8737: n -= half + 1; 8737: } else { 8737: n = half; 8737: } 8737: } 8737: return begin; 8737: } 8737: 8737: template 8737: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8737: { 8737: return QAlgorithmsPrivate::qLowerBoundHelper(begin, end, value, lessThan); 8737: } 8737: 8737: template 8737: typename Container::const_iterator qLowerBound(const Container &container, const T &value) 8737: { 8737: return QAlgorithmsPrivate::qLowerBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8737: } 8737: 8737: template 8737: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8737: { 8737: 8737: RandomAccessIterator middle; 8737: int n = end - begin; 8737: int half; 8737: 8737: while (n > 0) { 8737: half = n >> 1; 8737: middle = begin + half; 8737: if (value < *middle) { 8737: n = half; 8737: } else { 8737: begin = middle + 1; 8737: n -= half + 1; 8737: } 8737: } 8737: return begin; 8737: } 8737: 8737: template 8737: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8737: { 8737: return QAlgorithmsPrivate::qUpperBoundHelper(begin, end, value, lessThan); 8737: } 8737: 8737: template 8737: typename Container::const_iterator qUpperBound(const Container &container, const T &value) 8737: { 8737: return QAlgorithmsPrivate::qUpperBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8737: } 8737: 8737: template 8737: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8737: { 8737: 8737: RandomAccessIterator it = qLowerBound(begin, end, value); 8737: 8737: if (it == end || value < *it) 8737: return end; 8737: 8737: return it; 8737: } 8737: 8737: template 8737: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8737: { 8737: return QAlgorithmsPrivate::qBinaryFindHelper(begin, end, value, lessThan); 8737: } 8737: 8737: template 8737: typename Container::const_iterator qBinaryFind(const Container &container, const T &value) 8737: { 8737: return QAlgorithmsPrivate::qBinaryFindHelper(container.constBegin(), container.constEnd(), value, qLess()); 8737: } 8737: 8737: 8737: template 8737: void qDeleteAll(ForwardIterator begin, ForwardIterator end) 8737: { 8737: while (begin != end) { 8737: delete *begin; 8737: ++begin; 8737: } 8737: } 8737: 8737: template 8737: inline void qDeleteAll(const Container &c) 8737: { 8737: qDeleteAll(c.begin(), c.end()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: namespace QAlgorithmsPrivate { 8737: 8737: 8737: 8737: template 8737: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan) 8737: { 8737: top: 8737: int span = int(end - start); 8737: if (span < 2) 8737: return; 8737: 8737: --end; 8737: RandomAccessIterator low = start, high = end - 1; 8737: RandomAccessIterator pivot = start + span / 2; 8737: 8737: if (lessThan(*end, *start)) 8737: qSwap(*end, *start); 8737: if (span == 2) 8737: return; 8737: 8737: if (lessThan(*pivot, *start)) 8737: qSwap(*pivot, *start); 8737: if (lessThan(*end, *pivot)) 8737: qSwap(*end, *pivot); 8737: if (span == 3) 8737: return; 8737: 8737: qSwap(*pivot, *end); 8737: 8737: while (low < high) { 8737: while (low < high && lessThan(*low, *end)) 8737: ++low; 8737: 8737: while (high > low && lessThan(*end, *high)) 8737: --high; 8737: 8737: if (low < high) { 8737: qSwap(*low, *high); 8737: ++low; 8737: --high; 8737: } else { 8737: break; 8737: } 8737: } 8737: 8737: if (lessThan(*low, *end)) 8737: ++low; 8737: 8737: qSwap(*end, *low); 8737: qSortHelper(start, low, t, lessThan); 8737: 8737: start = low + 1; 8737: ++end; 8737: goto top; 8737: } 8737: 8737: template 8737: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8737: { 8737: qSortHelper(begin, end, dummy, qLess()); 8737: } 8737: 8737: template 8737: void qReverse(RandomAccessIterator begin, RandomAccessIterator end) 8737: { 8737: --end; 8737: while (begin < end) 8737: qSwap(*begin++, *end--); 8737: } 8737: 8737: template 8737: void qRotate(RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end) 8737: { 8737: qReverse(begin, middle); 8737: qReverse(middle, end); 8737: qReverse(begin, end); 8737: } 8737: 8737: template 8737: void qMerge(RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &t, LessThan lessThan) 8737: { 8737: const int len1 = pivot - begin; 8737: const int len2 = end - pivot; 8737: 8737: if (len1 == 0 || len2 == 0) 8737: return; 8737: 8737: if (len1 + len2 == 2) { 8737: if (lessThan(*(begin + 1), *(begin))) 8737: qSwap(*begin, *(begin + 1)); 8737: return; 8737: } 8737: 8737: RandomAccessIterator firstCut; 8737: RandomAccessIterator secondCut; 8737: int len2Half; 8737: if (len1 > len2) { 8737: const int len1Half = len1 / 2; 8737: firstCut = begin + len1Half; 8737: secondCut = qLowerBound(pivot, end, *firstCut, lessThan); 8737: len2Half = secondCut - pivot; 8737: } else { 8737: len2Half = len2 / 2; 8737: secondCut = pivot + len2Half; 8737: firstCut = qUpperBound(begin, pivot, *secondCut, lessThan); 8737: } 8737: 8737: qRotate(firstCut, pivot, secondCut); 8737: const RandomAccessIterator newPivot = firstCut + len2Half; 8737: qMerge(begin, firstCut, newPivot, t, lessThan); 8737: qMerge(newPivot, secondCut, end, t, lessThan); 8737: } 8737: 8737: template 8737: void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &t, LessThan lessThan) 8737: { 8737: const int span = end - begin; 8737: if (span < 2) 8737: return; 8737: 8737: const RandomAccessIterator middle = begin + span / 2; 8737: qStableSortHelper(begin, middle, t, lessThan); 8737: qStableSortHelper(middle, end, t, lessThan); 8737: qMerge(begin, middle, end, t, lessThan); 8737: } 8737: 8737: template 8737: inline void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8737: { 8737: qStableSortHelper(begin, end, dummy, qLess()); 8737: } 8737: 8737: template 8737: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8737: { 8737: RandomAccessIterator middle; 8737: int n = int(end - begin); 8737: int half; 8737: 8737: while (n > 0) { 8737: half = n >> 1; 8737: middle = begin + half; 8737: if (lessThan(*middle, value)) { 8737: begin = middle + 1; 8737: n -= half + 1; 8737: } else { 8737: n = half; 8737: } 8737: } 8737: return begin; 8737: } 8737: 8737: 8737: template 8737: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8737: { 8737: RandomAccessIterator middle; 8737: int n = end - begin; 8737: int half; 8737: 8737: while (n > 0) { 8737: half = n >> 1; 8737: middle = begin + half; 8737: if (lessThan(value, *middle)) { 8737: n = half; 8737: } else { 8737: begin = middle + 1; 8737: n -= half + 1; 8737: } 8737: } 8737: return begin; 8737: } 8737: 8737: template 8737: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8737: { 8737: RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); 8737: 8737: if (it == end || lessThan(value, *it)) 8737: return end; 8737: 8737: return it; 8737: } 8737: # 536 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzs(quint16 v) noexcept 8737: { 8737: 8737: 8737: 8737: return __builtin_ctz(v); 8737: 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzs(quint16 v) noexcept 8737: { 8737: 8737: 8737: 8737: return __builtin_clz(v) - 16U; 8737: 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctz(quint32 v) noexcept 8737: { 8737: return __builtin_ctz(v); 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_clz(quint32 v) noexcept 8737: { 8737: return __builtin_clz(v); 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzll(quint64 v) noexcept 8737: { 8737: return __builtin_ctzll(v); 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzll(quint64 v) noexcept 8737: { 8737: return __builtin_clzll(v); 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint32 v) noexcept 8737: { 8737: return __builtin_popcount(v); 8737: } 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint8 v) noexcept 8737: { 8737: return __builtin_popcount(v); 8737: } 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint16 v) noexcept 8737: { 8737: return __builtin_popcount(v); 8737: } 8737: 8737: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcountll(quint64 v) noexcept 8737: { 8737: return __builtin_popcountll(v); 8737: } 8737: # 681 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: __attribute__((const)) constexpr inline uint qPopulationCount(quint32 v) noexcept 8737: { 8737: 8737: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: __attribute__((const)) constexpr inline uint qPopulationCount(quint8 v) noexcept 8737: { 8737: 8737: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8737: 8737: 8737: 8737: 8737: } 8737: 8737: __attribute__((const)) constexpr inline uint qPopulationCount(quint16 v) noexcept 8737: { 8737: 8737: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: __attribute__((const)) constexpr inline uint qPopulationCount(quint64 v) noexcept 8737: { 8737: 8737: return QAlgorithmsPrivate::qt_builtin_popcountll(v); 8737: # 730 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: __attribute__((const)) constexpr inline uint qPopulationCount(long unsigned int v) noexcept 8737: { 8737: return qPopulationCount(static_cast(v)); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: inline uint qCountTrailingZeroBits(quint32 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 32U; 8737: # 758 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: inline uint qCountTrailingZeroBits(quint8 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 8U; 8737: # 773 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: inline uint qCountTrailingZeroBits(quint16 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_ctzs(v) : 16U; 8737: # 789 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: inline uint qCountTrailingZeroBits(quint64 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_ctzll(v) : 64; 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: inline uint qCountTrailingZeroBits(unsigned long v) noexcept 8737: { 8737: return qCountTrailingZeroBits(QIntegerForSizeof::Unsigned(v)); 8737: } 8737: 8737: inline uint qCountLeadingZeroBits(quint32 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_clz(v) : 32U; 8737: # 820 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: inline uint qCountLeadingZeroBits(quint8 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U; 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: inline uint qCountLeadingZeroBits(quint16 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: inline uint qCountLeadingZeroBits(quint64 v) noexcept 8737: { 8737: 8737: return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U; 8737: # 860 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: } 8737: 8737: inline uint qCountLeadingZeroBits(unsigned long v) noexcept 8737: { 8737: return qCountLeadingZeroBits(QIntegerForSizeof::Unsigned(v)); 8737: } 8737: 8737: 8737: # 867 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 867 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h" 3 4 8737: 8737: # 182 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h" 3 4 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h" 3 4 8737: 8737: 8737: 8737: template 8737: struct QPair 8737: { 8737: typedef T1 first_type; 8737: typedef T2 second_type; 8737: 8737: constexpr QPair() 8737: noexcept((std::is_nothrow_default_constructible::value && std::is_nothrow_default_constructible::value)) 8737: 8737: : first(), second() {} 8737: constexpr QPair(const T1 &t1, const T2 &t2) 8737: noexcept((std::is_nothrow_copy_constructible::value && std::is_nothrow_copy_constructible::value)) 8737: 8737: : first(t1), second(t2) {} 8737: 8737: 8737: template 8737: constexpr QPair(const QPair &p) 8737: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8737: 8737: : first(p.first), second(p.second) {} 8737: template 8737: QPair &operator=(const QPair &p) 8737: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8737: 8737: { first = p.first; second = p.second; return *this; } 8737: 8737: template 8737: constexpr QPair(QPair &&p) 8737: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8737: 8737: 8737: : first(static_cast(p.first)), second(static_cast(p.second)) {} 8737: template 8737: QPair &operator=(QPair &&p) 8737: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8737: 8737: { first = std::move(p.first); second = std::move(p.second); return *this; } 8737: 8737: 8737: void swap(QPair &other) 8737: noexcept(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second))) 8737: { 8737: 8737: qSwap(first, other.first); 8737: qSwap(second, other.second); 8737: } 8737: 8737: T1 first; 8737: T2 second; 8737: }; 8737: 8737: template 8737: void swap(QPair &lhs, QPair &rhs) noexcept(noexcept(lhs.swap(rhs))) 8737: { lhs.swap(rhs); } 8737: 8737: 8737: 8737: template 8737: class QTypeInfo > : public QTypeInfoMerger, T1, T2> {}; 8737: 8737: template 8737: constexpr inline bool operator==(const QPair &p1, const QPair &p2) 8737: noexcept(noexcept(p1.first == p2.first && p1.second == p2.second)) 8737: { return p1.first == p2.first && p1.second == p2.second; } 8737: 8737: template 8737: constexpr inline bool operator!=(const QPair &p1, const QPair &p2) 8737: noexcept(noexcept(!(p1 == p2))) 8737: { return !(p1 == p2); } 8737: 8737: template 8737: constexpr inline bool operator<(const QPair &p1, const QPair &p2) 8737: noexcept(noexcept(p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second))) 8737: { 8737: return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); 8737: } 8737: 8737: template 8737: constexpr inline bool operator>(const QPair &p1, const QPair &p2) 8737: noexcept(noexcept(p2 < p1)) 8737: { 8737: return p2 < p1; 8737: } 8737: 8737: template 8737: constexpr inline bool operator<=(const QPair &p1, const QPair &p2) 8737: noexcept(noexcept(!(p2 < p1))) 8737: { 8737: return !(p2 < p1); 8737: } 8737: 8737: template 8737: constexpr inline bool operator>=(const QPair &p1, const QPair &p2) 8737: noexcept(noexcept(!(p1 < p2))) 8737: { 8737: return !(p1 < p2); 8737: } 8737: 8737: template 8737: constexpr QPair qMakePair(const T1 &x, const T2 &y) 8737: noexcept(noexcept(QPair(x, y))) 8737: { 8737: return QPair(x, y); 8737: } 8737: 8737: 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 2 3 4 8737: 8737: # 1 "/usr/include/c++/8/numeric" 1 3 4 8737: # 58 "/usr/include/c++/8/numeric" 3 4 8737: 8737: # 59 "/usr/include/c++/8/numeric" 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_numeric.h" 1 3 8737: # 65 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 80 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: void 8737: iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: { 8737: *__first = __value; 8737: ++__value; 8737: } 8737: } 8737: 8737: 8737: } 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 118 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: inline _Tp 8737: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) 8737: { 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: __init = __init + *__first; 8737: return __init; 8737: } 8737: # 144 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: inline _Tp 8737: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, 8737: _BinaryOperation __binary_op) 8737: { 8737: 8737: 8737: ; 8737: 8737: for (; __first != __last; ++__first) 8737: __init = __binary_op(__init, *__first); 8737: return __init; 8737: } 8737: # 172 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: inline _Tp 8737: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _Tp __init) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1, (void)++__first2) 8737: __init = __init + (*__first1 * *__first2); 8737: return __init; 8737: } 8737: # 203 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: inline _Tp 8737: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8737: _InputIterator2 __first2, _Tp __init, 8737: _BinaryOperation1 __binary_op1, 8737: _BinaryOperation2 __binary_op2) 8737: { 8737: 8737: 8737: 8737: ; 8737: 8737: for (; __first1 != __last1; ++__first1, (void)++__first2) 8737: __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); 8737: return __init; 8737: } 8737: # 235 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: _OutputIterator 8737: partial_sum(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result) 8737: { 8737: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return __result; 8737: _ValueType __value = *__first; 8737: *__result = __value; 8737: while (++__first != __last) 8737: { 8737: __value = __value + *__first; 8737: *++__result = __value; 8737: } 8737: return ++__result; 8737: } 8737: # 275 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: _OutputIterator 8737: partial_sum(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _BinaryOperation __binary_op) 8737: { 8737: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return __result; 8737: _ValueType __value = *__first; 8737: *__result = __value; 8737: while (++__first != __last) 8737: { 8737: __value = __binary_op(__value, *__first); 8737: *++__result = __value; 8737: } 8737: return ++__result; 8737: } 8737: # 315 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: _OutputIterator 8737: adjacent_difference(_InputIterator __first, 8737: _InputIterator __last, _OutputIterator __result) 8737: { 8737: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return __result; 8737: _ValueType __value = *__first; 8737: *__result = __value; 8737: while (++__first != __last) 8737: { 8737: _ValueType __tmp = *__first; 8737: *++__result = __tmp - __value; 8737: __value = std::move(__tmp); 8737: } 8737: return ++__result; 8737: } 8737: # 357 "/usr/include/c++/8/bits/stl_numeric.h" 3 8737: template 8737: _OutputIterator 8737: adjacent_difference(_InputIterator __first, _InputIterator __last, 8737: _OutputIterator __result, _BinaryOperation __binary_op) 8737: { 8737: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8737: 8737: 8737: 8737: 8737: 8737: ; 8737: 8737: if (__first == __last) 8737: return __result; 8737: _ValueType __value = *__first; 8737: *__result = __value; 8737: while (++__first != __last) 8737: { 8737: _ValueType __tmp = *__first; 8737: *++__result = __binary_op(__tmp, __value); 8737: __value = std::move(__tmp); 8737: } 8737: return ++__result; 8737: } 8737: 8737: 8737: } 8737: # 63 "/usr/include/c++/8/numeric" 2 3 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 2 3 4 8737: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 3 4 8737: 8737: 8737: class QBitArray; 8737: class QByteArray; 8737: class QString; 8737: class QStringRef; 8737: class QLatin1String; 8737: 8737: __attribute__((visibility("default"))) int qGlobalQHashSeed(); 8737: __attribute__((visibility("default"))) void qSetGlobalQHashSeed(int newSeed); 8737: 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qHashBits(const void *p, size_t size, uint seed = 0) noexcept; 8737: 8737: __attribute__((const)) constexpr inline uint qHash(char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(uchar key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(signed char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(ushort key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(short key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(uint key, uint seed = 0) noexcept { return key ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(int key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8737: __attribute__((const)) constexpr inline uint qHash(ulong key, uint seed = 0) noexcept 8737: { 8737: return (sizeof(ulong) > sizeof(uint)) 8737: ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed) 8737: : (uint(key & (~0U)) ^ seed); 8737: } 8737: __attribute__((const)) constexpr inline uint qHash(long key, uint seed = 0) noexcept { return qHash(ulong(key), seed); } 8737: __attribute__((const)) constexpr inline uint qHash(quint64 key, uint seed = 0) noexcept 8737: { 8737: return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed; 8737: } 8737: __attribute__((const)) constexpr inline uint qHash(qint64 key, uint seed = 0) noexcept { return qHash(quint64(key), seed); } 8737: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(float key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(double key, uint seed = 0) noexcept; 8737: 8737: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(long double key, uint seed = 0) noexcept; 8737: 8737: __attribute__((const)) constexpr inline uint qHash(const QChar key, uint seed = 0) noexcept { return qHash(key.unicode(), seed); } 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QByteArray &key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QString &key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QStringRef &key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QBitArray &key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(QLatin1String key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QString &key) noexcept; 8737: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QStringRef &key) noexcept; 8737: 8737: template inline uint qHash(const T *key, uint seed = 0) noexcept 8737: { 8737: return qHash(reinterpret_cast(key), seed); 8737: } 8737: template inline uint qHash(const T &t, uint seed) 8737: noexcept(noexcept(qHash(t))) 8737: { return qHash(t) ^ seed; } 8737: 8737: namespace QtPrivate { 8737: 8737: struct QHashCombine { 8737: typedef uint result_type; 8737: template 8737: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8737: 8737: { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; } 8737: }; 8737: 8737: struct QHashCombineCommutative { 8737: 8737: 8737: 8737: 8737: 8737: typedef uint result_type; 8737: template 8737: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8737: { return seed + qHash(t); } 8737: }; 8737: 8737: } 8737: 8737: template 8737: inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0) 8737: noexcept(noexcept(qHash(*first))) 8737: { 8737: return std::accumulate(first, last, seed, QtPrivate::QHashCombine()); 8737: } 8737: 8737: template 8737: inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0) 8737: noexcept(noexcept(qHash(*first))) 8737: { 8737: return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative()); 8737: } 8737: 8737: template inline uint qHash(const QPair &key, uint seed = 0) 8737: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8737: { 8737: uint h1 = qHash(key.first, seed); 8737: uint h2 = qHash(key.second, seed); 8737: return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed; 8737: } 8737: 8737: template inline uint qHash(const std::pair &key, uint seed = 0) 8737: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8737: { 8737: QtPrivate::QHashCombine hash; 8737: seed = hash(seed, key.first); 8737: seed = hash(seed, key.second); 8737: return seed; 8737: } 8737: 8737: 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/c++/8/list" 1 3 4 8737: # 58 "/usr/include/c++/8/list" 3 4 8737: 8737: # 59 "/usr/include/c++/8/list" 3 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_list.h" 1 3 8737: # 63 "/usr/include/c++/8/bits/stl_list.h" 3 8737: # 1 "/usr/include/c++/8/bits/allocated_ptr.h" 1 3 8737: # 40 "/usr/include/c++/8/bits/allocated_ptr.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: struct __allocated_ptr 8737: { 8737: using pointer = typename allocator_traits<_Alloc>::pointer; 8737: using value_type = typename allocator_traits<_Alloc>::value_type; 8737: 8737: 8737: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 8737: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 8737: { } 8737: 8737: 8737: template>> 8737: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 8737: : _M_alloc(std::__addressof(__a)), 8737: _M_ptr(pointer_traits::pointer_to(*__ptr)) 8737: { } 8737: 8737: 8737: __allocated_ptr(__allocated_ptr&& __gd) noexcept 8737: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 8737: { __gd._M_ptr = nullptr; } 8737: 8737: 8737: ~__allocated_ptr() 8737: { 8737: if (_M_ptr != nullptr) 8737: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 8737: } 8737: 8737: 8737: __allocated_ptr& 8737: operator=(std::nullptr_t) noexcept 8737: { 8737: _M_ptr = nullptr; 8737: return *this; 8737: } 8737: 8737: 8737: value_type* get() { return std::__to_address(_M_ptr); } 8737: 8737: private: 8737: _Alloc* _M_alloc; 8737: pointer _M_ptr; 8737: }; 8737: 8737: 8737: template 8737: __allocated_ptr<_Alloc> 8737: __allocate_guarded(_Alloc& __a) 8737: { 8737: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 8737: } 8737: 8737: 8737: } 8737: # 64 "/usr/include/c++/8/bits/stl_list.h" 2 3 8737: # 1 "/usr/include/c++/8/ext/aligned_buffer.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: struct __aligned_membuf 8737: { 8737: 8737: 8737: 8737: struct _Tp2 { _Tp _M_t; }; 8737: 8737: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 8737: 8737: __aligned_membuf() = default; 8737: 8737: 8737: __aligned_membuf(std::nullptr_t) { } 8737: 8737: void* 8737: _M_addr() noexcept 8737: { return static_cast(&_M_storage); } 8737: 8737: const void* 8737: _M_addr() const noexcept 8737: { return static_cast(&_M_storage); } 8737: 8737: _Tp* 8737: _M_ptr() noexcept 8737: { return static_cast<_Tp*>(_M_addr()); } 8737: 8737: const _Tp* 8737: _M_ptr() const noexcept 8737: { return static_cast(_M_addr()); } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __aligned_buffer 8737: : std::aligned_storage::value> 8737: { 8737: typename 8737: std::aligned_storage::value>::type 8737: _M_storage; 8737: 8737: __aligned_buffer() = default; 8737: 8737: 8737: __aligned_buffer(std::nullptr_t) { } 8737: 8737: void* 8737: _M_addr() noexcept 8737: { 8737: return static_cast(&_M_storage); 8737: } 8737: 8737: const void* 8737: _M_addr() const noexcept 8737: { 8737: return static_cast(&_M_storage); 8737: } 8737: 8737: _Tp* 8737: _M_ptr() noexcept 8737: { return static_cast<_Tp*>(_M_addr()); } 8737: 8737: const _Tp* 8737: _M_ptr() const noexcept 8737: { return static_cast(_M_addr()); } 8737: }; 8737: 8737: } 8737: # 65 "/usr/include/c++/8/bits/stl_list.h" 2 3 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace __detail 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct _List_node_base 8737: { 8737: _List_node_base* _M_next; 8737: _List_node_base* _M_prev; 8737: 8737: static void 8737: swap(_List_node_base& __x, _List_node_base& __y) noexcept; 8737: 8737: void 8737: _M_transfer(_List_node_base* const __first, 8737: _List_node_base* const __last) noexcept; 8737: 8737: void 8737: _M_reverse() noexcept; 8737: 8737: void 8737: _M_hook(_List_node_base* const __position) noexcept; 8737: 8737: void 8737: _M_unhook() noexcept; 8737: }; 8737: 8737: 8737: struct _List_node_header : public _List_node_base 8737: { 8737: 8737: std::size_t _M_size; 8737: 8737: 8737: _List_node_header() noexcept 8737: { _M_init(); } 8737: 8737: 8737: _List_node_header(_List_node_header&& __x) noexcept 8737: : _List_node_base{ __x._M_next, __x._M_prev } 8737: 8737: , _M_size(__x._M_size) 8737: 8737: { 8737: if (__x._M_base()->_M_next == __x._M_base()) 8737: this->_M_next = this->_M_prev = this; 8737: else 8737: { 8737: this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); 8737: __x._M_init(); 8737: } 8737: } 8737: 8737: void 8737: _M_move_nodes(_List_node_header&& __x) 8737: { 8737: _List_node_base* const __xnode = __x._M_base(); 8737: if (__xnode->_M_next == __xnode) 8737: _M_init(); 8737: else 8737: { 8737: _List_node_base* const __node = this->_M_base(); 8737: __node->_M_next = __xnode->_M_next; 8737: __node->_M_prev = __xnode->_M_prev; 8737: __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; 8737: 8737: _M_size = __x._M_size; 8737: 8737: __x._M_init(); 8737: } 8737: } 8737: 8737: 8737: void 8737: _M_init() noexcept 8737: { 8737: this->_M_next = this->_M_prev = this; 8737: 8737: this->_M_size = 0; 8737: 8737: } 8737: 8737: private: 8737: _List_node_base* _M_base() { return this; } 8737: }; 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: struct _List_node : public __detail::_List_node_base 8737: { 8737: 8737: __gnu_cxx::__aligned_membuf<_Tp> _M_storage; 8737: _Tp* _M_valptr() { return _M_storage._M_ptr(); } 8737: _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } 8737: 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _List_iterator 8737: { 8737: typedef _List_iterator<_Tp> _Self; 8737: typedef _List_node<_Tp> _Node; 8737: 8737: typedef ptrdiff_t difference_type; 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef _Tp value_type; 8737: typedef _Tp* pointer; 8737: typedef _Tp& reference; 8737: 8737: _List_iterator() noexcept 8737: : _M_node() { } 8737: 8737: explicit 8737: _List_iterator(__detail::_List_node_base* __x) noexcept 8737: : _M_node(__x) { } 8737: 8737: _Self 8737: _M_const_cast() const noexcept 8737: { return *this; } 8737: 8737: 8737: reference 8737: operator*() const noexcept 8737: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8737: 8737: pointer 8737: operator->() const noexcept 8737: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8737: 8737: _Self& 8737: operator++() noexcept 8737: { 8737: _M_node = _M_node->_M_next; 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator++(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _M_node->_M_next; 8737: return __tmp; 8737: } 8737: 8737: _Self& 8737: operator--() noexcept 8737: { 8737: _M_node = _M_node->_M_prev; 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator--(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _M_node->_M_prev; 8737: return __tmp; 8737: } 8737: 8737: bool 8737: operator==(const _Self& __x) const noexcept 8737: { return _M_node == __x._M_node; } 8737: 8737: bool 8737: operator!=(const _Self& __x) const noexcept 8737: { return _M_node != __x._M_node; } 8737: 8737: 8737: __detail::_List_node_base* _M_node; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _List_const_iterator 8737: { 8737: typedef _List_const_iterator<_Tp> _Self; 8737: typedef const _List_node<_Tp> _Node; 8737: typedef _List_iterator<_Tp> iterator; 8737: 8737: typedef ptrdiff_t difference_type; 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef _Tp value_type; 8737: typedef const _Tp* pointer; 8737: typedef const _Tp& reference; 8737: 8737: _List_const_iterator() noexcept 8737: : _M_node() { } 8737: 8737: explicit 8737: _List_const_iterator(const __detail::_List_node_base* __x) 8737: noexcept 8737: : _M_node(__x) { } 8737: 8737: _List_const_iterator(const iterator& __x) noexcept 8737: : _M_node(__x._M_node) { } 8737: 8737: iterator 8737: _M_const_cast() const noexcept 8737: { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } 8737: 8737: 8737: reference 8737: operator*() const noexcept 8737: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8737: 8737: pointer 8737: operator->() const noexcept 8737: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8737: 8737: _Self& 8737: operator++() noexcept 8737: { 8737: _M_node = _M_node->_M_next; 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator++(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _M_node->_M_next; 8737: return __tmp; 8737: } 8737: 8737: _Self& 8737: operator--() noexcept 8737: { 8737: _M_node = _M_node->_M_prev; 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator--(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _M_node->_M_prev; 8737: return __tmp; 8737: } 8737: 8737: bool 8737: operator==(const _Self& __x) const noexcept 8737: { return _M_node == __x._M_node; } 8737: 8737: bool 8737: operator!=(const _Self& __x) const noexcept 8737: { return _M_node != __x._M_node; } 8737: 8737: 8737: const __detail::_List_node_base* _M_node; 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const _List_iterator<_Val>& __x, 8737: const _List_const_iterator<_Val>& __y) noexcept 8737: { return __x._M_node == __y._M_node; } 8737: 8737: template 8737: inline bool 8737: operator!=(const _List_iterator<_Val>& __x, 8737: const _List_const_iterator<_Val>& __y) noexcept 8737: { return __x._M_node != __y._M_node; } 8737: 8737: namespace __cxx11 { 8737: 8737: template 8737: class _List_base 8737: { 8737: protected: 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Tp>::other _Tp_alloc_type; 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tp_alloc_traits; 8737: typedef typename _Tp_alloc_traits::template 8737: rebind<_List_node<_Tp> >::other _Node_alloc_type; 8737: typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits; 8737: 8737: 8737: static size_t 8737: _S_distance(const __detail::_List_node_base* __first, 8737: const __detail::_List_node_base* __last) 8737: { 8737: size_t __n = 0; 8737: while (__first != __last) 8737: { 8737: __first = __first->_M_next; 8737: ++__n; 8737: } 8737: return __n; 8737: } 8737: 8737: 8737: struct _List_impl 8737: : public _Node_alloc_type 8737: { 8737: __detail::_List_node_header _M_node; 8737: 8737: _List_impl() noexcept(noexcept(_Node_alloc_type())) 8737: : _Node_alloc_type() 8737: { } 8737: 8737: _List_impl(const _Node_alloc_type& __a) noexcept 8737: : _Node_alloc_type(__a) 8737: { } 8737: 8737: 8737: _List_impl(_List_impl&&) = default; 8737: 8737: _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) 8737: : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node)) 8737: { } 8737: 8737: _List_impl(_Node_alloc_type&& __a) noexcept 8737: : _Node_alloc_type(std::move(__a)) 8737: { } 8737: 8737: }; 8737: 8737: _List_impl _M_impl; 8737: 8737: 8737: size_t _M_get_size() const { return _M_impl._M_node._M_size; } 8737: 8737: void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } 8737: 8737: void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } 8737: 8737: void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } 8737: 8737: 8737: size_t 8737: _M_distance(const __detail::_List_node_base* __first, 8737: const __detail::_List_node_base* __last) const 8737: { return _S_distance(__first, __last); } 8737: 8737: 8737: size_t _M_node_count() const { return _M_get_size(); } 8737: # 447 "/usr/include/c++/8/bits/stl_list.h" 3 8737: typename _Node_alloc_traits::pointer 8737: _M_get_node() 8737: { return _Node_alloc_traits::allocate(_M_impl, 1); } 8737: 8737: void 8737: _M_put_node(typename _Node_alloc_traits::pointer __p) noexcept 8737: { _Node_alloc_traits::deallocate(_M_impl, __p, 1); } 8737: 8737: public: 8737: typedef _Alloc allocator_type; 8737: 8737: _Node_alloc_type& 8737: _M_get_Node_allocator() noexcept 8737: { return _M_impl; } 8737: 8737: const _Node_alloc_type& 8737: _M_get_Node_allocator() const noexcept 8737: { return _M_impl; } 8737: 8737: 8737: _List_base() = default; 8737: 8737: 8737: 8737: 8737: _List_base(const _Node_alloc_type& __a) noexcept 8737: : _M_impl(__a) 8737: { } 8737: 8737: 8737: _List_base(_List_base&&) = default; 8737: 8737: 8737: _List_base(_List_base&& __x, _Node_alloc_type&& __a) 8737: : _M_impl(std::move(__a)) 8737: { 8737: if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) 8737: _M_move_nodes(std::move(__x)); 8737: 8737: } 8737: 8737: 8737: 8737: _List_base(_Node_alloc_type&& __a, _List_base&& __x) 8737: : _M_impl(std::move(__a), std::move(__x._M_impl)) 8737: { } 8737: 8737: 8737: _List_base(_Node_alloc_type&& __a) 8737: : _M_impl(std::move(__a)) 8737: { } 8737: 8737: void 8737: _M_move_nodes(_List_base&& __x) 8737: { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); } 8737: 8737: 8737: 8737: ~_List_base() noexcept 8737: { _M_clear(); } 8737: 8737: void 8737: _M_clear() noexcept; 8737: 8737: void 8737: _M_init() noexcept 8737: { this->_M_impl._M_node._M_init(); } 8737: }; 8737: # 562 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template > 8737: class list : protected _List_base<_Tp, _Alloc> 8737: { 8737: # 575 "/usr/include/c++/8/bits/stl_list.h" 3 8737: static_assert(is_same::type, _Tp>::value, 8737: "std::list must have a non-const, non-volatile value_type"); 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef _List_base<_Tp, _Alloc> _Base; 8737: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8737: typedef typename _Base::_Tp_alloc_traits _Tp_alloc_traits; 8737: typedef typename _Base::_Node_alloc_type _Node_alloc_type; 8737: typedef typename _Base::_Node_alloc_traits _Node_alloc_traits; 8737: 8737: public: 8737: typedef _Tp value_type; 8737: typedef typename _Tp_alloc_traits::pointer pointer; 8737: typedef typename _Tp_alloc_traits::const_pointer const_pointer; 8737: typedef typename _Tp_alloc_traits::reference reference; 8737: typedef typename _Tp_alloc_traits::const_reference const_reference; 8737: typedef _List_iterator<_Tp> iterator; 8737: typedef _List_const_iterator<_Tp> const_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Alloc allocator_type; 8737: 8737: protected: 8737: 8737: 8737: typedef _List_node<_Tp> _Node; 8737: 8737: using _Base::_M_impl; 8737: using _Base::_M_put_node; 8737: using _Base::_M_get_node; 8737: using _Base::_M_get_Node_allocator; 8737: # 637 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: _Node* 8737: _M_create_node(_Args&&... __args) 8737: { 8737: auto __p = this->_M_get_node(); 8737: auto& __alloc = _M_get_Node_allocator(); 8737: __allocated_ptr<_Node_alloc_type> __guard{__alloc, __p}; 8737: _Node_alloc_traits::construct(__alloc, __p->_M_valptr(), 8737: std::forward<_Args>(__args)...); 8737: __guard = nullptr; 8737: return __p; 8737: } 8737: 8737: 8737: 8737: static size_t 8737: _S_distance(const_iterator __first, const_iterator __last) 8737: { return std::distance(__first, __last); } 8737: 8737: 8737: size_t 8737: _M_node_count() const 8737: { return this->_M_get_size(); } 8737: # 672 "/usr/include/c++/8/bits/stl_list.h" 3 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: list() = default; 8737: # 689 "/usr/include/c++/8/bits/stl_list.h" 3 8737: explicit 8737: list(const allocator_type& __a) noexcept 8737: : _Base(_Node_alloc_type(__a)) { } 8737: # 702 "/usr/include/c++/8/bits/stl_list.h" 3 8737: explicit 8737: list(size_type __n, const allocator_type& __a = allocator_type()) 8737: : _Base(_Node_alloc_type(__a)) 8737: { _M_default_initialize(__n); } 8737: # 715 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list(size_type __n, const value_type& __value, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(_Node_alloc_type(__a)) 8737: { _M_fill_initialize(__n, __value); } 8737: # 742 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list(const list& __x) 8737: : _Base(_Node_alloc_traits:: 8737: _S_select_on_copy(__x._M_get_Node_allocator())) 8737: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8737: # 755 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list(list&&) = default; 8737: # 765 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list(initializer_list __l, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(_Node_alloc_type(__a)) 8737: { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } 8737: 8737: list(const list& __x, const allocator_type& __a) 8737: : _Base(_Node_alloc_type(__a)) 8737: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8737: 8737: private: 8737: list(list&& __x, const allocator_type& __a, true_type) noexcept 8737: : _Base(_Node_alloc_type(__a), std::move(__x)) 8737: { } 8737: 8737: list(list&& __x, const allocator_type& __a, false_type) 8737: : _Base(_Node_alloc_type(__a)) 8737: { 8737: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8737: this->_M_move_nodes(std::move(__x)); 8737: else 8737: insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()), 8737: std::__make_move_if_noexcept_iterator(__x.end())); 8737: } 8737: 8737: public: 8737: list(list&& __x, const allocator_type& __a) 8737: noexcept(_Node_alloc_traits::_S_always_equal()) 8737: : list(std::move(__x), __a, 8737: typename _Node_alloc_traits::is_always_equal{}) 8737: { } 8737: # 808 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template> 8737: list(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(_Node_alloc_type(__a)) 8737: { _M_initialize_dispatch(__first, __last, __false_type()); } 8737: # 834 "/usr/include/c++/8/bits/stl_list.h" 3 8737: ~list() = default; 8737: # 845 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list& 8737: operator=(const list& __x); 8737: # 859 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list& 8737: operator=(list&& __x) 8737: noexcept(_Node_alloc_traits::_S_nothrow_move()) 8737: { 8737: constexpr bool __move_storage = 8737: _Node_alloc_traits::_S_propagate_on_move_assign() 8737: || _Node_alloc_traits::_S_always_equal(); 8737: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8737: return *this; 8737: } 8737: # 877 "/usr/include/c++/8/bits/stl_list.h" 3 8737: list& 8737: operator=(initializer_list __l) 8737: { 8737: this->assign(__l.begin(), __l.end()); 8737: return *this; 8737: } 8737: # 895 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: assign(size_type __n, const value_type& __val) 8737: { _M_fill_assign(__n, __val); } 8737: # 912 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template> 8737: void 8737: assign(_InputIterator __first, _InputIterator __last) 8737: { _M_assign_dispatch(__first, __last, __false_type()); } 8737: # 936 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: assign(initializer_list __l) 8737: { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } 8737: 8737: 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_Base::_M_get_Node_allocator()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return iterator(this->_M_impl._M_node._M_next); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return const_iterator(this->_M_impl._M_node._M_next); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() noexcept 8737: { return iterator(&this->_M_impl._M_node); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return const_iterator(&this->_M_impl._M_node); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return const_iterator(this->_M_impl._M_node._M_next); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return const_iterator(&this->_M_impl._M_node); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_node_count(); } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 8737: # 1085 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: resize(size_type __new_size); 8737: # 1098 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: resize(size_type __new_size, const value_type& __x); 8737: # 1120 "/usr/include/c++/8/bits/stl_list.h" 3 8737: reference 8737: front() noexcept 8737: { return *begin(); } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: front() const noexcept 8737: { return *begin(); } 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: back() noexcept 8737: { 8737: iterator __tmp = end(); 8737: --__tmp; 8737: return *__tmp; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: back() const noexcept 8737: { 8737: const_iterator __tmp = end(); 8737: --__tmp; 8737: return *__tmp; 8737: } 8737: # 1167 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: push_front(const value_type& __x) 8737: { this->_M_insert(begin(), __x); } 8737: 8737: 8737: void 8737: push_front(value_type&& __x) 8737: { this->_M_insert(begin(), std::move(__x)); } 8737: 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: emplace_front(_Args&&... __args) 8737: { 8737: this->_M_insert(begin(), std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: } 8737: # 1203 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: pop_front() noexcept 8737: { this->_M_erase(begin()); } 8737: # 1217 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: push_back(const value_type& __x) 8737: { this->_M_insert(end(), __x); } 8737: 8737: 8737: void 8737: push_back(value_type&& __x) 8737: { this->_M_insert(end(), std::move(__x)); } 8737: 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: emplace_back(_Args&&... __args) 8737: { 8737: this->_M_insert(end(), std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: } 8737: # 1252 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: pop_back() noexcept 8737: { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } 8737: # 1269 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: iterator 8737: emplace(const_iterator __position, _Args&&... __args); 8737: # 1284 "/usr/include/c++/8/bits/stl_list.h" 3 8737: iterator 8737: insert(const_iterator __position, const value_type& __x); 8737: # 1314 "/usr/include/c++/8/bits/stl_list.h" 3 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return emplace(__position, std::move(__x)); } 8737: # 1333 "/usr/include/c++/8/bits/stl_list.h" 3 8737: iterator 8737: insert(const_iterator __p, initializer_list __l) 8737: { return this->insert(__p, __l.begin(), __l.end()); } 8737: # 1353 "/usr/include/c++/8/bits/stl_list.h" 3 8737: iterator 8737: insert(const_iterator __position, size_type __n, const value_type& __x); 8737: # 1392 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template> 8737: iterator 8737: insert(const_iterator __position, _InputIterator __first, 8737: _InputIterator __last); 8737: # 1436 "/usr/include/c++/8/bits/stl_list.h" 3 8737: iterator 8737: 8737: erase(const_iterator __position) noexcept; 8737: # 1461 "/usr/include/c++/8/bits/stl_list.h" 3 8737: iterator 8737: 8737: erase(const_iterator __first, const_iterator __last) noexcept 8737: 8737: 8737: 8737: { 8737: while (__first != __last) 8737: __first = erase(__first); 8737: return __last._M_const_cast(); 8737: } 8737: # 1484 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: swap(list& __x) noexcept 8737: { 8737: __detail::_List_node_base::swap(this->_M_impl._M_node, 8737: __x._M_impl._M_node); 8737: 8737: size_t __xsize = __x._M_get_size(); 8737: __x._M_set_size(this->_M_get_size()); 8737: this->_M_set_size(__xsize); 8737: 8737: _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), 8737: __x._M_get_Node_allocator()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: clear() noexcept 8737: { 8737: _Base::_M_clear(); 8737: _Base::_M_init(); 8737: } 8737: # 1523 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: 8737: splice(const_iterator __position, list&& __x) noexcept 8737: 8737: 8737: 8737: { 8737: if (!__x.empty()) 8737: { 8737: _M_check_equal_allocators(__x); 8737: 8737: this->_M_transfer(__position._M_const_cast(), 8737: __x.begin(), __x.end()); 8737: 8737: this->_M_inc_size(__x._M_get_size()); 8737: __x._M_set_size(0); 8737: } 8737: } 8737: 8737: 8737: void 8737: splice(const_iterator __position, list& __x) noexcept 8737: { splice(__position, std::move(__x)); } 8737: # 1559 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: splice(const_iterator __position, list&& __x, const_iterator __i) noexcept 8737: # 1574 "/usr/include/c++/8/bits/stl_list.h" 3 8737: { 8737: iterator __j = __i._M_const_cast(); 8737: ++__j; 8737: if (__position == __i || __position == __j) 8737: return; 8737: 8737: if (this != std::__addressof(__x)) 8737: _M_check_equal_allocators(__x); 8737: 8737: this->_M_transfer(__position._M_const_cast(), 8737: __i._M_const_cast(), __j); 8737: 8737: this->_M_inc_size(1); 8737: __x._M_dec_size(1); 8737: } 8737: # 1601 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: splice(const_iterator __position, list& __x, const_iterator __i) noexcept 8737: { splice(__position, std::move(__x), __i); } 8737: # 1620 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: splice(const_iterator __position, list&& __x, const_iterator __first, 8737: const_iterator __last) noexcept 8737: # 1640 "/usr/include/c++/8/bits/stl_list.h" 3 8737: { 8737: if (__first != __last) 8737: { 8737: if (this != std::__addressof(__x)) 8737: _M_check_equal_allocators(__x); 8737: 8737: size_t __n = _S_distance(__first, __last); 8737: this->_M_inc_size(__n); 8737: __x._M_dec_size(__n); 8737: 8737: this->_M_transfer(__position._M_const_cast(), 8737: __first._M_const_cast(), 8737: __last._M_const_cast()); 8737: } 8737: } 8737: # 1670 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: splice(const_iterator __position, list& __x, const_iterator __first, 8737: const_iterator __last) noexcept 8737: { splice(__position, std::move(__x), __first, __last); } 8737: # 1687 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: remove(const _Tp& __value); 8737: # 1701 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: void 8737: remove_if(_Predicate); 8737: # 1715 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: unique(); 8737: # 1730 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: void 8737: unique(_BinaryPredicate); 8737: # 1744 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: merge(list&& __x); 8737: 8737: void 8737: merge(list& __x) 8737: { merge(std::move(__x)); } 8737: # 1769 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: void 8737: merge(list&& __x, _StrictWeakOrdering __comp); 8737: 8737: template 8737: void 8737: merge(list& __x, _StrictWeakOrdering __comp) 8737: { merge(std::move(__x), __comp); } 8737: # 1788 "/usr/include/c++/8/bits/stl_list.h" 3 8737: void 8737: reverse() noexcept 8737: { this->_M_impl._M_node._M_reverse(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: sort(); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: sort(_StrictWeakOrdering); 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8737: { _M_fill_initialize(static_cast(__n), __x); } 8737: 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { 8737: for (; __first != __last; ++__first) 8737: 8737: emplace_back(*__first); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: void 8737: _M_fill_initialize(size_type __n, const value_type& __x) 8737: { 8737: for (; __n; --__n) 8737: push_back(__x); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_default_initialize(size_type __n) 8737: { 8737: for (; __n; --__n) 8737: emplace_back(); 8737: } 8737: 8737: 8737: void 8737: _M_default_append(size_type __n); 8737: # 1866 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: void 8737: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8737: { _M_fill_assign(__n, __val); } 8737: 8737: 8737: template 8737: void 8737: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type); 8737: 8737: 8737: 8737: void 8737: _M_fill_assign(size_type __n, const value_type& __val); 8737: 8737: 8737: 8737: void 8737: _M_transfer(iterator __position, iterator __first, iterator __last) 8737: { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } 8737: # 1898 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: void 8737: _M_insert(iterator __position, _Args&&... __args) 8737: { 8737: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8737: __tmp->_M_hook(__position._M_node); 8737: this->_M_inc_size(1); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_erase(iterator __position) noexcept 8737: { 8737: this->_M_dec_size(1); 8737: __position._M_node->_M_unhook(); 8737: _Node* __n = static_cast<_Node*>(__position._M_node); 8737: 8737: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __n->_M_valptr()); 8737: 8737: 8737: 8737: 8737: _M_put_node(__n); 8737: } 8737: 8737: 8737: void 8737: _M_check_equal_allocators(list& __x) noexcept 8737: { 8737: if (std::__alloc_neq:: 8737: _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) 8737: __builtin_abort(); 8737: } 8737: 8737: 8737: const_iterator 8737: _M_resize_pos(size_type& __new_size) const; 8737: 8737: 8737: void 8737: _M_move_assign(list&& __x, true_type) noexcept 8737: { 8737: this->_M_clear(); 8737: this->_M_move_nodes(std::move(__x)); 8737: std::__alloc_on_move(this->_M_get_Node_allocator(), 8737: __x._M_get_Node_allocator()); 8737: } 8737: 8737: void 8737: _M_move_assign(list&& __x, false_type) 8737: { 8737: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8737: _M_move_assign(std::move(__x), true_type{}); 8737: else 8737: 8737: 8737: _M_assign_dispatch(std::__make_move_if_noexcept_iterator(__x.begin()), 8737: std::__make_move_if_noexcept_iterator(__x.end()), 8737: __false_type{}); 8737: } 8737: 8737: }; 8737: # 1972 "/usr/include/c++/8/bits/stl_list.h" 3 8737: } 8737: # 1984 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: inline bool 8737: operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8737: { 8737: 8737: if (__x.size() != __y.size()) 8737: return false; 8737: 8737: 8737: typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; 8737: const_iterator __end1 = __x.end(); 8737: const_iterator __end2 = __y.end(); 8737: 8737: const_iterator __i1 = __x.begin(); 8737: const_iterator __i2 = __y.begin(); 8737: while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) 8737: { 8737: ++__i1; 8737: ++__i2; 8737: } 8737: return __i1 == __end1 && __i2 == __end2; 8737: } 8737: # 2018 "/usr/include/c++/8/bits/stl_list.h" 3 8737: template 8737: inline bool 8737: operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8737: { return std::lexicographical_compare(__x.begin(), __x.end(), 8737: __y.begin(), __y.end()); } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline ptrdiff_t 8737: __distance(std::_List_iterator<_Tp> __first, 8737: std::_List_iterator<_Tp> __last, 8737: input_iterator_tag __tag) 8737: { 8737: typedef std::_List_const_iterator<_Tp> _CIter; 8737: return std::__distance(_CIter(__first), _CIter(__last), __tag); 8737: } 8737: 8737: template 8737: inline ptrdiff_t 8737: __distance(std::_List_const_iterator<_Tp> __first, 8737: std::_List_const_iterator<_Tp> __last, 8737: input_iterator_tag) 8737: { 8737: typedef __detail::_List_node_header _Sentinel; 8737: std::_List_const_iterator<_Tp> __beyond = __last; 8737: ++__beyond; 8737: const bool __whole = __first == __beyond; 8737: if (__builtin_constant_p (__whole) && __whole) 8737: return static_cast(__last._M_node)->_M_size; 8737: 8737: ptrdiff_t __n = 0; 8737: while (__first != __last) 8737: { 8737: ++__first; 8737: ++__n; 8737: } 8737: return __n; 8737: } 8737: 8737: 8737: 8737: } 8737: # 64 "/usr/include/c++/8/list" 2 3 8737: # 1 "/usr/include/c++/8/bits/list.tcc" 1 3 8737: # 59 "/usr/include/c++/8/bits/list.tcc" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: void 8737: _List_base<_Tp, _Alloc>:: 8737: _M_clear() noexcept 8737: { 8737: typedef _List_node<_Tp> _Node; 8737: __detail::_List_node_base* __cur = _M_impl._M_node._M_next; 8737: while (__cur != &_M_impl._M_node) 8737: { 8737: _Node* __tmp = static_cast<_Node*>(__cur); 8737: __cur = __tmp->_M_next; 8737: _Tp* __val = __tmp->_M_valptr(); 8737: 8737: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val); 8737: 8737: 8737: 8737: _M_put_node(__tmp); 8737: } 8737: } 8737: 8737: 8737: template 8737: template 8737: typename list<_Tp, _Alloc>::iterator 8737: list<_Tp, _Alloc>:: 8737: emplace(const_iterator __position, _Args&&... __args) 8737: { 8737: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8737: __tmp->_M_hook(__position._M_const_cast()._M_node); 8737: this->_M_inc_size(1); 8737: return iterator(__tmp); 8737: } 8737: 8737: 8737: template 8737: typename list<_Tp, _Alloc>::iterator 8737: list<_Tp, _Alloc>:: 8737: 8737: insert(const_iterator __position, const value_type& __x) 8737: 8737: 8737: 8737: { 8737: _Node* __tmp = _M_create_node(__x); 8737: __tmp->_M_hook(__position._M_const_cast()._M_node); 8737: this->_M_inc_size(1); 8737: return iterator(__tmp); 8737: } 8737: 8737: 8737: template 8737: typename list<_Tp, _Alloc>::iterator 8737: list<_Tp, _Alloc>:: 8737: insert(const_iterator __position, size_type __n, const value_type& __x) 8737: { 8737: if (__n) 8737: { 8737: list __tmp(__n, __x, get_allocator()); 8737: iterator __it = __tmp.begin(); 8737: splice(__position, __tmp); 8737: return __it; 8737: } 8737: return __position._M_const_cast(); 8737: } 8737: 8737: template 8737: template 8737: typename list<_Tp, _Alloc>::iterator 8737: list<_Tp, _Alloc>:: 8737: insert(const_iterator __position, _InputIterator __first, 8737: _InputIterator __last) 8737: { 8737: list __tmp(__first, __last, get_allocator()); 8737: if (!__tmp.empty()) 8737: { 8737: iterator __it = __tmp.begin(); 8737: splice(__position, __tmp); 8737: return __it; 8737: } 8737: return __position._M_const_cast(); 8737: } 8737: 8737: 8737: template 8737: typename list<_Tp, _Alloc>::iterator 8737: list<_Tp, _Alloc>:: 8737: 8737: erase(const_iterator __position) noexcept 8737: 8737: 8737: 8737: { 8737: iterator __ret = iterator(__position._M_node->_M_next); 8737: _M_erase(__position._M_const_cast()); 8737: return __ret; 8737: } 8737: # 173 "/usr/include/c++/8/bits/list.tcc" 3 8737: template 8737: typename list<_Tp, _Alloc>::const_iterator 8737: list<_Tp, _Alloc>:: 8737: _M_resize_pos(size_type& __new_size) const 8737: { 8737: const_iterator __i; 8737: 8737: const size_type __len = size(); 8737: if (__new_size < __len) 8737: { 8737: if (__new_size <= __len / 2) 8737: { 8737: __i = begin(); 8737: std::advance(__i, __new_size); 8737: } 8737: else 8737: { 8737: __i = end(); 8737: ptrdiff_t __num_erase = __len - __new_size; 8737: std::advance(__i, -__num_erase); 8737: } 8737: __new_size = 0; 8737: return __i; 8737: } 8737: else 8737: __i = end(); 8737: 8737: 8737: 8737: 8737: 8737: __new_size -= __len; 8737: return __i; 8737: } 8737: 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: _M_default_append(size_type __n) 8737: { 8737: size_type __i = 0; 8737: try 8737: { 8737: for (; __i < __n; ++__i) 8737: emplace_back(); 8737: } 8737: catch(...) 8737: { 8737: for (; __i; --__i) 8737: pop_back(); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: resize(size_type __new_size) 8737: { 8737: const_iterator __i = _M_resize_pos(__new_size); 8737: if (__new_size) 8737: _M_default_append(__new_size); 8737: else 8737: erase(__i, end()); 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: resize(size_type __new_size, const value_type& __x) 8737: { 8737: const_iterator __i = _M_resize_pos(__new_size); 8737: if (__new_size) 8737: insert(end(), __new_size, __x); 8737: else 8737: erase(__i, end()); 8737: } 8737: # 265 "/usr/include/c++/8/bits/list.tcc" 3 8737: template 8737: list<_Tp, _Alloc>& 8737: list<_Tp, _Alloc>:: 8737: operator=(const list& __x) 8737: { 8737: if (this != std::__addressof(__x)) 8737: { 8737: 8737: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 8737: { 8737: auto& __this_alloc = this->_M_get_Node_allocator(); 8737: auto& __that_alloc = __x._M_get_Node_allocator(); 8737: if (!_Node_alloc_traits::_S_always_equal() 8737: && __this_alloc != __that_alloc) 8737: { 8737: 8737: clear(); 8737: } 8737: std::__alloc_on_copy(__this_alloc, __that_alloc); 8737: } 8737: 8737: _M_assign_dispatch(__x.begin(), __x.end(), __false_type()); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: _M_fill_assign(size_type __n, const value_type& __val) 8737: { 8737: iterator __i = begin(); 8737: for (; __i != end() && __n > 0; ++__i, --__n) 8737: *__i = __val; 8737: if (__n > 0) 8737: insert(end(), __n, __val); 8737: else 8737: erase(__i, end()); 8737: } 8737: 8737: template 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, 8737: __false_type) 8737: { 8737: iterator __first1 = begin(); 8737: iterator __last1 = end(); 8737: for (; __first1 != __last1 && __first2 != __last2; 8737: ++__first1, ++__first2) 8737: *__first1 = *__first2; 8737: if (__first2 == __last2) 8737: erase(__first1, __last1); 8737: else 8737: insert(__last1, __first2, __last2); 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: remove(const value_type& __value) 8737: { 8737: iterator __first = begin(); 8737: iterator __last = end(); 8737: iterator __extra = __last; 8737: while (__first != __last) 8737: { 8737: iterator __next = __first; 8737: ++__next; 8737: if (*__first == __value) 8737: { 8737: 8737: 8737: 8737: if (std::__addressof(*__first) != std::__addressof(__value)) 8737: _M_erase(__first); 8737: else 8737: __extra = __first; 8737: } 8737: __first = __next; 8737: } 8737: if (__extra != __last) 8737: _M_erase(__extra); 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: unique() 8737: { 8737: iterator __first = begin(); 8737: iterator __last = end(); 8737: if (__first == __last) 8737: return; 8737: iterator __next = __first; 8737: while (++__next != __last) 8737: { 8737: if (*__first == *__next) 8737: _M_erase(__next); 8737: else 8737: __first = __next; 8737: __next = __first; 8737: } 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: 8737: merge(list&& __x) 8737: 8737: 8737: 8737: { 8737: 8737: 8737: if (this != std::__addressof(__x)) 8737: { 8737: _M_check_equal_allocators(__x); 8737: 8737: iterator __first1 = begin(); 8737: iterator __last1 = end(); 8737: iterator __first2 = __x.begin(); 8737: iterator __last2 = __x.end(); 8737: const size_t __orig_size = __x.size(); 8737: try { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: if (*__first2 < *__first1) 8737: { 8737: iterator __next = __first2; 8737: _M_transfer(__first1, __first2, ++__next); 8737: __first2 = __next; 8737: } 8737: else 8737: ++__first1; 8737: if (__first2 != __last2) 8737: _M_transfer(__last1, __first2, __last2); 8737: 8737: this->_M_inc_size(__x._M_get_size()); 8737: __x._M_set_size(0); 8737: } 8737: catch(...) 8737: { 8737: const size_t __dist = std::distance(__first2, __last2); 8737: this->_M_inc_size(__orig_size - __dist); 8737: __x._M_set_size(__dist); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: 8737: merge(list&& __x, _StrictWeakOrdering __comp) 8737: 8737: 8737: 8737: { 8737: 8737: 8737: if (this != std::__addressof(__x)) 8737: { 8737: _M_check_equal_allocators(__x); 8737: 8737: iterator __first1 = begin(); 8737: iterator __last1 = end(); 8737: iterator __first2 = __x.begin(); 8737: iterator __last2 = __x.end(); 8737: const size_t __orig_size = __x.size(); 8737: try 8737: { 8737: while (__first1 != __last1 && __first2 != __last2) 8737: if (__comp(*__first2, *__first1)) 8737: { 8737: iterator __next = __first2; 8737: _M_transfer(__first1, __first2, ++__next); 8737: __first2 = __next; 8737: } 8737: else 8737: ++__first1; 8737: if (__first2 != __last2) 8737: _M_transfer(__last1, __first2, __last2); 8737: 8737: this->_M_inc_size(__x._M_get_size()); 8737: __x._M_set_size(0); 8737: } 8737: catch(...) 8737: { 8737: const size_t __dist = std::distance(__first2, __last2); 8737: this->_M_inc_size(__orig_size - __dist); 8737: __x._M_set_size(__dist); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: sort() 8737: { 8737: 8737: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8737: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8737: { 8737: list __carry; 8737: list __tmp[64]; 8737: list * __fill = __tmp; 8737: list * __counter; 8737: try 8737: { 8737: do 8737: { 8737: __carry.splice(__carry.begin(), *this, begin()); 8737: 8737: for(__counter = __tmp; 8737: __counter != __fill && !__counter->empty(); 8737: ++__counter) 8737: { 8737: __counter->merge(__carry); 8737: __carry.swap(*__counter); 8737: } 8737: __carry.swap(*__counter); 8737: if (__counter == __fill) 8737: ++__fill; 8737: } 8737: while ( !empty() ); 8737: 8737: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8737: __counter->merge(*(__counter - 1)); 8737: swap( *(__fill - 1) ); 8737: } 8737: catch(...) 8737: { 8737: this->splice(this->end(), __carry); 8737: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8737: this->splice(this->end(), __tmp[__i]); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: remove_if(_Predicate __pred) 8737: { 8737: iterator __first = begin(); 8737: iterator __last = end(); 8737: while (__first != __last) 8737: { 8737: iterator __next = __first; 8737: ++__next; 8737: if (__pred(*__first)) 8737: _M_erase(__first); 8737: __first = __next; 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: unique(_BinaryPredicate __binary_pred) 8737: { 8737: iterator __first = begin(); 8737: iterator __last = end(); 8737: if (__first == __last) 8737: return; 8737: iterator __next = __first; 8737: while (++__next != __last) 8737: { 8737: if (__binary_pred(*__first, *__next)) 8737: _M_erase(__next); 8737: else 8737: __first = __next; 8737: __next = __first; 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: list<_Tp, _Alloc>:: 8737: sort(_StrictWeakOrdering __comp) 8737: { 8737: 8737: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8737: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8737: { 8737: list __carry; 8737: list __tmp[64]; 8737: list * __fill = __tmp; 8737: list * __counter; 8737: try 8737: { 8737: do 8737: { 8737: __carry.splice(__carry.begin(), *this, begin()); 8737: 8737: for(__counter = __tmp; 8737: __counter != __fill && !__counter->empty(); 8737: ++__counter) 8737: { 8737: __counter->merge(__carry, __comp); 8737: __carry.swap(*__counter); 8737: } 8737: __carry.swap(*__counter); 8737: if (__counter == __fill) 8737: ++__fill; 8737: } 8737: while ( !empty() ); 8737: 8737: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8737: __counter->merge(*(__counter - 1), __comp); 8737: swap(*(__fill - 1)); 8737: } 8737: catch(...) 8737: { 8737: this->splice(this->end(), __carry); 8737: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8737: this->splice(this->end(), __tmp[__i]); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: 8737: 8737: } 8737: # 65 "/usr/include/c++/8/list" 2 3 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8737: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 1 3 4 8737: # 34 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 3 4 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/syslimits.h" 1 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 1 3 4 8737: # 194 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 3 4 8737: # 1 "/usr/include/limits.h" 1 3 4 8737: # 26 "/usr/include/limits.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8737: # 27 "/usr/include/limits.h" 2 3 4 8737: # 183 "/usr/include/limits.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 8737: # 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 8737: # 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 8737: # 1 "/usr/include/linux/limits.h" 1 3 4 8737: # 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 8737: # 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 8737: # 184 "/usr/include/limits.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 8737: # 188 "/usr/include/limits.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 8737: # 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 8737: # 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 8737: # 192 "/usr/include/limits.h" 2 3 4 8737: # 195 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 2 3 4 8737: # 8 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/syslimits.h" 2 3 4 8737: # 35 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 2 3 4 8737: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template class QVector; 8737: template class QSet; 8737: 8737: template struct QListSpecialMethods 8737: { 8737: protected: 8737: ~QListSpecialMethods() {} 8737: }; 8737: template <> struct QListSpecialMethods; 8737: template <> struct QListSpecialMethods; 8737: 8737: struct __attribute__((visibility("default"))) QListData { 8737: 8737: 8737: struct NotArrayCompatibleLayout {}; 8737: struct NotIndirectLayout {}; 8737: struct ArrayCompatibleLayout : NotIndirectLayout {}; 8737: struct InlineWithPaddingLayout : NotArrayCompatibleLayout, NotIndirectLayout {}; 8737: struct IndirectLayout : NotArrayCompatibleLayout {}; 8737: 8737: struct Data { 8737: QtPrivate::RefCount ref; 8737: int alloc, begin, end; 8737: void *array[1]; 8737: }; 8737: enum { DataHeaderSize = sizeof(Data) - sizeof(void *) }; 8737: 8737: Data *detach(int alloc); 8737: Data *detach_grow(int *i, int n); 8737: void realloc(int alloc); 8737: void realloc_grow(int growth); 8737: inline void dispose() { dispose(d); } 8737: static void dispose(Data *d); 8737: static const Data shared_null; 8737: Data *d; 8737: void **erase(void **xi); 8737: void **append(int n); 8737: void **append(); 8737: void **append(const QListData &l); 8737: void **prepend(); 8737: void **insert(int i); 8737: void remove(int i); 8737: void remove(int i, int n); 8737: void move(int from, int to); 8737: inline int size() const noexcept { return d->end - d->begin; } 8737: inline bool isEmpty() const noexcept { return d->end == d->begin; } 8737: inline void **at(int i) const noexcept { return d->array + d->begin + i; } 8737: inline void **begin() const noexcept { return d->array + d->begin; } 8737: inline void **end() const noexcept { return d->array + d->end; } 8737: }; 8737: 8737: template 8737: class QList 8737: 8737: : public QListSpecialMethods 8737: 8737: { 8737: public: 8737: struct MemoryLayout 8737: : std::conditional< 8737: 8737: QTypeInfo::isStatic || QTypeInfo::isLarge, 8737: QListData::IndirectLayout, 8737: typename std::conditional< 8737: sizeof(T) == sizeof(void*), 8737: QListData::ArrayCompatibleLayout, 8737: QListData::InlineWithPaddingLayout 8737: >::type>::type {}; 8737: private: 8737: struct Node { void *v; 8737: 8737: 8737: 8737: inline T &t() 8737: { return *reinterpret_cast(QTypeInfo::isLarge || QTypeInfo::isStatic 8737: ? v : this); } 8737: 8737: }; 8737: 8737: union { QListData p; QListData::Data *d; }; 8737: 8737: public: 8737: inline QList() noexcept : d(const_cast(&QListData::shared_null)) { } 8737: QList(const QList &l); 8737: ~QList(); 8737: QList &operator=(const QList &l); 8737: 8737: inline QList(QList &&other) noexcept 8737: : d(other.d) { other.d = const_cast(&QListData::shared_null); } 8737: inline QList &operator=(QList &&other) noexcept 8737: { QList moved(std::move(other)); swap(moved); return *this; } 8737: 8737: inline void swap(QList &other) noexcept { qSwap(d, other.d); } 8737: 8737: inline QList(std::initializer_list args) 8737: : d(const_cast(&QListData::shared_null)) 8737: { reserve(int(args.size())); std::copy(args.begin(), args.end(), std::back_inserter(*this)); } 8737: 8737: bool operator==(const QList &l) const; 8737: inline bool operator!=(const QList &l) const { return !(*this == l); } 8737: 8737: inline int size() const noexcept { return p.size(); } 8737: 8737: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8737: 8737: inline void detachShared() 8737: { 8737: 8737: if (d->ref.isShared() && this->d != &QListData::shared_null) 8737: detach_helper(); 8737: } 8737: 8737: inline bool isDetached() const { return !d->ref.isShared(); } 8737: 8737: inline void setSharable(bool sharable) 8737: { 8737: if (sharable == d->ref.isSharable()) 8737: return; 8737: if (!sharable) 8737: detach(); 8737: if (d != &QListData::shared_null) 8737: d->ref.setSharable(sharable); 8737: } 8737: 8737: inline bool isSharedWith(const QList &other) const noexcept { return d == other.d; } 8737: 8737: inline bool isEmpty() const noexcept { return p.isEmpty(); } 8737: 8737: void clear(); 8737: 8737: const T &at(int i) const; 8737: const T &operator[](int i) const; 8737: T &operator[](int i); 8737: 8737: void reserve(int size); 8737: void append(const T &t); 8737: void append(const QList &t); 8737: void prepend(const T &t); 8737: void insert(int i, const T &t); 8737: void replace(int i, const T &t); 8737: void removeAt(int i); 8737: int removeAll(const T &t); 8737: bool removeOne(const T &t); 8737: T takeAt(int i); 8737: T takeFirst(); 8737: T takeLast(); 8737: void move(int from, int to); 8737: void swap(int i, int j); 8737: int indexOf(const T &t, int from = 0) const; 8737: int lastIndexOf(const T &t, int from = -1) const; 8737: bool contains(const T &t) const; 8737: int count(const T &t) const; 8737: 8737: class const_iterator; 8737: 8737: class iterator { 8737: public: 8737: Node *i; 8737: typedef std::random_access_iterator_tag iterator_category; 8737: 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef T *pointer; 8737: typedef T &reference; 8737: 8737: inline iterator() noexcept : i(nullptr) {} 8737: inline iterator(Node *n) noexcept : i(n) {} 8737: 8737: 8737: 8737: inline iterator(const iterator &o) noexcept : i(o.i){} 8737: 8737: inline T &operator*() const { return i->t(); } 8737: inline T *operator->() const { return &i->t(); } 8737: inline T &operator[](difference_type j) const { return i[j].t(); } 8737: inline bool operator==(const iterator &o) const noexcept { return i == o.i; } 8737: inline bool operator!=(const iterator &o) const noexcept { return i != o.i; } 8737: inline bool operator<(const iterator& other) const noexcept { return i < other.i; } 8737: inline bool operator<=(const iterator& other) const noexcept { return i <= other.i; } 8737: inline bool operator>(const iterator& other) const noexcept { return i > other.i; } 8737: inline bool operator>=(const iterator& other) const noexcept { return i >= other.i; } 8737: # 264 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 3 4 8737: inline iterator &operator++() { ++i; return *this; } 8737: inline iterator operator++(int) { Node *n = i; ++i; return n; } 8737: inline iterator &operator--() { i--; return *this; } 8737: inline iterator operator--(int) { Node *n = i; i--; return n; } 8737: inline iterator &operator+=(difference_type j) { i+=j; return *this; } 8737: inline iterator &operator-=(difference_type j) { i-=j; return *this; } 8737: inline iterator operator+(difference_type j) const { return iterator(i+j); } 8737: inline iterator operator-(difference_type j) const { return iterator(i-j); } 8737: inline int operator-(iterator j) const { return int(i - j.i); } 8737: }; 8737: friend class iterator; 8737: 8737: class const_iterator { 8737: public: 8737: Node *i; 8737: typedef std::random_access_iterator_tag iterator_category; 8737: 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: 8737: inline const_iterator() noexcept : i(nullptr) {} 8737: inline const_iterator(Node *n) noexcept : i(n) {} 8737: 8737: 8737: 8737: inline const_iterator(const const_iterator &o) noexcept : i(o.i) {} 8737: 8737: 8737: inline explicit const_iterator(const iterator &o) noexcept : i(o.i) {} 8737: 8737: 8737: 8737: inline const T &operator*() const { return i->t(); } 8737: inline const T *operator->() const { return &i->t(); } 8737: inline const T &operator[](difference_type j) const { return i[j].t(); } 8737: inline bool operator==(const const_iterator &o) const noexcept { return i == o.i; } 8737: inline bool operator!=(const const_iterator &o) const noexcept { return i != o.i; } 8737: inline bool operator<(const const_iterator& other) const noexcept { return i < other.i; } 8737: inline bool operator<=(const const_iterator& other) const noexcept { return i <= other.i; } 8737: inline bool operator>(const const_iterator& other) const noexcept { return i > other.i; } 8737: inline bool operator>=(const const_iterator& other) const noexcept { return i >= other.i; } 8737: inline const_iterator &operator++() { ++i; return *this; } 8737: inline const_iterator operator++(int) { Node *n = i; ++i; return n; } 8737: inline const_iterator &operator--() { i--; return *this; } 8737: inline const_iterator operator--(int) { Node *n = i; i--; return n; } 8737: inline const_iterator &operator+=(difference_type j) { i+=j; return *this; } 8737: inline const_iterator &operator-=(difference_type j) { i-=j; return *this; } 8737: inline const_iterator operator+(difference_type j) const { return const_iterator(i+j); } 8737: inline const_iterator operator-(difference_type j) const { return const_iterator(i-j); } 8737: inline int operator-(const_iterator j) const { return int(i - j.i); } 8737: }; 8737: friend class const_iterator; 8737: 8737: 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: inline iterator begin() { detach(); return reinterpret_cast(p.begin()); } 8737: inline const_iterator begin() const noexcept { return reinterpret_cast(p.begin()); } 8737: inline const_iterator cbegin() const noexcept { return reinterpret_cast(p.begin()); } 8737: inline const_iterator constBegin() const noexcept { return reinterpret_cast(p.begin()); } 8737: inline iterator end() { detach(); return reinterpret_cast(p.end()); } 8737: inline const_iterator end() const noexcept { return reinterpret_cast(p.end()); } 8737: inline const_iterator cend() const noexcept { return reinterpret_cast(p.end()); } 8737: inline const_iterator constEnd() const noexcept { return reinterpret_cast(p.end()); } 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8737: iterator insert(iterator before, const T &t); 8737: iterator erase(iterator pos); 8737: iterator erase(iterator first, iterator last); 8737: 8737: 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: inline int count() const { return p.size(); } 8737: inline int length() const { return p.size(); } 8737: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline const T& constFirst() const { return first(); } 8737: inline const T& first() const { do { } while ((false) && (!isEmpty())); return at(0); } 8737: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8737: const T& last() const { do { } while ((false) && (!isEmpty())); return at(count() - 1); } 8737: inline const T& constLast() const { return last(); } 8737: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8737: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8737: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8737: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8737: QList mid(int pos, int length = -1) const; 8737: 8737: T value(int i) const; 8737: T value(int i, const T &defaultValue) const; 8737: 8737: 8737: inline void push_back(const T &t) { append(t); } 8737: inline void push_front(const T &t) { prepend(t); } 8737: inline T& front() { return first(); } 8737: inline const T& front() const { return first(); } 8737: inline T& back() { return last(); } 8737: inline const T& back() const { return last(); } 8737: inline void pop_front() { removeFirst(); } 8737: inline void pop_back() { removeLast(); } 8737: inline bool empty() const { return isEmpty(); } 8737: typedef int size_type; 8737: typedef T value_type; 8737: typedef value_type *pointer; 8737: typedef const value_type *const_pointer; 8737: typedef value_type &reference; 8737: typedef const value_type &const_reference; 8737: 8737: typedef qptrdiff difference_type; 8737: 8737: 8737: QList &operator+=(const QList &l); 8737: inline QList operator+(const QList &l) const 8737: { QList n = *this; n += l; return n; } 8737: inline QList &operator+=(const T &t) 8737: { append(t); return *this; } 8737: inline QList &operator<< (const T &t) 8737: { append(t); return *this; } 8737: inline QList &operator<<(const QList &l) 8737: { *this += l; return *this; } 8737: 8737: QVector toVector() const; 8737: QSet toSet() const; 8737: 8737: static QList fromVector(const QVector &vector); 8737: static QList fromSet(const QSet &set); 8737: 8737: static inline QList fromStdList(const std::list &list) 8737: { QList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8737: inline std::list toStdList() const 8737: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8737: 8737: private: 8737: Node *detach_helper_grow(int i, int n); 8737: void detach_helper(int alloc); 8737: void detach_helper(); 8737: void dealloc(QListData::Data *d); 8737: 8737: void node_construct(Node *n, const T &t); 8737: void node_destruct(Node *n); 8737: void node_copy(Node *from, Node *to, Node *src); 8737: void node_destruct(Node *from, Node *to); 8737: 8737: bool isValidIterator(const iterator &i) const noexcept 8737: { 8737: return (constBegin().i <= i.i) && (i.i <= constEnd().i); 8737: } 8737: 8737: private: 8737: inline bool op_eq_impl(const QList &other, QListData::NotArrayCompatibleLayout) const; 8737: inline bool op_eq_impl(const QList &other, QListData::ArrayCompatibleLayout) const; 8737: inline bool contains_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8737: inline bool contains_impl(const T &, QListData::ArrayCompatibleLayout) const; 8737: inline int count_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8737: inline int count_impl(const T &, QListData::ArrayCompatibleLayout) const; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline void QList::node_construct(Node *n, const T &t) 8737: { 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) n->v = new T(t); 8737: else if (QTypeInfo::isComplex) new (n) T(t); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: else ::memcpy(n, static_cast(&t), sizeof(T)); 8737: 8737: } 8737: 8737: template 8737: inline void QList::node_destruct(Node *n) 8737: { 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) delete reinterpret_cast(n->v); 8737: else if (QTypeInfo::isComplex) reinterpret_cast(n)->~T(); 8737: } 8737: 8737: template 8737: inline void QList::node_copy(Node *from, Node *to, Node *src) 8737: { 8737: Node *current = from; 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8737: try { 8737: while(current != to) { 8737: current->v = new T(*reinterpret_cast(src->v)); 8737: ++current; 8737: ++src; 8737: } 8737: } catch (...) { 8737: while (current-- != from) 8737: delete reinterpret_cast(current->v); 8737: throw; 8737: } 8737: 8737: } else if (QTypeInfo::isComplex) { 8737: try { 8737: while(current != to) { 8737: new (current) T(*reinterpret_cast(src)); 8737: ++current; 8737: ++src; 8737: } 8737: } catch (...) { 8737: while (current-- != from) 8737: (reinterpret_cast(current))->~T(); 8737: throw; 8737: } 8737: } else { 8737: if (src != from && to - from > 0) 8737: memcpy(from, src, (to - from) * sizeof(Node)); 8737: } 8737: } 8737: 8737: template 8737: inline void QList::node_destruct(Node *from, Node *to) 8737: { 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) 8737: while(from != to) --to, delete reinterpret_cast(to->v); 8737: else if (QTypeInfo::isComplex) 8737: while (from != to) --to, reinterpret_cast(to)->~T(); 8737: } 8737: 8737: template 8737: inline QList &QList::operator=(const QList &l) 8737: { 8737: if (d != l.d) { 8737: QList tmp(l); 8737: tmp.swap(*this); 8737: } 8737: return *this; 8737: } 8737: template 8737: inline typename QList::iterator QList::insert(iterator before, const T &t) 8737: { 8737: do { } while ((false) && (isValidIterator(before))); 8737: 8737: int iBefore = int(before.i - reinterpret_cast(p.begin())); 8737: Node *n = 0; 8737: if (d->ref.isShared()) 8737: n = detach_helper_grow(iBefore, 1); 8737: else 8737: n = reinterpret_cast(p.insert(iBefore)); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: p.remove(iBefore); 8737: throw; 8737: } 8737: return n; 8737: } 8737: template 8737: inline typename QList::iterator QList::erase(iterator it) 8737: { 8737: do { } while ((false) && (isValidIterator(it))); 8737: if (d->ref.isShared()) { 8737: int offset = int(it.i - reinterpret_cast(p.begin())); 8737: it = begin(); 8737: it += offset; 8737: } 8737: node_destruct(it.i); 8737: return reinterpret_cast(p.erase(reinterpret_cast(it.i))); 8737: } 8737: template 8737: inline const T &QList::at(int i) const 8737: { do { } while ((false) && (i >= 0 && i < p.size())); 8737: return reinterpret_cast(p.at(i))->t(); } 8737: template 8737: inline const T &QList::operator[](int i) const 8737: { do { } while ((false) && (i >= 0 && i < p.size())); 8737: return reinterpret_cast(p.at(i))->t(); } 8737: template 8737: inline T &QList::operator[](int i) 8737: { do { } while ((false) && (i >= 0 && i < p.size())); 8737: detach(); return reinterpret_cast(p.at(i))->t(); } 8737: template 8737: inline void QList::removeAt(int i) 8737: { if(i >= 0 && i < p.size()) { detach(); 8737: node_destruct(reinterpret_cast(p.at(i))); p.remove(i); } } 8737: template 8737: inline T QList::takeAt(int i) 8737: { do { } while ((false) && (i >= 0 && i < p.size())); 8737: detach(); Node *n = reinterpret_cast(p.at(i)); T t = n->t(); node_destruct(n); 8737: p.remove(i); return t; } 8737: template 8737: inline T QList::takeFirst() 8737: { T t = first(); removeFirst(); return t; } 8737: template 8737: inline T QList::takeLast() 8737: { T t = last(); removeLast(); return t; } 8737: 8737: template 8737: void QList::reserve(int alloc) 8737: { 8737: if (d->alloc < alloc) { 8737: if (d->ref.isShared()) 8737: detach_helper(alloc); 8737: else 8737: p.realloc(alloc); 8737: } 8737: } 8737: 8737: template 8737: void QList::append(const T &t) 8737: { 8737: if (d->ref.isShared()) { 8737: Node *n = detach_helper_grow(0x7fffffff, 1); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: --d->end; 8737: throw; 8737: } 8737: } else { 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8737: Node *n = reinterpret_cast(p.append()); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: --d->end; 8737: throw; 8737: } 8737: } else { 8737: Node *n, copy; 8737: node_construct(©, t); 8737: try { 8737: n = reinterpret_cast(p.append());; 8737: } catch (...) { 8737: node_destruct(©); 8737: throw; 8737: } 8737: *n = copy; 8737: } 8737: } 8737: } 8737: 8737: template 8737: inline void QList::prepend(const T &t) 8737: { 8737: if (d->ref.isShared()) { 8737: Node *n = detach_helper_grow(0, 1); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: ++d->begin; 8737: throw; 8737: } 8737: } else { 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8737: Node *n = reinterpret_cast(p.prepend()); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: ++d->begin; 8737: throw; 8737: } 8737: } else { 8737: Node *n, copy; 8737: node_construct(©, t); 8737: try { 8737: n = reinterpret_cast(p.prepend());; 8737: } catch (...) { 8737: node_destruct(©); 8737: throw; 8737: } 8737: *n = copy; 8737: } 8737: } 8737: } 8737: 8737: template 8737: inline void QList::insert(int i, const T &t) 8737: { 8737: if (d->ref.isShared()) { 8737: Node *n = detach_helper_grow(i, 1); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: p.remove(i); 8737: throw; 8737: } 8737: } else { 8737: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8737: Node *n = reinterpret_cast(p.insert(i)); 8737: try { 8737: node_construct(n, t); 8737: } catch (...) { 8737: p.remove(i); 8737: throw; 8737: } 8737: } else { 8737: Node *n, copy; 8737: node_construct(©, t); 8737: try { 8737: n = reinterpret_cast(p.insert(i));; 8737: } catch (...) { 8737: node_destruct(©); 8737: throw; 8737: } 8737: *n = copy; 8737: } 8737: } 8737: } 8737: 8737: template 8737: inline void QList::replace(int i, const T &t) 8737: { 8737: do { } while ((false) && (i >= 0 && i < p.size())); 8737: detach(); 8737: reinterpret_cast(p.at(i))->t() = t; 8737: } 8737: 8737: template 8737: inline void QList::swap(int i, int j) 8737: { 8737: do { } while ((false) && (i >= 0 && i < p.size() && j >= 0 && j < p.size())) 8737: ; 8737: detach(); 8737: std::swap(d->array[d->begin + i], d->array[d->begin + j]); 8737: } 8737: 8737: template 8737: inline void QList::move(int from, int to) 8737: { 8737: do { } while ((false) && (from >= 0 && from < p.size() && to >= 0 && to < p.size())) 8737: ; 8737: detach(); 8737: p.move(from, to); 8737: } 8737: 8737: template 8737: QList QList::mid(int pos, int alength) const 8737: { 8737: using namespace QtPrivate; 8737: switch (QContainerImplHelper::mid(size(), &pos, &alength)) { 8737: case QContainerImplHelper::Null: 8737: case QContainerImplHelper::Empty: 8737: return QList(); 8737: case QContainerImplHelper::Full: 8737: return *this; 8737: case QContainerImplHelper::Subset: 8737: break; 8737: } 8737: 8737: QList cpy; 8737: if (alength <= 0) 8737: return cpy; 8737: cpy.reserve(alength); 8737: cpy.d->end = alength; 8737: try { 8737: cpy.node_copy(reinterpret_cast(cpy.p.begin()), 8737: reinterpret_cast(cpy.p.end()), 8737: reinterpret_cast(p.begin() + pos)); 8737: } catch (...) { 8737: 8737: cpy.d->end = 0; 8737: throw; 8737: } 8737: return cpy; 8737: } 8737: 8737: template 8737: T QList::value(int i) const 8737: { 8737: if (i < 0 || i >= p.size()) { 8737: return T(); 8737: } 8737: return reinterpret_cast(p.at(i))->t(); 8737: } 8737: 8737: template 8737: T QList::value(int i, const T& defaultValue) const 8737: { 8737: return ((i < 0 || i >= p.size()) ? defaultValue : reinterpret_cast(p.at(i))->t()); 8737: } 8737: 8737: template 8737: typename QList::Node *QList::detach_helper_grow(int i, int c) 8737: { 8737: Node *n = reinterpret_cast(p.begin()); 8737: QListData::Data *x = p.detach_grow(&i, c); 8737: try { 8737: node_copy(reinterpret_cast(p.begin()), 8737: reinterpret_cast(p.begin() + i), n); 8737: } catch (...) { 8737: p.dispose(); 8737: d = x; 8737: throw; 8737: } 8737: try { 8737: node_copy(reinterpret_cast(p.begin() + i + c), 8737: reinterpret_cast(p.end()), n + i); 8737: } catch (...) { 8737: node_destruct(reinterpret_cast(p.begin()), 8737: reinterpret_cast(p.begin() + i)); 8737: p.dispose(); 8737: d = x; 8737: throw; 8737: } 8737: 8737: if (!x->ref.deref()) 8737: dealloc(x); 8737: 8737: return reinterpret_cast(p.begin() + i); 8737: } 8737: 8737: template 8737: void QList::detach_helper(int alloc) 8737: { 8737: Node *n = reinterpret_cast(p.begin()); 8737: QListData::Data *x = p.detach(alloc); 8737: try { 8737: node_copy(reinterpret_cast(p.begin()), reinterpret_cast(p.end()), n); 8737: } catch (...) { 8737: p.dispose(); 8737: d = x; 8737: throw; 8737: } 8737: 8737: if (!x->ref.deref()) 8737: dealloc(x); 8737: } 8737: 8737: template 8737: void QList::detach_helper() 8737: { 8737: detach_helper(d->alloc); 8737: } 8737: 8737: template 8737: QList::QList(const QList &l) 8737: : QListSpecialMethods(l), d(l.d) 8737: { 8737: if (!d->ref.ref()) { 8737: p.detach(d->alloc); 8737: 8737: try { 8737: node_copy(reinterpret_cast(p.begin()), 8737: reinterpret_cast(p.end()), 8737: reinterpret_cast(l.p.begin())); 8737: } catch (...) { 8737: QListData::dispose(d); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: QList::~QList() 8737: { 8737: if (!d->ref.deref()) 8737: dealloc(d); 8737: } 8737: 8737: template 8737: bool QList::operator==(const QList &l) const 8737: { 8737: if (d == l.d) 8737: return true; 8737: if (p.size() != l.p.size()) 8737: return false; 8737: return this->op_eq_impl(l, MemoryLayout()); 8737: } 8737: 8737: template 8737: inline bool QList::op_eq_impl(const QList &l, QListData::NotArrayCompatibleLayout) const 8737: { 8737: Node *i = reinterpret_cast(p.begin()); 8737: Node *e = reinterpret_cast(p.end()); 8737: Node *li = reinterpret_cast(l.p.begin()); 8737: for (; i != e; ++i, ++li) { 8737: if (!(i->t() == li->t())) 8737: return false; 8737: } 8737: return true; 8737: } 8737: 8737: template 8737: inline bool QList::op_eq_impl(const QList &l, QListData::ArrayCompatibleLayout) const 8737: { 8737: const T *lb = reinterpret_cast(l.p.begin()); 8737: const T *b = reinterpret_cast(p.begin()); 8737: const T *e = reinterpret_cast(p.end()); 8737: return std::equal(b, e, (lb)); 8737: } 8737: 8737: template 8737: void QList::dealloc(QListData::Data *data) 8737: { 8737: node_destruct(reinterpret_cast(data->array + data->begin), 8737: reinterpret_cast(data->array + data->end)); 8737: QListData::dispose(data); 8737: } 8737: 8737: 8737: template 8737: void QList::clear() 8737: { 8737: *this = QList(); 8737: } 8737: 8737: template 8737: int QList::removeAll(const T &_t) 8737: { 8737: int index = indexOf(_t); 8737: if (index == -1) 8737: return 0; 8737: 8737: const T t = _t; 8737: detach(); 8737: 8737: Node *i = reinterpret_cast(p.at(index)); 8737: Node *e = reinterpret_cast(p.end()); 8737: Node *n = i; 8737: node_destruct(i); 8737: while (++i != e) { 8737: if (i->t() == t) 8737: node_destruct(i); 8737: else 8737: *n++ = *i; 8737: } 8737: 8737: int removedCount = int(e - n); 8737: d->end -= removedCount; 8737: return removedCount; 8737: } 8737: 8737: template 8737: bool QList::removeOne(const T &_t) 8737: { 8737: int index = indexOf(_t); 8737: if (index != -1) { 8737: removeAt(index); 8737: return true; 8737: } 8737: return false; 8737: } 8737: 8737: template 8737: typename QList::iterator QList::erase(typename QList::iterator afirst, 8737: typename QList::iterator alast) 8737: { 8737: do { } while ((false) && (isValidIterator(afirst))); 8737: do { } while ((false) && (isValidIterator(alast))); 8737: 8737: if (d->ref.isShared()) { 8737: 8737: int offsetfirst = int(afirst.i - reinterpret_cast(p.begin())); 8737: int offsetlast = int(alast.i - reinterpret_cast(p.begin())); 8737: afirst = begin(); 8737: alast = afirst; 8737: afirst += offsetfirst; 8737: alast += offsetlast; 8737: } 8737: 8737: for (Node *n = afirst.i; n < alast.i; ++n) 8737: node_destruct(n); 8737: int idx = afirst - begin(); 8737: p.remove(idx, alast - afirst); 8737: return begin() + idx; 8737: } 8737: 8737: template 8737: QList &QList::operator+=(const QList &l) 8737: { 8737: if (!l.isEmpty()) { 8737: if (d == &QListData::shared_null) { 8737: *this = l; 8737: } else { 8737: Node *n = (d->ref.isShared()) 8737: ? detach_helper_grow(0x7fffffff, l.size()) 8737: : reinterpret_cast(p.append(l.p)); 8737: try { 8737: node_copy(n, reinterpret_cast(p.end()), 8737: reinterpret_cast(l.p.begin())); 8737: } catch (...) { 8737: 8737: d->end -= int(reinterpret_cast(p.end()) - n); 8737: throw; 8737: } 8737: } 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: inline void QList::append(const QList &t) 8737: { 8737: *this += t; 8737: } 8737: 8737: template 8737: int QList::indexOf(const T &t, int from) const 8737: { 8737: if (from < 0) 8737: from = qMax(from + p.size(), 0); 8737: if (from < p.size()) { 8737: Node *n = reinterpret_cast(p.at(from -1)); 8737: Node *e = reinterpret_cast(p.end()); 8737: while (++n != e) 8737: if (n->t() == t) 8737: return int(n - reinterpret_cast(p.begin())); 8737: } 8737: return -1; 8737: } 8737: 8737: template 8737: int QList::lastIndexOf(const T &t, int from) const 8737: { 8737: if (from < 0) 8737: from += p.size(); 8737: else if (from >= p.size()) 8737: from = p.size()-1; 8737: if (from >= 0) { 8737: Node *b = reinterpret_cast(p.begin()); 8737: Node *n = reinterpret_cast(p.at(from + 1)); 8737: while (n-- != b) { 8737: if (n->t() == t) 8737: return n - b; 8737: } 8737: } 8737: return -1; 8737: } 8737: 8737: template 8737: bool QList::contains(const T &t) const 8737: { 8737: return contains_impl(t, MemoryLayout()); 8737: } 8737: 8737: template 8737: inline bool QList::contains_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8737: { 8737: Node *e = reinterpret_cast(p.end()); 8737: Node *i = reinterpret_cast(p.begin()); 8737: for (; i != e; ++i) 8737: if (i->t() == t) 8737: return true; 8737: return false; 8737: } 8737: 8737: template 8737: inline bool QList::contains_impl(const T &t, QListData::ArrayCompatibleLayout) const 8737: { 8737: const T *b = reinterpret_cast(p.begin()); 8737: const T *e = reinterpret_cast(p.end()); 8737: return std::find(b, e, t) != e; 8737: } 8737: 8737: template 8737: int QList::count(const T &t) const 8737: { 8737: return this->count_impl(t, MemoryLayout()); 8737: } 8737: 8737: template 8737: inline int QList::count_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8737: { 8737: int c = 0; 8737: Node *e = reinterpret_cast(p.end()); 8737: Node *i = reinterpret_cast(p.begin()); 8737: for (; i != e; ++i) 8737: if (i->t() == t) 8737: ++c; 8737: return c; 8737: } 8737: 8737: template 8737: inline int QList::count_impl(const T &t, QListData::ArrayCompatibleLayout) const 8737: { 8737: return int(std::count(reinterpret_cast(p.begin()), 8737: reinterpret_cast(p.end()), 8737: t)); 8737: } 8737: 8737: 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; } }; 8737: 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; } }; 8737: 8737: template 8737: uint qHash(const QList &key, uint seed = 0) 8737: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8737: { 8737: return qHashRange(key.cbegin(), key.cend(), seed); 8737: } 8737: 8737: template 8737: bool operator<(const QList &lhs, const QList &rhs) 8737: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8737: 8737: { 8737: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8737: rhs.begin(), rhs.end()); 8737: } 8737: 8737: template 8737: inline bool operator>(const QList &lhs, const QList &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return rhs < lhs; 8737: } 8737: 8737: template 8737: inline bool operator<=(const QList &lhs, const QList &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return !(lhs > rhs); 8737: } 8737: 8737: template 8737: inline bool operator>=(const QList &lhs, const QList &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return !(lhs < rhs); 8737: } 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 1 3 4 8737: # 42 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef QListIterator QByteArrayListIterator; 8737: typedef QMutableListIterator QMutableByteArrayListIterator; 8737: 8737: typedef QList QByteArrayList; 8737: 8737: namespace QtPrivate { 8737: QByteArray __attribute__((visibility("default"))) QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template <> struct QListSpecialMethods 8737: 8737: { 8737: 8737: protected: 8737: ~QListSpecialMethods() {} 8737: 8737: public: 8737: inline QByteArray join() const 8737: { return QtPrivate::QByteArrayList_join(self(), nullptr, 0); } 8737: inline QByteArray join(const QByteArray &sep) const 8737: { return QtPrivate::QByteArrayList_join(self(), sep.constData(), sep.size()); } 8737: inline QByteArray join(char sep) const 8737: { return QtPrivate::QByteArrayList_join(self(), &sep, 1); } 8737: 8737: private: 8737: typedef QList Self; 8737: Self *self() { return static_cast(this); } 8737: const Self *self() const { return static_cast(this); } 8737: }; 8737: 8737: 8737: # 1094 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qregexp.h" 1 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qregexp.h" 3 4 8737: 8737: 8737: 8737: struct QRegExpPrivate; 8737: class QStringList; 8737: class QRegExp; 8737: 8737: __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed = 0) noexcept; 8737: 8737: class __attribute__((visibility("default"))) QRegExp 8737: { 8737: public: 8737: enum PatternSyntax { 8737: RegExp, 8737: Wildcard, 8737: FixedString, 8737: RegExp2, 8737: WildcardUnix, 8737: W3CXmlSchema11 }; 8737: enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; 8737: 8737: QRegExp(); 8737: explicit QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, 8737: PatternSyntax syntax = RegExp); 8737: QRegExp(const QRegExp &rx); 8737: ~QRegExp(); 8737: QRegExp &operator=(const QRegExp &rx); 8737: 8737: QRegExp &operator=(QRegExp &&other) noexcept { swap(other); return *this; } 8737: 8737: void swap(QRegExp &other) noexcept { qSwap(priv, other.priv); } 8737: 8737: bool operator==(const QRegExp &rx) const; 8737: inline bool operator!=(const QRegExp &rx) const { return !operator==(rx); } 8737: 8737: bool isEmpty() const; 8737: bool isValid() const; 8737: QString pattern() const; 8737: void setPattern(const QString &pattern); 8737: Qt::CaseSensitivity caseSensitivity() const; 8737: void setCaseSensitivity(Qt::CaseSensitivity cs); 8737: PatternSyntax patternSyntax() const; 8737: void setPatternSyntax(PatternSyntax syntax); 8737: 8737: bool isMinimal() const; 8737: void setMinimal(bool minimal); 8737: 8737: bool exactMatch(const QString &str) const; 8737: 8737: int indexIn(const QString &str, int offset = 0, CaretMode caretMode = CaretAtZero) const; 8737: int lastIndexIn(const QString &str, int offset = -1, CaretMode caretMode = CaretAtZero) const; 8737: int matchedLength() const; 8737: 8737: int captureCount() const; 8737: QStringList capturedTexts() const; 8737: QStringList capturedTexts(); 8737: QString cap(int nth = 0) const; 8737: QString cap(int nth = 0); 8737: int pos(int nth = 0) const; 8737: int pos(int nth = 0); 8737: QString errorString() const; 8737: QString errorString(); 8737: 8737: 8737: static QString escape(const QString &str); 8737: 8737: friend __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed) noexcept; 8737: 8737: private: 8737: QRegExpPrivate *priv; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRegExp &); 8737: 8737: 8737: 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringmatcher.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringmatcher.h" 3 4 8737: 8737: 8737: 8737: class QStringMatcherPrivate; 8737: 8737: class __attribute__((visibility("default"))) QStringMatcher 8737: { 8737: public: 8737: QStringMatcher(); 8737: explicit QStringMatcher(const QString &pattern, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QStringMatcher(const QChar *uc, int len, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: QStringMatcher(const QStringMatcher &other); 8737: ~QStringMatcher(); 8737: 8737: QStringMatcher &operator=(const QStringMatcher &other); 8737: 8737: void setPattern(const QString &pattern); 8737: void setCaseSensitivity(Qt::CaseSensitivity cs); 8737: 8737: int indexIn(const QString &str, int from = 0) const; 8737: int indexIn(const QChar *str, int length, int from = 0) const; 8737: QString pattern() const; 8737: inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; } 8737: 8737: private: 8737: QStringMatcherPrivate *d_ptr; 8737: QString q_pattern; 8737: Qt::CaseSensitivity q_cs; 8737: struct Data { 8737: uchar q_skiptable[256]; 8737: const QChar *uc; 8737: int len; 8737: }; 8737: union { 8737: uint q_data[256]; 8737: Data p; 8737: }; 8737: }; 8737: 8737: 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 2 3 4 8737: 8737: 8737: 8737: class QRegExp; 8737: class QRegularExpression; 8737: 8737: typedef QListIterator QStringListIterator; 8737: typedef QMutableListIterator QMutableStringListIterator; 8737: 8737: class QStringList; 8737: 8737: 8737: 8737: 8737: template <> struct QListSpecialMethods 8737: 8737: { 8737: 8737: protected: 8737: ~QListSpecialMethods() {} 8737: 8737: public: 8737: inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: inline int removeDuplicates(); 8737: 8737: inline QString join(const QString &sep) const; 8737: inline QString join(QLatin1String sep) const; 8737: inline QString join(QChar sep) const; 8737: 8737: inline QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: inline QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: 8737: 8737: inline QStringList filter(const QRegExp &rx) const; 8737: inline QStringList &replaceInStrings(const QRegExp &rx, const QString &after); 8737: 8737: 8737: 8737: 8737: inline QStringList filter(const QRegularExpression &re) const; 8737: inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after); 8737: 8737: 8737: 8737: 8737: private: 8737: inline QStringList *self(); 8737: inline const QStringList *self() const; 8737: }; 8737: 8737: 8737: class QStringList : public QList 8737: { 8737: 8737: public: 8737: inline QStringList() noexcept { } 8737: inline explicit QStringList(const QString &i) { append(i); } 8737: inline QStringList(const QList &l) : QList(l) { } 8737: 8737: inline QStringList(QList &&l) noexcept : QList(std::move(l)) { } 8737: 8737: 8737: inline QStringList(std::initializer_list args) : QList(args) { } 8737: 8737: 8737: QStringList &operator=(const QList &other) 8737: { QList::operator=(other); return *this; } 8737: 8737: QStringList &operator=(QList &&other) noexcept 8737: { QList::operator=(std::move(other)); return *this; } 8737: 8737: 8737: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: 8737: inline QStringList operator+(const QStringList &other) const 8737: { QStringList n = *this; n += other; return n; } 8737: inline QStringList &operator<<(const QString &str) 8737: { append(str); return *this; } 8737: inline QStringList &operator<<(const QStringList &l) 8737: { *this += l; return *this; } 8737: inline QStringList &operator<<(const QList &l) 8737: { *this += l; return *this; } 8737: 8737: 8737: inline int indexOf(const QRegExp &rx, int from = 0) const; 8737: inline int lastIndexOf(const QRegExp &rx, int from = -1) const; 8737: inline int indexOf(QRegExp &rx, int from = 0) const; 8737: inline int lastIndexOf(QRegExp &rx, int from = -1) const; 8737: 8737: 8737: 8737: 8737: inline int indexOf(const QRegularExpression &re, int from = 0) const; 8737: inline int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8737: 8737: 8737: 8737: using QList::indexOf; 8737: using QList::lastIndexOf; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: 8737: inline QStringList *QListSpecialMethods::self() 8737: { return static_cast(this); } 8737: inline const QStringList *QListSpecialMethods::self() const 8737: { return static_cast(this); } 8737: 8737: namespace QtPrivate { 8737: void __attribute__((visibility("default"))) QStringList_sort(QStringList *that, Qt::CaseSensitivity cs); 8737: int __attribute__((visibility("default"))) QStringList_removeDuplicates(QStringList *that); 8737: QString __attribute__((visibility("default"))) QStringList_join(const QStringList *that, const QChar *sep, int seplen); 8737: __attribute__((visibility("default"))) QString QStringList_join(const QStringList &list, QLatin1String sep); 8737: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QString &str, 8737: Qt::CaseSensitivity cs); 8737: 8737: bool __attribute__((visibility("default"))) QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); 8737: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, 8737: Qt::CaseSensitivity cs); 8737: 8737: 8737: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegExp &rx, const QString &after); 8737: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegExp &re); 8737: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegExp &rx, int from); 8737: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegExp &rx, int from); 8737: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, QRegExp &rx, int from); 8737: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int from); 8737: 8737: 8737: 8737: 8737: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after); 8737: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegularExpression &re); 8737: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from); 8737: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from); 8737: 8737: 8737: } 8737: 8737: inline void QListSpecialMethods::sort(Qt::CaseSensitivity cs) 8737: { 8737: QtPrivate::QStringList_sort(self(), cs); 8737: } 8737: 8737: inline int QListSpecialMethods::removeDuplicates() 8737: { 8737: return QtPrivate::QStringList_removeDuplicates(self()); 8737: } 8737: 8737: inline QString QListSpecialMethods::join(const QString &sep) const 8737: { 8737: return QtPrivate::QStringList_join(self(), sep.constData(), sep.length()); 8737: } 8737: 8737: QString QListSpecialMethods::join(QLatin1String sep) const 8737: { 8737: return QtPrivate::QStringList_join(*self(), sep); 8737: } 8737: 8737: inline QString QListSpecialMethods::join(QChar sep) const 8737: { 8737: return QtPrivate::QStringList_join(self(), &sep, 1); 8737: } 8737: 8737: inline QStringList QListSpecialMethods::filter(const QString &str, Qt::CaseSensitivity cs) const 8737: { 8737: return QtPrivate::QStringList_filter(self(), str, cs); 8737: } 8737: 8737: inline bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs) const 8737: { 8737: return QtPrivate::QStringList_contains(this, str, cs); 8737: } 8737: 8737: inline QStringList &QListSpecialMethods::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs) 8737: { 8737: QtPrivate::QStringList_replaceInStrings(self(), before, after, cs); 8737: return *self(); 8737: } 8737: 8737: inline QStringList operator+(const QList &one, const QStringList &other) 8737: { 8737: QStringList n = one; 8737: n += other; 8737: return n; 8737: } 8737: 8737: 8737: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegExp &rx, const QString &after) 8737: { 8737: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8737: return *self(); 8737: } 8737: 8737: inline QStringList QListSpecialMethods::filter(const QRegExp &rx) const 8737: { 8737: return QtPrivate::QStringList_filter(self(), rx); 8737: } 8737: 8737: inline int QStringList::indexOf(const QRegExp &rx, int from) const 8737: { 8737: return QtPrivate::QStringList_indexOf(this, rx, from); 8737: } 8737: 8737: inline int QStringList::lastIndexOf(const QRegExp &rx, int from) const 8737: { 8737: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8737: } 8737: 8737: inline int QStringList::indexOf(QRegExp &rx, int from) const 8737: { 8737: return QtPrivate::QStringList_indexOf(this, rx, from); 8737: } 8737: 8737: inline int QStringList::lastIndexOf(QRegExp &rx, int from) const 8737: { 8737: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8737: } 8737: 8737: 8737: 8737: 8737: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegularExpression &rx, const QString &after) 8737: { 8737: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8737: return *self(); 8737: } 8737: 8737: inline QStringList QListSpecialMethods::filter(const QRegularExpression &rx) const 8737: { 8737: return QtPrivate::QStringList_filter(self(), rx); 8737: } 8737: 8737: inline int QStringList::indexOf(const QRegularExpression &rx, int from) const 8737: { 8737: return QtPrivate::QStringList_indexOf(this, rx, from); 8737: } 8737: 8737: inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) const 8737: { 8737: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: # 1095 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcontainerfwd.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcontainerfwd.h" 3 4 8737: 8737: 8737: 8737: template class QCache; 8737: template class QHash; 8737: template class QLinkedList; 8737: template class QList; 8737: template class QMap; 8737: template class QMultiHash; 8737: template class QMultiMap; 8737: template struct QPair; 8737: template class QQueue; 8737: template class QSet; 8737: template class QStack; 8737: template class QVarLengthArray; 8737: template class QVector; 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class QPodList; 8737: 8737: 8737: template 8737: class QVarLengthArray 8737: { 8737: public: 8737: inline explicit QVarLengthArray(int size = 0); 8737: 8737: inline QVarLengthArray(const QVarLengthArray &other) 8737: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8737: { 8737: append(other.constData(), other.size()); 8737: } 8737: 8737: 8737: QVarLengthArray(std::initializer_list args) 8737: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8737: { 8737: if (args.size()) 8737: append(args.begin(), int(args.size())); 8737: } 8737: 8737: 8737: inline ~QVarLengthArray() { 8737: if (QTypeInfo::isComplex) { 8737: T *i = ptr + s; 8737: while (i-- != ptr) 8737: i->~T(); 8737: } 8737: if (ptr != reinterpret_cast(array)) 8737: free(ptr); 8737: } 8737: inline QVarLengthArray &operator=(const QVarLengthArray &other) 8737: { 8737: if (this != &other) { 8737: clear(); 8737: append(other.constData(), other.size()); 8737: } 8737: return *this; 8737: } 8737: 8737: 8737: QVarLengthArray &operator=(std::initializer_list list) 8737: { 8737: resize(list.size()); 8737: std::copy(list.begin(), list.end(), 8737: (this->begin())); 8737: return *this; 8737: } 8737: 8737: 8737: inline void removeLast() { 8737: do { } while ((false) && (s > 0)); 8737: realloc(s - 1, a); 8737: } 8737: inline int size() const { return s; } 8737: inline int count() const { return s; } 8737: inline int length() const { return s; } 8737: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: T& last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8737: const T& last() const { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8737: inline bool isEmpty() const { return (s == 0); } 8737: inline void resize(int size); 8737: inline void clear() { resize(0); } 8737: inline void squeeze(); 8737: 8737: inline int capacity() const { return a; } 8737: inline void reserve(int size); 8737: 8737: inline int indexOf(const T &t, int from = 0) const; 8737: inline int lastIndexOf(const T &t, int from = -1) const; 8737: inline bool contains(const T &t) const; 8737: 8737: inline T &operator[](int idx) { 8737: do { } while ((false) && (idx >= 0 && idx < s)); 8737: return ptr[idx]; 8737: } 8737: inline const T &operator[](int idx) const { 8737: do { } while ((false) && (idx >= 0 && idx < s)); 8737: return ptr[idx]; 8737: } 8737: inline const T &at(int idx) const { return operator[](idx); } 8737: 8737: T value(int i) const; 8737: T value(int i, const T &defaultValue) const; 8737: 8737: inline void append(const T &t) { 8737: if (s == a) { 8737: T copy(t); 8737: realloc(s, s<<1); 8737: const int idx = s++; 8737: if (QTypeInfo::isComplex) { 8737: new (ptr + idx) T(std::move(copy)); 8737: } else { 8737: ptr[idx] = std::move(copy); 8737: } 8737: } else { 8737: const int idx = s++; 8737: if (QTypeInfo::isComplex) { 8737: new (ptr + idx) T(t); 8737: } else { 8737: ptr[idx] = t; 8737: } 8737: } 8737: } 8737: 8737: void append(T &&t) { 8737: if (s == a) 8737: realloc(s, s << 1); 8737: const int idx = s++; 8737: if (QTypeInfo::isComplex) 8737: new (ptr + idx) T(std::move(t)); 8737: else 8737: ptr[idx] = std::move(t); 8737: } 8737: 8737: void append(const T *buf, int size); 8737: inline QVarLengthArray &operator<<(const T &t) 8737: { append(t); return *this; } 8737: inline QVarLengthArray &operator+=(const T &t) 8737: { append(t); return *this; } 8737: 8737: void prepend(const T &t); 8737: void insert(int i, const T &t); 8737: void insert(int i, int n, const T &t); 8737: void replace(int i, const T &t); 8737: void remove(int i); 8737: void remove(int i, int n); 8737: 8737: 8737: inline T *data() { return ptr; } 8737: inline const T *data() const { return ptr; } 8737: inline const T * constData() const { return ptr; } 8737: typedef int size_type; 8737: typedef T value_type; 8737: typedef value_type *pointer; 8737: typedef const value_type *const_pointer; 8737: typedef value_type &reference; 8737: typedef const value_type &const_reference; 8737: typedef qptrdiff difference_type; 8737: 8737: 8737: typedef T* iterator; 8737: typedef const T* const_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: 8737: inline iterator begin() { return ptr; } 8737: inline const_iterator begin() const { return ptr; } 8737: inline const_iterator cbegin() const { return ptr; } 8737: inline const_iterator constBegin() const { return ptr; } 8737: inline iterator end() { return ptr + s; } 8737: inline const_iterator end() const { return ptr + s; } 8737: inline const_iterator cend() const { return ptr + s; } 8737: inline const_iterator constEnd() const { return ptr + s; } 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8737: iterator insert(const_iterator before, int n, const T &x); 8737: inline iterator insert(const_iterator before, const T &x) { return insert(before, 1, x); } 8737: iterator erase(const_iterator begin, const_iterator end); 8737: inline iterator erase(const_iterator pos) { return erase(pos, pos+1); } 8737: 8737: 8737: inline bool empty() const { return isEmpty(); } 8737: inline void push_back(const T &t) { append(t); } 8737: void push_back(T &&t) { append(std::move(t)); } 8737: inline void pop_back() { removeLast(); } 8737: inline T &front() { return first(); } 8737: inline const T &front() const { return first(); } 8737: inline T &back() { return last(); } 8737: inline const T &back() const { return last(); } 8737: 8737: private: 8737: friend class QPodList; 8737: void realloc(int size, int alloc); 8737: 8737: int a; 8737: int s; 8737: T *ptr; 8737: union { 8737: char array[Prealloc * sizeof(T)]; 8737: qint64 q_for_alignment_1; 8737: double q_for_alignment_2; 8737: }; 8737: 8737: bool isValidIterator(const const_iterator &i) const 8737: { 8737: return (i <= constEnd()) && (constBegin() <= i); 8737: } 8737: }; 8737: 8737: template 8737: inline QVarLengthArray::QVarLengthArray(int asize) 8737: : s(asize) { 8737: static_assert(bool(Prealloc > 0), "QVarLengthArray Prealloc must be greater than 0."); 8737: do { } while ((false) && (s >= 0)); 8737: if (s > Prealloc) { 8737: ptr = reinterpret_cast(malloc(s * sizeof(T))); 8737: do { if (!(ptr)) qBadAlloc(); } while (false); 8737: a = s; 8737: } else { 8737: ptr = reinterpret_cast(array); 8737: a = Prealloc; 8737: } 8737: if (QTypeInfo::isComplex) { 8737: T *i = ptr + s; 8737: while (i != ptr) 8737: new (--i) T; 8737: } 8737: } 8737: 8737: template 8737: inline void QVarLengthArray::resize(int asize) 8737: { realloc(asize, qMax(asize, a)); } 8737: 8737: template 8737: inline void QVarLengthArray::reserve(int asize) 8737: { if (asize > a) realloc(s, asize); } 8737: 8737: template 8737: inline int QVarLengthArray::indexOf(const T &t, int from) const 8737: { 8737: if (from < 0) 8737: from = qMax(from + s, 0); 8737: if (from < s) { 8737: T *n = ptr + from - 1; 8737: T *e = ptr + s; 8737: while (++n != e) 8737: if (*n == t) 8737: return n - ptr; 8737: } 8737: return -1; 8737: } 8737: 8737: template 8737: inline int QVarLengthArray::lastIndexOf(const T &t, int from) const 8737: { 8737: if (from < 0) 8737: from += s; 8737: else if (from >= s) 8737: from = s - 1; 8737: if (from >= 0) { 8737: T *b = ptr; 8737: T *n = ptr + from + 1; 8737: while (n != b) { 8737: if (*--n == t) 8737: return n - b; 8737: } 8737: } 8737: return -1; 8737: } 8737: 8737: template 8737: inline bool QVarLengthArray::contains(const T &t) const 8737: { 8737: T *b = ptr; 8737: T *i = ptr + s; 8737: while (i != b) { 8737: if (*--i == t) 8737: return true; 8737: } 8737: return false; 8737: } 8737: 8737: template 8737: void QVarLengthArray::append(const T *abuf, int increment) 8737: { 8737: do { } while ((false) && (abuf)); 8737: if (increment <= 0) 8737: return; 8737: 8737: const int asize = s + increment; 8737: 8737: if (asize >= a) 8737: realloc(s, qMax(s*2, asize)); 8737: 8737: if (QTypeInfo::isComplex) { 8737: 8737: while (s < asize) 8737: new (ptr+(s++)) T(*abuf++); 8737: } else { 8737: memcpy(&ptr[s], abuf, increment * sizeof(T)); 8737: s = asize; 8737: } 8737: } 8737: 8737: template 8737: inline void QVarLengthArray::squeeze() 8737: { realloc(s, s); } 8737: 8737: template 8737: void QVarLengthArray::realloc(int asize, int aalloc) 8737: { 8737: do { } while ((false) && (aalloc >= asize)); 8737: T *oldPtr = ptr; 8737: int osize = s; 8737: 8737: const int copySize = qMin(asize, osize); 8737: do { const bool valueOfExpression = copySize >= 0; do { } while ((false) && (valueOfExpression)); if (valueOfExpression){} else __builtin_unreachable(); } while (false); 8737: if (aalloc != a) { 8737: if (aalloc > Prealloc) { 8737: T* newPtr = reinterpret_cast(malloc(aalloc * sizeof(T))); 8737: do { if (!(newPtr)) qBadAlloc(); } while (false); 8737: 8737: ptr = newPtr; 8737: a = aalloc; 8737: } else { 8737: ptr = reinterpret_cast(array); 8737: a = Prealloc; 8737: } 8737: s = 0; 8737: if (!QTypeInfoQuery::isRelocatable) { 8737: try { 8737: 8737: while (s < copySize) { 8737: new (ptr+s) T(*(oldPtr+s)); 8737: (oldPtr+s)->~T(); 8737: s++; 8737: } 8737: } catch (...) { 8737: 8737: int sClean = s; 8737: while (sClean < osize) 8737: (oldPtr+(sClean++))->~T(); 8737: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8737: free(oldPtr); 8737: throw; 8737: } 8737: } else { 8737: memcpy(ptr, oldPtr, copySize * sizeof(T)); 8737: } 8737: } 8737: s = copySize; 8737: 8737: if (QTypeInfo::isComplex) { 8737: 8737: while (osize > asize) 8737: (oldPtr+(--osize))->~T(); 8737: } 8737: 8737: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8737: free(oldPtr); 8737: 8737: if (QTypeInfo::isComplex) { 8737: 8737: while (s < asize) 8737: new (ptr+(s++)) T; 8737: } else { 8737: s = asize; 8737: } 8737: } 8737: 8737: template 8737: T QVarLengthArray::value(int i) const 8737: { 8737: if (uint(i) >= uint(size())) { 8737: return T(); 8737: } 8737: return at(i); 8737: } 8737: template 8737: T QVarLengthArray::value(int i, const T &defaultValue) const 8737: { 8737: return (uint(i) >= uint(size())) ? defaultValue : at(i); 8737: } 8737: 8737: template 8737: inline void QVarLengthArray::insert(int i, const T &t) 8737: { do { } while ((false) && (i >= 0 && i <= s)); 8737: insert(begin() + i, 1, t); } 8737: template 8737: inline void QVarLengthArray::insert(int i, int n, const T &t) 8737: { do { } while ((false) && (i >= 0 && i <= s)); 8737: insert(begin() + i, n, t); } 8737: template 8737: inline void QVarLengthArray::remove(int i, int n) 8737: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= s)); 8737: erase(begin() + i, begin() + i + n); } 8737: template 8737: inline void QVarLengthArray::remove(int i) 8737: { do { } while ((false) && (i >= 0 && i < s)); 8737: erase(begin() + i, begin() + i + 1); } 8737: template 8737: inline void QVarLengthArray::prepend(const T &t) 8737: { insert(begin(), 1, t); } 8737: 8737: template 8737: inline void QVarLengthArray::replace(int i, const T &t) 8737: { 8737: do { } while ((false) && (i >= 0 && i < s)); 8737: const T copy(t); 8737: data()[i] = copy; 8737: } 8737: 8737: 8737: template 8737: typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, size_type n, const T &t) 8737: { 8737: do { } while ((false) && (isValidIterator(before))); 8737: 8737: int offset = int(before - ptr); 8737: if (n != 0) { 8737: resize(s + n); 8737: const T copy(t); 8737: if (!QTypeInfoQuery::isRelocatable) { 8737: T *b = ptr + offset; 8737: T *j = ptr + s; 8737: T *i = j - n; 8737: while (i != b) 8737: *--j = *--i; 8737: i = b + n; 8737: while (i != b) 8737: *--i = copy; 8737: } else { 8737: T *b = ptr + offset; 8737: T *i = b + n; 8737: memmove(i, b, (s - offset - n) * sizeof(T)); 8737: while (i != b) 8737: new (--i) T(copy); 8737: } 8737: } 8737: return ptr + offset; 8737: } 8737: 8737: template 8737: typename QVarLengthArray::iterator QVarLengthArray::erase(const_iterator abegin, const_iterator aend) 8737: { 8737: do { } while ((false) && (isValidIterator(abegin))); 8737: do { } while ((false) && (isValidIterator(aend))); 8737: 8737: int f = int(abegin - ptr); 8737: int l = int(aend - ptr); 8737: int n = l - f; 8737: if (QTypeInfo::isComplex) { 8737: std::copy(ptr + l, ptr + s, (ptr + f)); 8737: T *i = ptr + s; 8737: T *b = ptr + s - n; 8737: while (i != b) { 8737: --i; 8737: i->~T(); 8737: } 8737: } else { 8737: memmove(ptr + f, ptr + l, (s - l) * sizeof(T)); 8737: } 8737: s -= n; 8737: return ptr + f; 8737: } 8737: 8737: template 8737: bool operator==(const QVarLengthArray &l, const QVarLengthArray &r) 8737: { 8737: if (l.size() != r.size()) 8737: return false; 8737: const T *rb = r.begin(); 8737: const T *b = l.begin(); 8737: const T *e = l.end(); 8737: return std::equal(b, e, (rb)); 8737: } 8737: 8737: template 8737: bool operator!=(const QVarLengthArray &l, const QVarLengthArray &r) 8737: { 8737: return !(l == r); 8737: } 8737: 8737: template 8737: bool operator<(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8737: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8737: 8737: { 8737: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8737: rhs.begin(), rhs.end()); 8737: } 8737: 8737: template 8737: inline bool operator>(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return rhs < lhs; 8737: } 8737: 8737: template 8737: inline bool operator<=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return !(lhs > rhs); 8737: } 8737: 8737: template 8737: inline bool operator>=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return !(lhs < rhs); 8737: } 8737: 8737: 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 1 3 4 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 1 3 4 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8737: 8737: 8737: 8737: namespace QtPrivate { 8737: template struct RemoveRef { typedef T Type; }; 8737: template struct RemoveRef { typedef T Type; }; 8737: template struct RemoveConstRef { typedef T Type; }; 8737: template struct RemoveConstRef { typedef T Type; }; 8737: # 69 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8737: template struct List {}; 8737: template struct List { typedef Head Car; typedef List Cdr; }; 8737: template struct List_Append; 8737: template struct List_Append, List> { typedef List Value; }; 8737: template struct List_Left { 8737: typedef typename List_Append,typename List_Left::Value>::Value Value; 8737: }; 8737: template struct List_Left { typedef List<> Value; }; 8737: 8737: template struct List_Select { typedef typename List_Select::Value Value; }; 8737: template struct List_Select { typedef typename L::Car Value; }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct ApplyReturnValue { 8737: void *data; 8737: explicit ApplyReturnValue(void *data_) : data(data_) {} 8737: }; 8737: template 8737: void operator,(T &&value, const ApplyReturnValue &container) { 8737: if (container.data) 8737: *reinterpret_cast(container.data) = std::forward(value); 8737: } 8737: template 8737: void operator,(T, const ApplyReturnValue &) {} 8737: # 117 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8737: template struct IndexesList {}; 8737: template struct IndexesAppend; 8737: template struct IndexesAppend, Right> 8737: { typedef IndexesList Value; }; 8737: template struct Indexes 8737: { typedef typename IndexesAppend::Value, N - 1>::Value Value; }; 8737: template <> struct Indexes<0> { typedef IndexesList<> Value; }; 8737: template struct FunctionPointer { enum {ArgumentCount = -1, IsPointerToMemberFunction = false}; }; 8737: 8737: template struct FunctorCall; 8737: template 8737: struct FunctorCall, List, R, Function> { 8737: static void call(Function &f, void **arg) { 8737: f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8737: } 8737: }; 8737: template 8737: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { 8737: static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) { 8737: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8737: } 8737: }; 8737: template 8737: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { 8737: static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) { 8737: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8737: } 8737: }; 8737: # 160 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8737: template struct FunctionPointer 8737: { 8737: typedef Obj Object; 8737: typedef List Arguments; 8737: typedef Ret ReturnType; 8737: typedef Ret (Obj::*Function) (Args...); 8737: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8737: template 8737: static void call(Function f, Obj *o, void **arg) { 8737: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8737: } 8737: }; 8737: template struct FunctionPointer 8737: { 8737: typedef Obj Object; 8737: typedef List Arguments; 8737: typedef Ret ReturnType; 8737: typedef Ret (Obj::*Function) (Args...) const; 8737: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8737: template 8737: static void call(Function f, Obj *o, void **arg) { 8737: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8737: } 8737: }; 8737: 8737: template struct FunctionPointer 8737: { 8737: typedef List Arguments; 8737: typedef Ret ReturnType; 8737: typedef Ret (*Function) (Args...); 8737: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = false}; 8737: template 8737: static void call(Function f, void *, void **arg) { 8737: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8737: } 8737: }; 8737: # 236 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8737: template struct Functor 8737: { 8737: template 8737: static void call(Function &f, void *, void **arg) { 8737: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct IsEnumUnderlyingTypeSigned : std::false_type 8737: { 8737: }; 8737: 8737: template 8737: struct IsEnumUnderlyingTypeSigned::value>::type> 8737: : std::integral_constant::type>::value> 8737: { 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct AreArgumentsNarrowedBase : std::false_type 8737: { 8737: }; 8737: 8737: template 8737: struct AreArgumentsNarrowedBase::type> 8737: : std::integral_constant::value && std::is_integral::value) || 8737: (std::is_floating_point::value && std::is_floating_point::value && sizeof(From) > sizeof(To)) || 8737: ((std::is_integral::value || std::is_enum::value) && std::is_floating_point::value) || 8737: (std::is_integral::value && std::is_integral::value 8737: && (sizeof(From) > sizeof(To) 8737: || (std::is_signed::value ? !std::is_signed::value 8737: : (std::is_signed::value && sizeof(From) == sizeof(To))))) || 8737: (std::is_enum::value && std::is_integral::value 8737: && (sizeof(From) > sizeof(To) 8737: || (IsEnumUnderlyingTypeSigned::value ? !std::is_signed::value 8737: : (std::is_signed::value && sizeof(From) == sizeof(To))))) 8737: > 8737: { 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template struct AreArgumentsCompatible { 8737: static int test(const typename RemoveRef::Type&); 8737: static char test(...); 8737: static const typename RemoveRef::Type &dummy(); 8737: enum { value = sizeof(test(dummy())) == sizeof(int) }; 8737: 8737: 8737: 8737: 8737: }; 8737: template struct AreArgumentsCompatible { enum { value = false }; }; 8737: template struct AreArgumentsCompatible { enum { value = true }; }; 8737: 8737: template struct AreArgumentsCompatible { enum { value = true }; }; 8737: template struct AreArgumentsCompatible { enum { value = true }; }; 8737: template<> struct AreArgumentsCompatible { enum { value = true }; }; 8737: 8737: template struct CheckCompatibleArguments { enum { value = false }; }; 8737: template <> struct CheckCompatibleArguments, List<>> { enum { value = true }; }; 8737: template struct CheckCompatibleArguments> { enum { value = true }; }; 8737: template 8737: struct CheckCompatibleArguments, List> 8737: { 8737: enum { value = AreArgumentsCompatible::Type, typename RemoveConstRef::Type>::value 8737: && CheckCompatibleArguments, List>::value }; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template struct ComputeFunctorArgumentCount; 8737: 8737: template struct ComputeFunctorArgumentCountHelper 8737: { enum { Value = -1 }; }; 8737: template 8737: struct ComputeFunctorArgumentCountHelper, false> 8737: : ComputeFunctorArgumentCount, sizeof...(ArgList)>::Value> {}; 8737: 8737: template struct ComputeFunctorArgumentCount> 8737: { 8737: template static D dummy(); 8737: template static auto test(F f) -> decltype(((f.operator()((dummy())...)), int())); 8737: static char test(...); 8737: enum { 8737: Ok = sizeof(test(dummy())) == sizeof(int), 8737: Value = Ok ? int(sizeof...(ArgList)) : int(ComputeFunctorArgumentCountHelper, Ok>::Value) 8737: }; 8737: }; 8737: 8737: 8737: template struct FunctorReturnType; 8737: template struct FunctorReturnType> { 8737: template static D dummy(); 8737: typedef decltype(dummy().operator()((dummy())...)) Value; 8737: }; 8737: } 8737: 8737: 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 2 3 4 8737: 8737: 8737: 8737: 8737: class QByteArray; 8737: struct QArrayData; 8737: typedef QArrayData QByteArrayData; 8737: 8737: class QString; 8737: # 262 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8737: __attribute__((visibility("default"))) const char *qFlagLocation(const char *method); 8737: # 288 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8737: class QObject; 8737: class QMetaMethod; 8737: class QMetaEnum; 8737: class QMetaProperty; 8737: class QMetaClassInfo; 8737: 8737: 8737: class __attribute__((visibility("default"))) QGenericArgument 8737: { 8737: public: 8737: inline QGenericArgument(const char *aName = nullptr, const void *aData = nullptr) 8737: : _data(aData), _name(aName) {} 8737: inline void *data() const { return const_cast(_data); } 8737: inline const char *name() const { return _name; } 8737: 8737: private: 8737: const void *_data; 8737: const char *_name; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QGenericReturnArgument: public QGenericArgument 8737: { 8737: public: 8737: inline QGenericReturnArgument(const char *aName = nullptr, void *aData = nullptr) 8737: : QGenericArgument(aName, aData) 8737: {} 8737: }; 8737: 8737: template 8737: class QArgument: public QGenericArgument 8737: { 8737: public: 8737: inline QArgument(const char *aName, const T &aData) 8737: : QGenericArgument(aName, static_cast(&aData)) 8737: {} 8737: }; 8737: template 8737: class QArgument: public QGenericArgument 8737: { 8737: public: 8737: inline QArgument(const char *aName, T &aData) 8737: : QGenericArgument(aName, static_cast(&aData)) 8737: {} 8737: }; 8737: 8737: 8737: template 8737: class QReturnArgument: public QGenericReturnArgument 8737: { 8737: public: 8737: inline QReturnArgument(const char *aName, T &aData) 8737: : QGenericReturnArgument(aName, static_cast(&aData)) 8737: {} 8737: }; 8737: 8737: struct __attribute__((visibility("default"))) QMetaObject 8737: { 8737: class Connection; 8737: const char *className() const; 8737: const QMetaObject *superClass() const; 8737: 8737: bool inherits(const QMetaObject *metaObject) const noexcept; 8737: QObject *cast(QObject *obj) const; 8737: const QObject *cast(const QObject *obj) const; 8737: 8737: 8737: QString tr(const char *s, const char *c, int n = -1) const; 8737: 8737: 8737: int methodOffset() const; 8737: int enumeratorOffset() const; 8737: int propertyOffset() const; 8737: int classInfoOffset() const; 8737: 8737: int constructorCount() const; 8737: int methodCount() const; 8737: int enumeratorCount() const; 8737: int propertyCount() const; 8737: int classInfoCount() const; 8737: 8737: int indexOfConstructor(const char *constructor) const; 8737: int indexOfMethod(const char *method) const; 8737: int indexOfSignal(const char *signal) const; 8737: int indexOfSlot(const char *slot) const; 8737: int indexOfEnumerator(const char *name) const; 8737: int indexOfProperty(const char *name) const; 8737: int indexOfClassInfo(const char *name) const; 8737: 8737: QMetaMethod constructor(int index) const; 8737: QMetaMethod method(int index) const; 8737: QMetaEnum enumerator(int index) const; 8737: QMetaProperty property(int index) const; 8737: QMetaClassInfo classInfo(int index) const; 8737: QMetaProperty userProperty() const; 8737: 8737: static bool checkConnectArgs(const char *signal, const char *method); 8737: static bool checkConnectArgs(const QMetaMethod &signal, 8737: const QMetaMethod &method); 8737: static QByteArray normalizedSignature(const char *method); 8737: static QByteArray normalizedType(const char *type); 8737: 8737: 8737: static Connection connect(const QObject *sender, int signal_index, 8737: const QObject *receiver, int method_index, 8737: int type = 0, int *types = nullptr); 8737: 8737: static bool disconnect(const QObject *sender, int signal_index, 8737: const QObject *receiver, int method_index); 8737: static bool disconnectOne(const QObject *sender, int signal_index, 8737: const QObject *receiver, int method_index); 8737: 8737: static void connectSlotsByName(QObject *o); 8737: 8737: 8737: static void activate(QObject *sender, int signal_index, void **argv); 8737: static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); 8737: static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); 8737: 8737: static bool invokeMethod(QObject *obj, const char *member, 8737: Qt::ConnectionType, 8737: QGenericReturnArgument ret, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()); 8737: 8737: static inline bool invokeMethod(QObject *obj, const char *member, 8737: QGenericReturnArgument ret, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) 8737: { 8737: return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, 8737: val4, val5, val6, val7, val8, val9); 8737: } 8737: 8737: static inline bool invokeMethod(QObject *obj, const char *member, 8737: Qt::ConnectionType type, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) 8737: { 8737: return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, 8737: val3, val4, val5, val6, val7, val8, val9); 8737: } 8737: 8737: static inline bool invokeMethod(QObject *obj, const char *member, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) 8737: { 8737: return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, 8737: val1, val2, val3, val4, val5, val6, val7, val8, val9); 8737: } 8737: 8737: QObject *newInstance(QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const; 8737: 8737: enum Call { 8737: InvokeMetaMethod, 8737: ReadProperty, 8737: WriteProperty, 8737: ResetProperty, 8737: QueryPropertyDesignable, 8737: QueryPropertyScriptable, 8737: QueryPropertyStored, 8737: QueryPropertyEditable, 8737: QueryPropertyUser, 8737: CreateInstance, 8737: IndexOfMethod, 8737: RegisterPropertyMetaType, 8737: RegisterMethodArgumentMetaType 8737: }; 8737: 8737: int static_metacall(Call, int, void **) const; 8737: static int metacall(QObject *, Call, int, void **); 8737: 8737: struct { 8737: const QMetaObject *superdata; 8737: const QByteArrayData *stringdata; 8737: const uint *data; 8737: typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); 8737: StaticMetacallFunction static_metacall; 8737: const QMetaObject * const *relatedMetaObjects; 8737: void *extradata; 8737: } d; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QMetaObject::Connection { 8737: void *d_ptr; 8737: explicit Connection(void *data) : d_ptr(data) { } 8737: friend class QObject; 8737: friend class QObjectPrivate; 8737: friend struct QMetaObject; 8737: bool isConnected_helper() const; 8737: public: 8737: ~Connection(); 8737: Connection(); 8737: Connection(const Connection &other); 8737: Connection &operator=(const Connection &other); 8737: 8737: 8737: 8737: typedef void *Connection::*RestrictedBool; 8737: operator RestrictedBool() const { return d_ptr && isConnected_helper() ? &Connection::d_ptr : nullptr; } 8737: 8737: 8737: 8737: inline Connection(Connection &&o) : d_ptr(o.d_ptr) { o.d_ptr = nullptr; } 8737: inline Connection &operator=(Connection &&other) 8737: { qSwap(d_ptr, other.d_ptr); return *this; } 8737: 8737: }; 8737: 8737: inline const QMetaObject *QMetaObject::superClass() const 8737: { return d.superdata; } 8737: 8737: namespace QtPrivate { 8737: 8737: template struct HasQ_OBJECT_Macro { 8737: template 8737: static char test(int (T::*)(QMetaObject::Call, int, void **)); 8737: static int test(int (Object::*)(QMetaObject::Call, int, void **)); 8737: enum { Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) }; 8737: }; 8737: } 8737: 8737: 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/vector" 1 3 4 8737: # 58 "/usr/include/c++/8/vector" 3 4 8737: 8737: # 59 "/usr/include/c++/8/vector" 3 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_uninitialized.h" 1 3 8737: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: struct __uninitialized_copy 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_copy(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result) 8737: { 8737: _ForwardIterator __cur = __result; 8737: try 8737: { 8737: for (; __first != __last; ++__first, (void)++__cur) 8737: std::_Construct(std::__addressof(*__cur), *__first); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_copy 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_copy(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result) 8737: { return std::copy(__first, __last, __result); } 8737: }; 8737: # 113 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: template 8737: inline _ForwardIterator 8737: uninitialized_copy(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result) 8737: { 8737: typedef typename iterator_traits<_InputIterator>::value_type 8737: _ValueType1; 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType2; 8737: 8737: 8737: 8737: 8737: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 8737: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 8737: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 8737: 8737: 8737: return std::__uninitialized_copy<__is_trivial(_ValueType1) 8737: && __is_trivial(_ValueType2) 8737: && __assignable>:: 8737: __uninit_copy(__first, __last, __result); 8737: } 8737: 8737: 8737: template 8737: struct __uninitialized_fill 8737: { 8737: template 8737: static void 8737: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __x) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: for (; __cur != __last; ++__cur) 8737: std::_Construct(std::__addressof(*__cur), __x); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_fill 8737: { 8737: template 8737: static void 8737: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __x) 8737: { std::fill(__first, __last, __x); } 8737: }; 8737: # 179 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: template 8737: inline void 8737: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __x) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: 8737: 8737: 8737: const bool __assignable = is_copy_assignable<_ValueType>::value; 8737: 8737: 8737: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 8737: __uninit_fill(__first, __last, __x); 8737: } 8737: 8737: 8737: template 8737: struct __uninitialized_fill_n 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8737: const _Tp& __x) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: for (; __n > 0; --__n, (void) ++__cur) 8737: std::_Construct(std::__addressof(*__cur), __x); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_fill_n 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8737: const _Tp& __x) 8737: { return std::fill_n(__first, __n, __x); } 8737: }; 8737: # 242 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: template 8737: inline _ForwardIterator 8737: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: 8737: 8737: 8737: const bool __assignable = is_copy_assignable<_ValueType>::value; 8737: 8737: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 8737: __uninit_fill_n(__first, __n, __x); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result, _Allocator& __alloc) 8737: { 8737: _ForwardIterator __cur = __result; 8737: try 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8737: for (; __first != __last; ++__first, (void)++__cur) 8737: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __cur, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result, allocator<_Tp>&) 8737: { return std::uninitialized_copy(__first, __last, __result); } 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 8737: _ForwardIterator __result, _Allocator& __alloc) 8737: { 8737: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 8737: std::make_move_iterator(__last), 8737: __result, __alloc); 8737: } 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_move_if_noexcept_a(_InputIterator __first, 8737: _InputIterator __last, 8737: _ForwardIterator __result, 8737: _Allocator& __alloc) 8737: { 8737: return std::__uninitialized_copy_a 8737: (std::__make_move_if_noexcept_iterator(__first), 8737: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 8737: } 8737: 8737: template 8737: void 8737: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __x, _Allocator& __alloc) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8737: for (; __cur != __last; ++__cur) 8737: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline void 8737: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8737: const _Tp& __x, allocator<_Tp2>&) 8737: { std::uninitialized_fill(__first, __last, __x); } 8737: 8737: template 8737: _ForwardIterator 8737: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8737: const _Tp& __x, _Allocator& __alloc) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8737: for (; __n > 0; --__n, (void) ++__cur) 8737: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8737: const _Tp& __x, allocator<_Tp2>&) 8737: { return std::uninitialized_fill_n(__first, __n, __x); } 8737: # 378 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_copy_move(_InputIterator1 __first1, 8737: _InputIterator1 __last1, 8737: _InputIterator2 __first2, 8737: _InputIterator2 __last2, 8737: _ForwardIterator __result, 8737: _Allocator& __alloc) 8737: { 8737: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 8737: __result, 8737: __alloc); 8737: try 8737: { 8737: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __mid, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_move_copy(_InputIterator1 __first1, 8737: _InputIterator1 __last1, 8737: _InputIterator2 __first2, 8737: _InputIterator2 __last2, 8737: _ForwardIterator __result, 8737: _Allocator& __alloc) 8737: { 8737: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 8737: __result, 8737: __alloc); 8737: try 8737: { 8737: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __mid, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 8737: const _Tp& __x, _InputIterator __first, 8737: _InputIterator __last, _Allocator& __alloc) 8737: { 8737: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 8737: try 8737: { 8737: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __mid, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 8737: _ForwardIterator __first2, 8737: _ForwardIterator __last2, const _Tp& __x, 8737: _Allocator& __alloc) 8737: { 8737: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 8737: __first2, 8737: __alloc); 8737: try 8737: { 8737: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first2, __mid2, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __uninitialized_default_1 8737: { 8737: template 8737: static void 8737: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: for (; __cur != __last; ++__cur) 8737: std::_Construct(std::__addressof(*__cur)); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_default_1 8737: { 8737: template 8737: static void 8737: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: std::fill(__first, __last, _ValueType()); 8737: } 8737: }; 8737: 8737: template 8737: struct __uninitialized_default_n_1 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_default_n(_ForwardIterator __first, _Size __n) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: for (; __n > 0; --__n, (void) ++__cur) 8737: std::_Construct(std::__addressof(*__cur)); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_default_n_1 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_default_n(_ForwardIterator __first, _Size __n) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: return std::fill_n(__first, __n, _ValueType()); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: __uninitialized_default(_ForwardIterator __first, 8737: _ForwardIterator __last) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: const bool __assignable = is_copy_assignable<_ValueType>::value; 8737: 8737: std::__uninitialized_default_1<__is_trivial(_ValueType) 8737: && __assignable>:: 8737: __uninit_default(__first, __last); 8737: } 8737: 8737: 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: const bool __assignable = is_copy_assignable<_ValueType>::value; 8737: 8737: return __uninitialized_default_n_1<__is_trivial(_ValueType) 8737: && __assignable>:: 8737: __uninit_default_n(__first, __n); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: __uninitialized_default_a(_ForwardIterator __first, 8737: _ForwardIterator __last, 8737: _Allocator& __alloc) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8737: for (; __cur != __last; ++__cur) 8737: __traits::construct(__alloc, std::__addressof(*__cur)); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline void 8737: __uninitialized_default_a(_ForwardIterator __first, 8737: _ForwardIterator __last, 8737: allocator<_Tp>&) 8737: { std::__uninitialized_default(__first, __last); } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: _ForwardIterator 8737: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8737: _Allocator& __alloc) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8737: for (; __n > 0; --__n, (void) ++__cur) 8737: __traits::construct(__alloc, std::__addressof(*__cur)); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur, __alloc); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8737: allocator<_Tp>&) 8737: { return std::__uninitialized_default_n(__first, __n); } 8737: 8737: template 8737: struct __uninitialized_default_novalue_1 8737: { 8737: template 8737: static void 8737: __uninit_default_novalue(_ForwardIterator __first, 8737: _ForwardIterator __last) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: for (; __cur != __last; ++__cur) 8737: std::_Construct_novalue(std::__addressof(*__cur)); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_default_novalue_1 8737: { 8737: template 8737: static void 8737: __uninit_default_novalue(_ForwardIterator __first, 8737: _ForwardIterator __last) 8737: { 8737: } 8737: }; 8737: 8737: template 8737: struct __uninitialized_default_novalue_n_1 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8737: { 8737: _ForwardIterator __cur = __first; 8737: try 8737: { 8737: for (; __n > 0; --__n, (void) ++__cur) 8737: std::_Construct_novalue(std::__addressof(*__cur)); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__first, __cur); 8737: throw; 8737: } 8737: } 8737: }; 8737: 8737: template<> 8737: struct __uninitialized_default_novalue_n_1 8737: { 8737: template 8737: static _ForwardIterator 8737: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8737: { return std::next(__first, __n); } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: __uninitialized_default_novalue(_ForwardIterator __first, 8737: _ForwardIterator __last) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: std::__uninitialized_default_novalue_1< 8737: is_trivially_default_constructible<_ValueType>::value>:: 8737: __uninit_default_novalue(__first, __last); 8737: } 8737: 8737: 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 8737: { 8737: typedef typename iterator_traits<_ForwardIterator>::value_type 8737: _ValueType; 8737: 8737: return __uninitialized_default_novalue_n_1< 8737: is_trivially_default_constructible<_ValueType>::value>:: 8737: __uninit_default_novalue_n(__first, __n); 8737: } 8737: 8737: template 8737: _ForwardIterator 8737: __uninitialized_copy_n(_InputIterator __first, _Size __n, 8737: _ForwardIterator __result, input_iterator_tag) 8737: { 8737: _ForwardIterator __cur = __result; 8737: try 8737: { 8737: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8737: std::_Construct(std::__addressof(*__cur), *__first); 8737: return __cur; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __cur); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline _ForwardIterator 8737: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 8737: _ForwardIterator __result, 8737: random_access_iterator_tag) 8737: { return std::uninitialized_copy(__first, __first + __n, __result); } 8737: 8737: template 8737: pair<_InputIterator, _ForwardIterator> 8737: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8737: _ForwardIterator __result, input_iterator_tag) 8737: { 8737: _ForwardIterator __cur = __result; 8737: try 8737: { 8737: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8737: std::_Construct(std::__addressof(*__cur), *__first); 8737: return {__first, __cur}; 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__result, __cur); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: inline pair<_RandomAccessIterator, _ForwardIterator> 8737: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 8737: _ForwardIterator __result, 8737: random_access_iterator_tag) 8737: { 8737: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 8737: auto __first_res = std::next(__first, __n); 8737: return {__first_res, __second_res}; 8737: } 8737: # 810 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: template 8737: inline _ForwardIterator 8737: uninitialized_copy_n(_InputIterator __first, _Size __n, 8737: _ForwardIterator __result) 8737: { return std::__uninitialized_copy_n(__first, __n, __result, 8737: std::__iterator_category(__first)); } 8737: 8737: template 8737: inline pair<_InputIterator, _ForwardIterator> 8737: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8737: _ForwardIterator __result) 8737: { 8737: return 8737: std::__uninitialized_copy_n_pair(__first, __n, __result, 8737: std::__iterator_category(__first)); 8737: } 8737: # 882 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8737: 8737: } 8737: # 64 "/usr/include/c++/8/vector" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_vector.h" 1 3 8737: # 74 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: struct _Vector_base 8737: { 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Tp>::other _Tp_alloc_type; 8737: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 8737: pointer; 8737: 8737: struct _Vector_impl 8737: : public _Tp_alloc_type 8737: { 8737: pointer _M_start; 8737: pointer _M_finish; 8737: pointer _M_end_of_storage; 8737: 8737: _Vector_impl() 8737: : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() 8737: { } 8737: 8737: _Vector_impl(_Tp_alloc_type const& __a) noexcept 8737: : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() 8737: { } 8737: 8737: 8737: _Vector_impl(_Tp_alloc_type&& __a) noexcept 8737: : _Tp_alloc_type(std::move(__a)), 8737: _M_start(), _M_finish(), _M_end_of_storage() 8737: { } 8737: 8737: 8737: void _M_swap_data(_Vector_impl& __x) noexcept 8737: { 8737: std::swap(_M_start, __x._M_start); 8737: std::swap(_M_finish, __x._M_finish); 8737: std::swap(_M_end_of_storage, __x._M_end_of_storage); 8737: } 8737: # 231 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: }; 8737: 8737: public: 8737: typedef _Alloc allocator_type; 8737: 8737: _Tp_alloc_type& 8737: _M_get_Tp_allocator() noexcept 8737: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8737: 8737: const _Tp_alloc_type& 8737: _M_get_Tp_allocator() const noexcept 8737: { return *static_cast(&this->_M_impl); } 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_get_Tp_allocator()); } 8737: 8737: _Vector_base() 8737: : _M_impl() { } 8737: 8737: _Vector_base(const allocator_type& __a) noexcept 8737: : _M_impl(__a) { } 8737: 8737: _Vector_base(size_t __n) 8737: : _M_impl() 8737: { _M_create_storage(__n); } 8737: 8737: _Vector_base(size_t __n, const allocator_type& __a) 8737: : _M_impl(__a) 8737: { _M_create_storage(__n); } 8737: 8737: 8737: _Vector_base(_Tp_alloc_type&& __a) noexcept 8737: : _M_impl(std::move(__a)) { } 8737: 8737: _Vector_base(_Vector_base&& __x) noexcept 8737: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8737: { this->_M_impl._M_swap_data(__x._M_impl); } 8737: 8737: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 8737: : _M_impl(__a) 8737: { 8737: if (__x.get_allocator() == __a) 8737: this->_M_impl._M_swap_data(__x._M_impl); 8737: else 8737: { 8737: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 8737: _M_create_storage(__n); 8737: } 8737: } 8737: 8737: 8737: ~_Vector_base() noexcept 8737: { 8737: _M_deallocate(_M_impl._M_start, 8737: _M_impl._M_end_of_storage - _M_impl._M_start); 8737: } 8737: 8737: public: 8737: _Vector_impl _M_impl; 8737: 8737: pointer 8737: _M_allocate(size_t __n) 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8737: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 8737: } 8737: 8737: void 8737: _M_deallocate(pointer __p, size_t __n) 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8737: if (__p) 8737: _Tr::deallocate(_M_impl, __p, __n); 8737: } 8737: 8737: private: 8737: void 8737: _M_create_storage(size_t __n) 8737: { 8737: this->_M_impl._M_start = this->_M_allocate(__n); 8737: this->_M_impl._M_finish = this->_M_impl._M_start; 8737: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8737: } 8737: }; 8737: # 338 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template > 8737: class vector : protected _Vector_base<_Tp, _Alloc> 8737: { 8737: # 351 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: static_assert(is_same::type, _Tp>::value, 8737: "std::vector must have a non-const, non-volatile value_type"); 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef _Vector_base<_Tp, _Alloc> _Base; 8737: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8737: 8737: public: 8737: typedef _Tp value_type; 8737: typedef typename _Base::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: typedef __gnu_cxx::__normal_iterator iterator; 8737: typedef __gnu_cxx::__normal_iterator 8737: const_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Alloc allocator_type; 8737: 8737: protected: 8737: using _Base::_M_allocate; 8737: using _Base::_M_deallocate; 8737: using _Base::_M_impl; 8737: using _Base::_M_get_Tp_allocator; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: vector() 8737: 8737: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8737: 8737: : _Base() { } 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: vector(const allocator_type& __a) noexcept 8737: : _Base(__a) { } 8737: # 414 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: explicit 8737: vector(size_type __n, const allocator_type& __a = allocator_type()) 8737: : _Base(__n, __a) 8737: { _M_default_initialize(__n); } 8737: # 427 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector(size_type __n, const value_type& __value, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__n, __a) 8737: { _M_fill_initialize(__n, __value); } 8737: # 458 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector(const vector& __x) 8737: : _Base(__x.size(), 8737: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 8737: { 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); 8737: } 8737: # 476 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector(vector&& __x) noexcept 8737: : _Base(std::move(__x)) { } 8737: 8737: 8737: vector(const vector& __x, const allocator_type& __a) 8737: : _Base(__x.size(), __a) 8737: { 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: vector(vector&& __rv, const allocator_type& __m) 8737: noexcept(_Alloc_traits::_S_always_equal()) 8737: : _Base(std::move(__rv), __m) 8737: { 8737: if (__rv.get_allocator() != __m) 8737: { 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); 8737: __rv.clear(); 8737: } 8737: } 8737: # 515 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector(initializer_list __l, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a) 8737: { 8737: _M_range_initialize(__l.begin(), __l.end(), 8737: random_access_iterator_tag()); 8737: } 8737: # 541 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template> 8737: vector(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a) 8737: { _M_initialize_dispatch(__first, __last, __false_type()); } 8737: # 565 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: ~vector() noexcept 8737: { 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: ; 8737: } 8737: # 581 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector& 8737: operator=(const vector& __x); 8737: # 595 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector& 8737: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 8737: { 8737: constexpr bool __move_storage = 8737: _Alloc_traits::_S_propagate_on_move_assign() 8737: || _Alloc_traits::_S_always_equal(); 8737: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8737: return *this; 8737: } 8737: # 616 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: vector& 8737: operator=(initializer_list __l) 8737: { 8737: this->_M_assign_aux(__l.begin(), __l.end(), 8737: random_access_iterator_tag()); 8737: return *this; 8737: } 8737: # 635 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: assign(size_type __n, const value_type& __val) 8737: { _M_fill_assign(__n, __val); } 8737: # 652 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template> 8737: void 8737: assign(_InputIterator __first, _InputIterator __last) 8737: { _M_assign_dispatch(__first, __last, __false_type()); } 8737: # 680 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: assign(initializer_list __l) 8737: { 8737: this->_M_assign_aux(__l.begin(), __l.end(), 8737: random_access_iterator_tag()); 8737: } 8737: 8737: 8737: 8737: using _Base::get_allocator; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return iterator(this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return const_iterator(this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() noexcept 8737: { return iterator(this->_M_impl._M_finish); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return const_iterator(this->_M_impl._M_finish); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return const_iterator(this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return const_iterator(this->_M_impl._M_finish); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8737: # 823 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: resize(size_type __new_size) 8737: { 8737: if (__new_size > size()) 8737: _M_default_append(__new_size - size()); 8737: else if (__new_size < size()) 8737: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8737: } 8737: # 843 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: resize(size_type __new_size, const value_type& __x) 8737: { 8737: if (__new_size > size()) 8737: _M_fill_insert(end(), __new_size - size(), __x); 8737: else if (__new_size < size()) 8737: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8737: } 8737: # 875 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: shrink_to_fit() 8737: { _M_shrink_to_fit(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: size_type 8737: capacity() const noexcept 8737: { return size_type(this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return begin() == end(); } 8737: # 914 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: reserve(size_type __n); 8737: # 929 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: reference 8737: operator[](size_type __n) noexcept 8737: { 8737: ; 8737: return *(this->_M_impl._M_start + __n); 8737: } 8737: # 947 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: const_reference 8737: operator[](size_type __n) const noexcept 8737: { 8737: ; 8737: return *(this->_M_impl._M_start + __n); 8737: } 8737: 8737: protected: 8737: 8737: void 8737: _M_range_check(size_type __n) const 8737: { 8737: if (__n >= this->size()) 8737: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8737: 8737: , 8737: __n, this->size()); 8737: } 8737: 8737: public: 8737: # 978 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: reference 8737: at(size_type __n) 8737: { 8737: _M_range_check(__n); 8737: return (*this)[__n]; 8737: } 8737: # 996 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: const_reference 8737: at(size_type __n) const 8737: { 8737: _M_range_check(__n); 8737: return (*this)[__n]; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: front() noexcept 8737: { 8737: ; 8737: return *begin(); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: front() const noexcept 8737: { 8737: ; 8737: return *begin(); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: back() noexcept 8737: { 8737: ; 8737: return *(end() - 1); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: back() const noexcept 8737: { 8737: ; 8737: return *(end() - 1); 8737: } 8737: # 1054 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: _Tp* 8737: data() noexcept 8737: { return _M_data_ptr(this->_M_impl._M_start); } 8737: 8737: const _Tp* 8737: data() const noexcept 8737: { return _M_data_ptr(this->_M_impl._M_start); } 8737: # 1073 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: push_back(const value_type& __x) 8737: { 8737: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8737: { 8737: ; 8737: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8737: __x); 8737: ++this->_M_impl._M_finish; 8737: ; 8737: } 8737: else 8737: _M_realloc_insert(end(), __x); 8737: } 8737: 8737: 8737: void 8737: push_back(value_type&& __x) 8737: { emplace_back(std::move(__x)); } 8737: 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: emplace_back(_Args&&... __args); 8737: # 1111 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: pop_back() noexcept 8737: { 8737: ; 8737: --this->_M_impl._M_finish; 8737: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8737: ; 8737: } 8737: # 1133 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template 8737: iterator 8737: emplace(const_iterator __position, _Args&&... __args) 8737: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 8737: # 1149 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: iterator 8737: insert(const_iterator __position, const value_type& __x); 8737: # 1179 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return _M_insert_rval(__position, std::move(__x)); } 8737: # 1196 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: iterator 8737: insert(const_iterator __position, initializer_list __l) 8737: { 8737: auto __offset = __position - cbegin(); 8737: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 8737: std::random_access_iterator_tag()); 8737: return begin() + __offset; 8737: } 8737: # 1221 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: iterator 8737: insert(const_iterator __position, size_type __n, const value_type& __x) 8737: { 8737: difference_type __offset = __position - cbegin(); 8737: _M_fill_insert(begin() + __offset, __n, __x); 8737: return begin() + __offset; 8737: } 8737: # 1263 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template> 8737: iterator 8737: insert(const_iterator __position, _InputIterator __first, 8737: _InputIterator __last) 8737: { 8737: difference_type __offset = __position - cbegin(); 8737: _M_insert_dispatch(begin() + __offset, 8737: __first, __last, __false_type()); 8737: return begin() + __offset; 8737: } 8737: # 1315 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: iterator 8737: 8737: erase(const_iterator __position) 8737: { return _M_erase(begin() + (__position - cbegin())); } 8737: # 1342 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: iterator 8737: 8737: erase(const_iterator __first, const_iterator __last) 8737: { 8737: const auto __beg = begin(); 8737: const auto __cbeg = cbegin(); 8737: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 8737: } 8737: # 1366 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: void 8737: swap(vector& __x) noexcept 8737: { 8737: 8737: 8737: ; 8737: 8737: this->_M_impl._M_swap_data(__x._M_impl); 8737: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8737: __x._M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: clear() noexcept 8737: { _M_erase_at_end(this->_M_impl._M_start); } 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: template 8737: pointer 8737: _M_allocate_and_copy(size_type __n, 8737: _ForwardIterator __first, _ForwardIterator __last) 8737: { 8737: pointer __result = this->_M_allocate(__n); 8737: try 8737: { 8737: std::__uninitialized_copy_a(__first, __last, __result, 8737: _M_get_Tp_allocator()); 8737: return __result; 8737: } 8737: catch(...) 8737: { 8737: _M_deallocate(__result, __n); 8737: throw; 8737: } 8737: } 8737: # 1419 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template 8737: void 8737: _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 8737: { 8737: this->_M_impl._M_start = _M_allocate(static_cast(__n)); 8737: this->_M_impl._M_end_of_storage = 8737: this->_M_impl._M_start + static_cast(__n); 8737: _M_fill_initialize(static_cast(__n), __value); 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { 8737: typedef typename std::iterator_traits<_InputIterator>:: 8737: iterator_category _IterCategory; 8737: _M_range_initialize(__first, __last, _IterCategory()); 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_range_initialize(_InputIterator __first, 8737: _InputIterator __last, std::input_iterator_tag) 8737: { 8737: for (; __first != __last; ++__first) 8737: 8737: emplace_back(*__first); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_range_initialize(_ForwardIterator __first, 8737: _ForwardIterator __last, std::forward_iterator_tag) 8737: { 8737: const size_type __n = std::distance(__first, __last); 8737: this->_M_impl._M_start = this->_M_allocate(__n); 8737: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_copy_a(__first, __last, 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_fill_initialize(size_type __n, const value_type& __value) 8737: { 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 8737: _M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_default_initialize(size_type __n) 8737: { 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 8737: _M_get_Tp_allocator()); 8737: } 8737: # 1497 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template 8737: void 8737: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8737: { _M_fill_assign(__n, __val); } 8737: 8737: 8737: template 8737: void 8737: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8737: 8737: 8737: template 8737: void 8737: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag); 8737: 8737: 8737: template 8737: void 8737: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag); 8737: 8737: 8737: 8737: void 8737: _M_fill_assign(size_type __n, const value_type& __val); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 8737: __true_type) 8737: { _M_fill_insert(__pos, __n, __val); } 8737: 8737: 8737: template 8737: void 8737: _M_insert_dispatch(iterator __pos, _InputIterator __first, 8737: _InputIterator __last, __false_type) 8737: { 8737: _M_range_insert(__pos, __first, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_range_insert(iterator __pos, _InputIterator __first, 8737: _InputIterator __last, std::input_iterator_tag); 8737: 8737: 8737: template 8737: void 8737: _M_range_insert(iterator __pos, _ForwardIterator __first, 8737: _ForwardIterator __last, std::forward_iterator_tag); 8737: 8737: 8737: 8737: void 8737: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8737: 8737: 8737: 8737: void 8737: _M_default_append(size_type __n); 8737: 8737: bool 8737: _M_shrink_to_fit(); 8737: # 1584 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: struct _Temporary_value 8737: { 8737: template 8737: explicit 8737: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 8737: { 8737: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: ~_Temporary_value() 8737: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 8737: 8737: value_type& 8737: _M_val() { return *reinterpret_cast<_Tp*>(&__buf); } 8737: 8737: private: 8737: pointer 8737: _M_ptr() { return pointer_traits::pointer_to(_M_val()); } 8737: 8737: vector* _M_this; 8737: typename aligned_storage::type __buf; 8737: }; 8737: 8737: 8737: 8737: template 8737: void 8737: _M_insert_aux(iterator __position, _Arg&& __arg); 8737: 8737: template 8737: void 8737: _M_realloc_insert(iterator __position, _Args&&... __args); 8737: 8737: 8737: iterator 8737: _M_insert_rval(const_iterator __position, value_type&& __v); 8737: 8737: 8737: template 8737: iterator 8737: _M_emplace_aux(const_iterator __position, _Args&&... __args); 8737: 8737: 8737: iterator 8737: _M_emplace_aux(const_iterator __position, value_type&& __v) 8737: { return _M_insert_rval(__position, std::move(__v)); } 8737: 8737: 8737: 8737: size_type 8737: _M_check_len(size_type __n, const char* __s) const 8737: { 8737: if (max_size() - size() < __n) 8737: __throw_length_error((__s)); 8737: 8737: const size_type __len = size() + std::max(size(), __n); 8737: return (__len < size() || __len > max_size()) ? max_size() : __len; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: void 8737: _M_erase_at_end(pointer __pos) noexcept 8737: { 8737: if (size_type __n = this->_M_impl._M_finish - __pos) 8737: { 8737: std::_Destroy(__pos, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __pos; 8737: ; 8737: } 8737: } 8737: 8737: iterator 8737: _M_erase(iterator __position); 8737: 8737: iterator 8737: _M_erase(iterator __first, iterator __last); 8737: 8737: 8737: private: 8737: 8737: 8737: 8737: void 8737: _M_move_assign(vector&& __x, std::true_type) noexcept 8737: { 8737: vector __tmp(get_allocator()); 8737: this->_M_impl._M_swap_data(__tmp._M_impl); 8737: this->_M_impl._M_swap_data(__x._M_impl); 8737: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_move_assign(vector&& __x, std::false_type) 8737: { 8737: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8737: _M_move_assign(std::move(__x), std::true_type()); 8737: else 8737: { 8737: 8737: 8737: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 8737: std::__make_move_if_noexcept_iterator(__x.end())); 8737: __x.clear(); 8737: } 8737: } 8737: 8737: 8737: template 8737: _Up* 8737: _M_data_ptr(_Up* __ptr) const noexcept 8737: { return __ptr; } 8737: 8737: 8737: template 8737: typename std::pointer_traits<_Ptr>::element_type* 8737: _M_data_ptr(_Ptr __ptr) const 8737: { return empty() ? nullptr : std::__to_address(__ptr); } 8737: # 1724 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: }; 8737: # 1746 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template 8737: inline bool 8737: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8737: { return (__x.size() == __y.size() 8737: && std::equal(__x.begin(), __x.end(), __y.begin())); } 8737: # 1763 "/usr/include/c++/8/bits/stl_vector.h" 3 8737: template 8737: inline bool 8737: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8737: { return std::lexicographical_compare(__x.begin(), __x.end(), 8737: __y.begin(), __y.end()); } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: 8737: } 8737: # 65 "/usr/include/c++/8/vector" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_bvector.h" 1 3 8737: # 63 "/usr/include/c++/8/bits/stl_bvector.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: typedef unsigned long _Bit_type; 8737: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 8737: 8737: struct _Bit_reference 8737: { 8737: _Bit_type * _M_p; 8737: _Bit_type _M_mask; 8737: 8737: _Bit_reference(_Bit_type * __x, _Bit_type __y) 8737: : _M_p(__x), _M_mask(__y) { } 8737: 8737: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 8737: 8737: operator bool() const noexcept 8737: { return !!(*_M_p & _M_mask); } 8737: 8737: _Bit_reference& 8737: operator=(bool __x) noexcept 8737: { 8737: if (__x) 8737: *_M_p |= _M_mask; 8737: else 8737: *_M_p &= ~_M_mask; 8737: return *this; 8737: } 8737: 8737: _Bit_reference& 8737: operator=(const _Bit_reference& __x) noexcept 8737: { return *this = bool(__x); } 8737: 8737: bool 8737: operator==(const _Bit_reference& __x) const 8737: { return bool(*this) == bool(__x); } 8737: 8737: bool 8737: operator<(const _Bit_reference& __x) const 8737: { return !bool(*this) && bool(__x); } 8737: 8737: void 8737: flip() noexcept 8737: { *_M_p ^= _M_mask; } 8737: }; 8737: 8737: 8737: inline void 8737: swap(_Bit_reference __x, _Bit_reference __y) noexcept 8737: { 8737: bool __tmp = __x; 8737: __x = __y; 8737: __y = __tmp; 8737: } 8737: 8737: inline void 8737: swap(_Bit_reference __x, bool& __y) noexcept 8737: { 8737: bool __tmp = __x; 8737: __x = __y; 8737: __y = __tmp; 8737: } 8737: 8737: inline void 8737: swap(bool& __x, _Bit_reference __y) noexcept 8737: { 8737: bool __tmp = __x; 8737: __x = __y; 8737: __y = __tmp; 8737: } 8737: 8737: 8737: struct _Bit_iterator_base 8737: : public std::iterator 8737: { 8737: _Bit_type * _M_p; 8737: unsigned int _M_offset; 8737: 8737: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 8737: : _M_p(__x), _M_offset(__y) { } 8737: 8737: void 8737: _M_bump_up() 8737: { 8737: if (_M_offset++ == int(_S_word_bit) - 1) 8737: { 8737: _M_offset = 0; 8737: ++_M_p; 8737: } 8737: } 8737: 8737: void 8737: _M_bump_down() 8737: { 8737: if (_M_offset-- == 0) 8737: { 8737: _M_offset = int(_S_word_bit) - 1; 8737: --_M_p; 8737: } 8737: } 8737: 8737: void 8737: _M_incr(ptrdiff_t __i) 8737: { 8737: difference_type __n = __i + _M_offset; 8737: _M_p += __n / int(_S_word_bit); 8737: __n = __n % int(_S_word_bit); 8737: if (__n < 0) 8737: { 8737: __n += int(_S_word_bit); 8737: --_M_p; 8737: } 8737: _M_offset = static_cast(__n); 8737: } 8737: 8737: bool 8737: operator==(const _Bit_iterator_base& __i) const 8737: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 8737: 8737: bool 8737: operator<(const _Bit_iterator_base& __i) const 8737: { 8737: return _M_p < __i._M_p 8737: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 8737: } 8737: 8737: bool 8737: operator!=(const _Bit_iterator_base& __i) const 8737: { return !(*this == __i); } 8737: 8737: bool 8737: operator>(const _Bit_iterator_base& __i) const 8737: { return __i < *this; } 8737: 8737: bool 8737: operator<=(const _Bit_iterator_base& __i) const 8737: { return !(__i < *this); } 8737: 8737: bool 8737: operator>=(const _Bit_iterator_base& __i) const 8737: { return !(*this < __i); } 8737: }; 8737: 8737: inline ptrdiff_t 8737: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 8737: { 8737: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 8737: + __x._M_offset - __y._M_offset); 8737: } 8737: 8737: struct _Bit_iterator : public _Bit_iterator_base 8737: { 8737: typedef _Bit_reference reference; 8737: typedef _Bit_reference* pointer; 8737: typedef _Bit_iterator iterator; 8737: 8737: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 8737: 8737: _Bit_iterator(_Bit_type * __x, unsigned int __y) 8737: : _Bit_iterator_base(__x, __y) { } 8737: 8737: iterator 8737: _M_const_cast() const 8737: { return *this; } 8737: 8737: reference 8737: operator*() const 8737: { return reference(_M_p, 1UL << _M_offset); } 8737: 8737: iterator& 8737: operator++() 8737: { 8737: _M_bump_up(); 8737: return *this; 8737: } 8737: 8737: iterator 8737: operator++(int) 8737: { 8737: iterator __tmp = *this; 8737: _M_bump_up(); 8737: return __tmp; 8737: } 8737: 8737: iterator& 8737: operator--() 8737: { 8737: _M_bump_down(); 8737: return *this; 8737: } 8737: 8737: iterator 8737: operator--(int) 8737: { 8737: iterator __tmp = *this; 8737: _M_bump_down(); 8737: return __tmp; 8737: } 8737: 8737: iterator& 8737: operator+=(difference_type __i) 8737: { 8737: _M_incr(__i); 8737: return *this; 8737: } 8737: 8737: iterator& 8737: operator-=(difference_type __i) 8737: { 8737: *this += -__i; 8737: return *this; 8737: } 8737: 8737: iterator 8737: operator+(difference_type __i) const 8737: { 8737: iterator __tmp = *this; 8737: return __tmp += __i; 8737: } 8737: 8737: iterator 8737: operator-(difference_type __i) const 8737: { 8737: iterator __tmp = *this; 8737: return __tmp -= __i; 8737: } 8737: 8737: reference 8737: operator[](difference_type __i) const 8737: { return *(*this + __i); } 8737: }; 8737: 8737: inline _Bit_iterator 8737: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 8737: { return __x + __n; } 8737: 8737: struct _Bit_const_iterator : public _Bit_iterator_base 8737: { 8737: typedef bool reference; 8737: typedef bool const_reference; 8737: typedef const bool* pointer; 8737: typedef _Bit_const_iterator const_iterator; 8737: 8737: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 8737: 8737: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 8737: : _Bit_iterator_base(__x, __y) { } 8737: 8737: _Bit_const_iterator(const _Bit_iterator& __x) 8737: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 8737: 8737: _Bit_iterator 8737: _M_const_cast() const 8737: { return _Bit_iterator(_M_p, _M_offset); } 8737: 8737: const_reference 8737: operator*() const 8737: { return _Bit_reference(_M_p, 1UL << _M_offset); } 8737: 8737: const_iterator& 8737: operator++() 8737: { 8737: _M_bump_up(); 8737: return *this; 8737: } 8737: 8737: const_iterator 8737: operator++(int) 8737: { 8737: const_iterator __tmp = *this; 8737: _M_bump_up(); 8737: return __tmp; 8737: } 8737: 8737: const_iterator& 8737: operator--() 8737: { 8737: _M_bump_down(); 8737: return *this; 8737: } 8737: 8737: const_iterator 8737: operator--(int) 8737: { 8737: const_iterator __tmp = *this; 8737: _M_bump_down(); 8737: return __tmp; 8737: } 8737: 8737: const_iterator& 8737: operator+=(difference_type __i) 8737: { 8737: _M_incr(__i); 8737: return *this; 8737: } 8737: 8737: const_iterator& 8737: operator-=(difference_type __i) 8737: { 8737: *this += -__i; 8737: return *this; 8737: } 8737: 8737: const_iterator 8737: operator+(difference_type __i) const 8737: { 8737: const_iterator __tmp = *this; 8737: return __tmp += __i; 8737: } 8737: 8737: const_iterator 8737: operator-(difference_type __i) const 8737: { 8737: const_iterator __tmp = *this; 8737: return __tmp -= __i; 8737: } 8737: 8737: const_reference 8737: operator[](difference_type __i) const 8737: { return *(*this + __i); } 8737: }; 8737: 8737: inline _Bit_const_iterator 8737: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 8737: { return __x + __n; } 8737: 8737: inline void 8737: __fill_bvector(_Bit_type * __v, 8737: unsigned int __first, unsigned int __last, bool __x) 8737: { 8737: const _Bit_type __fmask = ~0ul << __first; 8737: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 8737: const _Bit_type __mask = __fmask & __lmask; 8737: 8737: if (__x) 8737: *__v |= __mask; 8737: else 8737: *__v &= ~__mask; 8737: } 8737: 8737: inline void 8737: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 8737: { 8737: if (__first._M_p != __last._M_p) 8737: { 8737: _Bit_type* __first_p = __first._M_p; 8737: if (__first._M_offset != 0) 8737: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 8737: 8737: __builtin_memset(__first_p, __x ? ~0 : 0, 8737: (__last._M_p - __first_p) * sizeof(_Bit_type)); 8737: 8737: if (__last._M_offset != 0) 8737: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 8737: } 8737: else if (__first._M_offset != __last._M_offset) 8737: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 8737: } 8737: 8737: template 8737: struct _Bvector_base 8737: { 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Bit_type>::other _Bit_alloc_type; 8737: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 8737: _Bit_alloc_traits; 8737: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 8737: 8737: struct _Bvector_impl_data 8737: { 8737: _Bit_iterator _M_start; 8737: _Bit_iterator _M_finish; 8737: _Bit_pointer _M_end_of_storage; 8737: 8737: _Bvector_impl_data() noexcept 8737: : _M_start(), _M_finish(), _M_end_of_storage() 8737: { } 8737: 8737: 8737: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 8737: : _M_start(__x._M_start), _M_finish(__x._M_finish) 8737: , _M_end_of_storage(__x._M_end_of_storage) 8737: { __x._M_reset(); } 8737: 8737: void 8737: _M_move_data(_Bvector_impl_data&& __x) noexcept 8737: { 8737: this->_M_start = __x._M_start; 8737: this->_M_finish = __x._M_finish; 8737: this->_M_end_of_storage = __x._M_end_of_storage; 8737: __x._M_reset(); 8737: } 8737: 8737: 8737: void 8737: _M_reset() noexcept 8737: { 8737: _M_start = _M_finish = _Bit_iterator(); 8737: _M_end_of_storage = _Bit_pointer(); 8737: } 8737: }; 8737: 8737: struct _Bvector_impl 8737: : public _Bit_alloc_type, public _Bvector_impl_data 8737: { 8737: public: 8737: _Bvector_impl() 8737: noexcept(noexcept(_Bit_alloc_type())) 8737: : _Bit_alloc_type() 8737: { } 8737: 8737: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 8737: : _Bit_alloc_type(__a) 8737: { } 8737: 8737: 8737: _Bvector_impl(_Bvector_impl&&) = default; 8737: 8737: 8737: _Bit_type* 8737: _M_end_addr() const noexcept 8737: { 8737: if (this->_M_end_of_storage) 8737: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 8737: return 0; 8737: } 8737: }; 8737: 8737: public: 8737: typedef _Alloc allocator_type; 8737: 8737: _Bit_alloc_type& 8737: _M_get_Bit_allocator() noexcept 8737: { return this->_M_impl; } 8737: 8737: const _Bit_alloc_type& 8737: _M_get_Bit_allocator() const noexcept 8737: { return this->_M_impl; } 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_get_Bit_allocator()); } 8737: 8737: 8737: _Bvector_base() = default; 8737: 8737: 8737: 8737: 8737: _Bvector_base(const allocator_type& __a) 8737: : _M_impl(__a) { } 8737: 8737: 8737: _Bvector_base(_Bvector_base&&) = default; 8737: 8737: 8737: ~_Bvector_base() 8737: { this->_M_deallocate(); } 8737: 8737: protected: 8737: _Bvector_impl _M_impl; 8737: 8737: _Bit_pointer 8737: _M_allocate(size_t __n) 8737: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 8737: 8737: void 8737: _M_deallocate() 8737: { 8737: if (_M_impl._M_start._M_p) 8737: { 8737: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 8737: _Bit_alloc_traits::deallocate(_M_impl, 8737: _M_impl._M_end_of_storage - __n, 8737: __n); 8737: _M_impl._M_reset(); 8737: } 8737: } 8737: 8737: 8737: void 8737: _M_move_data(_Bvector_base&& __x) noexcept 8737: { _M_impl._M_move_data(std::move(__x._M_impl)); } 8737: 8737: 8737: static size_t 8737: _S_nword(size_t __n) 8737: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 8737: }; 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: # 586 "/usr/include/c++/8/bits/stl_bvector.h" 3 8737: template 8737: class vector : protected _Bvector_base<_Alloc> 8737: { 8737: typedef _Bvector_base<_Alloc> _Base; 8737: typedef typename _Base::_Bit_pointer _Bit_pointer; 8737: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 8737: 8737: 8737: template friend struct hash; 8737: 8737: 8737: public: 8737: typedef bool value_type; 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Bit_reference reference; 8737: typedef bool const_reference; 8737: typedef _Bit_reference* pointer; 8737: typedef const bool* const_pointer; 8737: typedef _Bit_iterator iterator; 8737: typedef _Bit_const_iterator const_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef _Alloc allocator_type; 8737: 8737: allocator_type 8737: get_allocator() const 8737: { return _Base::get_allocator(); } 8737: 8737: protected: 8737: using _Base::_M_allocate; 8737: using _Base::_M_deallocate; 8737: using _Base::_S_nword; 8737: using _Base::_M_get_Bit_allocator; 8737: 8737: public: 8737: 8737: vector() = default; 8737: 8737: 8737: 8737: 8737: explicit 8737: vector(const allocator_type& __a) 8737: : _Base(__a) { } 8737: 8737: 8737: explicit 8737: vector(size_type __n, const allocator_type& __a = allocator_type()) 8737: : vector(__n, false, __a) 8737: { } 8737: 8737: vector(size_type __n, const bool& __value, 8737: const allocator_type& __a = allocator_type()) 8737: 8737: 8737: 8737: 8737: 8737: : _Base(__a) 8737: { 8737: _M_initialize(__n); 8737: _M_initialize_value(__value); 8737: } 8737: 8737: vector(const vector& __x) 8737: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 8737: { 8737: _M_initialize(__x.size()); 8737: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8737: } 8737: 8737: 8737: vector(vector&&) = default; 8737: 8737: vector(vector&& __x, const allocator_type& __a) 8737: noexcept(_Bit_alloc_traits::_S_always_equal()) 8737: : _Base(__a) 8737: { 8737: if (__x.get_allocator() == __a) 8737: this->_M_move_data(std::move(__x)); 8737: else 8737: { 8737: _M_initialize(__x.size()); 8737: _M_copy_aligned(__x.begin(), __x.end(), begin()); 8737: __x.clear(); 8737: } 8737: } 8737: 8737: vector(const vector& __x, const allocator_type& __a) 8737: : _Base(__a) 8737: { 8737: _M_initialize(__x.size()); 8737: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8737: } 8737: 8737: vector(initializer_list __l, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a) 8737: { 8737: _M_initialize_range(__l.begin(), __l.end(), 8737: random_access_iterator_tag()); 8737: } 8737: 8737: 8737: 8737: template> 8737: vector(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a) 8737: { _M_initialize_dispatch(__first, __last, __false_type()); } 8737: # 709 "/usr/include/c++/8/bits/stl_bvector.h" 3 8737: ~vector() noexcept { } 8737: 8737: vector& 8737: operator=(const vector& __x) 8737: { 8737: if (&__x == this) 8737: return *this; 8737: 8737: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 8737: { 8737: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 8737: { 8737: this->_M_deallocate(); 8737: std::__alloc_on_copy(_M_get_Bit_allocator(), 8737: __x._M_get_Bit_allocator()); 8737: _M_initialize(__x.size()); 8737: } 8737: else 8737: std::__alloc_on_copy(_M_get_Bit_allocator(), 8737: __x._M_get_Bit_allocator()); 8737: } 8737: 8737: if (__x.size() > capacity()) 8737: { 8737: this->_M_deallocate(); 8737: _M_initialize(__x.size()); 8737: } 8737: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8737: begin()); 8737: return *this; 8737: } 8737: 8737: 8737: vector& 8737: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 8737: { 8737: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 8737: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 8737: { 8737: this->_M_deallocate(); 8737: this->_M_move_data(std::move(__x)); 8737: std::__alloc_on_move(_M_get_Bit_allocator(), 8737: __x._M_get_Bit_allocator()); 8737: } 8737: else 8737: { 8737: if (__x.size() > capacity()) 8737: { 8737: this->_M_deallocate(); 8737: _M_initialize(__x.size()); 8737: } 8737: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8737: begin()); 8737: __x.clear(); 8737: } 8737: return *this; 8737: } 8737: 8737: vector& 8737: operator=(initializer_list __l) 8737: { 8737: this->assign (__l.begin(), __l.end()); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: assign(size_type __n, const bool& __x) 8737: { _M_fill_assign(__n, __x); } 8737: 8737: 8737: template> 8737: void 8737: assign(_InputIterator __first, _InputIterator __last) 8737: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8737: # 800 "/usr/include/c++/8/bits/stl_bvector.h" 3 8737: void 8737: assign(initializer_list __l) 8737: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return this->_M_impl._M_start; } 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return this->_M_impl._M_start; } 8737: 8737: iterator 8737: end() noexcept 8737: { return this->_M_impl._M_finish; } 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return this->_M_impl._M_finish; } 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(end()); } 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(begin()); } 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return this->_M_impl._M_start; } 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return this->_M_impl._M_finish; } 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return size_type(end() - begin()); } 8737: 8737: size_type 8737: max_size() const noexcept 8737: { 8737: const size_type __isize = 8737: __gnu_cxx::__numeric_traits::__max 8737: - int(_S_word_bit) + 1; 8737: const size_type __asize 8737: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 8737: return (__asize <= __isize / int(_S_word_bit) 8737: ? __asize * int(_S_word_bit) : __isize); 8737: } 8737: 8737: size_type 8737: capacity() const noexcept 8737: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 8737: - begin()); } 8737: 8737: bool 8737: empty() const noexcept 8737: { return begin() == end(); } 8737: 8737: reference 8737: operator[](size_type __n) 8737: { 8737: return *iterator(this->_M_impl._M_start._M_p 8737: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8737: } 8737: 8737: const_reference 8737: operator[](size_type __n) const 8737: { 8737: return *const_iterator(this->_M_impl._M_start._M_p 8737: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8737: } 8737: 8737: protected: 8737: void 8737: _M_range_check(size_type __n) const 8737: { 8737: if (__n >= this->size()) 8737: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8737: 8737: , 8737: __n, this->size()); 8737: } 8737: 8737: public: 8737: reference 8737: at(size_type __n) 8737: { _M_range_check(__n); return (*this)[__n]; } 8737: 8737: const_reference 8737: at(size_type __n) const 8737: { _M_range_check(__n); return (*this)[__n]; } 8737: 8737: void 8737: reserve(size_type __n) 8737: { 8737: if (__n > max_size()) 8737: __throw_length_error(("vector::reserve")); 8737: if (capacity() < __n) 8737: _M_reallocate(__n); 8737: } 8737: 8737: reference 8737: front() 8737: { return *begin(); } 8737: 8737: const_reference 8737: front() const 8737: { return *begin(); } 8737: 8737: reference 8737: back() 8737: { return *(end() - 1); } 8737: 8737: const_reference 8737: back() const 8737: { return *(end() - 1); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: data() noexcept { } 8737: 8737: void 8737: push_back(bool __x) 8737: { 8737: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8737: *this->_M_impl._M_finish++ = __x; 8737: else 8737: _M_insert_aux(end(), __x); 8737: } 8737: 8737: void 8737: swap(vector& __x) noexcept 8737: { 8737: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 8737: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 8737: std::swap(this->_M_impl._M_end_of_storage, 8737: __x._M_impl._M_end_of_storage); 8737: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 8737: __x._M_get_Bit_allocator()); 8737: } 8737: 8737: 8737: static void 8737: swap(reference __x, reference __y) noexcept 8737: { 8737: bool __tmp = __x; 8737: __x = __y; 8737: __y = __tmp; 8737: } 8737: 8737: iterator 8737: 8737: insert(const_iterator __position, const bool& __x = bool()) 8737: 8737: 8737: 8737: { 8737: const difference_type __n = __position - begin(); 8737: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 8737: && __position == end()) 8737: *this->_M_impl._M_finish++ = __x; 8737: else 8737: _M_insert_aux(__position._M_const_cast(), __x); 8737: return begin() + __n; 8737: } 8737: 8737: 8737: template> 8737: iterator 8737: insert(const_iterator __position, 8737: _InputIterator __first, _InputIterator __last) 8737: { 8737: difference_type __offset = __position - cbegin(); 8737: _M_insert_dispatch(__position._M_const_cast(), 8737: __first, __last, __false_type()); 8737: return begin() + __offset; 8737: } 8737: # 1016 "/usr/include/c++/8/bits/stl_bvector.h" 3 8737: iterator 8737: insert(const_iterator __position, size_type __n, const bool& __x) 8737: { 8737: difference_type __offset = __position - cbegin(); 8737: _M_fill_insert(__position._M_const_cast(), __n, __x); 8737: return begin() + __offset; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: insert(const_iterator __p, initializer_list __l) 8737: { return this->insert(__p, __l.begin(), __l.end()); } 8737: 8737: 8737: void 8737: pop_back() 8737: { --this->_M_impl._M_finish; } 8737: 8737: iterator 8737: 8737: erase(const_iterator __position) 8737: 8737: 8737: 8737: { return _M_erase(__position._M_const_cast()); } 8737: 8737: iterator 8737: 8737: erase(const_iterator __first, const_iterator __last) 8737: 8737: 8737: 8737: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8737: 8737: void 8737: resize(size_type __new_size, bool __x = bool()) 8737: { 8737: if (__new_size < size()) 8737: _M_erase_at_end(begin() + difference_type(__new_size)); 8737: else 8737: insert(end(), __new_size - size(), __x); 8737: } 8737: 8737: 8737: void 8737: shrink_to_fit() 8737: { _M_shrink_to_fit(); } 8737: 8737: 8737: void 8737: flip() noexcept 8737: { 8737: _Bit_type * const __end = this->_M_impl._M_end_addr(); 8737: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 8737: *__p = ~*__p; 8737: } 8737: 8737: void 8737: clear() noexcept 8737: { _M_erase_at_end(begin()); } 8737: 8737: 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: emplace_back(_Args&&... __args) 8737: { 8737: push_back(bool(__args...)); 8737: 8737: 8737: 8737: } 8737: 8737: template 8737: iterator 8737: emplace(const_iterator __pos, _Args&&... __args) 8737: { return insert(__pos, bool(__args...)); } 8737: 8737: 8737: protected: 8737: 8737: iterator 8737: _M_copy_aligned(const_iterator __first, const_iterator __last, 8737: iterator __result) 8737: { 8737: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 8737: return std::copy(const_iterator(__last._M_p, 0), __last, 8737: iterator(__q, 0)); 8737: } 8737: 8737: void 8737: _M_initialize(size_type __n) 8737: { 8737: if (__n) 8737: { 8737: _Bit_pointer __q = this->_M_allocate(__n); 8737: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8737: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 8737: } 8737: else 8737: { 8737: this->_M_impl._M_end_of_storage = _Bit_pointer(); 8737: this->_M_impl._M_start = iterator(0, 0); 8737: } 8737: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 8737: 8737: } 8737: 8737: void 8737: _M_initialize_value(bool __x) 8737: { 8737: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 8737: __builtin_memset(__p, __x ? ~0 : 0, 8737: (this->_M_impl._M_end_addr() - __p) 8737: * sizeof(_Bit_type)); 8737: } 8737: 8737: void 8737: _M_reallocate(size_type __n); 8737: 8737: 8737: bool 8737: _M_shrink_to_fit(); 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8737: { 8737: _M_initialize(static_cast(__n)); 8737: _M_initialize_value(__x); 8737: } 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { _M_initialize_range(__first, __last, 8737: std::__iterator_category(__first)); } 8737: 8737: template 8737: void 8737: _M_initialize_range(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag) 8737: { 8737: for (; __first != __last; ++__first) 8737: push_back(*__first); 8737: } 8737: 8737: template 8737: void 8737: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag) 8737: { 8737: const size_type __n = std::distance(__first, __last); 8737: _M_initialize(__n); 8737: std::copy(__first, __last, this->_M_impl._M_start); 8737: } 8737: # 1202 "/usr/include/c++/8/bits/stl_bvector.h" 3 8737: void 8737: _M_fill_assign(size_t __n, bool __x) 8737: { 8737: if (__n > size()) 8737: { 8737: _M_initialize_value(__x); 8737: insert(end(), __n - size(), __x); 8737: } 8737: else 8737: { 8737: _M_erase_at_end(begin() + __n); 8737: _M_initialize_value(__x); 8737: } 8737: } 8737: 8737: template 8737: void 8737: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag) 8737: { 8737: iterator __cur = begin(); 8737: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8737: *__cur = *__first; 8737: if (__first == __last) 8737: _M_erase_at_end(__cur); 8737: else 8737: insert(end(), __first, __last); 8737: } 8737: 8737: template 8737: void 8737: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag) 8737: { 8737: const size_type __len = std::distance(__first, __last); 8737: if (__len < size()) 8737: _M_erase_at_end(std::copy(__first, __last, begin())); 8737: else 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, size()); 8737: std::copy(__first, __mid, begin()); 8737: insert(end(), __mid, __last); 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 8737: __true_type) 8737: { _M_fill_insert(__pos, __n, __x); } 8737: 8737: template 8737: void 8737: _M_insert_dispatch(iterator __pos, 8737: _InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { _M_insert_range(__pos, __first, __last, 8737: std::__iterator_category(__first)); } 8737: 8737: void 8737: _M_fill_insert(iterator __position, size_type __n, bool __x); 8737: 8737: template 8737: void 8737: _M_insert_range(iterator __pos, _InputIterator __first, 8737: _InputIterator __last, std::input_iterator_tag) 8737: { 8737: for (; __first != __last; ++__first) 8737: { 8737: __pos = insert(__pos, *__first); 8737: ++__pos; 8737: } 8737: } 8737: 8737: template 8737: void 8737: _M_insert_range(iterator __position, _ForwardIterator __first, 8737: _ForwardIterator __last, std::forward_iterator_tag); 8737: 8737: void 8737: _M_insert_aux(iterator __position, bool __x); 8737: 8737: size_type 8737: _M_check_len(size_type __n, const char* __s) const 8737: { 8737: if (max_size() - size() < __n) 8737: __throw_length_error((__s)); 8737: 8737: const size_type __len = size() + std::max(size(), __n); 8737: return (__len < size() || __len > max_size()) ? max_size() : __len; 8737: } 8737: 8737: void 8737: _M_erase_at_end(iterator __pos) 8737: { this->_M_impl._M_finish = __pos; } 8737: 8737: iterator 8737: _M_erase(iterator __pos); 8737: 8737: iterator 8737: _M_erase(iterator __first, iterator __last); 8737: }; 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: struct hash> 8737: : public __hash_base> 8737: { 8737: size_t 8737: operator()(const std::vector&) const noexcept; 8737: }; 8737: 8737: 8737: } 8737: # 66 "/usr/include/c++/8/vector" 2 3 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/vector.tcc" 1 3 8737: # 59 "/usr/include/c++/8/bits/vector.tcc" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: reserve(size_type __n) 8737: { 8737: if (__n > this->max_size()) 8737: __throw_length_error(("vector::reserve")); 8737: if (this->capacity() < __n) 8737: { 8737: const size_type __old_size = size(); 8737: pointer __tmp = _M_allocate_and_copy(__n, 8737: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 8737: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 8737: ; 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = __tmp; 8737: this->_M_impl._M_finish = __tmp + __old_size; 8737: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8737: } 8737: } 8737: 8737: 8737: template 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: vector<_Tp, _Alloc>:: 8737: emplace_back(_Args&&... __args) 8737: { 8737: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8737: { 8737: ; 8737: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8737: std::forward<_Args>(__args)...); 8737: ++this->_M_impl._M_finish; 8737: ; 8737: } 8737: else 8737: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: template 8737: typename vector<_Tp, _Alloc>::iterator 8737: vector<_Tp, _Alloc>:: 8737: 8737: insert(const_iterator __position, const value_type& __x) 8737: 8737: 8737: 8737: { 8737: const size_type __n = __position - begin(); 8737: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8737: if (__position == end()) 8737: { 8737: ; 8737: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8737: __x); 8737: ++this->_M_impl._M_finish; 8737: ; 8737: } 8737: else 8737: { 8737: 8737: const auto __pos = begin() + (__position - cbegin()); 8737: 8737: 8737: _Temporary_value __x_copy(this, __x); 8737: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 8737: 8737: 8737: 8737: } 8737: else 8737: 8737: _M_realloc_insert(begin() + (__position - cbegin()), __x); 8737: 8737: 8737: 8737: 8737: return iterator(this->_M_impl._M_start + __n); 8737: } 8737: 8737: template 8737: typename vector<_Tp, _Alloc>::iterator 8737: vector<_Tp, _Alloc>:: 8737: _M_erase(iterator __position) 8737: { 8737: if (__position + 1 != end()) 8737: std::move(__position + 1, end(), __position); 8737: --this->_M_impl._M_finish; 8737: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8737: ; 8737: return __position; 8737: } 8737: 8737: template 8737: typename vector<_Tp, _Alloc>::iterator 8737: vector<_Tp, _Alloc>:: 8737: _M_erase(iterator __first, iterator __last) 8737: { 8737: if (__first != __last) 8737: { 8737: if (__last != end()) 8737: std::move(__last, end(), __first); 8737: _M_erase_at_end(__first.base() + (end() - __last)); 8737: } 8737: return __first; 8737: } 8737: 8737: template 8737: vector<_Tp, _Alloc>& 8737: vector<_Tp, _Alloc>:: 8737: operator=(const vector<_Tp, _Alloc>& __x) 8737: { 8737: if (&__x != this) 8737: { 8737: ; 8737: 8737: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8737: { 8737: if (!_Alloc_traits::_S_always_equal() 8737: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8737: { 8737: 8737: this->clear(); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = nullptr; 8737: this->_M_impl._M_finish = nullptr; 8737: this->_M_impl._M_end_of_storage = nullptr; 8737: } 8737: std::__alloc_on_copy(_M_get_Tp_allocator(), 8737: __x._M_get_Tp_allocator()); 8737: } 8737: 8737: const size_type __xlen = __x.size(); 8737: if (__xlen > capacity()) 8737: { 8737: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 8737: __x.end()); 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = __tmp; 8737: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 8737: } 8737: else if (size() >= __xlen) 8737: { 8737: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 8737: end(), _M_get_Tp_allocator()); 8737: } 8737: else 8737: { 8737: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 8737: this->_M_impl._M_start); 8737: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 8737: __x._M_impl._M_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: } 8737: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_fill_assign(size_t __n, const value_type& __val) 8737: { 8737: if (__n > capacity()) 8737: { 8737: vector __tmp(__n, __val, _M_get_Tp_allocator()); 8737: __tmp._M_impl._M_swap_data(this->_M_impl); 8737: } 8737: else if (__n > size()) 8737: { 8737: std::fill(begin(), end(), __val); 8737: const size_type __add = __n - size(); 8737: ; 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8737: __add, __val, _M_get_Tp_allocator()); 8737: ; 8737: } 8737: else 8737: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 8737: } 8737: 8737: template 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag) 8737: { 8737: pointer __cur(this->_M_impl._M_start); 8737: for (; __first != __last && __cur != this->_M_impl._M_finish; 8737: ++__cur, ++__first) 8737: *__cur = *__first; 8737: if (__first == __last) 8737: _M_erase_at_end(__cur); 8737: else 8737: _M_range_insert(end(), __first, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: template 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag) 8737: { 8737: const size_type __len = std::distance(__first, __last); 8737: 8737: if (__len > capacity()) 8737: { 8737: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 8737: ; 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = __tmp; 8737: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 8737: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 8737: } 8737: else if (size() >= __len) 8737: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 8737: else 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, size()); 8737: std::copy(__first, __mid, this->_M_impl._M_start); 8737: const size_type __attribute__((__unused__)) __n = __len - size(); 8737: ; 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_copy_a(__mid, __last, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: ; 8737: } 8737: } 8737: 8737: 8737: template 8737: auto 8737: vector<_Tp, _Alloc>:: 8737: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 8737: { 8737: const auto __n = __position - cbegin(); 8737: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8737: if (__position == cend()) 8737: { 8737: ; 8737: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8737: std::move(__v)); 8737: ++this->_M_impl._M_finish; 8737: ; 8737: } 8737: else 8737: _M_insert_aux(begin() + __n, std::move(__v)); 8737: else 8737: _M_realloc_insert(begin() + __n, std::move(__v)); 8737: 8737: return iterator(this->_M_impl._M_start + __n); 8737: } 8737: 8737: template 8737: template 8737: auto 8737: vector<_Tp, _Alloc>:: 8737: _M_emplace_aux(const_iterator __position, _Args&&... __args) 8737: -> iterator 8737: { 8737: const auto __n = __position - cbegin(); 8737: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8737: if (__position == cend()) 8737: { 8737: ; 8737: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8737: std::forward<_Args>(__args)...); 8737: ++this->_M_impl._M_finish; 8737: ; 8737: } 8737: else 8737: { 8737: 8737: 8737: 8737: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 8737: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 8737: } 8737: else 8737: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 8737: 8737: return iterator(this->_M_impl._M_start + __n); 8737: } 8737: 8737: template 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_insert_aux(iterator __position, _Arg&& __arg) 8737: 8737: 8737: 8737: 8737: 8737: 8737: { 8737: ; 8737: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8737: std::move(*(this->_M_impl._M_finish - 1))); 8737: ++this->_M_impl._M_finish; 8737: ; 8737: 8737: 8737: 8737: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 8737: 8737: ; 8737: 8737: 8737: 8737: *__position = std::forward<_Arg>(__arg); 8737: 8737: } 8737: 8737: 8737: template 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_realloc_insert(iterator __position, _Args&&... __args) 8737: 8737: 8737: 8737: 8737: 8737: 8737: { 8737: const size_type __len = 8737: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 8737: pointer __old_start = this->_M_impl._M_start; 8737: pointer __old_finish = this->_M_impl._M_finish; 8737: const size_type __elems_before = __position - begin(); 8737: pointer __new_start(this->_M_allocate(__len)); 8737: pointer __new_finish(__new_start); 8737: try 8737: { 8737: 8737: 8737: 8737: 8737: 8737: _Alloc_traits::construct(this->_M_impl, 8737: __new_start + __elems_before, 8737: 8737: std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: __new_finish = pointer(); 8737: 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (__old_start, __position.base(), 8737: __new_start, _M_get_Tp_allocator()); 8737: 8737: ++__new_finish; 8737: 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (__position.base(), __old_finish, 8737: __new_finish, _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: if (!__new_finish) 8737: _Alloc_traits::destroy(this->_M_impl, 8737: __new_start + __elems_before); 8737: else 8737: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 8737: _M_deallocate(__new_start, __len); 8737: throw; 8737: } 8737: ; 8737: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 8737: _M_deallocate(__old_start, 8737: this->_M_impl._M_end_of_storage - __old_start); 8737: this->_M_impl._M_start = __new_start; 8737: this->_M_impl._M_finish = __new_finish; 8737: this->_M_impl._M_end_of_storage = __new_start + __len; 8737: } 8737: 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 8737: { 8737: if (__n != 0) 8737: { 8737: if (size_type(this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_finish) >= __n) 8737: { 8737: 8737: 8737: 8737: _Temporary_value __tmp(this, __x); 8737: value_type& __x_copy = __tmp._M_val(); 8737: 8737: const size_type __elems_after = end() - __position; 8737: pointer __old_finish(this->_M_impl._M_finish); 8737: if (__elems_after > __n) 8737: { 8737: ; 8737: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8737: this->_M_impl._M_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish += __n; 8737: ; 8737: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8737: ; 8737: std::fill(__position.base(), __position.base() + __n, 8737: __x_copy); 8737: } 8737: else 8737: { 8737: ; 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8737: __n - __elems_after, 8737: __x_copy, 8737: _M_get_Tp_allocator()); 8737: ; 8737: std::__uninitialized_move_a(__position.base(), __old_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish += __elems_after; 8737: ; 8737: std::fill(__position.base(), __old_finish, __x_copy); 8737: } 8737: } 8737: else 8737: { 8737: const size_type __len = 8737: _M_check_len(__n, "vector::_M_fill_insert"); 8737: const size_type __elems_before = __position - begin(); 8737: pointer __new_start(this->_M_allocate(__len)); 8737: pointer __new_finish(__new_start); 8737: try 8737: { 8737: 8737: std::__uninitialized_fill_n_a(__new_start + __elems_before, 8737: __n, __x, 8737: _M_get_Tp_allocator()); 8737: __new_finish = pointer(); 8737: 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (this->_M_impl._M_start, __position.base(), 8737: __new_start, _M_get_Tp_allocator()); 8737: 8737: __new_finish += __n; 8737: 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (__position.base(), this->_M_impl._M_finish, 8737: __new_finish, _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: if (!__new_finish) 8737: std::_Destroy(__new_start + __elems_before, 8737: __new_start + __elems_before + __n, 8737: _M_get_Tp_allocator()); 8737: else 8737: std::_Destroy(__new_start, __new_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(__new_start, __len); 8737: throw; 8737: } 8737: ; 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = __new_start; 8737: this->_M_impl._M_finish = __new_finish; 8737: this->_M_impl._M_end_of_storage = __new_start + __len; 8737: } 8737: } 8737: } 8737: 8737: 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_default_append(size_type __n) 8737: { 8737: if (__n != 0) 8737: { 8737: size_type __size = size(); 8737: size_type __navail = size_type(this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_finish); 8737: 8737: if (__size > max_size() || __navail > max_size() - __size) 8737: __builtin_unreachable(); 8737: 8737: if (__navail >= __n) 8737: { 8737: ; 8737: this->_M_impl._M_finish = 8737: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 8737: __n, _M_get_Tp_allocator()); 8737: ; 8737: } 8737: else 8737: { 8737: const size_type __len = 8737: _M_check_len(__n, "vector::_M_default_append"); 8737: const size_type __old_size = __size; 8737: pointer __new_start(this->_M_allocate(__len)); 8737: pointer __new_finish(__new_start); 8737: try 8737: { 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (this->_M_impl._M_start, this->_M_impl._M_finish, 8737: __new_start, _M_get_Tp_allocator()); 8737: __new_finish = 8737: std::__uninitialized_default_n_a(__new_finish, __n, 8737: _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__new_start, __new_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(__new_start, __len); 8737: throw; 8737: } 8737: ; 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = __new_start; 8737: this->_M_impl._M_finish = __new_finish; 8737: this->_M_impl._M_end_of_storage = __new_start + __len; 8737: } 8737: } 8737: } 8737: 8737: template 8737: bool 8737: vector<_Tp, _Alloc>:: 8737: _M_shrink_to_fit() 8737: { 8737: if (capacity() == size()) 8737: return false; 8737: ; 8737: return std::__shrink_to_fit_aux::_S_do_it(*this); 8737: } 8737: 8737: 8737: template 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_range_insert(iterator __pos, _InputIterator __first, 8737: _InputIterator __last, std::input_iterator_tag) 8737: { 8737: if (__pos == end()) 8737: { 8737: for (; __first != __last; ++__first) 8737: insert(end(), *__first); 8737: } 8737: else if (__first != __last) 8737: { 8737: vector __tmp(__first, __last, _M_get_Tp_allocator()); 8737: insert(__pos, 8737: std::make_move_iterator(__tmp.begin()), 8737: std::make_move_iterator(__tmp.end())); 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: vector<_Tp, _Alloc>:: 8737: _M_range_insert(iterator __position, _ForwardIterator __first, 8737: _ForwardIterator __last, std::forward_iterator_tag) 8737: { 8737: if (__first != __last) 8737: { 8737: const size_type __n = std::distance(__first, __last); 8737: if (size_type(this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_finish) >= __n) 8737: { 8737: const size_type __elems_after = end() - __position; 8737: pointer __old_finish(this->_M_impl._M_finish); 8737: if (__elems_after > __n) 8737: { 8737: ; 8737: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8737: this->_M_impl._M_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish += __n; 8737: ; 8737: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8737: ; 8737: std::copy(__first, __last, __position); 8737: } 8737: else 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, __elems_after); 8737: ; 8737: std::__uninitialized_copy_a(__mid, __last, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish += __n - __elems_after; 8737: ; 8737: std::__uninitialized_move_a(__position.base(), 8737: __old_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish += __elems_after; 8737: ; 8737: std::copy(__first, __mid, __position); 8737: } 8737: } 8737: else 8737: { 8737: const size_type __len = 8737: _M_check_len(__n, "vector::_M_range_insert"); 8737: pointer __new_start(this->_M_allocate(__len)); 8737: pointer __new_finish(__new_start); 8737: try 8737: { 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (this->_M_impl._M_start, __position.base(), 8737: __new_start, _M_get_Tp_allocator()); 8737: __new_finish 8737: = std::__uninitialized_copy_a(__first, __last, 8737: __new_finish, 8737: _M_get_Tp_allocator()); 8737: __new_finish 8737: = std::__uninitialized_move_if_noexcept_a 8737: (__position.base(), this->_M_impl._M_finish, 8737: __new_finish, _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(__new_start, __new_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(__new_start, __len); 8737: throw; 8737: } 8737: ; 8737: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: _M_deallocate(this->_M_impl._M_start, 8737: this->_M_impl._M_end_of_storage 8737: - this->_M_impl._M_start); 8737: this->_M_impl._M_start = __new_start; 8737: this->_M_impl._M_finish = __new_finish; 8737: this->_M_impl._M_end_of_storage = __new_start + __len; 8737: } 8737: } 8737: } 8737: 8737: 8737: 8737: template 8737: void 8737: vector:: 8737: _M_reallocate(size_type __n) 8737: { 8737: _Bit_pointer __q = this->_M_allocate(__n); 8737: iterator __start(std::__addressof(*__q), 0); 8737: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 8737: this->_M_deallocate(); 8737: this->_M_impl._M_start = __start; 8737: this->_M_impl._M_finish = __finish; 8737: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8737: } 8737: 8737: template 8737: void 8737: vector:: 8737: _M_fill_insert(iterator __position, size_type __n, bool __x) 8737: { 8737: if (__n == 0) 8737: return; 8737: if (capacity() - size() >= __n) 8737: { 8737: std::copy_backward(__position, end(), 8737: this->_M_impl._M_finish + difference_type(__n)); 8737: std::fill(__position, __position + difference_type(__n), __x); 8737: this->_M_impl._M_finish += difference_type(__n); 8737: } 8737: else 8737: { 8737: const size_type __len = 8737: _M_check_len(__n, "vector::_M_fill_insert"); 8737: _Bit_pointer __q = this->_M_allocate(__len); 8737: iterator __start(std::__addressof(*__q), 0); 8737: iterator __i = _M_copy_aligned(begin(), __position, __start); 8737: std::fill(__i, __i + difference_type(__n), __x); 8737: iterator __finish = std::copy(__position, end(), 8737: __i + difference_type(__n)); 8737: this->_M_deallocate(); 8737: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8737: this->_M_impl._M_start = __start; 8737: this->_M_impl._M_finish = __finish; 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: vector:: 8737: _M_insert_range(iterator __position, _ForwardIterator __first, 8737: _ForwardIterator __last, std::forward_iterator_tag) 8737: { 8737: if (__first != __last) 8737: { 8737: size_type __n = std::distance(__first, __last); 8737: if (capacity() - size() >= __n) 8737: { 8737: std::copy_backward(__position, end(), 8737: this->_M_impl._M_finish 8737: + difference_type(__n)); 8737: std::copy(__first, __last, __position); 8737: this->_M_impl._M_finish += difference_type(__n); 8737: } 8737: else 8737: { 8737: const size_type __len = 8737: _M_check_len(__n, "vector::_M_insert_range"); 8737: _Bit_pointer __q = this->_M_allocate(__len); 8737: iterator __start(std::__addressof(*__q), 0); 8737: iterator __i = _M_copy_aligned(begin(), __position, __start); 8737: __i = std::copy(__first, __last, __i); 8737: iterator __finish = std::copy(__position, end(), __i); 8737: this->_M_deallocate(); 8737: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8737: this->_M_impl._M_start = __start; 8737: this->_M_impl._M_finish = __finish; 8737: } 8737: } 8737: } 8737: 8737: template 8737: void 8737: vector:: 8737: _M_insert_aux(iterator __position, bool __x) 8737: { 8737: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8737: { 8737: std::copy_backward(__position, this->_M_impl._M_finish, 8737: this->_M_impl._M_finish + 1); 8737: *__position = __x; 8737: ++this->_M_impl._M_finish; 8737: } 8737: else 8737: { 8737: const size_type __len = 8737: _M_check_len(size_type(1), "vector::_M_insert_aux"); 8737: _Bit_pointer __q = this->_M_allocate(__len); 8737: iterator __start(std::__addressof(*__q), 0); 8737: iterator __i = _M_copy_aligned(begin(), __position, __start); 8737: *__i++ = __x; 8737: iterator __finish = std::copy(__position, end(), __i); 8737: this->_M_deallocate(); 8737: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8737: this->_M_impl._M_start = __start; 8737: this->_M_impl._M_finish = __finish; 8737: } 8737: } 8737: 8737: template 8737: typename vector::iterator 8737: vector:: 8737: _M_erase(iterator __position) 8737: { 8737: if (__position + 1 != end()) 8737: std::copy(__position + 1, end(), __position); 8737: --this->_M_impl._M_finish; 8737: return __position; 8737: } 8737: 8737: template 8737: typename vector::iterator 8737: vector:: 8737: _M_erase(iterator __first, iterator __last) 8737: { 8737: if (__first != __last) 8737: _M_erase_at_end(std::copy(__last, end(), __first)); 8737: return __first; 8737: } 8737: 8737: 8737: template 8737: bool 8737: vector:: 8737: _M_shrink_to_fit() 8737: { 8737: if (capacity() - size() < int(_S_word_bit)) 8737: return false; 8737: try 8737: { 8737: _M_reallocate(size()); 8737: return true; 8737: } 8737: catch(...) 8737: { return false; } 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: size_t 8737: hash>:: 8737: operator()(const std::vector& __b) const noexcept 8737: { 8737: size_t __hash = 0; 8737: using std::_S_word_bit; 8737: using std::_Bit_type; 8737: 8737: const size_t __words = __b.size() / _S_word_bit; 8737: if (__words) 8737: { 8737: const size_t __clength = __words * sizeof(_Bit_type); 8737: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 8737: } 8737: 8737: const size_t __extrabits = __b.size() % _S_word_bit; 8737: if (__extrabits) 8737: { 8737: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 8737: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 8737: 8737: const size_t __clength 8737: = (__extrabits + 8 - 1) / 8; 8737: if (__words) 8737: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 8737: else 8737: __hash = std::_Hash_impl::hash(&__hiword, __clength); 8737: } 8737: 8737: return __hash; 8737: } 8737: 8737: 8737: } 8737: # 70 "/usr/include/c++/8/vector" 2 3 8737: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8737: 8737: # 1 "/usr/include/c++/8/map" 1 3 4 8737: # 58 "/usr/include/c++/8/map" 3 4 8737: 8737: # 59 "/usr/include/c++/8/map" 3 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_tree.h" 1 3 8737: # 61 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: 8737: # 62 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: # 75 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 99 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: enum _Rb_tree_color { _S_red = false, _S_black = true }; 8737: 8737: struct _Rb_tree_node_base 8737: { 8737: typedef _Rb_tree_node_base* _Base_ptr; 8737: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8737: 8737: _Rb_tree_color _M_color; 8737: _Base_ptr _M_parent; 8737: _Base_ptr _M_left; 8737: _Base_ptr _M_right; 8737: 8737: static _Base_ptr 8737: _S_minimum(_Base_ptr __x) noexcept 8737: { 8737: while (__x->_M_left != 0) __x = __x->_M_left; 8737: return __x; 8737: } 8737: 8737: static _Const_Base_ptr 8737: _S_minimum(_Const_Base_ptr __x) noexcept 8737: { 8737: while (__x->_M_left != 0) __x = __x->_M_left; 8737: return __x; 8737: } 8737: 8737: static _Base_ptr 8737: _S_maximum(_Base_ptr __x) noexcept 8737: { 8737: while (__x->_M_right != 0) __x = __x->_M_right; 8737: return __x; 8737: } 8737: 8737: static _Const_Base_ptr 8737: _S_maximum(_Const_Base_ptr __x) noexcept 8737: { 8737: while (__x->_M_right != 0) __x = __x->_M_right; 8737: return __x; 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct _Rb_tree_key_compare 8737: { 8737: _Key_compare _M_key_compare; 8737: 8737: _Rb_tree_key_compare() 8737: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 8737: 8737: : _M_key_compare() 8737: { } 8737: 8737: _Rb_tree_key_compare(const _Key_compare& __comp) 8737: : _M_key_compare(__comp) 8737: { } 8737: 8737: 8737: 8737: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 8737: 8737: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 8737: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 8737: : _M_key_compare(__x._M_key_compare) 8737: { } 8737: 8737: }; 8737: 8737: 8737: struct _Rb_tree_header 8737: { 8737: _Rb_tree_node_base _M_header; 8737: size_t _M_node_count; 8737: 8737: _Rb_tree_header() noexcept 8737: { 8737: _M_header._M_color = _S_red; 8737: _M_reset(); 8737: } 8737: 8737: 8737: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 8737: { 8737: if (__x._M_header._M_parent != nullptr) 8737: _M_move_data(__x); 8737: else 8737: { 8737: _M_header._M_color = _S_red; 8737: _M_reset(); 8737: } 8737: } 8737: 8737: 8737: void 8737: _M_move_data(_Rb_tree_header& __from) 8737: { 8737: _M_header._M_color = __from._M_header._M_color; 8737: _M_header._M_parent = __from._M_header._M_parent; 8737: _M_header._M_left = __from._M_header._M_left; 8737: _M_header._M_right = __from._M_header._M_right; 8737: _M_header._M_parent->_M_parent = &_M_header; 8737: _M_node_count = __from._M_node_count; 8737: 8737: __from._M_reset(); 8737: } 8737: 8737: void 8737: _M_reset() 8737: { 8737: _M_header._M_parent = 0; 8737: _M_header._M_left = &_M_header; 8737: _M_header._M_right = &_M_header; 8737: _M_node_count = 0; 8737: } 8737: }; 8737: 8737: template 8737: struct _Rb_tree_node : public _Rb_tree_node_base 8737: { 8737: typedef _Rb_tree_node<_Val>* _Link_type; 8737: # 231 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 8737: 8737: _Val* 8737: _M_valptr() 8737: { return _M_storage._M_ptr(); } 8737: 8737: const _Val* 8737: _M_valptr() const 8737: { return _M_storage._M_ptr(); } 8737: 8737: }; 8737: 8737: __attribute__ ((__pure__)) _Rb_tree_node_base* 8737: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 8737: 8737: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8737: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 8737: 8737: __attribute__ ((__pure__)) _Rb_tree_node_base* 8737: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 8737: 8737: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8737: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 8737: 8737: template 8737: struct _Rb_tree_iterator 8737: { 8737: typedef _Tp value_type; 8737: typedef _Tp& reference; 8737: typedef _Tp* pointer; 8737: 8737: typedef bidirectional_iterator_tag iterator_category; 8737: typedef ptrdiff_t difference_type; 8737: 8737: typedef _Rb_tree_iterator<_Tp> _Self; 8737: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 8737: typedef _Rb_tree_node<_Tp>* _Link_type; 8737: 8737: _Rb_tree_iterator() noexcept 8737: : _M_node() { } 8737: 8737: explicit 8737: _Rb_tree_iterator(_Base_ptr __x) noexcept 8737: : _M_node(__x) { } 8737: 8737: reference 8737: operator*() const noexcept 8737: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8737: 8737: pointer 8737: operator->() const noexcept 8737: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 8737: 8737: _Self& 8737: operator++() noexcept 8737: { 8737: _M_node = _Rb_tree_increment(_M_node); 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator++(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _Rb_tree_increment(_M_node); 8737: return __tmp; 8737: } 8737: 8737: _Self& 8737: operator--() noexcept 8737: { 8737: _M_node = _Rb_tree_decrement(_M_node); 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator--(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _Rb_tree_decrement(_M_node); 8737: return __tmp; 8737: } 8737: 8737: bool 8737: operator==(const _Self& __x) const noexcept 8737: { return _M_node == __x._M_node; } 8737: 8737: bool 8737: operator!=(const _Self& __x) const noexcept 8737: { return _M_node != __x._M_node; } 8737: 8737: _Base_ptr _M_node; 8737: }; 8737: 8737: template 8737: struct _Rb_tree_const_iterator 8737: { 8737: typedef _Tp value_type; 8737: typedef const _Tp& reference; 8737: typedef const _Tp* pointer; 8737: 8737: typedef _Rb_tree_iterator<_Tp> iterator; 8737: 8737: typedef bidirectional_iterator_tag iterator_category; 8737: typedef ptrdiff_t difference_type; 8737: 8737: typedef _Rb_tree_const_iterator<_Tp> _Self; 8737: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 8737: typedef const _Rb_tree_node<_Tp>* _Link_type; 8737: 8737: _Rb_tree_const_iterator() noexcept 8737: : _M_node() { } 8737: 8737: explicit 8737: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 8737: : _M_node(__x) { } 8737: 8737: _Rb_tree_const_iterator(const iterator& __it) noexcept 8737: : _M_node(__it._M_node) { } 8737: 8737: iterator 8737: _M_const_cast() const noexcept 8737: { return iterator(const_cast(_M_node)); } 8737: 8737: reference 8737: operator*() const noexcept 8737: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8737: 8737: pointer 8737: operator->() const noexcept 8737: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 8737: 8737: _Self& 8737: operator++() noexcept 8737: { 8737: _M_node = _Rb_tree_increment(_M_node); 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator++(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _Rb_tree_increment(_M_node); 8737: return __tmp; 8737: } 8737: 8737: _Self& 8737: operator--() noexcept 8737: { 8737: _M_node = _Rb_tree_decrement(_M_node); 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator--(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: _M_node = _Rb_tree_decrement(_M_node); 8737: return __tmp; 8737: } 8737: 8737: bool 8737: operator==(const _Self& __x) const noexcept 8737: { return _M_node == __x._M_node; } 8737: 8737: bool 8737: operator!=(const _Self& __x) const noexcept 8737: { return _M_node != __x._M_node; } 8737: 8737: _Base_ptr _M_node; 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const _Rb_tree_iterator<_Val>& __x, 8737: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8737: { return __x._M_node == __y._M_node; } 8737: 8737: template 8737: inline bool 8737: operator!=(const _Rb_tree_iterator<_Val>& __x, 8737: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8737: { return __x._M_node != __y._M_node; } 8737: 8737: void 8737: _Rb_tree_insert_and_rebalance(const bool __insert_left, 8737: _Rb_tree_node_base* __x, 8737: _Rb_tree_node_base* __p, 8737: _Rb_tree_node_base& __header) throw (); 8737: 8737: _Rb_tree_node_base* 8737: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 8737: _Rb_tree_node_base& __header) throw (); 8737: # 442 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: template > 8737: class _Rb_tree 8737: { 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 8737: 8737: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 8737: 8737: 8737: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 8737: "comparison object must be invocable with two arguments of key type"); 8737: # 462 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: protected: 8737: typedef _Rb_tree_node_base* _Base_ptr; 8737: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8737: typedef _Rb_tree_node<_Val>* _Link_type; 8737: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 8737: 8737: private: 8737: 8737: 8737: struct _Reuse_or_alloc_node 8737: { 8737: _Reuse_or_alloc_node(_Rb_tree& __t) 8737: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 8737: { 8737: if (_M_root) 8737: { 8737: _M_root->_M_parent = 0; 8737: 8737: if (_M_nodes->_M_left) 8737: _M_nodes = _M_nodes->_M_left; 8737: } 8737: else 8737: _M_nodes = 0; 8737: } 8737: 8737: 8737: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 8737: 8737: 8737: ~_Reuse_or_alloc_node() 8737: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 8737: 8737: template 8737: _Link_type 8737: 8737: 8737: 8737: operator()(_Arg&& __arg) 8737: 8737: { 8737: _Link_type __node = static_cast<_Link_type>(_M_extract()); 8737: if (__node) 8737: { 8737: _M_t._M_destroy_node(__node); 8737: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 8737: return __node; 8737: } 8737: 8737: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 8737: } 8737: 8737: private: 8737: _Base_ptr 8737: _M_extract() 8737: { 8737: if (!_M_nodes) 8737: return _M_nodes; 8737: 8737: _Base_ptr __node = _M_nodes; 8737: _M_nodes = _M_nodes->_M_parent; 8737: if (_M_nodes) 8737: { 8737: if (_M_nodes->_M_right == __node) 8737: { 8737: _M_nodes->_M_right = 0; 8737: 8737: if (_M_nodes->_M_left) 8737: { 8737: _M_nodes = _M_nodes->_M_left; 8737: 8737: while (_M_nodes->_M_right) 8737: _M_nodes = _M_nodes->_M_right; 8737: 8737: if (_M_nodes->_M_left) 8737: _M_nodes = _M_nodes->_M_left; 8737: } 8737: } 8737: else 8737: _M_nodes->_M_left = 0; 8737: } 8737: else 8737: _M_root = 0; 8737: 8737: return __node; 8737: } 8737: 8737: _Base_ptr _M_root; 8737: _Base_ptr _M_nodes; 8737: _Rb_tree& _M_t; 8737: }; 8737: 8737: 8737: 8737: struct _Alloc_node 8737: { 8737: _Alloc_node(_Rb_tree& __t) 8737: : _M_t(__t) { } 8737: 8737: template 8737: _Link_type 8737: 8737: 8737: 8737: operator()(_Arg&& __arg) const 8737: 8737: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 8737: 8737: private: 8737: _Rb_tree& _M_t; 8737: }; 8737: 8737: public: 8737: typedef _Key key_type; 8737: typedef _Val value_type; 8737: typedef value_type* pointer; 8737: typedef const value_type* const_pointer; 8737: typedef value_type& reference; 8737: typedef const value_type& const_reference; 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Alloc allocator_type; 8737: 8737: _Node_allocator& 8737: _M_get_Node_allocator() noexcept 8737: { return this->_M_impl; } 8737: 8737: const _Node_allocator& 8737: _M_get_Node_allocator() const noexcept 8737: { return this->_M_impl; } 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_get_Node_allocator()); } 8737: 8737: protected: 8737: _Link_type 8737: _M_get_node() 8737: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 8737: 8737: void 8737: _M_put_node(_Link_type __p) noexcept 8737: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 8737: # 630 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: template 8737: void 8737: _M_construct_node(_Link_type __node, _Args&&... __args) 8737: { 8737: try 8737: { 8737: ::new(__node) _Rb_tree_node<_Val>; 8737: _Alloc_traits::construct(_M_get_Node_allocator(), 8737: __node->_M_valptr(), 8737: std::forward<_Args>(__args)...); 8737: } 8737: catch(...) 8737: { 8737: __node->~_Rb_tree_node<_Val>(); 8737: _M_put_node(__node); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: _Link_type 8737: _M_create_node(_Args&&... __args) 8737: { 8737: _Link_type __tmp = _M_get_node(); 8737: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 8737: return __tmp; 8737: } 8737: 8737: void 8737: _M_destroy_node(_Link_type __p) noexcept 8737: { 8737: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 8737: __p->~_Rb_tree_node<_Val>(); 8737: } 8737: 8737: 8737: void 8737: _M_drop_node(_Link_type __p) noexcept 8737: { 8737: _M_destroy_node(__p); 8737: _M_put_node(__p); 8737: } 8737: 8737: template 8737: _Link_type 8737: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 8737: { 8737: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 8737: __tmp->_M_color = __x->_M_color; 8737: __tmp->_M_left = 0; 8737: __tmp->_M_right = 0; 8737: return __tmp; 8737: } 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: template 8737: 8737: struct _Rb_tree_impl 8737: : public _Node_allocator 8737: , public _Rb_tree_key_compare<_Key_compare> 8737: , public _Rb_tree_header 8737: { 8737: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 8737: 8737: _Rb_tree_impl() 8737: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 8737: 8737: 8737: : _Node_allocator() 8737: { } 8737: 8737: _Rb_tree_impl(const _Rb_tree_impl& __x) 8737: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 8737: , _Base_key_compare(__x._M_key_compare) 8737: { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: _Rb_tree_impl(_Rb_tree_impl&&) = default; 8737: 8737: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 8737: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 8737: { } 8737: 8737: }; 8737: 8737: _Rb_tree_impl<_Compare> _M_impl; 8737: 8737: protected: 8737: _Base_ptr& 8737: _M_root() noexcept 8737: { return this->_M_impl._M_header._M_parent; } 8737: 8737: _Const_Base_ptr 8737: _M_root() const noexcept 8737: { return this->_M_impl._M_header._M_parent; } 8737: 8737: _Base_ptr& 8737: _M_leftmost() noexcept 8737: { return this->_M_impl._M_header._M_left; } 8737: 8737: _Const_Base_ptr 8737: _M_leftmost() const noexcept 8737: { return this->_M_impl._M_header._M_left; } 8737: 8737: _Base_ptr& 8737: _M_rightmost() noexcept 8737: { return this->_M_impl._M_header._M_right; } 8737: 8737: _Const_Base_ptr 8737: _M_rightmost() const noexcept 8737: { return this->_M_impl._M_header._M_right; } 8737: 8737: _Link_type 8737: _M_begin() noexcept 8737: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 8737: 8737: _Const_Link_type 8737: _M_begin() const noexcept 8737: { 8737: return static_cast<_Const_Link_type> 8737: (this->_M_impl._M_header._M_parent); 8737: } 8737: 8737: _Base_ptr 8737: _M_end() noexcept 8737: { return &this->_M_impl._M_header; } 8737: 8737: _Const_Base_ptr 8737: _M_end() const noexcept 8737: { return &this->_M_impl._M_header; } 8737: 8737: static const_reference 8737: _S_value(_Const_Link_type __x) 8737: { return *__x->_M_valptr(); } 8737: 8737: static const _Key& 8737: _S_key(_Const_Link_type __x) 8737: { return _KeyOfValue()(_S_value(__x)); } 8737: 8737: static _Link_type 8737: _S_left(_Base_ptr __x) noexcept 8737: { return static_cast<_Link_type>(__x->_M_left); } 8737: 8737: static _Const_Link_type 8737: _S_left(_Const_Base_ptr __x) noexcept 8737: { return static_cast<_Const_Link_type>(__x->_M_left); } 8737: 8737: static _Link_type 8737: _S_right(_Base_ptr __x) noexcept 8737: { return static_cast<_Link_type>(__x->_M_right); } 8737: 8737: static _Const_Link_type 8737: _S_right(_Const_Base_ptr __x) noexcept 8737: { return static_cast<_Const_Link_type>(__x->_M_right); } 8737: 8737: static const_reference 8737: _S_value(_Const_Base_ptr __x) 8737: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 8737: 8737: static const _Key& 8737: _S_key(_Const_Base_ptr __x) 8737: { return _KeyOfValue()(_S_value(__x)); } 8737: 8737: static _Base_ptr 8737: _S_minimum(_Base_ptr __x) noexcept 8737: { return _Rb_tree_node_base::_S_minimum(__x); } 8737: 8737: static _Const_Base_ptr 8737: _S_minimum(_Const_Base_ptr __x) noexcept 8737: { return _Rb_tree_node_base::_S_minimum(__x); } 8737: 8737: static _Base_ptr 8737: _S_maximum(_Base_ptr __x) noexcept 8737: { return _Rb_tree_node_base::_S_maximum(__x); } 8737: 8737: static _Const_Base_ptr 8737: _S_maximum(_Const_Base_ptr __x) noexcept 8737: { return _Rb_tree_node_base::_S_maximum(__x); } 8737: 8737: public: 8737: typedef _Rb_tree_iterator iterator; 8737: typedef _Rb_tree_const_iterator const_iterator; 8737: 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: # 832 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: pair<_Base_ptr, _Base_ptr> 8737: _M_get_insert_unique_pos(const key_type& __k); 8737: 8737: pair<_Base_ptr, _Base_ptr> 8737: _M_get_insert_equal_pos(const key_type& __k); 8737: 8737: pair<_Base_ptr, _Base_ptr> 8737: _M_get_insert_hint_unique_pos(const_iterator __pos, 8737: const key_type& __k); 8737: 8737: pair<_Base_ptr, _Base_ptr> 8737: _M_get_insert_hint_equal_pos(const_iterator __pos, 8737: const key_type& __k); 8737: 8737: private: 8737: 8737: template 8737: iterator 8737: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 8737: 8737: iterator 8737: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 8737: 8737: template 8737: iterator 8737: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 8737: 8737: template 8737: iterator 8737: _M_insert_equal_lower(_Arg&& __x); 8737: 8737: iterator 8737: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 8737: 8737: iterator 8737: _M_insert_equal_lower_node(_Link_type __z); 8737: # 883 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: template 8737: _Link_type 8737: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 8737: 8737: template 8737: _Link_type 8737: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 8737: { 8737: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 8737: _M_leftmost() = _S_minimum(__root); 8737: _M_rightmost() = _S_maximum(__root); 8737: _M_impl._M_node_count = __x._M_impl._M_node_count; 8737: return __root; 8737: } 8737: 8737: _Link_type 8737: _M_copy(const _Rb_tree& __x) 8737: { 8737: _Alloc_node __an(*this); 8737: return _M_copy(__x, __an); 8737: } 8737: 8737: void 8737: _M_erase(_Link_type __x); 8737: 8737: iterator 8737: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8737: const _Key& __k); 8737: 8737: const_iterator 8737: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8737: const _Key& __k) const; 8737: 8737: iterator 8737: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8737: const _Key& __k); 8737: 8737: const_iterator 8737: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8737: const _Key& __k) const; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: _Rb_tree() = default; 8737: 8737: 8737: _Rb_tree(const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_impl(__comp, _Node_allocator(__a)) { } 8737: 8737: _Rb_tree(const _Rb_tree& __x) 8737: : _M_impl(__x._M_impl) 8737: { 8737: if (__x._M_root() != 0) 8737: _M_root() = _M_copy(__x); 8737: } 8737: 8737: 8737: _Rb_tree(const allocator_type& __a) 8737: : _M_impl(_Compare(), _Node_allocator(__a)) 8737: { } 8737: 8737: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 8737: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 8737: { 8737: if (__x._M_root() != nullptr) 8737: _M_root() = _M_copy(__x); 8737: } 8737: 8737: _Rb_tree(_Rb_tree&&) = default; 8737: 8737: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 8737: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 8737: { } 8737: 8737: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); 8737: 8737: 8737: ~_Rb_tree() noexcept 8737: { _M_erase(_M_begin()); } 8737: 8737: _Rb_tree& 8737: operator=(const _Rb_tree& __x); 8737: 8737: 8737: _Compare 8737: key_comp() const 8737: { return _M_impl._M_key_compare; } 8737: 8737: iterator 8737: begin() noexcept 8737: { return iterator(this->_M_impl._M_header._M_left); } 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return const_iterator(this->_M_impl._M_header._M_left); } 8737: 8737: iterator 8737: end() noexcept 8737: { return iterator(&this->_M_impl._M_header); } 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return const_iterator(&this->_M_impl._M_header); } 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(end()); } 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(begin()); } 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: bool 8737: empty() const noexcept 8737: { return _M_impl._M_node_count == 0; } 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_impl._M_node_count; } 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 8737: 8737: void 8737: swap(_Rb_tree& __t) 8737: noexcept(__is_nothrow_swappable<_Compare>::value); 8737: 8737: 8737: 8737: template 8737: pair 8737: _M_insert_unique(_Arg&& __x); 8737: 8737: template 8737: iterator 8737: _M_insert_equal(_Arg&& __x); 8737: 8737: template 8737: iterator 8737: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8737: 8737: template 8737: iterator 8737: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 8737: { 8737: _Alloc_node __an(*this); 8737: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 8737: } 8737: 8737: template 8737: iterator 8737: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8737: 8737: template 8737: iterator 8737: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 8737: { 8737: _Alloc_node __an(*this); 8737: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 8737: } 8737: 8737: template 8737: pair 8737: _M_emplace_unique(_Args&&... __args); 8737: 8737: template 8737: iterator 8737: _M_emplace_equal(_Args&&... __args); 8737: 8737: template 8737: iterator 8737: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 8737: 8737: template 8737: iterator 8737: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 8737: # 1103 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: template 8737: void 8737: _M_insert_unique(_InputIterator __first, _InputIterator __last); 8737: 8737: template 8737: void 8737: _M_insert_equal(_InputIterator __first, _InputIterator __last); 8737: 8737: private: 8737: void 8737: _M_erase_aux(const_iterator __position); 8737: 8737: void 8737: _M_erase_aux(const_iterator __first, const_iterator __last); 8737: 8737: public: 8737: 8737: 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(const_iterator __position) 8737: { 8737: ; 8737: const_iterator __result = __position; 8737: ++__result; 8737: _M_erase_aux(__position); 8737: return __result._M_const_cast(); 8737: } 8737: 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(iterator __position) 8737: { 8737: ; 8737: iterator __result = __position; 8737: ++__result; 8737: _M_erase_aux(__position); 8737: return __result; 8737: } 8737: # 1159 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: size_type 8737: erase(const key_type& __x); 8737: 8737: 8737: 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(const_iterator __first, const_iterator __last) 8737: { 8737: _M_erase_aux(__first, __last); 8737: return __last._M_const_cast(); 8737: } 8737: # 1181 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: void 8737: erase(const key_type* __first, const key_type* __last); 8737: 8737: void 8737: clear() noexcept 8737: { 8737: _M_erase(_M_begin()); 8737: _M_impl._M_reset(); 8737: } 8737: 8737: 8737: iterator 8737: find(const key_type& __k); 8737: 8737: const_iterator 8737: find(const key_type& __k) const; 8737: 8737: size_type 8737: count(const key_type& __k) const; 8737: 8737: iterator 8737: lower_bound(const key_type& __k) 8737: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8737: 8737: const_iterator 8737: lower_bound(const key_type& __k) const 8737: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8737: 8737: iterator 8737: upper_bound(const key_type& __k) 8737: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8737: 8737: const_iterator 8737: upper_bound(const key_type& __k) const 8737: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8737: 8737: pair 8737: equal_range(const key_type& __k); 8737: 8737: pair 8737: equal_range(const key_type& __k) const; 8737: # 1341 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: bool 8737: __rb_verify() const; 8737: 8737: 8737: _Rb_tree& 8737: operator=(_Rb_tree&&) 8737: noexcept(_Alloc_traits::_S_nothrow_move() 8737: && is_nothrow_move_assignable<_Compare>::value); 8737: 8737: template 8737: void 8737: _M_assign_unique(_Iterator, _Iterator); 8737: 8737: template 8737: void 8737: _M_assign_equal(_Iterator, _Iterator); 8737: 8737: private: 8737: 8737: void 8737: _M_move_data(_Rb_tree& __x, std::true_type) 8737: { _M_impl._M_move_data(__x._M_impl); } 8737: 8737: 8737: 8737: void 8737: _M_move_data(_Rb_tree&, std::false_type); 8737: 8737: 8737: void 8737: _M_move_assign(_Rb_tree&, std::true_type); 8737: 8737: 8737: 8737: void 8737: _M_move_assign(_Rb_tree&, std::false_type); 8737: # 1544 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { 8737: return __x.size() == __y.size() 8737: && std::equal(__x.begin(), __x.end(), __y.begin()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { 8737: return std::lexicographical_compare(__x.begin(), __x.end(), 8737: __y.begin(), __y.end()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: template 8737: inline void 8737: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8737: { __x.swap(__y); } 8737: 8737: 8737: template 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 8737: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 8737: { 8737: using __eq = typename _Alloc_traits::is_always_equal; 8737: if (__x._M_root() != nullptr) 8737: _M_move_data(__x, __eq()); 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_move_data(_Rb_tree& __x, std::false_type) 8737: { 8737: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8737: _M_move_data(__x, std::true_type()); 8737: else 8737: { 8737: _Alloc_node __an(*this); 8737: auto __lbd = 8737: [&__an](const value_type& __cval) 8737: { 8737: auto& __val = const_cast(__cval); 8737: return __an(std::move_if_noexcept(__val)); 8737: }; 8737: _M_root() = _M_copy(__x, __lbd); 8737: } 8737: } 8737: 8737: template 8737: inline void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_move_assign(_Rb_tree& __x, true_type) 8737: { 8737: clear(); 8737: if (__x._M_root() != nullptr) 8737: _M_move_data(__x, std::true_type()); 8737: std::__alloc_on_move(_M_get_Node_allocator(), 8737: __x._M_get_Node_allocator()); 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_move_assign(_Rb_tree& __x, false_type) 8737: { 8737: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8737: return _M_move_assign(__x, true_type{}); 8737: 8737: 8737: 8737: _Reuse_or_alloc_node __roan(*this); 8737: _M_impl._M_reset(); 8737: if (__x._M_root() != nullptr) 8737: { 8737: auto __lbd = 8737: [&__roan](const value_type& __cval) 8737: { 8737: auto& __val = const_cast(__cval); 8737: return __roan(std::move_if_noexcept(__val)); 8737: }; 8737: _M_root() = _M_copy(__x, __lbd); 8737: __x.clear(); 8737: } 8737: } 8737: 8737: template 8737: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: operator=(_Rb_tree&& __x) 8737: noexcept(_Alloc_traits::_S_nothrow_move() 8737: && is_nothrow_move_assignable<_Compare>::value) 8737: { 8737: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 8737: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 8737: return *this; 8737: } 8737: 8737: template 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_assign_unique(_Iterator __first, _Iterator __last) 8737: { 8737: _Reuse_or_alloc_node __roan(*this); 8737: _M_impl._M_reset(); 8737: for (; __first != __last; ++__first) 8737: _M_insert_unique_(end(), *__first, __roan); 8737: } 8737: 8737: template 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_assign_equal(_Iterator __first, _Iterator __last) 8737: { 8737: _Reuse_or_alloc_node __roan(*this); 8737: _M_impl._M_reset(); 8737: for (; __first != __last; ++__first) 8737: _M_insert_equal_(end(), *__first, __roan); 8737: } 8737: 8737: 8737: template 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: operator=(const _Rb_tree& __x) 8737: { 8737: if (this != &__x) 8737: { 8737: 8737: 8737: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8737: { 8737: auto& __this_alloc = this->_M_get_Node_allocator(); 8737: auto& __that_alloc = __x._M_get_Node_allocator(); 8737: if (!_Alloc_traits::_S_always_equal() 8737: && __this_alloc != __that_alloc) 8737: { 8737: 8737: 8737: clear(); 8737: std::__alloc_on_copy(__this_alloc, __that_alloc); 8737: } 8737: } 8737: 8737: 8737: _Reuse_or_alloc_node __roan(*this); 8737: _M_impl._M_reset(); 8737: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 8737: if (__x._M_root() != 0) 8737: _M_root() = _M_copy(__x, __roan); 8737: } 8737: 8737: return *this; 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: 8737: 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_insert_(_Base_ptr __x, _Base_ptr __p, 8737: 8737: _Arg&& __v, 8737: 8737: 8737: 8737: _NodeGen& __node_gen) 8737: { 8737: bool __insert_left = (__x != 0 || __p == _M_end() 8737: || _M_impl._M_key_compare(_KeyOfValue()(__v), 8737: _S_key(__p))); 8737: 8737: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 8737: 8737: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8737: this->_M_impl._M_header); 8737: ++_M_impl._M_node_count; 8737: return iterator(__z); 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: 8737: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 8737: 8737: 8737: 8737: { 8737: bool __insert_left = (__p == _M_end() 8737: || !_M_impl._M_key_compare(_S_key(__p), 8737: _KeyOfValue()(__v))); 8737: 8737: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 8737: 8737: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8737: this->_M_impl._M_header); 8737: ++_M_impl._M_node_count; 8737: return iterator(__z); 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: 8737: _M_insert_equal_lower(_Arg&& __v) 8737: 8737: 8737: 8737: { 8737: _Link_type __x = _M_begin(); 8737: _Base_ptr __y = _M_end(); 8737: while (__x != 0) 8737: { 8737: __y = __x; 8737: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 8737: _S_left(__x) : _S_right(__x); 8737: } 8737: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 8737: } 8737: 8737: template 8737: template 8737: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 8737: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 8737: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 8737: { 8737: 8737: _Link_type __top = _M_clone_node(__x, __node_gen); 8737: __top->_M_parent = __p; 8737: 8737: try 8737: { 8737: if (__x->_M_right) 8737: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 8737: __p = __top; 8737: __x = _S_left(__x); 8737: 8737: while (__x != 0) 8737: { 8737: _Link_type __y = _M_clone_node(__x, __node_gen); 8737: __p->_M_left = __y; 8737: __y->_M_parent = __p; 8737: if (__x->_M_right) 8737: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 8737: __p = __y; 8737: __x = _S_left(__x); 8737: } 8737: } 8737: catch(...) 8737: { 8737: _M_erase(__top); 8737: throw; 8737: } 8737: return __top; 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_erase(_Link_type __x) 8737: { 8737: 8737: while (__x != 0) 8737: { 8737: _M_erase(_S_right(__x)); 8737: _Link_type __y = _S_left(__x); 8737: _M_drop_node(__x); 8737: __x = __y; 8737: } 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8737: const _Key& __k) 8737: { 8737: while (__x != 0) 8737: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8737: __y = __x, __x = _S_left(__x); 8737: else 8737: __x = _S_right(__x); 8737: return iterator(__y); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::const_iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8737: const _Key& __k) const 8737: { 8737: while (__x != 0) 8737: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8737: __y = __x, __x = _S_left(__x); 8737: else 8737: __x = _S_right(__x); 8737: return const_iterator(__y); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8737: const _Key& __k) 8737: { 8737: while (__x != 0) 8737: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8737: __y = __x, __x = _S_left(__x); 8737: else 8737: __x = _S_right(__x); 8737: return iterator(__y); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::const_iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8737: const _Key& __k) const 8737: { 8737: while (__x != 0) 8737: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8737: __y = __x, __x = _S_left(__x); 8737: else 8737: __x = _S_right(__x); 8737: return const_iterator(__y); 8737: } 8737: 8737: template 8737: pair::iterator, 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::iterator> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: equal_range(const _Key& __k) 8737: { 8737: _Link_type __x = _M_begin(); 8737: _Base_ptr __y = _M_end(); 8737: while (__x != 0) 8737: { 8737: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8737: __x = _S_right(__x); 8737: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8737: __y = __x, __x = _S_left(__x); 8737: else 8737: { 8737: _Link_type __xu(__x); 8737: _Base_ptr __yu(__y); 8737: __y = __x, __x = _S_left(__x); 8737: __xu = _S_right(__xu); 8737: return pair(_M_lower_bound(__x, __y, __k), 8737: _M_upper_bound(__xu, __yu, __k)); 8737: } 8737: } 8737: return pair(iterator(__y), 8737: iterator(__y)); 8737: } 8737: 8737: template 8737: pair::const_iterator, 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::const_iterator> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: equal_range(const _Key& __k) const 8737: { 8737: _Const_Link_type __x = _M_begin(); 8737: _Const_Base_ptr __y = _M_end(); 8737: while (__x != 0) 8737: { 8737: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8737: __x = _S_right(__x); 8737: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8737: __y = __x, __x = _S_left(__x); 8737: else 8737: { 8737: _Const_Link_type __xu(__x); 8737: _Const_Base_ptr __yu(__y); 8737: __y = __x, __x = _S_left(__x); 8737: __xu = _S_right(__xu); 8737: return pair(_M_lower_bound(__x, __y, __k), 8737: _M_upper_bound(__xu, __yu, __k)); 8737: } 8737: } 8737: return pair(const_iterator(__y), 8737: const_iterator(__y)); 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: swap(_Rb_tree& __t) 8737: noexcept(__is_nothrow_swappable<_Compare>::value) 8737: { 8737: if (_M_root() == 0) 8737: { 8737: if (__t._M_root() != 0) 8737: _M_impl._M_move_data(__t._M_impl); 8737: } 8737: else if (__t._M_root() == 0) 8737: __t._M_impl._M_move_data(_M_impl); 8737: else 8737: { 8737: std::swap(_M_root(),__t._M_root()); 8737: std::swap(_M_leftmost(),__t._M_leftmost()); 8737: std::swap(_M_rightmost(),__t._M_rightmost()); 8737: 8737: _M_root()->_M_parent = _M_end(); 8737: __t._M_root()->_M_parent = __t._M_end(); 8737: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 8737: } 8737: 8737: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 8737: 8737: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 8737: __t._M_get_Node_allocator()); 8737: } 8737: 8737: template 8737: pair::_Base_ptr, 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::_Base_ptr> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_get_insert_unique_pos(const key_type& __k) 8737: { 8737: typedef pair<_Base_ptr, _Base_ptr> _Res; 8737: _Link_type __x = _M_begin(); 8737: _Base_ptr __y = _M_end(); 8737: bool __comp = true; 8737: while (__x != 0) 8737: { 8737: __y = __x; 8737: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 8737: __x = __comp ? _S_left(__x) : _S_right(__x); 8737: } 8737: iterator __j = iterator(__y); 8737: if (__comp) 8737: { 8737: if (__j == begin()) 8737: return _Res(__x, __y); 8737: else 8737: --__j; 8737: } 8737: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 8737: return _Res(__x, __y); 8737: return _Res(__j._M_node, 0); 8737: } 8737: 8737: template 8737: pair::_Base_ptr, 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::_Base_ptr> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_get_insert_equal_pos(const key_type& __k) 8737: { 8737: typedef pair<_Base_ptr, _Base_ptr> _Res; 8737: _Link_type __x = _M_begin(); 8737: _Base_ptr __y = _M_end(); 8737: while (__x != 0) 8737: { 8737: __y = __x; 8737: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 8737: _S_left(__x) : _S_right(__x); 8737: } 8737: return _Res(__x, __y); 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: pair::iterator, bool> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: 8737: _M_insert_unique(_Arg&& __v) 8737: 8737: 8737: 8737: { 8737: typedef pair _Res; 8737: pair<_Base_ptr, _Base_ptr> __res 8737: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 8737: 8737: if (__res.second) 8737: { 8737: _Alloc_node __an(*this); 8737: return _Res(_M_insert_(__res.first, __res.second, 8737: std::forward<_Arg>(__v), __an), 8737: true); 8737: } 8737: 8737: return _Res(iterator(__res.first), false); 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: 8737: _M_insert_equal(_Arg&& __v) 8737: 8737: 8737: 8737: { 8737: pair<_Base_ptr, _Base_ptr> __res 8737: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 8737: _Alloc_node __an(*this); 8737: return _M_insert_(__res.first, __res.second, 8737: std::forward<_Arg>(__v), __an); 8737: } 8737: 8737: template 8737: pair::_Base_ptr, 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::_Base_ptr> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_get_insert_hint_unique_pos(const_iterator __position, 8737: const key_type& __k) 8737: { 8737: iterator __pos = __position._M_const_cast(); 8737: typedef pair<_Base_ptr, _Base_ptr> _Res; 8737: 8737: 8737: if (__pos._M_node == _M_end()) 8737: { 8737: if (size() > 0 8737: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 8737: return _Res(0, _M_rightmost()); 8737: else 8737: return _M_get_insert_unique_pos(__k); 8737: } 8737: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 8737: { 8737: 8737: iterator __before = __pos; 8737: if (__pos._M_node == _M_leftmost()) 8737: return _Res(_M_leftmost(), _M_leftmost()); 8737: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 8737: { 8737: if (_S_right(__before._M_node) == 0) 8737: return _Res(0, __before._M_node); 8737: else 8737: return _Res(__pos._M_node, __pos._M_node); 8737: } 8737: else 8737: return _M_get_insert_unique_pos(__k); 8737: } 8737: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8737: { 8737: 8737: iterator __after = __pos; 8737: if (__pos._M_node == _M_rightmost()) 8737: return _Res(0, _M_rightmost()); 8737: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 8737: { 8737: if (_S_right(__pos._M_node) == 0) 8737: return _Res(0, __pos._M_node); 8737: else 8737: return _Res(__after._M_node, __after._M_node); 8737: } 8737: else 8737: return _M_get_insert_unique_pos(__k); 8737: } 8737: else 8737: 8737: return _Res(__pos._M_node, 0); 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: 8737: 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_insert_unique_(const_iterator __position, 8737: 8737: _Arg&& __v, 8737: 8737: 8737: 8737: _NodeGen& __node_gen) 8737: { 8737: pair<_Base_ptr, _Base_ptr> __res 8737: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 8737: 8737: if (__res.second) 8737: return _M_insert_(__res.first, __res.second, 8737: std::forward<_Arg>(__v), 8737: __node_gen); 8737: return iterator(__res.first); 8737: } 8737: 8737: template 8737: pair::_Base_ptr, 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::_Base_ptr> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 8737: { 8737: iterator __pos = __position._M_const_cast(); 8737: typedef pair<_Base_ptr, _Base_ptr> _Res; 8737: 8737: 8737: if (__pos._M_node == _M_end()) 8737: { 8737: if (size() > 0 8737: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 8737: return _Res(0, _M_rightmost()); 8737: else 8737: return _M_get_insert_equal_pos(__k); 8737: } 8737: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8737: { 8737: 8737: iterator __before = __pos; 8737: if (__pos._M_node == _M_leftmost()) 8737: return _Res(_M_leftmost(), _M_leftmost()); 8737: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 8737: { 8737: if (_S_right(__before._M_node) == 0) 8737: return _Res(0, __before._M_node); 8737: else 8737: return _Res(__pos._M_node, __pos._M_node); 8737: } 8737: else 8737: return _M_get_insert_equal_pos(__k); 8737: } 8737: else 8737: { 8737: 8737: iterator __after = __pos; 8737: if (__pos._M_node == _M_rightmost()) 8737: return _Res(0, _M_rightmost()); 8737: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 8737: { 8737: if (_S_right(__pos._M_node) == 0) 8737: return _Res(0, __pos._M_node); 8737: else 8737: return _Res(__after._M_node, __after._M_node); 8737: } 8737: else 8737: return _Res(0, 0); 8737: } 8737: } 8737: 8737: template 8737: 8737: template 8737: 8737: 8737: 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_insert_equal_(const_iterator __position, 8737: 8737: _Arg&& __v, 8737: 8737: 8737: 8737: _NodeGen& __node_gen) 8737: { 8737: pair<_Base_ptr, _Base_ptr> __res 8737: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 8737: 8737: if (__res.second) 8737: return _M_insert_(__res.first, __res.second, 8737: std::forward<_Arg>(__v), 8737: __node_gen); 8737: 8737: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 8737: } 8737: 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 8737: { 8737: bool __insert_left = (__x != 0 || __p == _M_end() 8737: || _M_impl._M_key_compare(_S_key(__z), 8737: _S_key(__p))); 8737: 8737: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8737: this->_M_impl._M_header); 8737: ++_M_impl._M_node_count; 8737: return iterator(__z); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 8737: { 8737: bool __insert_left = (__p == _M_end() 8737: || !_M_impl._M_key_compare(_S_key(__p), 8737: _S_key(__z))); 8737: 8737: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8737: this->_M_impl._M_header); 8737: ++_M_impl._M_node_count; 8737: return iterator(__z); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_insert_equal_lower_node(_Link_type __z) 8737: { 8737: _Link_type __x = _M_begin(); 8737: _Base_ptr __y = _M_end(); 8737: while (__x != 0) 8737: { 8737: __y = __x; 8737: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 8737: _S_left(__x) : _S_right(__x); 8737: } 8737: return _M_insert_lower_node(__y, __z); 8737: } 8737: 8737: template 8737: template 8737: pair::iterator, bool> 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_emplace_unique(_Args&&... __args) 8737: { 8737: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8737: 8737: try 8737: { 8737: typedef pair _Res; 8737: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 8737: if (__res.second) 8737: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 8737: 8737: _M_drop_node(__z); 8737: return _Res(iterator(__res.first), false); 8737: } 8737: catch(...) 8737: { 8737: _M_drop_node(__z); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_emplace_equal(_Args&&... __args) 8737: { 8737: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8737: 8737: try 8737: { 8737: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 8737: return _M_insert_node(__res.first, __res.second, __z); 8737: } 8737: catch(...) 8737: { 8737: _M_drop_node(__z); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 8737: { 8737: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8737: 8737: try 8737: { 8737: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 8737: 8737: if (__res.second) 8737: return _M_insert_node(__res.first, __res.second, __z); 8737: 8737: _M_drop_node(__z); 8737: return iterator(__res.first); 8737: } 8737: catch(...) 8737: { 8737: _M_drop_node(__z); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 8737: { 8737: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8737: 8737: try 8737: { 8737: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 8737: 8737: if (__res.second) 8737: return _M_insert_node(__res.first, __res.second, __z); 8737: 8737: return _M_insert_equal_lower_node(__z); 8737: } 8737: catch(...) 8737: { 8737: _M_drop_node(__z); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8737: _M_insert_unique(_II __first, _II __last) 8737: { 8737: _Alloc_node __an(*this); 8737: for (; __first != __last; ++__first) 8737: _M_insert_unique_(end(), *__first, __an); 8737: } 8737: 8737: template 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8737: _M_insert_equal(_II __first, _II __last) 8737: { 8737: _Alloc_node __an(*this); 8737: for (; __first != __last; ++__first) 8737: _M_insert_equal_(end(), *__first, __an); 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_erase_aux(const_iterator __position) 8737: { 8737: _Link_type __y = 8737: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 8737: (const_cast<_Base_ptr>(__position._M_node), 8737: this->_M_impl._M_header)); 8737: _M_drop_node(__y); 8737: --_M_impl._M_node_count; 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: _M_erase_aux(const_iterator __first, const_iterator __last) 8737: { 8737: if (__first == begin() && __last == end()) 8737: clear(); 8737: else 8737: while (__first != __last) 8737: _M_erase_aux(__first++); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: erase(const _Key& __x) 8737: { 8737: pair __p = equal_range(__x); 8737: const size_type __old_size = size(); 8737: _M_erase_aux(__p.first, __p.second); 8737: return __old_size - size(); 8737: } 8737: 8737: template 8737: void 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: erase(const _Key* __first, const _Key* __last) 8737: { 8737: while (__first != __last) 8737: erase(*__first++); 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: find(const _Key& __k) 8737: { 8737: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8737: return (__j == end() 8737: || _M_impl._M_key_compare(__k, 8737: _S_key(__j._M_node))) ? end() : __j; 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8737: _Compare, _Alloc>::const_iterator 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: find(const _Key& __k) const 8737: { 8737: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8737: return (__j == end() 8737: || _M_impl._M_key_compare(__k, 8737: _S_key(__j._M_node))) ? end() : __j; 8737: } 8737: 8737: template 8737: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8737: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8737: count(const _Key& __k) const 8737: { 8737: pair __p = equal_range(__k); 8737: const size_type __n = std::distance(__p.first, __p.second); 8737: return __n; 8737: } 8737: 8737: __attribute__ ((__pure__)) unsigned int 8737: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 8737: const _Rb_tree_node_base* __root) throw (); 8737: 8737: template 8737: bool 8737: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 8737: { 8737: if (_M_impl._M_node_count == 0 || begin() == end()) 8737: return _M_impl._M_node_count == 0 && begin() == end() 8737: && this->_M_impl._M_header._M_left == _M_end() 8737: && this->_M_impl._M_header._M_right == _M_end(); 8737: 8737: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 8737: for (const_iterator __it = begin(); __it != end(); ++__it) 8737: { 8737: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 8737: _Const_Link_type __L = _S_left(__x); 8737: _Const_Link_type __R = _S_right(__x); 8737: 8737: if (__x->_M_color == _S_red) 8737: if ((__L && __L->_M_color == _S_red) 8737: || (__R && __R->_M_color == _S_red)) 8737: return false; 8737: 8737: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 8737: return false; 8737: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 8737: return false; 8737: 8737: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 8737: return false; 8737: } 8737: 8737: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 8737: return false; 8737: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 8737: return false; 8737: return true; 8737: } 8737: # 2627 "/usr/include/c++/8/bits/stl_tree.h" 3 8737: 8737: } 8737: # 61 "/usr/include/c++/8/map" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_map.h" 1 3 8737: # 63 "/usr/include/c++/8/bits/stl_map.h" 3 8737: # 1 "/usr/include/c++/8/tuple" 1 3 8737: # 32 "/usr/include/c++/8/tuple" 3 8737: 8737: # 33 "/usr/include/c++/8/tuple" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/array" 1 3 8737: # 32 "/usr/include/c++/8/array" 3 8737: 8737: # 33 "/usr/include/c++/8/array" 3 8737: # 43 "/usr/include/c++/8/array" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: template 8737: struct __array_traits 8737: { 8737: typedef _Tp _Type[_Nm]; 8737: typedef __is_swappable<_Tp> _Is_swappable; 8737: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 8737: 8737: static constexpr _Tp& 8737: _S_ref(const _Type& __t, std::size_t __n) noexcept 8737: { return const_cast<_Tp&>(__t[__n]); } 8737: 8737: static constexpr _Tp* 8737: _S_ptr(const _Type& __t) noexcept 8737: { return const_cast<_Tp*>(__t); } 8737: }; 8737: 8737: template 8737: struct __array_traits<_Tp, 0> 8737: { 8737: struct _Type { }; 8737: typedef true_type _Is_swappable; 8737: typedef true_type _Is_nothrow_swappable; 8737: 8737: static constexpr _Tp& 8737: _S_ref(const _Type&, std::size_t) noexcept 8737: { return *static_cast<_Tp*>(nullptr); } 8737: 8737: static constexpr _Tp* 8737: _S_ptr(const _Type&) noexcept 8737: { return nullptr; } 8737: }; 8737: # 93 "/usr/include/c++/8/array" 3 8737: template 8737: struct array 8737: { 8737: typedef _Tp value_type; 8737: typedef value_type* pointer; 8737: typedef const value_type* const_pointer; 8737: typedef value_type& reference; 8737: typedef const value_type& const_reference; 8737: typedef value_type* iterator; 8737: typedef const value_type* const_iterator; 8737: typedef std::size_t size_type; 8737: typedef std::ptrdiff_t difference_type; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: 8737: 8737: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 8737: typename _AT_Type::_Type _M_elems; 8737: 8737: 8737: 8737: 8737: void 8737: fill(const value_type& __u) 8737: { std::fill_n(begin(), size(), __u); } 8737: 8737: void 8737: swap(array& __other) 8737: noexcept(_AT_Type::_Is_nothrow_swappable::value) 8737: { std::swap_ranges(begin(), end(), __other.begin()); } 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return iterator(data()); } 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return const_iterator(data()); } 8737: 8737: iterator 8737: end() noexcept 8737: { return iterator(data() + _Nm); } 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return const_iterator(data() + _Nm); } 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(end()); } 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(begin()); } 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return const_iterator(data()); } 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return const_iterator(data() + _Nm); } 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return const_reverse_iterator(end()); } 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: constexpr size_type 8737: size() const noexcept { return _Nm; } 8737: 8737: constexpr size_type 8737: max_size() const noexcept { return _Nm; } 8737: 8737: constexpr bool 8737: empty() const noexcept { return size() == 0; } 8737: 8737: 8737: reference 8737: operator[](size_type __n) noexcept 8737: { return _AT_Type::_S_ref(_M_elems, __n); } 8737: 8737: constexpr const_reference 8737: operator[](size_type __n) const noexcept 8737: { return _AT_Type::_S_ref(_M_elems, __n); } 8737: 8737: reference 8737: at(size_type __n) 8737: { 8737: if (__n >= _Nm) 8737: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8737: , 8737: __n, _Nm); 8737: return _AT_Type::_S_ref(_M_elems, __n); 8737: } 8737: 8737: constexpr const_reference 8737: at(size_type __n) const 8737: { 8737: 8737: 8737: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 8737: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8737: , 8737: __n, _Nm), 8737: _AT_Type::_S_ref(_M_elems, 0)); 8737: } 8737: 8737: reference 8737: front() noexcept 8737: { return *begin(); } 8737: 8737: constexpr const_reference 8737: front() const noexcept 8737: { return _AT_Type::_S_ref(_M_elems, 0); } 8737: 8737: reference 8737: back() noexcept 8737: { return _Nm ? *(end() - 1) : *end(); } 8737: 8737: constexpr const_reference 8737: back() const noexcept 8737: { 8737: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 8737: : _AT_Type::_S_ref(_M_elems, 0); 8737: } 8737: 8737: pointer 8737: data() noexcept 8737: { return _AT_Type::_S_ptr(_M_elems); } 8737: 8737: const_pointer 8737: data() const noexcept 8737: { return _AT_Type::_S_ptr(_M_elems); } 8737: }; 8737: # 250 "/usr/include/c++/8/array" 3 8737: template 8737: inline bool 8737: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8737: 8737: template 8737: inline bool 8737: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return !(__one == __two); } 8737: 8737: template 8737: inline bool 8737: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8737: { 8737: return std::lexicographical_compare(__a.begin(), __a.end(), 8737: __b.begin(), __b.end()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return __two < __one; } 8737: 8737: template 8737: inline bool 8737: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return !(__one > __two); } 8737: 8737: template 8737: inline bool 8737: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return !(__one < __two); } 8737: 8737: 8737: template 8737: inline 8737: 8737: 8737: typename enable_if< 8737: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 8737: >::type 8737: 8737: 8737: 8737: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8737: noexcept(noexcept(__one.swap(__two))) 8737: { __one.swap(__two); } 8737: 8737: 8737: template 8737: typename enable_if< 8737: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 8737: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 8737: 8737: 8737: template 8737: constexpr _Tp& 8737: get(array<_Tp, _Nm>& __arr) noexcept 8737: { 8737: static_assert(_Int < _Nm, "array index is within bounds"); 8737: return std::__array_traits<_Tp, _Nm>:: 8737: _S_ref(__arr._M_elems, _Int); 8737: } 8737: 8737: template 8737: constexpr _Tp&& 8737: get(array<_Tp, _Nm>&& __arr) noexcept 8737: { 8737: static_assert(_Int < _Nm, "array index is within bounds"); 8737: return std::move(std::get<_Int>(__arr)); 8737: } 8737: 8737: template 8737: constexpr const _Tp& 8737: get(const array<_Tp, _Nm>& __arr) noexcept 8737: { 8737: static_assert(_Int < _Nm, "array index is within bounds"); 8737: return std::__array_traits<_Tp, _Nm>:: 8737: _S_ref(__arr._M_elems, _Int); 8737: } 8737: 8737: template 8737: constexpr const _Tp&& 8737: get(const array<_Tp, _Nm>&& __arr) noexcept 8737: { 8737: static_assert(_Int < _Nm, "array index is within bounds"); 8737: return std::move(std::get<_Int>(__arr)); 8737: } 8737: 8737: 8737: } 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct tuple_size; 8737: 8737: 8737: template 8737: struct tuple_size> 8737: : public integral_constant { }; 8737: 8737: 8737: template 8737: struct tuple_element; 8737: 8737: 8737: template 8737: struct tuple_element<_Int, std::array<_Tp, _Nm>> 8737: { 8737: static_assert(_Int < _Nm, "index is out of bounds"); 8737: typedef _Tp type; 8737: }; 8737: 8737: template 8737: struct __is_tuple_like_impl> : true_type 8737: { }; 8737: 8737: 8737: } 8737: # 40 "/usr/include/c++/8/tuple" 2 3 8737: # 1 "/usr/include/c++/8/bits/uses_allocator.h" 1 3 8737: # 35 "/usr/include/c++/8/bits/uses_allocator.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: struct __erased_type { }; 8737: 8737: template 8737: using __is_erased_or_convertible 8737: = __or_, is_convertible<_Alloc, _Tp>>; 8737: 8737: 8737: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 8737: 8737: constexpr allocator_arg_t allocator_arg = 8737: allocator_arg_t(); 8737: 8737: template> 8737: struct __uses_allocator_helper 8737: : false_type { }; 8737: 8737: template 8737: struct __uses_allocator_helper<_Tp, _Alloc, 8737: __void_t> 8737: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 8737: { }; 8737: 8737: 8737: template 8737: struct uses_allocator 8737: : __uses_allocator_helper<_Tp, _Alloc>::type 8737: { }; 8737: 8737: struct __uses_alloc_base { }; 8737: 8737: struct __uses_alloc0 : __uses_alloc_base 8737: { 8737: struct _Sink { void operator=(const void*) { } } _M_a; 8737: }; 8737: 8737: template 8737: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 8737: 8737: template 8737: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 8737: 8737: template 8737: struct __uses_alloc; 8737: 8737: template 8737: struct __uses_alloc 8737: : conditional< 8737: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, 8737: __uses_alloc1<_Alloc>, 8737: __uses_alloc2<_Alloc>>::type 8737: { 8737: static_assert(__or_< 8737: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>, 8737: is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with" 8737: " an allocator must be possible if uses_allocator is true"); 8737: }; 8737: 8737: template 8737: struct __uses_alloc 8737: : __uses_alloc0 { }; 8737: 8737: template 8737: using __uses_alloc_t = 8737: __uses_alloc::value, _Tp, _Alloc, _Args...>; 8737: 8737: template 8737: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 8737: __use_alloc(const _Alloc& __a) 8737: { 8737: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 8737: __ret._M_a = std::__addressof(__a); 8737: return __ret; 8737: } 8737: 8737: template 8737: void 8737: __use_alloc(const _Alloc&&) = delete; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template class _Predicate, 8737: typename _Tp, typename _Alloc, typename... _Args> 8737: struct __is_uses_allocator_predicate 8737: : conditional::value, 8737: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 8737: _Predicate<_Tp, _Args..., _Alloc>>, 8737: _Predicate<_Tp, _Args...>>::type { }; 8737: 8737: template 8737: struct __is_uses_allocator_constructible 8737: : __is_uses_allocator_predicate 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_nothrow_uses_allocator_constructible 8737: : __is_uses_allocator_predicate 8737: { }; 8737: # 156 "/usr/include/c++/8/bits/uses_allocator.h" 3 8737: template 8737: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 8737: _Args&&... __args) 8737: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 8737: 8737: template 8737: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 8737: _Args&&... __args) 8737: { 8737: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: template 8737: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 8737: _Args&&... __args) 8737: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 8737: 8737: template 8737: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 8737: _Args&&... __args) 8737: { 8737: __uses_allocator_construct_impl(__use_alloc<_Tp, _Alloc, _Args...>(__a), 8737: __ptr, std::forward<_Args>(__args)...); 8737: } 8737: 8737: 8737: } 8737: # 41 "/usr/include/c++/8/tuple" 2 3 8737: # 1 "/usr/include/c++/8/bits/invoke.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/invoke.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/invoke.h" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 52 "/usr/include/c++/8/bits/invoke.h" 3 8737: template::type> 8737: constexpr _Up&& 8737: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 8737: { return static_cast<_Up&&>(__t); } 8737: 8737: template 8737: constexpr _Res 8737: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 8737: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 8737: 8737: template 8737: constexpr _Res 8737: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 8737: _Args&&... __args) 8737: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 8737: 8737: template 8737: constexpr _Res 8737: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 8737: _Args&&... __args) 8737: { 8737: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 8737: } 8737: 8737: template 8737: constexpr _Res 8737: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 8737: { return __invfwd<_Tp>(__t).*__f; } 8737: 8737: template 8737: constexpr _Res 8737: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 8737: { return (*std::forward<_Tp>(__t)).*__f; } 8737: 8737: 8737: template 8737: constexpr typename __invoke_result<_Callable, _Args...>::type 8737: __invoke(_Callable&& __fn, _Args&&... __args) 8737: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 8737: { 8737: using __result = __invoke_result<_Callable, _Args...>; 8737: using __type = typename __result::type; 8737: using __tag = typename __result::__invoke_type; 8737: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/tuple" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class tuple; 8737: 8737: template 8737: struct __is_empty_non_tuple : is_empty<_Tp> { }; 8737: 8737: 8737: template 8737: struct __is_empty_non_tuple> : false_type { }; 8737: 8737: 8737: template 8737: using __empty_not_final 8737: = typename conditional<__is_final(_Tp), false_type, 8737: __is_empty_non_tuple<_Tp>>::type; 8737: 8737: template::value> 8737: struct _Head_base; 8737: 8737: template 8737: struct _Head_base<_Idx, _Head, true> 8737: : public _Head 8737: { 8737: constexpr _Head_base() 8737: : _Head() { } 8737: 8737: constexpr _Head_base(const _Head& __h) 8737: : _Head(__h) { } 8737: 8737: constexpr _Head_base(const _Head_base&) = default; 8737: constexpr _Head_base(_Head_base&&) = default; 8737: 8737: template 8737: constexpr _Head_base(_UHead&& __h) 8737: : _Head(std::forward<_UHead>(__h)) { } 8737: 8737: _Head_base(allocator_arg_t, __uses_alloc0) 8737: : _Head() { } 8737: 8737: template 8737: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8737: : _Head(allocator_arg, *__a._M_a) { } 8737: 8737: template 8737: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8737: : _Head(*__a._M_a) { } 8737: 8737: template 8737: _Head_base(__uses_alloc0, _UHead&& __uhead) 8737: : _Head(std::forward<_UHead>(__uhead)) { } 8737: 8737: template 8737: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8737: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 8737: 8737: template 8737: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8737: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 8737: 8737: static constexpr _Head& 8737: _M_head(_Head_base& __b) noexcept { return __b; } 8737: 8737: static constexpr const _Head& 8737: _M_head(const _Head_base& __b) noexcept { return __b; } 8737: }; 8737: 8737: template 8737: struct _Head_base<_Idx, _Head, false> 8737: { 8737: constexpr _Head_base() 8737: : _M_head_impl() { } 8737: 8737: constexpr _Head_base(const _Head& __h) 8737: : _M_head_impl(__h) { } 8737: 8737: constexpr _Head_base(const _Head_base&) = default; 8737: constexpr _Head_base(_Head_base&&) = default; 8737: 8737: template 8737: constexpr _Head_base(_UHead&& __h) 8737: : _M_head_impl(std::forward<_UHead>(__h)) { } 8737: 8737: _Head_base(allocator_arg_t, __uses_alloc0) 8737: : _M_head_impl() { } 8737: 8737: template 8737: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8737: : _M_head_impl(allocator_arg, *__a._M_a) { } 8737: 8737: template 8737: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8737: : _M_head_impl(*__a._M_a) { } 8737: 8737: template 8737: _Head_base(__uses_alloc0, _UHead&& __uhead) 8737: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 8737: 8737: template 8737: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8737: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 8737: { } 8737: 8737: template 8737: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8737: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 8737: 8737: static constexpr _Head& 8737: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 8737: 8737: static constexpr const _Head& 8737: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 8737: 8737: _Head _M_head_impl; 8737: }; 8737: # 176 "/usr/include/c++/8/tuple" 3 8737: template 8737: struct _Tuple_impl; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _Tuple_impl<_Idx, _Head, _Tail...> 8737: : public _Tuple_impl<_Idx + 1, _Tail...>, 8737: private _Head_base<_Idx, _Head> 8737: { 8737: template friend class _Tuple_impl; 8737: 8737: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 8737: typedef _Head_base<_Idx, _Head> _Base; 8737: 8737: static constexpr _Head& 8737: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8737: 8737: static constexpr const _Head& 8737: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8737: 8737: static constexpr _Inherited& 8737: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 8737: 8737: static constexpr const _Inherited& 8737: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 8737: 8737: constexpr _Tuple_impl() 8737: : _Inherited(), _Base() { } 8737: 8737: explicit 8737: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 8737: : _Inherited(__tail...), _Base(__head) { } 8737: 8737: template::type> 8737: explicit 8737: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 8737: : _Inherited(std::forward<_UTail>(__tail)...), 8737: _Base(std::forward<_UHead>(__head)) { } 8737: 8737: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8737: 8737: constexpr 8737: _Tuple_impl(_Tuple_impl&& __in) 8737: noexcept(__and_, 8737: is_nothrow_move_constructible<_Inherited>>::value) 8737: : _Inherited(std::move(_M_tail(__in))), 8737: _Base(std::forward<_Head>(_M_head(__in))) { } 8737: 8737: template 8737: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 8737: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8737: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8737: 8737: template 8737: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8737: : _Inherited(std::move 8737: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8737: _Base(std::forward<_UHead> 8737: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8737: : _Inherited(__tag, __a), 8737: _Base(__tag, __use_alloc<_Head>(__a)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Head& __head, const _Tail&... __tail) 8737: : _Inherited(__tag, __a, __tail...), 8737: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8737: 8737: template::type> 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: _UHead&& __head, _UTail&&... __tail) 8737: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 8737: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8737: std::forward<_UHead>(__head)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Tuple_impl& __in) 8737: : _Inherited(__tag, __a, _M_tail(__in)), 8737: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: _Tuple_impl&& __in) 8737: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 8737: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8737: std::forward<_Head>(_M_head(__in))) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Tuple_impl<_Idx, _UElements...>& __in) 8737: : _Inherited(__tag, __a, 8737: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8737: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8737: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8737: : _Inherited(__tag, __a, std::move 8737: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8737: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8737: std::forward<_UHead> 8737: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8737: 8737: _Tuple_impl& 8737: operator=(const _Tuple_impl& __in) 8737: { 8737: _M_head(*this) = _M_head(__in); 8737: _M_tail(*this) = _M_tail(__in); 8737: return *this; 8737: } 8737: 8737: _Tuple_impl& 8737: operator=(_Tuple_impl&& __in) 8737: noexcept(__and_, 8737: is_nothrow_move_assignable<_Inherited>>::value) 8737: { 8737: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8737: _M_tail(*this) = std::move(_M_tail(__in)); 8737: return *this; 8737: } 8737: 8737: template 8737: _Tuple_impl& 8737: operator=(const _Tuple_impl<_Idx, _UElements...>& __in) 8737: { 8737: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 8737: _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); 8737: return *this; 8737: } 8737: 8737: template 8737: _Tuple_impl& 8737: operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8737: { 8737: _M_head(*this) = std::forward<_UHead> 8737: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 8737: _M_tail(*this) = std::move 8737: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); 8737: return *this; 8737: } 8737: 8737: protected: 8737: void 8737: _M_swap(_Tuple_impl& __in) 8737: noexcept(__is_nothrow_swappable<_Head>::value 8737: && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) 8737: { 8737: using std::swap; 8737: swap(_M_head(*this), _M_head(__in)); 8737: _Inherited::_M_swap(_M_tail(__in)); 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct _Tuple_impl<_Idx, _Head> 8737: : private _Head_base<_Idx, _Head> 8737: { 8737: template friend class _Tuple_impl; 8737: 8737: typedef _Head_base<_Idx, _Head> _Base; 8737: 8737: static constexpr _Head& 8737: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8737: 8737: static constexpr const _Head& 8737: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8737: 8737: constexpr _Tuple_impl() 8737: : _Base() { } 8737: 8737: explicit 8737: constexpr _Tuple_impl(const _Head& __head) 8737: : _Base(__head) { } 8737: 8737: template 8737: explicit 8737: constexpr _Tuple_impl(_UHead&& __head) 8737: : _Base(std::forward<_UHead>(__head)) { } 8737: 8737: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8737: 8737: constexpr 8737: _Tuple_impl(_Tuple_impl&& __in) 8737: noexcept(is_nothrow_move_constructible<_Head>::value) 8737: : _Base(std::forward<_Head>(_M_head(__in))) { } 8737: 8737: template 8737: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 8737: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8737: 8737: template 8737: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 8737: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8737: { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8737: : _Base(__tag, __use_alloc<_Head>(__a)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Head& __head) 8737: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: _UHead&& __head) 8737: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8737: std::forward<_UHead>(__head)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Tuple_impl& __in) 8737: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: _Tuple_impl&& __in) 8737: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8737: std::forward<_Head>(_M_head(__in))) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Tuple_impl<_Idx, _UHead>& __in) 8737: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8737: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8737: 8737: template 8737: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8737: _Tuple_impl<_Idx, _UHead>&& __in) 8737: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8737: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8737: { } 8737: 8737: _Tuple_impl& 8737: operator=(const _Tuple_impl& __in) 8737: { 8737: _M_head(*this) = _M_head(__in); 8737: return *this; 8737: } 8737: 8737: _Tuple_impl& 8737: operator=(_Tuple_impl&& __in) 8737: noexcept(is_nothrow_move_assignable<_Head>::value) 8737: { 8737: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8737: return *this; 8737: } 8737: 8737: template 8737: _Tuple_impl& 8737: operator=(const _Tuple_impl<_Idx, _UHead>& __in) 8737: { 8737: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 8737: return *this; 8737: } 8737: 8737: template 8737: _Tuple_impl& 8737: operator=(_Tuple_impl<_Idx, _UHead>&& __in) 8737: { 8737: _M_head(*this) 8737: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 8737: return *this; 8737: } 8737: 8737: protected: 8737: void 8737: _M_swap(_Tuple_impl& __in) 8737: noexcept(__is_nothrow_swappable<_Head>::value) 8737: { 8737: using std::swap; 8737: swap(_M_head(*this), _M_head(__in)); 8737: } 8737: }; 8737: 8737: 8737: 8737: template 8737: struct _TC 8737: { 8737: template 8737: static constexpr bool _ConstructibleTuple() 8737: { 8737: return __and_...>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyConvertibleTuple() 8737: { 8737: return __and_...>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _MoveConstructibleTuple() 8737: { 8737: return __and_...>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8737: { 8737: return __and_...>::value; 8737: } 8737: 8737: template 8737: static constexpr bool _NonNestedTuple() 8737: { 8737: return __and_<__not_, 8737: typename remove_cv< 8737: typename remove_reference<_SrcTuple>::type 8737: >::type>>, 8737: __not_>, 8737: __not_> 8737: >::value; 8737: } 8737: template 8737: static constexpr bool _NotSameTuple() 8737: { 8737: return __not_, 8737: typename remove_const< 8737: typename remove_reference<_UElements...>::type 8737: >::type>>::value; 8737: } 8737: }; 8737: 8737: template 8737: struct _TC 8737: { 8737: template 8737: static constexpr bool _ConstructibleTuple() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyConvertibleTuple() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _MoveConstructibleTuple() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8737: { 8737: return false; 8737: } 8737: 8737: template 8737: static constexpr bool _NonNestedTuple() 8737: { 8737: return true; 8737: } 8737: template 8737: static constexpr bool _NotSameTuple() 8737: { 8737: return true; 8737: } 8737: }; 8737: 8737: 8737: template 8737: class tuple : public _Tuple_impl<0, _Elements...> 8737: { 8737: typedef _Tuple_impl<0, _Elements...> _Inherited; 8737: 8737: 8737: 8737: template 8737: struct _TC2 8737: { 8737: static constexpr bool _DefaultConstructibleTuple() 8737: { 8737: return __and_...>::value; 8737: } 8737: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 8737: { 8737: return __and_<__is_implicitly_default_constructible<_Elements>...> 8737: ::value; 8737: } 8737: }; 8737: 8737: public: 8737: template:: 8737: _ImplicitlyDefaultConstructibleTuple(), 8737: bool>::type = true> 8737: constexpr tuple() 8737: : _Inherited() { } 8737: 8737: template:: 8737: _DefaultConstructibleTuple() 8737: && 8737: !_TC2<_Dummy>:: 8737: _ImplicitlyDefaultConstructibleTuple(), 8737: bool>::type = false> 8737: explicit constexpr tuple() 8737: : _Inherited() { } 8737: 8737: 8737: 8737: template using _TCC = 8737: _TC::value, 8737: _Elements...>; 8737: 8737: template::template 8737: _ConstructibleTuple<_Elements...>() 8737: && _TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_Elements...>() 8737: && (sizeof...(_Elements) >= 1), 8737: bool>::type=true> 8737: constexpr tuple(const _Elements&... __elements) 8737: : _Inherited(__elements...) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_Elements...>() 8737: && !_TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_Elements...>() 8737: && (sizeof...(_Elements) >= 1), 8737: bool>::type=false> 8737: explicit constexpr tuple(const _Elements&... __elements) 8737: : _Inherited(__elements...) { } 8737: 8737: 8737: 8737: template using _TMC = 8737: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8737: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 8737: template _NotSameTuple<_UElements...>()), 8737: _Elements...>; 8737: 8737: 8737: 8737: template using _TMCT = 8737: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8737: && !is_same, 8737: tuple<_UElements...>>::value, 8737: _Elements...>; 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && _TMC<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8737: && (sizeof...(_Elements) >= 1), 8737: bool>::type=true> 8737: constexpr tuple(_UElements&&... __elements) 8737: : _Inherited(std::forward<_UElements>(__elements)...) { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && !_TMC<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8737: && (sizeof...(_Elements) >= 1), 8737: bool>::type=false> 8737: explicit constexpr tuple(_UElements&&... __elements) 8737: : _Inherited(std::forward<_UElements>(__elements)...) { } 8737: 8737: constexpr tuple(const tuple&) = default; 8737: 8737: constexpr tuple(tuple&&) = default; 8737: 8737: 8737: 8737: template using _TNTC = 8737: _TC::value && sizeof...(_Elements) == 1, 8737: _Elements...>; 8737: 8737: template::template 8737: _ConstructibleTuple<_UElements...>() 8737: && _TMCT<_UElements...>::template 8737: _ImplicitlyConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&>(), 8737: bool>::type=true> 8737: constexpr tuple(const tuple<_UElements...>& __in) 8737: : _Inherited(static_cast&>(__in)) 8737: { } 8737: 8737: template::template 8737: _ConstructibleTuple<_UElements...>() 8737: && !_TMCT<_UElements...>::template 8737: _ImplicitlyConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&>(), 8737: bool>::type=false> 8737: explicit constexpr tuple(const tuple<_UElements...>& __in) 8737: : _Inherited(static_cast&>(__in)) 8737: { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && _TMCT<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&&>(), 8737: bool>::type=true> 8737: constexpr tuple(tuple<_UElements...>&& __in) 8737: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && !_TMCT<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&&>(), 8737: bool>::type=false> 8737: explicit constexpr tuple(tuple<_UElements...>&& __in) 8737: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8737: 8737: 8737: 8737: template 8737: tuple(allocator_arg_t __tag, const _Alloc& __a) 8737: : _Inherited(__tag, __a) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_Elements...>() 8737: && _TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_Elements...>(), 8737: bool>::type=true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Elements&... __elements) 8737: : _Inherited(__tag, __a, __elements...) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_Elements...>() 8737: && !_TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_Elements...>(), 8737: bool>::type=false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const _Elements&... __elements) 8737: : _Inherited(__tag, __a, __elements...) { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && _TMC<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8737: bool>::type=true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: _UElements&&... __elements) 8737: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8737: { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && !_TMC<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8737: bool>::type=false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: _UElements&&... __elements) 8737: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8737: { } 8737: 8737: template 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8737: : _Inherited(__tag, __a, static_cast(__in)) { } 8737: 8737: template 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8737: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_UElements...>() 8737: && _TMCT<_UElements...>::template 8737: _ImplicitlyConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&&>(), 8737: bool>::type=true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const tuple<_UElements...>& __in) 8737: : _Inherited(__tag, __a, 8737: static_cast&>(__in)) 8737: { } 8737: 8737: template::template 8737: _ConstructibleTuple<_UElements...>() 8737: && !_TMCT<_UElements...>::template 8737: _ImplicitlyConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&&>(), 8737: bool>::type=false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const tuple<_UElements...>& __in) 8737: : _Inherited(__tag, __a, 8737: static_cast&>(__in)) 8737: { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && _TMCT<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&&>(), 8737: bool>::type=true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: tuple<_UElements...>&& __in) 8737: : _Inherited(__tag, __a, 8737: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8737: { } 8737: 8737: template::template 8737: _MoveConstructibleTuple<_UElements...>() 8737: && !_TMCT<_UElements...>::template 8737: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8737: && _TNTC<_Dummy>::template 8737: _NonNestedTuple&&>(), 8737: bool>::type=false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: tuple<_UElements...>&& __in) 8737: : _Inherited(__tag, __a, 8737: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8737: { } 8737: 8737: tuple& 8737: operator=(const tuple& __in) 8737: { 8737: static_cast<_Inherited&>(*this) = __in; 8737: return *this; 8737: } 8737: 8737: tuple& 8737: operator=(tuple&& __in) 8737: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8737: { 8737: static_cast<_Inherited&>(*this) = std::move(__in); 8737: return *this; 8737: } 8737: 8737: template 8737: typename 8737: enable_if::type 8737: operator=(const tuple<_UElements...>& __in) 8737: { 8737: static_cast<_Inherited&>(*this) = __in; 8737: return *this; 8737: } 8737: 8737: template 8737: typename 8737: enable_if::type 8737: operator=(tuple<_UElements...>&& __in) 8737: { 8737: static_cast<_Inherited&>(*this) = std::move(__in); 8737: return *this; 8737: } 8737: 8737: void 8737: swap(tuple& __in) 8737: noexcept(noexcept(__in._M_swap(__in))) 8737: { _Inherited::_M_swap(__in); } 8737: }; 8737: # 889 "/usr/include/c++/8/tuple" 3 8737: template<> 8737: class tuple<> 8737: { 8737: public: 8737: void swap(tuple&) noexcept { } 8737: 8737: 8737: tuple() = default; 8737: 8737: template 8737: tuple(allocator_arg_t, const _Alloc&) { } 8737: template 8737: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 8737: }; 8737: 8737: 8737: 8737: template 8737: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 8737: { 8737: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 8737: 8737: public: 8737: template , 8737: __is_implicitly_default_constructible<_U2>> 8737: ::value, bool>::type = true> 8737: 8737: constexpr tuple() 8737: : _Inherited() { } 8737: 8737: template , 8737: is_default_constructible<_U2>, 8737: __not_< 8737: __and_<__is_implicitly_default_constructible<_U1>, 8737: __is_implicitly_default_constructible<_U2>>>> 8737: ::value, bool>::type = false> 8737: 8737: explicit constexpr tuple() 8737: : _Inherited() { } 8737: 8737: 8737: 8737: template using _TCC = 8737: _TC::value, _T1, _T2>; 8737: 8737: template::template 8737: _ConstructibleTuple<_T1, _T2>() 8737: && _TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8737: bool>::type = true> 8737: constexpr tuple(const _T1& __a1, const _T2& __a2) 8737: : _Inherited(__a1, __a2) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_T1, _T2>() 8737: && !_TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8737: bool>::type = false> 8737: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 8737: : _Inherited(__a1, __a2) { } 8737: 8737: 8737: 8737: using _TMC = _TC; 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8737: && !is_same::type, 8737: allocator_arg_t>::value, 8737: bool>::type = true> 8737: constexpr tuple(_U1&& __a1, _U2&& __a2) 8737: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8737: && !is_same::type, 8737: allocator_arg_t>::value, 8737: bool>::type = false> 8737: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 8737: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8737: 8737: constexpr tuple(const tuple&) = default; 8737: 8737: constexpr tuple(tuple&&) = default; 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: constexpr tuple(const tuple<_U1, _U2>& __in) 8737: : _Inherited(static_cast&>(__in)) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 8737: : _Inherited(static_cast&>(__in)) { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: constexpr tuple(tuple<_U1, _U2>&& __in) 8737: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 8737: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: constexpr tuple(const pair<_U1, _U2>& __in) 8737: : _Inherited(__in.first, __in.second) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit constexpr tuple(const pair<_U1, _U2>& __in) 8737: : _Inherited(__in.first, __in.second) { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: constexpr tuple(pair<_U1, _U2>&& __in) 8737: : _Inherited(std::forward<_U1>(__in.first), 8737: std::forward<_U2>(__in.second)) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit constexpr tuple(pair<_U1, _U2>&& __in) 8737: : _Inherited(std::forward<_U1>(__in.first), 8737: std::forward<_U2>(__in.second)) { } 8737: 8737: 8737: 8737: template 8737: tuple(allocator_arg_t __tag, const _Alloc& __a) 8737: : _Inherited(__tag, __a) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_T1, _T2>() 8737: && _TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8737: bool>::type=true> 8737: 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const _T1& __a1, const _T2& __a2) 8737: : _Inherited(__tag, __a, __a1, __a2) { } 8737: 8737: template::template 8737: _ConstructibleTuple<_T1, _T2>() 8737: && !_TCC<_Dummy>::template 8737: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8737: bool>::type=false> 8737: 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const _T1& __a1, const _T2& __a2) 8737: : _Inherited(__tag, __a, __a1, __a2) { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 8737: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8737: std::forward<_U2>(__a2)) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: _U1&& __a1, _U2&& __a2) 8737: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8737: std::forward<_U2>(__a2)) { } 8737: 8737: template 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8737: : _Inherited(__tag, __a, static_cast(__in)) { } 8737: 8737: template 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8737: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const tuple<_U1, _U2>& __in) 8737: : _Inherited(__tag, __a, 8737: static_cast&>(__in)) 8737: { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const tuple<_U1, _U2>& __in) 8737: : _Inherited(__tag, __a, 8737: static_cast&>(__in)) 8737: { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 8737: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8737: { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: tuple<_U1, _U2>&& __in) 8737: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8737: { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const pair<_U1, _U2>& __in) 8737: : _Inherited(__tag, __a, __in.first, __in.second) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: const pair<_U1, _U2>& __in) 8737: : _Inherited(__tag, __a, __in.first, __in.second) { } 8737: 8737: template() 8737: && _TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = true> 8737: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 8737: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8737: std::forward<_U2>(__in.second)) { } 8737: 8737: template() 8737: && !_TMC::template 8737: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8737: bool>::type = false> 8737: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8737: pair<_U1, _U2>&& __in) 8737: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8737: std::forward<_U2>(__in.second)) { } 8737: 8737: tuple& 8737: operator=(const tuple& __in) 8737: { 8737: static_cast<_Inherited&>(*this) = __in; 8737: return *this; 8737: } 8737: 8737: tuple& 8737: operator=(tuple&& __in) 8737: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8737: { 8737: static_cast<_Inherited&>(*this) = std::move(__in); 8737: return *this; 8737: } 8737: 8737: template 8737: tuple& 8737: operator=(const tuple<_U1, _U2>& __in) 8737: { 8737: static_cast<_Inherited&>(*this) = __in; 8737: return *this; 8737: } 8737: 8737: template 8737: tuple& 8737: operator=(tuple<_U1, _U2>&& __in) 8737: { 8737: static_cast<_Inherited&>(*this) = std::move(__in); 8737: return *this; 8737: } 8737: 8737: template 8737: tuple& 8737: operator=(const pair<_U1, _U2>& __in) 8737: { 8737: this->_M_head(*this) = __in.first; 8737: this->_M_tail(*this)._M_head(*this) = __in.second; 8737: return *this; 8737: } 8737: 8737: template 8737: tuple& 8737: operator=(pair<_U1, _U2>&& __in) 8737: { 8737: this->_M_head(*this) = std::forward<_U1>(__in.first); 8737: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 8737: return *this; 8737: } 8737: 8737: void 8737: swap(tuple& __in) 8737: noexcept(noexcept(__in._M_swap(__in))) 8737: { _Inherited::_M_swap(__in); } 8737: }; 8737: 8737: 8737: 8737: template 8737: struct tuple_size> 8737: : public integral_constant { }; 8737: # 1278 "/usr/include/c++/8/tuple" 3 8737: template 8737: struct tuple_element<__i, tuple<_Head, _Tail...> > 8737: : tuple_element<__i - 1, tuple<_Tail...> > { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct tuple_element<0, tuple<_Head, _Tail...> > 8737: { 8737: typedef _Head type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct tuple_element<__i, tuple<>> 8737: { 8737: static_assert(__i < tuple_size>::value, 8737: "tuple index is in range"); 8737: }; 8737: 8737: template 8737: constexpr _Head& 8737: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8737: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8737: 8737: template 8737: constexpr const _Head& 8737: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8737: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8737: 8737: 8737: template 8737: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 8737: get(tuple<_Elements...>& __t) noexcept 8737: { return std::__get_helper<__i>(__t); } 8737: 8737: 8737: template 8737: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 8737: get(const tuple<_Elements...>& __t) noexcept 8737: { return std::__get_helper<__i>(__t); } 8737: 8737: 8737: template 8737: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 8737: get(tuple<_Elements...>&& __t) noexcept 8737: { 8737: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8737: return std::forward<__element_type&&>(std::get<__i>(__t)); 8737: } 8737: 8737: 8737: template 8737: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 8737: get(const tuple<_Elements...>&& __t) noexcept 8737: { 8737: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8737: return std::forward(std::get<__i>(__t)); 8737: } 8737: # 1382 "/usr/include/c++/8/tuple" 3 8737: template 8737: struct __tuple_compare 8737: { 8737: static constexpr bool 8737: __eq(const _Tp& __t, const _Up& __u) 8737: { 8737: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 8737: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 8737: } 8737: 8737: static constexpr bool 8737: __less(const _Tp& __t, const _Up& __u) 8737: { 8737: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 8737: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 8737: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 8737: } 8737: }; 8737: 8737: template 8737: struct __tuple_compare<_Tp, _Up, __size, __size> 8737: { 8737: static constexpr bool 8737: __eq(const _Tp&, const _Up&) { return true; } 8737: 8737: static constexpr bool 8737: __less(const _Tp&, const _Up&) { return false; } 8737: }; 8737: 8737: template 8737: constexpr bool 8737: operator==(const tuple<_TElements...>& __t, 8737: const tuple<_UElements...>& __u) 8737: { 8737: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8737: "tuple objects can only be compared if they have equal sizes."); 8737: using __compare = __tuple_compare, 8737: tuple<_UElements...>, 8737: 0, sizeof...(_TElements)>; 8737: return __compare::__eq(__t, __u); 8737: } 8737: 8737: template 8737: constexpr bool 8737: operator<(const tuple<_TElements...>& __t, 8737: const tuple<_UElements...>& __u) 8737: { 8737: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8737: "tuple objects can only be compared if they have equal sizes."); 8737: using __compare = __tuple_compare, 8737: tuple<_UElements...>, 8737: 0, sizeof...(_TElements)>; 8737: return __compare::__less(__t, __u); 8737: } 8737: 8737: template 8737: constexpr bool 8737: operator!=(const tuple<_TElements...>& __t, 8737: const tuple<_UElements...>& __u) 8737: { return !(__t == __u); } 8737: 8737: template 8737: constexpr bool 8737: operator>(const tuple<_TElements...>& __t, 8737: const tuple<_UElements...>& __u) 8737: { return __u < __t; } 8737: 8737: template 8737: constexpr bool 8737: operator<=(const tuple<_TElements...>& __t, 8737: const tuple<_UElements...>& __u) 8737: { return !(__u < __t); } 8737: 8737: template 8737: constexpr bool 8737: operator>=(const tuple<_TElements...>& __t, 8737: const tuple<_UElements...>& __u) 8737: { return !(__t < __u); } 8737: 8737: 8737: template 8737: constexpr tuple::__type...> 8737: make_tuple(_Elements&&... __args) 8737: { 8737: typedef tuple::__type...> 8737: __result_type; 8737: return __result_type(std::forward<_Elements>(__args)...); 8737: } 8737: 8737: 8737: 8737: template 8737: constexpr tuple<_Elements&&...> 8737: forward_as_tuple(_Elements&&... __args) noexcept 8737: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 8737: 8737: template 8737: struct __make_tuple_impl; 8737: 8737: template 8737: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 8737: : __make_tuple_impl<_Idx + 1, 8737: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 8737: _Tuple, _Nm> 8737: { }; 8737: 8737: template 8737: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 8737: { 8737: typedef tuple<_Tp...> __type; 8737: }; 8737: 8737: template 8737: struct __do_make_tuple 8737: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 8737: { }; 8737: 8737: 8737: template 8737: struct __make_tuple 8737: : public __do_make_tuple::type>::type> 8737: { }; 8737: 8737: 8737: template 8737: struct __combine_tuples; 8737: 8737: template<> 8737: struct __combine_tuples<> 8737: { 8737: typedef tuple<> __type; 8737: }; 8737: 8737: template 8737: struct __combine_tuples> 8737: { 8737: typedef tuple<_Ts...> __type; 8737: }; 8737: 8737: template 8737: struct __combine_tuples, tuple<_T2s...>, _Rem...> 8737: { 8737: typedef typename __combine_tuples, 8737: _Rem...>::__type __type; 8737: }; 8737: 8737: 8737: template 8737: struct __tuple_cat_result 8737: { 8737: typedef typename __combine_tuples 8737: ::__type...>::__type __type; 8737: }; 8737: 8737: 8737: 8737: template 8737: struct __make_1st_indices; 8737: 8737: template<> 8737: struct __make_1st_indices<> 8737: { 8737: typedef std::_Index_tuple<> __type; 8737: }; 8737: 8737: template 8737: struct __make_1st_indices<_Tp, _Tpls...> 8737: { 8737: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct __tuple_concater; 8737: 8737: template 8737: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 8737: { 8737: template 8737: static constexpr _Ret 8737: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 8737: { 8737: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8737: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 8737: return __next::_S_do(std::forward<_Tpls>(__tps)..., 8737: std::forward<_Us>(__us)..., 8737: std::get<_Is>(std::forward<_Tp>(__tp))...); 8737: } 8737: }; 8737: 8737: template 8737: struct __tuple_concater<_Ret, std::_Index_tuple<>> 8737: { 8737: template 8737: static constexpr _Ret 8737: _S_do(_Us&&... __us) 8737: { 8737: return _Ret(std::forward<_Us>(__us)...); 8737: } 8737: }; 8737: 8737: 8737: template...>::value>::type> 8737: constexpr auto 8737: tuple_cat(_Tpls&&... __tpls) 8737: -> typename __tuple_cat_result<_Tpls...>::__type 8737: { 8737: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 8737: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8737: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 8737: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: constexpr tuple<_Elements&...> 8737: tie(_Elements&... __args) noexcept 8737: { return tuple<_Elements&...>(__args...); } 8737: 8737: 8737: template 8737: inline 8737: 8737: 8737: typename enable_if<__and_<__is_swappable<_Elements>...>::value 8737: >::type 8737: 8737: 8737: 8737: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: template 8737: typename enable_if...>::value>::type 8737: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct _Swallow_assign 8737: { 8737: template 8737: const _Swallow_assign& 8737: operator=(const _Tp&) const 8737: { return *this; } 8737: }; 8737: 8737: 8737: 8737: constexpr _Swallow_assign ignore{}; 8737: 8737: 8737: template 8737: struct uses_allocator, _Alloc> : true_type { }; 8737: 8737: 8737: template 8737: template 8737: inline 8737: pair<_T1, _T2>:: 8737: pair(piecewise_construct_t, 8737: tuple<_Args1...> __first, tuple<_Args2...> __second) 8737: : pair(__first, __second, 8737: typename _Build_index_tuple::__type(), 8737: typename _Build_index_tuple::__type()) 8737: { } 8737: 8737: template 8737: template 8737: inline 8737: pair<_T1, _T2>:: 8737: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 8737: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 8737: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 8737: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 8737: { } 8737: # 1711 "/usr/include/c++/8/tuple" 3 8737: 8737: } 8737: # 64 "/usr/include/c++/8/bits/stl_map.h" 2 3 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: class multimap; 8737: # 98 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template , 8737: typename _Alloc = std::allocator > > 8737: class map 8737: { 8737: public: 8737: typedef _Key key_type; 8737: typedef _Tp mapped_type; 8737: typedef std::pair value_type; 8737: typedef _Compare key_compare; 8737: typedef _Alloc allocator_type; 8737: 8737: private: 8737: # 126 "/usr/include/c++/8/bits/stl_map.h" 3 8737: public: 8737: class value_compare 8737: : public std::binary_function 8737: { 8737: friend class map<_Key, _Tp, _Compare, _Alloc>; 8737: protected: 8737: _Compare comp; 8737: 8737: value_compare(_Compare __c) 8737: : comp(__c) { } 8737: 8737: public: 8737: bool operator()(const value_type& __x, const value_type& __y) const 8737: { return comp(__x.first, __y.first); } 8737: }; 8737: 8737: private: 8737: 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind::other _Pair_alloc_type; 8737: 8737: typedef _Rb_tree, 8737: key_compare, _Pair_alloc_type> _Rep_type; 8737: 8737: 8737: _Rep_type _M_t; 8737: 8737: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8737: 8737: public: 8737: 8737: 8737: typedef typename _Alloc_traits::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: typedef typename _Rep_type::iterator iterator; 8737: typedef typename _Rep_type::const_iterator const_iterator; 8737: typedef typename _Rep_type::size_type size_type; 8737: typedef typename _Rep_type::difference_type difference_type; 8737: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8737: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8737: # 183 "/usr/include/c++/8/bits/stl_map.h" 3 8737: map() = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: map(const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8737: # 205 "/usr/include/c++/8/bits/stl_map.h" 3 8737: map(const map&) = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: map(map&&) = default; 8737: # 226 "/usr/include/c++/8/bits/stl_map.h" 3 8737: map(initializer_list __l, 8737: const _Compare& __comp = _Compare(), 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8737: 8737: 8737: explicit 8737: map(const allocator_type& __a) 8737: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8737: 8737: 8737: map(const map& __m, const allocator_type& __a) 8737: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8737: 8737: 8737: map(map&& __m, const allocator_type& __a) 8737: noexcept(is_nothrow_copy_constructible<_Compare>::value 8737: && _Alloc_traits::_S_always_equal()) 8737: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8737: 8737: 8737: map(initializer_list __l, const allocator_type& __a) 8737: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8737: 8737: 8737: template 8737: map(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a) 8737: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__first, __last); } 8737: # 270 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: map(_InputIterator __first, _InputIterator __last) 8737: : _M_t() 8737: { _M_t._M_insert_unique(__first, __last); } 8737: # 287 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: map(_InputIterator __first, _InputIterator __last, 8737: const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__first, __last); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ~map() = default; 8737: # 316 "/usr/include/c++/8/bits/stl_map.h" 3 8737: map& 8737: operator=(const map&) = default; 8737: 8737: 8737: map& 8737: operator=(map&&) = default; 8737: # 334 "/usr/include/c++/8/bits/stl_map.h" 3 8737: map& 8737: operator=(initializer_list __l) 8737: { 8737: _M_t._M_assign_unique(__l.begin(), __l.end()); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_t.get_allocator()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return _M_t.empty(); } 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_t.size(); } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _M_t.max_size(); } 8737: # 489 "/usr/include/c++/8/bits/stl_map.h" 3 8737: mapped_type& 8737: operator[](const key_type& __k) 8737: { 8737: 8737: 8737: 8737: iterator __i = lower_bound(__k); 8737: 8737: if (__i == end() || key_comp()(__k, (*__i).first)) 8737: 8737: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8737: std::tuple(__k), 8737: std::tuple<>()); 8737: 8737: 8737: 8737: return (*__i).second; 8737: } 8737: 8737: 8737: mapped_type& 8737: operator[](key_type&& __k) 8737: { 8737: 8737: 8737: 8737: iterator __i = lower_bound(__k); 8737: 8737: if (__i == end() || key_comp()(__k, (*__i).first)) 8737: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8737: std::forward_as_tuple(std::move(__k)), 8737: std::tuple<>()); 8737: return (*__i).second; 8737: } 8737: # 534 "/usr/include/c++/8/bits/stl_map.h" 3 8737: mapped_type& 8737: at(const key_type& __k) 8737: { 8737: iterator __i = lower_bound(__k); 8737: if (__i == end() || key_comp()(__k, (*__i).first)) 8737: __throw_out_of_range(("map::at")); 8737: return (*__i).second; 8737: } 8737: 8737: const mapped_type& 8737: at(const key_type& __k) const 8737: { 8737: const_iterator __i = lower_bound(__k); 8737: if (__i == end() || key_comp()(__k, (*__i).first)) 8737: __throw_out_of_range(("map::at")); 8737: return (*__i).second; 8737: } 8737: # 572 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: std::pair 8737: emplace(_Args&&... __args) 8737: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8737: # 602 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: iterator 8737: emplace_hint(const_iterator __pos, _Args&&... __args) 8737: { 8737: return _M_t._M_emplace_hint_unique(__pos, 8737: std::forward<_Args>(__args)...); 8737: } 8737: # 800 "/usr/include/c++/8/bits/stl_map.h" 3 8737: std::pair 8737: insert(const value_type& __x) 8737: { return _M_t._M_insert_unique(__x); } 8737: 8737: 8737: 8737: 8737: std::pair 8737: insert(value_type&& __x) 8737: { return _M_t._M_insert_unique(std::move(__x)); } 8737: 8737: template::value>::type> 8737: std::pair 8737: insert(_Pair&& __x) 8737: { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); } 8737: # 828 "/usr/include/c++/8/bits/stl_map.h" 3 8737: void 8737: insert(std::initializer_list __list) 8737: { insert(__list.begin(), __list.end()); } 8737: # 857 "/usr/include/c++/8/bits/stl_map.h" 3 8737: iterator 8737: 8737: insert(const_iterator __position, const value_type& __x) 8737: 8737: 8737: 8737: { return _M_t._M_insert_unique_(__position, __x); } 8737: 8737: 8737: 8737: 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8737: 8737: template::value>::type> 8737: iterator 8737: insert(const_iterator __position, _Pair&& __x) 8737: { return _M_t._M_insert_unique_(__position, 8737: std::forward<_Pair>(__x)); } 8737: # 890 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: void 8737: insert(_InputIterator __first, _InputIterator __last) 8737: { _M_t._M_insert_unique(__first, __last); } 8737: # 1030 "/usr/include/c++/8/bits/stl_map.h" 3 8737: iterator 8737: erase(const_iterator __position) 8737: { return _M_t.erase(__position); } 8737: 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(iterator __position) 8737: { return _M_t.erase(__position); } 8737: # 1067 "/usr/include/c++/8/bits/stl_map.h" 3 8737: size_type 8737: erase(const key_type& __x) 8737: { return _M_t.erase(__x); } 8737: # 1087 "/usr/include/c++/8/bits/stl_map.h" 3 8737: iterator 8737: erase(const_iterator __first, const_iterator __last) 8737: { return _M_t.erase(__first, __last); } 8737: # 1121 "/usr/include/c++/8/bits/stl_map.h" 3 8737: void 8737: swap(map& __x) 8737: noexcept(__is_nothrow_swappable<_Compare>::value) 8737: { _M_t.swap(__x._M_t); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: clear() noexcept 8737: { _M_t.clear(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: key_compare 8737: key_comp() const 8737: { return _M_t.key_comp(); } 8737: 8737: 8737: 8737: 8737: 8737: value_compare 8737: value_comp() const 8737: { return value_compare(_M_t.key_comp()); } 8737: # 1168 "/usr/include/c++/8/bits/stl_map.h" 3 8737: iterator 8737: find(const key_type& __x) 8737: { return _M_t.find(__x); } 8737: # 1193 "/usr/include/c++/8/bits/stl_map.h" 3 8737: const_iterator 8737: find(const key_type& __x) const 8737: { return _M_t.find(__x); } 8737: # 1214 "/usr/include/c++/8/bits/stl_map.h" 3 8737: size_type 8737: count(const key_type& __x) const 8737: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8737: # 1238 "/usr/include/c++/8/bits/stl_map.h" 3 8737: iterator 8737: lower_bound(const key_type& __x) 8737: { return _M_t.lower_bound(__x); } 8737: # 1263 "/usr/include/c++/8/bits/stl_map.h" 3 8737: const_iterator 8737: lower_bound(const key_type& __x) const 8737: { return _M_t.lower_bound(__x); } 8737: # 1283 "/usr/include/c++/8/bits/stl_map.h" 3 8737: iterator 8737: upper_bound(const key_type& __x) 8737: { return _M_t.upper_bound(__x); } 8737: # 1303 "/usr/include/c++/8/bits/stl_map.h" 3 8737: const_iterator 8737: upper_bound(const key_type& __x) const 8737: { return _M_t.upper_bound(__x); } 8737: # 1332 "/usr/include/c++/8/bits/stl_map.h" 3 8737: std::pair 8737: equal_range(const key_type& __x) 8737: { return _M_t.equal_range(__x); } 8737: # 1361 "/usr/include/c++/8/bits/stl_map.h" 3 8737: std::pair 8737: equal_range(const key_type& __x) const 8737: { return _M_t.equal_range(__x); } 8737: # 1378 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: friend bool 8737: operator==(const map<_K1, _T1, _C1, _A1>&, 8737: const map<_K1, _T1, _C1, _A1>&); 8737: 8737: template 8737: friend bool 8737: operator<(const map<_K1, _T1, _C1, _A1>&, 8737: const map<_K1, _T1, _C1, _A1>&); 8737: }; 8737: # 1433 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: inline bool 8737: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return __x._M_t == __y._M_t; } 8737: # 1450 "/usr/include/c++/8/bits/stl_map.h" 3 8737: template 8737: inline bool 8737: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return __x._M_t < __y._M_t; } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 8737: map<_Key, _Tp, _Compare, _Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: # 1515 "/usr/include/c++/8/bits/stl_map.h" 3 8737: 8737: } 8737: # 62 "/usr/include/c++/8/map" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_multimap.h" 1 3 8737: # 64 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: class map; 8737: # 96 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template , 8737: typename _Alloc = std::allocator > > 8737: class multimap 8737: { 8737: public: 8737: typedef _Key key_type; 8737: typedef _Tp mapped_type; 8737: typedef std::pair value_type; 8737: typedef _Compare key_compare; 8737: typedef _Alloc allocator_type; 8737: 8737: private: 8737: # 125 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: public: 8737: class value_compare 8737: : public std::binary_function 8737: { 8737: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 8737: protected: 8737: _Compare comp; 8737: 8737: value_compare(_Compare __c) 8737: : comp(__c) { } 8737: 8737: public: 8737: bool operator()(const value_type& __x, const value_type& __y) const 8737: { return comp(__x.first, __y.first); } 8737: }; 8737: 8737: private: 8737: 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind::other _Pair_alloc_type; 8737: 8737: typedef _Rb_tree, 8737: key_compare, _Pair_alloc_type> _Rep_type; 8737: 8737: _Rep_type _M_t; 8737: 8737: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8737: 8737: public: 8737: 8737: 8737: typedef typename _Alloc_traits::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: typedef typename _Rep_type::iterator iterator; 8737: typedef typename _Rep_type::const_iterator const_iterator; 8737: typedef typename _Rep_type::size_type size_type; 8737: typedef typename _Rep_type::difference_type difference_type; 8737: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8737: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8737: # 180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: multimap() = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: multimap(const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8737: # 202 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: multimap(const multimap&) = default; 8737: # 211 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: multimap(multimap&&) = default; 8737: # 223 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: multimap(initializer_list __l, 8737: const _Compare& __comp = _Compare(), 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8737: 8737: 8737: explicit 8737: multimap(const allocator_type& __a) 8737: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8737: 8737: 8737: multimap(const multimap& __m, const allocator_type& __a) 8737: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8737: 8737: 8737: multimap(multimap&& __m, const allocator_type& __a) 8737: noexcept(is_nothrow_copy_constructible<_Compare>::value 8737: && _Alloc_traits::_S_always_equal()) 8737: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8737: 8737: 8737: multimap(initializer_list __l, const allocator_type& __a) 8737: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8737: 8737: 8737: template 8737: multimap(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a) 8737: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__first, __last); } 8737: # 266 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: multimap(_InputIterator __first, _InputIterator __last) 8737: : _M_t() 8737: { _M_t._M_insert_equal(__first, __last); } 8737: # 282 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: multimap(_InputIterator __first, _InputIterator __last, 8737: const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Pair_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__first, __last); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: ~multimap() = default; 8737: # 311 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: multimap& 8737: operator=(const multimap&) = default; 8737: 8737: 8737: multimap& 8737: operator=(multimap&&) = default; 8737: # 329 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: multimap& 8737: operator=(initializer_list __l) 8737: { 8737: _M_t._M_assign_equal(__l.begin(), __l.end()); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_t.get_allocator()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return _M_t.empty(); } 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_t.size(); } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _M_t.max_size(); } 8737: # 487 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: iterator 8737: emplace(_Args&&... __args) 8737: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8737: # 514 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: iterator 8737: emplace_hint(const_iterator __pos, _Args&&... __args) 8737: { 8737: return _M_t._M_emplace_hint_equal(__pos, 8737: std::forward<_Args>(__args)...); 8737: } 8737: # 536 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: insert(const value_type& __x) 8737: { return _M_t._M_insert_equal(__x); } 8737: 8737: 8737: 8737: 8737: iterator 8737: insert(value_type&& __x) 8737: { return _M_t._M_insert_equal(std::move(__x)); } 8737: 8737: template::value>::type> 8737: iterator 8737: insert(_Pair&& __x) 8737: { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); } 8737: # 577 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: 8737: insert(const_iterator __position, const value_type& __x) 8737: 8737: 8737: 8737: { return _M_t._M_insert_equal_(__position, __x); } 8737: 8737: 8737: 8737: 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8737: 8737: template::value>::type> 8737: iterator 8737: insert(const_iterator __position, _Pair&& __x) 8737: { return _M_t._M_insert_equal_(__position, 8737: std::forward<_Pair>(__x)); } 8737: # 611 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: void 8737: insert(_InputIterator __first, _InputIterator __last) 8737: { _M_t._M_insert_equal(__first, __last); } 8737: # 624 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: void 8737: insert(initializer_list __l) 8737: { this->insert(__l.begin(), __l.end()); } 8737: # 701 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: erase(const_iterator __position) 8737: { return _M_t.erase(__position); } 8737: 8737: 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(iterator __position) 8737: { return _M_t.erase(__position); } 8737: # 738 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: size_type 8737: erase(const key_type& __x) 8737: { return _M_t.erase(__x); } 8737: # 759 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: erase(const_iterator __first, const_iterator __last) 8737: { return _M_t.erase(__first, __last); } 8737: # 796 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: void 8737: swap(multimap& __x) 8737: noexcept(__is_nothrow_swappable<_Compare>::value) 8737: { _M_t.swap(__x._M_t); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: clear() noexcept 8737: { _M_t.clear(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: key_compare 8737: key_comp() const 8737: { return _M_t.key_comp(); } 8737: 8737: 8737: 8737: 8737: 8737: value_compare 8737: value_comp() const 8737: { return value_compare(_M_t.key_comp()); } 8737: # 842 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: find(const key_type& __x) 8737: { return _M_t.find(__x); } 8737: # 866 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: const_iterator 8737: find(const key_type& __x) const 8737: { return _M_t.find(__x); } 8737: # 884 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: size_type 8737: count(const key_type& __x) const 8737: { return _M_t.count(__x); } 8737: # 908 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: lower_bound(const key_type& __x) 8737: { return _M_t.lower_bound(__x); } 8737: # 933 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: const_iterator 8737: lower_bound(const key_type& __x) const 8737: { return _M_t.lower_bound(__x); } 8737: # 953 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: iterator 8737: upper_bound(const key_type& __x) 8737: { return _M_t.upper_bound(__x); } 8737: # 973 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: const_iterator 8737: upper_bound(const key_type& __x) const 8737: { return _M_t.upper_bound(__x); } 8737: # 1000 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: std::pair 8737: equal_range(const key_type& __x) 8737: { return _M_t.equal_range(__x); } 8737: # 1027 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: std::pair 8737: equal_range(const key_type& __x) const 8737: { return _M_t.equal_range(__x); } 8737: # 1044 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: friend bool 8737: operator==(const multimap<_K1, _T1, _C1, _A1>&, 8737: const multimap<_K1, _T1, _C1, _A1>&); 8737: 8737: template 8737: friend bool 8737: operator<(const multimap<_K1, _T1, _C1, _A1>&, 8737: const multimap<_K1, _T1, _C1, _A1>&); 8737: }; 8737: # 1098 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: inline bool 8737: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return __x._M_t == __y._M_t; } 8737: # 1115 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: template 8737: inline bool 8737: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return __x._M_t < __y._M_t; } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8737: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: # 1180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8737: 8737: } 8737: # 63 "/usr/include/c++/8/map" 2 3 8737: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct QMetaTypeId2; 8737: 8737: template 8737: inline constexpr int qMetaTypeId(); 8737: # 216 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: class QDataStream; 8737: class QMetaTypeInterface; 8737: struct QMetaObject; 8737: 8737: namespace QtPrivate 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: To convertImplicit(const From& from) 8737: { 8737: return from; 8737: } 8737: 8737: 8737: struct AbstractDebugStreamFunction 8737: { 8737: typedef void (*Stream)(const AbstractDebugStreamFunction *, QDebug&, const void *); 8737: typedef void (*Destroy)(AbstractDebugStreamFunction *); 8737: explicit AbstractDebugStreamFunction(Stream s = nullptr, Destroy d = nullptr) 8737: : stream(s), destroy(d) {} 8737: AbstractDebugStreamFunction(const AbstractDebugStreamFunction &) = delete; AbstractDebugStreamFunction &operator=(const AbstractDebugStreamFunction &) = delete; 8737: Stream stream; 8737: Destroy destroy; 8737: }; 8737: 8737: template 8737: struct BuiltInDebugStreamFunction : public AbstractDebugStreamFunction 8737: { 8737: BuiltInDebugStreamFunction() 8737: : AbstractDebugStreamFunction(stream, destroy) {} 8737: static void stream(const AbstractDebugStreamFunction *, QDebug& dbg, const void *r) 8737: { 8737: const T *rhs = static_cast(r); 8737: operator<<(dbg, *rhs); 8737: } 8737: 8737: static void destroy(AbstractDebugStreamFunction *_this) 8737: { 8737: delete static_cast(_this); 8737: } 8737: }; 8737: 8737: 8737: struct AbstractComparatorFunction 8737: { 8737: typedef bool (*LessThan)(const AbstractComparatorFunction *, const void *, const void *); 8737: typedef bool (*Equals)(const AbstractComparatorFunction *, const void *, const void *); 8737: typedef void (*Destroy)(AbstractComparatorFunction *); 8737: explicit AbstractComparatorFunction(LessThan lt = nullptr, Equals e = nullptr, Destroy d = nullptr) 8737: : lessThan(lt), equals(e), destroy(d) {} 8737: AbstractComparatorFunction(const AbstractComparatorFunction &) = delete; AbstractComparatorFunction &operator=(const AbstractComparatorFunction &) = delete; 8737: LessThan lessThan; 8737: Equals equals; 8737: Destroy destroy; 8737: }; 8737: 8737: template 8737: struct BuiltInComparatorFunction : public AbstractComparatorFunction 8737: { 8737: BuiltInComparatorFunction() 8737: : AbstractComparatorFunction(lessThan, equals, destroy) {} 8737: static bool lessThan(const AbstractComparatorFunction *, const void *l, const void *r) 8737: { 8737: const T *lhs = static_cast(l); 8737: const T *rhs = static_cast(r); 8737: return *lhs < *rhs; 8737: } 8737: 8737: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8737: { 8737: const T *lhs = static_cast(l); 8737: const T *rhs = static_cast(r); 8737: return *lhs == *rhs; 8737: } 8737: 8737: static void destroy(AbstractComparatorFunction *_this) 8737: { 8737: delete static_cast(_this); 8737: } 8737: }; 8737: 8737: template 8737: struct BuiltInEqualsComparatorFunction : public AbstractComparatorFunction 8737: { 8737: BuiltInEqualsComparatorFunction() 8737: : AbstractComparatorFunction(nullptr, equals, destroy) {} 8737: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8737: { 8737: const T *lhs = static_cast(l); 8737: const T *rhs = static_cast(r); 8737: return *lhs == *rhs; 8737: } 8737: 8737: static void destroy(AbstractComparatorFunction *_this) 8737: { 8737: delete static_cast(_this); 8737: } 8737: }; 8737: 8737: struct AbstractConverterFunction 8737: { 8737: typedef bool (*Converter)(const AbstractConverterFunction *, const void *, void*); 8737: explicit AbstractConverterFunction(Converter c = nullptr) 8737: : convert(c) {} 8737: AbstractConverterFunction(const AbstractConverterFunction &) = delete; AbstractConverterFunction &operator=(const AbstractConverterFunction &) = delete; 8737: Converter convert; 8737: }; 8737: 8737: template 8737: struct ConverterMemberFunction : public AbstractConverterFunction 8737: { 8737: explicit ConverterMemberFunction(To(From::*function)() const) 8737: : AbstractConverterFunction(convert), 8737: m_function(function) {} 8737: ~ConverterMemberFunction(); 8737: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8737: { 8737: const From *f = static_cast(in); 8737: To *t = static_cast(out); 8737: const ConverterMemberFunction *_typedThis = 8737: static_cast(_this); 8737: *t = (f->*_typedThis->m_function)(); 8737: return true; 8737: } 8737: 8737: To(From::* const m_function)() const; 8737: }; 8737: 8737: template 8737: struct ConverterMemberFunctionOk : public AbstractConverterFunction 8737: { 8737: explicit ConverterMemberFunctionOk(To(From::*function)(bool *) const) 8737: : AbstractConverterFunction(convert), 8737: m_function(function) {} 8737: ~ConverterMemberFunctionOk(); 8737: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8737: { 8737: const From *f = static_cast(in); 8737: To *t = static_cast(out); 8737: bool ok = false; 8737: const ConverterMemberFunctionOk *_typedThis = 8737: static_cast(_this); 8737: *t = (f->*_typedThis->m_function)(&ok); 8737: if (!ok) 8737: *t = To(); 8737: return ok; 8737: } 8737: 8737: To(From::* const m_function)(bool*) const; 8737: }; 8737: 8737: template 8737: struct ConverterFunctor : public AbstractConverterFunction 8737: { 8737: explicit ConverterFunctor(UnaryFunction function) 8737: : AbstractConverterFunction(convert), 8737: m_function(function) {} 8737: ~ConverterFunctor(); 8737: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8737: { 8737: const From *f = static_cast(in); 8737: To *t = static_cast(out); 8737: const ConverterFunctor *_typedThis = 8737: static_cast(_this); 8737: *t = _typedThis->m_function(*f); 8737: return true; 8737: } 8737: 8737: UnaryFunction m_function; 8737: }; 8737: 8737: template 8737: struct ValueTypeIsMetaType; 8737: template 8737: struct AssociativeValueTypeIsMetaType; 8737: template 8737: struct IsMetaTypePair; 8737: template 8737: struct MetaTypeSmartPointerHelper; 8737: } 8737: 8737: class __attribute__((visibility("default"))) QMetaType { 8737: enum ExtensionFlag { NoExtensionFlags, 8737: CreateEx = 0x1, DestroyEx = 0x2, 8737: ConstructEx = 0x4, DestructEx = 0x8, 8737: NameEx = 0x10, SizeEx = 0x20, 8737: CtorEx = 0x40, DtorEx = 0x80, 8737: FlagsEx = 0x100, MetaObjectEx = 0x200 8737: }; 8737: public: 8737: 8737: 8737: enum Type { 8737: 8737: 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, 8737: 8737: FirstCoreType = Bool, 8737: LastCoreType = Nullptr, 8737: FirstGuiType = QFont, 8737: LastGuiType = QPolygonF, 8737: FirstWidgetsType = QSizePolicy, 8737: LastWidgetsType = QSizePolicy, 8737: HighestInternalId = LastWidgetsType, 8737: 8737: QReal = sizeof(qreal) == sizeof(double) ? Double : Float, 8737: 8737: UnknownType = 0, 8737: User = 1024 8737: }; 8737: # 455 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: enum TypeFlag { 8737: NeedsConstruction = 0x1, 8737: NeedsDestruction = 0x2, 8737: MovableType = 0x4, 8737: PointerToQObject = 0x8, 8737: IsEnumeration = 0x10, 8737: SharedPointerToQObject = 0x20, 8737: WeakPointerToQObject = 0x40, 8737: TrackingPointerToQObject = 0x80, 8737: WasDeclaredAsMetaType = 0x100, 8737: IsGadget = 0x200 8737: }; 8737: typedef QFlags TypeFlags; 8737: 8737: typedef void (*Deleter)(void *); 8737: typedef void *(*Creator)(const void *); 8737: 8737: typedef void (*Destructor)(void *); 8737: typedef void *(*Constructor)(void *, const void *); 8737: 8737: typedef void (*SaveOperator)(QDataStream &, const void *); 8737: typedef void (*LoadOperator)(QDataStream &, void *); 8737: 8737: static void registerStreamOperators(const char *typeName, SaveOperator saveOp, 8737: LoadOperator loadOp); 8737: static void registerStreamOperators(int type, SaveOperator saveOp, 8737: LoadOperator loadOp); 8737: 8737: static int registerType(const char *typeName, Deleter deleter, 8737: Creator creator); 8737: static int registerType(const char *typeName, Deleter deleter, 8737: Creator creator, 8737: Destructor destructor, 8737: Constructor constructor, 8737: int size, 8737: QMetaType::TypeFlags flags, 8737: const QMetaObject *metaObject); 8737: static bool unregisterType(int type); 8737: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Deleter deleter, 8737: Creator creator, 8737: Destructor destructor, 8737: Constructor constructor, 8737: int size, 8737: QMetaType::TypeFlags flags, 8737: const QMetaObject *metaObject); 8737: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Destructor destructor, 8737: Constructor constructor, 8737: int size, 8737: QMetaType::TypeFlags flags, 8737: const QMetaObject *metaObject); 8737: static int registerTypedef(const char *typeName, int aliasId); 8737: static int registerNormalizedTypedef(const ::QByteArray &normalizedTypeName, int aliasId); 8737: static int type(const char *typeName); 8737: 8737: static int type(const ::QByteArray &typeName); 8737: static const char *typeName(int type); 8737: static int sizeOf(int type); 8737: static TypeFlags typeFlags(int type); 8737: static const QMetaObject *metaObjectForType(int type); 8737: static bool isRegistered(int type); 8737: static void *create(int type, const void *copy = nullptr); 8737: 8737: 8737: 8737: 8737: static void destroy(int type, void *data); 8737: static void *construct(int type, void *where, const void *copy); 8737: static void destruct(int type, void *where); 8737: 8737: 8737: static bool save(QDataStream &stream, int type, const void *data); 8737: static bool load(QDataStream &stream, int type, void *data); 8737: 8737: 8737: explicit QMetaType(const int type); 8737: inline ~QMetaType(); 8737: 8737: inline bool isValid() const; 8737: inline bool isRegistered() const; 8737: inline int sizeOf() const; 8737: inline TypeFlags flags() const; 8737: inline const QMetaObject *metaObject() const; 8737: 8737: inline void *create(const void *copy = nullptr) const; 8737: inline void destroy(void *data) const; 8737: inline void *construct(void *where, const void *copy = nullptr) const; 8737: inline void destruct(void *data) const; 8737: 8737: public: 8737: template 8737: static bool registerComparators() 8737: { 8737: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerComparators: The type must be a custom type.") 8737: ; 8737: 8737: const int typeId = qMetaTypeId(); 8737: static const QtPrivate::BuiltInComparatorFunction f; 8737: return registerComparatorFunction( &f, typeId); 8737: } 8737: template 8737: static bool registerEqualsComparator() 8737: { 8737: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerEqualsComparator: The type must be a custom type.") 8737: ; 8737: const int typeId = qMetaTypeId(); 8737: static const QtPrivate::BuiltInEqualsComparatorFunction f; 8737: return registerComparatorFunction( &f, typeId); 8737: } 8737: 8737: template 8737: static bool hasRegisteredComparators() 8737: { 8737: return hasRegisteredComparators(qMetaTypeId()); 8737: } 8737: static bool hasRegisteredComparators(int typeId); 8737: 8737: 8737: 8737: template 8737: static bool registerDebugStreamOperator() 8737: { 8737: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerDebugStreamOperator: The type must be a custom type.") 8737: ; 8737: 8737: const int typeId = qMetaTypeId(); 8737: static const QtPrivate::BuiltInDebugStreamFunction f; 8737: return registerDebugStreamOperatorFunction(&f, typeId); 8737: } 8737: template 8737: static bool hasRegisteredDebugStreamOperator() 8737: { 8737: return hasRegisteredDebugStreamOperator(qMetaTypeId()); 8737: } 8737: static bool hasRegisteredDebugStreamOperator(int typeId); 8737: 8737: 8737: 8737: template 8737: static bool registerConverter() 8737: { 8737: return registerConverter(QtPrivate::convertImplicit); 8737: } 8737: # 607 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: template 8737: static bool registerConverter(To(From::*function)() const) 8737: { 8737: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8737: ; 8737: 8737: const int fromTypeId = qMetaTypeId(); 8737: const int toTypeId = qMetaTypeId(); 8737: static const QtPrivate::ConverterMemberFunction f(function); 8737: return registerConverterFunction(&f, fromTypeId, toTypeId); 8737: } 8737: 8737: 8737: template 8737: static bool registerConverter(To(From::*function)(bool*) const) 8737: { 8737: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8737: ; 8737: 8737: const int fromTypeId = qMetaTypeId(); 8737: const int toTypeId = qMetaTypeId(); 8737: static const QtPrivate::ConverterMemberFunctionOk f(function); 8737: return registerConverterFunction(&f, fromTypeId, toTypeId); 8737: } 8737: 8737: 8737: template 8737: static bool registerConverter(UnaryFunction function) 8737: { 8737: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8737: ; 8737: 8737: const int fromTypeId = qMetaTypeId(); 8737: const int toTypeId = qMetaTypeId(); 8737: static const QtPrivate::ConverterFunctor f(function); 8737: return registerConverterFunction(&f, fromTypeId, toTypeId); 8737: } 8737: 8737: 8737: static bool convert(const void *from, int fromTypeId, void *to, int toTypeId); 8737: static bool compare(const void *lhs, const void *rhs, int typeId, int* result); 8737: static bool equals(const void *lhs, const void *rhs, int typeId, int* result); 8737: static bool debugStream(QDebug& dbg, const void *rhs, int typeId); 8737: 8737: template 8737: static bool hasRegisteredConverterFunction() 8737: { 8737: return hasRegisteredConverterFunction(qMetaTypeId(), qMetaTypeId()); 8737: } 8737: 8737: static bool hasRegisteredConverterFunction(int fromTypeId, int toTypeId); 8737: 8737: private: 8737: static QMetaType typeInfo(const int type); 8737: inline QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8737: Creator creator, 8737: Deleter deleter, 8737: SaveOperator saveOp, 8737: LoadOperator loadOp, 8737: Constructor constructor, 8737: Destructor destructor, 8737: uint sizeOf, 8737: uint theTypeFlags, 8737: int typeId, 8737: const QMetaObject *metaObject); 8737: QMetaType(const QMetaType &other); 8737: QMetaType &operator =(const QMetaType &); 8737: inline bool isExtended(const ExtensionFlag flag) const { return m_extensionFlags & flag; } 8737: 8737: 8737: void ctor(const QMetaTypeInterface *info); 8737: void dtor(); 8737: uint sizeExtended() const; 8737: QMetaType::TypeFlags flagsExtended() const; 8737: const QMetaObject *metaObjectExtended() const; 8737: void *createExtended(const void *copy = nullptr) const; 8737: void destroyExtended(void *data) const; 8737: void *constructExtended(void *where, const void *copy = nullptr) const; 8737: void destructExtended(void *data) const; 8737: 8737: static bool registerComparatorFunction(const QtPrivate::AbstractComparatorFunction *f, int type); 8737: 8737: static bool registerDebugStreamOperatorFunction(const QtPrivate::AbstractDebugStreamFunction *f, int type); 8737: 8737: 8737: 8737: 8737: 8737: template friend struct QtPrivate::ValueTypeIsMetaType; 8737: template friend struct QtPrivate::ConverterMemberFunction; 8737: template friend struct QtPrivate::ConverterMemberFunctionOk; 8737: template friend struct QtPrivate::ConverterFunctor; 8737: template friend struct QtPrivate::AssociativeValueTypeIsMetaType; 8737: template friend struct QtPrivate::IsMetaTypePair; 8737: template friend struct QtPrivate::MetaTypeSmartPointerHelper; 8737: 8737: 8737: 8737: 8737: static bool registerConverterFunction(const QtPrivate::AbstractConverterFunction *f, int from, int to); 8737: static void unregisterConverterFunction(int from, int to); 8737: private: 8737: 8737: Creator m_creator_unused; 8737: Deleter m_deleter_unused; 8737: SaveOperator m_saveOp; 8737: LoadOperator m_loadOp; 8737: Constructor m_constructor; 8737: Destructor m_destructor; 8737: void *m_extension; 8737: uint m_size; 8737: uint m_typeFlags; 8737: uint m_extensionFlags; 8737: int m_typeId; 8737: const QMetaObject *m_metaObject; 8737: }; 8737: 8737: 8737: 8737: 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); } 8737: 8737: namespace QtPrivate { 8737: 8737: template 8737: ConverterMemberFunction::~ConverterMemberFunction() 8737: { 8737: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8737: } 8737: template 8737: ConverterMemberFunctionOk::~ConverterMemberFunctionOk() 8737: { 8737: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8737: } 8737: template 8737: ConverterFunctor::~ConverterFunctor() 8737: { 8737: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8737: } 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace QtMetaTypePrivate { 8737: template 8737: struct QMetaTypeFunctionHelper { 8737: static void Destruct(void *t) 8737: { 8737: (void)t; 8737: static_cast(t)->~T(); 8737: } 8737: 8737: static void *Construct(void *where, const void *t) 8737: { 8737: if (t) 8737: return new (where) T(*static_cast(t)); 8737: return new (where) T; 8737: } 8737: 8737: static void Save(QDataStream &stream, const void *t) 8737: { 8737: stream << *static_cast(t); 8737: } 8737: 8737: static void Load(QDataStream &stream, void *t) 8737: { 8737: stream >> *static_cast(t); 8737: } 8737: 8737: }; 8737: 8737: template 8737: struct QMetaTypeFunctionHelper { 8737: static void Destruct(void *) {} 8737: static void *Construct(void *, const void *) { return nullptr; } 8737: 8737: static void Save(QDataStream &, const void *) {} 8737: static void Load(QDataStream &, void *) {} 8737: 8737: }; 8737: template <> 8737: struct QMetaTypeFunctionHelper 8737: : public QMetaTypeFunctionHelper 8737: {}; 8737: 8737: struct VariantData 8737: { 8737: VariantData(const int metaTypeId_, 8737: const void *data_, 8737: const uint flags_) 8737: : metaTypeId(metaTypeId_) 8737: , data(data_) 8737: , flags(flags_) 8737: { 8737: } 8737: VariantData(const VariantData &other) 8737: : metaTypeId(other.metaTypeId), data(other.data), flags(other.flags){} 8737: const int metaTypeId; 8737: const void *data; 8737: const uint flags; 8737: private: 8737: 8737: VariantData &operator=(const VariantData &) = delete; 8737: }; 8737: 8737: template 8737: struct IteratorOwnerCommon 8737: { 8737: static void assign(void **ptr, const_iterator iterator) 8737: { 8737: *ptr = new const_iterator(iterator); 8737: } 8737: static void assign(void **ptr, void * const * src) 8737: { 8737: *ptr = new const_iterator(*static_cast(*src)); 8737: } 8737: 8737: static void advance(void **iterator, int step) 8737: { 8737: const_iterator &it = *static_cast(*iterator); 8737: std::advance(it, step); 8737: } 8737: 8737: static void destroy(void **ptr) 8737: { 8737: delete static_cast(*ptr); 8737: } 8737: 8737: static bool equal(void * const *it, void * const *other) 8737: { 8737: return *static_cast(*it) == *static_cast(*other); 8737: } 8737: }; 8737: 8737: template 8737: struct IteratorOwner : IteratorOwnerCommon 8737: { 8737: static const void *getData(void * const *iterator) 8737: { 8737: return &**static_cast(*iterator); 8737: } 8737: 8737: static const void *getData(const_iterator it) 8737: { 8737: return &*it; 8737: } 8737: }; 8737: 8737: struct __attribute__((visibility("default"))) VectorBoolElements 8737: { 8737: static const bool true_element; 8737: static const bool false_element; 8737: }; 8737: 8737: template<> 8737: struct IteratorOwner::const_iterator> : IteratorOwnerCommon::const_iterator> 8737: { 8737: public: 8737: static const void *getData(void * const *iterator) 8737: { 8737: return **static_cast::const_iterator*>(*iterator) ? 8737: &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8737: } 8737: 8737: static const void *getData(const std::vector::const_iterator& it) 8737: { 8737: return *it ? &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8737: } 8737: }; 8737: 8737: template 8737: struct IteratorOwner 8737: { 8737: private: 8737: 8737: 8737: 8737: struct Dummy {}; 8737: typedef typename std::conditional::value, Dummy, value_type>::type value_type_OR_Dummy; 8737: public: 8737: static void assign(void **ptr, const value_type_OR_Dummy *iterator ) 8737: { 8737: *ptr = const_cast(iterator); 8737: } 8737: static void assign(void **ptr, void * const * src) 8737: { 8737: *ptr = static_cast(*src); 8737: } 8737: 8737: static void advance(void **iterator, int step) 8737: { 8737: value_type *it = static_cast(*iterator); 8737: std::advance(it, step); 8737: *iterator = it; 8737: } 8737: 8737: static void destroy(void **) 8737: { 8737: } 8737: 8737: static const void *getData(void * const *iterator) 8737: { 8737: return *iterator; 8737: } 8737: 8737: static const void *getData(const value_type_OR_Dummy *it) 8737: { 8737: return it; 8737: } 8737: 8737: static bool equal(void * const *it, void * const *other) 8737: { 8737: return static_cast(*it) == static_cast(*other); 8737: } 8737: }; 8737: 8737: enum IteratorCapability 8737: { 8737: ForwardCapability = 1, 8737: BiDirectionalCapability = 2, 8737: RandomAccessCapability = 4 8737: }; 8737: 8737: template::iterator_category> 8737: struct CapabilitiesImpl; 8737: 8737: template 8737: struct CapabilitiesImpl 8737: { enum { IteratorCapabilities = ForwardCapability }; }; 8737: template 8737: struct CapabilitiesImpl 8737: { enum { IteratorCapabilities = BiDirectionalCapability | ForwardCapability }; }; 8737: template 8737: struct CapabilitiesImpl 8737: { enum { IteratorCapabilities = RandomAccessCapability | BiDirectionalCapability | ForwardCapability }; }; 8737: 8737: template 8737: struct ContainerAPI : CapabilitiesImpl 8737: { 8737: static int size(const T *t) { return int(std::distance(t->begin(), t->end())); } 8737: }; 8737: 8737: template 8737: struct ContainerAPI > : CapabilitiesImpl > 8737: { static int size(const QList *t) { return t->size(); } }; 8737: 8737: template 8737: struct ContainerAPI > : CapabilitiesImpl > 8737: { static int size(const QVector *t) { return t->size(); } }; 8737: 8737: template 8737: struct ContainerAPI > : CapabilitiesImpl > 8737: { static int size(const std::vector *t) { return int(t->size()); } }; 8737: 8737: template 8737: struct ContainerAPI > : CapabilitiesImpl > 8737: { static int size(const std::list *t) { return int(t->size()); } }; 8737: 8737: class QSequentialIterableImpl 8737: { 8737: public: 8737: const void * _iterable; 8737: void *_iterator; 8737: int _metaType_id; 8737: uint _metaType_flags; 8737: uint _iteratorCapabilities; 8737: typedef int(*sizeFunc)(const void *p); 8737: typedef const void * (*atFunc)(const void *p, int); 8737: typedef void (*moveIteratorFunc)(const void *p, void **); 8737: typedef void (*advanceFunc)(void **p, int); 8737: typedef VariantData (*getFunc)( void * const *p, int metaTypeId, uint flags); 8737: typedef void (*destroyIterFunc)(void **p); 8737: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8737: typedef void (*copyIterFunc)(void **, void * const *); 8737: 8737: sizeFunc _size; 8737: atFunc _at; 8737: moveIteratorFunc _moveToBegin; 8737: moveIteratorFunc _moveToEnd; 8737: advanceFunc _advance; 8737: getFunc _get; 8737: destroyIterFunc _destroyIter; 8737: equalIterFunc _equalIter; 8737: copyIterFunc _copyIter; 8737: 8737: template 8737: static int sizeImpl(const void *p) 8737: { return ContainerAPI::size(static_cast(p)); } 8737: 8737: template 8737: static const void* atImpl(const void *p, int idx) 8737: { 8737: typename T::const_iterator i = static_cast(p)->begin(); 8737: std::advance(i, idx); 8737: return IteratorOwner::getData(i); 8737: } 8737: 8737: template 8737: static void moveToBeginImpl(const void *container, void **iterator) 8737: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8737: 8737: template 8737: static void moveToEndImpl(const void *container, void **iterator) 8737: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8737: 8737: template 8737: static VariantData getImpl(void * const *iterator, int metaTypeId, uint flags) 8737: { return VariantData(metaTypeId, IteratorOwner::getData(iterator), flags); } 8737: 8737: public: 8737: template QSequentialIterableImpl(const T*p) 8737: : _iterable(p) 8737: , _iterator(nullptr) 8737: , _metaType_id(qMetaTypeId()) 8737: , _metaType_flags(QTypeInfo::isPointer) 8737: , _iteratorCapabilities(ContainerAPI::IteratorCapabilities) 8737: , _size(sizeImpl) 8737: , _at(atImpl) 8737: , _moveToBegin(moveToBeginImpl) 8737: , _moveToEnd(moveToEndImpl) 8737: , _advance(IteratorOwner::advance) 8737: , _get(getImpl) 8737: , _destroyIter(IteratorOwner::destroy) 8737: , _equalIter(IteratorOwner::equal) 8737: , _copyIter(IteratorOwner::assign) 8737: { 8737: } 8737: 8737: QSequentialIterableImpl() 8737: : _iterable(nullptr) 8737: , _iterator(nullptr) 8737: , _metaType_id(QMetaType::UnknownType) 8737: , _metaType_flags(0) 8737: , _iteratorCapabilities(0) 8737: , _size(nullptr) 8737: , _at(nullptr) 8737: , _moveToBegin(nullptr) 8737: , _moveToEnd(nullptr) 8737: , _advance(nullptr) 8737: , _get(nullptr) 8737: , _destroyIter(nullptr) 8737: , _equalIter(nullptr) 8737: , _copyIter(nullptr) 8737: { 8737: } 8737: 8737: inline void moveToBegin() { _moveToBegin(_iterable, &_iterator); } 8737: inline void moveToEnd() { _moveToEnd(_iterable, &_iterator); } 8737: inline bool equal(const QSequentialIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8737: inline QSequentialIterableImpl &advance(int i) { 8737: do { } while ((false) && (i > 0 || _iteratorCapabilities & BiDirectionalCapability)); 8737: _advance(&_iterator, i); 8737: return *this; 8737: } 8737: 8737: inline VariantData getCurrent() const { return _get(&_iterator, _metaType_id, _metaType_flags); } 8737: 8737: VariantData at(int idx) const 8737: { return VariantData(_metaType_id, _at(_iterable, idx), _metaType_flags); } 8737: 8737: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8737: 8737: inline void destroyIter() { _destroyIter(&_iterator); } 8737: 8737: void copy(const QSequentialIterableImpl &other) 8737: { 8737: *this = other; 8737: _copyIter(&_iterator, &other._iterator); 8737: } 8737: }; 8737: } 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 { 8737: 8737: template 8737: struct QSequentialIterableConvertFunctor 8737: { 8737: QSequentialIterableImpl operator()(const From &f) const 8737: { 8737: return QSequentialIterableImpl(&f); 8737: } 8737: }; 8737: } 8737: 8737: namespace QtMetaTypePrivate { 8737: template::value> 8737: struct AssociativeContainerAccessor 8737: { 8737: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8737: { 8737: return it.key(); 8737: } 8737: 8737: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8737: { 8737: return it.value(); 8737: } 8737: }; 8737: 8737: template >::value> 8737: struct StlStyleAssociativeContainerAccessor; 8737: 8737: template 8737: struct StlStyleAssociativeContainerAccessor 8737: { 8737: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8737: { 8737: return it->first; 8737: } 8737: 8737: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8737: { 8737: return it->second; 8737: } 8737: }; 8737: 8737: template 8737: struct AssociativeContainerAccessor : public StlStyleAssociativeContainerAccessor 8737: { 8737: }; 8737: 8737: class QAssociativeIterableImpl 8737: { 8737: public: 8737: const void *_iterable; 8737: void *_iterator; 8737: int _metaType_id_key; 8737: uint _metaType_flags_key; 8737: int _metaType_id_value; 8737: uint _metaType_flags_value; 8737: typedef int(*sizeFunc)(const void *p); 8737: typedef void (*findFunc)(const void *container, const void *p, void **iterator); 8737: typedef void (*beginFunc)(const void *p, void **); 8737: typedef void (*advanceFunc)(void **p, int); 8737: typedef VariantData (*getFunc)(void * const *p, int metaTypeId, uint flags); 8737: typedef void (*destroyIterFunc)(void **p); 8737: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8737: typedef void (*copyIterFunc)(void **, void * const *); 8737: 8737: sizeFunc _size; 8737: findFunc _find; 8737: beginFunc _begin; 8737: beginFunc _end; 8737: advanceFunc _advance; 8737: getFunc _getKey; 8737: getFunc _getValue; 8737: destroyIterFunc _destroyIter; 8737: equalIterFunc _equalIter; 8737: copyIterFunc _copyIter; 8737: 8737: template 8737: static int sizeImpl(const void *p) 8737: { return int(std::distance(static_cast(p)->begin(), 8737: static_cast(p)->end())); } 8737: 8737: template 8737: static void findImpl(const void *container, const void *p, void **iterator) 8737: { IteratorOwner::assign(iterator, 8737: static_cast(container)->find(*static_cast(p))); } 8737: 8737: template 8737: static void advanceImpl(void **p, int step) 8737: { std::advance(*static_cast(*p), step); } 8737: 8737: template 8737: static void beginImpl(const void *container, void **iterator) 8737: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8737: 8737: template 8737: static void endImpl(const void *container, void **iterator) 8737: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8737: 8737: template 8737: static VariantData getKeyImpl(void * const *iterator, int metaTypeId, uint flags) 8737: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getKey(*static_cast(*iterator)), flags); } 8737: 8737: template 8737: static VariantData getValueImpl(void * const *iterator, int metaTypeId, uint flags) 8737: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getValue(*static_cast(*iterator)), flags); } 8737: 8737: public: 8737: template QAssociativeIterableImpl(const T*p) 8737: : _iterable(p) 8737: , _iterator(nullptr) 8737: , _metaType_id_key(qMetaTypeId()) 8737: , _metaType_flags_key(QTypeInfo::isPointer) 8737: , _metaType_id_value(qMetaTypeId()) 8737: , _metaType_flags_value(QTypeInfo::isPointer) 8737: , _size(sizeImpl) 8737: , _find(findImpl) 8737: , _begin(beginImpl) 8737: , _end(endImpl) 8737: , _advance(advanceImpl) 8737: , _getKey(getKeyImpl) 8737: , _getValue(getValueImpl) 8737: , _destroyIter(IteratorOwner::destroy) 8737: , _equalIter(IteratorOwner::equal) 8737: , _copyIter(IteratorOwner::assign) 8737: { 8737: } 8737: 8737: QAssociativeIterableImpl() 8737: : _iterable(nullptr) 8737: , _iterator(nullptr) 8737: , _metaType_id_key(QMetaType::UnknownType) 8737: , _metaType_flags_key(0) 8737: , _metaType_id_value(QMetaType::UnknownType) 8737: , _metaType_flags_value(0) 8737: , _size(nullptr) 8737: , _find(nullptr) 8737: , _begin(nullptr) 8737: , _end(nullptr) 8737: , _advance(nullptr) 8737: , _getKey(nullptr) 8737: , _getValue(nullptr) 8737: , _destroyIter(nullptr) 8737: , _equalIter(nullptr) 8737: , _copyIter(nullptr) 8737: { 8737: } 8737: 8737: inline void begin() { _begin(_iterable, &_iterator); } 8737: inline void end() { _end(_iterable, &_iterator); } 8737: inline bool equal(const QAssociativeIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8737: inline QAssociativeIterableImpl &advance(int i) { _advance(&_iterator, i); return *this; } 8737: 8737: inline void destroyIter() { _destroyIter(&_iterator); } 8737: 8737: inline VariantData getCurrentKey() const { return _getKey(&_iterator, _metaType_id_key, _metaType_flags_key); } 8737: inline VariantData getCurrentValue() const { return _getValue(&_iterator, _metaType_id_value, _metaType_flags_value); } 8737: 8737: inline void find(const VariantData &key) 8737: { _find(_iterable, key.data, &_iterator); } 8737: 8737: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8737: 8737: void copy(const QAssociativeIterableImpl &other) 8737: { 8737: *this = other; 8737: _copyIter(&_iterator, &other._iterator); 8737: } 8737: }; 8737: } 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 { 8737: 8737: template 8737: struct QAssociativeIterableConvertFunctor 8737: { 8737: QAssociativeIterableImpl operator()(const From& f) const 8737: { 8737: return QAssociativeIterableImpl(&f); 8737: } 8737: }; 8737: 8737: class QPairVariantInterfaceImpl 8737: { 8737: const void *_pair; 8737: int _metaType_id_first; 8737: uint _metaType_flags_first; 8737: int _metaType_id_second; 8737: uint _metaType_flags_second; 8737: 8737: typedef VariantData (*getFunc)(const void * const *p, int metaTypeId, uint flags); 8737: 8737: getFunc _getFirst; 8737: getFunc _getSecond; 8737: 8737: template 8737: static VariantData getFirstImpl(const void * const *pair, int metaTypeId, uint flags) 8737: { return VariantData(metaTypeId, &static_cast(*pair)->first, flags); } 8737: template 8737: static VariantData getSecondImpl(const void * const *pair, int metaTypeId, uint flags) 8737: { return VariantData(metaTypeId, &static_cast(*pair)->second, flags); } 8737: 8737: public: 8737: template QPairVariantInterfaceImpl(const T*p) 8737: : _pair(p) 8737: , _metaType_id_first(qMetaTypeId()) 8737: , _metaType_flags_first(QTypeInfo::isPointer) 8737: , _metaType_id_second(qMetaTypeId()) 8737: , _metaType_flags_second(QTypeInfo::isPointer) 8737: , _getFirst(getFirstImpl) 8737: , _getSecond(getSecondImpl) 8737: { 8737: } 8737: 8737: QPairVariantInterfaceImpl() 8737: : _pair(nullptr) 8737: , _metaType_id_first(QMetaType::UnknownType) 8737: , _metaType_flags_first(0) 8737: , _metaType_id_second(QMetaType::UnknownType) 8737: , _metaType_flags_second(0) 8737: , _getFirst(nullptr) 8737: , _getSecond(nullptr) 8737: { 8737: } 8737: 8737: inline VariantData first() const { return _getFirst(&_pair, _metaType_id_first, _metaType_flags_first); } 8737: inline VariantData second() const { return _getSecond(&_pair, _metaType_id_second, _metaType_flags_second); } 8737: }; 8737: } 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 { 8737: 8737: template 8737: struct QPairVariantInterfaceConvertFunctor; 8737: 8737: template 8737: struct QPairVariantInterfaceConvertFunctor > 8737: { 8737: QPairVariantInterfaceImpl operator()(const QPair& f) const 8737: { 8737: return QPairVariantInterfaceImpl(&f); 8737: } 8737: }; 8737: 8737: template 8737: struct QPairVariantInterfaceConvertFunctor > 8737: { 8737: QPairVariantInterfaceImpl operator()(const std::pair& f) const 8737: { 8737: return QPairVariantInterfaceImpl(&f); 8737: } 8737: }; 8737: 8737: } 8737: 8737: class QObject; 8737: class QWidget; 8737: 8737: 8737: 8737: 8737: template class QSharedPointer; template class QWeakPointer; template class QPointer; 8737: 8737: namespace QtPrivate 8737: { 8737: template 8737: struct IsPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = false }; 8737: }; 8737: 8737: 8737: template<> 8737: struct IsPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = false }; 8737: }; 8737: template<> 8737: struct IsPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = false }; 8737: }; 8737: template<> 8737: struct IsPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = true }; 8737: }; 8737: 8737: template 8737: struct IsPointerToTypeDerivedFromQObject 8737: { 8737: typedef qint8 yes_type; 8737: typedef qint64 no_type; 8737: 8737: 8737: static yes_type checkType(QObject* ); 8737: 8737: static no_type checkType(...); 8737: static_assert(bool(sizeof(T)), "Type argument of Q_DECLARE_METATYPE(T*) must be fully defined"); 8737: enum { Value = sizeof(checkType(static_cast(nullptr))) == sizeof(yes_type) }; 8737: }; 8737: 8737: template 8737: struct IsGadgetHelper { enum { Value = false }; }; 8737: 8737: template 8737: struct IsGadgetHelper 8737: { 8737: template 8737: static char checkType(void (X::*)()); 8737: static void *checkType(void (T::*)()); 8737: enum { Value = sizeof(checkType(&T::qt_check_for_QGADGET_macro)) == sizeof(void *) }; 8737: }; 8737: 8737: 8737: template char qt_getEnumMetaObject(const T&); 8737: 8737: template 8737: struct IsQEnumHelper { 8737: static const T &declval(); 8737: 8737: 8737: 8737: 8737: enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) }; 8737: }; 8737: template<> struct IsQEnumHelper { enum { Value = false }; }; 8737: 8737: template 8737: struct MetaObjectForType 8737: { 8737: static inline const QMetaObject *value() { return nullptr; } 8737: }; 8737: template<> 8737: struct MetaObjectForType 8737: { 8737: static inline const QMetaObject *value() { return nullptr; } 8737: }; 8737: template 8737: struct MetaObjectForType::Value>::type> 8737: { 8737: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8737: }; 8737: template 8737: struct MetaObjectForType::Value>::type> 8737: { 8737: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8737: }; 8737: template 8737: struct MetaObjectForType::Value>::type > 8737: { 8737: static inline const QMetaObject *value() { return qt_getEnumMetaObject(T()); } 8737: }; 8737: 8737: template 8737: struct IsSharedPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = false }; 8737: }; 8737: 8737: template 8737: struct IsSharedPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8737: { 8737: }; 8737: 8737: template 8737: struct IsWeakPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = false }; 8737: }; 8737: 8737: template 8737: struct IsWeakPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8737: { 8737: }; 8737: 8737: template 8737: struct IsTrackingPointerToTypeDerivedFromQObject 8737: { 8737: enum { Value = false }; 8737: }; 8737: 8737: template 8737: struct IsTrackingPointerToTypeDerivedFromQObject > 8737: { 8737: enum { Value = true }; 8737: }; 8737: 8737: template 8737: struct IsSequentialContainer 8737: { 8737: enum { Value = false }; 8737: }; 8737: 8737: template 8737: struct IsAssociativeContainer 8737: { 8737: enum { Value = false }; 8737: }; 8737: 8737: template::Value> 8737: struct SequentialContainerConverterHelper 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: template::Defined> 8737: struct ValueTypeIsMetaType 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: template 8737: struct SequentialContainerConverterHelper : ValueTypeIsMetaType 8737: { 8737: }; 8737: 8737: template::Value> 8737: struct AssociativeContainerConverterHelper 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: template::Defined> 8737: struct AssociativeValueTypeIsMetaType 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: template::Defined> 8737: struct KeyAndValueTypeIsMetaType 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: template 8737: struct KeyAndValueTypeIsMetaType : AssociativeValueTypeIsMetaType 8737: { 8737: }; 8737: 8737: template 8737: struct AssociativeContainerConverterHelper : KeyAndValueTypeIsMetaType 8737: { 8737: }; 8737: 8737: template::Defined 8737: && QMetaTypeId2::Defined> 8737: struct IsMetaTypePair 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: 8737: template 8737: struct IsMetaTypePair 8737: { 8737: inline static bool registerConverter(int id); 8737: }; 8737: 8737: template 8737: struct IsPair 8737: { 8737: static bool registerConverter(int) 8737: { 8737: return false; 8737: } 8737: }; 8737: template 8737: struct IsPair > : IsMetaTypePair > {}; 8737: template 8737: struct IsPair > : IsMetaTypePair > {}; 8737: 8737: template 8737: struct MetaTypePairHelper : IsPair {}; 8737: 8737: template 8737: struct MetaTypeSmartPointerHelper 8737: { 8737: static bool registerConverter(int) { return false; } 8737: }; 8737: 8737: __attribute__((visibility("default"))) bool isBuiltinType(const QByteArray &type); 8737: } 8737: 8737: template ::Value ? QMetaType::PointerToQObject : 8737: QtPrivate::IsGadgetHelper::Value ? QMetaType::IsGadget : 8737: QtPrivate::IsQEnumHelper::Value ? QMetaType::IsEnumeration : 0> 8737: struct QMetaTypeIdQObject 8737: { 8737: enum { 8737: Defined = 0 8737: }; 8737: }; 8737: 8737: template 8737: struct QMetaTypeId : public QMetaTypeIdQObject 8737: { 8737: }; 8737: 8737: template 8737: struct QMetaTypeId2 8737: { 8737: enum { Defined = QMetaTypeId::Defined, IsBuiltIn=false }; 8737: static inline constexpr int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); } 8737: }; 8737: 8737: template 8737: struct QMetaTypeId2 : QMetaTypeId2 {}; 8737: 8737: template 8737: struct QMetaTypeId2 { enum {Defined = false }; }; 8737: 8737: namespace QtPrivate { 8737: template ::Defined> 8737: struct QMetaTypeIdHelper { 8737: static inline constexpr int qt_metatype_id() 8737: { return QMetaTypeId2::qt_metatype_id(); } 8737: }; 8737: template struct QMetaTypeIdHelper { 8737: static inline constexpr int qt_metatype_id() 8737: { return -1; } 8737: }; 8737: 8737: 8737: template 8737: struct IsPointerToTypeDerivedFromQObject { enum { Value = false }; }; 8737: 8737: template 8737: struct QMetaTypeTypeFlags 8737: { 8737: enum { Flags = (QTypeInfoQuery::isRelocatable ? QMetaType::MovableType : 0) 8737: | (QTypeInfo::isComplex ? QMetaType::NeedsConstruction : 0) 8737: | (QTypeInfo::isComplex ? QMetaType::NeedsDestruction : 0) 8737: | (IsPointerToTypeDerivedFromQObject::Value ? QMetaType::PointerToQObject : 0) 8737: | (IsSharedPointerToTypeDerivedFromQObject::Value ? QMetaType::SharedPointerToQObject : 0) 8737: | (IsWeakPointerToTypeDerivedFromQObject::Value ? QMetaType::WeakPointerToQObject : 0) 8737: | (IsTrackingPointerToTypeDerivedFromQObject::Value ? QMetaType::TrackingPointerToQObject : 0) 8737: | (std::is_enum::value ? QMetaType::IsEnumeration : 0) 8737: | (IsGadgetHelper::Value ? QMetaType::IsGadget : 0) 8737: }; 8737: }; 8737: 8737: template 8737: struct MetaTypeDefinedHelper 8737: { 8737: enum DefinedType { Defined = defined }; 8737: }; 8737: 8737: template 8737: struct QSmartPointerConvertFunctor 8737: { 8737: QObject* operator()(const SmartPointer &p) const 8737: { 8737: return p.operator->(); 8737: } 8737: }; 8737: 8737: template 8737: struct QSmartPointerConvertFunctor > 8737: { 8737: QObject* operator()(const QWeakPointer &p) const 8737: { 8737: return p.data(); 8737: } 8737: }; 8737: } 8737: 8737: template 8737: int qRegisterNormalizedMetaType(const ::QByteArray &normalizedTypeName 8737: 8737: , T * dummy = 0 8737: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8737: 8737: ) 8737: { 8737: 8737: do { } while ((false) && (normalizedTypeName == QMetaObject::normalizedType(normalizedTypeName.constData()))); 8737: 8737: const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper::qt_metatype_id(); 8737: if (typedefOf != -1) 8737: return QMetaType::registerNormalizedTypedef(normalizedTypeName, typedefOf); 8737: 8737: QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags::Flags); 8737: 8737: if (defined) 8737: flags |= QMetaType::WasDeclaredAsMetaType; 8737: 8737: const int id = QMetaType::registerNormalizedType(normalizedTypeName, 8737: QtMetaTypePrivate::QMetaTypeFunctionHelper::Destruct, 8737: QtMetaTypePrivate::QMetaTypeFunctionHelper::Construct, 8737: int(sizeof(T)), 8737: flags, 8737: QtPrivate::MetaObjectForType::value()); 8737: 8737: if (id > 0) { 8737: QtPrivate::SequentialContainerConverterHelper::registerConverter(id); 8737: QtPrivate::AssociativeContainerConverterHelper::registerConverter(id); 8737: QtPrivate::MetaTypePairHelper::registerConverter(id); 8737: QtPrivate::MetaTypeSmartPointerHelper::registerConverter(id); 8737: } 8737: 8737: return id; 8737: } 8737: 8737: template 8737: int qRegisterMetaType(const char *typeName 8737: 8737: , T * dummy = nullptr 8737: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8737: 8737: ) 8737: { 8737: 8737: 8737: 8737: ::QByteArray normalizedTypeName = QMetaObject::normalizedType(typeName); 8737: 8737: return qRegisterNormalizedMetaType(normalizedTypeName, dummy, defined); 8737: } 8737: 8737: 8737: template 8737: void qRegisterMetaTypeStreamOperators(const char *typeName 8737: 8737: , T * = nullptr 8737: 8737: ) 8737: { 8737: qRegisterMetaType(typeName); 8737: QMetaType::registerStreamOperators(typeName, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8737: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8737: } 8737: 8737: 8737: template 8737: inline constexpr int qMetaTypeId() 8737: { 8737: 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"); 8737: return QMetaTypeId2::qt_metatype_id(); 8737: } 8737: 8737: template 8737: inline constexpr int qRegisterMetaType() 8737: { 8737: return qMetaTypeId(); 8737: } 8737: 8737: 8737: 8737: template 8737: inline constexpr int qMetaTypeId(T *) 8737: { return qMetaTypeId(); } 8737: 8737: template 8737: inline constexpr int qRegisterMetaType(T *) 8737: { return qRegisterMetaType(); } 8737: 8737: 8737: 8737: 8737: template 8737: struct QMetaTypeIdQObject 8737: { 8737: enum { 8737: Defined = 1 8737: }; 8737: 8737: static int qt_metatype_id() 8737: { 8737: static QBasicAtomicInt metatype_id = { 0 }; 8737: if (const int id = metatype_id.loadAcquire()) 8737: return id; 8737: const char * const cName = T::staticMetaObject.className(); 8737: QByteArray typeName; 8737: typeName.reserve(int(strlen(cName)) + 1); 8737: typeName.append(cName).append('*'); 8737: const int newId = qRegisterNormalizedMetaType( 8737: typeName, 8737: reinterpret_cast(quintptr(-1))); 8737: metatype_id.storeRelease(newId); 8737: return newId; 8737: } 8737: }; 8737: 8737: template 8737: struct QMetaTypeIdQObject 8737: { 8737: enum { 8737: Defined = std::is_default_constructible::value 8737: }; 8737: 8737: static int qt_metatype_id() 8737: { 8737: static QBasicAtomicInt metatype_id = { 0 }; 8737: if (const int id = metatype_id.loadAcquire()) 8737: return id; 8737: const char * const cName = T::staticMetaObject.className(); 8737: const int newId = qRegisterNormalizedMetaType( 8737: cName, 8737: reinterpret_cast(quintptr(-1))); 8737: metatype_id.storeRelease(newId); 8737: return newId; 8737: } 8737: }; 8737: 8737: template 8737: struct QMetaTypeIdQObject 8737: { 8737: enum { 8737: Defined = 1 8737: }; 8737: 8737: static int qt_metatype_id() 8737: { 8737: static QBasicAtomicInt metatype_id = { 0 }; 8737: if (const int id = metatype_id.loadAcquire()) 8737: return id; 8737: const char *eName = qt_getEnumName(T()); 8737: const char *cName = qt_getEnumMetaObject(T())->className(); 8737: QByteArray typeName; 8737: typeName.reserve(int(strlen(cName) + 2 + strlen(eName))); 8737: typeName.append(cName).append("::").append(eName); 8737: const int newId = qRegisterNormalizedMetaType( 8737: typeName, 8737: reinterpret_cast(quintptr(-1))); 8737: metatype_id.storeRelease(newId); 8737: return newId; 8737: } 8737: }; 8737: 8737: 8737: 8737: template 8737: inline int qRegisterMetaTypeStreamOperators() 8737: { 8737: int id = qMetaTypeId(); 8737: QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8737: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8737: return id; 8737: } 8737: # 1881 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: 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; 8737: 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; 8737: class QSizePolicy; 8737: 8737: 8737: 8737: typedef QList QVariantList; 8737: typedef QMap QVariantMap; 8737: typedef QHash QVariantHash; 8737: 8737: typedef QList QByteArrayList; 8737: # 1968 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: namespace QtPrivate { 8737: 8737: template 8737: struct SharedPointerMetaTypeIdHelper 8737: { 8737: enum { 8737: Defined = 0 8737: }; 8737: static int qt_metatype_id() 8737: { 8737: return -1; 8737: } 8737: }; 8737: 8737: } 8737: # 2042 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: 8737: 8737: 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 }; }; } 8737: 8737: 8737: 8737: 8737: 8737: 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 }; }; } 8737: 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 }; }; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template class QHash; template class QMap; template struct QPair; 8737: # 2074 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8737: 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; } }; 8737: 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; } }; 8737: 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; } }; 8737: 8737: 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; } }; 8737: 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; } }; 8737: 8737: 8737: 8737: 8737: 8737: 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> { }; 8737: 8737: 8737: 8737: 8737: 8737: inline QMetaType::QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8737: Creator creator, 8737: Deleter deleter, 8737: SaveOperator saveOp, 8737: LoadOperator loadOp, 8737: Constructor constructor, 8737: Destructor destructor, 8737: uint size, 8737: uint theTypeFlags, 8737: int typeId, 8737: const QMetaObject *_metaObject) 8737: : m_creator_unused(creator) 8737: , m_deleter_unused(deleter) 8737: , m_saveOp(saveOp) 8737: , m_loadOp(loadOp) 8737: , m_constructor(constructor) 8737: , m_destructor(destructor) 8737: , m_extension(nullptr) 8737: , m_size(size) 8737: , m_typeFlags(theTypeFlags) 8737: , m_extensionFlags(extensionFlags) 8737: , m_typeId(typeId) 8737: , m_metaObject(_metaObject) 8737: { 8737: if (__builtin_expect(!!(isExtended(CtorEx) || typeId == QMetaType::Void), false)) 8737: ctor(info); 8737: } 8737: 8737: inline QMetaType::~QMetaType() 8737: { 8737: if (__builtin_expect(!!(isExtended(DtorEx)), false)) 8737: dtor(); 8737: } 8737: 8737: inline bool QMetaType::isValid() const 8737: { 8737: return m_typeId != UnknownType; 8737: } 8737: 8737: inline bool QMetaType::isRegistered() const 8737: { 8737: return isValid(); 8737: } 8737: 8737: inline void *QMetaType::create(const void *copy) const 8737: { 8737: 8737: return createExtended(copy); 8737: } 8737: 8737: inline void QMetaType::destroy(void *data) const 8737: { 8737: 8737: destroyExtended(data); 8737: } 8737: 8737: inline void *QMetaType::construct(void *where, const void *copy) const 8737: { 8737: if (__builtin_expect(!!(isExtended(ConstructEx)), false)) 8737: return constructExtended(where, copy); 8737: return m_constructor(where, copy); 8737: } 8737: 8737: inline void QMetaType::destruct(void *data) const 8737: { 8737: if (__builtin_expect(!!(isExtended(DestructEx)), false)) 8737: return destructExtended(data); 8737: if (__builtin_expect(!!(!data), false)) 8737: return; 8737: m_destructor(data); 8737: } 8737: 8737: inline int QMetaType::sizeOf() const 8737: { 8737: if (__builtin_expect(!!(isExtended(SizeEx)), false)) 8737: return sizeExtended(); 8737: return m_size; 8737: } 8737: 8737: inline QMetaType::TypeFlags QMetaType::flags() const 8737: { 8737: if (__builtin_expect(!!(isExtended(FlagsEx)), false)) 8737: return flagsExtended(); 8737: return QMetaType::TypeFlags(m_typeFlags); 8737: } 8737: 8737: inline const QMetaObject *QMetaType::metaObject() const 8737: { 8737: if (__builtin_expect(!!(isExtended(MetaObjectEx)), false)) 8737: return metaObjectExtended(); 8737: return m_metaObject; 8737: } 8737: 8737: 8737: 8737: 8737: 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; } }; 8737: 8737: 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; } }; 8737: 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; } }; 8737: 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; } }; 8737: 8737: 8737: 8737: template 8737: inline bool QtPrivate::IsMetaTypePair::registerConverter(int id) 8737: { 8737: const int toId = qMetaTypeId(); 8737: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8737: QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor o; 8737: static const QtPrivate::ConverterFunctor > f(o); 8737: return QMetaType::registerConverterFunction(&f, id, toId); 8737: } 8737: return true; 8737: } 8737: 8737: namespace QtPrivate { 8737: template 8737: struct ValueTypeIsMetaType 8737: { 8737: static bool registerConverter(int id) 8737: { 8737: const int toId = qMetaTypeId(); 8737: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8737: QtMetaTypePrivate::QSequentialIterableConvertFunctor o; 8737: static const QtPrivate::ConverterFunctor > f(o); 8737: return QMetaType::registerConverterFunction(&f, id, toId); 8737: } 8737: return true; 8737: } 8737: }; 8737: 8737: template 8737: struct AssociativeValueTypeIsMetaType 8737: { 8737: static bool registerConverter(int id) 8737: { 8737: const int toId = qMetaTypeId(); 8737: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8737: QtMetaTypePrivate::QAssociativeIterableConvertFunctor o; 8737: static const QtPrivate::ConverterFunctor > f(o); 8737: return QMetaType::registerConverterFunction(&f, id, toId); 8737: } 8737: return true; 8737: } 8737: }; 8737: } 8737: 8737: 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 1 3 4 8737: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8737: # 1 "/usr/include/c++/8/functional" 1 3 4 8737: # 46 "/usr/include/c++/8/functional" 3 4 8737: 8737: # 47 "/usr/include/c++/8/functional" 3 8737: # 58 "/usr/include/c++/8/functional" 3 8737: # 1 "/usr/include/c++/8/bits/refwrap.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/refwrap.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/refwrap.h" 3 8737: # 43 "/usr/include/c++/8/bits/refwrap.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _Maybe_unary_or_binary_function { }; 8737: 8737: 8737: template 8737: struct _Maybe_unary_or_binary_function<_Res, _T1> 8737: : std::unary_function<_T1, _Res> { }; 8737: 8737: 8737: template 8737: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 8737: : std::binary_function<_T1, _T2, _Res> { }; 8737: 8737: template 8737: struct _Mem_fn_traits; 8737: 8737: template 8737: struct _Mem_fn_traits_base 8737: { 8737: using __result_type = _Res; 8737: using __maybe_type 8737: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 8737: using __arity = integral_constant; 8737: }; 8737: # 97 "/usr/include/c++/8/bits/refwrap.h" 3 8737: 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; }; 8737: 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; }; 8737: 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; }; 8737: # 111 "/usr/include/c++/8/bits/refwrap.h" 3 8737: template> 8737: struct _Maybe_get_result_type 8737: { }; 8737: 8737: template 8737: struct _Maybe_get_result_type<_Functor, 8737: __void_t> 8737: { typedef typename _Functor::result_type result_type; }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _Weak_result_type_impl 8737: : _Maybe_get_result_type<_Functor> 8737: { }; 8737: 8737: 8737: template 8737: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 8737: { typedef _Res result_type; }; 8737: 8737: 8737: template 8737: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 8737: { typedef _Res result_type; }; 8737: 8737: 8737: template 8737: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 8737: { typedef _Res result_type; }; 8737: 8737: 8737: template 8737: struct 8737: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 8737: { typedef _Res result_type; }; 8737: 8737: 8737: template::value> 8737: struct _Weak_result_type_memfun 8737: : _Weak_result_type_impl<_Functor> 8737: { }; 8737: 8737: 8737: template 8737: struct _Weak_result_type_memfun<_MemFunPtr, true> 8737: { 8737: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8737: }; 8737: 8737: 8737: template 8737: struct _Weak_result_type_memfun<_Func _Class::*, false> 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _Weak_result_type 8737: : _Weak_result_type_memfun::type> 8737: { }; 8737: 8737: 8737: template> 8737: struct _Refwrap_base_arg1 8737: { }; 8737: 8737: 8737: template 8737: struct _Refwrap_base_arg1<_Tp, 8737: __void_t> 8737: { 8737: typedef typename _Tp::argument_type argument_type; 8737: }; 8737: 8737: 8737: template> 8737: struct _Refwrap_base_arg2 8737: { }; 8737: 8737: 8737: template 8737: struct _Refwrap_base_arg2<_Tp, 8737: __void_t> 8737: { 8737: typedef typename _Tp::first_argument_type first_argument_type; 8737: typedef typename _Tp::second_argument_type second_argument_type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct _Reference_wrapper_base 8737: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1) > 8737: : unary_function<_T1, _Res> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1) const> 8737: : unary_function<_T1, _Res> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1) volatile> 8737: : unary_function<_T1, _Res> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1) const volatile> 8737: : unary_function<_T1, _Res> 8737: { }; 8737: 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1, _T2) > 8737: : binary_function<_T1, _T2, _Res> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 8737: : binary_function<_T1, _T2, _Res> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 8737: : binary_function<_T1, _T2, _Res> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 8737: : binary_function<_T1, _T2, _Res> 8737: { }; 8737: 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(*)(_T1) > 8737: : unary_function<_T1, _Res> 8737: { }; 8737: 8737: 8737: template 8737: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 8737: : binary_function<_T1, _T2, _Res> 8737: { }; 8737: 8737: template::value> 8737: struct _Reference_wrapper_base_memfun 8737: : _Reference_wrapper_base<_Tp> 8737: { }; 8737: 8737: template 8737: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 8737: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 8737: { 8737: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class reference_wrapper 8737: : public _Reference_wrapper_base_memfun::type> 8737: { 8737: _Tp* _M_data; 8737: 8737: public: 8737: typedef _Tp type; 8737: 8737: reference_wrapper(_Tp& __indata) noexcept 8737: : _M_data(std::__addressof(__indata)) 8737: { } 8737: 8737: reference_wrapper(_Tp&&) = delete; 8737: 8737: reference_wrapper(const reference_wrapper&) = default; 8737: 8737: reference_wrapper& 8737: operator=(const reference_wrapper&) = default; 8737: 8737: operator _Tp&() const noexcept 8737: { return this->get(); } 8737: 8737: _Tp& 8737: get() const noexcept 8737: { return *_M_data; } 8737: 8737: template 8737: typename result_of<_Tp&(_Args&&...)>::type 8737: operator()(_Args&&... __args) const 8737: { 8737: return std::__invoke(get(), std::forward<_Args>(__args)...); 8737: } 8737: }; 8737: 8737: 8737: 8737: template 8737: inline reference_wrapper<_Tp> 8737: ref(_Tp& __t) noexcept 8737: { return reference_wrapper<_Tp>(__t); } 8737: 8737: 8737: template 8737: inline reference_wrapper 8737: cref(const _Tp& __t) noexcept 8737: { return reference_wrapper(__t); } 8737: 8737: template 8737: void ref(const _Tp&&) = delete; 8737: 8737: template 8737: void cref(const _Tp&&) = delete; 8737: 8737: 8737: template 8737: inline reference_wrapper<_Tp> 8737: ref(reference_wrapper<_Tp> __t) noexcept 8737: { return __t; } 8737: 8737: 8737: template 8737: inline reference_wrapper 8737: cref(reference_wrapper<_Tp> __t) noexcept 8737: { return { __t.get() }; } 8737: 8737: 8737: 8737: 8737: } 8737: # 59 "/usr/include/c++/8/functional" 2 3 8737: # 1 "/usr/include/c++/8/bits/std_function.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/std_function.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/std_function.h" 3 8737: # 47 "/usr/include/c++/8/bits/std_function.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class bad_function_call : public std::exception 8737: { 8737: public: 8737: virtual ~bad_function_call() noexcept; 8737: 8737: const char* what() const noexcept; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __is_location_invariant 8737: : is_trivially_copyable<_Tp>::type 8737: { }; 8737: 8737: class _Undefined_class; 8737: 8737: union _Nocopy_types 8737: { 8737: void* _M_object; 8737: const void* _M_const_object; 8737: void (*_M_function_pointer)(); 8737: void (_Undefined_class::*_M_member_pointer)(); 8737: }; 8737: 8737: union [[gnu::may_alias]] _Any_data 8737: { 8737: void* _M_access() { return &_M_pod_data[0]; } 8737: const void* _M_access() const { return &_M_pod_data[0]; } 8737: 8737: template 8737: _Tp& 8737: _M_access() 8737: { return *static_cast<_Tp*>(_M_access()); } 8737: 8737: template 8737: const _Tp& 8737: _M_access() const 8737: { return *static_cast(_M_access()); } 8737: 8737: _Nocopy_types _M_unused; 8737: char _M_pod_data[sizeof(_Nocopy_types)]; 8737: }; 8737: 8737: enum _Manager_operation 8737: { 8737: __get_type_info, 8737: __get_functor_ptr, 8737: __clone_functor, 8737: __destroy_functor 8737: }; 8737: 8737: 8737: 8737: template 8737: struct _Simple_type_wrapper 8737: { 8737: _Simple_type_wrapper(_Tp __value) : __value(__value) { } 8737: 8737: _Tp __value; 8737: }; 8737: 8737: template 8737: struct __is_location_invariant<_Simple_type_wrapper<_Tp> > 8737: : __is_location_invariant<_Tp> 8737: { }; 8737: 8737: template 8737: class function; 8737: 8737: 8737: class _Function_base 8737: { 8737: public: 8737: static const std::size_t _M_max_size = sizeof(_Nocopy_types); 8737: static const std::size_t _M_max_align = __alignof__(_Nocopy_types); 8737: 8737: template 8737: class _Base_manager 8737: { 8737: protected: 8737: static const bool __stored_locally = 8737: (__is_location_invariant<_Functor>::value 8737: && sizeof(_Functor) <= _M_max_size 8737: && __alignof__(_Functor) <= _M_max_align 8737: && (_M_max_align % __alignof__(_Functor) == 0)); 8737: 8737: typedef integral_constant _Local_storage; 8737: 8737: 8737: static _Functor* 8737: _M_get_pointer(const _Any_data& __source) 8737: { 8737: const _Functor* __ptr = 8737: __stored_locally? std::__addressof(__source._M_access<_Functor>()) 8737: : __source._M_access<_Functor*>(); 8737: return const_cast<_Functor*>(__ptr); 8737: } 8737: 8737: 8737: 8737: static void 8737: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 8737: { 8737: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 8737: } 8737: 8737: 8737: 8737: static void 8737: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 8737: { 8737: __dest._M_access<_Functor*>() = 8737: new _Functor(*__source._M_access<_Functor*>()); 8737: } 8737: 8737: 8737: 8737: static void 8737: _M_destroy(_Any_data& __victim, true_type) 8737: { 8737: __victim._M_access<_Functor>().~_Functor(); 8737: } 8737: 8737: 8737: static void 8737: _M_destroy(_Any_data& __victim, false_type) 8737: { 8737: delete __victim._M_access<_Functor*>(); 8737: } 8737: 8737: public: 8737: static bool 8737: _M_manager(_Any_data& __dest, const _Any_data& __source, 8737: _Manager_operation __op) 8737: { 8737: switch (__op) 8737: { 8737: 8737: case __get_type_info: 8737: __dest._M_access() = &typeid(_Functor); 8737: break; 8737: 8737: case __get_functor_ptr: 8737: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 8737: break; 8737: 8737: case __clone_functor: 8737: _M_clone(__dest, __source, _Local_storage()); 8737: break; 8737: 8737: case __destroy_functor: 8737: _M_destroy(__dest, _Local_storage()); 8737: break; 8737: } 8737: return false; 8737: } 8737: 8737: static void 8737: _M_init_functor(_Any_data& __functor, _Functor&& __f) 8737: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 8737: 8737: template 8737: static bool 8737: _M_not_empty_function(const function<_Signature>& __f) 8737: { return static_cast(__f); } 8737: 8737: template 8737: static bool 8737: _M_not_empty_function(_Tp* __fp) 8737: { return __fp != nullptr; } 8737: 8737: template 8737: static bool 8737: _M_not_empty_function(_Tp _Class::* __mp) 8737: { return __mp != nullptr; } 8737: 8737: template 8737: static bool 8737: _M_not_empty_function(const _Tp&) 8737: { return true; } 8737: 8737: private: 8737: static void 8737: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 8737: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 8737: 8737: static void 8737: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 8737: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 8737: }; 8737: 8737: _Function_base() : _M_manager(nullptr) { } 8737: 8737: ~_Function_base() 8737: { 8737: if (_M_manager) 8737: _M_manager(_M_functor, _M_functor, __destroy_functor); 8737: } 8737: 8737: bool _M_empty() const { return !_M_manager; } 8737: 8737: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 8737: _Manager_operation); 8737: 8737: _Any_data _M_functor; 8737: _Manager_type _M_manager; 8737: }; 8737: 8737: template 8737: class _Function_handler; 8737: 8737: template 8737: class _Function_handler<_Res(_ArgTypes...), _Functor> 8737: : public _Function_base::_Base_manager<_Functor> 8737: { 8737: typedef _Function_base::_Base_manager<_Functor> _Base; 8737: 8737: public: 8737: static _Res 8737: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8737: { 8737: return (*_Base::_M_get_pointer(__functor))( 8737: std::forward<_ArgTypes>(__args)...); 8737: } 8737: }; 8737: 8737: template 8737: class _Function_handler 8737: : public _Function_base::_Base_manager<_Functor> 8737: { 8737: typedef _Function_base::_Base_manager<_Functor> _Base; 8737: 8737: public: 8737: static void 8737: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8737: { 8737: (*_Base::_M_get_pointer(__functor))( 8737: std::forward<_ArgTypes>(__args)...); 8737: } 8737: }; 8737: 8737: template 8737: class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> 8737: : public _Function_handler 8737: { 8737: typedef _Function_handler 8737: _Base; 8737: 8737: public: 8737: static _Res 8737: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8737: { 8737: return std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8737: std::forward<_ArgTypes>(__args)...); 8737: } 8737: }; 8737: 8737: template 8737: class _Function_handler 8737: : public _Function_base::_Base_manager< 8737: _Simple_type_wrapper< _Member _Class::* > > 8737: { 8737: typedef _Member _Class::* _Functor; 8737: typedef _Simple_type_wrapper<_Functor> _Wrapper; 8737: typedef _Function_base::_Base_manager<_Wrapper> _Base; 8737: 8737: public: 8737: static bool 8737: _M_manager(_Any_data& __dest, const _Any_data& __source, 8737: _Manager_operation __op) 8737: { 8737: switch (__op) 8737: { 8737: 8737: case __get_type_info: 8737: __dest._M_access() = &typeid(_Functor); 8737: break; 8737: 8737: case __get_functor_ptr: 8737: __dest._M_access<_Functor*>() = 8737: &_Base::_M_get_pointer(__source)->__value; 8737: break; 8737: 8737: default: 8737: _Base::_M_manager(__dest, __source, __op); 8737: } 8737: return false; 8737: } 8737: 8737: static void 8737: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8737: { 8737: std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8737: std::forward<_ArgTypes>(__args)...); 8737: } 8737: }; 8737: 8737: template 8737: using __check_func_return_type 8737: = __or_, is_same<_From, _To>, is_convertible<_From, _To>>; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class function<_Res(_ArgTypes...)> 8737: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 8737: private _Function_base 8737: { 8737: template::type> 8737: struct _Callable : __check_func_return_type<_Res2, _Res> { }; 8737: 8737: 8737: 8737: template 8737: struct _Callable : false_type { }; 8737: 8737: template 8737: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 8737: 8737: public: 8737: typedef _Res result_type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: function() noexcept 8737: : _Function_base() { } 8737: 8737: 8737: 8737: 8737: 8737: function(nullptr_t) noexcept 8737: : _Function_base() { } 8737: # 413 "/usr/include/c++/8/bits/std_function.h" 3 8737: function(const function& __x); 8737: # 422 "/usr/include/c++/8/bits/std_function.h" 3 8737: function(function&& __x) noexcept : _Function_base() 8737: { 8737: __x.swap(*this); 8737: } 8737: # 443 "/usr/include/c++/8/bits/std_function.h" 3 8737: template>, void>, 8737: typename = _Requires<_Callable<_Functor>, void>> 8737: function(_Functor); 8737: # 460 "/usr/include/c++/8/bits/std_function.h" 3 8737: function& 8737: operator=(const function& __x) 8737: { 8737: function(__x).swap(*this); 8737: return *this; 8737: } 8737: # 478 "/usr/include/c++/8/bits/std_function.h" 3 8737: function& 8737: operator=(function&& __x) noexcept 8737: { 8737: function(std::move(__x)).swap(*this); 8737: return *this; 8737: } 8737: # 492 "/usr/include/c++/8/bits/std_function.h" 3 8737: function& 8737: operator=(nullptr_t) noexcept 8737: { 8737: if (_M_manager) 8737: { 8737: _M_manager(_M_functor, _M_functor, __destroy_functor); 8737: _M_manager = nullptr; 8737: _M_invoker = nullptr; 8737: } 8737: return *this; 8737: } 8737: # 520 "/usr/include/c++/8/bits/std_function.h" 3 8737: template 8737: _Requires<_Callable::type>, function&> 8737: operator=(_Functor&& __f) 8737: { 8737: function(std::forward<_Functor>(__f)).swap(*this); 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: function& 8737: operator=(reference_wrapper<_Functor> __f) noexcept 8737: { 8737: function(__f).swap(*this); 8737: return *this; 8737: } 8737: # 546 "/usr/include/c++/8/bits/std_function.h" 3 8737: void swap(function& __x) noexcept 8737: { 8737: std::swap(_M_functor, __x._M_functor); 8737: std::swap(_M_manager, __x._M_manager); 8737: std::swap(_M_invoker, __x._M_invoker); 8737: } 8737: # 563 "/usr/include/c++/8/bits/std_function.h" 3 8737: explicit operator bool() const noexcept 8737: { return !_M_empty(); } 8737: # 576 "/usr/include/c++/8/bits/std_function.h" 3 8737: _Res operator()(_ArgTypes... __args) const; 8737: # 589 "/usr/include/c++/8/bits/std_function.h" 3 8737: const type_info& target_type() const noexcept; 8737: # 602 "/usr/include/c++/8/bits/std_function.h" 3 8737: template _Functor* target() noexcept; 8737: 8737: template const _Functor* target() const noexcept; 8737: 8737: 8737: 8737: private: 8737: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 8737: _Invoker_type _M_invoker; 8737: }; 8737: # 651 "/usr/include/c++/8/bits/std_function.h" 3 8737: template 8737: function<_Res(_ArgTypes...)>:: 8737: function(const function& __x) 8737: : _Function_base() 8737: { 8737: if (static_cast(__x)) 8737: { 8737: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 8737: _M_invoker = __x._M_invoker; 8737: _M_manager = __x._M_manager; 8737: } 8737: } 8737: 8737: template 8737: template 8737: function<_Res(_ArgTypes...)>:: 8737: function(_Functor __f) 8737: : _Function_base() 8737: { 8737: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 8737: 8737: if (_My_handler::_M_not_empty_function(__f)) 8737: { 8737: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 8737: _M_invoker = &_My_handler::_M_invoke; 8737: _M_manager = &_My_handler::_M_manager; 8737: } 8737: } 8737: 8737: template 8737: _Res 8737: function<_Res(_ArgTypes...)>:: 8737: operator()(_ArgTypes... __args) const 8737: { 8737: if (_M_empty()) 8737: __throw_bad_function_call(); 8737: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 8737: } 8737: 8737: 8737: template 8737: const type_info& 8737: function<_Res(_ArgTypes...)>:: 8737: target_type() const noexcept 8737: { 8737: if (_M_manager) 8737: { 8737: _Any_data __typeinfo_result; 8737: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 8737: return *__typeinfo_result._M_access(); 8737: } 8737: else 8737: return typeid(void); 8737: } 8737: 8737: template 8737: template 8737: _Functor* 8737: function<_Res(_ArgTypes...)>:: 8737: target() noexcept 8737: { 8737: const function* __const_this = this; 8737: const _Functor* __func = __const_this->template target<_Functor>(); 8737: return const_cast<_Functor*>(__func); 8737: } 8737: 8737: template 8737: template 8737: const _Functor* 8737: function<_Res(_ArgTypes...)>:: 8737: target() const noexcept 8737: { 8737: if (typeid(_Functor) == target_type() && _M_manager) 8737: { 8737: _Any_data __ptr; 8737: _M_manager(__ptr, _M_functor, __get_functor_ptr); 8737: return __ptr._M_access(); 8737: } 8737: else 8737: return nullptr; 8737: } 8737: # 743 "/usr/include/c++/8/bits/std_function.h" 3 8737: template 8737: inline bool 8737: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8737: { return !static_cast(__f); } 8737: 8737: 8737: template 8737: inline bool 8737: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8737: { return !static_cast(__f); } 8737: # 761 "/usr/include/c++/8/bits/std_function.h" 3 8737: template 8737: inline bool 8737: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8737: { return static_cast(__f); } 8737: 8737: 8737: template 8737: inline boolPreprocessed source stored into /tmp/cclwDBXX.out file, please attach this to your bugreport. 8737: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8737: { return static_cast(__f); } 8737: # 782 "/usr/include/c++/8/bits/std_function.h" 3 8737: template 8737: inline void 8737: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 8737: { __x.swap(__y); } 8737: 8737: 8737: } 8737: # 60 "/usr/include/c++/8/functional" 2 3 8737: # 68 "/usr/include/c++/8/functional" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 86 "/usr/include/c++/8/functional" 3 8737: template::value> 8737: class _Mem_fn_base 8737: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 8737: { 8737: using _Traits = _Mem_fn_traits<_MemFunPtr>; 8737: 8737: using _Arity = typename _Traits::__arity; 8737: using _Varargs = typename _Traits::__vararg; 8737: 8737: template 8737: friend struct _Bind_check_arity; 8737: 8737: _MemFunPtr _M_pmf; 8737: 8737: public: 8737: 8737: using result_type = typename _Traits::__result_type; 8737: 8737: explicit constexpr 8737: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 8737: 8737: template 8737: auto 8737: operator()(_Args&&... __args) const 8737: noexcept(noexcept( 8737: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 8737: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 8737: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 8737: }; 8737: 8737: 8737: template 8737: class _Mem_fn_base<_MemObjPtr, false> 8737: { 8737: using _Arity = integral_constant; 8737: using _Varargs = false_type; 8737: 8737: template 8737: friend struct _Bind_check_arity; 8737: 8737: _MemObjPtr _M_pm; 8737: 8737: public: 8737: explicit constexpr 8737: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 8737: 8737: template 8737: auto 8737: operator()(_Tp&& __obj) const 8737: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 8737: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 8737: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 8737: }; 8737: 8737: template 8737: struct _Mem_fn; 8737: 8737: template 8737: struct _Mem_fn<_Res _Class::*> 8737: : _Mem_fn_base<_Res _Class::*> 8737: { 8737: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 8737: }; 8737: # 158 "/usr/include/c++/8/functional" 3 8737: template 8737: inline _Mem_fn<_Tp _Class::*> 8737: mem_fn(_Tp _Class::* __pm) noexcept 8737: { 8737: return _Mem_fn<_Tp _Class::*>(__pm); 8737: } 8737: # 173 "/usr/include/c++/8/functional" 3 8737: template 8737: struct is_bind_expression 8737: : public false_type { }; 8737: # 184 "/usr/include/c++/8/functional" 3 8737: template 8737: struct is_placeholder 8737: : public integral_constant 8737: { }; 8737: # 199 "/usr/include/c++/8/functional" 3 8737: template struct _Placeholder { }; 8737: 8737: 8737: 8737: 8737: 8737: namespace placeholders 8737: { 8737: 8737: 8737: 8737: 8737: extern const _Placeholder<1> _1; 8737: extern const _Placeholder<2> _2; 8737: extern const _Placeholder<3> _3; 8737: extern const _Placeholder<4> _4; 8737: extern const _Placeholder<5> _5; 8737: extern const _Placeholder<6> _6; 8737: extern const _Placeholder<7> _7; 8737: extern const _Placeholder<8> _8; 8737: extern const _Placeholder<9> _9; 8737: extern const _Placeholder<10> _10; 8737: extern const _Placeholder<11> _11; 8737: extern const _Placeholder<12> _12; 8737: === BEGIN GCC DUMP === extern const _Placeholder<13> _13; 8737: extern const _Placeholder<14> _14; 8737: extern const _Placeholder<15> _15; 8737: extern const _Placeholder<16> _16; 8737: extern const _Placeholder<17> _17; 8737: extern const _Placeholder<18> _18; 8737: extern const _Placeholder<19> _19; 8737: extern const _Placeholder<20> _20; 8737: extern const _Placeholder<21> _21; 8737: extern const _Placeholder<22> _22; 8737: extern const _Placeholder<23> _23; 8737: extern const _Placeholder<24> _24; 8737: extern const _Placeholder<25> _25; 8737: extern const _Placeholder<26> _26; 8737: extern const _Placeholder<27> _27; 8737: extern const _Placeholder<28> _28; 8737: extern const _Placeholder<29> _29; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_placeholder<_Placeholder<_Num> > 8737: : public integral_constant 8737: { }; 8737: 8737: template 8737: struct is_placeholder > 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: 8737: template 8737: using _Safe_tuple_element_t 8737: = typename enable_if<(__i < tuple_size<_Tuple>::value), 8737: tuple_element<__i, _Tuple>>::type::type; 8737: # 275 "/usr/include/c++/8/functional" 3 8737: template::value, 8737: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 8737: class _Mu; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class _Mu, false, false> 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: template 8737: _Tp& 8737: operator()(_CVRef& __arg, _Tuple&) const volatile 8737: { return __arg.get(); } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class _Mu<_Arg, true, false> 8737: { 8737: public: 8737: template 8737: auto 8737: operator()(_CVArg& __arg, 8737: tuple<_Args...>& __tuple) const volatile 8737: -> decltype(__arg(declval<_Args>()...)) 8737: { 8737: 8737: typedef typename _Build_index_tuple::__type 8737: _Indexes; 8737: return this->__call(__arg, __tuple, _Indexes()); 8737: } 8737: 8737: private: 8737: 8737: 8737: template 8737: auto 8737: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 8737: const _Index_tuple<_Indexes...>&) const volatile 8737: -> decltype(__arg(declval<_Args>()...)) 8737: { 8737: return __arg(std::get<_Indexes>(std::move(__tuple))...); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class _Mu<_Arg, false, true> 8737: { 8737: public: 8737: template 8737: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 8737: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 8737: { 8737: return 8737: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class _Mu<_Arg, false, false> 8737: { 8737: public: 8737: template 8737: _CVArg&& 8737: operator()(_CVArg&& __arg, _Tuple&) const volatile 8737: { return std::forward<_CVArg>(__arg); } 8737: }; 8737: 8737: 8737: template 8737: inline auto 8737: __volget(volatile tuple<_Tp...>& __tuple) 8737: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 8737: { return std::get<_Ind>(const_cast&>(__tuple)); } 8737: 8737: 8737: template 8737: inline auto 8737: __volget(const volatile tuple<_Tp...>& __tuple) 8737: -> __tuple_element_t<_Ind, tuple8768: // Target: x86_64-linux-gnu 8768: // 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,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --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-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu 8768: // Thread model: posix 8768: // gcc version 8.0.0 20180110 (experimental) [trunk revision 256425] (Ubuntu 8-20180110-1ubuntu1) 8768: // 8768: // In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QString:1, 8768: // from /<>/templates/lib/exception.h:26, 8768: // from /<>/templates/lib/template.h:24, 8768: // from /<>/templates/lib/engine.h:24, 8768: // from /<>/templates/tests/testgenericcontainers.cpp:23: 8768: // /<>/templates/tests/testgenericcontainers.cpp: In instantiation of ‘QString getTemplate() [with T = int]’: 8768: // /<>/templates/tests/testgenericcontainers.cpp:275:60: required from ‘void doTestSequentialContainer(bool) [with Container = QSet]’ 8768: // /<>/templates/tests/testgenericcontainers.cpp:329:37: required from ‘void doTestContainers() [with T = int]’ 8768: // /<>/templates/tests/testgenericcontainers.cpp:334:28: required from here 8768: // /<>/templates/tests/testgenericcontainers.cpp:154:10: internal compiler error: Segmentation fault 8768: // return QStringLiteral("{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}"); 8768: // ^~~~~~~~~~~~~~ 8768: // 0xbeba0f crash_signal 8768: // ../../src/gcc/toplev.c:325 8768: // 0x71b0f8 determine_visibility(tree_node*) 8768: // ../../src/gcc/cp/decl2.c:2472 8768: // 0x7aec3d lookup_template_class_1 8768: // ../../src/gcc/cp/pt.c:9145 8768: // 0x7aec3d lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) 8768: // ../../src/gcc/cp/pt.c:9161 8768: // 0x598ee5 tsubst_aggr_type 8768: // ../../src/gcc/cp/pt.c:12008 8768: // 0x7a6a5b tsubst(tree_node*, tree_node*, int, tree_node*) 8768: // ../../src/gcc/cp/pt.c:13643 8768: // 0x7b604c tsubst_decl 8768: // ../../src/gcc/cp/pt.c:12940 8768: // 0x7a6d7f tsubst(tree_node*, tree_node*, int, tree_node*) 8768: // ../../src/gcc/cp/pt.c:13561 8768: // 0x7a17a2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:16046 8768: // 0x7a0fe5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:15973 8768: // 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:16236 8768: // 0x7a10fb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:16236 8768: // 0x7a2d92 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:15958 8768: // 0x7a2d92 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) 8768: // ../../src/gcc/cp/pt.c:16970 8768: // 0x7a41e7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8768: // ../../src/gcc/cp/pt.c:18260 8768: // 0x7a4ff8 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8768: // ../../src/gcc/cp/pt.c:17577 8768: // 0x7a1160 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) 8768: // ../../src/gcc/cp/pt.c:17014 8768: // 0x7a1160 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:16752 8768: // 0x7a0cc5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:15983 8768: // 0x7a0fe5 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) 8768: // ../../src/gcc/cp/pt.c:15973 8768: // Please submit a full bug report, 8768: // with preprocessed source if appropriate. 8768: // Please include the complete backtrace with any bug report. 8768: // See for instructions. 8768: 8768: // /usr/lib/gcc/x86_64-linux-gnu/8/cc1plus -quiet -I /<>/obj-x86_64-linux-gnu/templates/tests -I /<>/templates/tests -I /<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include -I /<>/obj-x86_64-linux-gnu/templates/lib -I /<>/templates/lib -imultiarch x86_64-linux-gnu -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-x86_64-linux-gnu" -D QT_TESTLIB_LIB -D QT_USE_QSTRINGBUILDER -D cxx_auto_type -D _FORTIFY_SOURCE=2 -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest /<>/templates/tests/testgenericcontainers.cpp -quiet -dumpbase testgenericcontainers.cpp -mtune=generic -march=x86-64 -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 8768: 8768: # 1 "/<>/templates/tests/testgenericcontainers.cpp" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/tests//" 8768: # 1 "" 8768: # 1 "" 8768: # 1 "/usr/include/stdc-predef.h" 1 3 4 8768: # 1 "" 2 8768: # 1 "/<>/templates/tests/testgenericcontainers.cpp" 8768: # 23 "/<>/templates/tests/testgenericcontainers.cpp" 8768: # 1 "/<>/templates/lib/engine.h" 1 8768: # 24 "/<>/templates/lib/engine.h" 8768: # 1 "/<>/templates/lib/template.h" 1 8768: # 24 "/<>/templates/lib/template.h" 8768: # 1 "/<>/templates/lib/exception.h" 1 8768: # 24 "/<>/templates/lib/exception.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/exception.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QString" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 1 3 4 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: # 1 "/usr/include/x8<_Tp...>> const volatile& 8737: { return std::get<_Ind>(const_cast&>(__tuple)); } 8737: 8737: 8737: template 8737: struct _Bind; 8737: 8737: template 8737: class _Bind<_Functor(_Bound_args...)> 8737: : public _Weak_result_type<_Functor> 8737: { 8737: typedef typename _Build_index_tuple::__type 8737: _Bound_indexes; 8737: 8737: _Functor _M_f; 8737: tuple<_Bound_args...> _M_bound_args; 8737: 8737: 8737: template 8737: _Result 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8737: { 8737: return std::__invoke(_M_f, 8737: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8737: ); 8737: } 8737: 8737: 8737: template 8737: _Result 8737: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8737: { 8737: return std::__invoke(_M_f, 8737: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8737: ); 8737: } 8737: 8737: 8737: template 8737: _Result 8737: __call_v(tuple<_Args...>&& __args, 8737: _Index_tuple<_Indexes...>) volatile 8737: { 8737: return std::__invoke(_M_f, 8737: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8737: ); 8737: } 8737: 8737: 8737: template 8737: _Result 8737: __call_c_v(tuple<_Args...>&& __args, 8737: _Index_tuple<_Indexes...>) const volatile 8737: { 8737: return std::__invoke(_M_f, 8737: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8737: ); 8737: } 8737: 8737: template 8737: using _Mu_type = decltype( 8737: _Mu::type>()( 8737: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 8737: 8737: template 8737: using _Res_type_impl 8737: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 8737: 8737: template 8737: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 8737: 8737: template 8737: using __dependent = typename 8737: enable_if::value+1), _Functor>::type; 8737: 8737: template class __cv_quals> 8737: using _Res_type_cv = _Res_type_impl< 8737: typename __cv_quals<__dependent<_CallArgs>>::type, 8737: _CallArgs, 8737: typename __cv_quals<_Bound_args>::type...>; 8737: 8737: public: 8737: template 8737: explicit _Bind(const _Functor& __f, _Args&&... __args) 8737: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8737: { } 8737: 8737: template 8737: explicit _Bind(_Functor&& __f, _Args&&... __args) 8737: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8737: { } 8737: 8737: _Bind(const _Bind&) = default; 8737: 8737: _Bind(_Bind&& __b) 8737: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8737: { } 8737: 8737: 8737: template>> 8737: _Result 8737: operator()(_Args&&... __args) 8737: { 8737: return this->__call<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: 8737: 8737: template, add_const>> 8737: _Result 8737: operator()(_Args&&... __args) const 8737: { 8737: return this->__call_c<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: # 505 "/usr/include/c++/8/functional" 3 8737: template, add_volatile>> 8737: 8737: _Result 8737: operator()(_Args&&... __args) volatile 8737: { 8737: return this->__call_v<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: 8737: 8737: template, add_cv>> 8737: 8737: _Result 8737: operator()(_Args&&... __args) const volatile 8737: { 8737: return this->__call_c_v<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: }; 8737: 8737: 8737: template 8737: struct _Bind_result; 8737: 8737: template 8737: class _Bind_result<_Result, _Functor(_Bound_args...)> 8737: { 8737: typedef typename _Build_index_tuple::__type 8737: _Bound_indexes; 8737: 8737: _Functor _M_f; 8737: tuple<_Bound_args...> _M_bound_args; 8737: 8737: 8737: template 8737: using __enable_if_void 8737: = typename enable_if{}>::type; 8737: 8737: template 8737: using __disable_if_void 8737: = typename enable_if{}, _Result>::type; 8737: 8737: 8737: template 8737: __disable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8737: { 8737: return std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (std::get<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __enable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8737: { 8737: std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (std::get<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __disable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8737: { 8737: return std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (std::get<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __enable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8737: { 8737: std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (std::get<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __disable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8737: { 8737: return std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (__volget<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __enable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8737: { 8737: std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (__volget<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __disable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, 8737: _Index_tuple<_Indexes...>) const volatile 8737: { 8737: return std::__invoke(_M_f, _Mu<_Bound_args>() 8737: (__volget<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: 8737: template 8737: __enable_if_void<_Res> 8737: __call(tuple<_Args...>&& __args, 8737: _Index_tuple<_Indexes...>) const volatile 8737: { 8737: std::__inv6_64-linux-gnu/qt5/QtCore/qchar.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: # 1 "/usr/include/c++/8/type_traits" 1 3 4 8768: # 32 "/usr/include/c++/8/type_traits" 3 4 8768: 8768: # 33 "/usr/include/c++/8/type_traits" 3 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 1 3 8768: # 236 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8768: 8768: # 236 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8768: namespace std 8768: { 8768: typedef long unsigned int size_t; 8768: typedef long int ptrdiff_t; 8768: 8768: 8768: typedef decltype(nullptr) nullptr_t; 8768: 8768: } 8768: # 258 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8768: namespace std 8768: { 8768: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8768: } 8768: namespace __gnu_cxx 8768: { 8768: inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } 8768: } 8768: # 508 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 3 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/os_defines.h" 1 3 8768: # 39 "/usr/include/x86_64-linux-gnu/c++/8/bits/os_defines.h" 3 8768: # 1 "/usr/include/features.h" 1 3 4 8768: # 419 "/usr/include/features.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 8768: # 419 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 420 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 8768: # 421 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 8768: # 420 "/usr/include/features.h" 2 3 4 8768: # 443 "/usr/include/features.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 8768: # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 8768: # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 8768: # 444 "/usr/include/features.h" 2 3 4 8768: # 40 "/usr/include/x86_64-linux-gnu/c++/8/bits/os_defines.h" 2 3 8768: # 509 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 2 3 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/cpu_defines.h" 1 3 8768: # 512 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++config.h" 2 3 8768: # 39 "/usr/include/c++/8/type_traits" 2 3 8768: 8768: 8768: 8768: namespace std 8768: { 8768: typedef short unsigned int uint_least16_t; 8768: typedef unsigned int uint_least32_t; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 68 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct integral_constant 8768: { 8768: static constexpr _Tp value = __v; 8768: typedef _Tp value_type; 8768: typedef integral_constant<_Tp, __v> type; 8768: constexpr operator value_type() const noexcept { return value; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: template 8768: constexpr _Tp integral_constant<_Tp, __v>::value; 8768: 8768: 8768: typedef integral_constant true_type; 8768: 8768: 8768: typedef integral_constant false_type; 8768: 8768: template 8768: using __bool_constant = integral_constant; 8768: # 103 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct conditional; 8768: 8768: template 8768: struct __or_; 8768: 8768: template<> 8768: struct __or_<> 8768: : public false_type 8768: { }; 8768: 8768: template 8768: struct __or_<_B1> 8768: : public _B1 8768: { }; 8768: 8768: template 8768: struct __or_<_B1, _B2> 8768: : public conditional<_B1::value, _B1, _B2>::type 8768: { }; 8768: 8768: template 8768: struct __or_<_B1, _B2, _B3, _Bn...> 8768: : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type 8768: { }; 8768: 8768: template 8768: struct __and_; 8768: 8768: template<> 8768: struct __and_<> 8768: : public true_type 8768: { }; 8768: 8768: template 8768: struct __and_<_B1> 8768: : public _B1 8768: { }; 8768: 8768: template 8768: struct __and_<_B1, _B2> 8768: : public conditional<_B1::value, _B2, _B1>::type 8768: { }; 8768: 8768: template 8768: struct __and_<_B1, _B2, _B3, _Bn...> 8768: : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type 8768: { }; 8768: 8768: template 8768: struct __not_ 8768: : public __bool_constant 8768: { }; 8768: # 192 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct __success_type 8768: { typedef _Tp type; }; 8768: 8768: struct __failure_type 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct remove_cv; 8768: 8768: template 8768: struct __is_void_helper 8768: : public false_type { }; 8768: 8768: template<> 8768: struct __is_void_helper 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_void 8768: : public __is_void_helper::type>::type 8768: { }; 8768: 8768: template 8768: struct __is_integral_helper 8768: : public false_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: template<> 8768: struct __is_integral_helper<__int128> 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_integral_helper 8768: : public true_type { }; 8768: # 324 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct is_integral 8768: : public __is_integral_helper::type>::type 8768: { }; 8768: 8768: template 8768: struct __is_floating_point_helper 8768: : public false_type { }; 8768: 8768: template<> 8768: struct __is_floating_point_helper 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_floating_point_hoke(_M_f, _Mu<_Bound_args>() 8737: (__volget<_Indexes>(_M_bound_args), __args)...); 8737: } 8737: 8737: public: 8737: typedef _Result result_type; 8737: 8737: template 8737: explicit _Bind_result(const _Functor& __f, _Args&&... __args) 8737: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8737: { } 8737: 8737: template 8737: explicit _Bind_result(_Functor&& __f, _Args&&... __args) 8737: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8737: { } 8737: 8737: _Bind_result(const _Bind_result&) = default; 8737: 8737: _Bind_result(_Bind_result&& __b) 8737: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8737: { } 8737: 8737: 8737: template 8737: result_type 8737: operator()(_Args&&... __args) 8737: { 8737: return this->__call<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: 8737: 8737: template 8737: result_type 8737: operator()(_Args&&... __args) const 8737: { 8737: return this->__call<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: 8737: 8737: template 8737: 8737: result_type 8737: operator()(_Args&&... __args) volatile 8737: { 8737: return this->__call<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: 8737: 8737: template 8737: 8737: result_type 8737: operator()(_Args&&... __args) const volatile 8737: { 8737: return this->__call<_Result>( 8737: std::forward_as_tuple(std::forward<_Args>(__args)...), 8737: _Bound_indexes()); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression<_Bind<_Signature> > 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression > 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression > 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression> 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression<_Bind_result<_Result, _Signature>> 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression> 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression> 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct is_bind_expression> 8737: : public true_type { }; 8737: 8737: template 8737: struct _Bind_check_arity { }; 8737: 8737: template 8737: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 8737: { 8737: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 8737: "Wrong number of arguments for function"); 8737: }; 8737: 8737: template 8737: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 8737: { 8737: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 8737: "Wrong number of arguments for function"); 8737: }; 8737: 8737: template 8737: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 8737: { 8737: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 8737: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 8737: static_assert(_Varargs::value 8737: ? sizeof...(_BoundArgs) >= _Arity::value + 1 8737: : sizeof...(_BoundArgs) == _Arity::value + 1, 8737: "Wrong number of arguments for pointer-to-member"); 8737: }; 8737: 8737: 8737: 8737: 8737: template::type> 8737: using __is_socketlike = __or_, is_enum<_Tp2>>; 8737: 8737: template 8737: struct _Bind_helper 8737: : _Bind_check_arity::type, _BoundArgs...> 8737: { 8737: typedef typename decay<_Func>::type __func_type; 8737: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct _Bind_helper 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline typename 8737: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 8737: bind(_Func&& __f, _BoundArgs&&... __args) 8737: { 8737: typedef _Bind_helper __helper_type; 8737: return typename __helper_type::type(std::forward<_Func>(__f), 8737: std::forward<_BoundArgs>(__args)...); 8737: } 8737: 8737: template 8737: struct _Bindres_helper 8737: : _Bind_check_arity::type, _BoundArgs...> 8737: { 8737: typedef typename decay<_Func>::type __functor_type; 8737: typedef _Bind_result<_Result, 8737: __functor_type(typename decay<_BoundArgs>::type...)> 8737: type; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline 8737: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 8737: bind(_Func&& __f, _BoundArgs&&... __args) 8737: { 8737: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 8737: return typename __helper_type::type(std::forward<_Func>(__f), 8737: std::forward<_BoundArgs>(__args)...); 8737: } 8737: # 1192 "/usr/include/c++/8/functional" 3 8737: 8737: } 8737: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 69 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8737: template inline bool qMapLessThanKey(const Key &key1, const Key &key2) 8737: { 8737: return key1 < key2; 8737: } 8737: 8737: template inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key2) 8737: { 8737: return std::less()(key1, key2); 8737: } 8737: 8737: struct QMapDataBase; 8737: template struct QMapData; 8737: 8737: struct __attribute__((visibility("default"))) QMapNodeBase 8737: { 8737: quintptr p; 8737: QMapNodeBase *left; 8737: QMapNodeBase *right; 8737: 8737: enum Color { Red = 0, Black = 1 }; 8737: enum { Mask = 3 }; 8737: 8737: const QMapNodeBase *nextNode() const; 8737: QMapNodeBase *nextNode() { return const_cast(const_cast(this)->nextNode()); } 8737: const QMapNodeBase *previousNode() const; 8737: QMapNodeBase *previousNode() { return const_cast(const_cast(this)->previousNode()); } 8737: 8737: Color color() const { return Color(p & 1); } 8737: void setColor(Color c) { if (c == Black) p |= Black; else p &= ~Black; } 8737: QMapNodeBase *parent() const { return reinterpret_cast(p & ~Mask); } 8737: void setParent(QMapNodeBase *pp) { p = (p & Mask) | quintptr(pp); } 8737: 8737: template 8737: static typename std::enable_if::isComplex>::type 8737: callDestructorIfNecessary(T &t) noexcept { (void)t;; t.~T(); } 8737: template 8737: static typename std::enable_if::isComplex>::type 8737: callDestructorIfNecessary(T &) noexcept {} 8737: }; 8737: 8737: template 8737: struct QMapNode : public QMapNodeBase 8737: { 8737: Key key; 8737: T value; 8737: 8737: inline QMapNode *leftNode() const { return static_cast(left); } 8737: inline QMapNode *rightNode() const { return static_cast(right); } 8737: 8737: inline const QMapNode *nextNode() const { return static_cast(QMapNodeBase::nextNode()); } 8737: inline const QMapNode *previousNode() const { return static_cast(QMapNodeBase::previousNode()); } 8737: inline QMapNode *nextNode() { return static_cast(QMapNodeBase::nextNode()); } 8737: inline QMapNode *previousNode() { return static_cast(QMapNodeBase::previousNode()); } 8737: 8737: QMapNode *copy(QMapData *d) const; 8737: 8737: void destroySubTree() 8737: { 8737: callDestructorIfNecessary(key); 8737: callDestructorIfNecessary(value); 8737: doDestroySubTree(std::integral_constant::isComplex || QTypeInfo::isComplex>()); 8737: } 8737: 8737: QMapNode *lowerBound(const Key &key); 8737: QMapNode *upperBound(const Key &key); 8737: 8737: private: 8737: void doDestroySubTree(std::false_type) {} 8737: void doDestroySubTree(std::true_type) 8737: { 8737: if (left) 8737: leftNode()->destroySubTree(); 8737: if (right) 8737: rightNode()->destroySubTree(); 8737: } 8737: 8737: QMapNode() = delete; 8737: QMapNode(const QMapNode &) = delete; QMapNode &operator=(const QMapNode &) = delete; 8737: }; 8737: 8737: template 8737: inline QMapNode *QMapNode::lowerBound(const Key &akey) 8737: { 8737: QMapNode *n = this; 8737: QMapNode *lastNode = nullptr; 8737: while (n) { 8737: if (!qMapLessThanKey(n->key, akey)) { 8737: lastNode = n; 8737: n = n->leftNode(); 8737: } else { 8737: n = n->rightNode(); 8737: } 8737: } 8737: return lastNode; 8737: } 8737: 8737: template 8737: inline QMapNode *QMapNode::upperBound(const Key &akey) 8737: { 8737: QMapNode *n = this; 8737: QMapNode *lastNode = nullptr; 8737: while (n) { 8737: if (qMapLessThanKey(akey, n->key)) { 8737: lastNode = n; 8737: n = n->leftNode(); 8737: } else { 8737: n = n->rightNode(); 8737: } 8737: } 8737: return lastNode; 8737: } 8737: 8737: 8737: 8737: struct __attribute__((visibility("default"))) QMapDataBase 8737: { 8737: QtPrivate::RefCount ref; 8737: int size; 8737: QMapNodeBase header; 8737: QMapNodeBase *mostLeftNode; 8737: 8737: void rotateLeft(QMapNodeBase *x); 8737: void rotateRight(QMapNodeBase *x); 8737: void rebalance(QMapNodeBase *x); 8737: void freeNodeAndRebalance(QMapNodeBase *z); 8737: void recalcMostLeftNode(); 8737: 8737: QMapNodeBase *createNode(int size, int alignment, QMapNodeBase *parent, bool left); 8737: void freeTree(QMapNodeBase *root, int alignment); 8737: 8737: static const QMapDataBase shared_null; 8737: 8737: static QMapDataBase *createData(); 8737: static void freeData(QMapDataBase *d); 8737: }; 8737: 8737: template 8737: struct QMapData : public QMapDataBase 8737: { 8737: typedef QMapNode Node; 8737: 8737: Node *root() const { return static_cast(header.left); } 8737: 8737: 8737: 8737: const Node *end() const { return reinterpret_cast(&header); } 8737: Node *end() { return reinterpret_cast(&header); } 8737: const Node *begin() const { if (root()) return static_cast(mostLeftNode); return end(); } 8737: Node *begin() { if (root()) return static_cast(mostLeftNode); return end(); } 8737: 8737: void deleteNode(Node *z); 8737: Node *findNode(const Key &akey) const; 8737: void nodeRange(const Key &akey, Node **firstNode, Node **lastNode); 8737: 8737: Node *createNode(const Key &k, const T &v, Node *parent = nullptr, bool left = false) 8737: { 8737: Node *n = static_cast(QMapDataBase::createNode(sizeof(Node), alignof(Node), 8737: parent, left)); 8737: try { 8737: new (&n->key) Key(k); 8737: try { 8737: new (&n->value) T(v); 8737: } catch (...) { 8737: n->key.~Key(); 8737: throw; 8737: } 8737: } catch (...) { 8737: QMapDataBase::freeNodeAndRebalance(n); 8737: throw; 8737: } 8737: return n; 8737: } 8737: 8737: static QMapData *create() { 8737: return static_cast(createData()); 8737: } 8737: 8737: void destroy() { 8737: if (root()) { 8737: root()->destroySubTree(); 8737: freeTree(header.left, alignof(Node)); 8737: } 8737: freeData(this); 8737: } 8737: }; 8737: 8737: template 8737: QMapNode *QMapNode::copy(QMapData *d) const 8737: { 8737: QMapNode *n = d->createNode(key, value); 8737: n->setColor(color()); 8737: if (left) { 8737: n->left = leftNode()->copy(d); 8737: n->left->setParent(n); 8737: } else { 8737: n->left = nullptr; 8737: } 8737: if (right) { 8737: n->right = rightNode()->copy(d); 8737: n->right->setParent(n); 8737: } else { 8737: n->right = nullptr; 8737: } 8737: return n; 8737: } 8737: 8737: template 8737: void QMapData::deleteNode(QMapNode *z) 8737: { 8737: QMapNodeBase::callDestructorIfNecessary(z->key); 8737: QMapNodeBase::callDestructorIfNecessary(z->value); 8737: freeNodeAndRebalance(z); 8737: } 8737: 8737: template 8737: QMapNode *QMapData::findNode(const Key &akey) const 8737: { 8737: if (Node *r = root()) { 8737: Node *lb = r->lowerBound(akey); 8737: if (lb && !qMapLessThanKey(akey, lb->key)) 8737: return lb; 8737: } 8737: return nullptr; 8737: } 8737: 8737: 8737: template 8737: void QMapData::nodeRange(const Key &akey, QMapNode **firstNode, QMapNode **lastNode) 8737: { 8737: Node *n = root(); 8737: Node *l = end(); 8737: while (n) { 8737: if (qMapLessThanKey(akey, n->key)) { 8737: l = n; 8737: n = n->leftNode(); 8737: } else if (qMapLessThanKey(n->key, akey)) { 8737: n = n->rightNode(); 8737: } else { 8737: *firstNode = n->leftNode() ? n->leftNode()->lowerBound(akey) : nullptr; 8737: if (!*firstNode) 8737: *firstNode = n; 8737: *lastNode = n->rightNode() ? n->rightNode()->upperBound(akey) : nullptr; 8737: if (!*lastNode) 8737: *lastNode = l; 8737: return; 8737: } 8737: } 8737: *firstNode = *lastNode = l; 8737: } 8737: 8737: 8737: template 8737: class QMap 8737: { 8737: typedef QMapNode Node; 8737: 8737: QMapData *d; 8737: 8737: public: 8737: inline QMap() noexcept : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } 8737: 8737: inline QMap(std::initializer_list > list) 8737: : d(static_cast *>(const_cast 8768: : public true_type { }; 8768: 8768: template<> 8768: struct __is_floating_point_helper 8768: : public true_type { }; 8768: 8768: 8768: template<> 8768: struct __is_floating_point_helper<__float128> 8768: : public true_type { }; 8768: 8768: 8768: 8768: template 8768: struct is_floating_point 8768: : public __is_floating_point_helper::type>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_array 8768: : public false_type { }; 8768: 8768: template 8768: struct is_array<_Tp[_Size]> 8768: : public true_type { }; 8768: 8768: template 8768: struct is_array<_Tp[]> 8768: : public true_type { }; 8768: 8768: template 8768: struct __is_pointer_helper 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_pointer_helper<_Tp*> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_pointer 8768: : public __is_pointer_helper::type>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_lvalue_reference 8768: : public false_type { }; 8768: 8768: template 8768: struct is_lvalue_reference<_Tp&> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_rvalue_reference 8768: : public false_type { }; 8768: 8768: template 8768: struct is_rvalue_reference<_Tp&&> 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function; 8768: 8768: template 8768: struct __is_member_object_pointer_helper 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_member_object_pointer_helper<_Tp _Cp::*> 8768: : public integral_constant::value> { }; 8768: 8768: 8768: template 8768: struct is_member_object_pointer 8768: : public __is_member_object_pointer_helper< 8768: typename remove_cv<_Tp>::type>::type 8768: { }; 8768: 8768: template 8768: struct __is_member_function_pointer_helper 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_member_function_pointer_helper<_Tp _Cp::*> 8768: : public integral_constant::value> { }; 8768: 8768: 8768: template 8768: struct is_member_function_pointer 8768: : public __is_member_function_pointer_helper< 8768: typename remove_cv<_Tp>::type>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_enum 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_union 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_class 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_function 8768: : public false_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) const > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) const & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) const && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) const > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) const & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) const && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) volatile > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) volatile & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) volatile && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) volatile > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) volatile & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) volatile && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) const volatile > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) const volatile & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes...) const volatile && > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) const volatile > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) const volatile & > 8768: : public true_type { }; 8768: 8768: template 8768: struct is_function<_Res(_ArgTypes......) const volatile && > 8768: : public true_type { }; 8768: 8768: 8768: 8768: template 8768: struct __is_null_pointer_helper 8768: : public false_type { }; 8768: 8768: template<> 8768: struct __is_null_pointer_helper 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_null_pointer 8768: : public __is_null_pointer_helper::type>::type 8768: { }; 8768: 8768: 8768: template 8768: struct __is_nullptr_t 8768: : public is_null_pointer<_Tp> 8768: { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct is_reference 8768: : public __or_, 8768: is_rvalue_reference<_Tp>>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_arithmetic 8768: : public __or_, is_floating_point<_Tp>>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_fundamental 8768: : public __or_, is_void<_Tp>, 8768: is_null_pointer<_Tp>>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_object 8768: : public __not_<__or_, is_reference<_Tp>, 8768: is_void<_Tp>>>::type 8768: { }; 8768: 8768: template 8768: struct is_member_pointer; 8768: 8768: 8768: template 8768: struct is_scalar 8768: : public __or_, is_enum<_Tp>, is_pointer<_Tp>, 8768: is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_compound 8768: : public integral_constant::value> { }; 8768: 8768: template 8768: struct __is_member_pointer_helper 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_member_pointer_helper<_Tp _Cp::*> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_member_pointer 8768: : public __is_member_pointer_helper::type>::type 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct __is_referenceable 8768: : public __or_, is_reference<_Tp>>::type 8768: { }; 8768: 8768: template 8768: struct __is_referenceable<_Res(_Args...) > 8768: : public true_type 8768: { }; 8768: 8768: template 8768: struct __is_referenceable<_Res(_Args......) > 8768: : public true_type 8768: { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct is_const 8768: : public false_type { }; 8768: 8768: template 8768: struct is_const<_Tp const> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_volatile 8768: : public false_type { }; 8768: 8768: template 8768: struct is_volatile<_Tp volatile> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_trivial 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_trivially_copyable 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_standard_layout 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct is_pod 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_literal_type 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_empty 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_polymorphic 8768: : public integral_constant 8768: { }; 8768: # 724 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct is_abstract 8768: : public integral_constant 8768: { }; 8768: 8768: template::value> 8768: struct __is_signed_helper 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_signed_helper<_Tp, true> 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_signed 8768: : public __is_signed_helper<_Tp>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_unsigned 8768: : public __and_, __not_>> 8768: { }; 8768: # 759 "/usr/include/c++/8/type_traits" 3 8768: template 8768: _Up 8768: __declval(int); 8768: 8768: template(&QMapDataBase::shared_null))) 8737: { 8737: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8737: insert(it->first, it->second); 8737: } 8737: 8737: QMap(const QMap &other); 8737: 8737: inline ~QMap() { if (!d->ref.deref()) d->destroy(); } 8737: 8737: QMap &operator=(const QMap &other); 8737: 8737: inline QMap(QMap &&other) noexcept 8737: : d(other.d) 8737: { 8737: other.d = static_cast *>( 8737: const_cast(&QMapDataBase::shared_null)); 8737: } 8737: 8737: inline QMap &operator=(QMap &&other) noexcept 8737: { QMap moved(std::move(other)); swap(moved); return *this; } 8737: 8737: inline void swap(QMap &other) noexcept { qSwap(d, other.d); } 8737: explicit QMap(const typename std::map &other); 8737: std::map toStdMap() const; 8737: 8737: bool operator==(const QMap &other) const; 8737: inline bool operator!=(const QMap &other) const { return !(*this == other); } 8737: 8737: inline int size() const { return d->size; } 8737: 8737: inline bool isEmpty() const { return d->size == 0; } 8737: 8737: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8737: inline bool isDetached() const { return !d->ref.isShared(); } 8737: 8737: inline void setSharable(bool sharable) 8737: { 8737: if (sharable == d->ref.isSharable()) 8737: return; 8737: if (!sharable) 8737: detach(); 8737: 8737: d->ref.setSharable(sharable); 8737: } 8737: 8737: inline bool isSharedWith(const QMap &other) const { return d == other.d; } 8737: 8737: void clear(); 8737: 8737: int remove(const Key &key); 8737: T take(const Key &key); 8737: 8737: bool contains(const Key &key) const; 8737: const Key key(const T &value, const Key &defaultKey = Key()) const; 8737: const T value(const Key &key, const T &defaultValue = T()) const; 8737: T &operator[](const Key &key); 8737: const T operator[](const Key &key) const; 8737: 8737: QList uniqueKeys() const; 8737: QList keys() const; 8737: QList keys(const T &value) const; 8737: QList values() const; 8737: QList values(const Key &key) const; 8737: int count(const Key &key) const; 8737: 8737: inline const Key &firstKey() const { do { } while ((false) && (!isEmpty())); return constBegin().key(); } 8737: inline const Key &lastKey() const { do { } while ((false) && (!isEmpty())); return (constEnd() - 1).key(); } 8737: 8737: inline T &first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *constBegin(); } 8737: inline T &last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8737: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(constEnd() - 1); } 8737: 8737: class const_iterator; 8737: 8737: class iterator 8737: { 8737: friend class const_iterator; 8737: Node *i; 8737: 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef T *pointer; 8737: typedef T &reference; 8737: 8737: inline iterator() : i(nullptr) { } 8737: inline iterator(Node *node) : i(node) { } 8737: 8737: inline const Key &key() const { return i->key; } 8737: inline T &value() const { return i->value; } 8737: inline T &operator*() const { return i->value; } 8737: inline T *operator->() const { return &i->value; } 8737: inline bool operator==(const iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const iterator &o) const { return i != o.i; } 8737: 8737: inline iterator &operator++() { 8737: i = i->nextNode(); 8737: return *this; 8737: } 8737: inline iterator operator++(int) { 8737: iterator r = *this; 8737: i = i->nextNode(); 8737: return r; 8737: } 8737: inline iterator &operator--() { 8737: i = i->previousNode(); 8737: return *this; 8737: } 8737: inline iterator operator--(int) { 8737: iterator r = *this; 8737: i = i->previousNode(); 8737: return r; 8737: } 8737: inline iterator operator+(int j) const 8737: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8737: inline iterator operator-(int j) const { return operator+(-j); } 8737: inline iterator &operator+=(int j) { return *this = *this + j; } 8737: inline iterator &operator-=(int j) { return *this = *this - j; } 8737: # 460 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8737: friend class QMap; 8737: }; 8737: friend class iterator; 8737: 8737: class const_iterator 8737: { 8737: friend class iterator; 8737: const Node *i; 8737: 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: 8737: constexpr inline const_iterator() : i(nullptr) { } 8737: inline const_iterator(const Node *node) : i(node) { } 8737: 8737: explicit inline const_iterator(const iterator &o) 8737: 8737: 8737: 8737: { i = o.i; } 8737: 8737: inline const Key &key() const { return i->key; } 8737: inline const T &value() const { return i->value; } 8737: inline const T &operator*() const { return i->value; } 8737: inline const T *operator->() const { return &i->value; } 8737: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8737: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8737: 8737: inline const_iterator &operator++() { 8737: i = i->nextNode(); 8737: return *this; 8737: } 8737: inline const_iterator operator++(int) { 8737: const_iterator r = *this; 8737: i = i->nextNode(); 8737: return r; 8737: } 8737: inline const_iterator &operator--() { 8737: i = i->previousNode(); 8737: return *this; 8737: } 8737: inline const_iterator operator--(int) { 8737: const_iterator r = *this; 8737: i = i->previousNode(); 8737: return r; 8737: } 8737: inline const_iterator operator+(int j) const 8737: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8737: inline const_iterator operator-(int j) const { return operator+(-j); } 8737: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8737: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8737: 8737: 8737: private: 8737: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8737: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8737: 8737: friend class QMap; 8737: }; 8737: friend class const_iterator; 8737: 8737: class key_iterator 8737: { 8737: const_iterator i; 8737: 8737: public: 8737: typedef typename const_iterator::iterator_category iterator_category; 8737: typedef typename const_iterator::difference_type difference_type; 8737: typedef Key value_type; 8737: typedef const Key *pointer; 8737: typedef const Key &reference; 8737: 8737: key_iterator() = default; 8737: explicit key_iterator(const_iterator o) : i(o) { } 8737: 8737: const Key &operator*() const { return i.key(); } 8737: const Key *operator->() const { return &i.key(); } 8737: bool operator==(key_iterator o) const { return i == o.i; } 8737: bool operator!=(key_iterator o) const { return i != o.i; } 8737: 8737: inline key_iterator &operator++() { ++i; return *this; } 8737: inline key_iterator operator++(int) { return key_iterator(i++);} 8737: inline key_iterator &operator--() { --i; return *this; } 8737: inline key_iterator operator--(int) { return key_iterator(i--); } 8737: const_iterator base() const { return i; } 8737: }; 8737: 8737: 8737: 8737: inline iterator begin() { detach(); return iterator(d->begin()); } 8737: inline const_iterator begin() const { return const_iterator(d->begin()); } 8737: inline const_iterator constBegin() const { return const_iterator(d->begin()); } 8737: inline const_iterator cbegin() const { return const_iterator(d->begin()); } 8737: inline iterator end() { detach(); return iterator(d->end()); } 8737: inline const_iterator end() const { return const_iterator(d->end()); } 8737: inline const_iterator constEnd() const { return const_iterator(d->end()); } 8737: inline const_iterator cend() const { return const_iterator(d->end()); } 8737: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8737: inline key_iterator keyEnd() const { return key_iterator(end()); } 8737: iterator erase(iterator it); 8737: 8737: 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: inline int count() const { return d->size; } 8737: iterator find(const Key &key); 8737: const_iterator find(const Key &key) const; 8737: const_iterator constFind(const Key &key) const; 8737: iterator lowerBound(const Key &key); 8737: const_iterator lowerBound(const Key &key) const; 8737: iterator upperBound(const Key &key); 8737: const_iterator upperBound(const Key &key) const; 8737: iterator insert(const Key &key, const T &value); 8737: iterator insert(const_iterator pos, const Key &key, const T &value); 8737: iterator insertMulti(const Key &key, const T &value); 8737: iterator insertMulti(const_iterator pos, const Key &akey, const T &avalue); 8737: QMap &unite(const QMap &other); 8737: 8737: 8737: typedef Key key_type; 8737: typedef T mapped_type; 8737: typedef qptrdiff difference_type; 8737: typedef int size_type; 8737: inline bool empty() const { return isEmpty(); } 8737: QPair equal_range(const Key &akey); 8737: QPair equal_range(const Key &akey) const; 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: void detach_helper(); 8737: bool isValidIterator(const const_iterator &ci) const 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: (void)ci;; 8737: return true; 8737: 8737: } 8737: }; 8737: 8737: template 8737: inline QMap::QMap(const QMap &other) 8737: { 8737: if (other.d->ref.ref()) { 8737: d = other.d; 8737: } else { 8737: d = QMapData::create(); 8737: if (other.d->header.left) { 8737: d->header.left = static_cast(other.d->header.left)->copy(d); 8737: d->header.left->setParent(&d->header); 8737: d->recalcMostLeftNode(); 8737: } 8737: } 8737: } 8737: 8737: template 8737: inline QMap &QMap::operator=(const QMap &other) 8737: { 8737: if (d != other.d) { 8737: QMap tmp(other); 8737: tmp.swap(*this); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: inline void QMap::clear() 8737: { 8737: *this = QMap(); 8737: } 8737: 8737: 8737: # 642 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 e _Tp> 8768: _Tp 8768: __declval(long); 8768: 8768: template 8768: auto declval() noexcept -> decltype(__declval<_Tp>(0)); 8768: 8768: template 8768: struct extent; 8768: 8768: template 8768: struct remove_all_extents; 8768: 8768: template 8768: struct __is_array_known_bounds 8768: : public integral_constant::value > 0)> 8768: { }; 8768: 8768: template 8768: struct __is_array_unknown_bounds 8768: : public __and_, __not_>> 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct __do_is_destructible_impl 8768: { 8768: template().~_Tp())> 8768: static true_type __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: template 8768: struct __is_destructible_impl 8768: : public __do_is_destructible_impl 8768: { 8768: typedef decltype(__test<_Tp>(0)) type; 8768: }; 8768: 8768: template, 8768: __is_array_unknown_bounds<_Tp>, 8768: is_function<_Tp>>::value, 8768: bool = __or_, is_scalar<_Tp>>::value> 8768: struct __is_destructible_safe; 8768: 8768: template 8768: struct __is_destructible_safe<_Tp, false, false> 8768: : public __is_destructible_impl::type>::type 8768: { }; 8768: 8768: template 8768: struct __is_destructible_safe<_Tp, true, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_destructible_safe<_Tp, false, true> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_destructible 8768: : public __is_destructible_safe<_Tp>::type 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: struct __do_is_nt_destructible_impl 8768: { 8768: template 8768: static integral_constant().~_Tp())> 8768: __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: template 8768: struct __is_nt_destructible_impl 8768: : public __do_is_nt_destructible_impl 8768: { 8768: typedef decltype(__test<_Tp>(0)) type; 8768: }; 8768: 8768: template, 8768: __is_array_unknown_bounds<_Tp>, 8768: is_function<_Tp>>::value, 8768: bool = __or_, is_scalar<_Tp>>::value> 8768: struct __is_nt_destructible_safe; 8768: 8768: template 8768: struct __is_nt_destructible_safe<_Tp, false, false> 8768: : public __is_nt_destructible_impl::type>::type 8768: { }; 8768: 8768: template 8768: struct __is_nt_destructible_safe<_Tp, true, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_nt_destructible_safe<_Tp, false, true> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_nothrow_destructible 8768: : public __is_nt_destructible_safe<_Tp>::type 8768: { }; 8768: 8768: struct __do_is_default_constructible_impl 8768: { 8768: template 8768: static true_type __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: template 8768: struct __is_default_constructible_impl 8768: : public __do_is_default_constructible_impl 8768: { 8768: typedef decltype(__test<_Tp>(0)) type; 8768: }; 8768: 8768: template 8768: struct __is_default_constructible_atom 8768: : public __and_<__not_>, 8768: __is_default_constructible_impl<_Tp>> 8768: { }; 8768: 8768: template::value> 8768: struct __is_default_constructible_safe; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_default_constructible_safe<_Tp, true> 8768: : public __and_<__is_array_known_bounds<_Tp>, 8768: __is_default_constructible_atom::type>> 8768: { }; 8768: 8768: template 8768: struct __is_default_constructible_safe<_Tp, false> 8768: : public __is_default_constructible_atom<_Tp>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_default_constructible 8768: : public __is_default_constructible_safe<_Tp>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_constructible 8768: : public __bool_constant<__is_constructible(_Tp, _Args...)> 8768: { }; 8768: 8768: template::value> 8768: struct __is_copy_constructible_impl; 8768: 8768: template 8768: struct __is_copy_constructible_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_copy_constructible_impl<_Tp, true> 8768: : public is_constructible<_Tp, const _Tp&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_copy_constructible 8768: : public __is_copy_constructible_impl<_Tp> 8768: { }; 8768: 8768: template::value> 8768: struct __is_move_constructible_impl; 8768: 8768: template 8768: struct __is_move_constructible_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_move_constructible_impl<_Tp, true> 8768: : public is_constructible<_Tp, _Tp&&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_move_constructible 8768: : public __is_move_constructible_impl<_Tp> 8768: { }; 8768: 8768: template 8768: struct __is_nt_default_constructible_atom 8768: : public integral_constant 8768: { }; 8768: 8768: template::value> 8768: struct __is_nt_default_constructible_impl; 8768: 8768: template 8768: struct __is_nt_default_constructible_impl<_Tp, true> 8768: : public __and_<__is_array_known_bounds<_Tp>, 8768: __is_nt_default_constructible_atom::type>> 8768: { }; 8768: 8768: template 8768: struct __is_nt_default_constructible_impl<_Tp, false> 8768: : public __is_nt_default_constructible_atom<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_default_constructible 8768: : public __and_, 8768: __is_nt_default_constructible_impl<_Tp>> 8768: { }; 8768: 8768: template 8768: struct __is_nt_constructible_impl 8768: : public integral_constant()...))> 8768: { }; 8768: 8768: template 8768: struct __is_nt_constructible_impl<_Tp, _Arg> 8768: : public integral_constant(declval<_Arg>()))> 8768: { }; 8768: 8768: template 8768: struct __is_nt_constructible_impl<_Tp> 8768: : public is_nothrow_default_constructible<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_constructible 8768: : public __and_, 8768: __is_nt_constructible_impl<_Tp, _Args...>> 8768: { }; 8768: 8768: template 8737: inline const T QMap::value(const Key &akey, const T &adefaultValue) const 8737: { 8737: Node *n = d->findNode(akey); 8737: return n ? n->value : adefaultValue; 8737: } 8737: 8737: 8737: # 652 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 652 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8737: 8737: 8737: template 8737: inline const T QMap::operator[](const Key &akey) const 8737: { 8737: return value(akey); 8737: } 8737: 8737: template 8737: inline T &QMap::operator[](const Key &akey) 8737: { 8737: detach(); 8737: Node *n = d->findNode(akey); 8737: if (!n) 8737: return *insert(akey, T()); 8737: return n->value; 8737: } 8737: 8737: template 8737: inline int QMap::count(const Key &akey) const 8737: { 8737: Node *firstNode; 8737: Node *lastNode; 8737: d->nodeRange(akey, &firstNode, &lastNode); 8737: 8737: const_iterator ci_first(firstNode); 8737: const const_iterator ci_last(lastNode); 8737: int cnt = 0; 8737: while (ci_first != ci_last) { 8737: ++cnt; 8737: ++ci_first; 8737: } 8737: return cnt; 8737: } 8737: 8737: template 8737: inline bool QMap::contains(const Key &akey) const 8737: { 8737: return d->findNode(akey) != nullptr; 8737: } 8737: 8737: template 8737: inline typename QMap::iterator QMap::insert(const Key &akey, const T &avalue) 8737: { 8737: detach(); 8737: Node *n = d->root(); 8737: Node *y = d->end(); 8737: Node *lastNode = nullptr; 8737: bool left = true; 8737: while (n) { 8737: y = n; 8737: if (!qMapLessThanKey(n->key, akey)) { 8737: lastNode = n; 8737: left = true; 8737: n = n->leftNode(); 8737: } else { 8737: left = false; 8737: n = n->rightNode(); 8737: } 8737: } 8737: if (lastNode && !qMapLessThanKey(akey, lastNode->key)) { 8737: lastNode->value = avalue; 8737: return iterator(lastNode); 8737: } 8737: Node *z = d->createNode(akey, avalue, y, left); 8737: return iterator(z); 8737: } 8737: 8737: template 8737: typename QMap::iterator QMap::insert(const_iterator pos, const Key &akey, const T &avalue) 8737: { 8737: if (d->ref.isShared()) 8737: return this->insert(akey, avalue); 8737: 8737: do { } while ((false) && (isValidIterator(pos))); 8737: 8737: if (pos == constEnd()) { 8737: 8737: Node *n = static_cast(pos.i->left); 8737: if (n) { 8737: while (n->right) 8737: n = static_cast(n->right); 8737: 8737: if (!qMapLessThanKey(n->key, akey)) 8737: return this->insert(akey, avalue); 8737: 8737: 8737: 8737: 8737: Node *z = d->createNode(akey, avalue, n, false); 8737: return iterator(z); 8737: } 8737: return this->insert(akey, avalue); 8737: } else { 8737: 8737: 8737: Node *next = const_cast(pos.i); 8737: if (qMapLessThanKey(next->key, akey)) 8737: return this->insert(akey, avalue); 8737: 8737: if (pos == constBegin()) { 8737: 8737: 8737: if (!qMapLessThanKey(akey, next->key)) { 8737: next->value = avalue; 8737: return iterator(next); 8737: } 8737: 8737: Node *z = d->createNode(akey, avalue, begin().i, true); 8737: return iterator(z); 8737: } else { 8737: Node *prev = const_cast(pos.i->previousNode()); 8737: if (!qMapLessThanKey(prev->key, akey)) { 8737: return this->insert(akey, avalue); 8737: } 8737: 8737: if (!qMapLessThanKey(akey, next->key)) { 8737: next->value = avalue; 8737: return iterator(next); 8737: } 8737: 8737: 8737: if (prev->right == nullptr) { 8737: Node *z = d->createNode(akey, avalue, prev, false); 8737: return iterator(z); 8737: } 8737: if (next->left == nullptr) { 8737: Node *z = d->createNode(akey, avalue, next, true); 8737: return iterator(z); 8737: } 8737: do { } while ((false) && (false)); 8737: return this->insert(akey, avalue); 8737: } 8737: } 8737: } 8737: 8737: template 8737: inline typename QMap::iterator QMap::insertMulti(const Key &akey, 8737: const T &avalue) 8737: { 8737: detach(); 8737: Node* y = d->end(); 8737: Node* x = static_cast(d->root()); 8737: bool left = true; 8737: while (x != nullptr) { 8737: left = !qMapLessThanKey(x->key, akey); 8737: y = x; 8737: x = left ? x->leftNode() : x->rightNode(); 8737: } 8737: Node *z = d->createNode(akey, avalue, y, left); 8737: return iterator(z); 8737: } 8737: 8737: template 8737: typename QMap::iterator QMap::insertMulti(const_iterator pos, const Key &akey, const T &avalue) 8737: { 8737: if (d->ref.isShared()) 8737: return this->insertMulti(akey, avalue); 8737: 8737: do { } while ((false) && (isValidIterator(pos))); 8737: 8737: if (pos == constEnd()) { 8737: 8737: Node *n = static_cast(pos.i->left); 8737: if (n) { 8737: while (n->right) 8737: n = static_cast(n->right); 8737: 8737: if (!qMapLessThanKey(n->key, akey)) 8737: return this->insertMulti(akey, avalue); 8737: Node *z = d->createNode(akey, avalue, n, false); 8737: return iterator(z); 8737: } 8737: return this->insertMulti(akey, avalue); 8737: } else { 8737: 8737: 8737: Node *next = const_cast(pos.i); 8737: if (qMapLessThanKey(next->key, akey)) 8737: return this->insertMulti(akey, avalue); 8737: 8737: if (pos == constBegin()) { 8737: 8737: Node *z = d->createNode(akey, avalue, begin().i, true); 8737: return iterator(z); 8737: } else { 8737: Node *prev = const_cast(pos.i->previousNode()); 8737: if (!qMapLessThanKey(prev->key, akey)) 8737: return this->insertMulti(akey, avalue); 8737: 8737: 8737: if (prev->right == nullptr) { 8737: Node *z = d->createNode(akey, avalue, prev, false); 8737: return iterator(z); 8737: } 8737: if (next->left == nullptr) { 8737: Node *z = d->createNode(akey, avalue, next, true); 8737: return iterator(z); 8737: } 8737: do { } while ((false) && (false)); 8737: return this->insertMulti(akey, avalue); 8737: } 8737: } 8737: } 8737: 8737: 8737: template 8737: inline typename QMap::const_iterator QMap::constFind(const Key &akey) const 8737: { 8737: Node *n = d->findNode(akey); 8737: return const_iterator(n ? n : d->end()); 8737: } 8737: 8737: template 8737: inline typename QMap::const_iterator QMap::find(const Key &akey) const 8737: { 8737: return constFind(akey); 8737: } 8737: 8737: template 8737: inline typename QMap::iterator QMap::find(const Key &akey) 8737: { 8737: detach(); 8737: Node *n = d->findNode(akey); 8737: return iterator(n ? n : d->end()); 8737: } 8737: 8737: template 8737: inline QMap &QMap::unite(const QMap &other) 8737: { 8737: bool = __is_referenceable<_Tp>::value> 8768: struct __is_nothrow_copy_constructible_impl; 8768: 8768: template 8768: struct __is_nothrow_copy_constructible_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_nothrow_copy_constructible_impl<_Tp, true> 8768: : public is_nothrow_constructible<_Tp, const _Tp&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_copy_constructible 8768: : public __is_nothrow_copy_constructible_impl<_Tp> 8768: { }; 8768: 8768: template::value> 8768: struct __is_nothrow_move_constructible_impl; 8768: 8768: template 8768: struct __is_nothrow_move_constructible_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_nothrow_move_constructible_impl<_Tp, true> 8768: : public is_nothrow_constructible<_Tp, _Tp&&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_move_constructible 8768: : public __is_nothrow_move_constructible_impl<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct is_assignable 8768: : public __bool_constant<__is_assignable(_Tp, _Up)> 8768: { }; 8768: 8768: template::value> 8768: struct __is_copy_assignable_impl; 8768: 8768: template 8768: struct __is_copy_assignable_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_copy_assignable_impl<_Tp, true> 8768: : public is_assignable<_Tp&, const _Tp&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_copy_assignable 8768: : public __is_copy_assignable_impl<_Tp> 8768: { }; 8768: 8768: template::value> 8768: struct __is_move_assignable_impl; 8768: 8768: template 8768: struct __is_move_assignable_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_move_assignable_impl<_Tp, true> 8768: : public is_assignable<_Tp&, _Tp&&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_move_assignable 8768: : public __is_move_assignable_impl<_Tp> 8768: { }; 8768: 8768: template 8768: struct __is_nt_assignable_impl 8768: : public integral_constant() = declval<_Up>())> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_assignable 8768: : public __and_, 8768: __is_nt_assignable_impl<_Tp, _Up>> 8768: { }; 8768: 8768: template::value> 8768: struct __is_nt_copy_assignable_impl; 8768: 8768: template 8768: struct __is_nt_copy_assignable_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_nt_copy_assignable_impl<_Tp, true> 8768: : public is_nothrow_assignable<_Tp&, const _Tp&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_copy_assignable 8768: : public __is_nt_copy_assignable_impl<_Tp> 8768: { }; 8768: 8768: template::value> 8768: struct __is_nt_move_assignable_impl; 8768: 8768: template 8768: struct __is_nt_move_assignable_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_nt_move_assignable_impl<_Tp, true> 8768: : public is_nothrow_assignable<_Tp&, _Tp&&> 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_move_assignable 8768: : public __is_nt_move_assignable_impl<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct is_trivially_constructible 8768: : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_trivially_default_constructible 8768: : public is_trivially_constructible<_Tp>::type 8768: { }; 8768: 8768: struct __do_is_implicitly_default_constructible_impl 8768: { 8768: template 8768: static void __helper(const _Tp&); 8768: 8768: template 8768: static true_type __test(const _Tp&, 8768: decltype(__helper({}))* = 0); 8768: 8768: static false_type __test(...); 8768: }; 8768: 8768: template 8768: struct __is_implicitly_default_constructible_impl 8768: : public __do_is_implicitly_default_constructible_impl 8768: { 8768: typedef decltype(__test(declval<_Tp>())) type; 8768: }; 8768: 8768: template 8768: struct __is_implicitly_default_constructible_safe 8768: : public __is_implicitly_default_constructible_impl<_Tp>::type 8768: { }; 8768: 8768: template 8768: struct __is_implicitly_default_constructible 8768: : public __and_, 8768: __is_implicitly_default_constructible_safe<_Tp>> 8768: { }; 8768: 8768: 8768: 8768: template::value> 8768: struct __is_trivially_copy_constructible_impl; 8768: 8768: template 8768: struct __is_trivially_copy_constructible_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_trivially_copy_constructible_impl<_Tp, true> 8768: : public __and_, 8768: integral_constant> 8768: { }; 8768: 8768: template 8768: struct is_trivially_copy_constructible 8768: : public __is_trivially_copy_constructible_impl<_Tp> 8768: { }; 8768: 8768: 8768: 8768: template::value> 8768: struct __is_trivially_move_constructible_impl; 8768: 8768: template 8768: struct __is_trivially_move_constructible_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_trivially_move_constructible_impl<_Tp, true> 8768: : public __and_, 8768: integral_constant> 8768: { }; 8768: 8768: template 8768: struct is_trivially_move_constructible 8768: : public __is_trivially_move_constructible_impl<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct is_trivially_assignable 8768: : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> 8768: { }; 8768: 8768: 8768: 8768: template::value> 8768: struct __is_trivially_copy_assignable_impl; 8768: 8768: template 8768: struct __is_trivially_copy_assignable_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_trivially_copy_assignable_impl<_Tp, true> 8768: : public __and_, 8768: integral_constant> 8768: { }; 8768: 8768: template 8768: struct is_trivially_copy_assignable 8768: : public __is_trivially_copy_assignable_impl<_Tp> 8768: { }; 8768: 8768: 8768: 8768: template::value> 8768: struct __is_trivially_move_assignable_impl; 8768: 8768: template 8768: struct __is_trivially_move_assignable_impl<_Tp, false> 8768: : public false_type { }; 8768: 8768: template 8768: struct __is_trivially_move_assignable_impl<_Tp, true> 8768: : public __and_ copy(other); 8737: const_iterator it = copy.constEnd(); 8737: const const_iterator b = copy.constBegin(); 8737: while (it != b) { 8737: --it; 8737: insertMulti(it.key(), it.value()); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: QPair::iterator, typename QMap::iterator> QMap::equal_range(const Key &akey) 8737: { 8737: detach(); 8737: Node *firstNode, *lastNode; 8737: d->nodeRange(akey, &firstNode, &lastNode); 8737: return QPair(iterator(firstNode), iterator(lastNode)); 8737: } 8737: 8737: template 8737: QPair::const_iterator, typename QMap::const_iterator> 8737: QMap::equal_range(const Key &akey) const 8737: { 8737: Node *firstNode, *lastNode; 8737: d->nodeRange(akey, &firstNode, &lastNode); 8737: return qMakePair(const_iterator(firstNode), const_iterator(lastNode)); 8737: } 8737: # 932 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8737: template 8737: int QMap::remove(const Key &akey) 8737: { 8737: detach(); 8737: int n = 0; 8737: while (Node *node = d->findNode(akey)) { 8737: d->deleteNode(node); 8737: ++n; 8737: } 8737: return n; 8737: } 8737: 8737: template 8737: T QMap::take(const Key &akey) 8737: { 8737: detach(); 8737: 8737: Node *node = d->findNode(akey); 8737: if (node) { 8737: T t = node->value; 8737: d->deleteNode(node); 8737: return t; 8737: } 8737: return T(); 8737: } 8737: 8737: template 8737: typename QMap::iterator QMap::erase(iterator it) 8737: { 8737: if (it == iterator(d->end())) 8737: return it; 8737: 8737: do { } while ((false) && (isValidIterator(const_iterator(it)))); 8737: 8737: if (d->ref.isShared()) { 8737: const_iterator oldBegin = constBegin(); 8737: const_iterator old = const_iterator(it); 8737: int backStepsWithSameKey = 0; 8737: 8737: while (old != oldBegin) { 8737: --old; 8737: if (qMapLessThanKey(old.key(), it.key())) 8737: break; 8737: ++backStepsWithSameKey; 8737: } 8737: 8737: it = find(old.key()); 8737: do { } while ((false) && (it != iterator(d->end()))); 8737: 8737: while (backStepsWithSameKey > 0) { 8737: ++it; 8737: --backStepsWithSameKey; 8737: } 8737: } 8737: 8737: Node *n = it.i; 8737: ++it; 8737: d->deleteNode(n); 8737: return it; 8737: } 8737: 8737: template 8737: void QMap::detach_helper() 8737: { 8737: QMapData *x = QMapData::create(); 8737: if (d->header.left) { 8737: x->header.left = static_cast(d->header.left)->copy(x); 8737: x->header.left->setParent(&x->header); 8737: } 8737: if (!d->ref.deref()) 8737: d->destroy(); 8737: d = x; 8737: d->recalcMostLeftNode(); 8737: } 8737: 8737: template 8737: QList QMap::uniqueKeys() const 8737: { 8737: QList res; 8737: res.reserve(size()); 8737: const_iterator i = begin(); 8737: if (i != end()) { 8737: for (;;) { 8737: const Key &aKey = i.key(); 8737: res.append(aKey); 8737: do { 8737: if (++i == end()) 8737: goto break_out_of_outer_loop; 8737: } while (!qMapLessThanKey(aKey, i.key())); 8737: } 8737: } 8737: break_out_of_outer_loop: 8737: return res; 8737: } 8737: 8737: template 8737: QList QMap::keys() const 8737: { 8737: QList res; 8737: res.reserve(size()); 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: res.append(i.key()); 8737: ++i; 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: QList QMap::keys(const T &avalue) const 8737: { 8737: QList res; 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: if (i.value() == avalue) 8737: res.append(i.key()); 8737: ++i; 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: const Key QMap::key(const T &avalue, const Key &defaultKey) const 8737: { 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: if (i.value() == avalue) 8737: return i.key(); 8737: ++i; 8737: } 8737: 8737: return defaultKey; 8737: } 8737: 8737: template 8737: QList QMap::values() const 8737: { 8737: QList res; 8737: res.reserve(size()); 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: res.append(i.value()); 8737: ++i; 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: QList QMap::values(const Key &akey) const 8737: { 8737: QList res; 8737: Node *n = d->findNode(akey); 8737: if (n) { 8737: const_iterator it(n); 8737: do { 8737: res.append(*it); 8737: ++it; 8737: } while (it != constEnd() && !qMapLessThanKey(akey, it.key())); 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: inline typename QMap::const_iterator QMap::lowerBound(const Key &akey) const 8737: { 8737: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8737: if (!lb) 8737: lb = d->end(); 8737: return const_iterator(lb); 8737: } 8737: 8737: template 8737: inline typename QMap::iterator QMap::lowerBound(const Key &akey) 8737: { 8737: detach(); 8737: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8737: if (!lb) 8737: lb = d->end(); 8737: return iterator(lb); 8737: } 8737: 8737: template 8737: inline typename QMap::const_iterator 8737: QMap::upperBound(const Key &akey) const 8737: { 8737: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8737: if (!ub) 8737: ub = d->end(); 8737: return const_iterator(ub); 8737: } 8737: 8737: template 8737: inline typename QMap::iterator QMap::upperBound(const Key &akey) 8737: { 8737: detach(); 8737: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8737: if (!ub) 8737: ub = d->end(); 8737: return iterator(ub); 8737: } 8737: 8737: template 8737: bool QMap::operator==(const QMap &other) const 8737: { 8737: if (size() != other.size()) 8737: return false; 8737: if (d == other.d) 8737: return true; 8737: 8737: const_iterator it1 = begin(); 8737: const_iterator it2 = other.begin(); 8737: 8737: while (it1 != end()) { 8737: if (!(it1.value() == it2.value()) || qMapLessThanKey(it1.key(), it2.key()) || qMapLessThanKey(it2.key(), it1.key())) 8737: return false; 8737: ++it2; 8737: ++it1; 8737: } 8737: return true; 8737: } 8737: 8737: template 8737: QMap::QMap(const std::map &other) 8737: { 8737: d = QMapData::create(); 8737: typename std::map::const_iterator it = other.end(); 8737: while (it != other.begin()) { 8737: --it; 8737: d->createNode((*it).first, (*it).second, d->begin(), true); 8737: } 8737: } 8737: 8737: template 8737: std::map QMap::toStdMap() const 8737: { 8737: std::map map; 8737: const_iterator it = end(); 8737: while (it != begin()) { 8737: --it; 8737: map.insert(map.begin(), std::pair(it.key(), it.value())); 8737: } 8737: return map; 8737: } 8737: 8737: template , 8768: integral_constant> 8768: { }; 8768: 8768: template 8768: struct is_trivially_move_assignable 8768: : public __is_trivially_move_assignable_impl<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct is_trivially_destructible 8768: : public __and_, integral_constant> 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct has_virtual_destructor 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct alignment_of 8768: : public integral_constant { }; 8768: 8768: 8768: template 8768: struct rank 8768: : public integral_constant { }; 8768: 8768: template 8768: struct rank<_Tp[_Size]> 8768: : public integral_constant::value> { }; 8768: 8768: template 8768: struct rank<_Tp[]> 8768: : public integral_constant::value> { }; 8768: 8768: 8768: template 8768: struct extent 8768: : public integral_constant { }; 8768: 8768: template 8768: struct extent<_Tp[_Size], _Uint> 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct extent<_Tp[], _Uint> 8768: : public integral_constant::value> 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_same 8768: : public false_type { }; 8768: 8768: template 8768: struct is_same<_Tp, _Tp> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_base_of 8768: : public integral_constant 8768: { }; 8768: 8768: template, is_function<_To>, 8768: is_array<_To>>::value> 8768: struct __is_convertible_helper 8768: { typedef typename is_void<_To>::type type; }; 8768: 8768: template 8768: class __is_convertible_helper<_From, _To, false> 8768: { 8768: template 8768: static void __test_aux(_To1); 8768: 8768: template(std::declval<_From1>()))> 8768: static true_type 8768: __test(int); 8768: 8768: template 8768: static false_type 8768: __test(...); 8768: 8768: public: 8768: typedef decltype(__test<_From, _To>(0)) type; 8768: }; 8768: 8768: 8768: 8768: template 8768: struct is_convertible 8768: : public __is_convertible_helper<_From, _To>::type 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct remove_const 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_const<_Tp const> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template 8768: struct remove_volatile 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_volatile<_Tp volatile> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template 8768: struct remove_cv 8768: { 8768: typedef typename 8768: remove_const::type>::type type; 8768: }; 8768: 8768: 8768: template 8768: struct add_const 8768: { typedef _Tp const type; }; 8768: 8768: 8768: template 8768: struct add_volatile 8768: { typedef _Tp volatile type; }; 8768: 8768: 8768: template 8768: struct add_cv 8768: { 8768: typedef typename 8768: add_const::type>::type type; 8768: }; 8768: # 1463 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct remove_reference 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_reference<_Tp&> 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_reference<_Tp&&> 8768: { typedef _Tp type; }; 8768: 8768: template::value> 8768: struct __add_lvalue_reference_helper 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct __add_lvalue_reference_helper<_Tp, true> 8768: { typedef _Tp& type; }; 8768: 8768: 8768: template 8768: struct add_lvalue_reference 8768: : public __add_lvalue_reference_helper<_Tp> 8768: { }; 8768: 8768: template::value> 8768: struct __add_rvalue_reference_helper 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct __add_rvalue_reference_helper<_Tp, true> 8768: { typedef _Tp&& type; }; 8768: 8768: 8768: template 8768: struct add_rvalue_reference 8768: : public __add_rvalue_reference_helper<_Tp> 8768: { }; 8768: # 1520 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct __cv_selector; 8768: 8768: template 8768: struct __cv_selector<_Unqualified, false, false> 8768: { typedef _Unqualified __type; }; 8768: 8768: template 8768: struct __cv_selector<_Unqualified, false, true> 8768: { typedef volatile _Unqualified __type; }; 8768: 8768: template 8768: struct __cv_selector<_Unqualified, true, false> 8768: { typedef const _Unqualified __type; }; 8768: 8768: template 8768: struct __cv_selector<_Unqualified, true, true> 8768: { typedef const volatile _Unqualified __type; }; 8768: 8768: template::value, 8768: bool _IsVol = is_volatile<_Qualified>::value> 8768: class __match_cv_qualifiers 8768: { 8768: typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; 8768: 8768: public: 8768: typedef typename __match::__type __type; 8768: }; 8768: 8768: 8768: template 8768: struct __make_unsigned 8768: { typedef _Tp __type; }; 8768: 8768: template<> 8768: struct __make_unsigned 8768: { typedef unsigned char __type; }; 8768: 8768: template<> 8768: struct __make_unsigned 8768: { typedef unsigned char __type; }; 8768: 8768: template<> 8768: struct __make_unsigned 8768: { typedef unsigned short __type; }; 8768: 8768: template<> 8768: struct __make_unsigned 8768: { typedef unsigned int __type; }; 8768: 8768: template<> 8768: struct __make_unsigned 8768: { typedef unsigned long __type; }; 8768: 8768: template<> 8768: struct __make_unsigned 8768: { typedef unsigned long long __type; }; 8768: 8768: 8768: template<> 8768: struct __make_unsigned : __make_unsigned 8768: { }; 8768: 8768: 8768: 8768: template<> 8768: struct __make_unsigned<__int128> 8768: { typedef unsigned __int128 __type; }; 8768: # 1607 "/usr/include/c++/8/type_traits" 3 8768: template::value, 8768: bool _IsEnum = is_enum<_Tp>::value> 8768: class __make_unsigned_selector; 8768: 8768: template 8768: class __make_unsigned_seley, class T> 8737: class QMultiMap : public QMap 8737: { 8737: public: 8737: QMultiMap() noexcept {} 8737: 8737: inline QMultiMap(std::initializer_list > list) 8737: { 8737: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8737: insert(it->first, it->second); 8737: } 8737: 8737: QMultiMap(const QMap &other) : QMap(other) {} 8737: 8737: QMultiMap(QMap &&other) noexcept : QMap(std::move(other)) {} 8737: 8737: void swap(QMultiMap &other) noexcept { QMap::swap(other); } 8737: 8737: inline typename QMap::iterator replace(const Key &key, const T &value) 8737: { return QMap::insert(key, value); } 8737: inline typename QMap::iterator insert(const Key &key, const T &value) 8737: { return QMap::insertMulti(key, value); } 8737: inline typename QMap::iterator insert(typename QMap::const_iterator pos, const Key &key, const T &value) 8737: { return QMap::insertMulti(pos, key, value); } 8737: 8737: inline QMultiMap &operator+=(const QMultiMap &other) 8737: { this->unite(other); return *this; } 8737: inline QMultiMap operator+(const QMultiMap &other) const 8737: { QMultiMap result = *this; result += other; return result; } 8737: 8737: using QMap::contains; 8737: using QMap::remove; 8737: using QMap::count; 8737: using QMap::find; 8737: using QMap::constFind; 8737: 8737: bool contains(const Key &key, const T &value) const; 8737: 8737: int remove(const Key &key, const T &value); 8737: 8737: int count(const Key &key, const T &value) const; 8737: 8737: typename QMap::iterator find(const Key &key, const T &value) { 8737: typename QMap::iterator i(find(key)); 8737: typename QMap::iterator end(this->end()); 8737: while (i != end && !qMapLessThanKey(key, i.key())) { 8737: if (i.value() == value) 8737: return i; 8737: ++i; 8737: } 8737: return end; 8737: } 8737: typename QMap::const_iterator find(const Key &key, const T &value) const { 8737: typename QMap::const_iterator i(constFind(key)); 8737: typename QMap::const_iterator end(QMap::constEnd()); 8737: while (i != end && !qMapLessThanKey(key, i.key())) { 8737: if (i.value() == value) 8737: return i; 8737: ++i; 8737: } 8737: return end; 8737: } 8737: typename QMap::const_iterator constFind(const Key &key, const T &value) const 8737: { return find(key, value); } 8737: private: 8737: T &operator[](const Key &key); 8737: const T operator[](const Key &key) const; 8737: }; 8737: 8737: template 8737: inline bool QMultiMap::contains(const Key &key, const T &value) const 8737: { 8737: return constFind(key, value) != QMap::constEnd(); 8737: } 8737: 8737: template 8737: inline int QMultiMap::remove(const Key &key, const T &value) 8737: { 8737: int n = 0; 8737: typename QMap::iterator i(find(key)); 8737: typename QMap::iterator end(QMap::end()); 8737: while (i != end && !qMapLessThanKey(key, i.key())) { 8737: if (i.value() == value) { 8737: i = this->erase(i); 8737: ++n; 8737: } else { 8737: ++i; 8737: } 8737: } 8737: return n; 8737: } 8737: 8737: template 8737: inline int QMultiMap::count(const Key &key, const T &value) const 8737: { 8737: int n = 0; 8737: typename QMap::const_iterator i(constFind(key)); 8737: typename QMap::const_iterator end(QMap::constEnd()); 8737: while (i != end && !qMapLessThanKey(key, i.key())) { 8737: if (i.value() == value) 8737: ++n; 8737: ++i; 8737: } 8737: return n; 8737: } 8737: 8737: 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; } }; 8737: 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; } }; 8737: 8737: 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 1 3 4 8737: # 62 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8737: 8737: 8737: struct __attribute__((visibility("default"))) QHashData 8737: { 8737: struct Node { 8737: Node *next; 8737: uint h; 8737: }; 8737: 8737: Node *fakeNext; 8737: Node **buckets; 8737: QtPrivate::RefCount ref; 8737: int size; 8737: int nodeSize; 8737: short userNumBits; 8737: short numBits; 8737: int numBuckets; 8737: uint seed; 8737: uint sharable : 1; 8737: uint strictAlignment : 1; 8737: uint reserved : 30; 8737: 8737: void *allocateNode(int nodeAlign); 8737: void freeNode(void *node); 8737: QHashData *detach_helper(void (*node_duplicate)(Node *, void *), vector<_Tp, true, false> 8768: { 8768: typedef __make_unsigned::type> __unsignedt; 8768: typedef typename __unsignedt::__type __unsigned_type; 8768: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8768: 8768: public: 8768: typedef typename __cv_unsigned::__type __type; 8768: }; 8768: 8768: template 8768: class __make_unsigned_selector<_Tp, false, true> 8768: { 8768: 8768: typedef unsigned char __smallest; 8768: static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest); 8768: static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short); 8768: static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int); 8768: static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long); 8768: typedef conditional<__b3, unsigned long, unsigned long long> __cond3; 8768: typedef typename __cond3::type __cond3_type; 8768: typedef conditional<__b2, unsigned int, __cond3_type> __cond2; 8768: typedef typename __cond2::type __cond2_type; 8768: typedef conditional<__b1, unsigned short, __cond2_type> __cond1; 8768: typedef typename __cond1::type __cond1_type; 8768: 8768: typedef typename conditional<__b0, __smallest, __cond1_type>::type 8768: __unsigned_type; 8768: typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned; 8768: 8768: public: 8768: typedef typename __cv_unsigned::__type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct make_unsigned 8768: { typedef typename __make_unsigned_selector<_Tp>::__type type; }; 8768: 8768: 8768: template<> 8768: struct make_unsigned; 8768: 8768: 8768: 8768: template 8768: struct __make_signed 8768: { typedef _Tp __type; }; 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef signed char __type; }; 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef signed char __type; }; 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef signed short __type; }; 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef signed int __type; }; 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef signed long __type; }; 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef signed long long __type; }; 8768: # 1696 "/usr/include/c++/8/type_traits" 3 8768: template<> 8768: struct __make_signed : __make_signed 8768: { }; 8768: template<> 8768: struct __make_signed : __make_signed 8768: { }; 8768: 8768: 8768: 8768: template<> 8768: struct __make_signed 8768: { typedef __int128 __type; }; 8768: # 1726 "/usr/include/c++/8/type_traits" 3 8768: template::value, 8768: bool _IsEnum = is_enum<_Tp>::value> 8768: class __make_signed_selector; 8768: 8768: template 8768: class __make_signed_selector<_Tp, true, false> 8768: { 8768: typedef __make_signed::type> __signedt; 8768: typedef typename __signedt::__type __signed_type; 8768: typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed; 8768: 8768: public: 8768: typedef typename __cv_signed::__type __type; 8768: }; 8768: 8768: template 8768: class __make_signed_selector<_Tp, false, true> 8768: { 8768: typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; 8768: 8768: public: 8768: typedef typename __make_signed_selector<__unsigned_type>::__type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct make_signed 8768: { typedef typename __make_signed_selector<_Tp>::__type type; }; 8768: 8768: 8768: template<> 8768: struct make_signed; 8768: # 1776 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct remove_extent 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_extent<_Tp[_Size]> 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_extent<_Tp[]> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template 8768: struct remove_all_extents 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_all_extents<_Tp[_Size]> 8768: { typedef typename remove_all_extents<_Tp>::type type; }; 8768: 8768: template 8768: struct remove_all_extents<_Tp[]> 8768: { typedef typename remove_all_extents<_Tp>::type type; }; 8768: # 1813 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct __remove_pointer_helper 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct __remove_pointer_helper<_Tp, _Up*> 8768: { typedef _Up type; }; 8768: 8768: 8768: template 8768: struct remove_pointer 8768: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8768: { }; 8768: 8768: 8768: template, 8768: is_void<_Tp>>::value> 8768: struct __add_pointer_helper 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct __add_pointer_helper<_Tp, true> 8768: { typedef typename remove_reference<_Tp>::type* type; }; 8768: 8768: template 8768: struct add_pointer 8768: : public __add_pointer_helper<_Tp> 8768: { }; 8768: # 1852 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct __aligned_storage_msa 8768: { 8768: union __type 8768: { 8768: unsigned char __data[_Len]; 8768: struct __attribute__((__aligned__)) { } __align; 8768: }; 8768: }; 8768: # 1872 "/usr/include/c++/8/type_traits" 3 8768: template::__type)> 8768: struct aligned_storage 8768: { 8768: union type 8768: { 8768: unsigned char __data[_Len]; 8768: struct __attribute__((__aligned__((_Align)))) { } __align; 8768: }; 8768: }; 8768: 8768: template 8768: struct __strictest_alignment 8768: { 8768: static const size_t _S_alignment = 0; 8768: static const size_t _S_size = 0; 8768: }; 8768: 8768: template 8768: struct __strictest_alignment<_Tp, _Types...> 8768: { 8768: static const size_t _S_alignment = 8768: alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment 8768: ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; 8768: static const size_t _S_size = 8768: sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size 8768: ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; 8768: }; 8768: # 1911 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct aligned_union 8768: { 8768: private: 8768: static_assert(sizeof...(_Types) != 0, "At least one type is required"); 8768: 8768: using __strictest = __strictest_alignment<_Types...>; 8768: static const size_t _S_len = _Len > __strictest::_S_size 8768: ? _Len : __strictest::_S_size; 8768: public: 8768: 8768: static const size_t alignment_value = __strictest::_S_alignment; 8768: 8768: typedef typename aligned_storage<_S_len, alignment_value>::type type; 8768: }; 8768: 8768: template 8768: const size_t aligned_union<_Len, _Types...>::alignment_value; 8768: 8768: 8768: 8768: template::value, 8768: bool _IsFunction = is_function<_oid (*node_delete)(Node *), 8737: int nodeSize, int nodeAlign); 8737: bool willGrow(); 8737: void hasShrunk(); 8737: void rehash(int hint); 8737: void free_helper(void (*node_delete)(Node *)); 8737: Node *firstNode(); 8737: 8737: 8737: 8737: 8737: static Node *nextNode(Node *node); 8737: static Node *previousNode(Node *node); 8737: 8737: static const QHashData shared_null; 8737: }; 8737: 8737: inline bool QHashData::willGrow() 8737: { 8737: if (size >= numBuckets) { 8737: rehash(numBits + 1); 8737: return true; 8737: } else { 8737: return false; 8737: } 8737: } 8737: 8737: inline void QHashData::hasShrunk() 8737: { 8737: if (size <= (numBuckets >> 3) && numBits > userNumBits) { 8737: try { 8737: rehash(qMax(int(numBits) - 2, int(userNumBits))); 8737: } catch (const std::bad_alloc &) { 8737: 8737: } 8737: } 8737: } 8737: 8737: inline QHashData::Node *QHashData::firstNode() 8737: { 8737: Node *e = reinterpret_cast(this); 8737: Node **bucket = buckets; 8737: int n = numBuckets; 8737: while (n--) { 8737: if (*bucket != e) 8737: return *bucket; 8737: ++bucket; 8737: } 8737: return e; 8737: } 8737: 8737: struct QHashDummyValue 8737: { 8737: }; 8737: 8737: inline bool operator==(const QHashDummyValue & , const QHashDummyValue & ) 8737: { 8737: return true; 8737: } 8737: 8737: 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"; } }; 8737: 8737: template 8737: struct QHashNode 8737: { 8737: QHashNode *next; 8737: const uint h; 8737: const Key key; 8737: T value; 8737: 8737: inline QHashNode(const Key &key0, const T &value0, uint hash, QHashNode *n) 8737: : next(n), h(hash), key(key0), value(value0) {} 8737: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8737: 8737: private: 8737: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8737: }; 8737: 8737: 8737: template 8737: struct QHashNode 8737: { 8737: union { 8737: QHashNode *next; 8737: QHashDummyValue value; 8737: }; 8737: const uint h; 8737: const Key key; 8737: 8737: inline QHashNode(const Key &key0, const QHashDummyValue &, uint hash, QHashNode *n) 8737: : next(n), h(hash), key(key0) {} 8737: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8737: 8737: private: 8737: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8737: }; 8737: # 226 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8737: template 8737: class QHash 8737: { 8737: typedef QHashNode Node; 8737: 8737: union { 8737: QHashData *d; 8737: QHashNode *e; 8737: }; 8737: 8737: static inline Node *concrete(QHashData::Node *node) { 8737: return reinterpret_cast(node); 8737: } 8737: 8737: static inline int alignOfNode() { return qMax(sizeof(void*), alignof(Node)); } 8737: 8737: public: 8737: inline QHash() noexcept : d(const_cast(&QHashData::shared_null)) { } 8737: 8737: inline QHash(std::initializer_list > list) 8737: : d(const_cast(&QHashData::shared_null)) 8737: { 8737: reserve(int(list.size())); 8737: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8737: insert(it->first, it->second); 8737: } 8737: 8737: QHash(const QHash &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } 8737: ~QHash() { if (!d->ref.deref()) freeData(d); } 8737: 8737: QHash &operator=(const QHash &other); 8737: 8737: QHash(QHash &&other) noexcept : d(other.d) { other.d = const_cast(&QHashData::shared_null); } 8737: QHash &operator=(QHash &&other) noexcept 8737: { QHash moved(std::move(other)); swap(moved); return *this; } 8737: 8737: void swap(QHash &other) noexcept { qSwap(d, other.d); } 8737: 8737: bool operator==(const QHash &other) const; 8737: bool operator!=(const QHash &other) const { return !(*this == other); } 8737: 8737: inline int size() const { return d->size; } 8737: 8737: inline bool isEmpty() const { return d->size == 0; } 8737: 8737: inline int capacity() const { return d->numBuckets; } 8737: void reserve(int size); 8737: inline void squeeze() { reserve(1); } 8737: 8737: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8737: inline bool isDetached() const { return !d->ref.isShared(); } 8737: 8737: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QHashData::shared_null) d->sharable = sharable; } 8737: 8737: bool isSharedWith(const QHash &other) const { return d == other.d; } 8737: 8737: void clear(); 8737: 8737: int remove(const Key &key); 8737: T take(const Key &key); 8737: 8737: bool contains(const Key &key) const; 8737: const Key key(const T &value) const; 8737: const Key key(const T &value, const Key &defaultKey) const; 8737: const T value(const Key &key) const; 8737: const T value(const Key &key, const T &defaultValue) const; 8737: T &operator[](const Key &key); 8737: const T operator[](const Key &key) const; 8737: 8737: QList uniqueKeys() const; 8737: QList keys() const; 8737: QList keys(const T &value) const; 8737: QList values() const; 8737: QList values(const Key &key) const; 8737: int count(const Key &key) const; 8737: 8737: class const_iterator; 8737: 8737: class iterator 8737: { 8737: friend class const_iterator; 8737: friend class QHash; 8737: friend class QSet; 8737: QHashData::Node *i; 8737: 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef T *pointer; 8737: typedef T &reference; 8737: 8737: inline iterator() : i(nullptr) { } 8737: explicit inline iterator(void *node) : i(reinterpret_cast(node)) { } 8737: 8737: inline const Key &key() const { return concrete(i)->key; } 8737: inline T &value() const { return concrete(i)->value; } 8737: inline T &operator*() const { return concrete(i)->value; } 8737: inline T *operator->() const { return &concrete(i)->value; } 8737: inline bool operator==(const iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const iterator &o) const { return i != o.i; } 8737: 8737: inline iterator &operator++() { 8737: i = QHashData::nextNode(i); 8737: return *this; 8737: } 8737: inline iterator operator++(int) { 8737: iterator r = *this; 8737: i = QHashData::nextNode(i); 8737: return r; 8737: } 8737: inline iterator &operator--() { 8737: i = QHashData::previousNode(i); 8737: return *this; 8737: } 8737: inline iterator operator--(int) { 8737: iterator r = *this; 8737: i = QHashData::previousNode(i); 8737: return r; 8737: } 8737: inline itUp>::value> 8768: struct __decay_selector; 8768: 8768: 8768: template 8768: struct __decay_selector<_Up, false, false> 8768: { typedef typename remove_cv<_Up>::type __type; }; 8768: 8768: template 8768: struct __decay_selector<_Up, true, false> 8768: { typedef typename remove_extent<_Up>::type* __type; }; 8768: 8768: template 8768: struct __decay_selector<_Up, false, true> 8768: { typedef typename add_pointer<_Up>::type __type; }; 8768: 8768: 8768: template 8768: class decay 8768: { 8768: typedef typename remove_reference<_Tp>::type __remove_type; 8768: 8768: public: 8768: typedef typename __decay_selector<__remove_type>::__type type; 8768: }; 8768: 8768: template 8768: class reference_wrapper; 8768: 8768: 8768: template 8768: struct __strip_reference_wrapper 8768: { 8768: typedef _Tp __type; 8768: }; 8768: 8768: template 8768: struct __strip_reference_wrapper > 8768: { 8768: typedef _Tp& __type; 8768: }; 8768: 8768: template 8768: struct __decay_and_strip 8768: { 8768: typedef typename __strip_reference_wrapper< 8768: typename decay<_Tp>::type>::__type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct enable_if 8768: { }; 8768: 8768: 8768: template 8768: struct enable_if 8768: { typedef _Tp type; }; 8768: 8768: template 8768: using _Require = typename enable_if<__and_<_Cond...>::value>::type; 8768: 8768: 8768: 8768: template 8768: struct conditional 8768: { typedef _Iftrue type; }; 8768: 8768: 8768: template 8768: struct conditional 8768: { typedef _Iffalse type; }; 8768: 8768: 8768: template 8768: struct common_type; 8768: 8768: 8768: 8768: struct __do_common_type_impl 8768: { 8768: template 8768: static __success_type() 8768: : std::declval<_Up>())>::type> _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __common_type_impl 8768: : private __do_common_type_impl 8768: { 8768: typedef decltype(_S_test<_Tp, _Up>(0)) type; 8768: }; 8768: 8768: struct __do_member_type_wrapper 8768: { 8768: template 8768: static __success_type _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __member_type_wrapper 8768: : private __do_member_type_wrapper 8768: { 8768: typedef decltype(_S_test<_Tp>(0)) type; 8768: }; 8768: 8768: template 8768: struct __expanded_common_type_wrapper 8768: { 8768: typedef common_type type; 8768: }; 8768: 8768: template 8768: struct __expanded_common_type_wrapper<__failure_type, _Args...> 8768: { typedef __failure_type type; }; 8768: 8768: template 8768: struct common_type<_Tp> 8768: { typedef typename decay<_Tp>::type type; }; 8768: 8768: template 8768: struct common_type<_Tp, _Up> 8768: : public __common_type_impl<_Tp, _Up>::type 8768: { }; 8768: 8768: template 8768: struct common_type<_Tp, _Up, _Vp...> 8768: : public __expanded_common_type_wrapper>::type, _Vp...>::type 8768: { }; 8768: 8768: 8768: template 8768: struct underlying_type 8768: { 8768: typedef __underlying_type(_Tp) type; 8768: }; 8768: 8768: template 8768: struct __declval_protector 8768: { 8768: static const bool __stop = false; 8768: }; 8768: 8768: template 8768: auto declval() noexcept -> decltype(__declval<_Tp>(0)) 8768: { 8768: static_assert(__declval_protector<_Tp>::__stop, 8768: "declval() must not be used!"); 8768: return __declval<_Tp>(0); 8768: } 8768: 8768: 8768: template 8768: class result_of; 8768: 8768: 8768: 8768: 8768: 8768: struct __invoke_memfun_ref { }; 8768: struct __invoke_memfun_deref { }; 8768: struct __invoke_memobj_ref { }; 8768: struct __invoke_memobj_deref { }; 8768: struct __invoke_other { }; 8768: 8768: 8768: template 8768: struct __result_of_success : __success_type<_Tp> 8768: { using __invoke_type = _Tag; }; 8768: 8768: 8768: struct __result_of_memfun_ref_impl 8768: { 8768: template 8768: static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) 8768: ), __invoke_memfun_ref> _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __result_of_memfun_ref 8768: : private __result_of_memfun_ref_impl 8768: { 8768: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8768: }; 8768: 8768: 8768: struct __result_of_memfun_deref_impl 8768: { 8768: template 8768: static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) 8768: ), __invoke_memfun_deref> _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __result_of_memfun_deref 8768: : private __result_of_memfun_deref_impl 8768: { 8768: typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; 8768: }; 8768: 8768: 8768: struct __result_of_memobj_ref_impl 8768: { 8768: template 8768: static __result_of_success().*std::declval<_Fp>() 8768: ), __invoke_memobj_ref> _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __result_of_memobj_ref 8768: : private __result_of_memobj_ref_impl 8768: { 8768: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8768: }; 8768: 8768: 8768: struct __result_of_memobj_deref_impl 8768: { 8768: template 8768: static __result_of_success()).*std::declval<_Fp>() 8768: ), __invoke_memobj_deref> _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __result_of_memobj_deref 8768: : private __result_of_memobj_deref_impl 8768: { 8768: typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; 8768: }; 8768: 8768: template 8768: struct __result_of_memobj; 8768: 8768: template 8768: struct __result_of_memobj<_Res _Class::*, _Arg> 8768: { 8768: typedef typename remove_cv::type>::type _Argval; 8768: typedef _Res _Class::* _MemPtr; 8768: typedef typename conditional<__or_, 8768: is_base_of<_Class, _erator operator+(int j) const 8737: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8737: inline iterator operator-(int j) const { return operator+(-j); } 8737: inline iterator &operator+=(int j) { return *this = *this + j; } 8737: inline iterator &operator-=(int j) { return *this = *this - j; } 8737: # 359 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8737: }; 8737: friend class iterator; 8737: 8737: class const_iterator 8737: { 8737: friend class iterator; 8737: friend class QHash; 8737: friend class QSet; 8737: QHashData::Node *i; 8737: 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: 8737: constexpr inline const_iterator() : i(nullptr) { } 8737: explicit inline const_iterator(void *node) 8737: : i(reinterpret_cast(node)) { } 8737: 8737: explicit inline const_iterator(const iterator &o) 8737: 8737: 8737: 8737: { i = o.i; } 8737: 8737: inline const Key &key() const { return concrete(i)->key; } 8737: inline const T &value() const { return concrete(i)->value; } 8737: inline const T &operator*() const { return concrete(i)->value; } 8737: inline const T *operator->() const { return &concrete(i)->value; } 8737: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8737: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8737: 8737: inline const_iterator &operator++() { 8737: i = QHashData::nextNode(i); 8737: return *this; 8737: } 8737: inline const_iterator operator++(int) { 8737: const_iterator r = *this; 8737: i = QHashData::nextNode(i); 8737: return r; 8737: } 8737: inline const_iterator &operator--() { 8737: i = QHashData::previousNode(i); 8737: return *this; 8737: } 8737: inline const_iterator operator--(int) { 8737: const_iterator r = *this; 8737: i = QHashData::previousNode(i); 8737: return r; 8737: } 8737: inline const_iterator operator+(int j) const 8737: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8737: inline const_iterator operator-(int j) const { return operator+(-j); } 8737: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8737: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8737: 8737: 8737: 8737: private: 8737: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8737: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8737: 8737: }; 8737: friend class const_iterator; 8737: 8737: class key_iterator 8737: { 8737: const_iterator i; 8737: 8737: public: 8737: typedef typename const_iterator::iterator_category iterator_category; 8737: typedef typename const_iterator::difference_type difference_type; 8737: typedef Key value_type; 8737: typedef const Key *pointer; 8737: typedef const Key &reference; 8737: 8737: key_iterator() = default; 8737: explicit key_iterator(const_iterator o) : i(o) { } 8737: 8737: const Key &operator*() const { return i.key(); } 8737: const Key *operator->() const { return &i.key(); } 8737: bool operator==(key_iterator o) const { return i == o.i; } 8737: bool operator!=(key_iterator o) const { return i != o.i; } 8737: 8737: inline key_iterator &operator++() { ++i; return *this; } 8737: inline key_iterator operator++(int) { return key_iterator(i++);} 8737: inline key_iterator &operator--() { --i; return *this; } 8737: inline key_iterator operator--(int) { return key_iterator(i--); } 8737: const_iterator base() const { return i; } 8737: }; 8737: 8737: 8737: inline iterator begin() { detach(); return iterator(d->firstNode()); } 8737: inline const_iterator begin() const { return const_iterator(d->firstNode()); } 8737: inline const_iterator cbegin() const { return const_iterator(d->firstNode()); } 8737: inline const_iterator constBegin() const { return const_iterator(d->firstNode()); } 8737: inline iterator end() { detach(); return iterator(e); } 8737: inline const_iterator end() const { return const_iterator(e); } 8737: inline const_iterator cend() const { return const_iterator(e); } 8737: inline const_iterator constEnd() const { return const_iterator(e); } 8737: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8737: inline key_iterator keyEnd() const { return key_iterator(end()); } 8737: 8737: QPair equal_range(const Key &key); 8737: QPair equal_range(const Key &key) const noexcept; 8737: iterator erase(iterator it) { return erase(const_iterator(it.i)); } 8737: iterator erase(const_iterator it); 8737: 8737: 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: inline int count() const { return d->size; } 8737: iterator find(const Key &key); 8737: const_iterator find(const Key &key) const; 8737: const_iterator constFind(const Key &key) const; 8737: iterator insert(const Key &key, const T &value); 8737: iterator insertMulti(const Key &key, const T &value); 8737: QHash &unite(const QHash &other); 8737: 8737: 8737: typedef T mapped_type; 8737: typedef Key key_type; 8737: typedef qptrdiff difference_type; 8737: typedef int size_type; 8737: 8737: inline bool empty() const { return isEmpty(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: void detach_helper(); 8737: void freeData(QHashData *d); 8737: Node **findNode(const Key &key, uint *hp = nullptr) const; 8737: Node **findNode(const Key &key, uint h) const; 8737: Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); 8737: void deleteNode(Node *node); 8737: static void deleteNode2(QHashData::Node *node); 8737: 8737: static void duplicateNode(QHashData::Node *originalNode, void *newNode); 8737: 8737: bool isValidIterator(const iterator &it) const noexcept 8737: { return isValidNode(it.i); } 8737: bool isValidIterator(const const_iterator &it) const noexcept 8737: { return isValidNode(it.i); } 8737: bool isValidNode(QHashData::Node *node) const noexcept 8737: { 8737: 8737: 8737: 8737: 8737: 8737: (void)node;; 8737: return true; 8737: 8737: } 8737: friend class QSet; 8737: }; 8737: 8737: 8737: template 8737: inline void QHash::deleteNode(Node *node) 8737: { 8737: deleteNode2(reinterpret_cast(node)); 8737: d->freeNode(node); 8737: } 8737: 8737: template 8737: inline void QHash::deleteNode2(QHashData::Node *node) 8737: { 8737: 8737: 8737: 8737: concrete(node)->~Node(); 8737: 8737: } 8737: 8737: template 8737: inline void QHash::duplicateNode(QHashData::Node *node, void *newNode) 8737: { 8737: Node *concreteNode = concrete(node); 8737: new (newNode) Node(concreteNode->key, concreteNode->value, concreteNode->h, nullptr); 8737: } 8737: 8737: template 8737: inline typename QHash::Node * 8737: QHash::createNode(uint ah, const Key &akey, const T &avalue, Node **anextNode) 8737: { 8737: Node *node = new (d->allocateNode(alignOfNode())) Node(akey, avalue, ah, *anextNode); 8737: *anextNode = node; 8737: ++d->size; 8737: return node; 8737: } 8737: 873Argval>>::value, 8768: __result_of_memobj_ref<_MemPtr, _Arg>, 8768: __result_of_memobj_deref<_MemPtr, _Arg> 8768: >::type::type type; 8768: }; 8768: 8768: template 8768: struct __result_of_memfun; 8768: 8768: template 8768: struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> 8768: { 8768: typedef typename remove_cv::type>::type _Argval; 8768: typedef _Res _Class::* _MemPtr; 8768: typedef typename conditional<__or_, 8768: is_base_of<_Class, _Argval>>::value, 8768: __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, 8768: __result_of_memfun_deref<_MemPtr, _Arg, _Args...> 8768: >::type::type type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template::type> 8768: struct __inv_unwrap 8768: { 8768: using type = _Tp; 8768: }; 8768: 8768: template 8768: struct __inv_unwrap<_Tp, reference_wrapper<_Up>> 8768: { 8768: using type = _Up&; 8768: }; 8768: 8768: template 8768: struct __result_of_impl 8768: { 8768: typedef __failure_type type; 8768: }; 8768: 8768: template 8768: struct __result_of_impl 8768: : public __result_of_memobj::type, 8768: typename __inv_unwrap<_Arg>::type> 8768: { }; 8768: 8768: template 8768: struct __result_of_impl 8768: : public __result_of_memfun::type, 8768: typename __inv_unwrap<_Arg>::type, _Args...> 8768: { }; 8768: 8768: 8768: struct __result_of_other_impl 8768: { 8768: template 8768: static __result_of_success()(std::declval<_Args>()...) 8768: ), __invoke_other> _S_test(int); 8768: 8768: template 8768: static __failure_type _S_test(...); 8768: }; 8768: 8768: template 8768: struct __result_of_impl 8768: : private __result_of_other_impl 8768: { 8768: typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; 8768: }; 8768: 8768: 8768: template 8768: struct __invoke_result 8768: : public __result_of_impl< 8768: is_member_object_pointer< 8768: typename remove_reference<_Functor>::type 8768: >::value, 8768: is_member_function_pointer< 8768: typename remove_reference<_Functor>::type 8768: >::value, 8768: _Functor, _ArgTypes... 8768: >::type 8768: { }; 8768: 8768: template 8768: struct result_of<_Functor(_ArgTypes...)> 8768: : public __invoke_result<_Functor, _ArgTypes...> 8768: { }; 8768: # 2329 "/usr/include/c++/8/type_traits" 3 8768: template using __void_t = void; 8768: 8768: 8768: 8768: 8768: template using void_t = void; 8768: 8768: 8768: 8768: template class _Op, typename... _Args> 8768: struct __detector 8768: { 8768: using value_t = false_type; 8768: using type = _Default; 8768: }; 8768: 8768: 8768: template class _Op, 8768: typename... _Args> 8768: struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> 8768: { 8768: using value_t = true_type; 8768: using type = _Op<_Args...>; 8768: }; 8768: 8768: 8768: template class _Op, 8768: typename... _Args> 8768: using __detected_or = __detector<_Default, void, _Op, _Args...>; 8768: 8768: 8768: template class _Op, 8768: typename... _Args> 8768: using __detected_or_t 8768: = typename __detected_or<_Default, _Op, _Args...>::type; 8768: # 2382 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct __is_swappable; 8768: 8768: template 8768: struct __is_nothrow_swappable; 8768: 8768: template 8768: class tuple; 8768: 8768: template 8768: struct __is_tuple_like_impl : false_type 8768: { }; 8768: 8768: template 8768: struct __is_tuple_like_impl> : true_type 8768: { }; 8768: 8768: 8768: template 8768: struct __is_tuple_like 8768: : public __is_tuple_like_impl::type>::type>::type 8768: { }; 8768: 8768: template 8768: inline 8768: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8768: is_move_constructible<_Tp>, 8768: is_move_assignable<_Tp>>::value>::type 8768: swap(_Tp&, _Tp&) 8768: noexcept(__and_, 8768: is_nothrow_move_assignable<_Tp>>::value); 8768: 8768: template 8768: inline 8768: typename enable_if<__is_swappable<_Tp>::value>::type 8768: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8768: noexcept(__is_nothrow_swappable<_Tp>::value); 8768: 8768: namespace __swappable_details { 8768: using std::swap; 8768: 8768: struct __do_is_swappable_impl 8768: { 8768: template(), std::declval<_Tp&>()))> 8768: static true_type __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: struct __do_is_nothrow_swappable_impl 8768: { 8768: template 8768: static __bool_constant< 8768: noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) 8768: > __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: } 8768: 8768: template 8768: struct __is_swappable_impl 8768: : public __swappable_details::__do_is_swappable_impl 8768: { 8768: typedef decltype(__test<_Tp>(0)) type; 8768: }; 8768: 8768: template 8768: struct __is_nothrow_swappable_impl 8768: : public __swappable_details::__do_is_nothrow_swappable_impl 8768: { 8768: typedef decltype(__test<_Tp>(0)) type; 8768: }; 8768: 8768: template 8768: struct __is_swappable 8768: : public __is_swappable_impl<_Tp>::type 8768: { }; 8768: 8768: template 8768: struct __is_nothrow_swappable 8768: : public __is_nothrow_swappable_impl<_Tp>::type 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_swappable 8768: : public __is_swappable_impl<_Tp>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_swappable 8768: : public __is_nothrow_swappable_impl<_Tp>::type 8768: { }; 8768: # 2499 "/usr/include/c++/8/type_traits" 3 8768: namespace __swappable_with_details { 8768: using std::swap; 8768: 8768: struct __do_is_swappable_with_impl 8768: { 8768: template(), std::declval<_Up>())), 8768: typename 8768: = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> 8768: static true_type __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: struct __do_is_nothrow_swappable_with_impl 8768: { 8768: 7: template 8737: inline QHash &QHash::unite(const QHash &other) 8737: { 8737: if (d == &QHashData::shared_null) { 8737: *this = other; 8737: } else { 8737: QHash copy(other); 8737: const_iterator it = copy.constEnd(); 8737: while (it != copy.constBegin()) { 8737: --it; 8737: insertMulti(it.key(), it.value()); 8737: } 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: void QHash::freeData(QHashData *x) 8737: { 8737: x->free_helper(deleteNode2); 8737: } 8737: 8737: template 8737: inline void QHash::clear() 8737: { 8737: *this = QHash(); 8737: } 8737: 8737: template 8737: void QHash::detach_helper() 8737: { 8737: QHashData *x = d->detach_helper(duplicateNode, deleteNode2, sizeof(Node), alignOfNode()); 8737: if (!d->ref.deref()) 8737: freeData(d); 8737: d = x; 8737: } 8737: 8737: template 8737: inline QHash &QHash::operator=(const QHash &other) 8737: { 8737: if (d != other.d) { 8737: QHashData *o = other.d; 8737: o->ref.ref(); 8737: if (!d->ref.deref()) 8737: freeData(d); 8737: d = o; 8737: if (!d->sharable) 8737: detach_helper(); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: inline const T QHash::value(const Key &akey) const 8737: { 8737: Node *node; 8737: if (d->size == 0 || (node = *findNode(akey)) == e) { 8737: return T(); 8737: } else { 8737: return node->value; 8737: } 8737: } 8737: 8737: template 8737: inline const T QHash::value(const Key &akey, const T &adefaultValue) const 8737: { 8737: Node *node; 8737: if (d->size == 0 || (node = *findNode(akey)) == e) { 8737: return adefaultValue; 8737: } else { 8737: return node->value; 8737: } 8737: } 8737: 8737: template 8737: QList QHash::uniqueKeys() const 8737: { 8737: QList res; 8737: res.reserve(size()); 8737: const_iterator i = begin(); 8737: if (i != end()) { 8737: for (;;) { 8737: const Key &aKey = i.key(); 8737: res.append(aKey); 8737: do { 8737: if (++i == end()) 8737: goto break_out_of_outer_loop; 8737: } while (aKey == i.key()); 8737: } 8737: } 8737: break_out_of_outer_loop: 8737: return res; 8737: } 8737: 8737: template 8737: QList QHash::keys() const 8737: { 8737: QList res; 8737: res.reserve(size()); 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: res.append(i.key()); 8737: ++i; 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: QList QHash::keys(const T &avalue) const 8737: { 8737: QList res; 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: if (i.value() == avalue) 8737: res.append(i.key()); 8737: ++i; 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: const Key QHash::key(const T &avalue) const 8737: { 8737: return key(avalue, Key()); 8737: } 8737: 8737: template 8737: const Key QHash::key(const T &avalue, const Key &defaultValue) const 8737: { 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: if (i.value() == avalue) 8737: return i.key(); 8737: ++i; 8737: } 8737: 8737: return defaultValue; 8737: } 8737: 8737: template 8737: QList QHash::values() const 8737: { 8737: QList res; 8737: res.reserve(size()); 8737: const_iterator i = begin(); 8737: while (i != end()) { 8737: res.append(i.value()); 8737: ++i; 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: QList QHash::values(const Key &akey) const 8737: { 8737: QList res; 8737: Node *node = *findNode(akey); 8737: if (node != e) { 8737: do { 8737: res.append(node->value); 8737: } while ((node = node->next) != e && node->key == akey); 8737: } 8737: return res; 8737: } 8737: 8737: template 8737: int QHash::count(const Key &akey) const 8737: { 8737: int cnt = 0; 8737: Node *node = *findNode(akey); 8737: if (node != e) { 8737: do { 8737: ++cnt; 8737: } while ((node = node->next) != e && node->key == akey); 8737: } 8737: return cnt; 8737: } 8737: 8737: template 8737: inline const T QHash::operator[](const Key &akey) const 8737: { 8737: return value(akey); 8737: } 8737: 8737: template 8737: inline T &QHash::operator[](const Key &akey) 8737: { 8737: detach(); 8737: 8737: uint h; 8737: Node **node = findNode(akey, &h); 8737: if (*node == e) { 8737: if (d->willGrow()) 8737: node = findNode(akey, h); 8737: return createNode(h, akey, T(), node)->value; 8737: } 8737: return (*node)->value; 8737: } 8737: 8737: template 8737: inline typename QHash::iterator QHash::insert(const Key &akey, 8737: const T &avalue) 8737: { 8737: detach(); 8737: 8737: uint h; 8737: Node **node = findNode(akey, &h); 8737: if (*node == e) { 8737: if (d->willGrow()) 8737: node = findNode(akey, h); 8737: return iterator(createNode(h, akey, avalue, node)); 8737: } 8737: 8737: if (!std::is_same::value) 8737: (*node)->value = avalue; 8737: return iterator(*node); 8737: } 8737: 8737: template 8737: inline typename QHash::iterator QHash::insertMulti(const Key &akey, 8737: const T &avalue) 8737: { 8737: detach(); 8737: d->willGrow(); 8737: 8737: uint h; 8737: Node **nextNode = findNode(akey, &h); 8737: return iterator(createNode(h, akey, avalue, nextNode)); 8737: } 8737: 8737: template 8737: int QHash::remove(const Key &akey) 8737: { 8737: if (isEmpty()) 8737: return 0; 8737: detach(); 8737: 8737: int oldSize = d->size; 8737: Node **node = findNode(akey); 8737: if (*node != e) { 8737: bool deleteNext = true; 8737: do { 8737: Node *next = (*node)->next; 8737: deleteNext = (next != e && next->key == (*node)->key); 8737: deleteNode(*node); 8737: *node = next; 8737: --d->size; 8737: } while (deleteNext); 8737: d->hasShrunk(); 8737: } 8737: return oldSize - d->size; 8737: } 8737: 8737: template 8737: T QHash::take(const Key &akey) 8737: { 8737: if (isEmpty()) 8737: return T(); 8737: detach(); 8737: 8737: Node **node = findNode(akey); 8737: if (*node != e) { 8737: T t = (*node)->value; 8737: Node *next = (*node)->next; 8737: deleteNode(*node); 8737: *node = next; 8737: --d->size; 8737: d->hasShrunk(); 8737: return t; 8737: } 8737: return T(); 8737: } 8737: 8737: template 8737: typename QHash::iterator QHash::erase(const_iterator it) 8737: { 8737: do { } while ((false) && (isValidIterator(it))); 8737: 8737: if (it == const_iterator(e)) 8737: return iterator(it.i); 8737: 8737: if (d->ref.isShared()) { 8737: 8737: int bucketNum = (it.i->h % d->numBuckets); 8737: const_iterator bucketIterator(*(d->buckets + bucketNum)); 8737: int st template 8768: static __bool_constant< 8768: noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) 8768: && 8768: noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) 8768: > __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: }; 8768: 8768: } 8768: 8768: template 8768: struct __is_swappable_with_impl 8768: : public __swappable_with_details::__do_is_swappable_with_impl 8768: { 8768: typedef decltype(__test<_Tp, _Up>(0)) type; 8768: }; 8768: 8768: 8768: template 8768: struct __is_swappable_with_impl<_Tp&, _Tp&> 8768: : public __swappable_details::__do_is_swappable_impl 8768: { 8768: typedef decltype(__test<_Tp&>(0)) type; 8768: }; 8768: 8768: template 8768: struct __is_nothrow_swappable_with_impl 8768: : public __swappable_with_details::__do_is_nothrow_swappable_with_impl 8768: { 8768: typedef decltype(__test<_Tp, _Up>(0)) type; 8768: }; 8768: 8768: 8768: template 8768: struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> 8768: : public __swappable_details::__do_is_nothrow_swappable_impl 8768: { 8768: typedef decltype(__test<_Tp&>(0)) type; 8768: }; 8768: 8768: 8768: template 8768: struct is_swappable_with 8768: : public __is_swappable_with_impl<_Tp, _Up>::type 8768: { }; 8768: 8768: 8768: template 8768: struct is_nothrow_swappable_with 8768: : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type 8768: { }; 8768: # 2587 "/usr/include/c++/8/type_traits" 3 8768: template 8768: struct __is_invocable_impl : false_type { }; 8768: 8768: template 8768: struct __is_invocable_impl<_Result, _Ret, __void_t> 8768: : __or_, is_convertible>::type 8768: { }; 8768: 8768: template 8768: struct __is_invocable 8768: : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type 8768: { }; 8768: 8768: template 8768: constexpr bool __call_is_nt(__invoke_memfun_ref) 8768: { 8768: using _Up = typename __inv_unwrap<_Tp>::type; 8768: return noexcept((std::declval<_Up>().*std::declval<_Fn>())( 8768: std::declval<_Args>()...)); 8768: } 8768: 8768: template 8768: constexpr bool __call_is_nt(__invoke_memfun_deref) 8768: { 8768: return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( 8768: std::declval<_Args>()...)); 8768: } 8768: 8768: template 8768: constexpr bool __call_is_nt(__invoke_memobj_ref) 8768: { 8768: using _Up = typename __inv_unwrap<_Tp>::type; 8768: return noexcept(std::declval<_Up>().*std::declval<_Fn>()); 8768: } 8768: 8768: template 8768: constexpr bool __call_is_nt(__invoke_memobj_deref) 8768: { 8768: return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); 8768: } 8768: 8768: template 8768: constexpr bool __call_is_nt(__invoke_other) 8768: { 8768: return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); 8768: } 8768: 8768: template 8768: struct __call_is_nothrow 8768: : __bool_constant< 8768: std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) 8768: > 8768: { }; 8768: 8768: template 8768: using __call_is_nothrow_ 8768: = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; 8768: 8768: 8768: template 8768: struct __is_nothrow_invocable 8768: : __and_<__is_invocable<_Fn, _Args...>, 8768: __call_is_nothrow_<_Fn, _Args...>>::type 8768: { }; 8768: 8768: struct __nonesuch { 8768: __nonesuch() = delete; 8768: ~__nonesuch() = delete; 8768: __nonesuch(__nonesuch const&) = delete; 8768: void operator=(__nonesuch const&) = delete; 8768: }; 8768: # 2943 "/usr/include/c++/8/type_traits" 3 8768: 8768: } 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/c++/8/cstddef" 1 3 4 8768: # 42 "/usr/include/c++/8/cstddef" 3 4 8768: 8768: # 43 "/usr/include/c++/8/cstddef" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 149 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8768: typedef long int ptrdiff_t; 8768: # 216 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8768: typedef long unsigned int size_t; 8768: # 426 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8768: typedef struct { 8768: long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); 8768: long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); 8768: # 437 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 3 4 8768: } max_align_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef decltype(nullptr) nullptr_t; 8768: # 51 "/usr/include/c++/8/cstddef" 2 3 8768: 8768: 8768: namespace std 8768: { 8768: 8768: using ::max_align_t; 8768: } 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/c++/8/utility" 1 3 4 8768: # 58 "/usr/include/c++/8/utility" 3 4 8768: 8768: # 59 "/usr/include/c++/8/utility" 3 8768: # 69 "/usr/include/c++/8/utility" 3 8768: # 1 "/usr/include/c++/8/bits/stl_relops.h" 1 3 8768: # 67 "/usr/include/c++/8/bits/stl_relops.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace rel_ops 8768: { 8768: # 85 "/usr/include/c++/8/bits/stl_relops.h" 3 8768: template 8768: inline bool 8768: operator!=(const _Tp& __x, const _Tp& __y) 8768: { return !(__x == __y); } 8768: # 98 "/usr/include/c++/8/bits/stl_relops.h" 3 8768: template 8768: inline bool 8768: operator>(const _Tp& __x, const _Tp& __y) 8768: { return __y < __x; } 8768: # 111 "/usr/include/c++/8/bits/stl_relops.h" 3 8768: template 8768: inline bool 8768: operator<=(const _Tp& __x, const _Tp& __y) 8768: { return !(__y < __x); } 8768: # 124 "/usr/include/c++/8/bits/stl_relops.h" 3 8768: template 8768: inline bool 8768: operator>=(const _Tp& __x, const _Tp& __y) 8768: { return !(__x < __y); } 8768: } 8768: 8768: 8768: } 8768: # 70 "/usr/include/c++/8/utility" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_pair.h" 1 3 8768: # 59 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: # 1 "/usr/include/c++/8/bits/move.h" 1 3 8768: # 34 "/usr/include/c++/8/bits/move.h" 3 8768: # 1 "/usr/include/c++/8/bits/concept_check.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/concept_check.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/concept_check.h" 3 8768: # 35 "/usr/include/c++/8/bits/move.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline constexpr _Tp* 8768: __addressof(_Tp& __r) noexcept 8768: { return __builtin_addressof(__r); } 8768: 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 72 "/usr/include/c++/8/bits/move.h" 3 8768: template 8768: constexpr _Tp&& 8768: forward(typename std::remove_reference<_Tp>::type& __t) noexcept 8768: { return static_cast<_Tp&&>(__t); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: constexpr _Tp&& 8768: forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 8768: { 8768: static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" 8768: " substituting _Tp is an lvalue reference type"); 8768: return static_cast<_Tp&&>(__t); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: constexpr typename std::remove_reference<_Tp>::type&& 8768: move(_Tp&& __t) noexcept 8768: { return static_cast::type&&>(__t); } 8768: 8768: 8768: template 8768: struct __move_if_noexcept_cond 8768: : public __and_<__not_>, 8768: is_copy_constructible<_Tp>>::type { }; 8768: # 116 "/usr/include/c++/8/bits/move.h" 3 8768: template 8768: constexpr typename 8768: conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type 8768: move_if_noexcept(_Tp& __x) noexcept 8768: { return std::move(__x); } 8768: # 136 "/usr/include/c++/8/bits/move.h" 3 8768: template 8768: inline _Tp* 8768: addressof(_Tp& __r) noexcept 8768: { return std::__addressof(__r); } 8768: 8768: 8768: 8768: template 8768: const _Tp* addressof(const _Tp&&) = delete; 8768: 8768: 8768: template 8768: inline _Tp 8768: __exchange(_Tp& __obj, _Up&& __new_val) 8768: { 8768: _Tp __old_val = std::move(__obj); 8768: __obj = std::forward<_Up>(__new_val); 8768: return __old_val; 8768: } 8768: # 176 "/usr/include/c++/8/bits/move.h" 3 8768: template 8768: inline 8768: 8768: typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, 8768: is_move_constructible<_Tp>, 8768: is_move_assignable<_Tp>>::value>::type 8768: swap(_Tp& __a, _Tp& __b) 8768: noexcept(__and_, 8768: is_nothrow_move_assignable<_Tp>>::value) 8768: 8768: 8768: 8768: 8768: { 8768: 8768: 8768: 8768: _Tp __tmp = std::move(__a); 8768: __a = std::move(__b); 8768: __b = std::move(__tmp); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: inline 8768: 8768: typename enable_if<__is_swappable<_Tp>::value>::type 8768: swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) 8768: noexcept(__is_nothrow_swappable<_Tp>::value) 8768: 8768: 8768: 8768: 8768: { 8768: for (size_t __n = 0; __n < _Nm; ++__n) 8768: swap(__a[__n], __b[__n]); 8768: } 8768: 8768: 8768: 8768: } 8768: # 60 "/usr/include/c++/8/bits/stl_pair.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 76 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; 8768: 8768: 8768: constexpr piecewise_construct_t piecewise_construct = 8768: piecewise_construct_t(); 8768: 8768: 8768: template 8768: class tuple; 8768: 8768: template 8768: struct _Index_tuple; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _PCC 8768: { 8768: template 8768: static constexpr bool _ConstructiblePair() 8768: { 8768: return __and_, 8768: is_constructible<_T2, const _U2&>>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyConvertiblePair() 8768: { 8768: return __and_, 8768: is_convertible>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _MoveConstructiblePair() 8768: { 8768: return __and_, 8768: is_constructible<_T2, _U2&&>>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyMoveConvertiblePair() 8768: { 8768: return __and_, 8768: is_convertible<_U2&&, _T2>>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _CopyMovePair() 8768: { 8768: using __do_converts = __and_, 8768: is_convertible<_U2&&, _T2>>; 8768: using __converts = typename conditional<__implicit, 8768: __do_converts, 8768: __not_<__do_converts>>::type; 8768: return __and_, 8768: is_constructible<_T2, _U2&&>, 8768: __converts 8768: >::value; 8768: } 8768: 8768: template 8768: static constexpr bool _MoveCopyPair() 8768: { 8768: using __do_converts = __and_, 8768: is_convertible>; 8768: using __converts = typename conditional<__implicit, 8768: __do_converts, 8768: __not_<__do_converts>>::type; 8768: return __and_, 8768: is_constructible<_T2, const _U2&&>, 8768: __converts 8768: >::value; 8768: } 8768: }; 8768: 8768: template 8768: struct _PCC 8768: { 8768: template 8768: static constexpr bool _ConstructiblePair() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyConvertiblePair() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _MoveConstructiblePair() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyMoveConvertiblePair() 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: struct __nonesuch_no_braces : std::__nonesuch { 8768: explicit __nonesuch_no_braces(const __nonesuch&) = delete; 8768: }; 8768: # 197 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: template 8768: struct pair 8768: { 8768: typedef _T1 first_type; 8768: typedef _T2 second_type; 8768: 8768: _T1 first; 8768: _T2 second; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template , 8768: __is_implicitly_default_constructible<_U2>> 8768: ::value, bool>::type = true> 8768: 8768: constexpr pair() 8768: : first(), second() { } 8768: 8768: 8768: template , 8768: is_default_constructible<_U2>, 8768: __not_< 8768: __and_<__is_implicitly_default_constructible<_U1>, 8768: __is_implicitly_default_constructible<_U2>>>> 8768: ::value, bool>::type = false> 8768: explicit constexpr pair() 8768: : first(), second() { } 8768: # 241 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: using _PCCP = _PCC; 8768: 8768: template() 8768: && _PCCP::template 8768: _ImplicitlyConvertiblePair<_U1, _U2>(), 8768: bool>::type=true> 8768: constexpr pair(const _T1& _epsFromBucketStartToIte = 0; 8737: while (bucketIterator != it) { 8737: ++stepsFromBucketStartToIte; 8737: ++bucketIterator; 8737: } 8737: detach(); 8737: it = const_iterator(*(d->buckets + bucketNum)); 8737: while (stepsFromBucketStartToIte > 0) { 8737: --stepsFromBucketStartToIte; 8737: ++it; 8737: } 8737: } 8737: 8737: iterator ret(it.i); 8737: ++ret; 8737: 8737: Node *node = concrete(it.i); 8737: Node **node_ptr = reinterpret_cast(&d->buckets[node->h % d->numBuckets]); 8737: while (*node_ptr != node) 8737: node_ptr = &(*node_ptr)->next; 8737: *node_ptr = node->next; 8737: deleteNode(node); 8737: --d->size; 8737: return ret; 8737: } 8737: 8737: template 8737: inline void QHash::reserve(int asize) 8737: { 8737: detach(); 8737: d->rehash(-qMax(asize, 1)); 8737: } 8737: 8737: template 8737: inline typename QHash::const_iterator QHash::find(const Key &akey) const 8737: { 8737: return const_iterator(*findNode(akey)); 8737: } 8737: 8737: template 8737: inline typename QHash::const_iterator QHash::constFind(const Key &akey) const 8737: { 8737: return const_iterator(*findNode(akey)); 8737: } 8737: 8737: template 8737: inline typename QHash::iterator QHash::find(const Key &akey) 8737: { 8737: detach(); 8737: return iterator(*findNode(akey)); 8737: } 8737: 8737: template 8737: inline bool QHash::contains(const Key &akey) const 8737: { 8737: return *findNode(akey) != e; 8737: } 8737: 8737: template 8737: typename QHash::Node **QHash::findNode(const Key &akey, uint h) const 8737: { 8737: Node **node; 8737: 8737: if (d->numBuckets) { 8737: node = reinterpret_cast(&d->buckets[h % d->numBuckets]); 8737: do { } while ((false) && (*node == e || (*node)->next)); 8737: while (*node != e && !(*node)->same_key(h, akey)) 8737: node = &(*node)->next; 8737: } else { 8737: node = const_cast(reinterpret_cast(&e)); 8737: } 8737: return node; 8737: } 8737: 8737: template 8737: typename QHash::Node **QHash::findNode(const Key &akey, 8737: uint *ahp) const 8737: { 8737: uint h = 0; 8737: 8737: if (d->numBuckets || ahp) { 8737: h = qHash(akey, d->seed); 8737: if (ahp) 8737: *ahp = h; 8737: } 8737: return findNode(akey, h); 8737: } 8737: 8737: template 8737: bool QHash::operator==(const QHash &other) const 8737: { 8737: if (size() != other.size()) 8737: return false; 8737: if (d == other.d) 8737: return true; 8737: 8737: const_iterator it = begin(); 8737: 8737: while (it != end()) { 8737: 8737: 8737: auto thisEqualRangeEnd = it; 8737: while (thisEqualRangeEnd != end() && it.key() == thisEqualRangeEnd.key()) 8737: ++thisEqualRangeEnd; 8737: 8737: const auto otherEqualRange = other.equal_range(it.key()); 8737: 8737: if (std::distance(it, thisEqualRangeEnd) != std::distance(otherEqualRange.first, otherEqualRange.second)) 8737: return false; 8737: # 962 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8737: if (!std::is_permutation(it, thisEqualRangeEnd, otherEqualRange.first 8737: 8737: 8737: 8737: )) { 8737: return false; 8737: } 8737: 8737: it = thisEqualRangeEnd; 8737: } 8737: 8737: return true; 8737: } 8737: 8737: template 8737: QPair::iterator, typename QHash::iterator> QHash::equal_range(const Key &akey) 8737: { 8737: detach(); 8737: auto pair = qAsConst(*this).equal_range(akey); 8737: return qMakePair(iterator(pair.first.i), iterator(pair.second.i)); 8737: } 8737: 8737: template 8737: QPair::const_iterator, typename QHash::const_iterator> QHash::equal_range(const Key &akey) const noexcept 8737: { 8737: Node *node = *findNode(akey); 8737: const_iterator firstIt = const_iterator(node); 8737: 8737: if (node != e) { 8737: 8737: 8737: 8737: 8737: while (node->next != e && node->next->key == akey) 8737: node = node->next; 8737: 8737: 8737: 8737: 8737: 8737: node = concrete(QHashData::nextNode(reinterpret_cast(node))); 8737: } 8737: 8737: return qMakePair(firstIt, const_iterator(node)); 8737: } 8737: 8737: template 8737: class QMultiHash : public QHash 8737: { 8737: public: 8737: QMultiHash() noexcept {} 8737: 8737: inline QMultiHash(std::initializer_list > list) 8737: { 8737: this->reserve(int(list.size())); 8737: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8737: insert(it->first, it->second); 8737: } 8737: 8737: 8737: 8737: 8737: QMultiHash(const QHash &other) : QHash(other) {} 8737: 8737: QMultiHash(QHash &&other) noexcept : QHash(std::move(other)) {} 8737: 8737: void swap(QMultiHash &other) noexcept { QHash::swap(other); } 8737: 8737: inline typename QHash::iterator replace(const Key &key, const T &value) 8737: { return QHash::insert(key, value); } 8737: 8737: inline typename QHash::iterator insert(const Key &key, const T &value) 8737: { return QHash::insertMulti(key, value); } 8737: 8737: inline QMultiHash &operator+=(const QMultiHash &other) 8737: { this->unite(other); return *this; } 8737: inline QMultiHash operator+(const QMultiHash &other) const 8737: { QMultiHash result = *this; result += other; return result; } 8737: 8737: using QHash::contains; 8737: using QHash::remove; 8737: using QHash::count; 8737: using QHash::find; 8737: using QHash::constFind; 8737: 8737: bool contains(const Key &key, const T &value) const; 8737: 8737: int remove(const Key &key, const T &value); 8737: 8737: int count(const Key &key, const T &value) const; 8737: 8737: typename QHash::iterator find(const Key &key, const T &value) { 8737: typename QHash::iterator i(find(key)); 8737: typename QHash::iterator end(this->end()); 8737: while (i != end && i.key() == key) { 8737: if (i.value() == value) 8737: return i; 8737: ++i; 8737: } 8737: return end; 8737: } 8737: typename QHash::const_iterator find(const Key &key, const T &value) const { 8737: typename QHash::const_iterator i(constFind(key)); 8737: typename QHash::const_iterator end(QHash::constEnd()); 8737: while (i != end && i.key() == key) { 8737: if (i.value() == value) 8737: return i; 8737: ++i; 8737: } 8737: return end; 8737: } 8737: typename QHash::const_iterator constFind(const Key &key, const T &value) const 8737: { return find(key, value); } 8737: private: 8737: T &operator[](const Key &key); 8737: const T operator[](const Key &key) const; 8737: }; 8737: 8737: template 8737: inline bool QMultiHash::contains(const Key &key, const T &value) const 8737: { 8737: return constFind(key, value) != QHash::constEnd(); 8737: } 8737: 8737: template 8737: inline int QMultiHash::remove(const Key &key, const T &value) 8737: { 8737: int n = 0; 8737: typename QHash::iterator i(find(key)); 8737: typename QHash::iterator end(QHash::end()); 8737: while (i != end && i.key() == key) { 8737: if (i.value() == value) { 8737: i = this->erase(i); 8737: ++n; 8737: } else { 8737: ++i; 8737: } 8737: } 8737: return n; 8737: } 8737: 8737: template 8737: inline int QMultiHash::count(const Key &key, const T &value) const 8737: { 8737: int n = 0; 8737: typename QHash::const_iterator i(constFind(key)); 8737: typename QHash::const_iterator end(QHash::constEnd()); 8737: while (i != end && i.key() == key) { 8737: if (i.value() == value) 8737: ++n; 8737: ++i; 8737: } 8737: return n; 8737: } 8737: 8737: 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; } }; 8737: 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; } }; 8737: 8737: template 8737: uint qHash(const QHash &key, uint seed = 0) 8737: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8737: { 8737: QtPrivate::QHashCombineCommutative hash; 8737: for (auto it = key.begin(), end = key.end(); it != end; ++it) { 8737: const Key &k = it.key(); 8737: const T &v = it.value(); 8737: seed = hash(seed, std::pair(k, v)); 8737: } 8737: return seed; 8737: } 8737: 8737: template 8737: inline uint qHash(const QMultiHash &key, uint seed = 0) 8737: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8737: { 8737: const QHash &key2 = key; 8737: return qHash(key2, seed); 8737: } 8737: 8737: 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 1 3 4 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 3 4 8737: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 2 3 4 8737: 8737: 8737: 8737: template 8737: struct QScopedPointerDeleter 8737: { 8737: static inline void cleanup(T *pointer) 8737: { 8737: 8737: 8737: 8737: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8737: (void) sizeof(IsIncompleteType); 8737: 8737: delete pointer; 8737: } 8737: }; 8737: 8737: template 8737: struct QScopedPointerArrayDeleter 8737: { 8737: static inline void cleanup(T *pointer) 8737: { 8737: 8737: 8737: 8737: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8737: (void) sizeof(IsIncompleteType); 8737: 8737: delete [] pointer; 8737: } 8737: }; 8737: 8737: struct QScopedPointerPodDeleter 8737: { 8737: static inline void cleanup(void *pointer) { if (pointer) free(pointer); } 8737: }; 8737: 8737: 8737: template 8737: struct QScopedPointerObjectDeleteLater 8737: { 8737: static inline void cleanup(T *pointer) { if (pointer) pointer->deleteLater(); } 8737: }; 8737: 8737: class QObject; 8737: typedef QScopedPointerObjectDeleteLater QScopedPointerDeleteLater; 8737: 8737: 8737: template > 8737: class QScopedPointer 8737: { 8737: typedef T *QScopedPointer:: *RestrictedBool; 8737: public: 8737: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) 8737: { 8737: } 8737: 8737: inline ~QScopedPointer() 8737: { 8737: T *oldD = this->d; 8737: Cleanup::cleanup(oldD); 8737: } 8737: 8737: inline T &operator*() const 8737: { 8737: do { } while ((false) && (d)); 8737: return *d; 8737: } 8737: 8737: T *operator->() const noexcept 8737: { 8737: return d; 8737: } 8737: 8737: bool operator!() const noexcept 8737: { 8737: return !d; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: operator RestrictedBool() const noexcept 8737: { 8737: return isNull() ? nullptr : &QScopedPointer::d; 8737: } 8737: 8737: 8737: T *data() const noexcept 8737: { 8737: return d; 8737: } 8737: 8737: bool isNull() const noexcept 8737: { 8737: return !d; 8737: } 8737: 8737: void reset(T *other = nullptr) noexcept(noexcept(Cleanup::cleanup(std::declval()))) 8737: { 8737: if (d == other) 8737: return; 8737: T *oldD = d; 8737: d = other; 8737: Cleanup::cleanup(oldD); 8737: } 8737: 8737: T *take() noexcept 8737: { 8737: T *oldD = d; 8737: d = nullptr; 8737: return oldD; 8737: } 8737: 8737: void swap(QScopedPointer &other) noexcept 8737: { 8737: qSwap(d, other.d); 8737: _a, const _T2& __b) 8768: : first(__a), second(__b) { } 8768: 8768: template() 8768: && !_PCCP::template 8768: _ImplicitlyConvertiblePair<_U1, _U2>(), 8768: bool>::type=false> 8768: explicit constexpr pair(const _T1& __a, const _T2& __b) 8768: : first(__a), second(__b) { } 8768: # 269 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: template 8768: using _PCCFP = _PCC::value 8768: || !is_same<_T2, _U2>::value, 8768: _T1, _T2>; 8768: 8768: template::template 8768: _ConstructiblePair<_U1, _U2>() 8768: && _PCCFP<_U1, _U2>::template 8768: _ImplicitlyConvertiblePair<_U1, _U2>(), 8768: bool>::type=true> 8768: constexpr pair(const pair<_U1, _U2>& __p) 8768: : first(__p.first), second(__p.second) { } 8768: 8768: template::template 8768: _ConstructiblePair<_U1, _U2>() 8768: && !_PCCFP<_U1, _U2>::template 8768: _ImplicitlyConvertiblePair<_U1, _U2>(), 8768: bool>::type=false> 8768: explicit constexpr pair(const pair<_U1, _U2>& __p) 8768: : first(__p.first), second(__p.second) { } 8768: 8768: constexpr pair(const pair&) = default; 8768: constexpr pair(pair&&) = default; 8768: 8768: 8768: template(), 8768: bool>::type=true> 8768: constexpr pair(_U1&& __x, const _T2& __y) 8768: : first(std::forward<_U1>(__x)), second(__y) { } 8768: 8768: template(), 8768: bool>::type=false> 8768: explicit constexpr pair(_U1&& __x, const _T2& __y) 8768: : first(std::forward<_U1>(__x)), second(__y) { } 8768: 8768: template(), 8768: bool>::type=true> 8768: constexpr pair(const _T1& __x, _U2&& __y) 8768: : first(__x), second(std::forward<_U2>(__y)) { } 8768: 8768: template(), 8768: bool>::type=false> 8768: explicit pair(const _T1& __x, _U2&& __y) 8768: : first(__x), second(std::forward<_U2>(__y)) { } 8768: 8768: template() 8768: && _PCCP::template 8768: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8768: bool>::type=true> 8768: constexpr pair(_U1&& __x, _U2&& __y) 8768: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8768: 8768: template() 8768: && !_PCCP::template 8768: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8768: bool>::type=false> 8768: explicit constexpr pair(_U1&& __x, _U2&& __y) 8768: : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } 8768: 8768: 8768: template::template 8768: _MoveConstructiblePair<_U1, _U2>() 8768: && _PCCFP<_U1, _U2>::template 8768: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8768: bool>::type=true> 8768: constexpr pair(pair<_U1, _U2>&& __p) 8768: : first(std::forward<_U1>(__p.first)), 8768: second(std::forward<_U2>(__p.second)) { } 8768: 8768: template::template 8768: _MoveConstructiblePair<_U1, _U2>() 8768: && !_PCCFP<_U1, _U2>::template 8768: _ImplicitlyMoveConvertiblePair<_U1, _U2>(), 8768: bool>::type=false> 8768: explicit constexpr pair(pair<_U1, _U2>&& __p) 8768: : first(std::forward<_U1>(__p.first)), 8768: second(std::forward<_U2>(__p.second)) { } 8768: 8768: template 8768: pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); 8768: 8768: pair& 8768: operator=(typename conditional< 8768: __and_, 8768: is_copy_assignable<_T2>>::value, 8768: const pair&, const __nonesuch_no_braces&>::type __p) 8768: { 8768: first = __p.first; 8768: second = __p.second; 8768: return *this; 8768: } 8768: 8768: pair& 8768: operator=(typename conditional< 8768: __not_<__and_, 8768: is_copy_assignable<_T2>>>::value, 8768: const pair&, const __nonesuch_no_braces&>::type __p) = delete; 8768: 8768: pair& 8768: operator=(typename conditional< 8768: __and_, 8768: is_move_assignable<_T2>>::value, 8768: pair&&, __nonesuch_no_braces&&>::type __p) 8768: noexcept(__and_, 8768: is_nothrow_move_assignable<_T2>>::value) 8768: { 8768: first = std::forward(__p.first); 8768: second = std::forward(__p.second); 8768: return *this; 8768: } 8768: 8768: template 8768: typename enable_if<__and_, 8768: is_assignable<_T2&, const _U2&>>::value, 8768: pair&>::type 8768: operator=(const pair<_U1, _U2>& __p) 8768: { 8768: first = __p.first; 8768: second = __p.second; 8768: return *this; 8768: } 8768: 8768: template 8768: typename enable_if<__and_, 8768: is_assignable<_T2&, _U2&&>>::value, 8768: pair&>::type 8768: operator=(pair<_U1, _U2>&& __p) 8768: { 8768: first = std::forward<_U1>(__p.first); 8768: second = std::forward<_U2>(__p.second); 8768: return *this; 8768: } 8768: 8768: void 8768: swap(pair& __p) 8768: noexcept(__and_<__is_nothrow_swappable<_T1>, 8768: __is_nothrow_swappable<_T2>>::value) 8768: { 8768: using std::swap; 8768: swap(first, __p.first); 8768: swap(second, __p.second); 8768: } 8768: 8768: private: 8768: template 8768: pair(tuple<_Args1...>&, tuple<_Args2...>&, 8768: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline constexpr bool 8768: operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8768: { return __x.first == __y.first && __x.second == __y.second; } 8768: 8768: 8768: template 8768: inline constexpr bool 8768: operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8768: { return __x.first < __y.first 8768: || (!(__y.first < __x.first) && __x.second < __y.second); } 8768: 8768: 8768: template 8768: inline constexpr bool 8768: operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline constexpr bool 8768: operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline constexpr bool 8768: operator<=(const pair<_T1, _T2>& __x, const } 8737: 8737: typedef T *pointer; 8737: 8737: protected: 8737: T *d; 8737: 8737: private: 8737: QScopedPointer(const QScopedPointer &) = delete; QScopedPointer &operator=(const QScopedPointer &) = delete; 8737: }; 8737: 8737: template 8737: inline bool operator==(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8737: { 8737: return lhs.data() == rhs.data(); 8737: } 8737: 8737: template 8737: inline bool operator!=(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8737: { 8737: return lhs.data() != rhs.data(); 8737: } 8737: 8737: template 8737: inline bool operator==(const QScopedPointer &lhs, std::nullptr_t) noexcept 8737: { 8737: return lhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator==(std::nullptr_t, const QScopedPointer &rhs) noexcept 8737: { 8737: return rhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator!=(const QScopedPointer &lhs, std::nullptr_t) noexcept 8737: { 8737: return !lhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator!=(std::nullptr_t, const QScopedPointer &rhs) noexcept 8737: { 8737: return !rhs.isNull(); 8737: } 8737: 8737: template 8737: inline void swap(QScopedPointer &p1, QScopedPointer &p2) noexcept 8737: { p1.swap(p2); } 8737: 8737: 8737: namespace QtPrivate { 8737: template struct QScopedArrayEnsureSameType; 8737: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8737: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8737: } 8737: 8737: template > 8737: class QScopedArrayPointer : public QScopedPointer 8737: { 8737: public: 8737: inline QScopedArrayPointer() : QScopedPointer(nullptr) {} 8737: 8737: template 8737: explicit inline QScopedArrayPointer(D *p, typename QtPrivate::QScopedArrayEnsureSameType::Type = nullptr) 8737: : QScopedPointer(p) 8737: { 8737: } 8737: 8737: inline T &operator[](int i) 8737: { 8737: return this->d[i]; 8737: } 8737: 8737: inline const T &operator[](int i) const 8737: { 8737: return this->d[i]; 8737: } 8737: 8737: void swap(QScopedArrayPointer &other) noexcept 8737: { QScopedPointer::swap(other); } 8737: 8737: private: 8737: explicit inline QScopedArrayPointer(void *) { 8737: # 260 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 3 4 8737: } 8737: 8737: QScopedArrayPointer(const QScopedArrayPointer &) = delete; QScopedArrayPointer &operator=(const QScopedArrayPointer &) = delete; 8737: }; 8737: 8737: template 8737: inline void swap(QScopedArrayPointer &lhs, QScopedArrayPointer &rhs) noexcept 8737: { lhs.swap(rhs); } 8737: 8737: 8737: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h" 1 3 4 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h" 3 4 8737: 8737: 8737: 8737: namespace QtPrivate { 8737: # 65 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h" 3 4 8737: template struct TypesAreDeclaredMetaType { enum { Value = false }; }; 8737: template <> struct TypesAreDeclaredMetaType> { enum { Value = true }; }; 8737: template struct TypesAreDeclaredMetaType > 8737: { enum { Value = QMetaTypeId2::Defined && TypesAreDeclaredMetaType>::Value }; }; 8737: 8737: template ::Value > struct ConnectionTypes 8737: { static const int *types() { return nullptr; } }; 8737: template <> struct ConnectionTypes, true> 8737: { static const int *types() { return nullptr; } }; 8737: template struct ConnectionTypes, true> 8737: { static const int *types() { static const int t[sizeof...(Args) + 1] = { (QtPrivate::QMetaTypeIdHelper::qt_metatype_id())..., 0 }; return t; } }; 8737: 8737: 8737: class QSlotObjectBase { 8737: QAtomicInt m_ref; 8737: 8737: 8737: 8737: typedef void (*ImplFn)(int which, QSlotObjectBase* this_, QObject *receiver, void **args, bool *ret); 8737: const ImplFn m_impl; 8737: protected: 8737: enum Operation { 8737: Destroy, 8737: Call, 8737: Compare, 8737: 8737: NumOperations 8737: }; 8737: public: 8737: explicit QSlotObjectBase(ImplFn fn) : m_ref(1), m_impl(fn) {} 8737: 8737: inline int ref() noexcept { return m_ref.ref(); } 8737: inline void destroyIfLastRef() noexcept 8737: { if (!m_ref.deref()) m_impl(Destroy, this, nullptr, nullptr, nullptr); } 8737: 8737: inline bool compare(void **a) { bool ret = false; m_impl(Compare, this, nullptr, a, &ret); return ret; } 8737: inline void call(QObject *r, void **a) { m_impl(Call, this, r, a, nullptr); } 8737: protected: 8737: ~QSlotObjectBase() {} 8737: private: 8737: QSlotObjectBase(const QSlotObjectBase &) = delete; QSlotObjectBase &operator=(const QSlotObjectBase &) = delete; 8737: }; 8737: 8737: 8737: template class QSlotObject : public QSlotObjectBase 8737: { 8737: typedef QtPrivate::FunctionPointer FuncType; 8737: Func function; 8737: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8737: { 8737: switch (which) { 8737: case Destroy: 8737: delete static_cast(this_); 8737: break; 8737: case Call: 8737: FuncType::template call(static_cast(this_)->function, static_cast(r), a); 8737: break; 8737: case Compare: 8737: *ret = *reinterpret_cast(a) == static_cast(this_)->function; 8737: break; 8737: case NumOperations: ; 8737: } 8737: } 8737: public: 8737: explicit QSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8737: }; 8737: 8737: 8737: template class QStaticSlotObject : public QSlotObjectBase 8737: { 8737: typedef QtPrivate::FunctionPointer FuncType; 8737: Func function; 8737: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8737: { 8737: switch (which) { 8737: case Destroy: 8737: delete static_cast(this_); 8737: break; 8737: case Call: 8737: FuncType::template call(static_cast(this_)->function, r, a); 8737: break; 8737: case Compare: 8737: case NumOperations: 8737: (void)ret;; 8737: } 8737: } 8737: public: 8737: explicit QStaticSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8737: }; 8737: 8737: 8737: 8737: template class QFunctorSlotObject : public QSlotObjectBase 8737: { 8737: typedef QtPrivate::Functor FuncType; 8737: Func function; 8737: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8737: { 8737: switch (which) { 8737: case Destroy: 8737: dpair<_T1, _T2>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline constexpr bool 8768: operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline 8768: 8768: 8768: typename enable_if<__and_<__is_swappable<_T1>, 8768: __is_swappable<_T2>>::value>::type 8768: 8768: 8768: 8768: swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: template 8768: typename enable_if, 8768: __is_swappable<_T2>>::value>::type 8768: swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; 8768: # 516 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: template 8768: constexpr pair::__type, 8768: typename __decay_and_strip<_T2>::__type> 8768: make_pair(_T1&& __x, _T2&& __y) 8768: { 8768: typedef typename __decay_and_strip<_T1>::__type __ds_type1; 8768: typedef typename __decay_and_strip<_T2>::__type __ds_type2; 8768: typedef pair<__ds_type1, __ds_type2> __pair_type; 8768: return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); 8768: } 8768: # 535 "/usr/include/c++/8/bits/stl_pair.h" 3 8768: 8768: } 8768: # 71 "/usr/include/c++/8/utility" 2 3 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/initializer_list" 1 3 8768: # 33 "/usr/include/c++/8/initializer_list" 3 8768: 8768: # 34 "/usr/include/c++/8/initializer_list" 3 8768: 8768: 8768: 8768: 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: 8768: 8768: namespace std 8768: { 8768: 8768: template 8768: class initializer_list 8768: { 8768: public: 8768: typedef _E value_type; 8768: typedef const _E& reference; 8768: typedef const _E& const_reference; 8768: typedef size_t size_type; 8768: typedef const _E* iterator; 8768: typedef const _E* const_iterator; 8768: 8768: private: 8768: iterator _M_array; 8768: size_type _M_len; 8768: 8768: 8768: constexpr initializer_list(const_iterator __a, size_type __l) 8768: : _M_array(__a), _M_len(__l) { } 8768: 8768: public: 8768: constexpr initializer_list() noexcept 8768: : _M_array(0), _M_len(0) { } 8768: 8768: 8768: constexpr size_type 8768: size() const noexcept { return _M_len; } 8768: 8768: 8768: constexpr const_iterator 8768: begin() const noexcept { return _M_array; } 8768: 8768: 8768: constexpr const_iterator 8768: end() const noexcept { return begin() + size(); } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: constexpr const _Tp* 8768: begin(initializer_list<_Tp> __ils) noexcept 8768: { return __ils.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: constexpr const _Tp* 8768: end(initializer_list<_Tp> __ils) noexcept 8768: { return __ils.end(); } 8768: } 8768: 8768: #pragma GCC visibility pop 8768: # 77 "/usr/include/c++/8/utility" 2 3 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: struct tuple_size; 8768: 8768: 8768: 8768: 8768: 8768: template::type, 8768: typename = typename enable_if::value>::type, 8768: size_t = tuple_size<_Tp>::value> 8768: using __enable_if_has_tuple_size = _Tp; 8768: 8768: template 8768: struct tuple_size> 8768: : public tuple_size<_Tp> { }; 8768: 8768: template 8768: struct tuple_size> 8768: : public tuple_size<_Tp> { }; 8768: 8768: template 8768: struct tuple_size> 8768: : public tuple_size<_Tp> { }; 8768: 8768: 8768: template 8768: struct tuple_element; 8768: 8768: 8768: template 8768: using __tuple_element_t = typename tuple_element<__i, _Tp>::type; 8768: 8768: template 8768: struct tuple_element<__i, const _Tp> 8768: { 8768: typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; 8768: }; 8768: 8768: template 8768: struct tuple_element<__i, volatile _Tp> 8768: { 8768: typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; 8768: }; 8768: 8768: template 8768: struct tuple_element<__i, const volatile _Tp> 8768: { 8768: typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; 8768: }; 8768: # 148 "/usr/include/c++/8/utility" 3 8768: template 8768: struct __is_tuple_like_impl> : true_type 8768: { }; 8768: 8768: 8768: template 8768: struct tuple_size> 8768: : public integral_constant { }; 8768: 8768: 8768: template 8768: struct tuple_element<0, std::pair<_Tp1, _Tp2>> 8768: { typedef _Tp1 type; }; 8768: 8768: 8768: template 8768: struct tuple_element<1, std::pair<_Tp1, _Tp2>> 8768: { typedef _Tp2 type; }; 8768: 8768: template 8768: struct __pair_get; 8768: 8768: template<> 8768: struct __pair_get<0> 8768: { 8768: template 8768: static constexpr _Tp1& 8768: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8768: { return __pair.first; } 8768: 8768: template 8768: static constexpr _Tp1&& 8768: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8768: { return std::forward<_Tp1>(__pair.first); } 8768: 8768: template 8768: static constexpr const _Tp1& 8768: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8768: { return __pair.first; } 8768: 8768: template 8768: static constexpr const _Tp1&& 8768: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8768: { return std::forward(__pair.first); } 8768: }; 8768: 8768: template<> 8768: struct __pair_get<1> 8768: { 8768: template 8768: static constexpr _Tp2& 8768: __get(std::pair<_Tp1, _Tp2>& __pair) noexcept 8768: { return __pair.second; } 8768: 8768: template 8768: static constexpr _Tp2&& 8768: __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept 8768: { return std::forward<_Tp2>(__pair.second); } 8768: 8768: template 8768: static constexpr const _Tp2& 8768: __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept 8768: { return __pair.second; } 8768: 8768: template 8768: static constexpr const _Tp2&& 8768: __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept 8768: { return std::forward(__pair.second); } 8768: }; 8768: 8768: template 8768: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8768: get(std::pair<_Tp1, _Tp2>& __in) noexcept 8768: { return __pair_get<_Int>::__get(__in); } 8768: 8768: template 8768: constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8768: get(std::pair<_Tp1, _Tpelete static_cast(this_); 8737: break; 8737: case Call: 8737: FuncType::template call(static_cast(this_)->function, r, a); 8737: break; 8737: case Compare: 8737: case NumOperations: 8737: (void)ret;; 8737: } 8737: } 8737: public: 8737: explicit QFunctorSlotObject(const Func &f) : QSlotObjectBase(&impl), function(f) {} 8737: }; 8737: } 8737: 8737: 8737: 8737: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/c++/8/chrono" 1 3 4 8737: # 32 "/usr/include/c++/8/chrono" 3 4 8737: 8737: # 33 "/usr/include/c++/8/chrono" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/ratio" 1 3 8737: # 32 "/usr/include/c++/8/ratio" 3 8737: 8737: # 33 "/usr/include/c++/8/ratio" 3 8737: # 43 "/usr/include/c++/8/ratio" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 55 "/usr/include/c++/8/ratio" 3 8737: template 8737: struct __static_sign 8737: : integral_constant 8737: { }; 8737: 8737: template 8737: struct __static_abs 8737: : integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct __static_gcd 8737: : __static_gcd<_Qn, (_Pn % _Qn)> 8737: { }; 8737: 8737: template 8737: struct __static_gcd<_Pn, 0> 8737: : integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct __static_gcd<0, _Qn> 8737: : integral_constant::value> 8737: { }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __safe_multiply 8737: { 8737: private: 8737: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8737: 8737: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 8737: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 8737: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 8737: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 8737: 8737: static_assert(__a1 == 0 || __b1 == 0, 8737: "overflow in multiplication"); 8737: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 8737: "overflow in multiplication"); 8737: static_assert(__b0 * __a0 <= 0x7fffffffffffffffL, 8737: "overflow in multiplication"); 8737: static_assert((__a0 * __b1 + __b0 * __a1) * __c 8737: <= 0x7fffffffffffffffL - __b0 * __a0, 8737: "overflow in multiplication"); 8737: 8737: public: 8737: static const intmax_t value = _Pn * _Qn; 8737: }; 8737: 8737: 8737: 8737: template 8737: struct __big_less 8737: : integral_constant 8737: { }; 8737: 8737: template 8737: struct __big_add 8737: { 8737: static constexpr uintmax_t __lo = __lo1 + __lo2; 8737: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 8737: (__lo1 + __lo2 < __lo1)); 8737: }; 8737: 8737: 8737: template 8737: struct __big_sub 8737: { 8737: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 8737: "Internal library error"); 8737: static constexpr uintmax_t __lo = __lo1 - __lo2; 8737: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 8737: (__lo1 < __lo2)); 8737: }; 8737: 8737: 8737: template 8737: struct __big_mul 8737: { 8737: private: 8737: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8737: static constexpr uintmax_t __x0 = __x % __c; 8737: static constexpr uintmax_t __x1 = __x / __c; 8737: static constexpr uintmax_t __y0 = __y % __c; 8737: static constexpr uintmax_t __y1 = __y / __c; 8737: static constexpr uintmax_t __x0y0 = __x0 * __y0; 8737: static constexpr uintmax_t __x0y1 = __x0 * __y1; 8737: static constexpr uintmax_t __x1y0 = __x1 * __y0; 8737: static constexpr uintmax_t __x1y1 = __x1 * __y1; 8737: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 8737: static constexpr uintmax_t __mix_lo = __mix * __c; 8737: static constexpr uintmax_t __mix_hi 8737: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 8737: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 8737: public: 8737: static constexpr uintmax_t __hi = _Res::__hi; 8737: static constexpr uintmax_t __lo = _Res::__lo; 8737: }; 8737: 8737: 8737: 8737: template 8737: struct __big_div_impl 8737: { 8737: private: 8737: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 8737: "Internal library error"); 8737: static_assert(__n1 < __d, "Internal library error"); 8737: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8737: static constexpr uintmax_t __d1 = __d / __c; 8737: static constexpr uintmax_t __d0 = __d % __c; 8737: 8737: static constexpr uintmax_t __q1x = __n1 / __d1; 8737: static constexpr uintmax_t __r1x = __n1 % __d1; 8737: static constexpr uintmax_t __m = __q1x * __d0; 8737: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 8737: static constexpr uintmax_t __r1z = __r1y + __d; 8737: static constexpr uintmax_t __r1 8737: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 8737: ? (__r1z + __d) : __r1z : __r1y) - __m; 8737: static constexpr uintmax_t __q1 8737: = __q1x - ((__r1y < __m) 8737: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 8737: static constexpr uintmax_t __q0x = __r1 / __d1; 8737: static constexpr uintmax_t __r0x = __r1 % __d1; 8737: static constexpr uintmax_t __n = __q0x * __d0; 8737: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 8737: static constexpr uintmax_t __r0z = __r0y + __d; 8737: static constexpr uintmax_t __r0 8737: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 8737: ? (__r0z + __d) : __r0z : __r0y) - __n; 8737: static constexpr uintmax_t __q0 8737: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 8737: && (__r0z < __n)) ? 2 : 1 : 0); 8737: 8737: public: 8737: static constexpr uintmax_t __quot = __q1 * __c + __q0; 8737: static constexpr uintmax_t __rem = __r0; 8737: 8737: private: 8737: typedef __big_mul<__quot, __d> _Prod; 8737: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 8737: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8737: "Internal library error"); 8737: }; 8737: 8737: template 8737: struct __big_div 8737: { 8737: private: 8737: static_assert(__d != 0, "Internal library error"); 8737: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 8737: "This library calls __builtin_clzll on uintmax_t, which " 8737: "is unsafe on your platform. Please complain to " 8737: "http://gcc.gnu.org/bugzilla/"); 8737: static constexpr int __shift = __builtin_clzll(__d); 8737: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 8737: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 8737: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 8737: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 8737: static constexpr uintmax_t __new_d = __d * __c1; 8737: static constexpr uintmax_t __new_n0 = __n0 * __c1; 8737: static constexpr uin2>&& __in) noexcept 8768: { return __pair_get<_Int>::__move_get(std::move(__in)); } 8768: 8768: template 8768: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& 8768: get(const std::pair<_Tp1, _Tp2>& __in) noexcept 8768: { return __pair_get<_Int>::__const_get(__in); } 8768: 8768: template 8768: constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& 8768: get(const std::pair<_Tp1, _Tp2>&& __in) noexcept 8768: { return __pair_get<_Int>::__const_move_get(std::move(__in)); } 8768: # 293 "/usr/include/c++/8/utility" 3 8768: template struct _Index_tuple { }; 8768: # 302 "/usr/include/c++/8/utility" 3 8768: template 8768: struct _Build_index_tuple 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: using __type = _Index_tuple<__integer_pack(_Num)...>; 8768: 8768: }; 8768: # 397 "/usr/include/c++/8/utility" 3 8768: 8768: } 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qconfig.h" 1 3 4 8768: # 65 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtcore-config.h" 1 3 4 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 96 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsystemdetection.h" 1 3 4 8768: # 97 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qprocessordetection.h" 1 3 4 8768: # 98 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcompilerdetection.h" 1 3 4 8768: # 99 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 109 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: # 1 "/usr/include/c++/8/algorithm" 1 3 4 8768: # 58 "/usr/include/c++/8/algorithm" 3 4 8768: 8768: # 59 "/usr/include/c++/8/algorithm" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_algobase.h" 1 3 8768: # 60 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: # 1 "/usr/include/c++/8/bits/functexcept.h" 1 3 8768: # 40 "/usr/include/c++/8/bits/functexcept.h" 3 8768: # 1 "/usr/include/c++/8/bits/exception_defines.h" 1 3 8768: # 41 "/usr/include/c++/8/bits/functexcept.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: void 8768: __throw_bad_exception(void) __attribute__((__noreturn__)); 8768: 8768: 8768: void 8768: __throw_bad_alloc(void) __attribute__((__noreturn__)); 8768: 8768: 8768: void 8768: __throw_bad_cast(void) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_bad_typeid(void) __attribute__((__noreturn__)); 8768: 8768: 8768: void 8768: __throw_logic_error(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_domain_error(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_invalid_argument(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_length_error(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_out_of_range(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)) 8768: __attribute__((__format__(__gnu_printf__, 1, 2))); 8768: 8768: void 8768: __throw_runtime_error(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_range_error(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_overflow_error(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_underflow_error(const char*) __attribute__((__noreturn__)); 8768: 8768: 8768: void 8768: __throw_ios_failure(const char*) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_system_error(int) __attribute__((__noreturn__)); 8768: 8768: void 8768: __throw_future_error(int) __attribute__((__noreturn__)); 8768: 8768: 8768: void 8768: __throw_bad_function_call() __attribute__((__noreturn__)); 8768: 8768: 8768: } 8768: # 61 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/cpp_type_traits.h" 1 3 8768: # 35 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8768: 8768: # 36 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8768: # 67 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8768: extern "C++" { 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: struct __true_type { }; 8768: struct __false_type { }; 8768: 8768: template 8768: struct __truth_type 8768: { typedef __false_type __type; }; 8768: 8768: template<> 8768: struct __truth_type 8768: { typedef __true_type __type; }; 8768: 8768: 8768: 8768: template 8768: struct __traitor 8768: { 8768: enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; 8768: typedef typename __truth_type<__value>::__type __type; 8768: }; 8768: 8768: 8768: template 8768: struct __are_same 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: template 8768: struct __are_same<_Tp, _Tp> 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: template 8768: struct __is_void 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_void 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_integer 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: tmax_t __n1_shifted = (__n1 % __d) * __c1; 8737: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 8737: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 8737: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 8737: 8737: public: 8737: static constexpr uintmax_t __quot_hi = __n1 / __d; 8737: static constexpr uintmax_t __quot_lo = _Res::__quot; 8737: static constexpr uintmax_t __rem = _Res::__rem / __c1; 8737: 8737: private: 8737: typedef __big_mul<__quot_lo, __d> _P0; 8737: typedef __big_mul<__quot_hi, __d> _P1; 8737: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 8737: 8737: static_assert(_P1::__hi == 0, "Internal library error"); 8737: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 8737: 8737: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8737: "Internal library error"); 8737: static_assert(__rem < __d, "Internal library error"); 8737: }; 8737: # 262 "/usr/include/c++/8/ratio" 3 8737: template 8737: struct ratio 8737: { 8737: static_assert(_Den != 0, "denominator cannot be zero"); 8737: static_assert(_Num >= -0x7fffffffffffffffL && _Den >= -0x7fffffffffffffffL, 8737: "out of range"); 8737: 8737: 8737: static constexpr intmax_t num = 8737: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 8737: 8737: static constexpr intmax_t den = 8737: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 8737: 8737: typedef ratio type; 8737: }; 8737: 8737: template 8737: constexpr intmax_t ratio<_Num, _Den>::num; 8737: 8737: template 8737: constexpr intmax_t ratio<_Num, _Den>::den; 8737: 8737: template 8737: struct __ratio_multiply 8737: { 8737: private: 8737: static const intmax_t __gcd1 = 8737: __static_gcd<_R1::num, _R2::den>::value; 8737: static const intmax_t __gcd2 = 8737: __static_gcd<_R2::num, _R1::den>::value; 8737: 8737: public: 8737: typedef ratio< 8737: __safe_multiply<(_R1::num / __gcd1), 8737: (_R2::num / __gcd2)>::value, 8737: __safe_multiply<(_R1::den / __gcd2), 8737: (_R2::den / __gcd1)>::value> type; 8737: 8737: static constexpr intmax_t num = type::num; 8737: static constexpr intmax_t den = type::den; 8737: }; 8737: 8737: template 8737: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 8737: 8737: template 8737: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 8737: 8737: 8737: template 8737: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 8737: 8737: template 8737: struct __ratio_divide 8737: { 8737: static_assert(_R2::num != 0, "division by 0"); 8737: 8737: typedef typename __ratio_multiply< 8737: _R1, 8737: ratio<_R2::den, _R2::num>>::type type; 8737: 8737: static constexpr intmax_t num = type::num; 8737: static constexpr intmax_t den = type::den; 8737: }; 8737: 8737: template 8737: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 8737: 8737: template 8737: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 8737: 8737: 8737: template 8737: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 8737: 8737: 8737: template 8737: struct ratio_equal 8737: : integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct ratio_not_equal 8737: : integral_constant::value> 8737: { }; 8737: 8737: 8737: template, 8737: typename _Right = __big_mul<_R2::num,_R1::den> > 8737: struct __ratio_less_impl_1 8737: : integral_constant::value> 8737: { }; 8737: 8737: template::value 8737: != __static_sign<_R2::num>::value)), 8737: bool = (__static_sign<_R1::num>::value == -1 8737: && __static_sign<_R2::num>::value == -1)> 8737: struct __ratio_less_impl 8737: : __ratio_less_impl_1<_R1, _R2>::type 8737: { }; 8737: 8737: template 8737: struct __ratio_less_impl<_R1, _R2, true, false> 8737: : integral_constant 8737: { }; 8737: 8737: template 8737: struct __ratio_less_impl<_R1, _R2, false, true> 8737: : __ratio_less_impl_1, 8737: ratio<-_R1::num, _R1::den> >::type 8737: { }; 8737: 8737: 8737: template 8737: struct ratio_less 8737: : __ratio_less_impl<_R1, _R2>::type 8737: { }; 8737: 8737: 8737: template 8737: struct ratio_less_equal 8737: : integral_constant::value> 8737: { }; 8737: 8737: 8737: template 8737: struct ratio_greater 8737: : integral_constant::value> 8737: { }; 8737: 8737: 8737: template 8737: struct ratio_greater_equal 8737: : integral_constant::value> 8737: { }; 8737: # 421 "/usr/include/c++/8/ratio" 3 8737: template= 0), 8737: bool = (_R2::num >= 0), 8737: bool = ratio_less::value, _R1::den>, 8737: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 8737: struct __ratio_add_impl 8737: { 8737: private: 8737: typedef typename __ratio_add_impl< 8737: ratio<-_R1::num, _R1::den>, 8737: ratio<-_R2::num, _R2::den> >::type __t; 8737: public: 8737: typedef ratio<-__t::num, __t::den> type; 8737: }; 8737: 8737: 8737: template 8737: struct __ratio_add_impl<_R1, _R2, true, true, __b> 8737: { 8737: private: 8737: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8737: static constexpr uintmax_t __d2 = _R2::den / __g; 8737: typedef __big_mul<_R1::den, __d2> __d; 8737: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8737: typedef __big_mul<_R2::num, _R1::den / __g> __y; 8737: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8737: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 8737: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8737: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8737: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8737: static_assert(__n_final::__rem == 0, "Internal library error"); 8737: static_assert(__n_final::__quot_hi == 0 && 8737: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 8737: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8737: static_assert(__d_final::__hi == 0 && 8737: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 8737: public: 8737: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8737: }; 8737: 8737: template 8737: struct __ratio_add_impl<_R1, _R2, false, true, true> 8737: : __ratio_add_impl<_R2, _R1> 8737: { }; 8737: 8737: 8737: template 8737: struct __ratio_add_im typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_integer 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: # 261 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8768: template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; 8768: # 278 "/usr/include/c++/8/bits/cpp_type_traits.h" 3 8768: template 8768: struct __is_floating 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: 8768: template<> 8768: struct __is_floating 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_floating 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_floating 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_pointer 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: template 8768: struct __is_pointer<_Tp*> 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_arithmetic 8768: : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > 8768: { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_scalar 8768: : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > 8768: { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_char 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_char 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: template<> 8768: struct __is_char 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: template 8768: struct __is_byte 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_byte 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_byte 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template<> 8768: struct __is_byte 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_move_iterator 8768: { 8768: enum { __value = 0 }; 8768: typedef __false_type __type; 8768: }; 8768: 8768: 8768: 8768: template 8768: inline _Iterator 8768: __miter_base(_Iterator __it) 8768: { return __it; } 8768: 8768: 8768: } 8768: } 8768: # 62 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: # 1 "/usr/include/c++/8/ext/type_traits.h" 1 3 8768: # 32 "/usr/include/c++/8/ext/type_traits.h" 3 8768: 8768: # 33 "/usr/include/c++/8/ext/type_traits.h" 3 8768: 8768: 8768: 8768: 8768: extern "C++" { 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: struct __enable_if 8768: { }; 8768: 8768: template 8768: struct __enable_if 8768: { typedef _Tp __type; }; 8768: 8768: 8768: 8768: template 8768: struct __conditional_type 8768: { typedef _Iftrue __type; }; 8768: 8768: template 8768: struct __conditional_type 8768: { typedef _Iffalse __type; }; 8768: 8768: 8768: 8768: template 8768: struct __add_unsigned 8768: { 8768: private: 8768: typedef __enable_if::__value, _Tp> __if_type; 8768: 8768: public: 8768: typedef typename __if_type::__type __type; 8768: }; 8768: 8768: template<> 8768: struct __add_unsigned 8768: { typedef unsigned char __type; }; 8768: 8768: template<> 8768: struct __add_unsigned 8768: { typedef unsigned char __type; }; 8768: 8768: template<> 8768: struct __add_unsigned 8768: { typedef unsigned short __type; }; 8768: 8768: template<> 8768: struct __add_unsigned 8768: { typedef unsigned int __type; }; 8768: 8768: template<> 8768: struct __add_unsigned 8768: { typedef unsigned long __type; }; 8768: 8768: template<> 8768: struct __add_unsigned 8768: { typedef unsigned long long __type; }; 8768: 8768: 8768: template<> 8768: struct __add_unsigned; 8768: 8768: template<> 8768: struct __add_unsigned; 8768: 8768: 8768: 8768: template 8768: struct __remove_unsigned 8768: { 8768: private: 8768: typedef __enable_if::__value, _Tp> __if_type; 8768: 8768: public: 8768: typedef typename __if_type::__type __type; 8768: }; 8768: 8768: template<> 8768: struct __remove_unsigned 8768: { typedef signed char __type; }; 8768: 8768: template<> 8768: struct __remove_unsigned 8768: { typedef signed char __type; }; 8768: 8768: template<> 8768: struct __remove_unsigned 8768: { typedef short __type; }; 8768: 8768: template<> 8768: struct __remove_unsigned 8768: { typedef int __type; }; 8768: 8768: template<> 8768: struct __remove_unsigned 8768: { typedef long __type; }; 8768: 8768: template<> 8768: struct __remove_unsigned 8768: { typedef long long __type; }; 8768: 8768: 8768: template<> 8768: struct __remove_unsigned; 8768: 8768: template<> 8768: struct __remove_unsigned; 8768: 8768: 8768: 8768: template 8768: inline bool 8768: __is_null_pointer(_Type* __ptr) 8768: { return __ptr == 0; } 8768: 8768: template 8768: inline bool 8768: __is_null_pointer(_Type) 8768: { return false; } 8768: 8768: 8768: inline bool 8768: __is_null_pointer(std::nullptr_t) 8768: { return true; } 8768: 8768: 8768: 8768: template::__value> 8768: struct __promote 8768: { typedef double __type; }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __promote<_Tp, false> 8768: { }; 8768: 8768: template<> 8768: struct __promote 8768: { typedef long double __type; }; 8768: 8768: template<> 8768: struct __promote 8768: { typedef double __type; }; 8768: 8768: template<> 8768: struct __promote 8768: { typedef float __type; }; 8768: 8768: template::__type, 8768: typename _Up2 = tpl<_R1, _R2, true, false, false> 8737: { 8737: private: 8737: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8737: static constexpr uintmax_t __d2 = _R2::den / __g; 8737: typedef __big_mul<_R1::den, __d2> __d; 8737: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8737: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 8737: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8737: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8737: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8737: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8737: static_assert(__n_final::__rem == 0, "Internal library error"); 8737: static_assert(__n_final::__quot_hi == 0 && 8737: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 8737: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8737: static_assert(__d_final::__hi == 0 && 8737: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 8737: public: 8737: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8737: }; 8737: 8737: template 8737: struct __ratio_add 8737: { 8737: typedef typename __ratio_add_impl<_R1, _R2>::type type; 8737: static constexpr intmax_t num = type::num; 8737: static constexpr intmax_t den = type::den; 8737: }; 8737: 8737: template 8737: constexpr intmax_t __ratio_add<_R1, _R2>::num; 8737: 8737: template 8737: constexpr intmax_t __ratio_add<_R1, _R2>::den; 8737: 8737: 8737: template 8737: using ratio_add = typename __ratio_add<_R1, _R2>::type; 8737: 8737: template 8737: struct __ratio_subtract 8737: { 8737: typedef typename __ratio_add< 8737: _R1, 8737: ratio<-_R2::num, _R2::den>>::type type; 8737: 8737: static constexpr intmax_t num = type::num; 8737: static constexpr intmax_t den = type::den; 8737: }; 8737: 8737: template 8737: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 8737: 8737: template 8737: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 8737: 8737: 8737: template 8737: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 8737: 8737: 8737: typedef ratio<1, 1000000000000000000> atto; 8737: typedef ratio<1, 1000000000000000> femto; 8737: typedef ratio<1, 1000000000000> pico; 8737: typedef ratio<1, 1000000000> nano; 8737: typedef ratio<1, 1000000> micro; 8737: typedef ratio<1, 1000> milli; 8737: typedef ratio<1, 100> centi; 8737: typedef ratio<1, 10> deci; 8737: typedef ratio< 10, 1> deca; 8737: typedef ratio< 100, 1> hecto; 8737: typedef ratio< 1000, 1> kilo; 8737: typedef ratio< 1000000, 1> mega; 8737: typedef ratio< 1000000000, 1> giga; 8737: typedef ratio< 1000000000000, 1> tera; 8737: typedef ratio< 1000000000000000, 1> peta; 8737: typedef ratio< 1000000000000000000, 1> exa; 8737: 8737: 8737: 8737: } 8737: # 39 "/usr/include/c++/8/chrono" 2 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/ctime" 1 3 8737: # 39 "/usr/include/c++/8/ctime" 3 8737: 8737: # 40 "/usr/include/c++/8/ctime" 3 8737: # 58 "/usr/include/c++/8/ctime" 3 8737: namespace std 8737: { 8737: using ::clock_t; 8737: using ::time_t; 8737: using ::tm; 8737: 8737: using ::clock; 8737: using ::difftime; 8737: using ::mktime; 8737: using ::time; 8737: using ::asctime; 8737: using ::ctime; 8737: using ::gmtime; 8737: using ::localtime; 8737: using ::strftime; 8737: } 8737: # 42 "/usr/include/c++/8/chrono" 2 3 8737: # 1 "/usr/include/c++/8/bits/parse_numbers.h" 1 3 8737: # 33 "/usr/include/c++/8/bits/parse_numbers.h" 3 8737: 8737: # 34 "/usr/include/c++/8/bits/parse_numbers.h" 3 8737: # 43 "/usr/include/c++/8/chrono" 2 3 8737: 8737: 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 61 "/usr/include/c++/8/chrono" 3 8737: namespace chrono 8737: { 8737: template> 8737: struct duration; 8737: 8737: template 8737: struct time_point; 8737: } 8737: 8737: 8737: 8737: template 8737: struct __duration_common_type_wrapper 8737: { 8737: private: 8737: typedef __static_gcd<_Period1::num, _Period2::num> __gcd_num; 8737: typedef __static_gcd<_Period1::den, _Period2::den> __gcd_den; 8737: typedef typename _CT::type __cr; 8737: typedef ratio<__gcd_num::value, 8737: (_Period1::den / __gcd_den::value) * _Period2::den> __r; 8737: public: 8737: typedef __success_type> type; 8737: }; 8737: 8737: template 8737: struct __duration_common_type_wrapper<__failure_type, _Period1, _Period2> 8737: { typedef __failure_type type; }; 8737: 8737: template 8737: struct common_type, 8737: chrono::duration<_Rep2, _Period2>> 8737: : public __duration_common_type_wrapper>::type, _Period1, _Period2>::type 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct __timepoint_common_type_wrapper 8737: { 8737: typedef __success_type> 8737: type; 8737: }; 8737: 8737: template 8737: struct __timepoint_common_type_wrapper<__failure_type, _Clock> 8737: { typedef __failure_type type; }; 8737: 8737: template 8737: struct common_type, 8737: chrono::time_point<_Clock, _Duration2>> 8737: : public __timepoint_common_type_wrapper>::type, _Clock>::type 8737: { }; 8737: 8737: namespace chrono 8737: { 8737: 8737: template 8737: struct __duration_cast_impl 8737: { 8737: template 8737: static constexpr _ToDur 8737: __cast(const duration<_Rep, _Period>& __d) 8737: { 8737: typedef typename _ToDur::rep __to_rep; 8737: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 8737: * static_cast<_CR>(_CF::num) 8737: / static_cast<_CR>(_CF::den))); 8737: } 8737: }; 8737: 8737: template 8737: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 8737: { 8737: template 8737: static constexpr _ToDur 8737: __cast(const duration<_Rep, _Period>& __d) 8737: { 8737: typedef typename _ToDur::rep __to_rep; 8737: return _ToDur(static_cast<__to_rep>(__d.count())); 8737: } 8737: }; 8737: 8737: template 8737: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 8737: { 8737: template 8737: static constexpr _ToDur 8737: __cast(const duration<_Rep, _Period>& __d) 8737: { 8737: typedef typename _ToDur::rep __to_rep; 8737: return _ToDur(static_cast<__to_rep>( 8737: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 8737: } 8737: }; 8737: 8737: template 8737: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 8737: { 8737: template 8737: ypename __promote<_Up>::__type> 8768: struct __promote_2 8768: { 8768: typedef __typeof__(_Tp2() + _Up2()) __type; 8768: }; 8768: 8768: template::__type, 8768: typename _Up2 = typename __promote<_Up>::__type, 8768: typename _Vp2 = typename __promote<_Vp>::__type> 8768: struct __promote_3 8768: { 8768: typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; 8768: }; 8768: 8768: template::__type, 8768: typename _Up2 = typename __promote<_Up>::__type, 8768: typename _Vp2 = typename __promote<_Vp>::__type, 8768: typename _Wp2 = typename __promote<_Wp>::__type> 8768: struct __promote_4 8768: { 8768: typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; 8768: }; 8768: 8768: 8768: } 8768: } 8768: # 63 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: # 1 "/usr/include/c++/8/ext/numeric_traits.h" 1 3 8768: # 32 "/usr/include/c++/8/ext/numeric_traits.h" 3 8768: 8768: # 33 "/usr/include/c++/8/ext/numeric_traits.h" 3 8768: 8768: 8768: 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 54 "/usr/include/c++/8/ext/numeric_traits.h" 3 8768: template 8768: struct __numeric_traits_integer 8768: { 8768: 8768: static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); 8768: static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); 8768: 8768: 8768: 8768: static const bool __is_signed = ((_Value)(-1) < 0); 8768: static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); 8768: }; 8768: 8768: template 8768: const _Value __numeric_traits_integer<_Value>::__min; 8768: 8768: template 8768: const _Value __numeric_traits_integer<_Value>::__max; 8768: 8768: template 8768: const bool __numeric_traits_integer<_Value>::__is_signed; 8768: 8768: template 8768: const int __numeric_traits_integer<_Value>::__digits; 8768: # 99 "/usr/include/c++/8/ext/numeric_traits.h" 3 8768: template 8768: struct __numeric_traits_floating 8768: { 8768: 8768: static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136); 8768: 8768: 8768: static const bool __is_signed = true; 8768: static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); 8768: static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); 8768: }; 8768: 8768: template 8768: const int __numeric_traits_floating<_Value>::__max_digits10; 8768: 8768: template 8768: const bool __numeric_traits_floating<_Value>::__is_signed; 8768: 8768: template 8768: const int __numeric_traits_floating<_Value>::__digits10; 8768: 8768: template 8768: const int __numeric_traits_floating<_Value>::__max_exponent10; 8768: 8768: template 8768: struct __numeric_traits 8768: : public __conditional_type::__value, 8768: __numeric_traits_integer<_Value>, 8768: __numeric_traits_floating<_Value> >::__type 8768: { }; 8768: 8768: 8768: } 8768: # 64 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 1 3 8768: # 62 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: 8768: # 63 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 89 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: struct input_iterator_tag { }; 8768: 8768: 8768: struct output_iterator_tag { }; 8768: 8768: 8768: struct forward_iterator_tag : public input_iterator_tag { }; 8768: 8768: 8768: 8768: struct bidirectional_iterator_tag : public forward_iterator_tag { }; 8768: 8768: 8768: 8768: struct random_access_iterator_tag : public bidirectional_iterator_tag { }; 8768: # 116 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: template 8768: struct iterator 8768: { 8768: 8768: typedef _Category iterator_category; 8768: 8768: typedef _Tp value_type; 8768: 8768: typedef _Distance difference_type; 8768: 8768: typedef _Pointer pointer; 8768: 8768: typedef _Reference reference; 8768: }; 8768: # 143 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: template> 8768: struct __iterator_traits { }; 8768: 8768: template 8768: struct __iterator_traits<_Iterator, 8768: __void_t> 8768: { 8768: typedef typename _Iterator::iterator_category iterator_category; 8768: typedef typename _Iterator::value_type value_type; 8768: typedef typename _Iterator::difference_type difference_type; 8768: typedef typename _Iterator::pointer pointer; 8768: typedef typename _Iterator::reference reference; 8768: }; 8768: 8768: template 8768: struct iterator_traits 8768: : public __iterator_traits<_Iterator> { }; 8768: # 177 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: template 8768: struct iterator_traits<_Tp*> 8768: { 8768: typedef random_access_iterator_tag iterator_category; 8768: typedef _Tp value_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Tp* pointer; 8768: typedef _Tp& reference; 8768: }; 8768: 8768: 8768: template 8768: struct iterator_traits 8768: { 8768: typedef random_access_iterator_tag iterator_category; 8768: typedef _Tp value_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef const _Tp* pointer; 8768: typedef const _Tp& reference; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline constexpr 8768: typename iterator_traits<_Iter>::iterator_category 8768: __iterator_category(const _Iter&) 8768: { return typename iterator_traits<_Iter>::iterator_category(); } 8768: # 231 "/usr/include/c++/8/bits/stl_iterator_base_types.h" 3 8768: template 8768: using _RequireInputIter = typename 8768: enable_if::iterator_category, 8768: input_iterator_tag>::value>::type; 8768: 8768: 8768: 8768: } 8768: # 66 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 1 3 8768: # 62 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8768: 8768: # 63 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/debug/assertions.h" 1 3 8768: # 66 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: template struct _List_iterator; 8768: template struct _List_const_iterator; 8768: 8768: 8768: template 8768: inline 8768: typename iterator_traits<_InputIterator>::difference_type 8768: __distance(_InputIterator __first, _InputIterator __last, 8768: input_iterator_tag) 8768: { 8768: 8768: 8768: 8768: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8768: while (__first != __last) 8768: { 8768: ++__first; 8768: ++__n; 8768: } 8768: return __n; 8768: } 8768: 8768: template 8768: inline 8768: typename iterator_traits<_RandomAccessIterator>::difference_type 8768: __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: random_access_iterator_tag) 8768: { 8768: 8768: 8768: 8768: return __last - __first; 8768: } 8768: 8768: 8768: 8768: template 8768: ptrdiff_t 8768: __distance(std::_List_iterator<_Tp>, 8768: std::_List_iterator<_Tp>, 8768: input_iterator_tag); 8768: 8768: template 8768: ptrdiff_t 8768: __distance(std::_List_const_iterator<_Tp>, 8768: std::_List_const_iterator<_Tp>, 8768: input_iterator_tag); 8768: # 135 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8768: template 8768: inline 8768: typename iterator_traits<_InputIterator>::difference_type 8768: distance(_InputIterator __first, _InputIterator __last) 8768: { 8768: 8768: return std::__distance(__first, __last, 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: template 8768: inline void 8768: __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) 8768: { 8768: 8768: 8768: ; 8768: while (__n--) 8768: ++__i; 8768: } 8768: 8768: template 8768: inline void 8768: __advance(_BidirectionalIterator& __i, _Distance __n, 8768: bidirectional_iterator_tag) 8768: { 8768: 8768: 8768: 8768: if (__n > 0) 8768: while (__n--) 8768: ++__i; 8768: else 8768: while (__n++) 8768: --__i; 8768: } 8768: 8768: template 8768: inline void 8768: __advance(_RandomAccessIterator& __i, _Distance __n, 8768: random_access_iterator_tag) 8768: { 8768: 8768: 8768: 8768: if (__builtin_constant_p(__n) && __n == 1) 8768: ++__i; 8768: else if (__builtin_constant_p(__n) && __n == -1) 8768: --__i; 8768: else 8768: __i += __n; 8768: } 8768: # 200 "/usr/include/c++/8/bits/stl_iterator_base_funcs.h" 3 8768: template 8768: inline void 8768: advance(_InputIterator& __i, _Distance __n) 8768: { 8768: 8768: typename iterator_traits<_InputIterator>::difference_type __d = __n; 8768: std::__advance(__i, __d, std::__iterator_category(__i)); 8768: } 8768: 8768: 8768: 8768: template 8768: inline _InputIterator 8768: next(_InputIterator __x, typename 8768: iterator_traits<_InputIterator>::difference_type __n = 1) 8768: { 8768: 8768: 8768: std::advance(__x, __n); 8768: return __x; 8768: } 8768: 8768: template 8768: inline _BidirectionalIterator 8768: prev(_BidirectionalIterator __x, typename 8768: iterator_traits<_BidirectionalIterator>::difference_type __n = 1) 8768: { 8768: 8768: 8768: 8768: std::advance(__x, -__n); 8768: return __x; 8768: } 8768: 8768: 8768: 8768: 8768: } 8768: # 67 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_iterator.h" 1 3 8768: # 66 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: # 1 "/usr/include/c++/8/bits/ptr_traits.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/ptr_traits.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: class __undefined; 8768: 8768: 8768: template 8768: struct __get_first_arg 8768: { using type = __undefined; }; 8768: 8768: template class _Template, typename _Tp, 8768: typename... _Types> 8768: struct __get_first_arg<_Template<_Tp, _Types...>> 8768: { using type = _Tp; }; 8768: 8768: template 8768: using __get_first_arg_t = typename __get_first_arg<_Tp>::type; 8768: 8768: 8768: template 8768: struct __replace_first_arg 8768: { }; 8768: 8768: template class _Template, typename _Up, 8768: typename _Tp, typename... _Types> 8768: struct __replace_first_arg<_Template<_Tp, _Types...>, _Up> 8768: { using type = _Template<_Up, _Types...>; }; 8768: 8768: template 8768: using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type; 8768: 8768: template 8768: using __make_not_void 8768: = typename conditional::value, __undefined, _Tp>::type; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct pointer_traits 8768: { 8768: private: 8768: template 8768: using __element_type = typename _Tp::element_type; 8768: 8768: template 8768: using __difference_type = typename _Tp::difference_type; 8768: 8768: template 8768: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8768: 8768: template 8768: struct __rebind<_Tp, _Up, __void_t>> 8768: { using type = typename _Tp::template rebind<_Up>; }; 8768: 8768: public: 8768: 8768: using pointer = _Ptr; 8768: 8768: 8768: using element_type 8768: = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>; 8768: 8768: 8768: using difference_type 8768: = __detected_or_t; 8768: 8768: 8768: template 8768: using rebind = typename __rebind<_Ptr, _Up>::type; 8768: 8768: static _Ptr 8768: pointer_to(__make_not_void& __e) 8768: { return _Ptr::pointer_to(__e); } 8768: 8768: static_assert(!is_same::value, 8768: "pointer type defines element_type or is like SomePointer"); 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct pointer_traits<_Tp*> 8768: { 8768: 8768: typedef _Tp* pointer; 8768: 8768: typedef _Tp element_type; 8768: 8768: typedef ptrdiff_t difference_type; 8768: 8768: template 8768: using rebind = _Up*; 8768: 8768: 8768: 8768: 8768: 8768: 8768: static pointer 8768: pointer_to(__make_not_void& __r) noexcept 8768: { return std::addressof(__r); } 8768: }; 8768: 8768: 8768: template 8768: using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>; 8768: 8768: template 8768: constexpr _Tp* 8768: __to_address(_Tp* __ptr) noexcept 8768: { 8768: static_assert(!std::is_function<_Tp>::value, "not a function pointer"); 8768: return __ptr; 8768: } 8768: 8768: 8768: template 8768: constexpr typename std::pointer_traits<_Ptr>::element_type* 8768: __to_address(const _Ptr& __ptr) 8768: { return std::__to_address(__ptr.operator->()); } 8768: # 198 "/usr/include/c++/8/bits/ptr_traits.h" 3 8768: 8768: } 8768: # 67 "/usr/include/c++/8/bits/stl_iterator.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 100 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: class reverse_iterator 8768: : public iterator::iterator_category, 8768: static constexpr _ToDur 8737: __cast(const duration<_Rep, _Period>& __d) 8737: { 8737: typedef typename _ToDur::rep __to_rep; 8737: return _ToDur(static_cast<__to_rep>( 8737: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 8737: } 8737: }; 8737: 8737: template 8737: struct __is_duration 8737: : std::false_type 8737: { }; 8737: 8737: template 8737: struct __is_duration> 8737: : std::true_type 8737: { }; 8737: 8737: template 8737: using __enable_if_is_duration 8737: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 8737: 8737: template 8737: using __disable_if_is_duration 8737: = typename enable_if::value, _Tp>::type; 8737: 8737: 8737: template 8737: constexpr __enable_if_is_duration<_ToDur> 8737: duration_cast(const duration<_Rep, _Period>& __d) 8737: { 8737: typedef typename _ToDur::period __to_period; 8737: typedef typename _ToDur::rep __to_rep; 8737: typedef ratio_divide<_Period, __to_period> __cf; 8737: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 8737: __cr; 8737: typedef __duration_cast_impl<_ToDur, __cf, __cr, 8737: __cf::num == 1, __cf::den == 1> __dc; 8737: return __dc::__cast(__d); 8737: } 8737: 8737: 8737: template 8737: struct treat_as_floating_point 8737: : is_floating_point<_Rep> 8737: { }; 8737: # 274 "/usr/include/c++/8/chrono" 3 8737: template 8737: struct duration_values 8737: { 8737: static constexpr _Rep 8737: zero() 8737: { return _Rep(0); } 8737: 8737: static constexpr _Rep 8737: max() 8737: { return numeric_limits<_Rep>::max(); } 8737: 8737: static constexpr _Rep 8737: min() 8737: { return numeric_limits<_Rep>::lowest(); } 8737: }; 8737: 8737: template 8737: struct __is_ratio 8737: : std::false_type 8737: { }; 8737: 8737: template 8737: struct __is_ratio> 8737: : std::true_type 8737: { }; 8737: 8737: 8737: template 8737: struct duration 8737: { 8737: private: 8737: template 8737: using __is_float = treat_as_floating_point<_Rep2>; 8737: 8737: 8737: template 8737: using __is_harmonic 8737: = __bool_constant::den == 1>; 8737: 8737: public: 8737: 8737: typedef _Rep rep; 8737: typedef _Period period; 8737: 8737: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 8737: static_assert(__is_ratio<_Period>::value, 8737: "period must be a specialization of ratio"); 8737: static_assert(_Period::num > 0, "period must be positive"); 8737: 8737: 8737: constexpr duration() = default; 8737: 8737: duration(const duration&) = default; 8737: 8737: template, 8737: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 8737: constexpr explicit duration(const _Rep2& __rep) 8737: : __r(static_cast(__rep)) { } 8737: 8737: template, 8737: __and_<__is_harmonic<_Period2>, 8737: __not_<__is_float<_Rep2>>>>>> 8737: constexpr duration(const duration<_Rep2, _Period2>& __d) 8737: : __r(duration_cast(__d).count()) { } 8737: 8737: ~duration() = default; 8737: duration& operator=(const duration&) = default; 8737: 8737: 8737: constexpr rep 8737: count() const 8737: { return __r; } 8737: 8737: 8737: constexpr duration 8737: operator+() const 8737: { return *this; } 8737: 8737: constexpr duration 8737: operator-() const 8737: { return duration(-__r); } 8737: 8737: duration& 8737: operator++() 8737: { 8737: ++__r; 8737: return *this; 8737: } 8737: 8737: duration 8737: operator++(int) 8737: { return duration(__r++); } 8737: 8737: duration& 8737: operator--() 8737: { 8737: --__r; 8737: return *this; 8737: } 8737: 8737: duration 8737: operator--(int) 8737: { return duration(__r--); } 8737: 8737: duration& 8737: operator+=(const duration& __d) 8737: { 8737: __r += __d.count(); 8737: return *this; 8737: } 8737: 8737: duration& 8737: operator-=(const duration& __d) 8737: { 8737: __r -= __d.count(); 8737: return *this; 8737: } 8737: 8737: duration& 8737: operator*=(const rep& __rhs) 8737: { 8737: __r *= __rhs; 8737: return *this; 8737: } 8737: 8737: duration& 8737: operator/=(const rep& __rhs) 8737: { 8737: __r /= __rhs; 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: 8737: typename enable_if::value, 8737: duration&>::type 8737: operator%=(const rep& __rhs) 8737: { 8737: __r %= __rhs; 8737: return *this; 8737: } 8737: 8737: template 8737: 8737: typename enable_if::value, 8737: duration&>::type 8737: operator%=(const duration& __d) 8737: { 8737: __r %= __d.count(); 8737: return *this; 8737: } 8737: 8737: 8737: static constexpr duration 8737: zero() 8737: { return duration(duration_values::zero()); } 8737: 8737: static constexpr duration 8737: min() 8737: { return duration(duration_values::min()); } 8737: 8737: static constexpr duration 8737: max() 8737: { return duration(duration_values::max()); } 8737: 8737: private: 8737: rep __r; 8737: }; 8737: 8737: template 8737: constexpr typename common_type, 8737: duration<_Rep2, _Period2>>::type 8737: operator+(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<__dur1,__dur2>::type __cd; 8737: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 8737: } 8737: 8737: template 8737: constexpr typename common_type, 8737: duration<_Rep2, _Period2>>::type 8737: operator-(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<__dur1,__dur2>::type __cd; 8737: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 8737: } 8737: 8737: 8737: 8737: template::type> 8737: using __common_rep_t 8737: = typename enable_if::value, _CRep>::type; 8737: 8737: template 8737: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 8737: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8737: { 8737: typedef duration::type, _Period> 8737: __cd; 8737: return __cd(__cd(__d).count() * __s); 8737: } 8737: 8737: template 8737: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 8737: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 8737: { return __d * __s; } 8737: 8737: template 8737: constexpr 8737: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8737: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8737: { 8737: typedef duration::type, _Period> 8737: __cd; 8737: return __cd(__cd(__d).count() / __s); 8737: } 8737: 8737: template 8737: constexpr typename common_type<_Rep1, _Rep2>::type 8737: operator/(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<__dur1,__dur2>::type __cd; 8737: return __cd(__lhs).count() / __cd(__rhs).count(); 8737: } 8737: 8737: 8737: template 8737: constexpr 8737: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8737: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8737: { 8737: typedef duration::type, _Period> 8737: __cd; 8737: return __cd(__cd(__d).count() % __s); 8737: } 8737: 8737: template 8737: constexpr typename common_type, 8737: duration<_Rep2, _Period2>>::type 8737: operator%(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<__dur1,__dur2>::type __cd; 8737: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 8737: } 8737: 8737: 8737: template 8737: constexpr bool 8737: operator==(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<__dur1,__dur2>::type __ct; 8737: return __ct(__lhs).count() == __ct(__rhs).count(); 8737: } 8737: 8737: template 8737: constexpr bool 8737: operator<(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<__dur1,__dur2>::type __ct; 8737: return __ct(__lhs).count() < __ct(__rhs).count(); 8737: } 8737: 8737: template 8737: constexpr bool 8737: operator!=(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { return !(__lhs == __rhs); } 8737: 8737: template 8737: constexpr bool 8737: operator<=(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { return !(__rhs < __lhs); } 8737: 8737: template 8737: constexpr bool 8737: operator>(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { return __rhs < __lhs; } 8737: 8737: template 8737: constexpr bool 8737: operator>=(const duration<_Rep1, _Period1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { return !(__lhs < __rhs); } 8737: 8737: 8737: typedef duration nanoseconds; 8737: 8737: 8737: typedef duration microseconds; 8737: 8737: 8737: typedef duration milliseconds; 8737: 8737: 8737: typedef duration seconds; 8737: 8737: 8737: typedef duration> minutes; 8737: 8737: 8737: typedef duration> hours; 8737: 8737: 8737: template 8737: struct time_point 8737: { 8737: typedef _Clock clock; 8737: typedef _Dur duration; 8737: typedef typename duration::rep rep; 8737: typedef typename duration::period period; 8737: 8737: constexpr time_point() : __d(duration::zero()) 8737: { } 8737: 8737: constexpr explicit time_point(const duration& __dur) 8737: : __d(__dur) 8737: { } 8737: 8737: 8737: template>> 8737: constexpr time_point(const time_point& __t) 8737: : __d(__t.time_since_epoch()) 8737: { } 8737: 8737: 8737: constexpr duration 8737: time_since_epoch() const 8737: { return __d; } 8737: 8737: 8737: time_point& 8737: operator+=(const duration& __dur) 8737: { 8737: __d += __dur; 8737: return *this; 8737: } 8737: 8737: time_point& 8737: operator-=(const duration& __dur) 8737: { 8737: __d -= __dur; 8737: return *this; 8737: } 8737: 8737: 8737: static constexpr time_point 8737: min() 8737: { return time_point(duration::min()); } 8737: 8737: static constexpr time_point 8737: max() 8737: { return time_point(duration::max()); } 8737: 8737: private: 8737: duration __d; 8737: }; 8737: 8737: 8737: template 8737: constexpr typename enable_if<__is_duration<_ToDur>::value, 8737: time_point<_Clock, _ToDur>>::type 8737: time_point_cast(const time_point<_Clock, _Dur>& __t) 8737: { 8737: typedef time_point<_Clock, _ToDur> __time_point; 8737: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 8737: } 8737: # 707 "/usr/include/c++/8/chrono" 3 8737: template 8737: constexpr time_point<_Clock, 8737: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8737: operator+(const time_point<_Clock, _Dur1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<_Dur1,__dur2>::type __ct; 8737: typedef time_point<_Clock, __ct> __time_point; 8737: return __time_point(__lhs.time_since_epoch() + __rhs); 8737: } 8737: 8737: template 8737: constexpr time_point<_Clock, 8737: typename common_type, _Dur2>::type> 8737: operator+(const duration<_Rep1, _Period1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { 8737: typedef duration<_Rep1, _Period1> __dur1; 8737: typedef typename common_type<__dur1,_Dur2>::type __ct; 8737: typedef time_point<_Clock, __ct> __time_point; 8737: return __time_point(__rhs.time_since_epoch() + __lhs); 8737: } 8737: 8737: template 8737: constexpr time_point<_Clock, 8737: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8737: operator-(const time_point<_Clock, _Dur1>& __lhs, 8737: const duration<_Rep2, _Period2>& __rhs) 8737: { 8737: typedef duration<_Rep2, _Period2> __dur2; 8737: typedef typename common_type<_Dur1,__dur2>::type __ct; 8737: typedef time_point<_Clock, __ct> __time_point; 8737: return __time_point(__lhs.time_since_epoch() -__rhs); 8737: } 8737: 8737: template 8737: constexpr typename common_type<_Dur1, _Dur2>::type 8737: operator-(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 8737: 8737: template 8737: typename iterator_traits<_Iterator>::value_type, 8768: typename iterator_traits<_Iterator>::difference_type, 8768: typename iterator_traits<_Iterator>::pointer, 8768: typename iterator_traits<_Iterator>::reference> 8768: { 8768: protected: 8768: _Iterator current; 8768: 8768: typedef iterator_traits<_Iterator> __traits_type; 8768: 8768: public: 8768: typedef _Iterator iterator_type; 8768: typedef typename __traits_type::difference_type difference_type; 8768: typedef typename __traits_type::pointer pointer; 8768: typedef typename __traits_type::reference reference; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator() : current() { } 8768: 8768: 8768: 8768: 8768: explicit 8768: reverse_iterator(iterator_type __x) : current(__x) { } 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator(const reverse_iterator& __x) 8768: : current(__x.current) { } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: 8768: reverse_iterator(const reverse_iterator<_Iter>& __x) 8768: : current(__x.base()) { } 8768: 8768: 8768: 8768: 8768: iterator_type 8768: base() const 8768: { return current; } 8768: # 167 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: reference 8768: operator*() const 8768: { 8768: _Iterator __tmp = current; 8768: return *--__tmp; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: pointer 8768: operator->() const 8768: { return &(operator*()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator& 8768: operator++() 8768: { 8768: --current; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: operator++(int) 8768: { 8768: reverse_iterator __tmp = *this; 8768: --current; 8768: return __tmp; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator& 8768: operator--() 8768: { 8768: ++current; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: operator--(int) 8768: { 8768: reverse_iterator __tmp = *this; 8768: ++current; 8768: return __tmp; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: operator+(difference_type __n) const 8768: { return reverse_iterator(current - __n); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator& 8768: operator+=(difference_type __n) 8768: { 8768: current -= __n; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: operator-(difference_type __n) const 8768: { return reverse_iterator(current + __n); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator& 8768: operator-=(difference_type __n) 8768: { 8768: current += __n; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reference 8768: operator[](difference_type __n) const 8768: { return *(*this + __n); } 8768: }; 8768: # 297 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: inline bool 8768: operator==(const reverse_iterator<_Iterator>& __x, 8768: const reverse_iterator<_Iterator>& __y) 8768: { return __x.base() == __y.base(); } 8768: 8768: template 8768: inline bool 8768: operator<(const reverse_iterator<_Iterator>& __x, 8768: const reverse_iterator<_Iterator>& __y) 8768: { return __y.base() < __x.base(); } 8768: 8768: template 8768: inline bool 8768: operator!=(const reverse_iterator<_Iterator>& __x, 8768: const reverse_iterator<_Iterator>& __y) 8768: { return !(__x == __y); } 8768: 8768: template 8768: inline bool 8768: operator>(const reverse_iterator<_Iterator>& __x, 8768: const reverse_iterator<_Iterator>& __y) 8768: { return __y < __x; } 8768: 8768: template 8768: inline bool 8768: operator<=(const reverse_iterator<_Iterator>& __x, 8768: const reverse_iterator<_Iterator>& __y) 8768: { return !(__y < __x); } 8768: 8768: template 8768: inline bool 8768: operator>=(const reverse_iterator<_Iterator>& __x, 8768: const reverse_iterator<_Iterator>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: { return __x.base() == __y.base(); } 8768: 8768: template 8768: inline bool 8768: operator<(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: { return __y.base() < __x.base(); } 8768: 8768: template 8768: inline bool 8768: operator!=(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: { return !(__x == __y); } 8768: 8768: template 8768: inline bool 8768: operator>(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: { return __y < __x; } 8768: 8768: template 8768: inline bool 8768: operator<=(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: { return !(__y < __x); } 8768: 8768: template 8768: inline bool 8768: operator>=(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: { return !(__x < __y); } 8768: # 387 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: inline auto 8768: operator-(const reverse_iterator<_IteratorL>& __x, 8768: const reverse_iterator<_IteratorR>& __y) 8768: -> decltype(__y.base() - __x.base()) 8768: { return __y.base() - __x.base(); } 8768: 8768: 8768: template 8768: inline reverse_iterator<_Iterator> 8768: operator+(typename reverse_iterator<_Iterator>::difference_type __n, 8768: const reverse_iterator<_Iterator>& __x) 8768: { return reverse_iterator<_Iterator>(__x.base() - __n); } 8768: 8768: 8768: 8768: template 8768: inline reverse_iterator<_Iterator> 8768: __make_reverse_iterator(_Iterator __i) 8768: { return reverse_iterator<_Iterator>(__i); } 8768: # 422 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: auto 8768: __niter_base(reverse_iterator<_Iterator> __it) 8768: -> decltype(__make_reverse_iterator(__niter_base(__it.base()))) 8768: { return __make_reverse_iterator(__niter_base(__it.base())); } 8768: 8768: template 8768: struct __is_move_iterator > 8768: : __is_move_iterator<_Iterator> 8768: { }; 8768: 8768: template 8768: auto 8768: __miter_base(reverse_iterator<_Iterator> __it) 8768: -> decltype(__make_reverse_iterator(__miter_base(__it.base()))) 8768: { return __make_reverse_iterator(__miter_base(__it.base())); } 8768: # 451 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: class back_insert_iterator 8768: : public iterator 8768: { 8768: protected: 8768: _Container* container; 8768: 8768: public: 8768: 8768: typedef _Container container_type; 8768: 8768: 8768: explicit 8768: back_insert_iterator(_Container& __x) 8768: : container(std::__addressof(__x)) { } constexpr bool 8737: operator==(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 8737: 8737: template 8737: constexpr bool 8737: operator!=(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return !(__lhs == __rhs); } 8737: 8737: template 8737: constexpr bool 8737: operator<(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 8737: 8737: template 8737: constexpr bool 8737: operator<=(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return !(__rhs < __lhs); } 8737: 8737: template 8737: constexpr bool 8737: operator>(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return __rhs < __lhs; } 8737: 8737: template 8737: constexpr bool 8737: operator>=(const time_point<_Clock, _Dur1>& __lhs, 8737: const time_point<_Clock, _Dur2>& __rhs) 8737: { return !(__lhs < __rhs); } 8737: # 807 "/usr/include/c++/8/chrono" 3 8737: inline namespace _V2 { 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct system_clock 8737: { 8737: typedef chrono::nanoseconds duration; 8737: typedef duration::rep rep; 8737: typedef duration::period period; 8737: typedef chrono::time_point time_point; 8737: 8737: static_assert(system_clock::duration::min() 8737: < system_clock::duration::zero(), 8737: "a clock's minimum duration cannot be less than its epoch"); 8737: 8737: static constexpr bool is_steady = false; 8737: 8737: static time_point 8737: now() noexcept; 8737: 8737: 8737: static std::time_t 8737: to_time_t(const time_point& __t) noexcept 8737: { 8737: return std::time_t(duration_cast 8737: (__t.time_since_epoch()).count()); 8737: } 8737: 8737: static time_point 8737: from_time_t(std::time_t __t) noexcept 8737: { 8737: typedef chrono::time_point __from; 8737: return time_point_cast 8737: (__from(chrono::seconds(__t))); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct steady_clock 8737: { 8737: typedef chrono::nanoseconds duration; 8737: typedef duration::rep rep; 8737: typedef duration::period period; 8737: typedef chrono::time_point time_point; 8737: 8737: static constexpr bool is_steady = true; 8737: 8737: static time_point 8737: now() noexcept; 8737: }; 8737: # 874 "/usr/include/c++/8/chrono" 3 8737: using high_resolution_clock = system_clock; 8737: 8737: } 8737: } 8737: # 976 "/usr/include/c++/8/chrono" 3 8737: 8737: } 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: class QEvent; 8737: class QTimerEvent; 8737: class QChildEvent; 8737: struct QMetaObject; 8737: class QVariant; 8737: class QObjectPrivate; 8737: class QObject; 8737: class QThread; 8737: class QWidget; 8737: 8737: class QRegExp; 8737: 8737: 8737: class QRegularExpression; 8737: 8737: 8737: class QObjectUserData; 8737: 8737: struct QDynamicMetaObjectData; 8737: 8737: typedef QList QObjectList; 8737: 8737: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QString &name, 8737: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8737: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re, 8737: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8737: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re, 8737: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8737: __attribute__((visibility("default"))) QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo, Qt::FindChildOptions options); 8737: 8737: class __attribute__((visibility("default"))) QObjectData { 8737: public: 8737: virtual ~QObjectData() = 0; 8737: QObject *q_ptr; 8737: QObject *parent; 8737: QObjectList children; 8737: 8737: uint isWidget : 1; 8737: uint blockSig : 1; 8737: uint wasDeleted : 1; 8737: uint isDeletingChildren : 1; 8737: uint sendChildEvents : 1; 8737: uint receiveChildEvents : 1; 8737: uint isWindow : 1; 8737: uint unused : 25; 8737: int postedEvents; 8737: QDynamicMetaObjectData *metaObject; 8737: QMetaObject *dynamicMetaObject() const; 8737: }; 8737: 8737: 8737: class __attribute__((visibility("default"))) QObject 8737: { 8737: public: 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: 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: 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: struct QPrivateSignal {}; 8737: 8737: 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; 8737: 8737: public: 8737: explicit QObject(QObject *parent=nullptr); 8737: virtual ~QObject(); 8737: 8737: virtual bool event(QEvent *event); 8737: virtual bool eventFilter(QObject *watched, QEvent *event); 8737: # 144 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: QString objectName() const; 8737: void setObjectName(const QString &name); 8737: 8737: inline bool isWidgetType() const { return d_ptr->isWidget; } 8737: inline bool isWindowType() const { return d_ptr->isWindow; } 8737: 8737: inline bool signalsBlocked() const noexcept { return d_ptr->blockSig; } 8737: bool blockSignals(bool b) noexcept; 8737: 8737: QThread *thread() const; 8737: void moveToThread(QThread *thread); 8737: 8737: int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer); 8737: 8737: inline __attribute__((always_inline)) 8737: int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer) 8737: { 8737: return startTimer(int(time.count()), timerType); 8737: } 8737: 8737: 8768: # 486 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: back_insert_iterator& 8768: operator=(const typename _Container::value_type& __value) 8768: { 8768: container->push_back(__value); 8768: return *this; 8768: } 8768: 8768: back_insert_iterator& 8768: operator=(typename _Container::value_type&& __value) 8768: { 8768: container->push_back(std::move(__value)); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: back_insert_iterator& 8768: operator*() 8768: { return *this; } 8768: 8768: 8768: back_insert_iterator& 8768: operator++() 8768: { return *this; } 8768: 8768: 8768: back_insert_iterator 8768: operator++(int) 8768: { return *this; } 8768: }; 8768: # 528 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: inline back_insert_iterator<_Container> 8768: back_inserter(_Container& __x) 8768: { return back_insert_iterator<_Container>(__x); } 8768: # 543 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: class front_insert_iterator 8768: : public iterator 8768: { 8768: protected: 8768: _Container* container; 8768: 8768: public: 8768: 8768: typedef _Container container_type; 8768: 8768: 8768: explicit front_insert_iterator(_Container& __x) 8768: : container(std::__addressof(__x)) { } 8768: # 577 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: front_insert_iterator& 8768: operator=(const typename _Container::value_type& __value) 8768: { 8768: container->push_front(__value); 8768: return *this; 8768: } 8768: 8768: front_insert_iterator& 8768: operator=(typename _Container::value_type&& __value) 8768: { 8768: container->push_front(std::move(__value)); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: front_insert_iterator& 8768: operator*() 8768: { return *this; } 8768: 8768: 8768: front_insert_iterator& 8768: operator++() 8768: { return *this; } 8768: 8768: 8768: front_insert_iterator 8768: operator++(int) 8768: { return *this; } 8768: }; 8768: # 619 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: inline front_insert_iterator<_Container> 8768: front_inserter(_Container& __x) 8768: { return front_insert_iterator<_Container>(__x); } 8768: # 638 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: class insert_iterator 8768: : public iterator 8768: { 8768: protected: 8768: _Container* container; 8768: typename _Container::iterator iter; 8768: 8768: public: 8768: 8768: typedef _Container container_type; 8768: 8768: 8768: 8768: 8768: 8768: insert_iterator(_Container& __x, typename _Container::iterator __i) 8768: : container(std::__addressof(__x)), iter(__i) {} 8768: # 689 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: insert_iterator& 8768: operator=(const typename _Container::value_type& __value) 8768: { 8768: iter = container->insert(iter, __value); 8768: ++iter; 8768: return *this; 8768: } 8768: 8768: insert_iterator& 8768: operator=(typename _Container::value_type&& __value) 8768: { 8768: iter = container->insert(iter, std::move(__value)); 8768: ++iter; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: insert_iterator& 8768: operator*() 8768: { return *this; } 8768: 8768: 8768: insert_iterator& 8768: operator++() 8768: { return *this; } 8768: 8768: 8768: insert_iterator& 8768: operator++(int) 8768: { return *this; } 8768: }; 8768: # 734 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: inline insert_iterator<_Container> 8768: inserter(_Container& __x, _Iterator __i) 8768: { 8768: return insert_iterator<_Container>(__x, 8768: typename _Container::iterator(__i)); 8768: } 8768: 8768: 8768: 8768: 8768: } 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 758 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: using std::iterator_traits; 8768: using std::iterator; 8768: template 8768: class __normal_iterator 8768: { 8768: protected: 8768: _Iterator _M_current; 8768: 8768: typedef iterator_traits<_Iterator> __traits_type; 8768: 8768: public: 8768: typedef _Iterator iterator_type; 8768: typedef typename __traits_type::iterator_category iterator_category; 8768: typedef typename __traits_type::value_type value_type; 8768: typedef typename __traits_type::difference_type difference_type; 8768: typedef typename __traits_type::reference reference; 8768: typedef typename __traits_type::pointer pointer; 8768: 8768: constexpr __normal_iterator() noexcept 8768: : _M_current(_Iterator()) { } 8768: 8768: explicit 8768: __normal_iterator(const _Iterator& __i) noexcept 8768: : _M_current(__i) { } 8768: 8768: 8768: template 8768: __normal_iterator(const __normal_iterator<_Iter, 8768: typename __enable_if< 8768: (std::__are_same<_Iter, typename _Container::pointer>::__value), 8768: _Container>::__type>& __i) noexcept 8768: : _M_current(__i.base()) { } 8768: 8768: 8768: reference 8768: operator*() const noexcept 8768: { return *_M_current; } 8768: 8768: pointer 8768: operator->() const noexcept 8768: { return _M_current; } 8768: 8768: __normal_iterator& 8768: operator++() noexcept 8768: { 8768: ++_M_current; 8768: return *this; 8768: } 8768: 8768: __normal_iterator 8768: operator++(int) noexcept 8768: { return __normal_iterator(_M_current++); } 8768: 8768: 8768: __normal_iterator& 8768: operator--() noexcept 8768: { 8768: --_M_current; 8768: return *this; 8768: } 8768: 8768: __normal_iterator 8768: operator--(int) noexcept 8768: { return __normal_iterator(_M_current--); } 8768: 8768: 8768: reference 8768: operator[](difference_type __n) const noexcept 8768: { return _M_current[__n]; } 8768: 8768: __normal_iterator& 8768: operator+=(difference_type __n) noexcept 8768: { _M_current += __n; return *this; } 8768: 8768: __normal_iterator 8768: operator+(difference_type __n) const noexcept 8768: { return __normal_iterator(_M_current + __n); } 8768: 8768: __normal_iterator& 8768: operator-=(difference_type __n) noexcept 8768: { _M_current -= __n; return *this; } 8768: 8768: __normal_iterator 8768: operator-(difference_type __n) const noexcept 8768: { return __normal_iterator(_M_current - __n); } 8768: 8768: const _Iterator& 8768: base() const noexcept 8768: { return _M_current; } 8768: }; 8768: # 858 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: inline bool 8768: operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iterator<_IteratorR, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() == __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator==(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() == __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iter void killTimer(int id); 8737: 8737: template 8737: inline T findChild(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8737: { 8737: typedef typename std::remove_cv::type>::type ObjType; 8737: return static_cast(qt_qFindChild_helper(this, aName, ObjType::staticMetaObject, options)); 8737: } 8737: 8737: template 8737: inline QList findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8737: { 8737: typedef typename std::remove_cv::type>::type ObjType; 8737: QList list; 8737: qt_qFindChildren_helper(this, aName, ObjType::staticMetaObject, 8737: reinterpret_cast *>(&list), options); 8737: return list; 8737: } 8737: 8737: 8737: template 8737: inline QList findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8737: { 8737: typedef typename std::remove_cv::type>::type ObjType; 8737: QList list; 8737: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8737: reinterpret_cast *>(&list), options); 8737: return list; 8737: } 8737: 8737: 8737: 8737: template 8737: inline QList findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8737: { 8737: typedef typename std::remove_cv::type>::type ObjType; 8737: QList list; 8737: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8737: reinterpret_cast *>(&list), options); 8737: return list; 8737: } 8737: 8737: 8737: inline const QObjectList &children() const { return d_ptr->children; } 8737: 8737: void setParent(QObject *parent); 8737: void installEventFilter(QObject *filterObj); 8737: void removeEventFilter(QObject *obj); 8737: 8737: static QMetaObject::Connection connect(const QObject *sender, const char *signal, 8737: const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection); 8737: 8737: static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, 8737: const QObject *receiver, const QMetaMethod &method, 8737: Qt::ConnectionType type = Qt::AutoConnection); 8737: 8737: inline QMetaObject::Connection connect(const QObject *sender, const char *signal, 8737: const char *member, Qt::ConnectionType type = Qt::AutoConnection) const; 8737: # 232 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: template 8737: static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8737: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot, 8737: Qt::ConnectionType type = Qt::AutoConnection) 8737: { 8737: typedef QtPrivate::FunctionPointer SignalType; 8737: typedef QtPrivate::FunctionPointer SlotType; 8737: 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8737: ; 8737: 8737: 8737: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8737: ; 8737: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8737: ; 8737: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8737: ; 8737: 8737: const int *types = nullptr; 8737: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8737: types = QtPrivate::ConnectionTypes::types(); 8737: 8737: return connectImpl(sender, reinterpret_cast(&signal), 8737: receiver, reinterpret_cast(&slot), 8737: new QtPrivate::QSlotObject::Value, 8737: typename SignalType::ReturnType>(slot), 8737: type, types, &SignalType::Object::staticMetaObject); 8737: } 8737: 8737: 8737: template 8737: static inline typename std::enable_if::ArgumentCount) >= 0, QMetaObject::Connection>::type 8737: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8737: { 8737: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8737: } 8737: 8737: 8737: template 8737: static inline typename std::enable_if::ArgumentCount) >= 0 && 8737: !QtPrivate::FunctionPointer::IsPointerToMemberFunction, QMetaObject::Connection>::type 8737: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8737: Qt::ConnectionType type = Qt::AutoConnection) 8737: { 8737: typedef QtPrivate::FunctionPointer SignalType; 8737: typedef QtPrivate::FunctionPointer SlotType; 8737: 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8737: ; 8737: 8737: 8737: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8737: ; 8737: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8737: ; 8737: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8737: ; 8737: 8737: const int *types = nullptr; 8737: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8737: types = QtPrivate::ConnectionTypes::types(); 8737: 8737: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8737: new QtPrivate::QStaticSlotObject::Value, 8737: ator<_IteratorR, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() != __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() != __rhs.base(); } 8768: 8768: 8768: template 8768: inline bool 8768: operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iterator<_IteratorR, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() < __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator<(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() < __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iterator<_IteratorR, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() > __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator>(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() > __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iterator<_IteratorR, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() <= __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() <= __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iterator<_IteratorR, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() >= __rhs.base(); } 8768: 8768: template 8768: inline bool 8768: operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() >= __rhs.base(); } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: 8768: 8768: inline auto 8768: operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, 8768: const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept 8768: -> decltype(__lhs.base() - __rhs.base()) 8768: 8768: 8768: 8768: 8768: 8768: { return __lhs.base() - __rhs.base(); } 8768: 8768: template 8768: inline typename __normal_iterator<_Iterator, _Container>::difference_type 8768: operator-(const __normal_iterator<_Iterator, _Container>& __lhs, 8768: const __normal_iterator<_Iterator, _Container>& __rhs) 8768: noexcept 8768: { return __lhs.base() - __rhs.base(); } 8768: 8768: template 8768: inline __normal_iterator<_Iterator, _Container> 8768: operator+(typename __normal_iterator<_Iterator, _Container>::difference_type 8768: __n, const __normal_iterator<_Iterator, _Container>& __i) 8768: noexcept 8768: { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } 8768: 8768: 8768: } 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: _Iterator 8768: __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it) 8768: { return __it.base(); } 8768: # 1003 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: template 8768: class move_iterator 8768: { 8768: protected: 8768: _Iterator _M_current; 8768: 8768: typedef iterator_traits<_Iterator> __traits_type; 8768: typedef typename __traits_type::reference __base_ref; 8768: 8768: public: 8768: typedef _Iterator iterator_type; 8768: typedef typename __traits_type::iterator_category iterator_category; 8768: typedef typename __traits_type::value_type value_type; 8768: typedef typename __traits_type::difference_type difference_type; 8768: 8768: typedef _Iterator pointer; 8768: 8768: 8768: typedef typename conditional::value, 8768: typename remove_reference<__base_ref>::type&&, 8768: __base_ref>::type reference; 8768: 8768: 8768: move_iterator() 8768: : _M_current() { } 8768: 8768: explicit 8768: move_iterator(iterator_type __i) 8768: : _M_current(__i) { } 8768: 8768: template 8768: 8768: move_iterator(const move_iterator<_Iter>& __i) 8768: : _M_current(__i.base()) { } 8768: 8768: iterator_type 8768: base() const 8768: { return _M_current; } 8768: 8768: reference 8768: operator*() const 8768: { return static_cast(*_M_current); } 8768: 8768: pointer 8768: operator->() const 8768: { return _M_current; } 8768: 8768: move_iterator& 8768: operator++() 8768: { 8768: ++_M_current; 8768: return *this; 8768: } 8768: 8768: move_iterator 8768: operator++(int) 8768: { 8768: move_iterator __tmp = *this; 8768: ++_M_current; 8768: return __tmp; 8768: } 8768: 8768: move_iterator& 8768: operator--() 8768: { 8768: --_M_current; 8768: return *this; 8768: } 8768: 8768: move_iterator 8768: operator--(int) 8768: { 8768: move_iterator __tmp = *this; 8768: --_M_current; 8768: return __tmp; 8768: } 8768: 8768: move_iterator 8768: operator+(difference_type __n) const 8768: { return move_iterator(_M_current + __n); } 8768: 8768: move_iterator& 8768: operator+=(difference_type __n) 8768: { 8768: _M_current += __n; 8768: return *this; 8768: } 8768: 8768: move_iterator 8768: operator-(difference_type __n) const 8768: { return move_iterator(_M_current - __n); } 8768: 8768: move_iterator& 8768: operator-=(difference_type __n) 8768: { 8768: _M_current -= __n; 8768: return *this; 8768: } 8768: 8768: reference 8768: operator[](difference_type __n) const 8768: { return std::move(_M_current[__n]); } 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: { return __x.base() == __y.base(); } 8768: 8768: template 8768: inline bool 8768: operator==(const move_iterator<_Iterator>& __x, 8768: const move_iterator<_Iterator>& __y) 8768: { return __x.base() == __y.base(); } 8768: 8768: template 8768: inline bool 8768: operator!=(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: { return !(__x == __y); } 8768: 8768: template 8768: inline bool 8768: operator!=(const move_iterator<_Iterator>& __x, 8768: const move_iterator<_Iterator>& __y) 8768: { return !(__x == __y); } 8768: 8768: template(slot), 8737: type, types, &SignalType::Object::staticMetaObject); 8737: } 8737: 8737: 8737: template 8737: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8737: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8737: { 8737: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8737: } 8737: 8737: 8737: template 8737: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8737: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8737: Qt::ConnectionType type = Qt::AutoConnection) 8737: { 8737: typedef QtPrivate::FunctionPointer SignalType; 8737: const int FunctorArgumentCount = QtPrivate::ComputeFunctorArgumentCount::Value; 8737: 8737: static_assert(bool((FunctorArgumentCount >= 0)), "Signal and slot arguments are not compatible.") 8737: ; 8737: const int SlotArgumentCount = (FunctorArgumentCount >= 0) ? FunctorArgumentCount : 0; 8737: typedef typename QtPrivate::FunctorReturnType::Value>::Value SlotReturnType; 8737: 8737: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8737: ; 8737: 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8737: ; 8737: 8737: const int *types = nullptr; 8737: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8737: types = QtPrivate::ConnectionTypes::types(); 8737: 8737: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8737: new QtPrivate::QFunctorSlotObject::Value, 8737: typename SignalType::ReturnType>(slot), 8737: type, types, &SignalType::Object::staticMetaObject); 8737: } 8737: 8737: 8737: static bool disconnect(const QObject *sender, const char *signal, 8737: const QObject *receiver, const char *member); 8737: static bool disconnect(const QObject *sender, const QMetaMethod &signal, 8737: const QObject *receiver, const QMetaMethod &member); 8737: inline bool disconnect(const char *signal = nullptr, 8737: const QObject *receiver = nullptr, const char *member = nullptr) const 8737: { return disconnect(this, signal, receiver, member); } 8737: inline bool disconnect(const QObject *receiver, const char *member = nullptr) const 8737: { return disconnect(this, nullptr, receiver, member); } 8737: static bool disconnect(const QMetaObject::Connection &); 8737: 8737: 8737: 8737: 8737: 8737: template 8737: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8737: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot) 8737: { 8737: typedef QtPrivate::FunctionPointer SignalType; 8737: typedef QtPrivate::FunctionPointer SlotType; 8737: 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8737: ; 8737: 8737: 8737: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8737: ; 8737: 8737: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, reinterpret_cast(&slot), 8737: &SignalType::Object::staticMetaObject); 8737: } 8737: template 8737: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8737: const QObject *receiver, void **zero) 8737: { 8737: 8737: 8737: 8737: do { } while ((false) && (!zero)); 8737: typedef QtPrivate::FunctionPointer SignalType; 8737: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, zero, 8737: &SignalType::Object::staticMetaObject); 8737: } 8737: 8737: 8737: 8737: 8737: void dumpObjectTree(); 8737: void dumpObjectInfo(); 8737: 8737: void dumpObjectTree() const; 8737: void dumpObjectInfo() const; 8737: 8737: 8737: bool setProperty(const char *name, const QVariant &value); 8737: QVariant property(const char *name) const; 8737: QList dynamicPropertyNames() const; 8737: 8737: 8737: 8737: static uint registerUserData(); 8737: void setUserData(uint id, QObjectUserData* data); 8737: QObjectUserData* userData(uint id) const; 8737: 8737: 8737: public : 8737: void destroyed(QObject * = nullptr); 8737: void objectNameChanged(const QString &objectName, QPrivateSignal); 8737: 8737: public: 8737: inline QObject *parent() const { return d_ptr->parent; } 8737: 8737: inline bool inherits(const char *classname) const 8737: { return const_cast(this)->qt_metacast(classname) != nullptr; } 8737: 8737: public : 8737: void deleteLater(); 8737: 8737: protected: 8737: QObject *sender() const; 8737: int senderSignalIndex() const; 8737: int receivers(const char* signal) const; 8737: bool isSignalConnected(const QMetaMethod &signal) const; 8737: 8737: virtual void timerEvent(QTimerEvent *event); 8737: virtual void childEvent(QChildEvent *event); 8737: virtual void customEvent(QEvent *event); 8737: 8737: virtual void connectNotify(const QMetaMethod &signal); 8737: virtual void disconnectNotify(const QMetaMethod &signal); 8737: 8737: protected: 8737: QObject(QObjectPrivate &dd, QObject *parent = nullptr); 8737: 8737: protected: 8737: QScopedPointer d_ptr; 8737: 8737: static const QMetaObject staticQtMetaObject; 8737: friend inline const QMetaObject *qt_getQtMetaObject() noexcept; 8737: 8737: friend struct QMetaObject; 8737: friend struct QMetaObjectPrivate; 8737: friend class QMetaCallEvent; 8737: friend class QApplication; 8737: friend class QApplicationPrivate; 8737: friend class QCoreApplication; 8737: friend class QCoreApplicationPrivate; 8737: friend class QWidget; 8737: friend class QThreadData; 8737: 8737: private: 8737: QObject(const QObject &) = delete; QObject &operator=(const QObject &) = delete; 8737: 8737: 8737: private: 8737: static QMetaObject::Connection connectImpl(const QObject *sender, void **signal, 8737: const QObject *receiver, void **slotPtr, 8737: QtPrivate::QSlotObjectBase *slot, Qt::ConnectionType type, 873me _IteratorR> 8768: inline bool 8768: operator<(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: { return __x.base() < __y.base(); } 8768: 8768: template 8768: inline bool 8768: operator<(const move_iterator<_Iterator>& __x, 8768: const move_iterator<_Iterator>& __y) 8768: { return __x.base() < __y.base(); } 8768: 8768: template 8768: inline bool 8768: operator<=(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: { return !(__y < __x); } 8768: 8768: template 8768: inline bool 8768: operator<=(const move_iterator<_Iterator>& __x, 8768: const move_iterator<_Iterator>& __y) 8768: { return !(__y < __x); } 8768: 8768: template 8768: inline bool 8768: operator>(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: { return __y < __x; } 8768: 8768: template 8768: inline bool 8768: operator>(const move_iterator<_Iterator>& __x, 8768: const move_iterator<_Iterator>& __y) 8768: { return __y < __x; } 8768: 8768: template 8768: inline bool 8768: operator>=(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: { return !(__x < __y); } 8768: 8768: template 8768: inline bool 8768: operator>=(const move_iterator<_Iterator>& __x, 8768: const move_iterator<_Iterator>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline auto 8768: operator-(const move_iterator<_IteratorL>& __x, 8768: const move_iterator<_IteratorR>& __y) 8768: -> decltype(__x.base() - __y.base()) 8768: { return __x.base() - __y.base(); } 8768: 8768: template 8768: inline move_iterator<_Iterator> 8768: operator+(typename move_iterator<_Iterator>::difference_type __n, 8768: const move_iterator<_Iterator>& __x) 8768: { return __x + __n; } 8768: 8768: template 8768: inline move_iterator<_Iterator> 8768: make_move_iterator(_Iterator __i) 8768: { return move_iterator<_Iterator>(__i); } 8768: 8768: template::value_type>::value, 8768: _Iterator, move_iterator<_Iterator>>::type> 8768: inline _ReturnType 8768: __make_move_if_noexcept_iterator(_Iterator __i) 8768: { return _ReturnType(__i); } 8768: 8768: 8768: 8768: template::value, 8768: const _Tp*, move_iterator<_Tp*>>::type> 8768: inline _ReturnType 8768: __make_move_if_noexcept_iterator(_Tp* __i) 8768: { return _ReturnType(__i); } 8768: 8768: 8768: 8768: template 8768: auto 8768: __niter_base(move_iterator<_Iterator> __it) 8768: -> decltype(make_move_iterator(__niter_base(__it.base()))) 8768: { return make_move_iterator(__niter_base(__it.base())); } 8768: 8768: template 8768: struct __is_move_iterator > 8768: { 8768: enum { __value = 1 }; 8768: typedef __true_type __type; 8768: }; 8768: 8768: template 8768: auto 8768: __miter_base(move_iterator<_Iterator> __it) 8768: -> decltype(__miter_base(__it.base())) 8768: { return __miter_base(__it.base()); } 8768: # 1268 "/usr/include/c++/8/bits/stl_iterator.h" 3 8768: 8768: } 8768: # 68 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: 8768: # 1 "/usr/include/c++/8/debug/debug.h" 1 3 8768: # 48 "/usr/include/c++/8/debug/debug.h" 3 8768: namespace std 8768: { 8768: namespace __debug { } 8768: } 8768: 8768: 8768: 8768: 8768: namespace __gnu_debug 8768: { 8768: using namespace std::__debug; 8768: } 8768: # 70 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: 8768: # 1 "/usr/include/c++/8/bits/predefined_ops.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/predefined_ops.h" 3 8768: namespace __gnu_cxx 8768: { 8768: namespace __ops 8768: { 8768: struct _Iter_less_iter 8768: { 8768: template 8768: 8768: bool 8768: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8768: { return *__it1 < *__it2; } 8768: }; 8768: 8768: 8768: inline _Iter_less_iter 8768: __iter_less_iter() 8768: { return _Iter_less_iter(); } 8768: 8768: struct _Iter_less_val 8768: { 8768: 8768: constexpr _Iter_less_val() = default; 8768: 8768: 8768: 8768: 8768: explicit 8768: _Iter_less_val(_Iter_less_iter) { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator __it, _Value& __val) const 8768: { return *__it < __val; } 8768: }; 8768: 8768: inline _Iter_less_val 8768: __iter_less_val() 8768: { return _Iter_less_val(); } 8768: 8768: inline _Iter_less_val 8768: __iter_comp_val(_Iter_less_iter) 8768: { return _Iter_less_val(); } 8768: 8768: struct _Val_less_iter 8768: { 8768: 8768: constexpr _Val_less_iter() = default; 8768: 8768: 8768: 8768: 8768: explicit 8768: _Val_less_iter(_Iter_less_iter) { } 8768: 8768: template 8768: bool 8768: operator()(_Value& __val, _Iterator __it) const 8768: { return __val < *__it; } 8768: }; 8768: 8768: inline _Val_less_iter 8768: __val_less_iter() 8768: { return _Val_less_iter(); } 8768: 8768: inline _Val_less_iter 8768: __val_comp_iter(_Iter_less_iter) 8768: { return _Val_less_iter(); } 8768: 8768: struct _Iter_equal_to_iter 8768: { 8768: template 8768: bool 8768: operator()(_Iterator1 __it1, _Iterator2 __it2) const 8768: { return *__it1 == *__it2; } 8768: }; 8768: 8768: inline _Iter_equal_to_iter 8768: __iter_equal_to_iter() 8768: { return _Iter_equal_to_iter(); } 8768: 8768: struct _Iter_equal_to_val 8768: { 8768: template 8768: bool 8768: operator()(_Iterator __it, _Value& __val) const 8768: { return *__it == __val; } 8768: }; 8768: 8768: inline _Iter_equal_to_val 8768: __iter_equal_to_val() 8768: { return _Iter_equal_to_val(); } 8768: 8768: inline _Iter_equal_to_val 8768: __iter_comp_val(_Iter_equal_to_iter) 8768: { return _Iter_equal_to_val(); } 8768: 8768: template 8768: struct _Iter_comp_iter 8768: { 8768: _Compare _M_comp; 8768: 8768: explicit 8768: _Iter_comp_iter(_Compare __comp) 8768: : _M_comp(std::move(__comp)) 8768: { } 8768: 8768: template 8768: 8768: bool 8768: operator()(_Iterator1 __it1, _Iterator2 __it2) 8768: { return bool(_M_comp(*__it1, *__it2)); } 8768: }; 8768: 8768: template 8768: 8768: inline _Iter_comp_iter<_Compare> 8768: __iter_comp_iter(_Compare __comp) 8768: { return _Iter_comp_iter<_Compare>(std::move(__comp)); } 8768: 8768: template 8768: struct _Iter_comp_val 8768: { 8768: _Compare _M_comp; 8768: 8768: explicit 8768: _Iter_comp_val(_Compare __comp) 8768: : _M_comp(std::move(__comp)) 8768: { } 8768: 8768: explicit 8768: _Iter_comp_val(const _Iter_comp_iter<_Compare>& __comp) 8768: : _M_comp(__comp._M_comp) 8768: { } 8768: 8768: 8768: explicit 8768: _Iter_comp_val(_Iter_comp_iter<_Compare>&& __comp) 8768: : _M_comp(std::move(__comp._M_comp)) 8768: { } 8768: 8768: 8768: template 8768: bool 8768: 7: const int *types, const QMetaObject *senderMetaObject); 8737: 8737: static bool disconnectImpl(const QObject *sender, void **signal, const QObject *receiver, void **slot, 8737: const QMetaObject *senderMetaObject); 8737: 8737: }; 8737: 8737: inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, 8737: const char *amember, Qt::ConnectionType atype) const 8737: { return connect(asender, asignal, this, amember, atype); } 8737: 8737: inline const QMetaObject *qt_getQtMetaObject() noexcept 8737: { return &QObject::staticQtMetaObject; } 8737: 8737: 8737: class __attribute__((visibility("default"))) QObjectUserData { 8737: public: 8737: virtual ~QObjectUserData(); 8737: }; 8737: # 508 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: template 8737: inline T qobject_cast(QObject *object) 8737: { 8737: typedef typename std::remove_cv::type>::type ObjType; 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8737: ; 8737: return static_cast(ObjType::staticMetaObject.cast(object)); 8737: } 8737: 8737: template 8737: inline T qobject_cast(const QObject *object) 8737: { 8737: typedef typename std::remove_cv::type>::type ObjType; 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8737: ; 8737: return static_cast(ObjType::staticMetaObject.cast(object)); 8737: } 8737: 8737: 8737: template inline const char * qobject_interface_iid() 8737: { return nullptr; } 8737: # 541 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QObject *); 8737: 8737: 8737: class QSignalBlocker 8737: { 8737: public: 8737: inline explicit QSignalBlocker(QObject *o) noexcept; 8737: inline explicit QSignalBlocker(QObject &o) noexcept; 8737: inline ~QSignalBlocker(); 8737: 8737: 8737: inline QSignalBlocker(QSignalBlocker &&other) noexcept; 8737: inline QSignalBlocker &operator=(QSignalBlocker &&other) noexcept; 8737: 8737: 8737: inline void reblock() noexcept; 8737: inline void unblock() noexcept; 8737: private: 8737: QSignalBlocker(const QSignalBlocker &) = delete; QSignalBlocker &operator=(const QSignalBlocker &) = delete; 8737: QObject * m_o; 8737: bool m_blocked; 8737: bool m_inhibited; 8737: }; 8737: 8737: QSignalBlocker::QSignalBlocker(QObject *o) noexcept 8737: : m_o(o), 8737: m_blocked(o && o->blockSignals(true)), 8737: m_inhibited(false) 8737: {} 8737: 8737: QSignalBlocker::QSignalBlocker(QObject &o) noexcept 8737: : m_o(&o), 8737: m_blocked(o.blockSignals(true)), 8737: m_inhibited(false) 8737: {} 8737: 8737: 8737: QSignalBlocker::QSignalBlocker(QSignalBlocker &&other) noexcept 8737: : m_o(other.m_o), 8737: m_blocked(other.m_blocked), 8737: m_inhibited(other.m_inhibited) 8737: { 8737: other.m_o = nullptr; 8737: } 8737: 8737: QSignalBlocker &QSignalBlocker::operator=(QSignalBlocker &&other) noexcept 8737: { 8737: if (this != &other) { 8737: 8737: 8737: if (m_o != other.m_o || (!m_inhibited && other.m_inhibited)) 8737: unblock(); 8737: m_o = other.m_o; 8737: m_blocked = other.m_blocked; 8737: m_inhibited = other.m_inhibited; 8737: 8737: other.m_o = nullptr; 8737: } 8737: return *this; 8737: } 8737: 8737: 8737: QSignalBlocker::~QSignalBlocker() 8737: { 8737: if (m_o && !m_inhibited) 8737: m_o->blockSignals(m_blocked); 8737: } 8737: 8737: void QSignalBlocker::reblock() noexcept 8737: { 8737: if (m_o) m_o->blockSignals(true); 8737: m_inhibited = false; 8737: } 8737: 8737: void QSignalBlocker::unblock() noexcept 8737: { 8737: if (m_o) m_o->blockSignals(m_blocked); 8737: m_inhibited = true; 8737: } 8737: 8737: namespace QtPrivate { 8737: inline QObject & deref_for_methodcall(QObject &o) { return o; } 8737: inline QObject & deref_for_methodcall(QObject *o) { return *o; } 8737: } 8737: 8737: 8737: 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 1 3 4 8737: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: class QBitArray; 8737: class QDataStream; 8737: class QDate; 8737: class QDateTime; 8737: class QEasingCurve; 8737: class QLine; 8737: class QLineF; 8737: class QLocale; 8737: class QMatrix; 8737: class QTransform; 8737: class QStringList; 8737: class QTime; 8737: class QPoint; 8737: class QPointF; 8737: class QSize; 8737: class QSizeF; 8737: class QRect; 8737: class QRectF; 8737: 8737: class QRegExp; 8737: 8737: 8737: class QRegularExpression; 8737: 8737: class QTextFormat; 8737: class QTextLength; 8737: class QUrl; 8737: class QVariant; 8737: class QVariantComparisonHelper; 8737: 8737: template 8737: inline QVariant qVariantFromValue(const T &); 8737: 8737: template 8737: inline T qvariant_cast(const QVariant &); 8737: 8737: namespace QtPrivate { 8737: 8737: template 8737: struct ObjectInvoker 8737: { 8737: static ReturnType invoke(Argument a) 8737: { 8737: return Derived::object(a); 8737: } 8737: }; 8737: 8737: template 8737: struct MetaTypeInvoker 8737: { 8737: static ReturnType invoke(Argument a) 8737: { 8737: return Derived::metaType(a); 8737: } 8737: }; 8737: 8737: template ::Value> 8737: struct TreatAsQObjectBeforeMetaType : ObjectInvoker 8737: { 8737: }; 8737: 8737: template 8737: struct TreatAsQObjectBeforeMetaType : MetaTypeInvoker 8737: { 8737: }; 8737: 8737: template struct QVariantValueHelper; 8737: } 8737: 8737: class __attribute__((visibility("default"))) QVariant 8737: { 8737: public: 8737: enum Type { 8737: Invalid = QMetaType::UnknownType, 8737: Bool = QMetaType::Bool, 8737: Int = QMetaType::Int, 8737: UInt = QMetaType::UInt, 8737: LongLong = QMetaType::LongLong, 8737: ULongLong = QMetaType::ULongLong, 8737: Double = QMetaType::Double, 8737: Char = QMetaType::QChar, 8737: Map = QMetaType::QVariantMap, 8737: List = QMetaType::QVariantList, 8737: String = QMetaType::QString, 8737: StringList = QMetaType::QStringList, 8737: ByteArray = QMetaType::QByteArray, 8737: BitArray = QMetaType::QBitArray, 8737: Date = QMetaType::QDate, 8737: Time = QMetaType::QTime, 8737: DateTime = QMetaType::QDateTime, 8737: Url = QMetaType::QUrl, 8737: Locale = QMetaType::QLocale, 8737: Rect = QMetaType::QRect, 8737: RectF = QMetaType::QRectF, 8737: Size = QMetaType::QSize, 8737: SizeF = QMetaType::QSizeF, 8737: Line = QMetaType::QLine, 8737: LineF = QMetaType::QLineF, 8737: Point = QMetaType::QPoint, 8737: PointF = QMetaType::QPointF, 8737: RegExp = QMetaType::QRegExp, 8737: RegularExpression = QMetaType::QRegularExpression, 8737: Hash = QMetaType::QVariantHash, 8737: EasingCurve = QMeoperator()(_Iterator __it, _Value& __val) 8768: { return bool(_M_comp(*__it, __val)); } 8768: }; 8768: 8768: template 8768: inline _Iter_comp_val<_Compare> 8768: __iter_comp_val(_Compare __comp) 8768: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8768: 8768: template 8768: inline _Iter_comp_val<_Compare> 8768: __iter_comp_val(_Iter_comp_iter<_Compare> __comp) 8768: { return _Iter_comp_val<_Compare>(std::move(__comp)); } 8768: 8768: template 8768: struct _Val_comp_iter 8768: { 8768: _Compare _M_comp; 8768: 8768: explicit 8768: _Val_comp_iter(_Compare __comp) 8768: : _M_comp(std::move(__comp)) 8768: { } 8768: 8768: explicit 8768: _Val_comp_iter(const _Iter_comp_iter<_Compare>& __comp) 8768: : _M_comp(__comp._M_comp) 8768: { } 8768: 8768: 8768: explicit 8768: _Val_comp_iter(_Iter_comp_iter<_Compare>&& __comp) 8768: : _M_comp(std::move(__comp._M_comp)) 8768: { } 8768: 8768: 8768: template 8768: bool 8768: operator()(_Value& __val, _Iterator __it) 8768: { return bool(_M_comp(__val, *__it)); } 8768: }; 8768: 8768: template 8768: inline _Val_comp_iter<_Compare> 8768: __val_comp_iter(_Compare __comp) 8768: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8768: 8768: template 8768: inline _Val_comp_iter<_Compare> 8768: __val_comp_iter(_Iter_comp_iter<_Compare> __comp) 8768: { return _Val_comp_iter<_Compare>(std::move(__comp)); } 8768: 8768: template 8768: struct _Iter_equals_val 8768: { 8768: _Value& _M_value; 8768: 8768: explicit 8768: _Iter_equals_val(_Value& __value) 8768: : _M_value(__value) 8768: { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator __it) 8768: { return *__it == _M_value; } 8768: }; 8768: 8768: template 8768: inline _Iter_equals_val<_Value> 8768: __iter_equals_val(_Value& __val) 8768: { return _Iter_equals_val<_Value>(__val); } 8768: 8768: template 8768: struct _Iter_equals_iter 8768: { 8768: _Iterator1 _M_it1; 8768: 8768: explicit 8768: _Iter_equals_iter(_Iterator1 __it1) 8768: : _M_it1(__it1) 8768: { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator2 __it2) 8768: { return *__it2 == *_M_it1; } 8768: }; 8768: 8768: template 8768: inline _Iter_equals_iter<_Iterator> 8768: __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it) 8768: { return _Iter_equals_iter<_Iterator>(__it); } 8768: 8768: template 8768: struct _Iter_pred 8768: { 8768: _Predicate _M_pred; 8768: 8768: explicit 8768: _Iter_pred(_Predicate __pred) 8768: : _M_pred(std::move(__pred)) 8768: { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator __it) 8768: { return bool(_M_pred(*__it)); } 8768: }; 8768: 8768: template 8768: inline _Iter_pred<_Predicate> 8768: __pred_iter(_Predicate __pred) 8768: { return _Iter_pred<_Predicate>(std::move(__pred)); } 8768: 8768: template 8768: struct _Iter_comp_to_val 8768: { 8768: _Compare _M_comp; 8768: _Value& _M_value; 8768: 8768: _Iter_comp_to_val(_Compare __comp, _Value& __value) 8768: : _M_comp(std::move(__comp)), _M_value(__value) 8768: { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator __it) 8768: { return bool(_M_comp(*__it, _M_value)); } 8768: }; 8768: 8768: template 8768: _Iter_comp_to_val<_Compare, _Value> 8768: __iter_comp_val(_Compare __comp, _Value &__val) 8768: { 8768: return _Iter_comp_to_val<_Compare, _Value>(std::move(__comp), __val); 8768: } 8768: 8768: template 8768: struct _Iter_comp_to_iter 8768: { 8768: _Compare _M_comp; 8768: _Iterator1 _M_it1; 8768: 8768: _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1) 8768: : _M_comp(std::move(__comp)), _M_it1(__it1) 8768: { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator2 __it2) 8768: { return bool(_M_comp(*__it2, *_M_it1)); } 8768: }; 8768: 8768: template 8768: inline _Iter_comp_to_iter<_Compare, _Iterator> 8768: __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it) 8768: { 8768: return _Iter_comp_to_iter<_Compare, _Iterator>( 8768: std::move(__comp._M_comp), __it); 8768: } 8768: 8768: template 8768: struct _Iter_negate 8768: { 8768: _Predicate _M_pred; 8768: 8768: explicit 8768: _Iter_negate(_Predicate __pred) 8768: : _M_pred(std::move(__pred)) 8768: { } 8768: 8768: template 8768: bool 8768: operator()(_Iterator __it) 8768: { return !bool(_M_pred(*__it)); } 8768: }; 8768: 8768: template 8768: inline _Iter_negate<_Predicate> 8768: __negate(_Iter_pred<_Predicate> __pred) 8768: { return _Iter_negate<_Predicate>(std::move(__pred._M_pred)); } 8768: 8768: } 8768: } 8768: # 72 "/usr/include/c++/8/bits/stl_algobase.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 118 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline void 8768: iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 8768: { 8768: 8768: 8768: 8768: 8768: # 148 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: swap(*__a, *__b); 8768: 8768: } 8768: # 164 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: _ForwardIterator2 8768: swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1, (void)++__first2) 8768: std::iter_swap(__first1, __first2); 8768: return __first2; 8768: } 8768: # 192 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: 8768: inline const _Tp& 8768: min(const _Tp& __a, const _Tp& __b) 8768: { 8768: 8768: 8768: 8768: if (__b < __a) 8768: return __b; 8768: return __a; 8768: } 8768: # 216 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: 8768: inline const _Tp& 8768: max(const _Tp& __a, const _Tp& __b) 8768: { 8768: 8768: 8768: 8768: if (__a < __b) 8768: return __b; 8768: return __a; 8768: } 8768: # 240 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: 8768: inline const _Tp& 8768: min(const _Tp& __a, const _Tp& __b, _Compare __comp) 8768: { 8768: 8768: if (__comp(__b, __a)) 8768: return __b; 8768: return __a; 8768: } 8768: # 262 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: 8768: inline const _Tp& 8768: max(const _Tp& __a, const _Tp& __b, _Compare __comp) 8768: { 8768: 8768: if (__comp(__a, __b)) 8768: return __b; 8768: return __a; 8768: } 8768: 8768: 8768: 8768: template 8768: inline _Iterator 8768: __niter_base(_Iterator __it) 8768: { return __it; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __copy_move 8768: { 8768: template 8768: static _OI 8768: __copy_m(_II __first, _II __last, _OI __result) 8768: { 8768: for (; __firsttaType::QEasingCurve, 8737: Uuid = QMetaType::QUuid, 8737: ModelIndex = QMetaType::QModelIndex, 8737: PersistentModelIndex = QMetaType::QPersistentModelIndex, 8737: LastCoreType = QMetaType::LastCoreType, 8737: 8737: Font = QMetaType::QFont, 8737: Pixmap = QMetaType::QPixmap, 8737: Brush = QMetaType::QBrush, 8737: Color = QMetaType::QColor, 8737: Palette = QMetaType::QPalette, 8737: Image = QMetaType::QImage, 8737: Polygon = QMetaType::QPolygon, 8737: Region = QMetaType::QRegion, 8737: Bitmap = QMetaType::QBitmap, 8737: Cursor = QMetaType::QCursor, 8737: KeySequence = QMetaType::QKeySequence, 8737: Pen = QMetaType::QPen, 8737: TextLength = QMetaType::QTextLength, 8737: TextFormat = QMetaType::QTextFormat, 8737: Matrix = QMetaType::QMatrix, 8737: Transform = QMetaType::QTransform, 8737: Matrix4x4 = QMetaType::QMatrix4x4, 8737: Vector2D = QMetaType::QVector2D, 8737: Vector3D = QMetaType::QVector3D, 8737: Vector4D = QMetaType::QVector4D, 8737: Quaternion = QMetaType::QQuaternion, 8737: PolygonF = QMetaType::QPolygonF, 8737: Icon = QMetaType::QIcon, 8737: LastGuiType = QMetaType::LastGuiType, 8737: 8737: SizePolicy = QMetaType::QSizePolicy, 8737: 8737: UserType = QMetaType::User, 8737: LastType = 0xffffffff 8737: }; 8737: 8737: QVariant() noexcept : d() {} 8737: ~QVariant(); 8737: QVariant(Type type); 8737: QVariant(int typeId, const void *copy); 8737: QVariant(int typeId, const void *copy, uint flags); 8737: QVariant(const QVariant &other); 8737: 8737: 8737: QVariant(QDataStream &s); 8737: 8737: 8737: QVariant(int i); 8737: QVariant(uint ui); 8737: QVariant(qlonglong ll); 8737: QVariant(qulonglong ull); 8737: QVariant(bool b); 8737: QVariant(double d); 8737: QVariant(float f); 8737: 8737: 8737: 8737: 8737: QVariant(const QByteArray &bytearray); 8737: QVariant(const QBitArray &bitarray); 8737: QVariant(const QString &string); 8737: QVariant(QLatin1String string); 8737: QVariant(const QStringList &stringlist); 8737: QVariant(QChar qchar); 8737: QVariant(const QDate &date); 8737: QVariant(const QTime &time); 8737: QVariant(const QDateTime &datetime); 8737: QVariant(const QList &list); 8737: QVariant(const QMap &map); 8737: QVariant(const QHash &hash); 8737: 8737: QVariant(const QSize &size); 8737: QVariant(const QSizeF &size); 8737: QVariant(const QPoint &pt); 8737: QVariant(const QPointF &pt); 8737: QVariant(const QLine &line); 8737: QVariant(const QLineF &line); 8737: QVariant(const QRect &rect); 8737: QVariant(const QRectF &rect); 8737: 8737: QVariant(const QLocale &locale); 8737: 8737: QVariant(const QRegExp ®Exp); 8737: 8737: 8737: 8737: QVariant(const QRegularExpression &re); 8737: 8737: QVariant(const QUrl &url); 8737: QVariant(const QEasingCurve &easing); 8737: QVariant(const QUuid &uuid); 8737: QVariant(const QModelIndex &modelIndex); 8737: QVariant(const QPersistentModelIndex &modelIndex); 8737: QVariant(const QJsonValue &jsonValue); 8737: QVariant(const QJsonObject &jsonObject); 8737: QVariant(const QJsonArray &jsonArray); 8737: QVariant(const QJsonDocument &jsonDocument); 8737: 8737: 8737: QVariant& operator=(const QVariant &other); 8737: 8737: inline QVariant(QVariant &&other) noexcept : d(other.d) 8737: { other.d = Private(); } 8737: inline QVariant &operator=(QVariant &&other) noexcept 8737: { qSwap(d, other.d); return *this; } 8737: 8737: 8737: inline void swap(QVariant &other) noexcept { qSwap(d, other.d); } 8737: 8737: Type type() const; 8737: int userType() const; 8737: const char *typeName() const; 8737: 8737: bool canConvert(int targetTypeId) const; 8737: bool convert(int targetTypeId); 8737: 8737: inline bool isValid() const; 8737: bool isNull() const; 8737: 8737: void clear(); 8737: 8737: void detach(); 8737: inline bool isDetached() const; 8737: 8737: int toInt(bool *ok = nullptr) const; 8737: uint toUInt(bool *ok = nullptr) const; 8737: qlonglong toLongLong(bool *ok = nullptr) const; 8737: qulonglong toULongLong(bool *ok = nullptr) const; 8737: bool toBool() const; 8737: double toDouble(bool *ok = nullptr) const; 8737: float toFloat(bool *ok = nullptr) const; 8737: qreal toReal(bool *ok = nullptr) const; 8737: QByteArray toByteArray() const; 8737: QBitArray toBitArray() const; 8737: QString toString() const; 8737: QStringList toStringList() const; 8737: QChar toChar() const; 8737: QDate toDate() const; 8737: QTime toTime() const; 8737: QDateTime toDateTime() const; 8737: QList toList() const; 8737: QMap toMap() const; 8737: QHash toHash() const; 8737: 8737: 8737: QPoint toPoint() const; 8737: QPointF toPointF() const; 8737: QRect toRect() const; 8737: QSize toSize() const; 8737: QSizeF toSizeF() const; 8737: QLine toLine() const; 8737: QLineF toLineF() const; 8737: QRectF toRectF() const; 8737: 8737: QLocale toLocale() const; 8737: 8737: QRegExp toRegExp() const; 8737: 8737: 8737: 8737: QRegularExpression toRegularExpression() const; 8737: 8737: QUrl toUrl() const; 8737: QEasingCurve toEasingCurve() const; 8737: QUuid toUuid() const; 8737: QModelIndex toModelIndex() const; 8737: QPersistentModelIndex toPersistentModelIndex() const; 8737: QJsonValue toJsonValue() const; 8737: QJsonObject toJsonObject() const; 8737: QJsonArray toJsonArray() const; 8737: QJsonDocument toJsonDocument() const; 8737: 8737: 8737: 8737: void load(QDataStream &ds); 8737: void save(QDataStream &ds) const; 8737: 8737: static const char *typeToName(int typeId); 8737: static Type nameToType(const char *name); 8737: 8737: void *data(); 8737: const void *constData() const; 8737: inline const void *data() const { return constData(); } 8737: 8737: template 8737: inline void setValue(const T &value); 8737: 8737: template 8737: inline T value() const 8737: { return qvariant_cast(*this); } 8737: 8737: template 8737: static inline QVariant fromValue(const T &value) 8737: { return qVariantFromValue(value); } 8737: 8737: template 8737: bool canConvert() const 8737: { return canConvert(qMetaTypeId()); } 8737: 8737: public: 8737: 8737: struct PrivateShared 8737: { 8737: inline PrivateShared(void *v) : ptr(v), ref(1) { } 8737: void *ptr; 8737: QAtomicInt ref; 8737: }; 8737: struct Private 8737: { 8737: inline Private() noexcept : type(Invalid), is_shared(false), is_null(true) 8737: { data.ptr = nullptr; } 8737: 8737: 8737: explicit inline Private(uint variantType) noexcept 8737: : type(variantType), is_shared(false), is_null(false) 8737: {} 8737: 8737: inline Private(const Private &other) noexcept 8737: : data(other.data), type(other.type), 8737: is_shared(other.is_shared), is_null(other.is_null) 8737: {} 8737: union Data 8737: { 8737: char c; 8737: uchar uc; 8737: short s; 8737: signed char sc; 8737: ushort us; 8737: int i; 8737: uint u; 8737: long l; 8737: ulong ul; 8737: bool b; 8737: double d; 8737: float f; 8737: qreal real; 8737: qlonglong ll; 8737: qulonglong ull; 8737: QObject *o; 8737: void *ptr; 8737: PrivateShared *shared; 8737: } data; 8737: uint type : 30; 8737: != __last; ++__result, (void)++__first) 8768: *__result = *__first; 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct __copy_move 8768: { 8768: template 8768: static _OI 8768: __copy_m(_II __first, _II __last, _OI __result) 8768: { 8768: for (; __first != __last; ++__result, (void)++__first) 8768: *__result = std::move(*__first); 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template<> 8768: struct __copy_move 8768: { 8768: template 8768: static _OI 8768: __copy_m(_II __first, _II __last, _OI __result) 8768: { 8768: typedef typename iterator_traits<_II>::difference_type _Distance; 8768: for(_Distance __n = __last - __first; __n > 0; --__n) 8768: { 8768: *__result = *__first; 8768: ++__first; 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template<> 8768: struct __copy_move 8768: { 8768: template 8768: static _OI 8768: __copy_m(_II __first, _II __last, _OI __result) 8768: { 8768: typedef typename iterator_traits<_II>::difference_type _Distance; 8768: for(_Distance __n = __last - __first; __n > 0; --__n) 8768: { 8768: *__result = std::move(*__first); 8768: ++__first; 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct __copy_move<_IsMove, true, random_access_iterator_tag> 8768: { 8768: template 8768: static _Tp* 8768: __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) 8768: { 8768: 8768: using __assignable = conditional<_IsMove, 8768: is_move_assignable<_Tp>, 8768: is_copy_assignable<_Tp>>; 8768: 8768: static_assert( __assignable::type::value, "type is not assignable" ); 8768: 8768: const ptrdiff_t _Num = __last - __first; 8768: if (_Num) 8768: __builtin_memmove(__result, __first, sizeof(_Tp) * _Num); 8768: return __result + _Num; 8768: } 8768: }; 8768: 8768: template 8768: inline _OI 8768: __copy_move_a(_II __first, _II __last, _OI __result) 8768: { 8768: typedef typename iterator_traits<_II>::value_type _ValueTypeI; 8768: typedef typename iterator_traits<_OI>::value_type _ValueTypeO; 8768: typedef typename iterator_traits<_II>::iterator_category _Category; 8768: const bool __simple = (__is_trivial(_ValueTypeI) 8768: && __is_pointer<_II>::__value 8768: && __is_pointer<_OI>::__value 8768: && __are_same<_ValueTypeI, _ValueTypeO>::__value); 8768: 8768: return std::__copy_move<_IsMove, __simple, 8768: _Category>::__copy_m(__first, __last, __result); 8768: } 8768: 8768: 8768: 8768: template 8768: struct char_traits; 8768: 8768: template 8768: class istreambuf_iterator; 8768: 8768: template 8768: class ostreambuf_iterator; 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8768: __copy_move_a2(_CharT*, _CharT*, 8768: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type 8768: __copy_move_a2(const _CharT*, const _CharT*, 8768: ostreambuf_iterator<_CharT, char_traits<_CharT> >); 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: _CharT*>::__type 8768: __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, 8768: istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); 8768: 8768: template 8768: inline _OI 8768: __copy_move_a2(_II __first, _II __last, _OI __result) 8768: { 8768: return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first), 8768: std::__niter_base(__last), 8768: std::__niter_base(__result))); 8768: } 8768: # 444 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline _OI 8768: copy(_II __first, _II __last, _OI __result) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return (std::__copy_move_a2<__is_move_iterator<_II>::__value> 8768: (std::__miter_base(__first), std::__miter_base(__last), 8768: __result)); 8768: } 8768: # 477 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline _OI 8768: move(_II __first, _II __last, _OI __result) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__copy_move_a2(std::__miter_base(__first), 8768: std::__miter_base(__last), __result); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __copy_move_backward 8768: { 8768: template 8768: static _BI2 8768: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: while (__first != __last) 8768: *--__result = *--__last; 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct __copy_move_backward 8768: { 8768: template 8768: static _BI2 8768: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: while (__first != __last) 8768: *--__result = std::move(*--__last); 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template<> 8768: struct __copy_move_backward 8768: { 8768: template 8768: static _BI2 8768: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: typename iterator_traits<_BI1>::difference_type __n; 8768: for (__n = __last - __first; __n > 0; --__n) 8768: *--__result = *--__last; 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template<> 8768: struct __copy_move_backward 8768: { 8768: template 8768: static _BI2 8768: __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: typename iterator_traits<_BI1>::difference_type __n; 8768: for (__n = __last - __first; __n > 0; --__n) 8768: *--__result = std::move(*--__last); 8768: return __result; 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> 8768: { 8768: template 8768: static _Tp* 8768: __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) 8768: { 8768: 8768: using __assignable = conditional<_IsMove, 8768: is_move_assignable<_Tp>, 8768: is_copy_assignable<_Tp>>; 8768: 8768: static_assert( __assignable::type::value, "type is not assignable" ); 8768: 8768: const ptrdiff_t _Num = __last - __first; 8768: if (_Num) 8768: __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); 8768: return __result - _Num; 8768: } 8768: }; 8768: 8768: template 8768: inline _BI2 8768: __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: typedef typename iterator_traits<_BI1>::value_type _ValueType1; 8768: typedef typename iterator_traits<_BI2>::value_type _ValueType2; 8768: typedef typename iterator_traits<_BI1>::iterator_category _Category; 8768: const bool __simple = (__is_trivial(_ValueType1) 8768: && __is_pointer<_BI1>::__value 8768: && __is_pointer<_BI2>::__value 8768: && __are_same<_ValueType1, _ValueType2>::__value); 8768: 8768: return std::__copy_move_backward<_IsMove, __simple, 8768: _Category>::__copy_move_b(__first, 8768: __last, 8768: __result); 8768: } 8768: 8768: template 8768: inline _BI2 8768: __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: return _BI2(std::__copy_move_backward_a<_IsMove> 8768: (std::__niter_base(__first), std::__niter_base(__last), 8768: std::__niter_base(__result))); 8768: } 8768: # 620 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline _BI2 8768: copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> 8768: (std::__miter_base(__first), std::__miter_base(__last), 8768: __result)); 8768: } 8768: # 656 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline _BI2 8768: move_backward(_BI1 __first, _BI1 __last, _BI2 __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__copy_move_backward_a2(std::__miter_base(__first), 8768: std::__miter_base(__last), 8768: __result); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline typename 8768: __gnu_cxx::__enable_if::__value, void>::__type 8768: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __value) 8768: { 8768: for (; __first != __last; ++__first) 8768: *__first = __value; 8768: } 8768: 8768: template 8768: inline typename 8768: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type 8768: __fill_a(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __value) 8768: { 8768: const _Tp __tmp = __value; 8768: for (; __first != __last; ++__first) 8768: *__first = __tmp; 8768: } 8768: 8768: 8768: template 8768: inline typename 8768: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type 8768: __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c) 8768: { 8768: const _Tp __tmp = __c; 8768: if (const size_t __len = __last - __first) 8768: __builtin_memset(__first, static_cast(__tmp), __len); 8768: } 8768: # 722 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline void 8768: fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: std::__fill_a(std::__niter_base(__first), std::__niter_base(__last), 8768: __value); 8768: } 8768: 8768: template 8768: inline typename 8768: __gnu_cxx::__enable_if::__value, _OutputIterator>::__type 8768: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8768: { 8768: for (__decltype(__n + 0) __niter = __n; 8768: __niter > 0; --__niter, (void) ++__first) 8768: *__first = __value; 8768: return __first; 8768: } 8768: 8768: template 8768: inline typename 8768: __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type 8768: __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) 8768: { 8768: const _Tp __tmp = __value; 8768: for (__decltype(__n + 0) __niter = __n; 8768: __niter > 0; --__niter, (void) ++__first) 8768: *__first = __tmp; 8768: return __first; 8768: } 8768: 8768: template 8768: inline typename 8768: __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type 8768: __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c) 8768: { 8768: std::__fill_a(__first, __first + __n, __c); 8768: return __first + __n; 8768: } 8768: # 782 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline _OI 8768: fill_n(_OI __first, _Size __n, const _Tp& __value) 8768: { 8768: 8768: 8768: 8768: return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value)); 8768: } 8768: 8768: template 8768: struct __equal 8768: { 8768: template 8768: static bool 8768: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8768: { 8768: for (; __first1 != __last1; ++__first1, (void) ++__first2) 8768: if (!(*__first1 == *__first2)) 8768: return false; 8768: return true; 8768: } 8768: }; 8768: 8768: template<> 8768: struct __equal 8768: { 8768: template 8768: static bool 8768: equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) 8768: { 8768: if (const size_t __len = (__last1 - __first1)) 8768: return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len); 8768: return true; 8768: } 8768: }; 8768: 8768: template 8768: inline bool 8768: __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) 8768: { 8768: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8768: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8768: const bool __simple = ((__is_integer<_ValueType1>::__value 8768: || __is_pointer<_ValueType1>::__value) 8768: && __is_pointer<_II1>::__value 8768: && __is_pointer<_II2>::__value 8768: && __are_same<_ValueType1, _ValueType2>::__value); 8768: 8768: return std::__equal<__simple>::equal(__first1, __last1, __first2); 8768: } 8768: 8768: template 8768: struct __lc_rai 8768: { 8768: template 8768: static _II1 8768: __newlast1(_II1, _II1 __last1, _II2, _II2) 8768: { return __last1; } 8768: 8768: template 8768: static bool 8768: __cnd2(_II __first, _II __last) 8768: { return __first != __last; } 8768: }; 8768: 8768: template<> 8768: struct __lc_rai 8768: { 8768: template 8768: static _RAI1 8768: __newlast1(_RAI1 __first1, _RAI1 __last1, 8768: _RAI2 __first2, _RAI2 __last2) 8768: { 8768: const typename iterator_traits<_RAI1>::difference_type 8768: __diff1 = __last1 - __first1; 8768: const typename iterator_traits<_RAI2>::difference_type 8768: __diff2 = __last2 - __first2; 8768: return __diff2 < __diff1 ? __first1 + __diff2 : __last1; 8768: } 8768: 8768: template 8768: static bool 8768: __cnd2(_RAI, _RAI) 8768: { return true; } 8768: }; 8768: 8768: template 8768: bool 8768: __lexicographical_compare_impl(_II1 __first1, _II1 __last1, 8768: _II2 __first2, _II2 __last2, 8768: _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_II1>::iterator_category _Category1; 8768: typedef typename iterator_traits<_II2>::iterator_category _Category2; 8768: typedef std::__lc_rai<_Category1, _Category2> __rai_type; 8768: 8768: __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); 8768: for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); 8768: ++__first1, (void)++__first2) 8768: { 8768: if (__comp(__fi uint is_shared : 1; 8737: uint is_null : 1; 8737: }; 8737: public: 8737: typedef void (*f_construct)(Private *, const void *); 8737: typedef void (*f_clear)(Private *); 8737: typedef bool (*f_null)(const Private *); 8737: 8737: typedef void (*f_load)(Private *, QDataStream &); 8737: typedef void (*f_save)(const Private *, QDataStream &); 8737: 8737: typedef bool (*f_compare)(const Private *, const Private *); 8737: typedef bool (*f_convert)(const QVariant::Private *d, int t, void *, bool *); 8737: typedef bool (*f_canConvert)(const QVariant::Private *d, int t); 8737: typedef void (*f_debugStream)(QDebug, const QVariant &); 8737: struct Handler { 8737: f_construct construct; 8737: f_clear clear; 8737: f_null isNull; 8737: 8737: f_load load; 8737: f_save save; 8737: 8737: f_compare compare; 8737: f_convert convert; 8737: f_canConvert canConvert; 8737: f_debugStream debugStream; 8737: }; 8737: 8737: 8737: inline bool operator==(const QVariant &v) const 8737: { return cmp(v); } 8737: inline bool operator!=(const QVariant &v) const 8737: { return !cmp(v); } 8737: inline bool operator<(const QVariant &v) const 8737: { return compare(v) < 0; } 8737: inline bool operator<=(const QVariant &v) const 8737: { return compare(v) <= 0; } 8737: inline bool operator>(const QVariant &v) const 8737: { return compare(v) > 0; } 8737: inline bool operator>=(const QVariant &v) const 8737: { return compare(v) >= 0; } 8737: 8737: protected: 8737: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8737: 8737: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8737: 8737: 8737: 8737: template 8737: friend inline T qvariant_cast(const QVariant &); 8737: template friend struct QtPrivate::QVariantValueHelper; 8737: protected: 8737: 8737: 8737: 8737: Private d; 8737: void create(int type, const void *copy); 8737: bool cmp(const QVariant &other) const; 8737: int compare(const QVariant &other) const; 8737: bool convert(const int t, void *ptr) const; 8737: 8737: private: 8737: 8737: inline QVariant(void *) = delete; 8737: 8737: 8737: 8737: 8737: 8737: 8737: QVariant(QMetaType::Type) = delete; 8737: 8737: 8737: 8737: 8737: 8737: 8737: QVariant(Qt::GlobalColor) = delete; 8737: QVariant(Qt::BrushStyle) = delete; 8737: QVariant(Qt::PenStyle) = delete; 8737: QVariant(Qt::CursorShape) = delete; 8737: 8737: 8737: inline QVariant(const char *) = delete; 8737: 8737: public: 8737: typedef Private DataPtr; 8737: inline DataPtr &data_ptr() { return d; } 8737: inline const DataPtr &data_ptr() const { return d; } 8737: }; 8737: 8737: template 8737: inline QVariant qVariantFromValue(const T &t) 8737: { 8737: return QVariant(qMetaTypeId(), &t, QTypeInfo::isPointer); 8737: } 8737: 8737: template <> 8737: inline QVariant qVariantFromValue(const QVariant &t) { return t; } 8737: 8737: template 8737: inline void qVariantSetValue(QVariant &v, const T &t) 8737: { 8737: 8737: const uint type = qMetaTypeId(); 8737: QVariant::Private &d = v.data_ptr(); 8737: if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) { 8737: d.type = type; 8737: d.is_null = false; 8737: T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); 8737: if (QTypeInfo::isComplex) 8737: old->~T(); 8737: new (old) T(t); 8737: } else { 8737: v = QVariant(type, &t, QTypeInfo::isPointer); 8737: } 8737: } 8737: 8737: template <> 8737: inline void qVariantSetValue(QVariant &v, const QVariant &t) 8737: { 8737: v = t; 8737: } 8737: 8737: inline bool QVariant::isValid() const { return d.type != Invalid; } 8737: 8737: template 8737: inline void QVariant::setValue(const T &avalue) 8737: { qVariantSetValue(*this, avalue); } 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant& p); 8737: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant& p); 8737: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant::Type& p); 8737: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant::Type p); 8737: 8737: 8737: inline bool QVariant::isDetached() const 8737: { return !d.is_shared || d.data.shared->ref.load() == 1; } 8737: # 557 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8737: class QVariantComparisonHelper 8737: { 8737: public: 8737: inline QVariantComparisonHelper(const QVariant &var) 8737: : v(&var) {} 8737: private: 8737: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8737: const QVariant *v; 8737: }; 8737: 8737: inline bool operator==(const QVariant &v1, const QVariantComparisonHelper &v2) 8737: { 8737: return v1.cmp(*v2.v); 8737: } 8737: 8737: inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) 8737: { 8737: return !operator==(v1, v2); 8737: } 8737: 8737: 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); } 8737: 8737: class __attribute__((visibility("default"))) QSequentialIterable 8737: { 8737: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8737: public: 8737: struct __attribute__((visibility("default"))) const_iterator 8737: { 8737: private: 8737: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8737: QAtomicInt *ref; 8737: friend class QSequentialIterable; 8737: explicit const_iterator(const QSequentialIterable &iter, QAtomicInt *ref_); 8737: 8737: explicit const_iterator(const QtMetaTypePrivate::QSequentialIterableImpl &impl, QAtomicInt *ref_); 8737: 8737: void begin(); 8737: void end(); 8737: public: 8737: ~const_iterator(); 8737: 8737: const_iterator(const const_iterator &other); 8737: 8737: const_iterator& operator=(const const_iterator &other); 8737: 8737: const QVariant operator*() const; 8737: bool operator==(const const_iterator &o) const; 8737: bool operator!=(const const_iterator &o) const; 8737: const_iterator &operator++(); 8737: const_iterator operator++(int); 8737: const_iterator &operator--(); 8737: const_iterator operator--(int); 8737: const_iterator &operator+=(int j); 8737: const_iterator &operator-=(int j); 8737: const_iterator operator+(int j) const; 8737: const_iterator operator-(int j) const; 8737: }; 8737: 8737: friend struct const_iterator; 8737: 8737: 8737: explicit QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl impl); 8737: 8737: 8737: 8737: 8737: const_iterator begin() const; 8737: const_iterator end() const; 8737: 8737: QVariant at(int idx) const; 8737: int size() const; 8737: 8737: bool canReverseIterate() const; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QAssociativeIterable 8737: { 8737: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8737: public: 8737: struct __attribute__((visibility("default"))) const_iterator 8737: { 8737: privatrst1, __first2)) 8768: return true; 8768: if (__comp(__first2, __first1)) 8768: return false; 8768: } 8768: return __first1 == __last1 && __first2 != __last2; 8768: } 8768: 8768: template 8768: struct __lexicographical_compare 8768: { 8768: template 8768: static bool __lc(_II1, _II1, _II2, _II2); 8768: }; 8768: 8768: template 8768: template 8768: bool 8768: __lexicographical_compare<_BoolType>:: 8768: __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8768: { 8768: return std::__lexicographical_compare_impl(__first1, __last1, 8768: __first2, __last2, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: 8768: template<> 8768: struct __lexicographical_compare 8768: { 8768: template 8768: static bool 8768: __lc(const _Tp* __first1, const _Tp* __last1, 8768: const _Up* __first2, const _Up* __last2) 8768: { 8768: const size_t __len1 = __last1 - __first1; 8768: const size_t __len2 = __last2 - __first2; 8768: if (const size_t __len = std::min(__len1, __len2)) 8768: if (int __result = __builtin_memcmp(__first1, __first2, __len)) 8768: return __result < 0; 8768: return __len1 < __len2; 8768: } 8768: }; 8768: 8768: template 8768: inline bool 8768: __lexicographical_compare_aux(_II1 __first1, _II1 __last1, 8768: _II2 __first2, _II2 __last2) 8768: { 8768: typedef typename iterator_traits<_II1>::value_type _ValueType1; 8768: typedef typename iterator_traits<_II2>::value_type _ValueType2; 8768: const bool __simple = 8768: (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value 8768: && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed 8768: && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed 8768: && __is_pointer<_II1>::__value 8768: && __is_pointer<_II2>::__value); 8768: 8768: return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, 8768: __first2, __last2); 8768: } 8768: 8768: template 8768: _ForwardIterator 8768: __lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::difference_type 8768: _DistanceType; 8768: 8768: _DistanceType __len = std::distance(__first, __last); 8768: 8768: while (__len > 0) 8768: { 8768: _DistanceType __half = __len >> 1; 8768: _ForwardIterator __middle = __first; 8768: std::advance(__middle, __half); 8768: if (__comp(__middle, __val)) 8768: { 8768: __first = __middle; 8768: ++__first; 8768: __len = __len - __half - 1; 8768: } 8768: else 8768: __len = __half; 8768: } 8768: return __first; 8768: } 8768: # 982 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline _ForwardIterator 8768: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__lower_bound(__first, __last, __val, 8768: __gnu_cxx::__ops::__iter_less_val()); 8768: } 8768: 8768: 8768: 8768: inline constexpr int 8768: __lg(int __n) 8768: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8768: 8768: inline constexpr unsigned 8768: __lg(unsigned __n) 8768: { return sizeof(int) * 8 - 1 - __builtin_clz(__n); } 8768: 8768: inline constexpr long 8768: __lg(long __n) 8768: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8768: 8768: inline constexpr unsigned long 8768: __lg(unsigned long __n) 8768: { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); } 8768: 8768: inline constexpr long long 8768: __lg(long long __n) 8768: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8768: 8768: inline constexpr unsigned long long 8768: __lg(unsigned long long __n) 8768: { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); } 8768: 8768: 8768: # 1037 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline bool 8768: equal(_II1 __first1, _II1 __last1, _II2 __first2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__equal_aux(std::__niter_base(__first1), 8768: std::__niter_base(__last1), 8768: std::__niter_base(__first2)); 8768: } 8768: # 1069 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline bool 8768: equal(_IIter1 __first1, _IIter1 __last1, 8768: _IIter2 __first2, _BinaryPredicate __binary_pred) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1, (void)++__first2) 8768: if (!bool(__binary_pred(*__first1, *__first2))) 8768: return false; 8768: return true; 8768: } 8768: 8768: 8768: 8768: template 8768: inline bool 8768: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) 8768: { 8768: using _RATag = random_access_iterator_tag; 8768: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8768: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8768: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8768: if (_RAIters()) 8768: { 8768: auto __d1 = std::distance(__first1, __last1); 8768: auto __d2 = std::distance(__first2, __last2); 8768: if (__d1 != __d2) 8768: return false; 8768: return std::equal(__first1, __last1, __first2); 8768: } 8768: 8768: for (; __first1 != __last1 && __first2 != __last2; 8768: ++__first1, (void)++__first2) 8768: if (!(*__first1 == *__first2)) 8768: return false; 8768: return __first1 == __last1 && __first2 == __last2; 8768: } 8768: 8768: 8768: template 8768: inline bool 8768: __equal4(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, 8768: _BinaryPredicate __binary_pred) 8768: { 8768: using _RATag = random_access_iterator_tag; 8768: using _Cat1 = typename iterator_traits<_II1>::iterator_category; 8768: using _Cat2 = typename iterator_traits<_II2>::iterator_category; 8768: using _RAIters = __and_, is_same<_Cat2, _RATag>>; 8768: if (_RAIters()) 8768: { 8768: auto __d1 = std::distance(__first1, __last1); 8768: auto __d2 = std::distance(__first2, __last2); 8768: if (__d1 != __d2) 8768: return false; 8768: return std::equal(__first1, __last1, __first2, 8768: __binary_pred); 8768: } 8768: 8768: for (; __first1 != __last1 && __first2 != __last2; 8768: ++__first1, (void)++__first2) 8768: if (!bool(__binary_pred(*__first1, *__first2))) 8768: return false; 8768: return __first1 == __last1 && __first2 == __last2; 8768: } 8768: # 1219 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline bool 8768: lexicographical_compare(_II1 __first1, _II1 __last1, 8768: _II2 __first2, _II2 __last2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__lexicographical_compare_aux(std::__niter_base(__first1), 8768: std::__niter_base(__last1), 8768: std::__niter_base(__first2), 8768: std::__niter_base(__last2)); 8768: } 8768: # 1255 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline bool 8768: lexicographical_compare(_II1 __first1, _II1 __last1, 8768: _II2 __first2, _Ie: 8737: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8737: QAtomicInt *ref; 8737: friend class QAssociativeIterable; 8737: explicit const_iterator(const QAssociativeIterable &iter, QAtomicInt *ref_); 8737: 8737: explicit const_iterator(const QtMetaTypePrivate::QAssociativeIterableImpl &impl, QAtomicInt *ref_); 8737: 8737: void begin(); 8737: void end(); 8737: void find(const QVariant &key); 8737: public: 8737: ~const_iterator(); 8737: const_iterator(const const_iterator &other); 8737: 8737: const_iterator& operator=(const const_iterator &other); 8737: 8737: const QVariant key() const; 8737: 8737: const QVariant value() const; 8737: 8737: const QVariant operator*() const; 8737: bool operator==(const const_iterator &o) const; 8737: bool operator!=(const const_iterator &o) const; 8737: const_iterator &operator++(); 8737: const_iterator operator++(int); 8737: const_iterator &operator--(); 8737: const_iterator operator--(int); 8737: const_iterator &operator+=(int j); 8737: const_iterator &operator-=(int j); 8737: const_iterator operator+(int j) const; 8737: const_iterator operator-(int j) const; 8737: }; 8737: 8737: friend struct const_iterator; 8737: 8737: 8737: explicit QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl impl); 8737: 8737: 8737: 8737: 8737: const_iterator begin() const; 8737: const_iterator end() const; 8737: const_iterator find(const QVariant &key) const; 8737: 8737: QVariant value(const QVariant &key) const; 8737: 8737: int size() const; 8737: }; 8737: 8737: 8737: namespace QtPrivate { 8737: template 8737: struct QVariantValueHelper : TreatAsQObjectBeforeMetaType, T, const QVariant &, T> 8737: { 8737: static T metaType(const QVariant &v) 8737: { 8737: const int vid = qMetaTypeId(); 8737: if (vid == v.userType()) 8737: return *reinterpret_cast(v.constData()); 8737: T t; 8737: if (v.convert(vid, &t)) 8737: return t; 8737: return T(); 8737: } 8737: 8737: static T object(const QVariant &v) 8737: { 8737: return qobject_cast(QMetaType::typeFlags(v.userType()) & QMetaType::PointerToQObject 8737: ? v.d.data.o 8737: : QVariantValueHelper::metaType(v)); 8737: } 8737: 8737: }; 8737: 8737: template 8737: struct QVariantValueHelperInterface : QVariantValueHelper 8737: { 8737: }; 8737: 8737: template<> 8737: struct QVariantValueHelperInterface 8737: { 8737: static QSequentialIterable invoke(const QVariant &v) 8737: { 8737: const int typeId = v.userType(); 8737: if (typeId == qMetaTypeId()) { 8737: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8737: } 8737: if (typeId == qMetaTypeId()) { 8737: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8737: } 8737: 8737: if (typeId == qMetaTypeId()) { 8737: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8737: } 8737: 8737: return QSequentialIterable(v.value()); 8737: } 8737: }; 8737: template<> 8737: struct QVariantValueHelperInterface 8737: { 8737: static QAssociativeIterable invoke(const QVariant &v) 8737: { 8737: const int typeId = v.userType(); 8737: if (typeId == qMetaTypeId()) { 8737: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8737: } 8737: if (typeId == qMetaTypeId()) { 8737: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8737: } 8737: return QAssociativeIterable(v.value()); 8737: } 8737: }; 8737: template<> 8737: struct QVariantValueHelperInterface 8737: { 8737: static QVariantList invoke(const QVariant &v) 8737: { 8737: const int typeId = v.userType(); 8737: if (typeId == qMetaTypeId() || typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8737: QSequentialIterable iter = QVariantValueHelperInterface::invoke(v); 8737: QVariantList l; 8737: l.reserve(iter.size()); 8737: for (QSequentialIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8737: l << *it; 8737: return l; 8737: } 8737: return QVariantValueHelper::invoke(v); 8737: } 8737: }; 8737: template<> 8737: struct QVariantValueHelperInterface 8737: { 8737: static QVariantHash invoke(const QVariant &v) 8737: { 8737: const int typeId = v.userType(); 8737: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8737: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8737: QVariantHash l; 8737: l.reserve(iter.size()); 8737: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8737: l.insertMulti(it.key().toString(), it.value()); 8737: return l; 8737: } 8737: return QVariantValueHelper::invoke(v); 8737: } 8737: }; 8737: template<> 8737: struct QVariantValueHelperInterface 8737: { 8737: static QVariantMap invoke(const QVariant &v) 8737: { 8737: const int typeId = v.userType(); 8737: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8737: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8737: QVariantMap l; 8737: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8737: l.insertMulti(it.key().toString(), it.value()); 8737: return l; 8737: } 8737: return QVariantValueHelper::invoke(v); 8737: } 8737: }; 8737: template<> 8737: struct QVariantValueHelperInterface > 8737: { 8737: static QPair invoke(const QVariant &v) 8737: { 8737: const int typeId = v.userType(); 8737: if (typeId == qMetaTypeId >()) 8737: return QVariantValueHelper >::invoke(v); 8737: 8737: if (QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8737: QtMetaTypePrivate::QPairVariantInterfaceImpl pi = v.value(); 8737: 8737: const QtMetaTypePrivate::VariantDatI2 __last2, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__lexicographical_compare_impl 8768: (__first1, __last1, __first2, __last2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: pair<_InputIterator1, _InputIterator2> 8768: __mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8768: { 8768: while (__first1 != __last1 && __binary_pred(__first1, __first2)) 8768: { 8768: ++__first1; 8768: ++__first2; 8768: } 8768: return pair<_InputIterator1, _InputIterator2>(__first1, __first2); 8768: } 8768: # 1298 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline pair<_InputIterator1, _InputIterator2> 8768: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__mismatch(__first1, __last1, __first2, 8768: __gnu_cxx::__ops::__iter_equal_to_iter()); 8768: } 8768: # 1331 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: template 8768: inline pair<_InputIterator1, _InputIterator2> 8768: mismatch(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _BinaryPredicate __binary_pred) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__mismatch(__first1, __last1, __first2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8768: } 8768: # 1431 "/usr/include/c++/8/bits/stl_algobase.h" 3 8768: 8768: 8768: } 8768: # 62 "/usr/include/c++/8/algorithm" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_algo.h" 1 3 8768: # 59 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: # 1 "/usr/include/c++/8/cstdlib" 1 3 8768: # 39 "/usr/include/c++/8/cstdlib" 3 8768: 8768: # 40 "/usr/include/c++/8/cstdlib" 3 8768: # 75 "/usr/include/c++/8/cstdlib" 3 8768: # 1 "/usr/include/stdlib.h" 1 3 4 8768: # 25 "/usr/include/stdlib.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8768: # 26 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 32 "/usr/include/stdlib.h" 2 3 4 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 8768: # 52 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 8768: typedef enum 8768: { 8768: P_ALL, 8768: P_PID, 8768: P_PGID 8768: } idtype_t; 8768: # 40 "/usr/include/stdlib.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 8768: # 41 "/usr/include/stdlib.h" 2 3 4 8768: # 55 "/usr/include/stdlib.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 8768: # 62 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 8768: typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); 8768: # 74 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 8768: typedef __float128 _Float128; 8768: # 56 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: typedef struct 8768: { 8768: int quot; 8768: int rem; 8768: } div_t; 8768: 8768: 8768: 8768: typedef struct 8768: { 8768: long int quot; 8768: long int rem; 8768: } ldiv_t; 8768: 8768: 8768: 8768: 8768: 8768: __extension__ typedef struct 8768: { 8768: long long int quot; 8768: long long int rem; 8768: } lldiv_t; 8768: # 97 "/usr/include/stdlib.h" 3 4 8768: extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: extern double atof (const char *__nptr) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: extern int atoi (const char *__nptr) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: extern long int atol (const char *__nptr) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: __extension__ extern long long int atoll (const char *__nptr) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: extern double strtod (const char *__restrict __nptr, 8768: char **__restrict __endptr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern float strtof (const char *__restrict __nptr, 8768: char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: extern long double strtold (const char *__restrict __nptr, 8768: char **__restrict __endptr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: extern _Float128 strtof128 (const char *__restrict __nptr, 8768: char **__restrict __endptr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern long int strtol (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: extern unsigned long int strtoul (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: __extension__ 8768: extern long long int strtoq (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: __extension__ 8768: extern unsigned long long int strtouq (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: __extension__ 8768: extern long long int strtoll (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: __extension__ 8768: extern unsigned long long int strtoull (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: extern int strfromd (char *__dest, size_t __size, const char *__format, 8768: double __f) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: 8768: extern int strfromf (char *__dest, size_t __size, const char *__format, 8768: float __f) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: 8768: extern int strfroml (char *__dest, size_t __size, const char *__format, 8768: long double __f) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: 8768: 8768: 8768: extern int strfromf128 (char *__dest, size_t __size, const char * __format, 8768: _Float128 __f) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 8768: # 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 8768: # 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 8768: struct __locale_struct 8768: { 8768: 8768: struct __locale_data *__locales[13]; 8768: 8768: 8768: const unsigned short int *__ctype_b; 8768: const int *__ctype_tolower; 8768: const int *__ctype_toupper; 8768: 8768: 8768: const char *__names[13]; 8768: }; 8768: 8768: typedef struct __locale_struct *__locale_t; 8768: # 23 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 8768: 8768: typedef __locale_t locale_t; 8768: # 200 "/usr/include/stdlib.h" 2 3 4 8768: 8768: extern long ia d1 = pi.first(); 8737: QVariant v1(d1.metaTypeId, d1.data, d1.flags); 8737: if (d1.metaTypeId == qMetaTypeId()) 8737: v1 = *reinterpret_cast(d1.data); 8737: 8737: const QtMetaTypePrivate::VariantData d2 = pi.second(); 8737: QVariant v2(d2.metaTypeId, d2.data, d2.flags); 8737: if (d2.metaTypeId == qMetaTypeId()) 8737: v2 = *reinterpret_cast(d2.data); 8737: 8737: return QPair(v1, v2); 8737: } 8737: return QVariantValueHelper >::invoke(v); 8737: } 8737: }; 8737: } 8737: 8737: template inline T qvariant_cast(const QVariant &v) 8737: { 8737: return QtPrivate::QVariantValueHelperInterface::invoke(v); 8737: } 8737: 8737: template<> inline QVariant qvariant_cast(const QVariant &v) 8737: { 8737: if (v.userType() == QMetaType::QVariant) 8737: return *reinterpret_cast(v.constData()); 8737: return v; 8737: } 8737: # 858 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant::Type); 8737: 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qshareddata.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qshareddata.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qshareddata.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template class QSharedDataPointer; 8737: 8737: class __attribute__((visibility("default"))) QSharedData 8737: { 8737: public: 8737: mutable QAtomicInt ref; 8737: 8737: inline QSharedData() : ref(0) { } 8737: inline QSharedData(const QSharedData &) : ref(0) { } 8737: 8737: private: 8737: 8737: QSharedData &operator=(const QSharedData &); 8737: }; 8737: 8737: template class QSharedDataPointer 8737: { 8737: public: 8737: typedef T Type; 8737: typedef T *pointer; 8737: 8737: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8737: inline T &operator*() { detach(); return *d; } 8737: inline const T &operator*() const { return *d; } 8737: inline T *operator->() { detach(); return d; } 8737: inline const T *operator->() const { return d; } 8737: inline operator T *() { detach(); return d; } 8737: inline operator const T *() const { return d; } 8737: inline T *data() { detach(); return d; } 8737: inline const T *data() const { return d; } 8737: inline const T *constData() const { return d; } 8737: 8737: inline bool operator==(const QSharedDataPointer &other) const { return d == other.d; } 8737: inline bool operator!=(const QSharedDataPointer &other) const { return d != other.d; } 8737: 8737: inline QSharedDataPointer() { d = nullptr; } 8737: inline ~QSharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8737: 8737: explicit QSharedDataPointer(T *data) noexcept; 8737: inline QSharedDataPointer(const QSharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8737: inline QSharedDataPointer & operator=(const QSharedDataPointer &o) { 8737: if (o.d != d) { 8737: if (o.d) 8737: o.d->ref.ref(); 8737: T *old = d; 8737: d = o.d; 8737: if (old && !old->ref.deref()) 8737: delete old; 8737: } 8737: return *this; 8737: } 8737: inline QSharedDataPointer &operator=(T *o) { 8737: if (o != d) { 8737: if (o) 8737: o->ref.ref(); 8737: T *old = d; 8737: d = o; 8737: if (old && !old->ref.deref()) 8737: delete old; 8737: } 8737: return *this; 8737: } 8737: 8737: QSharedDataPointer(QSharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8737: inline QSharedDataPointer &operator=(QSharedDataPointer &&other) noexcept 8737: { qSwap(d, other.d); return *this; } 8737: 8737: 8737: inline bool operator!() const { return !d; } 8737: 8737: inline void swap(QSharedDataPointer &other) noexcept 8737: { qSwap(d, other.d); } 8737: 8737: protected: 8737: T *clone(); 8737: 8737: private: 8737: void detach_helper(); 8737: 8737: T *d; 8737: }; 8737: 8737: template class QExplicitlySharedDataPointer 8737: { 8737: public: 8737: typedef T Type; 8737: typedef T *pointer; 8737: 8737: inline T &operator*() const { return *d; } 8737: inline T *operator->() { return d; } 8737: inline T *operator->() const { return d; } 8737: inline T *data() const { return d; } 8737: inline const T *constData() const { return d; } 8737: 8737: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8737: 8737: inline void reset() 8737: { 8737: if(d && !d->ref.deref()) 8737: delete d; 8737: 8737: d = nullptr; 8737: } 8737: 8737: inline operator bool () const { return d != nullptr; } 8737: 8737: inline bool operator==(const QExplicitlySharedDataPointer &other) const { return d == other.d; } 8737: inline bool operator!=(const QExplicitlySharedDataPointer &other) const { return d != other.d; } 8737: inline bool operator==(const T *ptr) const { return d == ptr; } 8737: inline bool operator!=(const T *ptr) const { return d != ptr; } 8737: 8737: inline QExplicitlySharedDataPointer() { d = nullptr; } 8737: inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8737: 8737: explicit QExplicitlySharedDataPointer(T *data) noexcept; 8737: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8737: 8737: template 8737: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) 8737: 8737: 8737: 8737: : d(o.data()) 8737: 8737: { 8737: if(d) 8737: d->ref.ref(); 8737: } 8737: 8737: inline QExplicitlySharedDataPointer & operator=(const QExplicitlySharedDataPointer &o) { 8737: if (o.d != d) { 8737: if (o.d) 8737: o.d->ref.ref(); 8737: T *old = d; 8737: d = o.d; 8737: if (old && !old->ref.deref()) 8737: delete old; 8737: } 8737: return *this; 8737: } 8737: inline QExplicitlySharedDataPointer &operator=(T *o) { 8737: if (o != d) { 8737: if (o) 8737: o->ref.ref(); 8737: T *old = d; 8737: d = o; 8737: if (old && !old->ref.deref()) 8737: delete old; 8737: } 8737: return *this; 8737: } 8737: 8737: inline QExplicitlySharedDataPointer(QExplicitlySharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8737: inline QExplicitlySharedDataPointer &operator=(QExplicitlySharedDataPointer &&other) noexcept 8737: { qSwap(d, other.d); return *this; } 8737: 8737: 8737: inline bool operator!() const { return !d; } 8737: 8737: inline void swap(QExplicitlySharedDataPointer &other) noexcept 8737: { qSwap(d, other.d); } 8737: 8737: protected: 8737: T *clone(); 8737: 8737: private: 8737: void detach_helper(); 8737: 8737: T *d; 8737: }; 8737: 8737: template 8737: inline QSharedDataPointer::QSharedDataPointer(T *adata) noexcept 8737: : d(adata) 8737: { if (d) d->ref.ref(); } 8737: 8737: template 8737: inline T *QSharedDataPointer::clone() 8737: { 8737: return new T(*d); 8737: } 8737: 8737: template 8737: void QSharedDataPointer::detach_helper() 8737: { 8737: T *x = clone(); nt strtol_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base, 8768: locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); 8768: 8768: extern unsigned long int strtoul_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, 8768: int __base, locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 4))); 8768: 8768: __extension__ 8768: extern long long int strtoll_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, int __base, 8768: locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 4))); 8768: 8768: __extension__ 8768: extern unsigned long long int strtoull_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, 8768: int __base, locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 4))); 8768: 8768: extern double strtod_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: extern float strtof_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: extern long double strtold_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, 8768: locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: extern _Float128 strtof128_l (const char *__restrict __nptr, 8768: char **__restrict __endptr, 8768: locale_t __loc) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: __attribute__ ((__leaf__)) atoi (const char *__nptr) throw () 8768: { 8768: return (int) strtol (__nptr, (char **) __null, 10); 8768: } 8768: extern __inline __attribute__ ((__gnu_inline__)) long int 8768: __attribute__ ((__leaf__)) atol (const char *__nptr) throw () 8768: { 8768: return strtol (__nptr, (char **) __null, 10); 8768: } 8768: 8768: 8768: __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int 8768: __attribute__ ((__leaf__)) atoll (const char *__nptr) throw () 8768: { 8768: return strtoll (__nptr, (char **) __null, 10); 8768: } 8768: # 270 "/usr/include/stdlib.h" 3 4 8768: extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: extern long int a64l (const char *__s) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 8768: # 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8768: extern "C" { 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 8768: # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 8768: 8768: 8768: typedef unsigned char __u_char; 8768: typedef unsigned short int __u_short; 8768: typedef unsigned int __u_int; 8768: typedef unsigned long int __u_long; 8768: 8768: 8768: typedef signed char __int8_t; 8768: typedef unsigned char __uint8_t; 8768: typedef signed short int __int16_t; 8768: typedef unsigned short int __uint16_t; 8768: typedef signed int __int32_t; 8768: typedef unsigned int __uint32_t; 8768: 8768: typedef signed long int __int64_t; 8768: typedef unsigned long int __uint64_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef long int __quad_t; 8768: typedef unsigned long int __u_quad_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef long int __intmax_t; 8768: typedef unsigned long int __uintmax_t; 8768: # 130 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 8768: # 131 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 8768: 8768: 8768: typedef unsigned long int __dev_t; 8768: typedef unsigned8737: x->ref.ref(); 8737: if (!d->ref.deref()) 8737: delete d; 8737: d = x; 8737: } 8737: 8737: template 8737: inline T *QExplicitlySharedDataPointer::clone() 8737: { 8737: return new T(*d); 8737: } 8737: 8737: template 8737: void QExplicitlySharedDataPointer::detach_helper() 8737: { 8737: T *x = clone(); 8737: x->ref.ref(); 8737: if (!d->ref.deref()) 8737: delete d; 8737: d = x; 8737: } 8737: 8737: template 8737: inline QExplicitlySharedDataPointer::QExplicitlySharedDataPointer(T *adata) noexcept 8737: : d(adata) 8737: { if (d) d->ref.ref(); } 8737: 8737: template 8737: inline void qSwap(QSharedDataPointer &p1, QSharedDataPointer &p2) 8737: { p1.swap(p2); } 8737: 8737: template 8737: inline void qSwap(QExplicitlySharedDataPointer &p1, QExplicitlySharedDataPointer &p2) 8737: { p1.swap(p2); } 8737: 8737: 8737: namespace std { 8737: template 8737: inline void swap(::QSharedDataPointer &p1, ::QSharedDataPointer &p2) 8737: { p1.swap(p2); } 8737: 8737: template 8737: inline void swap(::QExplicitlySharedDataPointer &p1, ::QExplicitlySharedDataPointer &p2) 8737: { p1.swap(p2); } 8737: } 8737: 8737: 8737: template 8737: inline uint qHash(const QSharedDataPointer &ptr, uint seed = 0) noexcept 8737: { 8737: return qHash(ptr.data(), seed); 8737: } 8737: template 8737: inline uint qHash(const QExplicitlySharedDataPointer &ptr, uint seed = 0) noexcept 8737: { 8737: return qHash(ptr.data(), seed); 8737: } 8737: 8737: 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"; } }; 8737: 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"; } }; 8737: 8737: 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 2 3 4 8737: 8737: 8737: 8737: 8737: class QDataStream; 8737: class QDate; 8737: class QDateTime; 8737: class QLocale; 8737: class QTime; 8737: class QVariant; 8737: class QTextStream; 8737: class QTextStreamPrivate; 8737: 8737: class QLocalePrivate; 8737: 8737: __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed = 0) noexcept; 8737: 8737: class __attribute__((visibility("default"))) QLocale 8737: { 8737: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8737: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: 8737: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 66 "/usr/include/x86_ int __uid_t; 8768: typedef unsigned int __gid_t; 8768: typedef unsigned long int __ino_t; 8768: typedef unsigned long int __ino64_t; 8768: typedef unsigned int __mode_t; 8768: typedef unsigned long int __nlink_t; 8768: typedef long int __off_t; 8768: typedef long int __off64_t; 8768: typedef int __pid_t; 8768: typedef struct { int __val[2]; } __fsid_t; 8768: typedef long int __clock_t; 8768: typedef unsigned long int __rlim_t; 8768: typedef unsigned long int __rlim64_t; 8768: typedef unsigned int __id_t; 8768: typedef long int __time_t; 8768: typedef unsigned int __useconds_t; 8768: typedef long int __suseconds_t; 8768: 8768: typedef int __daddr_t; 8768: typedef int __key_t; 8768: 8768: 8768: typedef int __clockid_t; 8768: 8768: 8768: typedef void * __timer_t; 8768: 8768: 8768: typedef long int __blksize_t; 8768: 8768: 8768: 8768: 8768: typedef long int __blkcnt_t; 8768: typedef long int __blkcnt64_t; 8768: 8768: 8768: typedef unsigned long int __fsblkcnt_t; 8768: typedef unsigned long int __fsblkcnt64_t; 8768: 8768: 8768: typedef unsigned long int __fsfilcnt_t; 8768: typedef unsigned long int __fsfilcnt64_t; 8768: 8768: 8768: typedef long int __fsword_t; 8768: 8768: typedef long int __ssize_t; 8768: 8768: 8768: typedef long int __syscall_slong_t; 8768: 8768: typedef unsigned long int __syscall_ulong_t; 8768: 8768: 8768: 8768: typedef __off64_t __loff_t; 8768: typedef __quad_t *__qaddr_t; 8768: typedef char *__caddr_t; 8768: 8768: 8768: typedef long int __intptr_t; 8768: 8768: 8768: typedef unsigned int __socklen_t; 8768: 8768: 8768: 8768: 8768: typedef int __sig_atomic_t; 8768: # 30 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: 8768: typedef __u_char u_char; 8768: typedef __u_short u_short; 8768: typedef __u_int u_int; 8768: typedef __u_long u_long; 8768: typedef __quad_t quad_t; 8768: typedef __u_quad_t u_quad_t; 8768: typedef __fsid_t fsid_t; 8768: 8768: 8768: 8768: 8768: typedef __loff_t loff_t; 8768: 8768: 8768: 8768: typedef __ino_t ino_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __ino64_t ino64_t; 8768: 8768: 8768: 8768: 8768: typedef __dev_t dev_t; 8768: 8768: 8768: 8768: 8768: typedef __gid_t gid_t; 8768: 8768: 8768: 8768: 8768: typedef __mode_t mode_t; 8768: 8768: 8768: 8768: 8768: typedef __nlink_t nlink_t; 8768: 8768: 8768: 8768: 8768: typedef __uid_t uid_t; 8768: 8768: 8768: 8768: 8768: 8768: typedef __off_t off_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __off64_t off64_t; 8768: 8768: 8768: 8768: 8768: typedef __pid_t pid_t; 8768: 8768: 8768: 8768: 8768: 8768: typedef __id_t id_t; 8768: 8768: 8768: 8768: 8768: typedef __ssize_t ssize_t; 8768: 8768: 8768: 8768: 8768: 8768: typedef __daddr_t daddr_t; 8768: typedef __caddr_t caddr_t; 8768: 8768: 8768: 8768: 8768: 8768: typedef __key_t key_t; 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __clock_t clock_t; 8768: # 128 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __clockid_t clockid_t; 8768: # 130 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __time_t time_t; 8768: # 131 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __timer_t timer_t; 8768: # 132 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: 8768: typedef __useconds_t useconds_t; 8768: 8768: 8768: 8768: typedef __suseconds_t suseconds_t; 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: 8768: typedef unsigned long int ulong; 8768: typedef unsigned short int ushort; 8768: typedef unsigned int uint; 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 8768: # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 8768: typedef __int8_t int8_t; 8768: typedef __int16_t int16_t; 8768: typedef __int32_t int32_t; 8768: typedef __int64_t int64_t; 8768: # 157 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: # 178 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8768: typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); 8768: typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); 8768: typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); 8768: typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); 8768: 8768: typedef int register_t __attribute__ ((__mode__ (__word__))); 8768: # 194 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8768: # 1 "/usr/include/endian.h" 1 3 4 8768: # 36 "/usr/include/endian.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 8768: # 37 "/usr/include/endian.h" 2 3 4 8768: # 60 "/usr/include/endian.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 8768: # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4 8768: # 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 8768: static __inline unsigned int 8768: __bswap_32 (unsigned int __bsx) 8768: { 8768: return __builtin_bswap32 (__bsx); 8768: } 8768: # 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 8768: static __inline __uint64_t 8768: __bswap_64 (__uint64_t __bsx) 8768: { 8768: return __builtin_bswap64 (__bsx); 8768: } 8768: # 61 "/usr/include/endian.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 8768: # 32 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 4 8768: static __inline __uint16_t 8768: __uint16_identity (__uint16_t __x) 8768: { 8768: return __x; 8768: } 8768: 8768: static __inline __uint32_t 8768: __uint32_identity (__uint32_t __x) 8768: { 8768: return __x; 8768: } 8768: 8768: static __inline __uint64_t 8768: __uint64_identity (__uint64_t __x) 8768: { 8768: return __x; 8768: } 8768: # 62 "/usr/include/endian.h" 2 3 4 8768: # 195 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 8768: # 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 8768: # 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 8768: # 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 8768: 8768: 8768: 8768: 8768: typedef struct 8768: { 8768: unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; 8768: } __sigset_t; 8768: # 5 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 8768: 8768: 8768: typedef __sigset_t sigset_t; 8768: # 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct timeval 8768: { 8768: __time_t tv_sec; 8768: __suseconds_t tv_usec; 8768: }; 8768: # 38 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct timespec 8768: { 8768: __time_t tv_sec; 8768: __syscall_slong_t tv_nsec; 8768: }; 8768: # 40 "/usr/64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8737: 8737: friend class QString; 8737: friend class QStringRef; 8737: friend class QByteArray; 8737: friend class QIntValidator; 8737: friend class QDoubleValidatorPrivate; 8737: friend class QTextStream; 8737: friend class QTextStreamPrivate; 8737: 8737: public: 8737: 8737: 8737: enum Language { 8737: AnyLanguage = 0, 8737: C = 1, 8737: Abkhazian = 2, 8737: Oromo = 3, 8737: Afar = 4, 8737: Afrikaans = 5, 8737: Albanian = 6, 8737: Amharic = 7, 8737: Arabic = 8, 8737: Armenian = 9, 8737: Assamese = 10, 8737: Aymara = 11, 8737: Azerbaijani = 12, 8737: Bashkir = 13, 8737: Basque = 14, 8737: Bengali = 15, 8737: Dzongkha = 16, 8737: Bihari = 17, 8737: Bislama = 18, 8737: Breton = 19, 8737: Bulgarian = 20, 8737: Burmese = 21, 8737: Belarusian = 22, 8737: Khmer = 23, 8737: Catalan = 24, 8737: Chinese = 25, 8737: Corsican = 26, 8737: Croatian = 27, 8737: Czech = 28, 8737: Danish = 29, 8737: Dutch = 30, 8737: English = 31, 8737: Esperanto = 32, 8737: Estonian = 33, 8737: Faroese = 34, 8737: Fijian = 35, 8737: Finnish = 36, 8737: French = 37, 8737: WesternFrisian = 38, 8737: Gaelic = 39, 8737: Galician = 40, 8737: Georgian = 41, 8737: German = 42, 8737: Greek = 43, 8737: Greenlandic = 44, 8737: Guarani = 45, 8737: Gujarati = 46, 8737: Hausa = 47, 8737: Hebrew = 48, 8737: Hindi = 49, 8737: Hungarian = 50, 8737: Icelandic = 51, 8737: Indonesian = 52, 8737: Interlingua = 53, 8737: Interlingue = 54, 8737: Inuktitut = 55, 8737: Inupiak = 56, 8737: Irish = 57, 8737: Italian = 58, 8737: Japanese = 59, 8737: Javanese = 60, 8737: Kannada = 61, 8737: Kashmiri = 62, 8737: Kazakh = 63, 8737: Kinyarwanda = 64, 8737: Kirghiz = 65, 8737: Korean = 66, 8737: Kurdish = 67, 8737: Rundi = 68, 8737: Lao = 69, 8737: Latin = 70, 8737: Latvian = 71, 8737: Lingala = 72, 8737: Lithuanian = 73, 8737: Macedonian = 74, 8737: Malagasy = 75, 8737: Malay = 76, 8737: Malayalam = 77, 8737: Maltese = 78, 8737: Maori = 79, 8737: Marathi = 80, 8737: Marshallese = 81, 8737: Mongolian = 82, 8737: NauruLanguage = 83, 8737: Nepali = 84, 8737: NorwegianBokmal = 85, 8737: Occitan = 86, 8737: Oriya = 87, 8737: Pashto = 88, 8737: Persian = 89, 8737: Polish = 90, 8737: Portuguese = 91, 8737: Punjabi = 92, 8737: Quechua = 93, 8737: Romansh = 94, 8737: Romanian = 95, 8737: Russian = 96, 8737: Samoan = 97, 8737: Sango = 98, 8737: Sanskrit = 99, 8737: Serbian = 100, 8737: Ossetic = 101, 8737: SouthernSotho = 102, 8737: Tswana = 103, 8737: Shona = 104, 8737: Sindhi = 105, 8737: Sinhala = 106, 8737: Swati = 107, 8737: Slovak = 108, 8737: Slovenian = 109, 8737: Somali = 110, 8737: Spanish = 111, 8737: Sundanese = 112, 8737: Swahili = 113, 8737: Swedish = 114, 8737: Sardinian = 115, 8737: Tajik = 116, 8737: Tamil = 117, 8737: Tatar = 118, 8737: Telugu = 119, 8737: Thai = 120, 8737: Tibetan = 121, 8737: Tigrinya = 122, 8737: Tongan = 123, 8737: Tsonga = 124, 8737: Turkish = 125, 8737: Turkmen = 126, 8737: Tahitian = 127, 8737: Uighur = 128, 8737: Ukrainian = 129, 8737: Urdu = 130, 8737: Uzbek = 131, 8737: Vietnamese = 132, 8737: Volapuk = 133, 8737: Welsh = 134, 8737: Wolof = 135, 8737: Xhosa = 136, 8737: Yiddish = 137, 8737: Yoruba = 138, 8737: Zhuang = 139, 8737: Zulu = 140, 8737: NorwegianNynorsk = 141, 8737: Bosnian = 142, 8737: Divehi = 143, 8737: Manx = 144, 8737: Cornish = 145, 8737: Akan = 146, 8737: Konkani = 147, 8737: Ga = 148, 8737: Igbo = 149, 8737: Kamba = 150, 8737: Syriac = 151, 8737: Blin = 152, 8737: Geez = 153, 8737: Koro = 154, 8737: Sidamo = 155, 8737: Atsam = 156, 8737: Tigre = 157, 8737: Jju = 158, 8737: Friulian = 159, 8737: Venda = 160, 8737: Ewe = 161, 8737: Walamo = 162, 8737: Hawaiian = 163, 8737: Tyap = 164, 8737: Nyanja = 165, 8737: Filipino = 166, 8737: SwissGerman = 167, 8737: SichuanYi = 168, 8737: Kpelle = 169, 8737: LowGerman = 170, 8737: SouthNdebele = 171, 8737: NorthernSotho = 172, 8737: NorthernSami = 173, 8737: Taroko = 174, 8737: Gusii = 175, 8737: Taita = 176, 8737: Fulah = 177, 8737: Kikuyu = 178, 8737: Samburu = 179, 8737: Sena = 180, 8737: NorthNdebele = 181, 8737: Rombo = 182, 8737: Tachelhit = 183, 8737: Kabyle = 184, 8737: Nyankole = 185, 8737: Bena = 186, 8737: Vunjo = 187, 8737: Bambara = 188, 8737: Embu = 189, 8737: Cherokee = 190, 8737: Morisyen = 191, 8737: Makonde = 192, 8737: Langi = 193, 8737: Ganda = 194, 8737: Bemba = 195, 8737: Kabuverdianu = 196, 8737: Meru = 197, 8737: Kalenjin = 198, 8737: Nama = 199, 8737: Machame = 200, 8737: Colognian = 201, 8737: Masai = 202, 8737: Soga = 203, 8737: Luyia = 204, 8737: Asu = 205, 8737: Teso = 206, 8737: Saho = 207, 8737: KoyraChiini = 208, 8737: Rwa = 209, 8737: Luo = 210, 8737: Chiga = 211, 8737: CentralMoroccoTamazight = 212, 8737: KoyraboroSenni = 213, 8737: Shambala = 214, 8737: Bodo = 215, 8737: Avaric = 216, 8737: Chamorro = 217, 8737: Chechen = 218, 8737: Church = 219, 8737: Chuvash = 220, 8737: Cree = 221, 8737: Haitian = 222, 8737: Herero = 223, 8737: HiriMotu = 224, 8737: Kanuri = 225, 8737: Komi = 226, 8737: Kongo = 227, 8737: Kwanyama = 228, 8737: Limburgish = 229, 8737: LubaKatanga = 230, 8737: Luxembourgish = 231, 8737: Navaho = 232, 8737: Ndonga = 233, 8737: Ojibwa = 234, 8737: Pali = 235, 8737: Walloon = 236, 8737: Aghem = 237, 8737: Basaa = 238, 8737: Zarma = 239, 8737: Duala = 240, 8737: JolaFonyi = 241, 8737: Ewondo = 242, 8737: Bafia = 243, 8737: MakhuwaMeetto = 244, 8737: Mundang = 245, 8737: Kwasio = 246, 8737: Nuer = 247, 8737: Sakha = 248, 8737: Sangu = 249, 8737: CongoSwahili = 250, 8737: Tasawaq = 251, 8737: Vai = 252, 8737: Walser = 253, 8737: Yangben = 254, 8737: Avestan = 255, 8737: Asturian = 256, 8737: Ngomba = 257, 8737: Kako = 258, 8737: Meta = 259, 8737: Ngiemboon = 260, 8737: Aragonese = 261, 8737: Akkadian = 262, 8737: AncientEgyptian = 263, 8737: AncientGreek = 264, 8737: Aramaic = 265, 8737: Balinese = 266, 8737: Bamun = 267, 8737: BatakToba = 268, 8737: Buginese = 269, 8include/x86_64-linux-gnu/sys/select.h" 2 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8768: typedef long int __fd_mask; 8768: # 59 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8768: typedef struct 8768: { 8768: 8768: 8768: 8768: __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; 8768: 8768: 8768: 8768: 8768: 8768: } fd_set; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __fd_mask fd_mask; 8768: # 91 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8768: extern "C" { 8768: # 101 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8768: extern int select (int __nfds, fd_set *__restrict __readfds, 8768: fd_set *__restrict __writefds, 8768: fd_set *__restrict __exceptfds, 8768: struct timeval *__restrict __timeout); 8768: # 113 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 8768: extern int pselect (int __nfds, fd_set *__restrict __readfds, 8768: fd_set *__restrict __writefds, 8768: fd_set *__restrict __exceptfds, 8768: const struct timespec *__restrict __timeout, 8768: const __sigset_t *__restrict __sigmask); 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/select2.h" 1 3 4 8768: # 24 "/usr/include/x86_64-linux-gnu/bits/select2.h" 3 4 8768: extern long int __fdelt_chk (long int __d); 8768: extern long int __fdelt_warn (long int __d) 8768: __attribute__((__warning__ ("bit outside of fd_set selected"))); 8768: # 124 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 8768: 8768: 8768: } 8768: # 198 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4 8768: # 41 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/sysmacros.h" 1 3 4 8768: # 42 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 2 3 4 8768: # 71 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 8768: extern "C" { 8768: 8768: extern unsigned int gnu_dev_major (__dev_t __dev) throw () __attribute__ ((__const__)); 8768: extern unsigned int gnu_dev_minor (__dev_t __dev) throw () __attribute__ ((__const__)); 8768: extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () __attribute__ ((__const__)); 8768: 8768: 8768: 8768: __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; } 8768: __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; } 8768: __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; } 8768: 8768: 8768: 8768: } 8768: # 206 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __blksize_t blksize_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __blkcnt_t blkcnt_t; 8768: 8768: 8768: 8768: typedef __fsblkcnt_t fsblkcnt_t; 8768: 8768: 8768: 8768: typedef __fsfilcnt_t fsfilcnt_t; 8768: # 246 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 8768: typedef __blkcnt64_t blkcnt64_t; 8768: typedef __fsblkcnt64_t fsblkcnt64_t; 8768: typedef __fsfilcnt64_t fsfilcnt64_t; 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 8768: # 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 8768: # 58 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 8768: # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 8768: # 58 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8768: struct __pthread_rwlock_arch_t 8768: { 8768: unsigned int __readers; 8768: unsigned int __writers; 8768: unsigned int __wrphase_futex; 8768: unsigned int __writers_futex; 8768: unsigned int __pad3; 8768: unsigned int __pad4; 8768: 8768: int __cur_writer; 8768: int __shared; 8768: signed char __rwelision; 8768: 8768: 8768: 8768: 8768: unsigned char __pad1[7]; 8768: 8768: 8768: unsigned long int __pad2; 8768: 8768: 8768: unsigned int __flags; 8768: # 92 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 8768: }; 8768: # 59 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 8768: 8768: 8768: 8768: 8768: typedef struct __pthread_internal_list 8768: { 8768: struct __pthread_internal_list *__prev; 8768: struct __pthread_internal_list *__next; 8768: } __pthread_list_t; 8768: # 99 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 8768: struct __pthread_mutex_s 8768: { 8768: int __lock ; 8768: unsigned int __count; 8768: int __owner; 8768: 8768: unsigned int __nusers; 8768: 8768: 8768: 8768: int __kind; 8768: 8768: 8768: short __spins; short __elision; 8768: __pthread_list_t __list; 8768: # 123 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: struct __pthread_cond_s 8768: { 8768: __extension__ union 8768: { 8768: __extension__ unsigned long long int __wseq; 8768: struct 8768: { 8768: unsigned int __low; 8768: unsigned int __high; 8768: } __wseq32; 8768: }; 8768: __extension__ union 8768: { 8768: __extension__ unsigned long long int __g1_start; 8768: struct 8768: { 8768: unsigned int __low; 8768: unsigned int __high; 8768: } __g1_start32; 8768: }; 8768: unsigned int __g_refs[2] ; 8768: unsigned int __g_size[2]; 8768: unsigned int __g1_orig_size; 8768: unsigned int __wrefs; 8768: unsigned int __g_signals[2]; 8768: }; 8768: # 24 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 8768: 8768: 8768: 8768: typedef unsigned long int pthread_t; 8768: 8768: 8768: 8768: 8768: typedef union 8768: { 8768: char __size[4]; 8768: int __align; 8768: } pthread_mutexattr_t; 8768: 8768: 8768: 8768: 8768: typedef union 8768: { 8768: char __size[4]; 8768: int __align; 8768: } pthread_condattr_t; 8768: 8768: 8768: 8768: typedef unsigned int pthread_key_t; 8768: 8768: 8768: 8768: typedef int pthread_once_t; 8768: 8768: 8768: union pthread_attr_t 8768: { 8768: char __size[56]; 8768: long int __align; 8768: }; 8768: 8768: typedef union pthread_attr_t pthread_attr_t; 8768: 8768: 8768: 8768: 8768: typedef union 8768: { 8768: struct __pthread_mutex_s __data; 8768: char __size[40]; 8768: long int __align; 8768: } pthread_mutex_t; 8768: 8768: 8768: typedef union 8768: { 8768: struct __pthread_cond_s __data; 8768: char __size[48]; 8768: __extension__ long long int __align; 8768: } pthread_cond_t; 8768: 8768: 8768: 8768: 8768: 8768: typedef union 8768: { 8768: struct __pthread_rwlock_arch_t __data; 8768: char __size[56]; 8768: long int __align; 8768: } pthread_rwlock_t; 8768: 8768: typedef union 8768: { 8768: char __size[8]; 8768: long int __align; 8768: } pthread_rwlockattr_t; 8768: 8768: 8768: 8768: 8768: 8768: typedef volatile int pthread_spinlock_t; 8768: 8768: 8768: 8768: 8768: typedef union 8768: { 8768: char __size[32]; 8768: long int __align; 8768: } pthread_barrier_t737: Buhid = 270, 8737: Carian = 271, 8737: Chakma = 272, 8737: ClassicalMandaic = 273, 8737: Coptic = 274, 8737: Dogri = 275, 8737: EasternCham = 276, 8737: EasternKayah = 277, 8737: Etruscan = 278, 8737: Gothic = 279, 8737: Hanunoo = 280, 8737: Ingush = 281, 8737: LargeFloweryMiao = 282, 8737: Lepcha = 283, 8737: Limbu = 284, 8737: Lisu = 285, 8737: Lu = 286, 8737: Lycian = 287, 8737: Lydian = 288, 8737: Mandingo = 289, 8737: Manipuri = 290, 8737: Meroitic = 291, 8737: NorthernThai = 292, 8737: OldIrish = 293, 8737: OldNorse = 294, 8737: OldPersian = 295, 8737: OldTurkish = 296, 8737: Pahlavi = 297, 8737: Parthian = 298, 8737: Phoenician = 299, 8737: PrakritLanguage = 300, 8737: Rejang = 301, 8737: Sabaean = 302, 8737: Samaritan = 303, 8737: Santali = 304, 8737: Saurashtra = 305, 8737: Sora = 306, 8737: Sylheti = 307, 8737: Tagbanwa = 308, 8737: TaiDam = 309, 8737: TaiNua = 310, 8737: Ugaritic = 311, 8737: Akoose = 312, 8737: Lakota = 313, 8737: StandardMoroccanTamazight = 314, 8737: Mapuche = 315, 8737: CentralKurdish = 316, 8737: LowerSorbian = 317, 8737: UpperSorbian = 318, 8737: Kenyang = 319, 8737: Mohawk = 320, 8737: Nko = 321, 8737: Prussian = 322, 8737: Kiche = 323, 8737: SouthernSami = 324, 8737: LuleSami = 325, 8737: InariSami = 326, 8737: SkoltSami = 327, 8737: Warlpiri = 328, 8737: ManichaeanMiddlePersian = 329, 8737: Mende = 330, 8737: AncientNorthArabian = 331, 8737: LinearA = 332, 8737: HmongNjua = 333, 8737: Ho = 334, 8737: Lezghian = 335, 8737: Bassa = 336, 8737: Mono = 337, 8737: TedimChin = 338, 8737: Maithili = 339, 8737: Ahom = 340, 8737: AmericanSignLanguage = 341, 8737: ArdhamagadhiPrakrit = 342, 8737: Bhojpuri = 343, 8737: HieroglyphicLuwian = 344, 8737: LiteraryChinese = 345, 8737: Mazanderani = 346, 8737: Mru = 347, 8737: Newari = 348, 8737: NorthernLuri = 349, 8737: Palauan = 350, 8737: Papiamento = 351, 8737: Saraiki = 352, 8737: TokelauLanguage = 353, 8737: TokPisin = 354, 8737: TuvaluLanguage = 355, 8737: UncodedLanguages = 356, 8737: Cantonese = 357, 8737: Osage = 358, 8737: Tangut = 359, 8737: 8737: Norwegian = NorwegianBokmal, 8737: Moldavian = Romanian, 8737: SerboCroatian = Serbian, 8737: Tagalog = Filipino, 8737: Twi = Akan, 8737: Afan = Oromo, 8737: Byelorussian = Belarusian, 8737: Bhutani = Dzongkha, 8737: Cambodian = Khmer, 8737: Kurundi = Rundi, 8737: RhaetoRomance = Romansh, 8737: Chewa = Nyanja, 8737: Frisian = WesternFrisian, 8737: Uigur = Uighur, 8737: 8737: LastLanguage = Tangut 8737: }; 8737: 8737: enum Script { 8737: AnyScript = 0, 8737: ArabicScript = 1, 8737: CyrillicScript = 2, 8737: DeseretScript = 3, 8737: GurmukhiScript = 4, 8737: SimplifiedHanScript = 5, 8737: TraditionalHanScript = 6, 8737: LatinScript = 7, 8737: MongolianScript = 8, 8737: TifinaghScript = 9, 8737: ArmenianScript = 10, 8737: BengaliScript = 11, 8737: CherokeeScript = 12, 8737: DevanagariScript = 13, 8737: EthiopicScript = 14, 8737: GeorgianScript = 15, 8737: GreekScript = 16, 8737: GujaratiScript = 17, 8737: HebrewScript = 18, 8737: JapaneseScript = 19, 8737: KhmerScript = 20, 8737: KannadaScript = 21, 8737: KoreanScript = 22, 8737: LaoScript = 23, 8737: MalayalamScript = 24, 8737: MyanmarScript = 25, 8737: OriyaScript = 26, 8737: TamilScript = 27, 8737: TeluguScript = 28, 8737: ThaanaScript = 29, 8737: ThaiScript = 30, 8737: TibetanScript = 31, 8737: SinhalaScript = 32, 8737: SyriacScript = 33, 8737: YiScript = 34, 8737: VaiScript = 35, 8737: AvestanScript = 36, 8737: BalineseScript = 37, 8737: BamumScript = 38, 8737: BatakScript = 39, 8737: BopomofoScript = 40, 8737: BrahmiScript = 41, 8737: BugineseScript = 42, 8737: BuhidScript = 43, 8737: CanadianAboriginalScript = 44, 8737: CarianScript = 45, 8737: ChakmaScript = 46, 8737: ChamScript = 47, 8737: CopticScript = 48, 8737: CypriotScript = 49, 8737: EgyptianHieroglyphsScript = 50, 8737: FraserScript = 51, 8737: GlagoliticScript = 52, 8737: GothicScript = 53, 8737: HanScript = 54, 8737: HangulScript = 55, 8737: HanunooScript = 56, 8737: ImperialAramaicScript = 57, 8737: InscriptionalPahlaviScript = 58, 8737: InscriptionalParthianScript = 59, 8737: JavaneseScript = 60, 8737: KaithiScript = 61, 8737: KatakanaScript = 62, 8737: KayahLiScript = 63, 8737: KharoshthiScript = 64, 8737: LannaScript = 65, 8737: LepchaScript = 66, 8737: LimbuScript = 67, 8737: LinearBScript = 68, 8737: LycianScript = 69, 8737: LydianScript = 70, 8737: MandaeanScript = 71, 8737: MeiteiMayekScript = 72, 8737: MeroiticScript = 73, 8737: MeroiticCursiveScript = 74, 8737: NkoScript = 75, 8737: NewTaiLueScript = 76, 8737: OghamScript = 77, 8737: OlChikiScript = 78, 8737: OldItalicScript = 79, 8737: OldPersianScript = 80, 8737: OldSouthArabianScript = 81, 8737: OrkhonScript = 82, 8737: OsmanyaScript = 83, 8737: PhagsPaScript = 84, 8737: PhoenicianScript = 85, 8737: PollardPhoneticScript = 86, 8737: RejangScript = 87, 8737: RunicScript = 88, 8737: SamaritanScript = 89, 8737: SaurashtraScript = 90, 8737: SharadaScript = 91, 8737: ShavianScript = 92, 8737: SoraSompengScript = 93, 8737: CuneiformScript = 94, 8737: SundaneseScript = 95, 8737: SylotiNagriScript = 96, 8737: TagalogScript = 97, 8737: TagbanwaScript = 98, 8737: TaiLeScript = 99, 8737: TaiVietScript = 100, 8737: TakriScript = 101, 8737: UgariticScript = 102, 8737: BrailleScript = 103, 8737: HiraganaScript = 104, 8737: CaucasianAlbanianScript = 105, 8737: BassaVahScript = 106, 8737: DuployanScript = 107, 8737: ElbasanScript = 108, 8737: GranthaScript = 109, 8737: PahawhHmongScript = 110, 8737: KhojkiScript = 111, 8737: LinearAScript = 112, 8737: MahajaniScript = 113, 8737: ManichaeanScript = 114, 8737: MendeKikakuiScript = 115, 8737: ModiScript = 116, 8737: MroScript = 117, 8737: OldNorthArabianScript = 118, 8737: NabataeanScript = 119, 8737: PalmyreneScript = 120, 8737: PauCinHauScript = 121, 8737: OldPermicScript = 122, 8737: PsalterPahlaviScript = 123, 8737: SiddhamScript = 124, 8737: KhudawadiScript = 125, 8737: TirhutaScript = 126, 8737: VarangKshitiScript = 127, 8737: AhomScript = 128, 8737: AnatolianHieroglyphsScript = 129, 8737: HatranScript = 130, 8737: MultaniScript = 131, 8737: OldHungarianScript = 132, 8737: SignWritingScript = 133, 8737: AdlamScript = 134, 8737: BhaiksukiScript = 135, 8737: MarchenScript = 136, 8737: ; 8768: 8768: typedef union 8768: { 8768: char __size[4]; 8768: int __align; 8768: } pthread_barrierattr_t; 8768: # 255 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 8768: 8768: 8768: } 8768: # 280 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern long int random (void) throw (); 8768: 8768: 8768: extern void srandom (unsigned int __seed) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern char *initstate (unsigned int __seed, char *__statebuf, 8768: size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: 8768: extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct random_data 8768: { 8768: int32_t *fptr; 8768: int32_t *rptr; 8768: int32_t *state; 8768: int rand_type; 8768: int rand_deg; 8768: int rand_sep; 8768: int32_t *end_ptr; 8768: }; 8768: 8768: extern int random_r (struct random_data *__restrict __buf, 8768: int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern int srandom_r (unsigned int __seed, struct random_data *__buf) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, 8768: size_t __statelen, 8768: struct random_data *__restrict __buf) 8768: throw () __attribute__ ((__nonnull__ (2, 4))); 8768: 8768: extern int setstate_r (char *__restrict __statebuf, 8768: struct random_data *__restrict __buf) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: 8768: extern int rand (void) throw (); 8768: 8768: extern void srand (unsigned int __seed) throw (); 8768: 8768: 8768: 8768: extern int rand_r (unsigned int *__seed) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern double drand48 (void) throw (); 8768: extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern long int lrand48 (void) throw (); 8768: extern long int nrand48 (unsigned short int __xsubi[3]) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern long int mrand48 (void) throw (); 8768: extern long int jrand48 (unsigned short int __xsubi[3]) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern void srand48 (long int __seedval) throw (); 8768: extern unsigned short int *seed48 (unsigned short int __seed16v[3]) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: struct drand48_data 8768: { 8768: unsigned short int __x[3]; 8768: unsigned short int __old_x[3]; 8768: unsigned short int __c; 8768: unsigned short int __init; 8768: __extension__ unsigned long long int __a; 8768: 8768: }; 8768: 8768: 8768: extern int drand48_r (struct drand48_data *__restrict __buffer, 8768: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: extern int erand48_r (unsigned short int __xsubi[3], 8768: struct drand48_data *__restrict __buffer, 8768: double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int lrand48_r (struct drand48_data *__restrict __buffer, 8768: long int *__restrict __result) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: extern int nrand48_r (unsigned short int __xsubi[3], 8768: struct drand48_data *__restrict __buffer, 8768: long int *__restrict __result) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int mrand48_r (struct drand48_data *__restrict __buffer, 8768: long int *__restrict __result) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: extern int jrand48_r (unsigned short int __xsubi[3], 8768: struct drand48_data *__restrict __buffer, 8768: long int *__restrict __result) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int srand48_r (long int __seedval, struct drand48_data *__buffer) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: extern int seed48_r (unsigned short int __seed16v[3], 8768: struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern int lcong48_r (unsigned short int __param[7], 8768: struct drand48_data *__buffer) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: extern void *calloc (size_t __nmemb, size_t __size) 8768: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern void *realloc (void *__ptr, size_t __size) 8768: throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) 8768: throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: extern void free (void *__ptr) throw (); 8768: 8768: 8768: # 1 "/usr/include/alloca.h" 1 3 4 8768: # 24 "/usr/include/alloca.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 25 "/usr/include/alloca.h" 2 3 4 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: 8768: 8768: extern void *alloca (size_t __size) throw (); 8768: 8768: 8768: 8768: 8768: 8768: } 8768: # 452 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) 8768: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern void *aligned_alloc (size_t __alignment, size_t __size) 8768: throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: extern void abort (void) throw () __attribute__ ((__noreturn__)); 8768: 8768: 8768: 8768: extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: extern "C++" int at_quick_exit (void (*__func) (void)) 8768: throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); 8768: # 492 "/usr/include/stdlib.h" 3 4 8768: extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: extern void exit (int __status) throw () __attribute__ ((__noreturn__)); 8768: 8768: 8768: 8768: 8768: 8768: extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); 8768: 8768: 8768: 8768: 8768: 8768: extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); 8768: 8768: 8768: 8768: 8768: extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern char *secure_getenv (const char *__name) 8768: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: extern int setenv (const char *__name, const char *__value, int __replace) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int clearenv (void) throw (); 8768: # 557 "/usr/include/stdlib.h" 3 4 8768: extern char *mktemp (char * NewaScript = 137, 8737: OsageScript = 138, 8737: TangutScript = 139, 8737: HanWithBopomofoScript = 140, 8737: JamoScript = 141, 8737: 8737: SimplifiedChineseScript = SimplifiedHanScript, 8737: TraditionalChineseScript = TraditionalHanScript, 8737: 8737: LastScript = JamoScript 8737: }; 8737: enum Country { 8737: AnyCountry = 0, 8737: Afghanistan = 1, 8737: Albania = 2, 8737: Algeria = 3, 8737: AmericanSamoa = 4, 8737: Andorra = 5, 8737: Angola = 6, 8737: Anguilla = 7, 8737: Antarctica = 8, 8737: AntiguaAndBarbuda = 9, 8737: Argentina = 10, 8737: Armenia = 11, 8737: Aruba = 12, 8737: Australia = 13, 8737: Austria = 14, 8737: Azerbaijan = 15, 8737: Bahamas = 16, 8737: Bahrain = 17, 8737: Bangladesh = 18, 8737: Barbados = 19, 8737: Belarus = 20, 8737: Belgium = 21, 8737: Belize = 22, 8737: Benin = 23, 8737: Bermuda = 24, 8737: Bhutan = 25, 8737: Bolivia = 26, 8737: BosniaAndHerzegowina = 27, 8737: Botswana = 28, 8737: BouvetIsland = 29, 8737: Brazil = 30, 8737: BritishIndianOceanTerritory = 31, 8737: Brunei = 32, 8737: Bulgaria = 33, 8737: BurkinaFaso = 34, 8737: Burundi = 35, 8737: Cambodia = 36, 8737: Cameroon = 37, 8737: Canada = 38, 8737: CapeVerde = 39, 8737: CaymanIslands = 40, 8737: CentralAfricanRepublic = 41, 8737: Chad = 42, 8737: Chile = 43, 8737: China = 44, 8737: ChristmasIsland = 45, 8737: CocosIslands = 46, 8737: Colombia = 47, 8737: Comoros = 48, 8737: CongoKinshasa = 49, 8737: CongoBrazzaville = 50, 8737: CookIslands = 51, 8737: CostaRica = 52, 8737: IvoryCoast = 53, 8737: Croatia = 54, 8737: Cuba = 55, 8737: Cyprus = 56, 8737: CzechRepublic = 57, 8737: Denmark = 58, 8737: Djibouti = 59, 8737: Dominica = 60, 8737: DominicanRepublic = 61, 8737: EastTimor = 62, 8737: Ecuador = 63, 8737: Egypt = 64, 8737: ElSalvador = 65, 8737: EquatorialGuinea = 66, 8737: Eritrea = 67, 8737: Estonia = 68, 8737: Ethiopia = 69, 8737: FalklandIslands = 70, 8737: FaroeIslands = 71, 8737: Fiji = 72, 8737: Finland = 73, 8737: France = 74, 8737: Guernsey = 75, 8737: FrenchGuiana = 76, 8737: FrenchPolynesia = 77, 8737: FrenchSouthernTerritories = 78, 8737: Gabon = 79, 8737: Gambia = 80, 8737: Georgia = 81, 8737: Germany = 82, 8737: Ghana = 83, 8737: Gibraltar = 84, 8737: Greece = 85, 8737: Greenland = 86, 8737: Grenada = 87, 8737: Guadeloupe = 88, 8737: Guam = 89, 8737: Guatemala = 90, 8737: Guinea = 91, 8737: GuineaBissau = 92, 8737: Guyana = 93, 8737: Haiti = 94, 8737: HeardAndMcDonaldIslands = 95, 8737: Honduras = 96, 8737: HongKong = 97, 8737: Hungary = 98, 8737: Iceland = 99, 8737: India = 100, 8737: Indonesia = 101, 8737: Iran = 102, 8737: Iraq = 103, 8737: Ireland = 104, 8737: Israel = 105, 8737: Italy = 106, 8737: Jamaica = 107, 8737: Japan = 108, 8737: Jordan = 109, 8737: Kazakhstan = 110, 8737: Kenya = 111, 8737: Kiribati = 112, 8737: NorthKorea = 113, 8737: SouthKorea = 114, 8737: Kuwait = 115, 8737: Kyrgyzstan = 116, 8737: Laos = 117, 8737: Latvia = 118, 8737: Lebanon = 119, 8737: Lesotho = 120, 8737: Liberia = 121, 8737: Libya = 122, 8737: Liechtenstein = 123, 8737: Lithuania = 124, 8737: Luxembourg = 125, 8737: Macau = 126, 8737: Macedonia = 127, 8737: Madagascar = 128, 8737: Malawi = 129, 8737: Malaysia = 130, 8737: Maldives = 131, 8737: Mali = 132, 8737: Malta = 133, 8737: MarshallIslands = 134, 8737: Martinique = 135, 8737: Mauritania = 136, 8737: Mauritius = 137, 8737: Mayotte = 138, 8737: Mexico = 139, 8737: Micronesia = 140, 8737: Moldova = 141, 8737: Monaco = 142, 8737: Mongolia = 143, 8737: Montserrat = 144, 8737: Morocco = 145, 8737: Mozambique = 146, 8737: Myanmar = 147, 8737: Namibia = 148, 8737: NauruCountry = 149, 8737: Nepal = 150, 8737: Netherlands = 151, 8737: CuraSao = 152, 8737: NewCaledonia = 153, 8737: NewZealand = 154, 8737: Nicaragua = 155, 8737: Niger = 156, 8737: Nigeria = 157, 8737: Niue = 158, 8737: NorfolkIsland = 159, 8737: NorthernMarianaIslands = 160, 8737: Norway = 161, 8737: Oman = 162, 8737: Pakistan = 163, 8737: Palau = 164, 8737: PalestinianTerritories = 165, 8737: Panama = 166, 8737: PapuaNewGuinea = 167, 8737: Paraguay = 168, 8737: Peru = 169, 8737: Philippines = 170, 8737: Pitcairn = 171, 8737: Poland = 172, 8737: Portugal = 173, 8737: PuertoRico = 174, 8737: Qatar = 175, 8737: Reunion = 176, 8737: Romania = 177, 8737: Russia = 178, 8737: Rwanda = 179, 8737: SaintKittsAndNevis = 180, 8737: SaintLucia = 181, 8737: SaintVincentAndTheGrenadines = 182, 8737: Samoa = 183, 8737: SanMarino = 184, 8737: SaoTomeAndPrincipe = 185, 8737: SaudiArabia = 186, 8737: Senegal = 187, 8737: Seychelles = 188, 8737: SierraLeone = 189, 8737: Singapore = 190, 8737: Slovakia = 191, 8737: Slovenia = 192, 8737: SolomonIslands = 193, 8737: Somalia = 194, 8737: SouthAfrica = 195, 8737: SouthGeorgiaAndTheSouthSandwichIslands = 196, 8737: Spain = 197, 8737: SriLanka = 198, 8737: SaintHelena = 199, 8737: SaintPierreAndMiquelon = 200, 8737: Sudan = 201, 8737: Suriname = 202, 8737: SvalbardAndJanMayenIslands = 203, 8737: Swaziland = 204, 8737: Sweden = 205, 8737: Switzerland = 206, 8737: Syria = 207, 8737: Taiwan = 208, 8737: Tajikistan = 209, 8737: Tanzania = 210, 8737: Thailand = 211, 8737: Togo = 212, 8737: TokelauCountry = 213, 8737: Tonga = 214, 8737: TrinidadAndTobago = 215, 8737: Tunisia = 216, 8737: Turkey = 217, 8737: Turkmenistan = 218, 8737: TurksAndCaicosIslands = 219, 8737: TuvaluCountry = 220, 8737: Uganda = 221, 8737: Ukraine = 222, 8737: UnitedArabEmirates = 223, 8737: UnitedKingdom = 224, 8737: UnitedStates = 225, 8737: UnitedStatesMinorOutlyingIslands = 226, 8737: Uruguay = 227, 8737: Uzbekistan = 228, 8737: Vanuatu = 229, 8737: VaticanCityState = 230, 8737: Venezuela = 231, 8737: Vietnam = 232, 8737: BritishVirginIslands = 233, 8737: UnitedStatesVirginIslands = 234, 8737: WallisAndFutunaIslands = 235, 8737: WesternSahara = 236, 8737: Yemen = 237, 8737: CanaryIslands = 238, 8737: Zambia = 239, 8737: Zimbabwe = 240, 8737: ClippertonIsland = 241, 8737: Montenegro = 242, 8737: Serbia = 243, 8737: SaintBarthelemy = 244, 8737: SaintMartin = 245, 8737: LatinAmericaAndTheCaribbean = 246, 8737: AscensionIsland = 247, 8737: AlandIslands = 248, 8737: DiegoGarcia = 249, 8737: CeutaAn__template) throw () __attribute__ ((__nonnull__ (1))); 8768: # 570 "/usr/include/stdlib.h" 3 4 8768: extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 580 "/usr/include/stdlib.h" 3 4 8768: extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 592 "/usr/include/stdlib.h" 3 4 8768: extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 602 "/usr/include/stdlib.h" 3 4 8768: extern int mkstemps64 (char *__template, int __suffixlen) 8768: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 613 "/usr/include/stdlib.h" 3 4 8768: extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 624 "/usr/include/stdlib.h" 3 4 8768: extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 634 "/usr/include/stdlib.h" 3 4 8768: extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 644 "/usr/include/stdlib.h" 3 4 8768: extern int mkostemps (char *__template, int __suffixlen, int __flags) 8768: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 656 "/usr/include/stdlib.h" 3 4 8768: extern int mkostemps64 (char *__template, int __suffixlen, int __flags) 8768: __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 666 "/usr/include/stdlib.h" 3 4 8768: extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern char *canonicalize_file_name (const char *__name) 8768: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 682 "/usr/include/stdlib.h" 3 4 8768: extern char *realpath (const char *__restrict __name, 8768: char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef int (*__compar_fn_t) (const void *, const void *); 8768: 8768: 8768: typedef __compar_fn_t comparison_fn_t; 8768: 8768: 8768: 8768: typedef int (*__compar_d_fn_t) (const void *, const void *, void *); 8768: 8768: 8768: 8768: 8768: extern void *bsearch (const void *__key, const void *__base, 8768: size_t __nmemb, size_t __size, __compar_fn_t __compar) 8768: __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 8768: # 19 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 3 4 8768: extern __inline __attribute__ ((__gnu_inline__)) void * 8768: bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, 8768: __compar_fn_t __compar) 8768: { 8768: size_t __l, __u, __idx; 8768: const void *__p; 8768: int __comparison; 8768: 8768: __l = 0; 8768: __u = __nmemb; 8768: while (__l < __u) 8768: { 8768: __idx = (__l + __u) / 2; 8768: __p = (void *) (((const char *) __base) + (__idx * __size)); 8768: __comparison = (*__compar) (__key, __p); 8768: if (__comparison < 0) 8768: __u = __idx; 8768: else if (__comparison > 0) 8768: __l = __idx + 1; 8768: else 8768: return (void *) __p; 8768: } 8768: 8768: return __null; 8768: } 8768: # 708 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: 8768: 8768: extern void qsort (void *__base, size_t __nmemb, size_t __size, 8768: __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 8768: 8768: extern void qsort_r (void *__base, size_t __nmemb, size_t __size, 8768: __compar_d_fn_t __compar, void *__arg) 8768: __attribute__ ((__nonnull__ (1, 4))); 8768: 8768: 8768: 8768: 8768: extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8768: extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: __extension__ extern long long int llabs (long long int __x) 8768: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern div_t div (int __numer, int __denom) 8768: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8768: extern ldiv_t ldiv (long int __numer, long int __denom) 8768: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: __extension__ extern lldiv_t lldiv (long long int __numer, 8768: long long int __denom) 8768: throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); 8768: # 754 "/usr/include/stdlib.h" 3 4 8768: extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, 8768: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, 8768: int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern char *gcvt (double __value, int __ndigit, char *__buf) 8768: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern char *qecvt (long double __value, int __ndigit, 8768: int *__restrict __decpt, int *__restrict __sign) 8768: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8768: extern char *qfcvt (long double __value, int __ndigit, 8768: int *__restrict __decpt, int *__restrict __sign) 8768: throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); 8768: extern char *qgcvt (long double __value, int __ndigit, char *__buf) 8768: throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, 8768: int *__restrict __sign, char *__restrict __buf, 8768: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8768: extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, 8768: int *__restrict __sign, char *__restrict __buf, 8768: size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8768: 8768: extern int qecvt_r (long double __value, int __ndigit, 8768: int *__restrict __decpt, int *__restrict __sign, 8768: char *__restrict __buf, size_t __len) 8768: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8768: extern int qfcvt_r (long double __value, int __ndigit, 8768: int *__restrict __decpt, int *__restrict __sign, 8768: char *__restrict __buf, size_t __len) 8768: throw () __attribute__ ((__nonnull__ (3, 4, 5))); 8768: 8768: 8768: 8768: 8768: 8768: extern int mblen (const char *__s, size_t __n) throw (); 8768: 8768: 8768: extern int mbtowc (wchar_t *__restrict __pwc, 8768: const char *__restrict __s, size_t __n) throw (); 8768: 8768: 8768: extern int wctomb (char *__s, wchar_t __wchar) throw (); 8768: 8768: 8768: 8768: extern size_t mbstowcs (wchar_t *__restrict __pwcs, 8768: const char *__restrict __s, size_t __n) throw (); 8768: 8768: extern size_t wcstombs (char *__restrict __s, 8768: const wchar_t *__restrict __pwcs, size_t __n) 8768: throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 8768: # 839 "/usr/include/stdlib.h" 3 4 8768: extern int getsubopt (char **__restrict __optionp, 8768: char *const *__restrict __tokens, 8768: char **__restrict __valuep) 8768: throw () __attribute__ ((__nonnull__ (1, 2,dMelilla = 250, 8737: IsleOfMan = 251, 8737: Jersey = 252, 8737: TristanDaCunha = 253, 8737: SouthSudan = 254, 8737: Bonaire = 255, 8737: SintMaarten = 256, 8737: Kosovo = 257, 8737: EuropeanUnion = 258, 8737: OutlyingOceania = 259, 8737: 8737: Tokelau = TokelauCountry, 8737: Tuvalu = TuvaluCountry, 8737: DemocraticRepublicOfCongo = CongoKinshasa, 8737: PeoplesRepublicOfCongo = CongoBrazzaville, 8737: DemocraticRepublicOfKorea = NorthKorea, 8737: RepublicOfKorea = SouthKorea, 8737: RussianFederation = Russia, 8737: SyrianArabRepublic = Syria, 8737: 8737: LastCountry = OutlyingOceania 8737: }; 8737: 8737: 8737: friend constexpr const QMetaObject *qt_getEnumMetaObject(Language) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Language) noexcept { return "Language"; } 8737: friend constexpr const QMetaObject *qt_getEnumMetaObject(Country) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Country) noexcept { return "Country"; } 8737: friend constexpr const QMetaObject *qt_getEnumMetaObject(Script) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Script) noexcept { return "Script"; } 8737: 8737: enum MeasurementSystem { 8737: MetricSystem, 8737: ImperialUSSystem, 8737: ImperialUKSystem, 8737: ImperialSystem = ImperialUSSystem 8737: }; 8737: friend constexpr const QMetaObject *qt_getEnumMetaObject(MeasurementSystem) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(MeasurementSystem) noexcept { return "MeasurementSystem"; } 8737: 8737: enum FormatType { LongFormat, ShortFormat, NarrowFormat }; 8737: enum NumberOption { 8737: DefaultNumberOptions = 0x0, 8737: OmitGroupSeparator = 0x01, 8737: RejectGroupSeparator = 0x02, 8737: OmitLeadingZeroInExponent = 0x04, 8737: RejectLeadingZeroInExponent = 0x08, 8737: IncludeTrailingZeroesAfterDot = 0x10, 8737: RejectTrailingZeroesAfterDot = 0x20 8737: }; 8737: typedef QFlags NumberOptions; 8737: 8737: enum FloatingPointPrecisionOption { 8737: FloatingPointShortest = -128 8737: }; 8737: 8737: enum CurrencySymbolFormat { 8737: CurrencyIsoCode, 8737: CurrencySymbol, 8737: CurrencyDisplayName 8737: }; 8737: 8737: QLocale(); 8737: QLocale(const QString &name); 8737: QLocale(Language language, Country country = AnyCountry); 8737: QLocale(Language language, Script script, Country country); 8737: QLocale(const QLocale &other); 8737: 8737: QLocale &operator=(QLocale &&other) noexcept { swap(other); return *this; } 8737: 8737: QLocale &operator=(const QLocale &other); 8737: ~QLocale(); 8737: 8737: void swap(QLocale &other) noexcept { qSwap(d, other.d); } 8737: 8737: Language language() const; 8737: Script script() const; 8737: Country country() const; 8737: QString name() const; 8737: 8737: QString bcp47Name() const; 8737: QString nativeLanguageName() const; 8737: QString nativeCountryName() const; 8737: 8737: short toShort(const QString &s, bool *ok = nullptr) const; 8737: ushort toUShort(const QString &s, bool *ok = nullptr) const; 8737: int toInt(const QString &s, bool *ok = nullptr) const; 8737: uint toUInt(const QString &s, bool *ok = nullptr) const; 8737: qlonglong toLongLong(const QString &s, bool *ok = nullptr) const; 8737: qulonglong toULongLong(const QString &s, bool *ok = nullptr) const; 8737: float toFloat(const QString &s, bool *ok = nullptr) const; 8737: double toDouble(const QString &s, bool *ok = nullptr) const; 8737: 8737: short toShort(const QStringRef &s, bool *ok = nullptr) const; 8737: ushort toUShort(const QStringRef &s, bool *ok = nullptr) const; 8737: int toInt(const QStringRef &s, bool *ok = nullptr) const; 8737: uint toUInt(const QStringRef &s, bool *ok = nullptr) const; 8737: qlonglong toLongLong(const QStringRef &s, bool *ok = nullptr) const; 8737: qulonglong toULongLong(const QStringRef &s, bool *ok = nullptr) const; 8737: float toFloat(const QStringRef &s, bool *ok = nullptr) const; 8737: double toDouble(const QStringRef &s, bool *ok = nullptr) const; 8737: 8737: QString toString(qlonglong i) const; 8737: QString toString(qulonglong i) const; 8737: inline QString toString(short i) const; 8737: inline QString toString(ushort i) const; 8737: inline QString toString(int i) const; 8737: inline QString toString(uint i) const; 8737: QString toString(double i, char f = 'g', int prec = 6) const; 8737: inline QString toString(float i, char f = 'g', int prec = 6) const; 8737: QString toString(const QDate &date, const QString &formatStr) const; 8737: QString toString(const QDate &date, FormatType format = LongFormat) const; 8737: QString toString(const QTime &time, const QString &formatStr) const; 8737: QString toString(const QTime &time, FormatType format = LongFormat) const; 8737: QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; 8737: QString toString(const QDateTime &dateTime, const QString &format) const; 8737: 8737: QString dateFormat(FormatType format = LongFormat) const; 8737: QString timeFormat(FormatType format = LongFormat) const; 8737: QString dateTimeFormat(FormatType format = LongFormat) const; 8737: 8737: QDate toDate(const QString &string, FormatType = LongFormat) const; 8737: QTime toTime(const QString &string, FormatType = LongFormat) const; 8737: QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; 8737: QDate toDate(const QString &string, const QString &format) const; 8737: QTime toTime(const QString &string, const QString &format) const; 8737: QDateTime toDateTime(const QString &string, const QString &format) const; 8737: 8737: 8737: 8737: 8737: QChar decimalPoint() const; 8737: QChar groupSeparator() const; 8737: QChar percent() const; 8737: QChar zeroDigit() const; 8737: QChar negativeSign() const; 8737: QChar positiveSign() const; 8737: QChar exponential() const; 8737: 8737: QString monthName(int, FormatType format = LongFormat) const; 8737: QString standaloneMonthName(int, FormatType format = LongFormat) const; 8737: QString dayName(int, FormatType format = LongFormat) const; 8737: QString standaloneDayName(int, FormatType format = LongFormat) const; 8737: 8737: Qt::DayOfWeek firstDayOfWeek() const; 8737: QList weekdays() const; 8737: 8737: QString amText() const; 8737: QString pmText() const; 8737: 8737: MeasurementSystem measurementSystem() const; 8737: 8737: Qt::LayoutDirection textDirection() const; 8737: 8737: QString toUpper(const QString &str) const; 8737: QString toLower(const QString &str) const; 8737: 8737: QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; 8737: QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; 8737: QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; 8737: inline QString toCurrencyString(short, const QString &symbol = QString()) const; 8737: inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; 8737: inline QString toCurrencyString(int, const QString &symbol = QString()) const; 8737: inline QString toCurrencyString(uint, const QString &symbol = QString()) const; 8737: 8737: 8737: 8737: 8737: 8737: QString toCurrencyString(double, const QString &symbol = QString()) const; 8737: QString toCurrencyString(double, const QString &symbol, int precision) const; 8737: inline QString toCurrencyString(float i, const QString &symbol = QString()) const 8737: { return toCurrencyString(double(i), symbol); } 8737: inline QString toCurrencyString(float i, const QString &symbol, int precision) const 8737: { return toCurrencyString(double(i), symbol, precision); } 8737: 8737: 8737: QStringList uiLanguages() const; 8737: 8737: bool operator==(const QLocale &other) const; 8737: bool operator!=(const QLocale &other) const; 8737: 8737: static QString languageToString(Language language); 8737: static QString countryToString(Country country); 8737: static QString scriptToString(Script script); 8737: static void setDefault(const QLocale &locale); 8737: 8737: static QLocale c() { return QLocale(C); } 8737: static QLocale system(); 8737: 8737: static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); 8737: static QList countriesForLanguage(Language lang); 8737: 8737: void setNumberOptions(NumberOptions options); 8737: NumberOptions numberOptions() const; 8737: 8737: enum QuotationStyle { StandardQuotation, AlternateQuotation }; 8737: QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; 8737: QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; 8737: 8737: QString createSeparatedList(const QStringList &strl) const; 8737: 8737: private: 8737: QLocale(QLocalePrivate &dd); 8737: friend class QLocalePrivate; 8737: friend __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed) noexcept; 8737: 8737: QSharedDataPointer d; 8737: }; 8737: 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); } 8737: 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); } 8737: 8737: inline QString QLocale::toString(short i) const 8737: { return toString(qlonglong(i)); } 8737: inline QString QLocale::toString(ushort i) const 8737: { return toString(qulonglong(i)); } 8737: inline QString QLocale::toString(int i) const 8737: { return toString(qlonglong(i)); } 8737: inline QString QLocale::toString(uint i) const 8737: { return toString(qulonglong(i)); } 8737: inline QString QLocale::toString(float i, char f, int prec) const 8737: { return toString(double(i), f, prec); } 8737: 8737: inline QString QLocale::toCurrencyString(short i, const QString &symbol) const 8737: { return toCurrencyString(qlonglong(i), symbol); } 8737: inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const 8737: { return toCurrencyString(qulonglong(i), symbol); } 8737: inline QString QLocale::toCurrencyString(int i, const QString &symbol) const 8737: { return toCurrencyString(qlonglong(i), symbol); } 8737: inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const 8737: { return toCurrencyString(qulonglong(i), symbol); } 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QLocale &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QLocale &); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QLocale &); 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLocale" 2 3 4 8737: # 27 "/<>/templates/lib/abstractlocalizer.h" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 1 3 4 8737: # 63 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8737: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 90 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8737: template class QWeakPointer; 8737: template class QSharedPointer; 8737: template class QEnableSharedFromThis; 8737: 8737: class QVariant; 8737: 8737: template 8737: QSharedPointer qSharedPointerCast(const QSharedPointer &ptr); 8737: template 8737: QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &ptr); 8737: template 8737: QSharedPointer qSharedPointerConstCast(const QSharedPointer &ptr); 8737: 8737: 8737: template 8737: QSharedPointer qSharedPointerObjectCast(const QSharedPointer &ptr); 8737: 8737: 8737: namespace QtSharedPointer { 8737: template class ExternalRefCount; 8737: 8737: template QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); 8737: 8737: 8737: __attribute__((visibility("default"))) void internalSafetyCheckAdd(const void *, const volatile void *); 8737: __attribute__((visibility("default"))) void internalSafetyCheckRemove(const void *); 8737: 8737: template 8737: inline void executeDeleter(T *t, RetVal (Klass:: *memberDeleter)()) 8737: { (t->*memberDeleter)(); } 8737: template 8737: inline void executeDeleter(T *t, Deleter d) 8737: { d(t); } 8737: struct NormalDeleter {}; 8737: 8737: 8737: template struct RemovePointer; 8737: template struct RemovePointer { typedef T Type; }; 8737: template struct RemovePointer > { typedef T Type; }; 8737: template struct RemovePointer > { typedef T Type; }; 8737: # 141 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8737: struct ExternalRefCountData 8737: { 8737: typedef void (*DestroyerFn)(ExternalRefCountData *); 8737: QBasicAtomicInt weakref; 8737: QBasicAtomicInt strongref; 8737: DestroyerFn destroyer; 8737: 8737: inline ExternalRefCountData(DestroyerFn d) 8737: : destroyer(d) 8737: { 8737: strongref.store(1); 8737: weakref.store(1); 8737: } 8737: inline ExternalRefCountData(Qt::Initialization) { } 8737: ~ExternalRefCountData() { do { } while ((false) && (!weakref.load())); do { } while ((false) && (strongref.load() <= 0)); } 8737: 8737: void destroy() { destroyer(this); } 8737: 8737: 8737: __attribute__((visibility("default"))) static ExternalRefCountData *getAndRef(const QObject *); 8737: __attribute__((visibility("default"))) void setQObjectShared(const QObject *, bool enable); 8737: __attribute__((visibility("default"))) void checkQObjectShared(const QObject *); 8737: 8737: inline void checkQObjectShared(...) { } 8737: inline void setQObjectShared(...) { } 8737: 87 3))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int grantpt (int __fd) throw (); 8768: 8768: 8768: 8768: extern int unlockpt (int __fd) throw (); 8768: 8768: 8768: 8768: 8768: extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int ptsname_r (int __fd, char *__buf, size_t __buflen) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: extern int getpt (void); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int getloadavg (double __loadavg[], int __nelem) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: # 901 "/usr/include/stdlib.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 8768: # 24 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 3 4 8768: extern __inline __attribute__ ((__gnu_inline__)) double 8768: __attribute__ ((__leaf__)) atof (const char *__nptr) throw () 8768: { 8768: return strtod (__nptr, (char **) __null); 8768: } 8768: # 902 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 1 3 4 8768: # 23 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 3 4 8768: extern char *__realpath_chk (const char *__restrict __name, 8768: char *__restrict __resolved, 8768: size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); 8768: extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) 8768: __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8768: __attribute__ ((__leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) throw () 8768: { 8768: if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) 8768: { 8768: 8768: 8768: 8768: 8768: return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); 8768: } 8768: 8768: return __realpath_alias (__name, __resolved); 8768: } 8768: 8768: 8768: extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, 8768: size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); 8768: extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") 8768: 8768: __attribute__ ((__nonnull__ (2))); 8768: extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") 8768: 8768: 8768: __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) throw () 8768: { 8768: if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__buflen)) 8768: return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8768: if (__buflen > __builtin_object_size (__buf, 2 > 1)) 8768: return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); 8768: } 8768: return __ptsname_r_alias (__fd, __buf, __buflen); 8768: } 8768: 8768: 8768: extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) 8768: throw () __attribute__ ((__warn_unused_result__)); 8768: extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") 8768: __attribute__ ((__warn_unused_result__)); 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int 8768: __attribute__ ((__leaf__)) wctomb (char *__s, wchar_t __wchar) throw () 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8768: return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); 8768: return __wctomb_alias (__s, __wchar); 8768: } 8768: 8768: 8768: extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, 8768: const char *__restrict __src, 8768: size_t __len, size_t __dstlen) throw (); 8768: extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs") 8768: 8768: 8768: ; 8768: extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") 8768: 8768: 8768: 8768: __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8768: __attribute__ ((__leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__len)) 8768: return __mbstowcs_chk (__dst, __src, __len, 8768: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8768: 8768: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8768: return __mbstowcs_chk_warn (__dst, __src, __len, 8768: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8768: } 8768: return __mbstowcs_alias (__dst, __src, __len); 8768: } 8768: 8768: 8768: extern size_t __wcstombs_chk (char *__restrict __dst, 8768: const wchar_t *__restrict __src, 8768: size_t __len, size_t __dstlen) throw (); 8768: extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs") 8768: 8768: 8768: ; 8768: extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8768: __attribute__ ((__leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__len)) 8768: return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8768: if (__len > __builtin_object_size (__dst, 2 > 1)) 8768: return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); 8768: } 8768: return __wcstombs_alias (__dst, __src, __len); 8768: } 8768: # 906 "/usr/include/stdlib.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: } 8768: # 76 "/usr/include/c++37: inline void operator delete(void *ptr) { ::operator delete(ptr); } 8737: inline void operator delete(void *, void *) { } 8737: }; 8737: 8737: 8737: template 8737: struct CustomDeleter 8737: { 8737: Deleter deleter; 8737: T *ptr; 8737: 8737: CustomDeleter(T *p, Deleter d) : deleter(d), ptr(p) {} 8737: void execute() { executeDeleter(ptr, deleter); } 8737: }; 8737: # 189 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8737: template 8737: struct CustomDeleter 8737: { 8737: T *ptr; 8737: 8737: CustomDeleter(T *p, NormalDeleter) : ptr(p) {} 8737: void execute() { delete ptr; } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct ExternalRefCountWithCustomDeleter: public ExternalRefCountData 8737: { 8737: typedef ExternalRefCountWithCustomDeleter Self; 8737: typedef ExternalRefCountData BaseClass; 8737: CustomDeleter extra; 8737: 8737: static inline void deleter(ExternalRefCountData *self) 8737: { 8737: Self *realself = static_cast(self); 8737: realself->extra.execute(); 8737: 8737: 8737: realself->extra.~CustomDeleter(); 8737: } 8737: static void safetyCheckDeleter(ExternalRefCountData *self) 8737: { 8737: internalSafetyCheckRemove(self); 8737: deleter(self); 8737: } 8737: 8737: static inline Self *create(T *ptr, Deleter userDeleter, DestroyerFn actualDeleter) 8737: { 8737: Self *d = static_cast(::operator new(sizeof(Self))); 8737: 8737: 8737: new (&d->extra) CustomDeleter(ptr, userDeleter); 8737: new (d) BaseClass(actualDeleter); 8737: 8737: return d; 8737: } 8737: private: 8737: 8737: ExternalRefCountWithCustomDeleter() = delete; 8737: ~ExternalRefCountWithCustomDeleter() = delete; 8737: ExternalRefCountWithCustomDeleter(const ExternalRefCountWithCustomDeleter &) = delete; ExternalRefCountWithCustomDeleter &operator=(const ExternalRefCountWithCustomDeleter &) = delete; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct ExternalRefCountWithContiguousData: public ExternalRefCountData 8737: { 8737: typedef ExternalRefCountData Parent; 8737: T data; 8737: 8737: static void deleter(ExternalRefCountData *self) 8737: { 8737: ExternalRefCountWithContiguousData *that = 8737: static_cast(self); 8737: that->data.~T(); 8737: (void)that;; 8737: } 8737: static void safetyCheckDeleter(ExternalRefCountData *self) 8737: { 8737: internalSafetyCheckRemove(self); 8737: deleter(self); 8737: } 8737: static void noDeleter(ExternalRefCountData *) { } 8737: 8737: static inline ExternalRefCountData *create(T **ptr, DestroyerFn destroy) 8737: { 8737: ExternalRefCountWithContiguousData *d = 8737: static_cast(::operator new(sizeof(ExternalRefCountWithContiguousData))); 8737: 8737: 8737: 8737: new (d) Parent(destroy); 8737: 8737: *ptr = &d->data; 8737: return d; 8737: } 8737: 8737: private: 8737: 8737: ExternalRefCountWithContiguousData() = delete; 8737: ~ExternalRefCountWithContiguousData() = delete; 8737: ExternalRefCountWithContiguousData(const ExternalRefCountWithContiguousData &) = delete; ExternalRefCountWithContiguousData &operator=(const ExternalRefCountWithContiguousData &) = delete; 8737: }; 8737: 8737: 8737: __attribute__((visibility("default"))) QWeakPointer weakPointerFromVariant_internal(const QVariant &variant); 8737: __attribute__((visibility("default"))) QSharedPointer sharedPointerFromVariant_internal(const QVariant &variant); 8737: 8737: } 8737: 8737: template class QSharedPointer 8737: { 8737: typedef T *QSharedPointer:: *RestrictedBool; 8737: typedef QtSharedPointer::ExternalRefCountData Data; 8737: public: 8737: typedef T Type; 8737: typedef T element_type; 8737: typedef T value_type; 8737: typedef value_type *pointer; 8737: typedef const value_type *const_pointer; 8737: typedef value_type &reference; 8737: typedef const value_type &const_reference; 8737: typedef qptrdiff difference_type; 8737: 8737: T *data() const noexcept { return value; } 8737: bool isNull() const noexcept { return !data(); } 8737: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QSharedPointer::value; } 8737: bool operator !() const noexcept { return isNull(); } 8737: T &operator*() const { return *data(); } 8737: T *operator->() const noexcept { return data(); } 8737: 8737: constexpr QSharedPointer() noexcept : value(nullptr), d(nullptr) { } 8737: ~QSharedPointer() { deref(); } 8737: 8737: constexpr QSharedPointer(std::nullptr_t) noexcept : value(nullptr), d(nullptr) { } 8737: 8737: template 8737: inline explicit QSharedPointer(X *ptr) : value(ptr) 8737: { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); } 8737: 8737: template 8737: inline QSharedPointer(X *ptr, Deleter deleter) : value(ptr) 8737: { internalConstruct(ptr, deleter); } 8737: 8737: template 8737: QSharedPointer(std::nullptr_t, Deleter) : value(nullptr), d(nullptr) { } 8737: 8737: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8737: { if (d) ref(); } 8737: QSharedPointer &operator=(const QSharedPointer &other) noexcept 8737: { 8737: QSharedPointer copy(other); 8737: swap(copy); 8737: return *this; 8737: } 8737: 8737: QSharedPointer(QSharedPointer &&other) noexcept 8737: : value(other.value), d(other.d) 8737: { 8737: other.d = nullptr; 8737: other.value = nullptr; 8737: } 8737: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8737: { 8737: QSharedPointer moved(std::move(other)); 8737: swap(moved); 8737: return *this; 8737: } 8737: 8737: template 8737: QSharedPointer(QSharedPointer &&other) noexcept 8737: : value(other.value), d(other.d) 8737: { 8737: other.d = nullptr; 8737: other.value = nullptr; 8737: } 8737: 8737: template 8737: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8737: { 8737: QSharedPointer moved(std::move(other)); 8737: swap(moved); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: template 8737: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8737: { if (d) ref(); } 8737: 8737: template 8737: inline QSharedPointer &operator=(const QSharedPointer &other) 8737: { 8737: QSharedPointer copy(other); 8737: swap(copy); 8737: return *this; 8737: } 8737: 8737: template 8737: inline QSharedPointer(const QWeakPointer &other) : value(nullptr), d(nullptr) 8737: { *this = other; } 8737: 8737: template 8737: inline QSharedPointer &operator=(const QWeakPointer &other) 8737: { internalSet(other.d, other.value); return *this; } 8737: 8737: inline void swap(QSharedPointer &other) 8737: { this->internalSwap(other); } 8737: 8737: inline void reset() { clear(); } 8737: inline void reset(T *t) 8737: { QSharedPointer copy(t); swap(copy); } 8737: template 8737: inline void reset(T *t, Deleter deleter) 8737: { QSharedPointer copy(t, delete/8/cstdlib" 2 3 8768: 8768: # 1 "/usr/include/c++/8/bits/std_abs.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/std_abs.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/std_abs.h" 3 8768: # 46 "/usr/include/c++/8/bits/std_abs.h" 3 8768: extern "C++" 8768: { 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: using ::abs; 8768: 8768: 8768: inline long 8768: abs(long __i) { return __builtin_labs(__i); } 8768: 8768: 8768: 8768: inline long long 8768: abs(long long __x) { return __builtin_llabs (__x); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline constexpr double 8768: abs(double __x) 8768: { return __builtin_fabs(__x); } 8768: 8768: inline constexpr float 8768: abs(float __x) 8768: { return __builtin_fabsf(__x); } 8768: 8768: inline constexpr long double 8768: abs(long double __x) 8768: { return __builtin_fabsl(__x); } 8768: 8768: 8768: 8768: inline constexpr __int128 8768: abs(__int128 __x) { return __x >= 0 ? __x : -__x; } 8768: # 100 "/usr/include/c++/8/bits/std_abs.h" 3 8768: inline constexpr 8768: __float128 8768: abs(__float128 __x) 8768: { return __x < 0 ? -__x : __x; } 8768: 8768: 8768: 8768: } 8768: } 8768: # 78 "/usr/include/c++/8/cstdlib" 2 3 8768: # 118 "/usr/include/c++/8/cstdlib" 3 8768: extern "C++" 8768: { 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: using ::div_t; 8768: using ::ldiv_t; 8768: 8768: using ::abort; 8768: using ::atexit; 8768: 8768: 8768: using ::at_quick_exit; 8768: 8768: 8768: using ::atof; 8768: using ::atoi; 8768: using ::atol; 8768: using ::bsearch; 8768: using ::calloc; 8768: using ::div; 8768: using ::exit; 8768: using ::free; 8768: using ::getenv; 8768: using ::labs; 8768: using ::ldiv; 8768: using ::malloc; 8768: 8768: using ::mblen; 8768: using ::mbstowcs; 8768: using ::mbtowc; 8768: 8768: using ::qsort; 8768: 8768: 8768: using ::quick_exit; 8768: 8768: 8768: using ::rand; 8768: using ::realloc; 8768: using ::srand; 8768: using ::strtod; 8768: using ::strtol; 8768: using ::strtoul; 8768: using ::system; 8768: 8768: using ::wcstombs; 8768: using ::wctomb; 8768: 8768: 8768: 8768: inline ldiv_t 8768: div(long __i, long __j) { return ldiv(__i, __j); } 8768: 8768: 8768: 8768: 8768: } 8768: # 189 "/usr/include/c++/8/cstdlib" 3 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: using ::lldiv_t; 8768: 8768: 8768: 8768: 8768: 8768: using ::_Exit; 8768: 8768: 8768: 8768: using ::llabs; 8768: 8768: inline lldiv_t 8768: div(long long __n, long long __d) 8768: { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } 8768: 8768: using ::lldiv; 8768: # 221 "/usr/include/c++/8/cstdlib" 3 8768: using ::atoll; 8768: using ::strtoll; 8768: using ::strtoull; 8768: 8768: using ::strtof; 8768: using ::strtold; 8768: 8768: 8768: } 8768: 8768: namespace std 8768: { 8768: 8768: using ::__gnu_cxx::lldiv_t; 8768: 8768: using ::__gnu_cxx::_Exit; 8768: 8768: using ::__gnu_cxx::llabs; 8768: using ::__gnu_cxx::div; 8768: using ::__gnu_cxx::lldiv; 8768: 8768: using ::__gnu_cxx::atoll; 8768: using ::__gnu_cxx::strtof; 8768: using ::__gnu_cxx::strtoll; 8768: using ::__gnu_cxx::strtoull; 8768: using ::__gnu_cxx::strtold; 8768: } 8768: 8768: 8768: 8768: } 8768: # 60 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/algorithmfwd.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: # 42 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 195 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: template 8768: bool 8768: all_of(_IIter, _IIter, _Predicate); 8768: 8768: template 8768: bool 8768: any_of(_IIter, _IIter, _Predicate); 8768: 8768: 8768: template 8768: bool 8768: binary_search(_FIter, _FIter, const _Tp&); 8768: 8768: template 8768: bool 8768: binary_search(_FIter, _FIter, const _Tp&, _Compare); 8768: # 224 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: template 8768: _OIter 8768: copy(_IIter, _IIter, _OIter); 8768: 8768: template 8768: _BIter2 8768: copy_backward(_BIter1, _BIter1, _BIter2); 8768: 8768: 8768: template 8768: _OIter 8768: copy_if(_IIter, _IIter, _OIter, _Predicate); 8768: 8768: template 8768: _OIter 8768: copy_n(_IIter, _Size, _OIter); 8768: 8768: 8768: 8768: 8768: 8768: template 8768: pair<_FIter, _FIter> 8768: equal_range(_FIter, _FIter, const _Tp&); 8768: 8768: template 8768: pair<_FIter, _FIter> 8768: equal_range(_FIter, _FIter, const _Tp&, _Compare); 8768: 8768: template 8768: void 8768: fill(_FIter, _FIter, const _Tp&); 8768: 8768: template 8768: _OIter 8768: fill_n(_OIter, _Size, const _Tp&); 8768: 8768: 8768: 8768: template 8768: _FIter1 8768: find_end(_FIter1, _FIter1, _FIter2, _FIter2); 8768: 8768: template 8768: _FIter1 8768: find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _IIter 8768: find_if_not(_IIter, _IIter, _Predicate); 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: bool 8768: includes(_IIter1, _IIter1, _IIter2, _IIter2); 8768: 8768: template 8768: bool 8768: includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8768: 8768: template 8768: void 8768: inplace_merge(_BIter, _BIter, _BIter); 8768: 8768: template 8768: void 8768: inplace_merge(_BIter, _BIter, _BIter, _Compare); 8768: 8768: 8768: template 8768: bool 8768: is_heap(_RAIter, _RAIter); 8768: 8768: template 8768: bool 8768: is_heap(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: _RAIter 8768: is_heap_until(_RAIter, _RAIter); 8768: 8768: template 8768: _RAIter 8768: is_heap_until(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: bool 8768: is_partitioned(_IIter, _IIter, _Predicate); 8768: 8768: template 8768: bool 8768: is_permutation(_FIter1, _FIter1, _FIter2); 8768: 8768: template 8768: bool 8768: is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate); 8768: 8768: template 8768: bool 8768: is_sorted(_FIter, _FIter); 8768: 8768: template 8768: bool 8768: is_sorted(_FIter, _FIter, _Compare); 8768: 8768: template 8768: _FIter 8768: is_sorted_until(_FIter, _FIter); 8768: 8768: template 8768: _FIter 8768: is_sorted_until(_FIter, _FIter, _Compare); 8768: 8768: 8768: template 8768: void 8768: iter_swap(_FIter1, _FIter2); 8768: 8768: template 8768: _FIter 8768: r); swap(copy); } 8737: 8737: template 8737: QSharedPointer staticCast() const 8737: { 8737: return qSharedPointerCast(*this); 8737: } 8737: 8737: template 8737: QSharedPointer dynamicCast() const 8737: { 8737: return qSharedPointerDynamicCast(*this); 8737: } 8737: 8737: template 8737: QSharedPointer constCast() const 8737: { 8737: return qSharedPointerConstCast(*this); 8737: } 8737: 8737: 8737: template 8737: QSharedPointer objectCast() const 8737: { 8737: return qSharedPointerObjectCast(*this); 8737: } 8737: 8737: 8737: inline void clear() { QSharedPointer copy; swap(copy); } 8737: 8737: QWeakPointer toWeakRef() const; 8737: 8737: template 8737: static QSharedPointer create(Args && ...arguments) 8737: { 8737: typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; 8737: 8737: 8737: 8737: typename Private::DestroyerFn destroy = &Private::deleter; 8737: 8737: typename Private::DestroyerFn noDestroy = &Private::noDeleter; 8737: QSharedPointer result(Qt::Uninitialized); 8737: result.d = Private::create(&result.value, noDestroy); 8737: 8737: 8737: new (result.data()) T(std::forward(arguments)...); 8737: result.d->destroyer = destroy; 8737: result.d->setQObjectShared(result.value, true); 8737: 8737: 8737: 8737: result.enableSharedFromThis(result.data()); 8737: return result; 8737: } 8737: 8737: private: 8737: explicit QSharedPointer(Qt::Initialization) {} 8737: 8737: void deref() noexcept 8737: { deref(d); } 8737: static void deref(Data *dd) noexcept 8737: { 8737: if (!dd) return; 8737: if (!dd->strongref.deref()) { 8737: dd->destroy(); 8737: } 8737: if (!dd->weakref.deref()) 8737: delete dd; 8737: } 8737: 8737: template 8737: inline void enableSharedFromThis(const QEnableSharedFromThis *ptr) 8737: { 8737: ptr->initializeFromSharedPointer(constCast::type>()); 8737: } 8737: 8737: inline void enableSharedFromThis(...) {} 8737: 8737: template 8737: inline void internalConstruct(X *ptr, Deleter deleter) 8737: { 8737: if (!ptr) { 8737: d = nullptr; 8737: return; 8737: } 8737: 8737: typedef QtSharedPointer::ExternalRefCountWithCustomDeleter Private; 8737: 8737: 8737: 8737: typename Private::DestroyerFn actualDeleter = &Private::deleter; 8737: 8737: d = Private::create(ptr, deleter, actualDeleter); 8737: 8737: 8737: 8737: 8737: d->setQObjectShared(ptr, true); 8737: enableSharedFromThis(ptr); 8737: } 8737: 8737: void internalSwap(QSharedPointer &other) noexcept 8737: { 8737: qSwap(d, other.d); 8737: qSwap(this->value, other.value); 8737: } 8737: 8737: 8737: 8737: 8737: template friend class QSharedPointer; 8737: template friend class QWeakPointer; 8737: template friend QSharedPointer QtSharedPointer::copyAndSetPointer(X * ptr, const QSharedPointer &src); 8737: 8737: void ref() const noexcept { d->weakref.ref(); d->strongref.ref(); } 8737: 8737: inline void internalSet(Data *o, T *actual) 8737: { 8737: if (o) { 8737: 8737: 8737: int tmp = o->strongref.load(); 8737: while (tmp > 0) { 8737: 8737: if (o->strongref.testAndSetRelaxed(tmp, tmp + 1)) 8737: break; 8737: tmp = o->strongref.load(); 8737: } 8737: 8737: if (tmp > 0) { 8737: o->weakref.ref(); 8737: } else { 8737: o->checkQObjectShared(actual); 8737: o = nullptr; 8737: } 8737: } 8737: 8737: qSwap(d, o); 8737: qSwap(this->value, actual); 8737: if (!d || d->strongref.load() == 0) 8737: this->value = nullptr; 8737: 8737: 8737: deref(o); 8737: } 8737: 8737: Type *value; 8737: Data *d; 8737: }; 8737: 8737: template 8737: class QWeakPointer 8737: { 8737: typedef T *QWeakPointer:: *RestrictedBool; 8737: typedef QtSharedPointer::ExternalRefCountData Data; 8737: 8737: public: 8737: typedef T element_type; 8737: typedef T value_type; 8737: typedef value_type *pointer; 8737: typedef const value_type *const_pointer; 8737: typedef value_type &reference; 8737: typedef const value_type &const_reference; 8737: typedef qptrdiff difference_type; 8737: 8737: bool isNull() const noexcept { return d == nullptr || d->strongref.load() == 0 || value == nullptr; } 8737: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QWeakPointer::value; } 8737: bool operator !() const noexcept { return isNull(); } 8737: T *data() const noexcept { return d == nullptr || d->strongref.load() == 0 ? nullptr : value; } 8737: 8737: inline QWeakPointer() noexcept : d(nullptr), value(nullptr) { } 8737: inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } 8737: # 585 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8737: QWeakPointer(const QWeakPointer &other) noexcept : d(other.d), value(other.value) 8737: { if (d) d->weakref.ref(); } 8737: 8737: QWeakPointer(QWeakPointer &&other) noexcept 8737: : d(other.d), value(other.value) 8737: { 8737: other.d = nullptr; 8737: other.value = nullptr; 8737: } 8737: QWeakPointer &operator=(QWeakPointer &&other) noexcept 8737: { QWeakPointer moved(std::move(other)); swap(moved); return *this; } 8737: 8737: QWeakPointer &operator=(const QWeakPointer &other) noexcept 8737: { 8737: QWeakPointer copy(other); 8737: swap(copy); 8737: return *this; 8737: } 8737: 8737: void swap(QWeakPointer &other) noexcept 8737: { 8737: qSwap(this->d, other.d); 8737: qSwap(this->value, other.value); 8737: } 8737: 8737: inline QWeakPointer(const QSharedPointer &o) : d(o.d), value(o.data()) 8737: { if (d) d->weakref.ref();} 8737: inline QWeakPointer &operator=(const QSharedPointer &o) 8737: { 8737: internalSet(o.d, o.value); 8737: return *this; 8737: } 8737: 8737: template 8737: inline QWeakPointer(const QWeakPointer &o) : d(nullptr), value(nullptr) 8737: { *this = o; } 8737: 8737: template 8737: inline QWeakPointer &operator=(const QWeakPointer &o) 8737: { 8737: 8737: 8737: *this = o.toStrongRef(); 8737: return *this; 8737: } 8737: 8737: template 8737: bool operator==(const QWeakPointer &o) const noexcept 8737: { return d == o.d && value == static_cast(o.value); } 8737: 8737: template 8737: bool operator!=(const QWeakPointer &o) const noexcept 8737: { return !(*this == o); } 8737: 8737: template 8737: inline QWeakPointer(const QSharedPointer &o) : d(nullptr), value(nullptr) 8737: { *this = o; } 8737: 8737: template 8737: inline QWeakPointer &operator=(const QSharedPointer &o) 8737: { 8737: qt_noop(); 8737: internalSet(o.d, o.data()); 8737: return *this; 8737: } 8737: 8737: template 8737: bool operator==(const QSharedPointer &o) const noexcept 8737: { return d == o.d; } 8737: 8737: template 8737: bool operator!=(const QSharedPointer &o) const noexcept 8737: { return !(*this == o); } 8737: 8737: inline void clear() { *this = QWeakPointer(); } 8737: 8737: inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } 8737: 8737: inline QSharedPointer lock() const { return lower_bound(_FIter, _FIter, const _Tp&); 8768: 8768: template 8768: _FIter 8768: lower_bound(_FIter, _FIter, const _Tp&, _Compare); 8768: 8768: template 8768: void 8768: make_heap(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: make_heap(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: 8768: const _Tp& 8768: max(const _Tp&, const _Tp&); 8768: 8768: template 8768: 8768: const _Tp& 8768: max(const _Tp&, const _Tp&, _Compare); 8768: 8768: 8768: 8768: 8768: template 8768: 8768: const _Tp& 8768: min(const _Tp&, const _Tp&); 8768: 8768: template 8768: 8768: const _Tp& 8768: min(const _Tp&, const _Tp&, _Compare); 8768: 8768: 8768: 8768: 8768: template 8768: 8768: pair 8768: minmax(const _Tp&, const _Tp&); 8768: 8768: template 8768: 8768: pair 8768: minmax(const _Tp&, const _Tp&, _Compare); 8768: 8768: template 8768: 8768: pair<_FIter, _FIter> 8768: minmax_element(_FIter, _FIter); 8768: 8768: template 8768: 8768: pair<_FIter, _FIter> 8768: minmax_element(_FIter, _FIter, _Compare); 8768: 8768: template 8768: 8768: _Tp 8768: min(initializer_list<_Tp>); 8768: 8768: template 8768: 8768: _Tp 8768: min(initializer_list<_Tp>, _Compare); 8768: 8768: template 8768: 8768: _Tp 8768: max(initializer_list<_Tp>); 8768: 8768: template 8768: 8768: _Tp 8768: max(initializer_list<_Tp>, _Compare); 8768: 8768: template 8768: 8768: pair<_Tp, _Tp> 8768: minmax(initializer_list<_Tp>); 8768: 8768: template 8768: 8768: pair<_Tp, _Tp> 8768: minmax(initializer_list<_Tp>, _Compare); 8768: 8768: 8768: 8768: 8768: template 8768: bool 8768: next_permutation(_BIter, _BIter); 8768: 8768: template 8768: bool 8768: next_permutation(_BIter, _BIter, _Compare); 8768: 8768: 8768: template 8768: bool 8768: none_of(_IIter, _IIter, _Predicate); 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _RAIter 8768: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter); 8768: 8768: template 8768: _RAIter 8768: partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare); 8768: 8768: 8768: 8768: 8768: template 8768: pair<_OIter1, _OIter2> 8768: partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate); 8768: 8768: template 8768: _FIter 8768: partition_point(_FIter, _FIter, _Predicate); 8768: 8768: 8768: template 8768: void 8768: pop_heap(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: pop_heap(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: bool 8768: prev_permutation(_BIter, _BIter); 8768: 8768: template 8768: bool 8768: prev_permutation(_BIter, _BIter, _Compare); 8768: 8768: template 8768: void 8768: push_heap(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: push_heap(_RAIter, _RAIter, _Compare); 8768: 8768: 8768: 8768: template 8768: _FIter 8768: remove(_FIter, _FIter, const _Tp&); 8768: 8768: template 8768: _FIter 8768: remove_if(_FIter, _FIter, _Predicate); 8768: 8768: template 8768: _OIter 8768: remove_copy(_IIter, _IIter, _OIter, const _Tp&); 8768: 8768: template 8768: _OIter 8768: remove_copy_if(_IIter, _IIter, _OIter, _Predicate); 8768: 8768: 8768: 8768: template 8768: _OIter 8768: replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&); 8768: 8768: template 8768: _OIter 8768: replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&); 8768: 8768: 8768: 8768: template 8768: void 8768: reverse(_BIter, _BIter); 8768: 8768: template 8768: _OIter 8768: reverse_copy(_BIter, _BIter, _OIter); 8768: 8768: inline namespace _V2 8768: { 8768: template 8768: _FIter 8768: rotate(_FIter, _FIter, _FIter); 8768: } 8768: 8768: template 8768: _OIter 8768: rotate_copy(_FIter, _FIter, _FIter, _OIter); 8768: # 565 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: template 8768: void 8768: shuffle(_RAIter, _RAIter, _UGenerator&&); 8768: 8768: 8768: template 8768: void 8768: sort_heap(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: sort_heap(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: _BIter 8768: stable_partition(_BIter, _BIter, _Predicate); 8768: # 594 "/usr/include/c++/8/bits/algorithmfwd.h" 3 8768: template 8768: _FIter2 8768: swap_ranges(_FIter1, _FIter1, _FIter2); 8768: 8768: 8768: 8768: template 8768: _FIter 8768: unique(_FIter, _FIter); 8768: 8768: template 8768: _FIter 8768: unique(_FIter, _FIter, _BinaryPredicate); 8768: 8768: 8768: 8768: template 8768: _FIter 8768: upper_bound(_FIter, _FIter, const _Tp&); 8768: 8768: template 8768: _FIter 8768: upper_bound(_FIter, _FIter, const _Tp&, _Compare); 8768: 8768: 8768: 8768: template 8768: _FIter 8768: adjacent_find(_FIter, _FIter); 8768: 8768: template 8768: _FIter 8768: adjacent_find(_FIter, _FIter, _BinaryPredicate); 8768: 8768: template 8768: typename iterator_traits<_IIter>::difference_type 8768: count(_IIter, _IIter, const _Tp&); 8768: 8768: template 8768: typename iterator_traits<_IIter>::difference_type 8768: count_if(_IIter, _IIter, _Predicate); 8768: 8768: template 8768: bool 8768: equal(_IIter1, _IIter1, _IIter2); 8768: 8768: template 8768: bool 8768: equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8768: 8768: template 8768: _IIter 8768: find(_IIter, _IIter, const _Tp&); 8768: 8768: template 8768: _FIter1 8768: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2); 8768: 8768: template 8768: _FIter1 8768: find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8768: 8768: template 8768: _IIter 8768: find_if(_IIter, _IIter, _Predicate); 8768: 8768: template 8768: _Funct 8768: toStrongRef(); } 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: 8737: 8737: 8737: 8737: template friend class QSharedPointer; 8737: template friend class QPointer; 8737: 8737: 8737: template 8737: inline QWeakPointer &assign(X *ptr) 8737: { return *this = QWeakPointer(ptr, true); } 8737: 8737: 8737: template 8737: inline QWeakPointer(X *ptr, bool) : d(ptr ? Data::getAndRef(ptr) : nullptr), value(ptr) 8737: { } 8737: 8737: 8737: inline void internalSet(Data *o, T *actual) 8737: { 8737: if (d == o) return; 8737: if (o) 8737: o->weakref.ref(); 8737: if (d && !d->weakref.deref()) 8737: delete d; 8737: d = o; 8737: value = actual; 8737: } 8737: 8737: Data *d; 8737: T *value; 8737: }; 8737: 8737: template 8737: class QEnableSharedFromThis 8737: { 8737: protected: 8737: 8737: QEnableSharedFromThis() = default; 8737: 8737: 8737: 8737: QEnableSharedFromThis(const QEnableSharedFromThis &) {} 8737: QEnableSharedFromThis &operator=(const QEnableSharedFromThis &) { return *this; } 8737: 8737: public: 8737: inline QSharedPointer sharedFromThis() { return QSharedPointer(weakPointer); } 8737: inline QSharedPointer sharedFromThis() const { return QSharedPointer(weakPointer); } 8737: 8737: 8737: private: 8737: template friend class QSharedPointer; 8737: 8737: 8737: 8737: template 8737: inline void initializeFromSharedPointer(const QSharedPointer &ptr) const 8737: { 8737: weakPointer = ptr; 8737: } 8737: 8737: mutable QWeakPointer weakPointer; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8737: { 8737: return ptr1.data() == ptr2.data(); 8737: } 8737: template 8737: bool operator!=(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8737: { 8737: return ptr1.data() != ptr2.data(); 8737: } 8737: 8737: template 8737: bool operator==(const QSharedPointer &ptr1, const X *ptr2) noexcept 8737: { 8737: return ptr1.data() == ptr2; 8737: } 8737: template 8737: bool operator==(const T *ptr1, const QSharedPointer &ptr2) noexcept 8737: { 8737: return ptr1 == ptr2.data(); 8737: } 8737: template 8737: bool operator!=(const QSharedPointer &ptr1, const X *ptr2) noexcept 8737: { 8737: return !(ptr1 == ptr2); 8737: } 8737: template 8737: bool operator!=(const T *ptr1, const QSharedPointer &ptr2) noexcept 8737: { 8737: return !(ptr2 == ptr1); 8737: } 8737: 8737: template 8737: bool operator==(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8737: { 8737: return ptr2 == ptr1; 8737: } 8737: template 8737: bool operator!=(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8737: { 8737: return ptr2 != ptr1; 8737: } 8737: 8737: template 8737: inline bool operator==(const QSharedPointer &lhs, std::nullptr_t) noexcept 8737: { 8737: return lhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator!=(const QSharedPointer &lhs, std::nullptr_t) noexcept 8737: { 8737: return !lhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator==(std::nullptr_t, const QSharedPointer &rhs) noexcept 8737: { 8737: return rhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator!=(std::nullptr_t, const QSharedPointer &rhs) noexcept 8737: { 8737: return !rhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator==(const QWeakPointer &lhs, std::nullptr_t) noexcept 8737: { 8737: return lhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator!=(const QWeakPointer &lhs, std::nullptr_t) noexcept 8737: { 8737: return !lhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator==(std::nullptr_t, const QWeakPointer &rhs) noexcept 8737: { 8737: return rhs.isNull(); 8737: } 8737: 8737: template 8737: inline bool operator!=(std::nullptr_t, const QWeakPointer &rhs) noexcept 8737: { 8737: return !rhs.isNull(); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8737: { 8737: return ptr1.data() - ptr2.data(); 8737: } 8737: template 8737: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, X *ptr2) 8737: { 8737: return ptr1.data() - ptr2; 8737: } 8737: template 8737: inline typename QSharedPointer::difference_type operator-(T *ptr1, const QSharedPointer &ptr2) 8737: { 8737: return ptr1 - ptr2.data(); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: inline bool operator<(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8737: { 8737: using CT = typename std::common_type::type; 8737: return std::less()(ptr1.data(), ptr2.data()); 8737: } 8737: template 8737: inline bool operator<(const QSharedPointer &ptr1, X *ptr2) 8737: { 8737: using CT = typename std::common_type::type; 8737: return std::less()(ptr1.data(), ptr2); 8737: } 8737: template 8737: inline bool operator<(T *ptr1, const QSharedPointer &ptr2) 8737: { 8737: using CT = typename std::common_type::type; 8737: return std::less()(ptr1, ptr2.data()); 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: inline uint qHash(const QSharedPointer &ptr, uint seed = 0) 8737: { 8737: return ::qHash(ptr.data(), seed); 8737: } 8737: 8737: 8737: template 8737: inline QWeakPointer QSharedPointer::toWeakRef() const 8737: { 8737: return QWeakPointer(*this); 8737: } 8737: 8737: template 8737: inline void qSwap(QSharedPointer &p1, QSharedPointer &p2) 8737: { 8737: p1.swap(p2); 8737: } 8737: 8737: 8737: namespace std { 8737: template 8737: inline void swap(::QSharedPointer &p1, ::QSharedPointer &p2) 8737: { p1.swap(p2); } 8737: } 8737: 8737: 8737: namespace QtSharedPointer { 8737: 8737: template 8737: inline QSharedPointer copyAndSetPointer(X *ptr, const QSharedPointer &src) 8737: { 8737: QSharedPointer result; 8737: result.internalSet(src.d, ptr); 8737: return result; 8737: } 8737: } 8737: 8737: 8737: template 8737: inline QSharedPointer qSharedPointerCast(const QSharedPointer &src) 8737: { 8737: X *ptr = static_cast(src.data()); 8737: return QtSharedPointer::copyAndSetPointer(ptr, src); 8737: } 8737: template 8737: inline QSharedPointer qSharedPointerCast(const QWeakPointer &src) 8737: { 8737: return qSharedPointerCast(src.toStrongRef()); 8737: } 8737: 8737: template 8737: inline QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &src) 8737: { 8737: X *ptr = dynamic_cast(src.data()); 8737: if (!ptr) 8737: return QSharedPointer(); 8737: return QtSharedPointer::copyAndSetPointer(ptr, src); 8737: } 8737: template 8737: inline QSharedPointer qSharedPointerDynamicCast(const QWeakPointer &src) 8737: { 8737: return qSharedPointerDynamicCast(src.toStrongRef()); 8737: } 8737: 8737: template 8737: inline QSharedPointer qSharedPointerConstCast(const QSharedPointer &src) 8737: { 8737: X *ptr = const_cast(src.data()); 8737: return QtSharedPointer::copyAndSetPointer(ptr, src); 8737: } 8737: template 8737: inline QSharedPointer qSharedPointerConstCast(const QWeakPointer< for_each(_IIter, _IIter, _Funct); 8768: 8768: template 8768: void 8768: generate(_FIter, _FIter, _Generator); 8768: 8768: template 8768: _OIter 8768: generate_n(_OIter, _Size, _Generator); 8768: 8768: template 8768: bool 8768: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); 8768: 8768: template 8768: bool 8768: lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare); 8768: 8768: template 8768: 8768: _FIter 8768: max_element(_FIter, _FIter); 8768: 8768: template 8768: 8768: _FIter 8768: max_element(_FIter, _FIter, _Compare); 8768: 8768: template 8768: _OIter 8768: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8768: 8768: template 8768: _OIter 8768: merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8768: 8768: template 8768: 8768: _FIter 8768: min_element(_FIter, _FIter); 8768: 8768: template 8768: 8768: _FIter 8768: min_element(_FIter, _FIter, _Compare); 8768: 8768: template 8768: pair<_IIter1, _IIter2> 8768: mismatch(_IIter1, _IIter1, _IIter2); 8768: 8768: template 8768: pair<_IIter1, _IIter2> 8768: mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate); 8768: 8768: template 8768: void 8768: nth_element(_RAIter, _RAIter, _RAIter); 8768: 8768: template 8768: void 8768: nth_element(_RAIter, _RAIter, _RAIter, _Compare); 8768: 8768: template 8768: void 8768: partial_sort(_RAIter, _RAIter, _RAIter); 8768: 8768: template 8768: void 8768: partial_sort(_RAIter, _RAIter, _RAIter, _Compare); 8768: 8768: template 8768: _BIter 8768: partition(_BIter, _BIter, _Predicate); 8768: 8768: template 8768: void 8768: random_shuffle(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: random_shuffle(_RAIter, _RAIter, 8768: 8768: _Generator&&); 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: replace(_FIter, _FIter, const _Tp&, const _Tp&); 8768: 8768: template 8768: void 8768: replace_if(_FIter, _FIter, _Predicate, const _Tp&); 8768: 8768: template 8768: _FIter1 8768: search(_FIter1, _FIter1, _FIter2, _FIter2); 8768: 8768: template 8768: _FIter1 8768: search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate); 8768: 8768: template 8768: _FIter 8768: search_n(_FIter, _FIter, _Size, const _Tp&); 8768: 8768: template 8768: _FIter 8768: search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate); 8768: 8768: template 8768: _OIter 8768: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8768: 8768: template 8768: _OIter 8768: set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8768: 8768: template 8768: _OIter 8768: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8768: 8768: template 8768: _OIter 8768: set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8768: 8768: template 8768: _OIter 8768: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8768: 8768: template 8768: _OIter 8768: set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, 8768: _OIter, _Compare); 8768: 8768: template 8768: _OIter 8768: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); 8768: 8768: template 8768: _OIter 8768: set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); 8768: 8768: template 8768: void 8768: sort(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: sort(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: void 8768: stable_sort(_RAIter, _RAIter); 8768: 8768: template 8768: void 8768: stable_sort(_RAIter, _RAIter, _Compare); 8768: 8768: template 8768: _OIter 8768: transform(_IIter, _IIter, _OIter, _UnaryOperation); 8768: 8768: template 8768: _OIter 8768: transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation); 8768: 8768: template 8768: _OIter 8768: unique_copy(_IIter, _IIter, _OIter); 8768: 8768: template 8768: _OIter 8768: unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate); 8768: 8768: 8768: 8768: } 8768: # 61 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_heap.h" 1 3 8768: # 62 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _Distance 8768: __is_heap_until(_RandomAccessIterator __first, _Distance __n, 8768: _Compare& __comp) 8768: { 8768: _Distance __parent = 0; 8768: for (_Distance __child = 1; __child < __n; ++__child) 8768: { 8768: if (__comp(__first + __parent, __first + __child)) 8768: return __child; 8768: if ((__child & 1) == 0) 8768: ++__parent; 8768: } 8768: return __n; 8768: } 8768: 8768: 8768: 8768: template 8768: inline bool 8768: __is_heap(_RandomAccessIterator __first, _Distance __n) 8768: { 8768: __gnu_cxx::__ops::_Iter_less_iter __comp; 8768: return std::__is_heap_until(__first, __n, __comp) == __n; 8768: } 8768: 8768: template 8768: inline bool 8768: __is_heap(_RandomAccessIterator __first, _Compare __comp, _Distance __n) 8768: { 8768: typedef __decltype(__comp) _Cmp; 8768: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8768: return std::__is_heap_until(__first, __n, __cmp) == __n; 8768: } 8768: 8768: template 8768: inline bool 8768: __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { return std::__is_heap(__first, std::distance(__first, __last)); } 8768: 8768: template 8768: inline bool 8768: __is_heap(_RandomAccessIterator __first, _RandomAccessIteraT> &src) 8737: { 8737: return qSharedPointerConstCast(src.toStrongRef()); 8737: } 8737: 8737: template 8737: inline 8737: QWeakPointer qWeakPointerCast(const QSharedPointer &src) 8737: { 8737: return qSharedPointerCast(src).toWeakRef(); 8737: } 8737: 8737: 8737: template 8737: inline QSharedPointer qSharedPointerObjectCast(const QSharedPointer &src) 8737: { 8737: X *ptr = qobject_cast(src.data()); 8737: return QtSharedPointer::copyAndSetPointer(ptr, src); 8737: } 8737: template 8737: inline QSharedPointer qSharedPointerObjectCast(const QWeakPointer &src) 8737: { 8737: return qSharedPointerObjectCast(src.toStrongRef()); 8737: } 8737: 8737: template 8737: inline QSharedPointer::Type> 8737: qobject_cast(const QSharedPointer &src) 8737: { 8737: return qSharedPointerObjectCast::Type, T>(src); 8737: } 8737: template 8737: inline QSharedPointer::Type> 8737: qobject_cast(const QWeakPointer &src) 8737: { 8737: return qSharedPointerObjectCast::Type, T>(src); 8737: } 8737: 8737: template 8737: QWeakPointer::Value, T>::type> 8737: qWeakPointerFromVariant(const QVariant &variant) 8737: { 8737: return QWeakPointer(qobject_cast(QtSharedPointer::weakPointerFromVariant_internal(variant).data())); 8737: } 8737: template 8737: QSharedPointer::Value, T>::type> 8737: qSharedPointerFromVariant(const QVariant &variant) 8737: { 8737: return qSharedPointerObjectCast(QtSharedPointer::sharedPointerFromVariant_internal(variant)); 8737: } 8737: 8737: 8737: 8737: 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"; } }; 8737: 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"; } }; 8737: 8737: 8737: 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 2 3 4 8737: # 28 "/<>/templates/lib/abstractlocalizer.h" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantList" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantList" 2 3 4 8737: # 29 "/<>/templates/lib/abstractlocalizer.h" 2 8737: 8737: 8737: # 30 "/<>/templates/lib/abstractlocalizer.h" 8737: class QDateTime; 8737: 8737: namespace Grantlee 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) AbstractLocalizer 8737: { 8737: public: 8737: 8737: 8737: 8737: AbstractLocalizer(); 8737: 8737: 8737: 8737: 8737: virtual ~AbstractLocalizer(); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual QString localize(const QVariant &variant) const; 8737: 8737: 8737: 8737: 8737: virtual QString currentLocale() const = 0; 8737: 8737: 8737: 8737: 8737: virtual void pushLocale(const QString &localeName) = 0; 8737: 8737: 8737: 8737: 8737: virtual void popLocale() = 0; 8737: 8737: 8737: 8737: 8737: virtual void loadCatalog(const QString &path, const QString &catalog) = 0; 8737: 8737: 8737: 8737: 8737: virtual void unloadCatalog(const QString &catalog) = 0; 8737: 8737: 8737: 8737: 8737: virtual QString localizeNumber(int number) const = 0; 8737: 8737: 8737: 8737: 8737: virtual QString localizeNumber(qreal number) const = 0; 8737: 8737: 8737: 8737: 8737: 8737: virtual QString localizeMonetaryValue(qreal value, const QString ¤cyCode 8737: = QString()) const = 0; 8737: 8737: 8737: 8737: 8737: virtual QString localizeDate(const QDate &date, 8737: QLocale::FormatType formatType 8737: = QLocale::ShortFormat) const = 0; 8737: 8737: 8737: 8737: 8737: virtual QString localizeTime(const QTime &time, 8737: QLocale::FormatType formatType 8737: = QLocale::ShortFormat) const = 0; 8737: 8737: 8737: 8737: 8737: virtual QString localizeDateTime(const QDateTime &dateTime, 8737: QLocale::FormatType formatType 8737: = QLocale::ShortFormat) const = 0; 8737: 8737: 8737: 8737: 8737: virtual QString localizeString(const QString &string, 8737: const QVariantList &arguments 8737: = QVariantList()) const = 0; 8737: 8737: 8737: 8737: 8737: 8737: virtual QString localizeContextString(const QString &string, 8737: const QString &context, 8737: const QVariantList &arguments 8737: = QVariantList()) const = 0; 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual QString localizePluralString(const QString &string, 8737: const QString &pluralForm, 8737: const QVariantList &arguments 8737: = QVariantList()) const = 0; 8737: 8737: 8737: 8737: 8737: 8737: virtual QString localizePluralContextString(const QString &string, 8737: const QString &pluralForm, 8737: const QString &context, 8737: const QVariantList &arguments 8737: = QVariantList()) const = 0; 8737: 8737: private: 8737: AbstractLocalizer 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8737: (const 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 8737: AbstractLocalizer 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8737: &) = delete; 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 8737: AbstractLocalizer 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8737: &operator=(const 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 8737: AbstractLocalizer 8737: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8737: &) = delete; 8737: 8737: # 163 "/<>/templates/lib/abstractlocalizer.h" 8737: }; 8737: } 8737: # 25 "/<>/templates/lib/context.h" 2 8737: # 1 "/<>/obj-x86_64-linuxtor __last, 8768: _Compare __comp) 8768: { 8768: return std::__is_heap(__first, std::move(__comp), 8768: std::distance(__first, __last)); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: __push_heap(_RandomAccessIterator __first, 8768: _Distance __holeIndex, _Distance __topIndex, _Tp __value, 8768: _Compare& __comp) 8768: { 8768: _Distance __parent = (__holeIndex - 1) / 2; 8768: while (__holeIndex > __topIndex && __comp(__first + __parent, __value)) 8768: { 8768: *(__first + __holeIndex) = std::move(*(__first + __parent)); 8768: __holeIndex = __parent; 8768: __parent = (__holeIndex - 1) / 2; 8768: } 8768: *(__first + __holeIndex) = std::move(__value); 8768: } 8768: # 152 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _DistanceType; 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: __gnu_cxx::__ops::_Iter_less_val __comp; 8768: _ValueType __value = std::move(*(__last - 1)); 8768: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8768: _DistanceType(0), std::move(__value), __comp); 8768: } 8768: # 187 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _DistanceType; 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8768: __cmp(std::move(__comp)); 8768: _ValueType __value = std::move(*(__last - 1)); 8768: std::__push_heap(__first, _DistanceType((__last - __first) - 1), 8768: _DistanceType(0), std::move(__value), __cmp); 8768: } 8768: 8768: template 8768: void 8768: __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, 8768: _Distance __len, _Tp __value, _Compare __comp) 8768: { 8768: const _Distance __topIndex = __holeIndex; 8768: _Distance __secondChild = __holeIndex; 8768: while (__secondChild < (__len - 1) / 2) 8768: { 8768: __secondChild = 2 * (__secondChild + 1); 8768: if (__comp(__first + __secondChild, 8768: __first + (__secondChild - 1))) 8768: __secondChild--; 8768: *(__first + __holeIndex) = std::move(*(__first + __secondChild)); 8768: __holeIndex = __secondChild; 8768: } 8768: if ((__len & 1) == 0 && __secondChild == (__len - 2) / 2) 8768: { 8768: __secondChild = 2 * (__secondChild + 1); 8768: *(__first + __holeIndex) = std::move(*(__first + (__secondChild - 1))) 8768: ; 8768: __holeIndex = __secondChild - 1; 8768: } 8768: __decltype(__gnu_cxx::__ops::__iter_comp_val(std::move(__comp))) 8768: __cmp(std::move(__comp)); 8768: std::__push_heap(__first, __holeIndex, __topIndex, 8768: std::move(__value), __cmp); 8768: } 8768: 8768: template 8768: inline void 8768: __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _RandomAccessIterator __result, _Compare& __comp) 8768: { 8768: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _DistanceType; 8768: 8768: _ValueType __value = std::move(*__result); 8768: *__result = std::move(*__first); 8768: std::__adjust_heap(__first, _DistanceType(0), 8768: _DistanceType(__last - __first), 8768: std::move(__value), __comp); 8768: } 8768: # 269 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: if (__last - __first > 1) 8768: { 8768: --__last; 8768: __gnu_cxx::__ops::_Iter_less_iter __comp; 8768: std::__pop_heap(__first, __last, __last, __comp); 8768: } 8768: } 8768: # 302 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: pop_heap(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: if (__last - __first > 1) 8768: { 8768: typedef __decltype(__comp) _Cmp; 8768: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8768: --__last; 8768: std::__pop_heap(__first, __last, __last, __cmp); 8768: } 8768: } 8768: 8768: template 8768: void 8768: __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare& __comp) 8768: { 8768: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _DistanceType; 8768: 8768: if (__last - __first < 2) 8768: return; 8768: 8768: const _DistanceType __len = __last - __first; 8768: _DistanceType __parent = (__len - 2) / 2; 8768: while (true) 8768: { 8768: _ValueType __value = std::move(*(__first + __parent)); 8768: std::__adjust_heap(__first, __parent, __len, std::move(__value), 8768: __comp); 8768: if (__parent == 0) 8768: return; 8768: __parent--; 8768: } 8768: } 8768: # 358 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: __gnu_cxx::__ops::_Iter_less_iter __comp; 8768: std::__make_heap(__first, __last, __comp); 8768: } 8768: # 384 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: typedef __decltype(__comp) _Cmp; 8768: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8768: std::__make_heap(__first, __last, __cmp); 8768: } 8768: 8768: template 8768: void 8768: __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare& __comp) 8768: { 8768: while (__last - __first > 1) 8768: { 8768: --__last; 8768: std::__pop_heap(__first, __last, __last, __comp); 8768: } 8768: } 8768: # 420 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: __gnu_cxx::__ops::_Iter_less_iter __comp; 8768: std::_-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 26 "/<>/templates/lib/context.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantHash" 1 3 4 8737: # 28 "/<>/templates/lib/context.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: 8737: class RenderContext; 8737: 8737: class ContextPrivate; 8737: # 117 "/<>/templates/lib/context.h" 8737: class __attribute__((visibility("default"))) Context 8737: { 8737: public: 8737: 8737: 8737: 8737: Context(); 8737: 8737: 8737: 8737: 8737: explicit Context(const QVariantHash &hash); 8737: 8737: 8737: 8737: 8737: Context(const Context &other); 8737: 8737: 8737: 8737: 8737: Context &operator=(const Context &other); 8737: # 147 "/<>/templates/lib/context.h" 8737: bool autoEscape() const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void setAutoEscape(bool autoescape); 8737: 8737: 8737: 8737: 8737: ~Context(); 8737: 8737: 8737: 8737: 8737: QVariant lookup(const QString &str) const; 8737: 8737: 8737: 8737: 8737: 8737: void insert(const QString &name, QObject *object); 8737: 8737: 8737: 8737: 8737: 8737: void insert(const QString &name, const QVariant &variant); 8737: 8737: 8737: 8737: 8737: 8737: void push(); 8737: 8737: 8737: 8737: 8737: 8737: void pop(); 8737: 8737: 8737: 8737: 8737: 8737: QVariantHash stackHash(int depth) const; 8737: 8737: 8737: 8737: 8737: 8737: bool isMutating() const; 8737: 8737: 8737: 8737: 8737: 8737: void setMutating(bool mutating); 8737: 8737: 8737: 8737: 8737: void addExternalMedia(const QString &absolutePart, 8737: const QString &relativePart); 8737: 8737: 8737: 8737: 8737: void clearExternalMedia(); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void setLocalizer(QSharedPointer localizer); 8737: 8737: 8737: 8737: 8737: QSharedPointer localizer() const; 8737: 8737: 8737: 8737: 8737: QList> externalMedia() const; 8737: 8737: 8737: 8737: 8737: enum UrlType { 8737: AbsoluteUrls, 8737: RelativeUrls 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: void setUrlType(UrlType type); 8737: 8737: 8737: 8737: 8737: UrlType urlType() const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: void setRelativeMediaPath(const QString &relativePath); 8737: 8737: 8737: 8737: 8737: QString relativeMediaPath() const; 8737: # 276 "/<>/templates/lib/context.h" 8737: RenderContext *renderContext() const; 8737: 8737: private: 8737: 8737: # 279 "/<>/templates/lib/context.h" 3 4 8737: inline 8737: # 279 "/<>/templates/lib/context.h" 8737: ContextPrivate 8737: # 279 "/<>/templates/lib/context.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 279 "/<>/templates/lib/context.h" 8737: ContextPrivate 8737: # 279 "/<>/templates/lib/context.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 279 "/<>/templates/lib/context.h" 8737: ContextPrivate 8737: # 279 "/<>/templates/lib/context.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/context.h" 8737: ContextPrivate 8737: # 279 "/<>/templates/lib/context.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 279 "/<>/templates/lib/context.h" 8737: ContextPrivate 8737: # 279 "/<>/templates/lib/context.h" 3 4 8737: ; 8737: 8737: # 280 "/<>/templates/lib/context.h" 8737: ContextPrivate *const d_ptr; 8737: }; 8737: } 8737: # 27 "/<>/templates/lib/node.h" 2 8737: # 1 "/<>/templates/lib/filterexpression.h" 1 8737: # 24 "/<>/templates/lib/filterexpression.h" 8737: # 1 "/<>/templates/lib/variable.h" 1 8737: # 24 "/<>/templates/lib/variable.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/variable.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8737: # 27 "/<>/templates/lib/variable.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: class Context; 8737: 8737: class VariablePrivate; 8737: # 53 "/<>/templates/lib/variable.h" 8737: class __attribute__((visibility("default"))) Variable 8737: { 8737: public: 8737: 8737: 8737: 8737: Variable(); 8737: 8737: 8737: 8737: 8737: explicit Variable(const QString &var); 8737: 8737: 8737: 8737: 8737: Variable(const Variable &other); 8737: 8737: 8737: 8737: 8737: ~Variable(); 8737: 8737: 8737: 8737: 8737: Variable &operator=(const Variable &other); 8737: 8737: 8737: 8737: 8737: bool isValid() const; 8737: 8737: 8737: 8737: 8737: bool isTrue(Context *c) const; 8737: 8737: 8737: 8737: 8737: QVariant resolve(Context *c) const; 8737: # 105 "/<>/templates/lib/variable.h" 8737: bool isConstant() const; 8737: 8737: 8737: 8737: 8737: 8737: bool isLocalized() const; 8737: 8737: 8737: 8737: 8737: 8737: QVariant literal() const; 8737: 8737: 8737: 8737: 8737: QStringList lookups() const; 8737: 8737: private: 8737: 8737: # 125 "/<>/templates/lib/variable.h" 3 4 8737: inline 8737: # 125 "/<>/templates/lib/variable.h" 8737: VariablePrivate 8737: # 125 "/<>/templates/lib/variable.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 125 "/<>/templates/lib/variable.h" 8737: VariablePrivate 8737: # 125 "/<>/templates/lib/variable.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 125 "/<>/templates/lib/variable.h" 8737: VariablePrivate 8737: # 125 "/<>/templates/lib/variable.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/variable.h" 8737: VariablePrivate 8737: # 125 "/<>/templates/lib/variable.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 125 "/<>/templates/lib/variable.h" 8737: VariablePrivate 8737: # 125 "/<>/templates/lib/variable.h" 3 4 8737: ; 8737: 8737: # 126 "/<>/templates/lib/variable.h" 8737: VariablePrivate *const d_ptr; 8737: }; 8737: } 8737: # 25 "/<>/templates/lib/filterexpression.h" 2 8737: 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 27 "/<>/templates/lib/filterexpression.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: class Filter; 8737: class OutputStream; 8737: class Parser; 8737: struct Token; 8737: 8737: class FilterExpressionPrivate; 8737: # 118 "/<>/templates/lib/filterexpression.h" 8737: class __attribute__((visibility("default"))) FilterExpression 8737: { 8737: public: 8737: 8737: 8737: 8737: FilterExpression(); 8737: 8737: 8737: 8737: 8737: 8737: FilterExpression(const QString &varString, Grantlee::Parser *parser); 8737: 8737: 8737: 8737: 8737: FilterExpression(const FilterExpression &other); 8737: 8737: 8737: 8737: 8737: ~FilterExpression(); 8737: 8737: 8737: 8737: 8737: FilterExpression &operator=(const FilterExpression &other); 8737: 8737: 8737: 8737: 8737: Variable variable() const; 8737: 8737: 8737: 8737: 8737: 8737: QVariant resolve(OutputStream *stream, Context *c) const; 8737: 8737: 8737: 8737: 8737: QVariant resolve(Context *c) const; 8737: 8737: 8737: 8737: 8737: 8737: bool isTrue(Context *c) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: QVariantList toList(Context *c) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool isValid() const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: QStringList filters() const; 8737: 8737: 8737: private: 8737: 8737: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8737: inline 8737: # 194 "/<>/templates/lib/filterexpression.h" 8737: FilterExpressionPrivate 8737: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 194 "/<>/templates/lib/filterexpression.h" 8737: FilterExpressionPrivate 8737: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 194 "/<>/templates/lib/filterexpression.h" 8737: FilterExpressionPrivate 8737: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/filterexpression.h" 8737: FilterExpressionPrivate 8737: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 194 "/<>/templates/lib/filterexpression.h" 8737: FilterExpressionPrivate 8737: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8737: ; 8737: 8737: # 195 "/<>/templates/lib/filterexpression.h" 8737: FilterExpressionPrivate *const d_ptr; 8737: }; 8737: } 8737: # 28 "/<>/templates/lib/node.h" 2 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 29 "/<>/templates/lib/node.h" 2 8737: # 1 "/<>/templates/lib/outputstream.h" 1 8737: # 24 "/<>/templates/lib/outputstream.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/outputstream.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8737: # 27 "/<>/templates/lib/outputstream.h" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QTextStream" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 1 3 4 8737: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: 8737: 8737: 8737: 8737: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: class QByteArray; 8737: class QIODevicePrivate; 8737: 8737: class __attribute__((visibility("default"))) QIODevice 8737: 8737: : public QObject 8737: 8737: { 8737: 8737: public: 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: 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: 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8737: struct QPrivateSignal {}; 8737: 8737: public: 8737: enum OpenModeFlag { 8737: NotOpen = 0x0000, 8737: ReadOnly = 0x0001, 8737: WriteOnly = 0x0002, 8737: ReadWrite = ReadOnly | WriteOnly, 8737: Append = 0x0004, 8737: Truncate = 0x0008, 8737: Text = 0x0010, 8737: Unbuffered = 0x0020 8737: }; 8737: typedef QFlags OpenMode; 8737: 8737: QIODevice(); 8737: 8737: explicit QIODevice(QObject *parent); 8737: 8737: virtual ~QIODevice(); 8737: 8737: OpenMode openMode() const; 8737: 8737: void setTextModeEnabled(bool enabled); 8737: bool isTextModeEnabled() const; 8737: 8737: bool isOpen() const; 8737: bool isReadable() const; 8737: bool isWritable() const; 8737: virtual bool isSequential() const; 8737: 8737: int readChannelCount() const; 8737: int writeChannelCount() const; 8737: int currentReadChannel() const; 8737: void setCurrentReadChannel(int channel); 8737: int currentWriteChannel() const; 8737: void setCurrentWriteChannel(int channel); 8737: 8737: virtual bool open(OpenMode mode); 8737: virtual void close(); 8737: 8737: 8737: 8737: virtual qint64 pos() const; 8737: virtual qint64 size() const; 8737: virtual bool seek(qint64 pos); 8737: virtual bool atEnd() const; 8737: virtual bool reset(); 8737: 8737: virtual qint64 bytesAvailable() const; 8737: virtual qint64 bytesToWrite() const; 8737: 8737: qint64 read(char *data, qint64 maxlen); 8737: QByteArray read(qint64 maxlen); 8737: QByteArray readAll(); 8737: qint64 readLine(char *data, qint64 maxlen); 8737: QByteArray readLine(qint64 maxlen = 0); 8737: virtual bool canReadLine() const; 8737: 8737: void startTransaction(); 8737: void commitTransaction(); 8737: void rollbackTransaction(); 8737: bool isTransactionStarted() const; 8737: 8737: qint64 write(const char *data, qint64 len); 8737: qint64 write(const char *data); 8737: inline qint64 write(const QByteArray &data) 8737: { return write(data.constData(), data.size()); } 8737: 8737: qint64 peek(char *data, qint64 maxlen); 8737: QByteArray peek(qint64 maxlen); 8737: 8737: virtual bool waitForReadyRead(int msecs); 8737: virtual bool waitForBytesWritten(int msecs); 8737: 8737: void ungetChar(char c); 8737: bool putChar(char c); 8737: bool getChar(char *c); 8737: 8737: QString errorString() const; 8737: 8737: 8737: public : 8737: void readyRead(); 8737: void channelReadyRead(int channel); 8737: void bytesWritten(qint64 bytes); 8737: void channelBytesWritten(int channel, qint64 bytes); 8737: void aboutToClose(); 8737: void readChannelFinished(); 8737: 8737: 8737: protected: 8737: 8737: 8737: 8737: QIODevice(QIODevicePrivate &dd, QObject *parent = nullptr); 8737: 8737: virtual qint64 readData(char *data, qint64 maxlen) = 0; 8737: virtual qint64 readLineData(char *data, qint64 max_sort_heap(__first, __last, __comp); 8768: } 8768: # 447 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline void 8768: sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: typedef __decltype(__comp) _Cmp; 8768: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8768: std::__sort_heap(__first, __last, __cmp); 8768: } 8768: # 475 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline _RandomAccessIterator 8768: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: __gnu_cxx::__ops::_Iter_less_iter __comp; 8768: return __first + 8768: std::__is_heap_until(__first, std::distance(__first, __last), __comp); 8768: } 8768: # 503 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline _RandomAccessIterator 8768: is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: typedef __decltype(__comp) _Cmp; 8768: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8768: return __first 8768: + std::__is_heap_until(__first, std::distance(__first, __last), __cmp); 8768: } 8768: # 527 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline bool 8768: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { return std::is_heap_until(__first, __last) == __last; } 8768: # 540 "/usr/include/c++/8/bits/stl_heap.h" 3 8768: template 8768: inline bool 8768: is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: const auto __dist = std::distance(__first, __last); 8768: typedef __decltype(__comp) _Cmp; 8768: __gnu_cxx::__ops::_Iter_comp_iter<_Cmp> __cmp(std::move(__comp)); 8768: return std::__is_heap_until(__first, __dist, __cmp) == __dist; 8768: } 8768: 8768: 8768: 8768: } 8768: # 62 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_tempbuf.h" 1 3 8768: # 60 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8768: # 1 "/usr/include/c++/8/bits/stl_construct.h" 1 3 8768: # 59 "/usr/include/c++/8/bits/stl_construct.h" 3 8768: # 1 "/usr/include/c++/8/new" 1 3 8768: # 37 "/usr/include/c++/8/new" 3 8768: 8768: # 38 "/usr/include/c++/8/new" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/exception" 1 3 8768: # 33 "/usr/include/c++/8/exception" 3 8768: 8768: # 34 "/usr/include/c++/8/exception" 3 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/exception.h" 1 3 8768: # 34 "/usr/include/c++/8/bits/exception.h" 3 8768: 8768: # 35 "/usr/include/c++/8/bits/exception.h" 3 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: 8768: 8768: extern "C++" { 8768: 8768: namespace std 8768: { 8768: # 60 "/usr/include/c++/8/bits/exception.h" 3 8768: class exception 8768: { 8768: public: 8768: exception() noexcept { } 8768: virtual ~exception() noexcept; 8768: 8768: 8768: 8768: virtual const char* 8768: what() const noexcept; 8768: }; 8768: 8768: } 8768: 8768: } 8768: 8768: #pragma GCC visibility pop 8768: # 39 "/usr/include/c++/8/exception" 2 3 8768: 8768: extern "C++" { 8768: 8768: namespace std 8768: { 8768: 8768: 8768: class bad_exception : public exception 8768: { 8768: public: 8768: bad_exception() noexcept { } 8768: 8768: 8768: 8768: virtual ~bad_exception() noexcept; 8768: 8768: 8768: virtual const char* 8768: what() const noexcept; 8768: }; 8768: 8768: 8768: typedef void (*terminate_handler) (); 8768: 8768: 8768: typedef void (*unexpected_handler) (); 8768: 8768: 8768: terminate_handler set_terminate(terminate_handler) noexcept; 8768: 8768: 8768: 8768: terminate_handler get_terminate() noexcept; 8768: 8768: 8768: 8768: 8768: void terminate() noexcept __attribute__ ((__noreturn__)); 8768: 8768: 8768: unexpected_handler set_unexpected(unexpected_handler) noexcept; 8768: 8768: 8768: 8768: unexpected_handler get_unexpected() noexcept; 8768: 8768: 8768: 8768: 8768: void unexpected() __attribute__ ((__noreturn__)); 8768: # 101 "/usr/include/c++/8/exception" 3 8768: 8768: bool uncaught_exception() noexcept __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: int uncaught_exceptions() noexcept __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: } 8768: 8768: namespace __gnu_cxx 8768: { 8768: 8768: # 133 "/usr/include/c++/8/exception" 3 8768: void __verbose_terminate_handler(); 8768: 8768: 8768: } 8768: 8768: } 8768: 8768: #pragma GCC visibility pop 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/exception_ptr.h" 1 3 8768: # 34 "/usr/include/c++/8/bits/exception_ptr.h" 3 8768: #pragma GCC visibility push(default) 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 1 3 8768: # 34 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8768: 8768: # 35 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 39 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 2 3 8768: # 50 "/usr/include/c++/8/bits/cxxabi_init_exception.h" 3 8768: namespace std 8768: { 8768: class type_info; 8768: } 8768: 8768: namespace __cxxabiv1 8768: { 8768: struct __cxa_refcounted_exception; 8768: 8768: extern "C" 8768: { 8768: 8768: void* 8768: __cxa_allocate_exception(size_t) noexcept; 8768: 8768: 8768: __cxa_refcounted_exception* 8768: __cxa_init_primary_exception(void *object, std::type_info *tinfo, 8768: void ( *dest) (void *)) noexcept; 8768: 8768: } 8768: } 8768: 8768: 8768: 8768: #pragma GCC visibility pop 8768: # 39 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8768: # 1 "/usr/include/c++/8/typeinfo" 1 3 8768: # 32 "/usr/include/c++/8/typeinfo" 3 8768: 8768: # 33 "/usr/include/c++/8/typeinfo" 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/hash_bytes.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/hash_bytes.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/hash_bytes.h" 3 8768: 8768: 8768: 8768: namespace std 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: size_t 8768: _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8768: 8768: 8768: 8768: 8768: 8768: size_t 8768: _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); 8768: 8768: 8768: } 8768: # 37 "/usr/include/c++/8/typeinfo" 2 3 8768: 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: extern "C++" { 8768: 8768: namespace __cxxabiv1 8768: { 8768: class __class_type_info; 8768: } 8768: # 80 "/usr/include/c++/8/typeinfo" 3 8768: namespace std 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: class type_info 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: virtual ~type_info(); 8768: 8768: 8768: 8768: const char* name() const noexcept 8768: { return __name[0] == '*' ? __name + 1 : __name; } 8768: # 115 "/usr/include/c++/8/typeinfo" 3 8768: bool before(const type_info& __arg) const noexcept 8768: { return (__name[0] == '*' && __arg.__name[0] == '*') 8768: ? __name < __arg.__name 8768: : __builtin_strcmp (__name, __arg.__name) < 0; } 8768: 8768: bool operator==(const type_info& __arg) const noexcept 8768: { 8768: return ((__name == __arg.__name) 8768: || (__name[0] != '*' && 8768: __builtin_strcmp (__namlen); 8737: virtual qint64 writeData(const char *data, qint64 len) = 0; 8737: 8737: void setOpenMode(OpenMode openMode); 8737: 8737: void setErrorString(const QString &errorString); 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: 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; 8737: QIODevice(const QIODevice &) = delete; QIODevice &operator=(const QIODevice &) = delete; 8737: }; 8737: 8737: 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); } 8737: 8737: 8737: class QDebug; 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QIODevice::OpenMode modes); 8737: 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 1 3 4 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 2 3 4 8737: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 3 4 8737: 8737: 8737: 8737: class QTextCodec; 8737: class QTextDecoder; 8737: 8737: class QTextStreamPrivate; 8737: class __attribute__((visibility("default"))) QTextStream 8737: { 8737: 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; 8737: 8737: public: 8737: enum RealNumberNotation { 8737: SmartNotation, 8737: FixedNotation, 8737: ScientificNotation 8737: }; 8737: enum FieldAlignment { 8737: AlignLeft, 8737: AlignRight, 8737: AlignCenter, 8737: AlignAccountingStyle 8737: }; 8737: enum Status { 8737: Ok, 8737: ReadPastEnd, 8737: ReadCorruptData, 8737: WriteFailed 8737: }; 8737: enum NumberFlag { 8737: ShowBase = 0x1, 8737: ForcePoint = 0x2, 8737: ForceSign = 0x4, 8737: UppercaseBase = 0x8, 8737: UppercaseDigits = 0x10 8737: }; 8737: typedef QFlags NumberFlags; 8737: 8737: QTextStream(); 8737: explicit QTextStream(QIODevice *device); 8737: explicit QTextStream(FILE *fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8737: explicit QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8737: explicit QTextStream(QByteArray *array, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8737: explicit QTextStream(const QByteArray &array, QIODevice::OpenMode openMode = QIODevice::ReadOnly); 8737: virtual ~QTextStream(); 8737: 8737: 8737: void setCodec(QTextCodec *codec); 8737: void setCodec(const char *codecName); 8737: QTextCodec *codec() const; 8737: void setAutoDetectUnicode(bool enabled); 8737: bool autoDetectUnicode() const; 8737: void setGenerateByteOrderMark(bool generate); 8737: bool generateByteOrderMark() const; 8737: 8737: 8737: void setLocale(const QLocale &locale); 8737: QLocale locale() const; 8737: 8737: void setDevice(QIODevice *device); 8737: QIODevice *device() const; 8737: 8737: void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8737: QString *string() const; 8737: 8737: Status status() const; 8737: void setStatus(Status status); 8737: void resetStatus(); 8737: 8737: bool atEnd() const; 8737: void reset(); 8737: void flush(); 8737: bool seek(qint64 pos); 8737: qint64 pos() const; 8737: 8737: void skipWhiteSpace(); 8737: 8737: QString readLine(qint64 maxlen = 0); 8737: bool readLineInto(QString *line, qint64 maxlen = 0); 8737: QString readAll(); 8737: QString read(qint64 maxlen); 8737: 8737: void setFieldAlignment(FieldAlignment alignment); 8737: FieldAlignment fieldAlignment() const; 8737: 8737: void setPadChar(QChar ch); 8737: QChar padChar() const; 8737: 8737: void setFieldWidth(int width); 8737: int fieldWidth() const; 8737: 8737: void setNumberFlags(NumberFlags flags); 8737: NumberFlags numberFlags() const; 8737: 8737: void setIntegerBase(int base); 8737: int integerBase() const; 8737: 8737: void setRealNumberNotation(RealNumberNotation notation); 8737: RealNumberNotation realNumberNotation() const; 8737: 8737: void setRealNumberPrecision(int precision); 8737: int realNumberPrecision() const; 8737: 8737: QTextStream &operator>>(QChar &ch); 8737: QTextStream &operator>>(char &ch); 8737: QTextStream &operator>>(signed short &i); 8737: QTextStream &operator>>(unsigned short &i); 8737: QTextStream &operator>>(signed int &i); 8737: QTextStream &operator>>(unsigned int &i); 8737: QTextStream &operator>>(signed long &i); 8737: QTextStream &operator>>(unsigned long &i); 8737: QTextStream &operator>>(qlonglong &i); 8737: QTextStream &operator>>(qulonglong &i); 8737: QTextStream &operator>>(float &f); 8737: QTextStream &operator>>(double &f); 8737: QTextStream &operator>>(QString &s); 8737: QTextStream &operator>>(QByteArray &array); 8737: QTextStream &operator>>(char *c); 8737: 8737: QTextStream &operator<<(QChar ch); 8737: QTextStream &operator<<(char ch); 8737: QTextStream &operator<<(signed short i); 8737: QTextStream &operator<<(unsigned short i); 8737: QTextStream &operator<<(signed int i); 8737: QTextStream &operator<<(unsigned int i); 8737: QTextStream &operator<<(signed long i); 8737: QTextStream &operator<<(unsigned long i); 8737: QTextStream &operator<<(qlonglong i); 8737: QTextStream &operator<<(qulonglong i); 8737: QTextStream &operator<<(float f); 8737: QTextStream &operator<<(double f); 8737: QTextStream &operator<<(const QString &s); 8737: QTextStream &operator<<(QLatin1String s); 8737: QTextStream &operator<<(const QStringRef &s); 8737: QTextStream &operator<<(const QByteArray &array); 8737: QTextStream &operator<<(const char *c); 8737: QTextStream &operator<<(const void *ptr); 8737: 8737: private: 8737: QTextStream(const QTextStream &) = delete; QTextStream &operator=(const QTextStream &) = delete; 8737: friend class QDebugStateSaverPrivate; 8737: friend class QDebug; 8737: 8737: QScopedPointer d_ptr; 8737: }; 8737: 8737: 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); } 8737: 8737: 8737: 8737: 8737: 8737: typedef QTextStream & (*QTextStreamFunction)(QTextStream &); 8737: typedef void (QTextStream::*QTSMFI)(int); 8737: typedef void (QTextStream::*QTSMFC)(QChar); 8737: 8737: 8737: class __attribute__((visibility("default"))) QTextStreamManipulator 8737: { 8737: public: 8737: constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {} 8737: constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(e, __arg.__name) == 0)); 8768: } 8768: # 136 "/usr/include/c++/8/typeinfo" 3 8768: bool operator!=(const type_info& __arg) const noexcept 8768: { return !operator==(__arg); } 8768: 8768: 8768: size_t hash_code() const noexcept 8768: { 8768: 8768: return _Hash_bytes(name(), __builtin_strlen(name()), 8768: static_cast(0xc70f6907UL)); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: virtual bool __is_pointer_p() const; 8768: 8768: 8768: virtual bool __is_function_p() const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, 8768: unsigned __outer) const; 8768: 8768: 8768: virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, 8768: void **__obj_ptr) const; 8768: 8768: protected: 8768: const char *__name; 8768: 8768: explicit type_info(const char *__n): __name(__n) { } 8768: 8768: private: 8768: 8768: type_info& operator=(const type_info&); 8768: type_info(const type_info&); 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class bad_cast : public exception 8768: { 8768: public: 8768: bad_cast() noexcept { } 8768: 8768: 8768: 8768: virtual ~bad_cast() noexcept; 8768: 8768: 8768: virtual const char* what() const noexcept; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: class bad_typeid : public exception 8768: { 8768: public: 8768: bad_typeid () noexcept { } 8768: 8768: 8768: 8768: virtual ~bad_typeid() noexcept; 8768: 8768: 8768: virtual const char* what() const noexcept; 8768: }; 8768: } 8768: 8768: } 8768: 8768: #pragma GCC visibility pop 8768: # 40 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8768: # 1 "/usr/include/c++/8/new" 1 3 8768: # 41 "/usr/include/c++/8/bits/exception_ptr.h" 2 3 8768: 8768: extern "C++" { 8768: 8768: namespace std 8768: { 8768: class type_info; 8768: 8768: 8768: 8768: 8768: 8768: namespace __exception_ptr 8768: { 8768: class exception_ptr; 8768: } 8768: 8768: using __exception_ptr::exception_ptr; 8768: 8768: 8768: 8768: 8768: 8768: exception_ptr current_exception() noexcept; 8768: 8768: template 8768: exception_ptr make_exception_ptr(_Ex) noexcept; 8768: 8768: 8768: void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); 8768: 8768: namespace __exception_ptr 8768: { 8768: using std::rethrow_exception; 8768: 8768: 8768: 8768: 8768: 8768: class exception_ptr 8768: { 8768: void* _M_exception_object; 8768: 8768: explicit exception_ptr(void* __e) noexcept; 8768: 8768: void _M_addref() noexcept; 8768: void _M_release() noexcept; 8768: 8768: void *_M_get() const noexcept __attribute__ ((__pure__)); 8768: 8768: friend exception_ptr std::current_exception() noexcept; 8768: friend void std::rethrow_exception(exception_ptr); 8768: template 8768: friend exception_ptr std::make_exception_ptr(_Ex) noexcept; 8768: 8768: public: 8768: exception_ptr() noexcept; 8768: 8768: exception_ptr(const exception_ptr&) noexcept; 8768: 8768: 8768: exception_ptr(nullptr_t) noexcept 8768: : _M_exception_object(0) 8768: { } 8768: 8768: exception_ptr(exception_ptr&& __o) noexcept 8768: : _M_exception_object(__o._M_exception_object) 8768: { __o._M_exception_object = 0; } 8768: # 117 "/usr/include/c++/8/bits/exception_ptr.h" 3 8768: exception_ptr& 8768: operator=(const exception_ptr&) noexcept; 8768: 8768: 8768: exception_ptr& 8768: operator=(exception_ptr&& __o) noexcept 8768: { 8768: exception_ptr(static_cast(__o)).swap(*this); 8768: return *this; 8768: } 8768: 8768: 8768: ~exception_ptr() noexcept; 8768: 8768: void 8768: swap(exception_ptr&) noexcept; 8768: # 144 "/usr/include/c++/8/bits/exception_ptr.h" 3 8768: explicit operator bool() const 8768: { return _M_exception_object; } 8768: 8768: 8768: friend bool 8768: operator==(const exception_ptr&, const exception_ptr&) 8768: noexcept __attribute__ ((__pure__)); 8768: 8768: const class std::type_info* 8768: __cxa_exception_type() const noexcept 8768: __attribute__ ((__pure__)); 8768: }; 8768: 8768: bool 8768: operator==(const exception_ptr&, const exception_ptr&) 8768: noexcept __attribute__ ((__pure__)); 8768: 8768: bool 8768: operator!=(const exception_ptr&, const exception_ptr&) 8768: noexcept __attribute__ ((__pure__)); 8768: 8768: inline void 8768: swap(exception_ptr& __lhs, exception_ptr& __rhs) 8768: { __lhs.swap(__rhs); } 8768: 8768: template 8768: inline void 8768: __dest_thunk(void* __x) 8768: { static_cast<_Ex*>(__x)->~_Ex(); } 8768: 8768: } 8768: 8768: 8768: template 8768: exception_ptr 8768: make_exception_ptr(_Ex __ex) noexcept 8768: { 8768: 8768: try 8768: { 8768: 8768: void *__e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); 8768: (void)__cxxabiv1::__cxa_init_primary_exception( 8768: __e, const_cast(&typeid(__ex)), 8768: __exception_ptr::__dest_thunk<_Ex>); 8768: ::new (__e) _Ex(__ex); 8768: return exception_ptr(__e); 8768: 8768: 8768: 8768: } 8768: catch(...) 8768: { 8768: return current_exception(); 8768: } 8768: 8768: 8768: 8768: } 8768: 8768: 8768: } 8768: 8768: } 8768: 8768: #pragma GCC visibility pop 8768: # 144 "/usr/include/c++/8/exception" 2 3 8768: # 1 "/usr/include/c++/8/bits/nested_exception.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/nested_exception.h" 3 8768: #pragma GCC visibility push(default) 8768: # 42 "/usr/include/c++/8/bits/nested_exception.h" 3 8768: extern "C++" { 8768: 8768: namespace std 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: class nested_exception 8768: { 8768: exception_ptr _M_ptr; 8768: 8768: public: 8768: nested_exception() noexcept : _M_ptr(current_exception()) { } 8768: 8768: nested_exception(const nested_exception&) noexcept = default; 8768: 8768: nested_exception& operator=(const nested_exception&) noexcept = default; 8768: 8768: virtual ~nested_exception() noexcept; 8768: 8768: [[noreturn]] 8768: void 8768: rethrow_nested() const 8768: { 8768: if (_M_ptr) 8768: rethrow_exception(_M_ptr); 8768: std::terminate(); 8768: } 8768: 8768: exception_ptr 8768: nested_ptr() const noexcept 8768: { return _M_ptr; } 8768: }; 8768: 8768: template 8768: struct _Nested_exception : public _Except, public nested_exception 8768: { 8768: explicit _Nested_exception(const _Except& __ex) 8768: : _Except(__ex) 8768: { } 8768: 8768: explicit _Nested_exception(_Except&& __ex) 8768: : _Except(static_cast<_Except&&>(__ex)) 8768: { } 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: [[noreturn]] 8768: inline void 8768: __throw_with_nested_impl(_Tp&& __t, true_type) 8768: { 8768: using _Up = typename remove_reference<_Tp>::type; 8768: throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; 8768: } 8768: 8768: template 8768: [[noreturn]] 8768: inline void 8768: __throw_with_nested_impl(_Tp&& __t, false_type) 8768: { throw std::forward<_Tp>(__t); } 8768: 8768: 8768: 8768: template 8768: [[noreturn]] 8768: inline void 8768: throw_with_nested(_Tp&& __t) 8768: { 8768: using _Up = typename decay<_Tp>::type; 8768: using _CopyConstructible 8768: = __and_, is_move_constructible<_Up>>; 8768: static_assert(_CopyConstructible::value, 8768: "throw_with_nested argument must be CopyConstructible"); 8768: using __nest = __and_, __bool_constant, 8768: __not_>(QTextStream &s, QTextStreamFunction f) 8737: { return (*f)(s); } 8737: 8737: inline QTextStream &operator<<(QTextStream &s, QTextStreamFunction f) 8737: { return (*f)(s); } 8737: 8737: inline QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m) 8737: { m.exec(s); return s; } 8737: 8737: __attribute__((visibility("default"))) QTextStream &bin(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &oct(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &dec(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &hex(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &showbase(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &forcesign(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &forcepoint(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &noshowbase(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &noforcesign(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &noforcepoint(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &uppercasebase(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &uppercasedigits(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &lowercasebase(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &lowercasedigits(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &fixed(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &scientific(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &left(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &right(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream ¢er(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &endl(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &flush(QTextStream &s); 8737: __attribute__((visibility("default"))) QTextStream &reset(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &bom(QTextStream &s); 8737: 8737: __attribute__((visibility("default"))) QTextStream &ws(QTextStream &s); 8737: 8737: inline QTextStreamManipulator qSetFieldWidth(int width) 8737: { 8737: QTSMFI func = &QTextStream::setFieldWidth; 8737: return QTextStreamManipulator(func,width); 8737: } 8737: 8737: inline QTextStreamManipulator qSetPadChar(QChar ch) 8737: { 8737: QTSMFC func = &QTextStream::setPadChar; 8737: return QTextStreamManipulator(func, ch); 8737: } 8737: 8737: inline QTextStreamManipulator qSetRealNumberPrecision(int precision) 8737: { 8737: QTSMFI func = &QTextStream::setRealNumberPrecision; 8737: return QTextStreamManipulator(func, precision); 8737: } 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QTextStream" 2 3 4 8737: # 28 "/<>/templates/lib/outputstream.h" 2 8737: 8737: 8737: # 29 "/<>/templates/lib/outputstream.h" 8737: namespace Grantlee 8737: { 8737: 8737: class SafeString; 8737: # 82 "/<>/templates/lib/outputstream.h" 8737: class __attribute__((visibility("default"))) OutputStream 8737: { 8737: public: 8737: 8737: 8737: 8737: 8737: OutputStream(); 8737: 8737: 8737: 8737: 8737: 8737: explicit OutputStream(QTextStream *stream); 8737: 8737: 8737: 8737: 8737: virtual ~OutputStream(); 8737: 8737: 8737: 8737: 8737: 8737: virtual QString escape(const QString &input) const; 8737: 8737: 8737: 8737: 8737: 8737: QString escape(const SafeString &input) const; 8737: 8737: 8737: 8737: 8737: virtual QSharedPointer clone(QTextStream *stream) const; 8737: 8737: 8737: 8737: 8737: 8737: QString conditionalEscape(const Grantlee::SafeString &input) const; 8737: 8737: 8737: 8737: 8737: OutputStream &operator<<(const QString &input); 8737: 8737: 8737: 8737: 8737: OutputStream &operator<<(const SafeString &input); 8737: 8737: 8737: 8737: 8737: 8737: OutputStream &operator<<(QTextStream *stream); 8737: 8737: private: 8737: QTextStream *m_stream; 8737: OutputStream 8737: # 143 "/<>/templates/lib/outputstream.h" 3 4 8737: (const 8737: # 143 "/<>/templates/lib/outputstream.h" 8737: OutputStream 8737: # 143 "/<>/templates/lib/outputstream.h" 3 4 8737: &) = delete; 8737: # 143 "/<>/templates/lib/outputstream.h" 8737: OutputStream 8737: # 143 "/<>/templates/lib/outputstream.h" 3 4 8737: &operator=(const 8737: # 143 "/<>/templates/lib/outputstream.h" 8737: OutputStream 8737: # 143 "/<>/templates/lib/outputstream.h" 3 4 8737: &) = delete; 8737: 8737: # 144 "/<>/templates/lib/outputstream.h" 8737: }; 8737: } 8737: # 30 "/<>/templates/lib/node.h" 2 8737: # 1 "/<>/templates/lib/safestring.h" 1 8737: # 24 "/<>/templates/lib/safestring.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/safestring.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QString" 1 3 4 8737: # 27 "/<>/templates/lib/safestring.h" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8737: # 28 "/<>/templates/lib/safestring.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: # 92 "/<>/templates/lib/safestring.h" 8737: class __attribute__((visibility("default"))) SafeString 8737: { 8737: public: 8737: 8737: 8737: 8737: enum Safety { 8737: IsSafe, 8737: IsNotSafe 8737: 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: SafeString(); 8737: 8737: 8737: 8737: 8737: SafeString(const SafeString &safeString); 8737: 8737: 8737: 8737: 8737: 8737: 8737: SafeString(const QString &str, bool safe); 8737: 8737: 8737: 8737: 8737: 8737: 8737: SafeString(const QString &str, 8737: Safety safety 8737: = IsNotSafe); 8737: 8737: 8737: 8737: 8737: ~SafeString(); 8737: 8737: 8737: 8737: 8737: 8737: void setNeedsEscape(bool needsEscape); 8737: 8737: 8737: 8737: 8737: 8737: bool needsEscape() const; 8737: 8737: 8737: 8737: 8737: bool isSafe() const; 8737: 8737: 8737: 8737: 8737: 8737: void setSafety(Safety safety); 8737: # 167 "/<>/templates/lib/safestring.h" 8737: class __attribute__((visibility("default"))) NestedString : public QString 8737: { 8737: 8737: friend class SafeString; 8737: SafeString *m_safeString; 8737: 8737: public: 8737: NestedString(SafeString *safeString); 8737: NestedString(const QString &content, SafeString *safeString); 8737: 8737: SafeString &append(const SafeString &str); 8737: SafeString &append(const QString &str); 8737: SafeString &append(const QStringRef &reference); 8737: SafeString &append(const QLatin1String &str); 8737: # 196 "/<>/templates/lib/safestring.h" 8737: SafeString &append(const QChar ch); 8737: 8737: SafeString &fill(QChar ch, int size = -1); 8737: 8737: SafeString &insert(int position, const SafeString &str); 8737: SafeString &insert(int positiontion, _Up>>>; 8768: std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); 8768: } 8768: 8768: 8768: template 8768: using __rethrow_if_nested_cond = typename enable_if< 8768: __and_, 8768: __or_<__not_>, 8768: is_convertible<_Tp*, nested_exception*>>>::value 8768: >::type; 8768: 8768: 8768: template 8768: inline __rethrow_if_nested_cond<_Ex> 8768: __rethrow_if_nested_impl(const _Ex* __ptr) 8768: { 8768: if (auto __ne_ptr = dynamic_cast(__ptr)) 8768: __ne_ptr->rethrow_nested(); 8768: } 8768: 8768: 8768: inline void 8768: __rethrow_if_nested_impl(const void*) 8768: { } 8768: 8768: 8768: template 8768: inline void 8768: rethrow_if_nested(const _Ex& __ex) 8768: { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } 8768: 8768: 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: #pragma GCC visibility pop 8768: # 145 "/usr/include/c++/8/exception" 2 3 8768: # 41 "/usr/include/c++/8/new" 2 3 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: extern "C++" { 8768: 8768: namespace std 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: class bad_alloc : public exception 8768: { 8768: public: 8768: bad_alloc() throw() { } 8768: 8768: 8768: 8768: virtual ~bad_alloc() throw(); 8768: 8768: 8768: virtual const char* what() const throw(); 8768: }; 8768: 8768: 8768: class bad_array_new_length : public bad_alloc 8768: { 8768: public: 8768: bad_array_new_length() throw() { } 8768: 8768: 8768: 8768: virtual ~bad_array_new_length() throw(); 8768: 8768: 8768: virtual const char* what() const throw(); 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct nothrow_t 8768: { 8768: 8768: explicit nothrow_t() = default; 8768: 8768: }; 8768: 8768: extern const nothrow_t nothrow; 8768: 8768: 8768: 8768: typedef void (*new_handler)(); 8768: 8768: 8768: 8768: new_handler set_new_handler(new_handler) throw(); 8768: 8768: 8768: 8768: new_handler get_new_handler() noexcept; 8768: 8768: } 8768: # 120 "/usr/include/c++/8/new" 3 8768: void* operator new(std::size_t) 8768: __attribute__((__externally_visible__)); 8768: void* operator new[](std::size_t) 8768: __attribute__((__externally_visible__)); 8768: void operator delete(void*) noexcept 8768: __attribute__((__externally_visible__)); 8768: void operator delete[](void*) noexcept 8768: __attribute__((__externally_visible__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: void* operator new(std::size_t, const std::nothrow_t&) noexcept 8768: __attribute__((__externally_visible__)); 8768: void* operator new[](std::size_t, const std::nothrow_t&) noexcept 8768: __attribute__((__externally_visible__)); 8768: void operator delete(void*, const std::nothrow_t&) noexcept 8768: __attribute__((__externally_visible__)); 8768: void operator delete[](void*, const std::nothrow_t&) noexcept 8768: __attribute__((__externally_visible__)); 8768: # 168 "/usr/include/c++/8/new" 3 8768: inline void* operator new(std::size_t, void* __p) noexcept 8768: { return __p; } 8768: inline void* operator new[](std::size_t, void* __p) noexcept 8768: { return __p; } 8768: 8768: 8768: inline void operator delete (void*, void*) noexcept { } 8768: inline void operator delete[](void*, void*) noexcept { } 8768: 8768: } 8768: # 216 "/usr/include/c++/8/new" 3 8768: #pragma GCC visibility pop 8768: # 60 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8768: 8768: # 1 "/usr/include/c++/8/ext/alloc_traits.h" 1 3 8768: # 32 "/usr/include/c++/8/ext/alloc_traits.h" 3 8768: 8768: # 33 "/usr/include/c++/8/ext/alloc_traits.h" 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/alloc_traits.h" 1 3 8768: # 35 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: # 1 "/usr/include/c++/8/bits/memoryfwd.h" 1 3 8768: # 46 "/usr/include/c++/8/bits/memoryfwd.h" 3 8768: 8768: # 47 "/usr/include/c++/8/bits/memoryfwd.h" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 63 "/usr/include/c++/8/bits/memoryfwd.h" 3 8768: template 8768: class allocator; 8768: 8768: template<> 8768: class allocator; 8768: 8768: 8768: template 8768: struct uses_allocator; 8768: 8768: 8768: 8768: 8768: } 8768: # 36 "/usr/include/c++/8/bits/alloc_traits.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: struct __allocator_traits_base 8768: { 8768: template 8768: struct __rebind : __replace_first_arg<_Tp, _Up> { }; 8768: 8768: template 8768: struct __rebind<_Tp, _Up, 8768: __void_t::other>> 8768: { using type = typename _Tp::template rebind<_Up>::other; }; 8768: 8768: protected: 8768: template 8768: using __pointer = typename _Tp::pointer; 8768: template 8768: using __c_pointer = typename _Tp::const_pointer; 8768: template 8768: using __v_pointer = typename _Tp::void_pointer; 8768: template 8768: using __cv_pointer = typename _Tp::const_void_pointer; 8768: template 8768: using __pocca = typename _Tp::propagate_on_container_copy_assignment; 8768: template 8768: using __pocma = typename _Tp::propagate_on_container_move_assignment; 8768: template 8768: using __pocs = typename _Tp::propagate_on_container_swap; 8768: template 8768: using __equal = typename _Tp::is_always_equal; 8768: }; 8768: 8768: template 8768: using __alloc_rebind 8768: = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct allocator_traits : __allocator_traits_base 8768: { 8768: 8768: typedef _Alloc allocator_type; 8768: 8768: typedef typename _Alloc::value_type value_type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: using pointer = __detected_or_t; 8768: 8768: private: 8768: 8768: template class _Func, typename _Tp, typename = void> 8768: struct _Ptr 8768: { 8768: using type = typename pointer_traits::template rebind<_Tp>; 8768: }; 8768: 8768: template class _Func, typename _Tp> 8768: struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>> 8768: { 8768: using type = _Func<_Alloc>; 8768: }; 8768: 8768: 8768: template 8768: struct _Diff 8768: { using type = typename pointer_traits<_PtrT>::difference_type; }; 8768: 8768: template 8768: struct _Diff<_A2, _PtrT, __void_t> 8768: { using type = typename _A2::difference_type; }; 8768: 8768: 8768: template 8768: struct _Size : make_unsigned<_DiffT> { }; 8768: 8768: template 8768: struct _Size<_A2, _DiffT, __void_t> 8768: { using type = typename _A2::size_type; }; 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using void_pointer = typename _Ptr<__v_pointer, void>::type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using difference_type = typename _Diff<_Alloc, pointer>::type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using size_type = typename _Size<_A, const QString &str); 8737: SafeString &insert(int position, const QLatin1String &str); 8737: SafeString &insert(int position, const QChar *unicode, int size); 8737: SafeString &insert(int position, QChar ch); 8737: 8737: SafeString left(int n) const; 8737: SafeString leftJustified(int width, QChar fill = QLatin1Char(' '), 8737: bool truncate = false) const; 8737: SafeString mid(int position, int n = -1) const; 8737: 8737: SafeString normalized(NormalizationForm mode) const; 8737: SafeString normalized(NormalizationForm mode, 8737: QChar::UnicodeVersion version) const; 8737: 8737: SafeString &prepend(const SafeString &str); 8737: SafeString &prepend(const QString &str); 8737: SafeString &prepend(const QLatin1String &str); 8737: # 233 "/<>/templates/lib/safestring.h" 8737: SafeString &prepend(QChar ch); 8737: 8737: void push_back(const SafeString &other); 8737: void push_front(const SafeString &other); 8737: 8737: SafeString &remove(int position, int n); 8737: SafeString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &remove(const SafeString &str, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &remove(const QString &str, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &remove(const QRegularExpression &rx); 8737: SafeString repeated(int times) const; 8737: SafeString &replace(int position, int n, const SafeString &after); 8737: SafeString &replace(int position, int n, const QString &after); 8737: SafeString &replace(int position, int n, const QChar *unicode, int size); 8737: SafeString &replace(int position, int n, QChar after); 8737: SafeString &replace(const SafeString &before, const SafeString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QString &before, const SafeString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const SafeString &before, const QString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QString &before, const QString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QChar *before, int blen, const QChar *after, 8737: int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(QChar ch, const SafeString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(QChar ch, const QString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(QChar before, QChar after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QLatin1String &before, const QLatin1String &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QLatin1String &before, const SafeString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QLatin1String &before, const QString &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const SafeString &before, const QLatin1String &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QString &before, const QLatin1String &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(QChar c, const QLatin1String &after, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8737: SafeString &replace(const QRegularExpression &rx, const SafeString &after); 8737: SafeString &replace(const QRegularExpression &rx, const QString &after); 8737: 8737: SafeString right(int n) const; 8737: SafeString rightJustified(int width, QChar fill = QLatin1Char(' '), 8737: bool truncate = false) const; 8737: 8737: SafeString section(QChar sep, int start, int end = -1, 8737: SectionFlags flags = SectionDefault) const; 8737: SafeString section(const SafeString &sep, int start, int end = -1, 8737: SectionFlags flags = SectionDefault) const; 8737: SafeString section(const QString &sep, int start, int end = -1, 8737: SectionFlags flags = SectionDefault) const; 8737: SafeString section(const QRegularExpression ®, int start, int end = -1, 8737: SectionFlags flags = SectionDefault) const; 8737: SafeString &setNum(int n, int base = 10); 8737: SafeString &setNum(uint n, int base = 10); 8737: SafeString &setNum(long n, int base = 10); 8737: SafeString &setNum(ulong n, int base = 10); 8737: SafeString &setNum(qlonglong n, int base = 10); 8737: SafeString &setNum(qulonglong n, int base = 10); 8737: SafeString &setNum(short n, int base = 10); 8737: SafeString &setNum(ushort n, int base = 10); 8737: SafeString &setNum(double n, char format = 'g', int precision = 6); 8737: SafeString &setNum(float n, char format = 'g', int precision = 6); 8737: SafeString &setUnicode(const QChar *unicode, int size); 8737: SafeString &setUtf16(const ushort *unicode, int size); 8737: SafeString simplified() const; 8737: 8737: QStringList split(const SafeString &sep, 8737: SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: QStringList split(const QString &sep, 8737: SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts, 8737: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8737: QStringList split(const QRegularExpression &rx, 8737: SplitBehavior behavior = KeepEmptyParts) const; 8737: 8737: SafeString toLower() const; 8737: SafeString toUpper() const; 8737: SafeString trimmed() const; 8737: 8737: void chop(int n); 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: const NestedString &get() const { return m_nestedString; } 8737: 8737: 8737: 8737: 8737: NestedString &get() { return m_nestedString; } 8737: 8737: 8737: 8737: 8737: operator QString() const { return m_nestedString; } 8737: 8737: 8737: 8737: 8737: SafeString &operator=(const SafeString &str); 8737: 8737: 8737: 8737: 8737: 8737: 8737: SafeString operator+(const QString &str); 8737: 8737: 8737: 8737: 8737: 8737: 8737: SafeString operator+(const SafeString &str); 8737: 8737: 8737: 8737: 8737: 8737: 8737: SafeString &operator+=(const QString &str); 8737: 8737: 8737: 8737: 8737: 8737: 8737: SafeString &operator+=(const SafeString &str); 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool operator==(const SafeString &other) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool operator==(const QString &other) const; 8737: 8737: 8737: 8737: 8737: operator QVariant() const { return QVariant::fromValue(*this); } 8737: 8737: private: 8737: 8737: NestedString m_nestedString; 8737: 8737: Safety m_safety; 8737: bool m_needsescape; 8737: }; 8737: } 8737: 8737: 8737: # 402 "/<>/templates/lib/safestring.h" 3 4 8737: template <> struct QMetaTypeId< 8737: # 402 "/<>/templates/lib/safestring.h" 8737: Grantlee::SafeString 8737: # 402 "/<>/templates/lib/safestring.h" 3 4 8737: > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; illoc, difference_type>::type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using propagate_on_container_copy_assignment 8768: = __detected_or_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using propagate_on_container_move_assignment 8768: = __detected_or_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using propagate_on_container_swap 8768: = __detected_or_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: using is_always_equal 8768: = __detected_or_t::type, __equal, _Alloc>; 8768: 8768: template 8768: using rebind_alloc = __alloc_rebind<_Alloc, _Tp>; 8768: template 8768: using rebind_traits = allocator_traits>; 8768: 8768: private: 8768: template 8768: static auto 8768: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int) 8768: -> decltype(__a.allocate(__n, __hint)) 8768: { return __a.allocate(__n, __hint); } 8768: 8768: template 8768: static pointer 8768: _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...) 8768: { return __a.allocate(__n); } 8768: 8768: template 8768: struct __construct_helper 8768: { 8768: template()->construct( 8768: std::declval<_Tp*>(), std::declval<_Args>()...))> 8768: static true_type __test(int); 8768: 8768: template 8768: static false_type __test(...); 8768: 8768: using type = decltype(__test<_Alloc>(0)); 8768: }; 8768: 8768: template 8768: using __has_construct 8768: = typename __construct_helper<_Tp, _Args...>::type; 8768: 8768: template 8768: static _Require<__has_construct<_Tp, _Args...>> 8768: _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8768: { __a.construct(__p, std::forward<_Args>(__args)...); } 8768: 8768: template 8768: static 8768: _Require<__and_<__not_<__has_construct<_Tp, _Args...>>, 8768: is_constructible<_Tp, _Args...>>> 8768: _S_construct(_Alloc&, _Tp* __p, _Args&&... __args) 8768: { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } 8768: 8768: template 8768: static auto 8768: _S_destroy(_Alloc2& __a, _Tp* __p, int) 8768: -> decltype(__a.destroy(__p)) 8768: { __a.destroy(__p); } 8768: 8768: template 8768: static void 8768: _S_destroy(_Alloc2&, _Tp* __p, ...) 8768: { __p->~_Tp(); } 8768: 8768: template 8768: static auto 8768: _S_max_size(_Alloc2& __a, int) 8768: -> decltype(__a.max_size()) 8768: { return __a.max_size(); } 8768: 8768: template 8768: static size_type 8768: _S_max_size(_Alloc2&, ...) 8768: { 8768: 8768: 8768: return __gnu_cxx::__numeric_traits::__max 8768: / sizeof(value_type); 8768: } 8768: 8768: template 8768: static auto 8768: _S_select(_Alloc2& __a, int) 8768: -> decltype(__a.select_on_container_copy_construction()) 8768: { return __a.select_on_container_copy_construction(); } 8768: 8768: template 8768: static _Alloc2 8768: _S_select(_Alloc2& __a, ...) 8768: { return __a; } 8768: 8768: public: 8768: # 299 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static pointer 8768: allocate(_Alloc& __a, size_type __n) 8768: { return __a.allocate(__n); } 8768: # 314 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static pointer 8768: allocate(_Alloc& __a, size_type __n, const_void_pointer __hint) 8768: { return _S_allocate(__a, __n, __hint, 0); } 8768: # 326 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static void 8768: deallocate(_Alloc& __a, pointer __p, size_type __n) 8768: { __a.deallocate(__p, __n); } 8768: # 341 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: template 8768: static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args) 8768: -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...)) 8768: { _S_construct(__a, __p, std::forward<_Args>(__args)...); } 8768: # 354 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: template 8768: static void destroy(_Alloc& __a, _Tp* __p) 8768: { _S_destroy(__a, __p, 0); } 8768: # 366 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static size_type max_size(const _Alloc& __a) noexcept 8768: { return _S_max_size(__a, 0); } 8768: # 377 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static _Alloc 8768: select_on_container_copy_construction(const _Alloc& __rhs) 8768: { return _S_select(__rhs, 0); } 8768: }; 8768: 8768: 8768: template 8768: struct allocator_traits> 8768: { 8768: 8768: using allocator_type = allocator<_Tp>; 8768: 8768: using value_type = _Tp; 8768: 8768: 8768: using pointer = _Tp*; 8768: 8768: 8768: using const_pointer = const _Tp*; 8768: 8768: 8768: using void_pointer = void*; 8768: 8768: 8768: using const_void_pointer = const void*; 8768: 8768: 8768: using difference_type = std::ptrdiff_t; 8768: 8768: 8768: using size_type = std::size_t; 8768: 8768: 8768: using propagate_on_container_copy_assignment = false_type; 8768: 8768: 8768: using propagate_on_container_move_assignment = true_type; 8768: 8768: 8768: using propagate_on_container_swap = false_type; 8768: 8768: 8768: using is_always_equal = true_type; 8768: 8768: template 8768: using rebind_alloc = allocator<_Up>; 8768: 8768: template 8768: using rebind_traits = allocator_traits>; 8768: # 434 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static pointer 8768: allocate(allocator_type& __a, size_type __n) 8768: { return __a.allocate(__n); } 8768: # 448 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static pointer 8768: allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) 8768: { return __a.allocate(__n, __hint); } 8768: # 460 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: static void 8768: deallocate(allocator_type& __a, pointer __p, size_type __n) 8768: { __a.deallocate(__p, __n); } 8768: # 472 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: template 8768: static void 8768: construct(allocator_type& __a, _Up* __p, _Args&&... __args) 8768: { __a.construct(__p, std::forward<_Args>(__args)...); } 8768: # 484 "/usr/include/c++/8/bits/alloc_traits.h" 3 8768: template 8768: static void 8768: destroy(allocator_type& __a, _Up* __p) 8768: { __a.destroy(__p); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: static size_type 8768: max_size(const allocator_type& __a) noexcept 8768: { return __a.max_size(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: static allocator_type 8768: select_on_container_copy_construction(const allocator_type& __rhs) 8768: { return __rhs; } 8768: }; 8768: 8768: 8768: template 8768: inline void 8768: __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type) 8768: { __one = __two; } 8768: 8768: template 8768: inline void 8768: __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type) 8768: { } 8768: 8768: template 8768: inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two) 8768: { 8768: typedef allocator_traits<_Alloc> __traits; 8768: typedef typename __traits::propagate_on_container_copy_assignment __pocca; 8768: __do_alloc_on_copy(__one, __two, __pocca()); 8768: } 8768: 8768: template 8768: inline _Alloc __allf (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< 8737: # 402 "/<>/templates/lib/safestring.h" 8737: Grantlee::SafeString 8737: # 402 "/<>/templates/lib/safestring.h" 3 4 8737: >( 8737: # 402 "/<>/templates/lib/safestring.h" 8737: "Grantlee::SafeString" 8737: # 402 "/<>/templates/lib/safestring.h" 3 4 8737: , reinterpret_cast< 8737: # 402 "/<>/templates/lib/safestring.h" 8737: Grantlee::SafeString 8737: # 402 "/<>/templates/lib/safestring.h" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8737: # 31 "/<>/templates/lib/node.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 2 3 4 8737: # 33 "/<>/templates/lib/node.h" 2 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSet" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qset.h" 1 3 4 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qset.h" 3 4 8737: 8737: 8737: 8737: template 8737: class QSet 8737: { 8737: typedef QHash Hash; 8737: 8737: public: 8737: inline QSet() noexcept {} 8737: 8737: inline QSet(std::initializer_list list) 8737: { 8737: reserve(int(list.size())); 8737: for (typename std::initializer_list::const_iterator it = list.begin(); it != list.end(); ++it) 8737: insert(*it); 8737: } 8737: 8737: 8737: 8737: 8737: inline void swap(QSet &other) noexcept { q_hash.swap(other.q_hash); } 8737: 8737: inline bool operator==(const QSet &other) const 8737: { return q_hash == other.q_hash; } 8737: inline bool operator!=(const QSet &other) const 8737: { return q_hash != other.q_hash; } 8737: 8737: inline int size() const { return q_hash.size(); } 8737: 8737: inline bool isEmpty() const { return q_hash.isEmpty(); } 8737: 8737: inline int capacity() const { return q_hash.capacity(); } 8737: inline void reserve(int size); 8737: inline void squeeze() { q_hash.squeeze(); } 8737: 8737: inline void detach() { q_hash.detach(); } 8737: inline bool isDetached() const { return q_hash.isDetached(); } 8737: 8737: inline void setSharable(bool sharable) { q_hash.setSharable(sharable); } 8737: 8737: 8737: inline void clear() { q_hash.clear(); } 8737: 8737: inline bool remove(const T &value) { return q_hash.remove(value) != 0; } 8737: 8737: inline bool contains(const T &value) const { return q_hash.contains(value); } 8737: 8737: bool contains(const QSet &set) const; 8737: 8737: class const_iterator; 8737: 8737: class iterator 8737: { 8737: typedef QHash Hash; 8737: typename Hash::iterator i; 8737: friend class const_iterator; 8737: friend class QSet; 8737: 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: 8737: inline iterator() {} 8737: inline iterator(typename Hash::iterator o) : i(o) {} 8737: inline iterator(const iterator &o) : i(o.i) {} 8737: inline iterator &operator=(const iterator &o) { i = o.i; return *this; } 8737: inline const T &operator*() const { return i.key(); } 8737: inline const T *operator->() const { return &i.key(); } 8737: inline bool operator==(const iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const iterator &o) const { return i != o.i; } 8737: inline bool operator==(const const_iterator &o) const 8737: { return i == o.i; } 8737: inline bool operator!=(const const_iterator &o) const 8737: { return i != o.i; } 8737: inline iterator &operator++() { ++i; return *this; } 8737: inline iterator operator++(int) { iterator r = *this; ++i; return r; } 8737: inline iterator &operator--() { --i; return *this; } 8737: inline iterator operator--(int) { iterator r = *this; --i; return r; } 8737: inline iterator operator+(int j) const { return i + j; } 8737: inline iterator operator-(int j) const { return i - j; } 8737: inline iterator &operator+=(int j) { i += j; return *this; } 8737: inline iterator &operator-=(int j) { i -= j; return *this; } 8737: }; 8737: 8737: class const_iterator 8737: { 8737: typedef QHash Hash; 8737: typename Hash::const_iterator i; 8737: friend class iterator; 8737: friend class QSet; 8737: 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: 8737: inline const_iterator() {} 8737: inline const_iterator(typename Hash::const_iterator o) : i(o) {} 8737: inline const_iterator(const const_iterator &o) : i(o.i) {} 8737: inline const_iterator(const iterator &o) 8737: : i(o.i) {} 8737: inline const_iterator &operator=(const const_iterator &o) { i = o.i; return *this; } 8737: inline const T &operator*() const { return i.key(); } 8737: inline const T *operator->() const { return &i.key(); } 8737: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8737: inline const_iterator &operator++() { ++i; return *this; } 8737: inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; } 8737: inline const_iterator &operator--() { --i; return *this; } 8737: inline const_iterator operator--(int) { const_iterator r = *this; --i; return r; } 8737: inline const_iterator operator+(int j) const { return i + j; } 8737: inline const_iterator operator-(int j) const { return i - j; } 8737: inline const_iterator &operator+=(int j) { i += j; return *this; } 8737: inline const_iterator &operator-=(int j) { i -= j; return *this; } 8737: }; 8737: 8737: 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: 8737: inline iterator begin() { return q_hash.begin(); } 8737: inline const_iterator begin() const noexcept { return q_hash.begin(); } 8737: inline const_iterator cbegin() const noexcept { return q_hash.begin(); } 8737: inline const_iterator constBegin() const noexcept { return q_hash.constBegin(); } 8737: inline iterator end() { return q_hash.end(); } 8737: inline const_iterator end() const noexcept { return q_hash.end(); } 8737: inline const_iterator cend() const noexcept { return q_hash.end(); } 8737: inline const_iterator constEnd() const noexcept { return q_hash.constEnd(); } 8737: 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8737: 8737: iterator erase(iterator i) 8737: { return erase(m2c(i)); } 8737: oc_on_copy(const _Alloc& __a) 8768: { 8768: typedef allocator_traits<_Alloc> __traits; 8768: return __traits::select_on_container_copy_construction(__a); 8768: } 8768: 8768: template 8768: inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type) 8768: { __one = std::move(__two); } 8768: 8768: template 8768: inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type) 8768: { } 8768: 8768: template 8768: inline void __alloc_on_move(_Alloc& __one, _Alloc& __two) 8768: { 8768: typedef allocator_traits<_Alloc> __traits; 8768: typedef typename __traits::propagate_on_container_move_assignment __pocma; 8768: __do_alloc_on_move(__one, __two, __pocma()); 8768: } 8768: 8768: template 8768: inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type) 8768: { 8768: using std::swap; 8768: swap(__one, __two); 8768: } 8768: 8768: template 8768: inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type) 8768: { } 8768: 8768: template 8768: inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two) 8768: { 8768: typedef allocator_traits<_Alloc> __traits; 8768: typedef typename __traits::propagate_on_container_swap __pocs; 8768: __do_alloc_on_swap(__one, __two, __pocs()); 8768: } 8768: 8768: template 8768: class __is_copy_insertable_impl 8768: { 8768: typedef allocator_traits<_Alloc> _Traits; 8768: 8768: template(), 8768: std::declval<_Up*>(), 8768: std::declval()))> 8768: static true_type 8768: _M_select(int); 8768: 8768: template 8768: static false_type 8768: _M_select(...); 8768: 8768: public: 8768: typedef decltype(_M_select(0)) type; 8768: }; 8768: 8768: 8768: template 8768: struct __is_copy_insertable 8768: : __is_copy_insertable_impl<_Alloc>::type 8768: { }; 8768: 8768: 8768: template 8768: struct __is_copy_insertable> 8768: : is_copy_constructible<_Tp> 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct __is_allocator : false_type { }; 8768: 8768: template 8768: struct __is_allocator<_Alloc, 8768: __void_t().allocate(size_t{}))>> 8768: : true_type { }; 8768: 8768: template 8768: using _RequireAllocator 8768: = typename enable_if<__is_allocator<_Alloc>::value, _Alloc>::type; 8768: 8768: 8768: 8768: } 8768: # 37 "/usr/include/c++/8/ext/alloc_traits.h" 2 3 8768: 8768: 8768: 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __alloc_traits 8768: 8768: : std::allocator_traits<_Alloc> 8768: 8768: { 8768: typedef _Alloc allocator_type; 8768: 8768: typedef std::allocator_traits<_Alloc> _Base_type; 8768: typedef typename _Base_type::value_type value_type; 8768: typedef typename _Base_type::pointer pointer; 8768: typedef typename _Base_type::const_pointer const_pointer; 8768: typedef typename _Base_type::size_type size_type; 8768: typedef typename _Base_type::difference_type difference_type; 8768: 8768: typedef value_type& reference; 8768: typedef const value_type& const_reference; 8768: using _Base_type::allocate; 8768: using _Base_type::deallocate; 8768: using _Base_type::construct; 8768: using _Base_type::destroy; 8768: using _Base_type::max_size; 8768: 8768: private: 8768: template 8768: using __is_custom_pointer 8768: = std::__and_, 8768: std::__not_>>; 8768: 8768: public: 8768: 8768: template 8768: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8768: construct(_Alloc& __a, _Ptr __p, _Args&&... __args) 8768: { 8768: _Base_type::construct(__a, std::__to_address(__p), 8768: std::forward<_Args>(__args)...); 8768: } 8768: 8768: 8768: template 8768: static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type 8768: destroy(_Alloc& __a, _Ptr __p) 8768: { _Base_type::destroy(__a, std::__to_address(__p)); } 8768: 8768: static _Alloc _S_select_on_copy(const _Alloc& __a) 8768: { return _Base_type::select_on_container_copy_construction(__a); } 8768: 8768: static void _S_on_swap(_Alloc& __a, _Alloc& __b) 8768: { std::__alloc_on_swap(__a, __b); } 8768: 8768: static constexpr bool _S_propagate_on_copy_assign() 8768: { return _Base_type::propagate_on_container_copy_assignment::value; } 8768: 8768: static constexpr bool _S_propagate_on_move_assign() 8768: { return _Base_type::propagate_on_container_move_assignment::value; } 8768: 8768: static constexpr bool _S_propagate_on_swap() 8768: { return _Base_type::propagate_on_container_swap::value; } 8768: 8768: static constexpr bool _S_always_equal() 8768: { return _Base_type::is_always_equal::value; } 8768: 8768: static constexpr bool _S_nothrow_move() 8768: { return _S_propagate_on_move_assign() || _S_always_equal(); } 8768: 8768: template 8768: struct rebind 8768: { typedef typename _Base_type::template rebind_alloc<_Tp> other; }; 8768: # 158 "/usr/include/c++/8/ext/alloc_traits.h" 3 8768: }; 8768: 8768: 8768: } 8768: # 62 "/usr/include/c++/8/bits/stl_construct.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline void 8768: _Construct(_T1* __p, _Args&&... __args) 8768: { ::new(static_cast(__p)) _T1(std::forward<_Args>(__args)...); } 8768: # 87 "/usr/include/c++/8/bits/stl_construct.h" 3 8768: template 8768: inline void 8768: _Construct_novalue(_T1* __p) 8768: { ::new(static_cast(__p)) _T1; } 8768: 8768: 8768: 8768: 8768: template 8768: inline void 8768: _Destroy(_Tp* __pointer) 8768: { __pointer->~_Tp(); } 8768: 8768: template 8768: struct _Destroy_aux 8768: { 8768: template 8768: static void 8768: __destroy(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: for (; __first != __last; ++__first) 8768: std::_Destroy(std::__addressof(*__first)); 8768: } 8768: }; 8768: 8768: template<> 8768: struct _Destroy_aux 8768: { 8768: template 8768: static void 8768: __destroy(_ForwardIterator, _ForwardIterator) { } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline void 8768: _Destroy(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _Value_type; 8768: 8768: 8768: static_assert(is_destructible<_Value_type>::value, 8768: "value type is destructible"); 8768: 8768: std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: 8768: __destroy(__first, __last); 8768: } 8768: 8768: template 8768: struct _Destroy_n_aux 8768: { 8768: template 8768: static _ForwardIterator 8768: __destroy_n(_ForwardIterator __first, _Size __count) 8768: { 8768: for (; __count > 0; (void)++__first, --__count) 8768: std::_Destroy(std::__addressof(*__first)); 8768: re iterator erase(const_iterator i) 8737: { 8737: do { } while ((false) && (isValidIterator(i))); 8737: return q_hash.erase(reinterpret_cast(i)); 8737: } 8737: 8737: 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: inline int count() const { return q_hash.count(); } 8737: inline iterator insert(const T &value) 8737: { return static_cast(q_hash.insert(value, QHashDummyValue())); } 8737: iterator find(const T &value) { return q_hash.find(value); } 8737: const_iterator find(const T &value) const { return q_hash.find(value); } 8737: inline const_iterator constFind(const T &value) const { return find(value); } 8737: QSet &unite(const QSet &other); 8737: QSet &intersect(const QSet &other); 8737: bool intersects(const QSet &other) const; 8737: QSet &subtract(const QSet &other); 8737: 8737: 8737: typedef T key_type; 8737: typedef T value_type; 8737: typedef value_type *pointer; 8737: typedef const value_type *const_pointer; 8737: typedef value_type &reference; 8737: typedef const value_type &const_reference; 8737: typedef qptrdiff difference_type; 8737: typedef int size_type; 8737: 8737: inline bool empty() const { return isEmpty(); } 8737: 8737: inline QSet &operator<<(const T &value) { insert(value); return *this; } 8737: inline QSet &operator|=(const QSet &other) { unite(other); return *this; } 8737: inline QSet &operator|=(const T &value) { insert(value); return *this; } 8737: inline QSet &operator&=(const QSet &other) { intersect(other); return *this; } 8737: inline QSet &operator&=(const T &value) 8737: { QSet result; if (contains(value)) result.insert(value); return (*this = result); } 8737: inline QSet &operator+=(const QSet &other) { unite(other); return *this; } 8737: inline QSet &operator+=(const T &value) { insert(value); return *this; } 8737: inline QSet &operator-=(const QSet &other) { subtract(other); return *this; } 8737: inline QSet &operator-=(const T &value) { remove(value); return *this; } 8737: inline QSet operator|(const QSet &other) const 8737: { QSet result = *this; result |= other; return result; } 8737: inline QSet operator&(const QSet &other) const 8737: { QSet result = *this; result &= other; return result; } 8737: inline QSet operator+(const QSet &other) const 8737: { QSet result = *this; result += other; return result; } 8737: inline QSet operator-(const QSet &other) const 8737: { QSet result = *this; result -= other; return result; } 8737: 8737: QList toList() const; 8737: inline QList values() const { return toList(); } 8737: 8737: static QSet fromList(const QList &list); 8737: 8737: private: 8737: Hash q_hash; 8737: 8737: static const_iterator m2c(iterator it) noexcept 8737: { return const_iterator(typename Hash::const_iterator(it.i.i)); } 8737: 8737: bool isValidIterator(const iterator &i) const 8737: { 8737: return q_hash.isValidIterator(reinterpret_cast(i)); 8737: } 8737: bool isValidIterator(const const_iterator &i) const noexcept 8737: { 8737: return q_hash.isValidIterator(reinterpret_cast(i)); 8737: } 8737: }; 8737: 8737: template 8737: uint qHash(const QSet &key, uint seed = 0) 8737: noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed))) 8737: { 8737: return qHashRangeCommutative(key.begin(), key.end(), seed); 8737: } 8737: 8737: 8737: 8737: template 8737: inline void QSet::reserve(int asize) { q_hash.reserve(asize); } 8737: 8737: template 8737: inline QSet &QSet::unite(const QSet &other) 8737: { 8737: QSet copy(other); 8737: typename QSet::const_iterator i = copy.constEnd(); 8737: while (i != copy.constBegin()) { 8737: --i; 8737: insert(*i); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: inline QSet &QSet::intersect(const QSet &other) 8737: { 8737: QSet copy1; 8737: QSet copy2; 8737: if (size() <= other.size()) { 8737: copy1 = *this; 8737: copy2 = other; 8737: } else { 8737: copy1 = other; 8737: copy2 = *this; 8737: *this = copy1; 8737: } 8737: typename QSet::const_iterator i = copy1.constEnd(); 8737: while (i != copy1.constBegin()) { 8737: --i; 8737: if (!copy2.contains(*i)) 8737: remove(*i); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: inline bool QSet::intersects(const QSet &other) const 8737: { 8737: const bool otherIsBigger = other.size() > size(); 8737: const QSet &smallestSet = otherIsBigger ? *this : other; 8737: const QSet &biggestSet = otherIsBigger ? other : *this; 8737: const bool equalSeeds = q_hash.d->seed == other.q_hash.d->seed; 8737: typename QSet::const_iterator i = smallestSet.cbegin(); 8737: typename QSet::const_iterator e = smallestSet.cend(); 8737: 8737: if (__builtin_expect(!!(equalSeeds), true)) { 8737: 8737: while (i != e) { 8737: if (*biggestSet.q_hash.findNode(*i, i.i.i->h) != biggestSet.q_hash.e) 8737: return true; 8737: ++i; 8737: } 8737: } else { 8737: while (i != e) { 8737: if (biggestSet.contains(*i)) 8737: return true; 8737: ++i; 8737: } 8737: } 8737: 8737: return false; 8737: } 8737: 8737: template 8737: inline QSet &QSet::subtract(const QSet &other) 8737: { 8737: if (&other == this) { 8737: clear(); 8737: } else { 8737: auto i = other.constEnd(); 8737: while (i != other.constBegin()) { 8737: --i; 8737: remove(*i); 8737: } 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: inline bool QSet::contains(const QSet &other) const 8737: { 8737: typename QSet::const_iterator i = other.constBegin(); 8737: while (i != other.constEnd()) { 8737: if (!contains(*i)) 8737: return false; 8737: ++i; 8737: } 8737: return true; 8737: } 8737: 8737: template 8737: QList QSet::toList() const 8737: { 8737: QList result; 8737: result.reserve(size()); 8737: typename QSet::const_iterator i = constBegin(); 8737: while (i != constEnd()) { 8737: result.append(*i); 8737: ++i; 8737: } 8737: return result; 8737: } 8737: 8737: template 8737: QSet QList::toSet() const 8737: { 8737: QSet result; 8737: result.reserve(size()); 8737: for (int i = 0; i < size(); ++i) 8737: result.insert(at(i)); 8737: return result; 8737: } 8737: 8737: template 8737: QSet QSet::fromList(const QList &list) 8737: { 8737: return list.toSet(); 8737: } 8737: 8737: template 8737: QList QList::fromSet(const QSet &set) 8737: { 8737: return set.toList(); 8737: } 8737: 8737: 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 boolturn __first; 8768: } 8768: }; 8768: 8768: template<> 8768: struct _Destroy_n_aux 8768: { 8768: template 8768: static _ForwardIterator 8768: __destroy_n(_ForwardIterator __first, _Size __count) 8768: { 8768: std::advance(__first, __count); 8768: return __first; 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline _ForwardIterator 8768: _Destroy_n(_ForwardIterator __first, _Size __count) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _Value_type; 8768: 8768: 8768: static_assert(is_destructible<_Value_type>::value, 8768: "value type is destructible"); 8768: 8768: return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: 8768: __destroy_n(__first, __count); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8768: _Allocator& __alloc) 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8768: for (; __first != __last; ++__first) 8768: __traits::destroy(__alloc, std::__addressof(*__first)); 8768: } 8768: 8768: template 8768: inline void 8768: _Destroy(_ForwardIterator __first, _ForwardIterator __last, 8768: allocator<_Tp>&) 8768: { 8768: _Destroy(__first, __last); 8768: } 8768: # 232 "/usr/include/c++/8/bits/stl_construct.h" 3 8768: 8768: } 8768: # 61 "/usr/include/c++/8/bits/stl_tempbuf.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 83 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8768: template 8768: pair<_Tp*, ptrdiff_t> 8768: get_temporary_buffer(ptrdiff_t __len) noexcept 8768: { 8768: const ptrdiff_t __max = 8768: __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); 8768: if (__len > __max) 8768: __len = __max; 8768: 8768: while (__len > 0) 8768: { 8768: _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), 8768: std::nothrow)); 8768: if (__tmp != 0) 8768: return std::pair<_Tp*, ptrdiff_t>(__tmp, __len); 8768: __len /= 2; 8768: } 8768: return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); 8768: } 8768: # 110 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8768: template 8768: inline void 8768: return_temporary_buffer(_Tp* __p) 8768: { ::operator delete(__p, std::nothrow); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class _Temporary_buffer 8768: { 8768: 8768: 8768: 8768: public: 8768: typedef _Tp value_type; 8768: typedef value_type* pointer; 8768: typedef pointer iterator; 8768: typedef ptrdiff_t size_type; 8768: 8768: protected: 8768: size_type _M_original_len; 8768: size_type _M_len; 8768: pointer _M_buffer; 8768: 8768: public: 8768: 8768: size_type 8768: size() const 8768: { return _M_len; } 8768: 8768: 8768: size_type 8768: requested_size() const 8768: { return _M_original_len; } 8768: 8768: 8768: iterator 8768: begin() 8768: { return _M_buffer; } 8768: 8768: 8768: iterator 8768: end() 8768: { return _M_buffer + _M_len; } 8768: 8768: 8768: 8768: 8768: 8768: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); 8768: 8768: ~_Temporary_buffer() 8768: { 8768: std::_Destroy(_M_buffer, _M_buffer + _M_len); 8768: std::return_temporary_buffer(_M_buffer); 8768: } 8768: 8768: private: 8768: 8768: _Temporary_buffer(const _Temporary_buffer&); 8768: 8768: void 8768: operator=(const _Temporary_buffer&); 8768: }; 8768: 8768: 8768: template 8768: struct __uninitialized_construct_buf_dispatch 8768: { 8768: template 8768: static void 8768: __ucr(_Pointer __first, _Pointer __last, 8768: _ForwardIterator __seed) 8768: { 8768: if(__first == __last) 8768: return; 8768: 8768: _Pointer __cur = __first; 8768: try 8768: { 8768: std::_Construct(std::__addressof(*__first), 8768: std::move(*__seed)); 8768: _Pointer __prev = __cur; 8768: ++__cur; 8768: for(; __cur != __last; ++__cur, ++__prev) 8768: std::_Construct(std::__addressof(*__cur), 8768: std::move(*__prev)); 8768: *__seed = std::move(*__prev); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_construct_buf_dispatch 8768: { 8768: template 8768: static void 8768: __ucr(_Pointer, _Pointer, _ForwardIterator) { } 8768: }; 8768: # 229 "/usr/include/c++/8/bits/stl_tempbuf.h" 3 8768: template 8768: inline void 8768: __uninitialized_construct_buf(_Pointer __first, _Pointer __last, 8768: _ForwardIterator __seed) 8768: { 8768: typedef typename std::iterator_traits<_Pointer>::value_type 8768: _ValueType; 8768: 8768: std::__uninitialized_construct_buf_dispatch< 8768: __has_trivial_constructor(_ValueType)>:: 8768: __ucr(__first, __last, __seed); 8768: } 8768: 8768: template 8768: _Temporary_buffer<_ForwardIterator, _Tp>:: 8768: _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) 8768: : _M_original_len(std::distance(__first, __last)), 8768: _M_len(0), _M_buffer(0) 8768: { 8768: try 8768: { 8768: std::pair __p(std::get_temporary_buffer< 8768: value_type>(_M_original_len)); 8768: _M_buffer = __p.first; 8768: _M_len = __p.second; 8768: if (_M_buffer) 8768: std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len, 8768: __first); 8768: } 8768: catch(...) 8768: { 8768: std::return_temporary_buffer(_M_buffer); 8768: _M_buffer = 0; 8768: _M_len = 0; 8768: throw; 8768: } 8768: } 8768: 8768: 8768: } 8768: # 63 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/uniform_int_dist.h" 1 3 8768: # 35 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8768: # 1 "/usr/include/c++/8/limits" 1 3 8768: # 40 "/usr/include/c++/8/limits" 3 8768: 8768: # 41 "/usr/include/c++/8/limits" 3 8768: # 158 "/usr/include/c++/8/limits" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: enum float_round_style 8768: { 8768: round_indeterminate = -1, 8768: round_toward_zero = 0, 8768: round_to_nearest = 1, 8768: round_toward_infinity = 2, 8768: round_toward_neg_infinity = 3 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: enum float_denorm_style 8768: { 8768: 8768: denorm_indeterminate = -1, 8768: 8768: denorm_absent = 0, 8768: 8768: denorm_present = 1 8768: }; 8768: # 202 "/usr/include/c++/8/limits" 3 8768: struct __numeric_limits_base 8768: { 8768: 8768: 8768: static constexpr bool is_specialized = false; 8768: 8768: 8768: 8768: 8768: static constexpr int digits = 0; 8768: 8768: 8768: static constexpr int digits10 = 0; 8768: 8768: 8768: 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: 8768: 8768: static constexpr bool is_signed = false; 8768: 8768: 8768: static constexpr bool is_integer = false; 8768: 8768: 8768: 8768: 8768: static constexpr bool is_exact = false; 8768: 8768: 8768: 8768: static 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; } }; 8737: 8737: template 8737: class QMutableSetIterator 8737: { 8737: typedef typename QSet::iterator iterator; 8737: QSet *c; 8737: iterator i, n; 8737: inline bool item_exists() const { return c->constEnd() != n; } 8737: 8737: public: 8737: inline QMutableSetIterator(QSet &container) 8737: : c(&container) 8737: { i = c->begin(); n = c->end(); } 8737: inline QMutableSetIterator &operator=(QSet &container) 8737: { c = &container; i = c->begin(); n = c->end(); return *this; } 8737: inline void toFront() { i = c->begin(); n = c->end(); } 8737: inline void toBack() { i = c->end(); n = i; } 8737: inline bool hasNext() const { return c->constEnd() != i; } 8737: inline const T &next() { n = i++; return *n; } 8737: inline const T &peekNext() const { return *i; } 8737: inline bool hasPrevious() const { return c->constBegin() != i; } 8737: inline const T &previous() { n = --i; return *n; } 8737: inline const T &peekPrevious() const { iterator p = i; return *--p; } 8737: inline void remove() 8737: { if (c->constEnd() != n) { i = c->erase(n); n = c->end(); } } 8737: inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } 8737: inline bool findNext(const T &t) 8737: { while (c->constEnd() != (n = i)) if (*i++ == t) return true; return false; } 8737: inline bool findPrevious(const T &t) 8737: { while (c->constBegin() != i) if (*(n = --i) == t) return true; 8737: n = c->end(); return false; } 8737: }; 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSet" 2 3 4 8737: # 37 "/<>/templates/lib/node.h" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVector" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 1 3 4 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8737: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QRegion; 8737: 8737: template 8737: class QVector 8737: { 8737: typedef QTypedArrayData Data; 8737: Data *d; 8737: 8737: public: 8737: inline QVector() noexcept : d(Data::sharedNull()) { } 8737: explicit QVector(int size); 8737: QVector(int size, const T &t); 8737: inline QVector(const QVector &v); 8737: inline ~QVector() { if (!d->ref.deref()) freeData(d); } 8737: QVector &operator=(const QVector &v); 8737: 8737: QVector(QVector &&other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8737: QVector &operator=(QVector &&other) noexcept 8737: { QVector moved(std::move(other)); swap(moved); return *this; } 8737: 8737: void swap(QVector &other) noexcept { qSwap(d, other.d); } 8737: 8737: inline QVector(std::initializer_list args); 8737: 8737: bool operator==(const QVector &v) const; 8737: inline bool operator!=(const QVector &v) const { return !(*this == v); } 8737: 8737: inline int size() const { return d->size; } 8737: 8737: inline bool isEmpty() const { return d->size == 0; } 8737: 8737: void resize(int size); 8737: 8737: inline int capacity() const { return int(d->alloc); } 8737: void reserve(int size); 8737: inline void squeeze() 8737: { 8737: reallocData(d->size, d->size); 8737: if (d->capacityReserved) { 8737: 8737: 8737: d->capacityReserved = 0; 8737: } 8737: } 8737: 8737: inline void detach(); 8737: inline bool isDetached() const { return !d->ref.isShared(); } 8737: 8737: inline void setSharable(bool sharable) 8737: { 8737: if (sharable == d->ref.isSharable()) 8737: return; 8737: if (!sharable) 8737: detach(); 8737: 8737: if (d == Data::unsharableEmpty()) { 8737: if (sharable) 8737: d = Data::sharedNull(); 8737: } else { 8737: d->ref.setSharable(sharable); 8737: } 8737: do { } while ((false) && (d->ref.isSharable() == sharable)); 8737: } 8737: 8737: 8737: inline bool isSharedWith(const QVector &other) const { return d == other.d; } 8737: 8737: inline T *data() { detach(); return d->begin(); } 8737: inline const T *data() const { return d->begin(); } 8737: inline const T *constData() const { return d->begin(); } 8737: void clear(); 8737: 8737: const T &at(int i) const; 8737: T &operator[](int i); 8737: const T &operator[](int i) const; 8737: void append(const T &t); 8737: 8737: void append(T &&t); 8737: 8737: inline void append(const QVector &l) { *this += l; } 8737: void prepend(const T &t); 8737: void insert(int i, const T &t); 8737: void insert(int i, int n, const T &t); 8737: void replace(int i, const T &t); 8737: void remove(int i); 8737: void remove(int i, int n); 8737: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(d->begin()); } 8737: inline void removeLast(); 8737: inline T takeFirst() { do { } while ((false) && (!isEmpty())); T r = first(); removeFirst(); return r; } 8737: inline T takeLast() { do { } while ((false) && (!isEmpty())); T r = last(); removeLast(); return r; } 8737: 8737: QVector &fill(const T &t, int size = -1); 8737: 8737: int indexOf(const T &t, int from = 0) const; 8737: int lastIndexOf(const T &t, int from = -1) const; 8737: bool contains(const T &t) const; 8737: int count(const T &t) const; 8737: 8737: 8737: void removeAt(int i) { remove(i); } 8737: int removeAll(const T &t) 8737: { 8737: const const_iterator ce = this->cend(), cit = std::find(this->cbegin(), ce, t); 8737: if (cit == ce) 8737: return 0; 8737: 8737: const int firstFoundIdx = std::distance(this->cbegin(), cit); 8737: const iterator e = end(), it = std::remove(begin() + firstFoundIdx, e, t); 8737: const int result = std::distance(it, e); 8737: erase(it, e); 8737: return result; 8737: } 8737: bool removeOne(const T &t) 8737: { 8737: const int i = indexOf(t); 8737: if (i < 0) 8737: return false; 8737: remove(i); 8737: return true; 8737: } 8737: int length() const { return size(); } 8737: T takeAt(int i) { T t = at(i); remove(i); return t; } 8737: void move(int from, int to) 8737: { 8737: do { } while ((false) && (from >= 0 && from < size())); 8737: do { } while ((false) && (to >= 0 && to < size())); 8737: if (from == to) 8737: return; 8737: detach(); 8737: T * const b = d->begin(); 8737: if (from < to) 8737: std::rotate(b + from, b + from + 1, b + to + 1); 8737: else 8737: std::rotate(b + to, b + from, b + from + 1); 8737: } 8737: 8737: 8737: typedef typename Data::iterator iterator; 8737: typedef typename Data::const_iterator const_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8737: inline iterator begin(iterator = iterator()) { detach(); return d->begin(); } 8737: inline const_iterator begin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8737: inline const_iterator cbegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8737: inline const_iterator constBegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8737: inline iterator end(iterator = iterator()) { detach(); return d->end(); } 8737: inline const_iterator end(const_iterator = cons constexpr int radix = 0; 8768: 8768: 8768: 8768: static constexpr int min_exponent = 0; 8768: 8768: 8768: 8768: static constexpr int min_exponent10 = 0; 8768: 8768: 8768: 8768: 8768: static constexpr int max_exponent = 0; 8768: 8768: 8768: 8768: static constexpr int max_exponent10 = 0; 8768: 8768: 8768: static constexpr bool has_infinity = false; 8768: 8768: 8768: 8768: static constexpr bool has_quiet_NaN = false; 8768: 8768: 8768: 8768: static constexpr bool has_signaling_NaN = false; 8768: 8768: 8768: static constexpr float_denorm_style has_denorm = denorm_absent; 8768: 8768: 8768: 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: 8768: 8768: static constexpr bool is_iec559 = false; 8768: 8768: 8768: 8768: 8768: static constexpr bool is_bounded = false; 8768: # 288 "/usr/include/c++/8/limits" 3 8768: static constexpr bool is_modulo = false; 8768: 8768: 8768: static constexpr bool traps = false; 8768: 8768: 8768: static constexpr bool tinyness_before = false; 8768: 8768: 8768: 8768: 8768: static constexpr float_round_style round_style = 8768: round_toward_zero; 8768: }; 8768: # 311 "/usr/include/c++/8/limits" 3 8768: template 8768: struct numeric_limits : public __numeric_limits_base 8768: { 8768: 8768: 8768: static constexpr _Tp 8768: min() noexcept { return _Tp(); } 8768: 8768: 8768: static constexpr _Tp 8768: max() noexcept { return _Tp(); } 8768: 8768: 8768: 8768: 8768: static constexpr _Tp 8768: lowest() noexcept { return _Tp(); } 8768: 8768: 8768: 8768: 8768: static constexpr _Tp 8768: epsilon() noexcept { return _Tp(); } 8768: 8768: 8768: static constexpr _Tp 8768: round_error() noexcept { return _Tp(); } 8768: 8768: 8768: static constexpr _Tp 8768: infinity() noexcept { return _Tp(); } 8768: 8768: 8768: 8768: static constexpr _Tp 8768: quiet_NaN() noexcept { return _Tp(); } 8768: 8768: 8768: 8768: static constexpr _Tp 8768: signaling_NaN() noexcept { return _Tp(); } 8768: 8768: 8768: 8768: 8768: static constexpr _Tp 8768: denorm_min() noexcept { return _Tp(); } 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct numeric_limits 8768: : public numeric_limits<_Tp> { }; 8768: 8768: template 8768: struct numeric_limits 8768: : public numeric_limits<_Tp> { }; 8768: 8768: template 8768: struct numeric_limits 8768: : public numeric_limits<_Tp> { }; 8768: # 382 "/usr/include/c++/8/limits" 3 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr bool 8768: min() noexcept { return false; } 8768: 8768: static constexpr bool 8768: max() noexcept { return true; } 8768: 8768: 8768: static constexpr bool 8768: lowest() noexcept { return min(); } 8768: 8768: static constexpr int digits = 1; 8768: static constexpr int digits10 = 0; 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = false; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr bool 8768: epsilon() noexcept { return false; } 8768: 8768: static constexpr bool 8768: round_error() noexcept { return false; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr bool 8768: infinity() noexcept { return false; } 8768: 8768: static constexpr bool 8768: quiet_NaN() noexcept { return false; } 8768: 8768: static constexpr bool 8768: signaling_NaN() noexcept { return false; } 8768: 8768: static constexpr bool 8768: denorm_min() noexcept { return false; } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: 8768: 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr char 8768: 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); } 8768: 8768: static constexpr char 8768: max() noexcept { return (((char)(-1) < 0) ? (((((char)1 << ((sizeof(char) * 8 - ((char)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(char)0); } 8768: 8768: 8768: static constexpr char 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); 8768: static constexpr int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = ((char)(-1) < 0); 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr char 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr char 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr 8768: char infinity() noexcept { return char(); } 8768: 8768: static constexpr char 8768: quiet_NaN() noexcept { return char(); } 8768: 8768: static constexpr char 8768: signaling_NaN() noexcept { return char(); } 8768: 8768: static constexpr char 8768: denorm_min() noexcept { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = !is_signed; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr signed char 8768: min() noexcept { return -0x7f - 1; } 8768: 8768: static constexpr signed char 8768: max() noexcept { return 0x7f; } 8768: 8768: 8768: static constexpr signed char 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); 8768t_iterator()) const noexcept { return d->constEnd(); } 8737: inline const_iterator cend(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8737: inline const_iterator constEnd(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8737: 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8737: iterator insert(iterator before, int n, const T &x); 8737: inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); } 8737: iterator erase(iterator begin, iterator end); 8737: inline iterator erase(iterator pos) { return erase(pos, pos+1); } 8737: 8737: 8737: inline int count() const { return d->size; } 8737: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline const T &constFirst() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline T& last() { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8737: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8737: inline const T &constLast() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8737: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8737: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8737: QVector mid(int pos, int len = -1) const; 8737: 8737: T value(int i) const; 8737: T value(int i, const T &defaultValue) const; 8737: 8737: 8737: typedef T value_type; 8737: typedef value_type* pointer; 8737: typedef const value_type* const_pointer; 8737: typedef value_type& reference; 8737: typedef const value_type& const_reference; 8737: typedef qptrdiff difference_type; 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: typedef int size_type; 8737: inline void push_back(const T &t) { append(t); } 8737: 8737: void push_back(T &&t) { append(std::move(t)); } 8737: 8737: inline void push_front(const T &t) { prepend(t); } 8737: void pop_back() { removeLast(); } 8737: void pop_front() { removeFirst(); } 8737: inline bool empty() const 8737: { return d->size == 0; } 8737: inline T& front() { return first(); } 8737: inline const_reference front() const { return first(); } 8737: inline reference back() { return last(); } 8737: inline const_reference back() const { return last(); } 8737: 8737: 8737: QVector &operator+=(const QVector &l); 8737: inline QVector operator+(const QVector &l) const 8737: { QVector n = *this; n += l; return n; } 8737: inline QVector &operator+=(const T &t) 8737: { append(t); return *this; } 8737: inline QVector &operator<< (const T &t) 8737: { append(t); return *this; } 8737: inline QVector &operator<<(const QVector &l) 8737: { *this += l; return *this; } 8737: 8737: QList toList() const; 8737: 8737: static QVector fromList(const QList &list); 8737: 8737: static inline QVector fromStdVector(const std::vector &vector) 8737: { QVector tmp; tmp.reserve(int(vector.size())); std::copy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } 8737: inline std::vector toStdVector() const 8737: { return std::vector(d->begin(), d->end()); } 8737: private: 8737: friend class QRegion; 8737: 8737: 8737: void reallocData(const int size, const int alloc, QArrayData::AllocationOptions options = QArrayData::Default); 8737: void reallocData(const int sz) { reallocData(sz, d->alloc); } 8737: void freeData(Data *d); 8737: void defaultConstruct(T *from, T *to); 8737: void copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom); 8737: void destruct(T *from, T *to); 8737: bool isValidIterator(const iterator &i) const 8737: { 8737: return (i <= d->end()) && (d->begin() <= i); 8737: } 8737: class AlignmentDummy { Data header; T array[1]; }; 8737: }; 8737: # 316 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8737: template 8737: void QVector::defaultConstruct(T *from, T *to) 8737: { 8737: if (QTypeInfo::isComplex) { 8737: while (from != to) { 8737: new (from++) T(); 8737: } 8737: } else { 8737: ::memset(static_cast(from), 0, (to - from) * sizeof(T)); 8737: } 8737: } 8737: 8737: template 8737: void QVector::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom) 8737: { 8737: if (QTypeInfo::isComplex) { 8737: while (srcFrom != srcTo) 8737: new (dstFrom++) T(*srcFrom++); 8737: } else { 8737: ::memcpy(static_cast(dstFrom), static_cast(srcFrom), (srcTo - srcFrom) * sizeof(T)); 8737: } 8737: } 8737: 8737: template 8737: void QVector::destruct(T *from, T *to) 8737: { 8737: if (QTypeInfo::isComplex) { 8737: while (from != to) { 8737: from++->~T(); 8737: } 8737: } 8737: } 8737: 8737: template 8737: inline QVector::QVector(const QVector &v) 8737: { 8737: if (v.d->ref.ref()) { 8737: d = v.d; 8737: } else { 8737: if (v.d->capacityReserved) { 8737: d = Data::allocate(v.d->alloc); 8737: do { if (!(d)) qBadAlloc(); } while (false); 8737: d->capacityReserved = true; 8737: } else { 8737: d = Data::allocate(v.d->size); 8737: do { if (!(d)) qBadAlloc(); } while (false); 8737: } 8737: if (d->alloc) { 8737: copyConstruct(v.d->begin(), v.d->end(), d->begin()); 8737: d->size = v.d->size; 8737: } 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void QVector::detach() 8737: { 8737: if (!isDetached()) { 8737: 8737: if (!d->alloc) 8737: d = Data::unsharableEmpty(); 8737: else 8737: 8737: reallocData(d->size, int(d->alloc)); 8737: } 8737: do { } while ((false) && (isDetached())); 8737: } 8737: 8737: template 8737: void QVector::reserve(int asize) 8737: { 8737: if (asize > int(d->alloc)) 8737: reallocData(d->size, asize); 8737: if (isDetached() 8737: 8737: && d != Data::unsharableEmpty() 8737: 8737: ) 8737: d->capacityReserved = 1; 8737: do { } while ((false) && (capacity() >= asize)); 8737: } 8737: 8737: template 8737: void QVector::resize(int asize) 8737: { 8737: int newAlloc; 8737: const int oldAlloc = int(d->alloc); 8737: QArrayData::AllocationOptions opt; 8737: 8737: if (asize > oldAlloc) { 8737: newAlloc = asize; 8737: opt = QArrayData::Grow; 8737: } else { 8737: newAlloc = oldAlloc; 8737: } 8737: reallocData(asize, newAlloc, opt); 8737: } 8737: template 8737: inline void QVector::clear() 8737: { resize(0); } 8737: template 8737: inline const T &QVector::at(int i) const 8737: { do { } while ((false) && (i >= 0 && i < d->size)); 8737: return d->begin()[i]; } 8737: template 8737: inline const T &QVector::operator[](int i) const 8737: { do { } while ((false) && (i >= 0 && i < d->size)); 8737: return d->begin()[i]; } 8737: template 8737: inline T &QVector::operator[](int i) 8737: { do { } while ((false) && (i >= 0 && i < d->size)); 8737: return d: static constexpr int digits10 8768: = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr signed char 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr signed char 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr signed char 8768: infinity() noexcept { return static_cast(0); } 8768: 8768: static constexpr signed char 8768: quiet_NaN() noexcept { return static_cast(0); } 8768: 8768: static constexpr signed char 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr signed char 8768: denorm_min() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr unsigned char 8768: min() noexcept { return 0; } 8768: 8768: static constexpr unsigned char 8768: max() noexcept { return 0x7f * 2U + 1; } 8768: 8768: 8768: static constexpr unsigned char 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits 8768: = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = false; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr unsigned char 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr unsigned char 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr unsigned char 8768: infinity() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned char 8768: quiet_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned char 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned char 8768: denorm_min() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = true; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr wchar_t 8768: 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); } 8768: 8768: static constexpr wchar_t 8768: 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); } 8768: 8768: 8768: static constexpr wchar_t 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = ((wchar_t)(-1) < 0); 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr wchar_t 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr wchar_t 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr wchar_t 8768: infinity() noexcept { return wchar_t(); } 8768: 8768: static constexpr wchar_t 8768: quiet_NaN() noexcept { return wchar_t(); } 8768: 8768: static constexpr wchar_t 8768: signaling_NaN() noexcept { return wchar_t(); } 8768: 8768: static constexpr wchar_t 8768: denorm_min() noexcept { return wchar_t(); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = !is_signed; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr char16_t 8768: 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); } 8768: 8768: static constexpr char16_t 8768: 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); } 8768: 8768: static constexpr char16_t 8768: lowest() noexcept { return min(); } 8768: 8768: static constexpr int digits = (sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)); 8768: ata()[i]; } 8737: template 8737: inline void QVector::insert(int i, const T &t) 8737: { do { } while ((false) && (i >= 0 && i <= d->size)); 8737: insert(begin() + i, 1, t); } 8737: template 8737: inline void QVector::insert(int i, int n, const T &t) 8737: { do { } while ((false) && (i >= 0 && i <= d->size)); 8737: insert(begin() + i, n, t); } 8737: template 8737: inline void QVector::remove(int i, int n) 8737: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= d->size)); 8737: erase(d->begin() + i, d->begin() + i + n); } 8737: template 8737: inline void QVector::remove(int i) 8737: { do { } while ((false) && (i >= 0 && i < d->size)); 8737: erase(d->begin() + i, d->begin() + i + 1); } 8737: template 8737: inline void QVector::prepend(const T &t) 8737: { insert(begin(), 1, t); } 8737: 8737: template 8737: inline void QVector::replace(int i, const T &t) 8737: { 8737: do { } while ((false) && (i >= 0 && i < d->size)); 8737: const T copy(t); 8737: data()[i] = copy; 8737: } 8737: 8737: template 8737: QVector &QVector::operator=(const QVector &v) 8737: { 8737: if (v.d != d) { 8737: QVector tmp(v); 8737: tmp.swap(*this); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: QVector::QVector(int asize) 8737: { 8737: do { } while ((false) && (asize >= 0)); 8737: if (__builtin_expect(!!(asize > 0), true)) { 8737: d = Data::allocate(asize); 8737: do { if (!(d)) qBadAlloc(); } while (false); 8737: d->size = asize; 8737: defaultConstruct(d->begin(), d->end()); 8737: } else { 8737: d = Data::sharedNull(); 8737: } 8737: } 8737: 8737: template 8737: QVector::QVector(int asize, const T &t) 8737: { 8737: do { } while ((false) && (asize >= 0)); 8737: if (asize > 0) { 8737: d = Data::allocate(asize); 8737: do { if (!(d)) qBadAlloc(); } while (false); 8737: d->size = asize; 8737: T* i = d->end(); 8737: while (i != d->begin()) 8737: new (--i) T(t); 8737: } else { 8737: d = Data::sharedNull(); 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: QVector::QVector(std::initializer_list args) 8737: { 8737: if (args.size() > 0) { 8737: d = Data::allocate(args.size()); 8737: do { if (!(d)) qBadAlloc(); } while (false); 8737: 8737: 8737: copyConstruct(args.begin(), args.end(), d->begin()); 8737: d->size = int(args.size()); 8737: } else { 8737: d = Data::sharedNull(); 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void QVector::freeData(Data *x) 8737: { 8737: destruct(x->begin(), x->end()); 8737: Data::deallocate(x); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void QVector::reallocData(const int asize, const int aalloc, QArrayData::AllocationOptions options) 8737: { 8737: do { } while ((false) && (asize >= 0 && asize <= aalloc)); 8737: Data *x = d; 8737: 8737: const bool isShared = d->ref.isShared(); 8737: 8737: if (aalloc != 0) { 8737: if (aalloc != int(d->alloc) || isShared) { 8737: try { 8737: 8737: x = Data::allocate(aalloc, options); 8737: do { if (!(x)) qBadAlloc(); } while (false); 8737: 8737: 8737: do { } while ((false) && (x->ref.isSharable() || options.testFlag(QArrayData::Unsharable))); 8737: 8737: do { } while ((false) && (!x->ref.isStatic())); 8737: x->size = asize; 8737: 8737: T *srcBegin = d->begin(); 8737: T *srcEnd = asize > d->size ? d->end() : d->begin() + asize; 8737: T *dst = x->begin(); 8737: 8737: if (!QTypeInfoQuery::isRelocatable || (isShared && QTypeInfo::isComplex)) { 8737: 8737: while (srcBegin != srcEnd) { 8737: new (dst++) T(*srcBegin++); 8737: } 8737: } else { 8737: ::memcpy(static_cast(dst), static_cast(srcBegin), (srcEnd - srcBegin) * sizeof(T)); 8737: dst += srcEnd - srcBegin; 8737: 8737: 8737: if (asize < d->size) 8737: destruct(d->begin() + asize, d->end()); 8737: } 8737: 8737: if (asize > d->size) { 8737: 8737: try { 8737: defaultConstruct(dst, x->end()); 8737: } catch (...) { 8737: 8737: destruct(x->begin(), dst); 8737: throw; 8737: } 8737: } 8737: } catch (...) { 8737: Data::deallocate(x); 8737: throw; 8737: } 8737: x->capacityReserved = d->capacityReserved; 8737: } else { 8737: do { } while ((false) && (int(d->alloc) == aalloc)); 8737: do { } while ((false) && (isDetached())); 8737: do { } while ((false) && (x == d)); 8737: if (asize <= d->size) { 8737: destruct(x->begin() + asize, x->end()); 8737: } else { 8737: defaultConstruct(x->end(), x->begin() + asize); 8737: } 8737: x->size = asize; 8737: } 8737: } else { 8737: x = Data::sharedNull(); 8737: } 8737: if (d != x) { 8737: if (!d->ref.deref()) { 8737: if (!QTypeInfoQuery::isRelocatable || !aalloc || (isShared && QTypeInfo::isComplex)) { 8737: 8737: 8737: freeData(d); 8737: } else { 8737: Data::deallocate(d); 8737: } 8737: } 8737: d = x; 8737: } 8737: 8737: do { } while ((false) && (d->data())); 8737: do { } while ((false) && (uint(d->size) <= d->alloc)); 8737: 8737: do { } while ((false) && (d != Data::unsharableEmpty())); 8737: 8737: do { } while ((false) && (aalloc ? d != Data::sharedNull() : d == Data::sharedNull())); 8737: do { } while ((false) && (d->alloc >= uint(aalloc))); 8737: do { } while ((false) && (d->size == asize)); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: T QVector::value(int i) const 8737: { 8737: if (uint(i) >= uint(d->size)) { 8737: return T(); 8737: } 8737: return d->begin()[i]; 8737: } 8737: template 8737: T QVector::value(int i, const T &defaultValue) const 8737: { 8737: return uint(i) >= uint(d->size) ? defaultValue : d->begin()[i]; 8737: } 8737: 8737: template 8737: void QVector::append(const T &t) 8737: { 8737: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8737: if (!isDetached() || isTooSmall) { 8737: T copy(t); 8737: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8737: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8737: 8737: if (QTypeInfo::isComplex) 8737: new (d->end()) T(std::move(copy)); 8737: else 8737: *d->end() = std::move(copy); 8737: 8737: } else { 8737: if (QTypeInfo::isComplex) 8737: new (d->end()) T(t); 8737: else 8737: *d->end() = t; 8737: } 8737: ++d->size; 8737: } 8737: 8737: 8737: template 8737: void QVector::append(T &&t) 8737: { 8737: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8737: if (!isDetached() || isTooSmall) { 8737: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8737: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8737: } 8737: 8737: new (d->end()) T(std::move(t)); 8737: 8737: ++d->size; 8737: } 8737: 8737: 8737: template 8737: void QVector::removeLast() 8737: { static constexpr int digits10 = ((sizeof(char16_t) * 8 - ((char16_t)(-1) < 0)) * 643L / 2136); 8768: static constexpr int max_digits10 = 0; 8768: static constexpr bool is_signed = ((char16_t)(-1) < 0); 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr char16_t 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr char16_t 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr char16_t 8768: infinity() noexcept { return char16_t(); } 8768: 8768: static constexpr char16_t 8768: quiet_NaN() noexcept { return char16_t(); } 8768: 8768: static constexpr char16_t 8768: signaling_NaN() noexcept { return char16_t(); } 8768: 8768: static constexpr char16_t 8768: denorm_min() noexcept { return char16_t(); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = !is_signed; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr char32_t 8768: 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); } 8768: 8768: static constexpr char32_t 8768: 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); } 8768: 8768: static constexpr char32_t 8768: lowest() noexcept { return min(); } 8768: 8768: static constexpr int digits = (sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)); 8768: static constexpr int digits10 = ((sizeof(char32_t) * 8 - ((char32_t)(-1) < 0)) * 643L / 2136); 8768: static constexpr int max_digits10 = 0; 8768: static constexpr bool is_signed = ((char32_t)(-1) < 0); 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr char32_t 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr char32_t 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr char32_t 8768: infinity() noexcept { return char32_t(); } 8768: 8768: static constexpr char32_t 8768: quiet_NaN() noexcept { return char32_t(); } 8768: 8768: static constexpr char32_t 8768: signaling_NaN() noexcept { return char32_t(); } 8768: 8768: static constexpr char32_t 8768: denorm_min() noexcept { return char32_t(); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = !is_signed; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style = round_toward_zero; 8768: }; 8768: 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr short 8768: min() noexcept { return -0x7fff - 1; } 8768: 8768: static constexpr short 8768: max() noexcept { return 0x7fff; } 8768: 8768: 8768: static constexpr short 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); 8768: static constexpr int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr short 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr short 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr short 8768: infinity() noexcept { return short(); } 8768: 8768: static constexpr short 8768: quiet_NaN() noexcept { return short(); } 8768: 8768: static constexpr short 8768: signaling_NaN() noexcept { return short(); } 8768: 8768: static constexpr short 8768: denorm_min() noexcept { return short(); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr unsigned short 8768: min() noexcept { return 0; } 8768: 8768: static constexpr unsigned short 8768: max() noexcept { return 0x7fff * 2U + 1; } 8768: 8768: 8768: static constexpr unsigned short 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits 8768: = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = false; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr unsigned short 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr unsigned short 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int m 8737: do { } while ((false) && (!isEmpty())); 8737: do { } while ((false) && (d->alloc)); 8737: 8737: if (!d->ref.isShared()) { 8737: --d->size; 8737: if (QTypeInfo::isComplex) 8737: (d->data() + d->size)->~T(); 8737: } else { 8737: reallocData(d->size - 1); 8737: } 8737: } 8737: 8737: template 8737: typename QVector::iterator QVector::insert(iterator before, size_type n, const T &t) 8737: { 8737: do { } while ((false) && (isValidIterator(before))); 8737: 8737: const auto offset = std::distance(d->begin(), before); 8737: if (n != 0) { 8737: const T copy(t); 8737: if (!isDetached() || d->size + n > int(d->alloc)) 8737: reallocData(d->size, d->size + n, QArrayData::Grow); 8737: if (!QTypeInfoQuery::isRelocatable) { 8737: T *b = d->end(); 8737: T *i = d->end() + n; 8737: while (i != b) 8737: new (--i) T; 8737: i = d->end(); 8737: T *j = i + n; 8737: b = d->begin() + offset; 8737: while (i != b) 8737: *--j = *--i; 8737: i = b+n; 8737: while (i != b) 8737: *--i = copy; 8737: } else { 8737: T *b = d->begin() + offset; 8737: T *i = b + n; 8737: memmove(i, b, (d->size - offset) * sizeof(T)); 8737: while (i != b) 8737: new (--i) T(copy); 8737: } 8737: d->size += n; 8737: } 8737: return d->begin() + offset; 8737: } 8737: 8737: template 8737: typename QVector::iterator QVector::erase(iterator abegin, iterator aend) 8737: { 8737: do { } while ((false) && (isValidIterator(abegin))); 8737: do { } while ((false) && (isValidIterator(aend))); 8737: 8737: const auto itemsToErase = aend - abegin; 8737: 8737: if (!itemsToErase) 8737: return abegin; 8737: 8737: do { } while ((false) && (abegin >= d->begin())); 8737: do { } while ((false) && (aend <= d->end())); 8737: do { } while ((false) && (abegin <= aend)); 8737: 8737: const auto itemsUntouched = abegin - d->begin(); 8737: 8737: 8737: 8737: 8737: if (d->alloc) { 8737: detach(); 8737: abegin = d->begin() + itemsUntouched; 8737: aend = abegin + itemsToErase; 8737: if (!QTypeInfoQuery::isRelocatable) { 8737: iterator moveBegin = abegin + itemsToErase; 8737: iterator moveEnd = d->end(); 8737: while (moveBegin != moveEnd) { 8737: if (QTypeInfo::isComplex) 8737: static_cast(abegin)->~T(); 8737: new (abegin++) T(*moveBegin++); 8737: } 8737: if (abegin < d->end()) { 8737: 8737: destruct(abegin, d->end()); 8737: } 8737: } else { 8737: destruct(abegin, aend); 8737: 8737: 8737: 8737: memmove(static_cast(abegin), static_cast(aend), 8737: (d->size - itemsToErase - itemsUntouched) * sizeof(T)); 8737: } 8737: d->size -= int(itemsToErase); 8737: } 8737: return d->begin() + itemsUntouched; 8737: } 8737: 8737: template 8737: bool QVector::operator==(const QVector &v) const 8737: { 8737: if (d == v.d) 8737: return true; 8737: if (d->size != v.d->size) 8737: return false; 8737: const T *vb = v.d->begin(); 8737: const T *b = d->begin(); 8737: const T *e = d->end(); 8737: return std::equal(b, e, (vb)); 8737: } 8737: 8737: template 8737: QVector &QVector::fill(const T &from, int asize) 8737: { 8737: const T copy(from); 8737: resize(asize < 0 ? d->size : asize); 8737: if (d->size) { 8737: T *i = d->end(); 8737: T *b = d->begin(); 8737: while (i != b) 8737: *--i = copy; 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: QVector &QVector::operator+=(const QVector &l) 8737: { 8737: if (d == Data::sharedNull()) { 8737: *this = l; 8737: } else { 8737: uint newSize = d->size + l.d->size; 8737: const bool isTooSmall = newSize > d->alloc; 8737: if (!isDetached() || isTooSmall) { 8737: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8737: reallocData(d->size, isTooSmall ? newSize : d->alloc, opt); 8737: } 8737: 8737: if (d->alloc) { 8737: T *w = d->begin() + newSize; 8737: T *i = l.d->end(); 8737: T *b = l.d->begin(); 8737: while (i != b) { 8737: if (QTypeInfo::isComplex) 8737: new (--w) T(*--i); 8737: else 8737: *--w = *--i; 8737: } 8737: d->size = newSize; 8737: } 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: int QVector::indexOf(const T &t, int from) const 8737: { 8737: if (from < 0) 8737: from = qMax(from + d->size, 0); 8737: if (from < d->size) { 8737: T* n = d->begin() + from - 1; 8737: T* e = d->end(); 8737: while (++n != e) 8737: if (*n == t) 8737: return n - d->begin(); 8737: } 8737: return -1; 8737: } 8737: 8737: template 8737: int QVector::lastIndexOf(const T &t, int from) const 8737: { 8737: if (from < 0) 8737: from += d->size; 8737: else if (from >= d->size) 8737: from = d->size-1; 8737: if (from >= 0) { 8737: T* b = d->begin(); 8737: T* n = d->begin() + from + 1; 8737: while (n != b) { 8737: if (*--n == t) 8737: return n - b; 8737: } 8737: } 8737: return -1; 8737: } 8737: 8737: template 8737: bool QVector::contains(const T &t) const 8737: { 8737: const T *b = d->begin(); 8737: const T *e = d->end(); 8737: return std::find(b, e, t) != e; 8737: } 8737: 8737: template 8737: int QVector::count(const T &t) const 8737: { 8737: const T *b = d->begin(); 8737: const T *e = d->end(); 8737: return int(std::count(b, e, t)); 8737: } 8737: 8737: template 8737: QVector QVector::mid(int pos, int len) const 8737: { 8737: using namespace QtPrivate; 8737: switch (QContainerImplHelper::mid(d->size, &pos, &len)) { 8737: case QContainerImplHelper::Null: 8737: case QContainerImplHelper::Empty: 8737: return QVector(); 8737: case QContainerImplHelper::Full: 8737: return *this; 8737: case QContainerImplHelper::Subset: 8737: break; 8737: } 8737: 8737: QVector midResult; 8737: midResult.reallocData(0, len); 8737: T *srcFrom = d->begin() + pos; 8737: T *srcTo = d->begin() + pos + len; 8737: midResult.copyConstruct(srcFrom, srcTo, midResult.data()); 8737: midResult.d->size = len; 8737: return midResult; 8737: } 8737: 8737: template 8737: QList QVector::toList() const 8737: { 8737: QList result; 8737: result.reserve(size()); 8737: for (int i = 0; i < size(); ++i) 8737: result.append(at(i)); 8737: return result; 8737: } 8737: 8737: template 8737: QVector QList::toVector() const 8737: { 8737: QVector result(size()); 8737: for (int i = 0; i < size(); ++i) 8737: result[i] = at(i); 8737: return result; 8737: } 8737: 8737: template 8737: QVector QVector::fromList(const QList &list) 8737: { 8737: return list.toVector(); 8737: } 8737: 8737: template 8737: QList QList::fromVector(const QVector &vector) 8737: { 8737: return vector.toList(); 8737: } 8737: 8737: 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.cin_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr unsigned short 8768: infinity() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned short 8768: quiet_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned short 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned short 8768: denorm_min() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = true; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr int 8768: min() noexcept { return -0x7fffffff - 1; } 8768: 8768: static constexpr int 8768: max() noexcept { return 0x7fffffff; } 8768: 8768: 8768: static constexpr int 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); 8768: static constexpr int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr int 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr int 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr int 8768: infinity() noexcept { return static_cast(0); } 8768: 8768: static constexpr int 8768: quiet_NaN() noexcept { return static_cast(0); } 8768: 8768: static constexpr int 8768: signaling_NaN() noexcept { return static_cast(0); } 8768: 8768: static constexpr int 8768: denorm_min() noexcept { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr unsigned int 8768: min() noexcept { return 0; } 8768: 8768: static constexpr unsigned int 8768: max() noexcept { return 0x7fffffff * 2U + 1; } 8768: 8768: 8768: static constexpr unsigned int 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits 8768: = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = false; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr unsigned int 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr unsigned int 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr unsigned int 8768: infinity() noexcept { return static_cast(0); } 8768: 8768: static constexpr unsigned int 8768: quiet_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned int 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned int 8768: denorm_min() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = true; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr long 8768: min() noexcept { return -0x7fffffffffffffffL - 1; } 8768: 8768: static constexpr long 8768: max() noexcept { return 0x7fffffffffffffffL; } 8768: 8768: 8768: static constexpr long 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); 8768: static constexpr int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr long 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr long 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr long 8768: infinity() noexcept { return static_cast(0); } 8768: 8768: static constexpr long 8768:onstBegin()) {} 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; } }; 8737: 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; } }; 8737: 8737: template 8737: uint qHash(const QVector &key, uint seed = 0) 8737: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8737: { 8737: return qHashRange(key.cbegin(), key.cend(), seed); 8737: } 8737: 8737: template 8737: bool operator<(const QVector &lhs, const QVector &rhs) 8737: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8737: 8737: { 8737: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8737: rhs.begin(), rhs.end()); 8737: } 8737: 8737: template 8737: inline bool operator>(const QVector &lhs, const QVector &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return rhs < lhs; 8737: } 8737: 8737: template 8737: inline bool operator<=(const QVector &lhs, const QVector &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return !(lhs > rhs); 8737: } 8737: 8737: template 8737: inline bool operator>=(const QVector &lhs, const QVector &rhs) 8737: noexcept(noexcept(lhs < rhs)) 8737: { 8737: return !(lhs < rhs); 8737: } 8737: # 1006 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVector" 2 3 4 8737: # 38 "/<>/templates/lib/node.h" 2 8737: 8737: 8737: # 39 "/<>/templates/lib/node.h" 8737: namespace Grantlee 8737: { 8737: 8737: class Engine; 8737: class NodeList; 8737: class TemplateImpl; 8737: 8737: class NodePrivate; 8737: # 82 "/<>/templates/lib/node.h" 8737: class __attribute__((visibility("default"))) Node : public QObject 8737: { 8737: 8737: # 84 "/<>/templates/lib/node.h" 3 4 8737: public: 8737: # 84 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic push 8737: # 84 "/<>/templates/lib/node.h" 8737: 8737: # 84 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 84 "/<>/templates/lib/node.h" 8737: 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: 8737: # 84 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 84 "/<>/templates/lib/node.h" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 84 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic pop 8737: # 84 "/<>/templates/lib/node.h" 8737: struct QPrivateSignal {}; 8737: 8737: # 85 "/<>/templates/lib/node.h" 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: explicit Node(QObject *parent = 0); 8737: 8737: 8737: 8737: 8737: ~Node() override; 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual void render(OutputStream *stream, Context *c) const = 0; 8737: 8737: 8737: 8737: 8737: 8737: virtual bool mustBeFirst() 8737: { 8737: return false; 8737: } 8737: 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void streamValueInContext(OutputStream *stream, const QVariant &input, 8737: Grantlee::Context *c) const; 8737: 8737: 8737: 8737: 8737: TemplateImpl *containerTemplate() const; 8737: 8737: private: 8737: 8737: # 132 "/<>/templates/lib/node.h" 3 4 8737: inline 8737: # 132 "/<>/templates/lib/node.h" 8737: NodePrivate 8737: # 132 "/<>/templates/lib/node.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 132 "/<>/templates/lib/node.h" 8737: NodePrivate 8737: # 132 "/<>/templates/lib/node.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 132 "/<>/templates/lib/node.h" 8737: NodePrivate 8737: # 132 "/<>/templates/lib/node.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8737: NodePrivate 8737: # 132 "/<>/templates/lib/node.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 132 "/<>/templates/lib/node.h" 8737: NodePrivate 8737: # 132 "/<>/templates/lib/node.h" 3 4 8737: ; 8737: 8737: # 133 "/<>/templates/lib/node.h" 8737: NodePrivate *const d_ptr; 8737: }; 8737: # 154 "/<>/templates/lib/node.h" 8737: class __attribute__((visibility("default"))) NodeList : public QList 8737: { 8737: public: 8737: 8737: 8737: 8737: NodeList(); 8737: 8737: 8737: 8737: 8737: NodeList(const NodeList &list); 8737: 8737: NodeList &operator=(const NodeList &list); 8737: 8737: 8737: 8737: 8737: quiet_NaN() noexcept { return static_cast(0); } 8768: 8768: static constexpr long 8768: signaling_NaN() noexcept { return static_cast(0); } 8768: 8768: static constexpr long 8768: denorm_min() noexcept { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr unsigned long 8768: min() noexcept { return 0; } 8768: 8768: static constexpr unsigned long 8768: max() noexcept { return 0x7fffffffffffffffL * 2UL + 1; } 8768: 8768: 8768: static constexpr unsigned long 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits 8768: = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = false; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr unsigned long 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr unsigned long 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr unsigned long 8768: infinity() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned long 8768: quiet_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned long 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned long 8768: denorm_min() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = true; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr long long 8768: min() noexcept { return -0x7fffffffffffffffLL - 1; } 8768: 8768: static constexpr long long 8768: max() noexcept { return 0x7fffffffffffffffLL; } 8768: 8768: 8768: static constexpr long long 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits 8768: = (sizeof(long long) * 8 - ((long long)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr long long 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr long long 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr long long 8768: infinity() noexcept { return static_cast(0); } 8768: 8768: static constexpr long long 8768: quiet_NaN() noexcept { return static_cast(0); } 8768: 8768: static constexpr long long 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr long long 8768: denorm_min() noexcept { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr unsigned long long 8768: min() noexcept { return 0; } 8768: 8768: static constexpr unsigned long long 8768: max() noexcept { return 0x7fffffffffffffffLL * 2ULL + 1; } 8768: 8768: 8768: static constexpr unsigned long long 8768: lowest() noexcept { return min(); } 8768: 8768: 8768: static constexpr int digits 8768: = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); 8768: static constexpr int digits10 8768: = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643L / 2136); 8768: 8768: static constexpr int max_digits10 = 0; 8768: 8768: static constexpr bool is_signed = false; 8768: static constexpr bool is_integer = true; 8768: static constexpr bool is_exact = true; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr unsigned long long 8768: epsilon() noexcept { return 0; } 8768: 8768: static constexpr unsigned long long 8768: round_error() noexcept { return 0; } 8768: 8768: static constexpr int min_exponent = 0; 8768: static constexpr int min_exponent10 = 0; 8768: static constexpr int max_exponent = 0; 8768: static constexpr int max_exponent10 = 0; 8768: 8768: static constexpr bool has_infinity = false; 8768: static constexpr bool has_quiet_NaN = false; 8768: static constexpr bool has_signaling_NaN = false; 8768: static constexpr float_denorm_style has_denorm 8768: = denorm_absent; 8768: static constexpr bool has_denorm_loss = false; 8768: 8768: static constexpr unsigned long long 8768: infinity() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned long long 8768: quiet_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned long long 8768: signaling_NaN() noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr unsigned long long 8768: denorm_min NodeList(const QList &list); 8737: 8737: 8737: 8737: 8737: ~NodeList(); 8737: 8737: 8737: 8737: 8737: void append(Grantlee::Node *node); 8737: 8737: 8737: 8737: 8737: void append(QList nodeList); 8737: 8737: 8737: 8737: 8737: bool containsNonText() const; 8737: 8737: 8737: 8737: 8737: template QList findChildren() 8737: { 8737: QList children; 8737: QList::const_iterator it; 8737: const QList::const_iterator first = constBegin(); 8737: const QList::const_iterator last = constEnd(); 8737: for (it = first; it != last; ++it) { 8737: T object = qobject_cast(*it); 8737: if (object) { 8737: children << object; 8737: } 8737: children << (*it)->findChildren(); 8737: } 8737: return children; 8737: } 8737: 8737: 8737: 8737: 8737: void render(OutputStream *stream, Context *c) const; 8737: 8737: private: 8737: bool m_containsNonText; 8737: }; 8737: 8737: class AbstractNodeFactoryPrivate; 8737: # 306 "/<>/templates/lib/node.h" 8737: class __attribute__((visibility("default"))) AbstractNodeFactory : public QObject 8737: { 8737: 8737: # 308 "/<>/templates/lib/node.h" 3 4 8737: public: 8737: # 308 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic push 8737: # 308 "/<>/templates/lib/node.h" 8737: 8737: # 308 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 308 "/<>/templates/lib/node.h" 8737: 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: 8737: # 308 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 308 "/<>/templates/lib/node.h" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 308 "/<>/templates/lib/node.h" 8737: #pragma GCC diagnostic pop 8737: # 308 "/<>/templates/lib/node.h" 8737: struct QPrivateSignal {}; 8737: 8737: # 309 "/<>/templates/lib/node.h" 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: explicit AbstractNodeFactory(QObject *parent = 0); 8737: 8737: 8737: 8737: 8737: ~AbstractNodeFactory() override; 8737: # 337 "/<>/templates/lib/node.h" 8737: virtual Node *getNode(const QString &tagContent, Parser *p) const = 0; 8737: # 346 "/<>/templates/lib/node.h" 8737: virtual void setEngine(Engine *) {} 8737: 8737: 8737: protected: 8737: # 365 "/<>/templates/lib/node.h" 8737: QStringList smartSplit(const QString &str) const; 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: QList getFilterExpressionList(const QStringList &list, 8737: Parser *p) const; 8737: 8737: private: 8737: 8737: # 378 "/<>/templates/lib/node.h" 3 4 8737: inline 8737: # 378 "/<>/templates/lib/node.h" 8737: AbstractNodeFactoryPrivate 8737: # 378 "/<>/templates/lib/node.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 378 "/<>/templates/lib/node.h" 8737: AbstractNodeFactoryPrivate 8737: # 378 "/<>/templates/lib/node.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 378 "/<>/templates/lib/node.h" 8737: AbstractNodeFactoryPrivate 8737: # 378 "/<>/templates/lib/node.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8737: AbstractNodeFactoryPrivate 8737: # 378 "/<>/templates/lib/node.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 378 "/<>/templates/lib/node.h" 8737: AbstractNodeFactoryPrivate 8737: # 378 "/<>/templates/lib/node.h" 3 4 8737: ; 8737: 8737: # 379 "/<>/templates/lib/node.h" 8737: AbstractNodeFactoryPrivate *const d_ptr; 8737: }; 8737: } 8737: # 27 "/<>/templates/lib/template.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8737: # 29 "/<>/templates/lib/template.h" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 2 3 4 8737: # 30 "/<>/templates/lib/template.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: class Context; 8737: class Engine; 8737: class TemplateImpl; 8737: class OutputStream; 8737: 8737: 8737: 8737: 8737: typedef QSharedPointer Template; 8737: 8737: 8737: class TemplatePrivate; 8737: # 94 "/<>/templates/lib/template.h" 8737: class __attribute__((visibility("default"))) TemplateImpl : public QObject 8737: { 8737: 8737: # 96 "/<>/templates/lib/template.h" 3 4 8737: public: 8737: # 96 "/<>/templates/lib/template.h" 8737: #pragma GCC diagnostic push 8737: # 96 "/<>/templates/lib/template.h" 8737: 8737: # 96 "/<>/templates/lib/template.h" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 96 "/<>/templates/lib/template.h" 8737: 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: 8737: # 96 "/<>/templates/lib/template.h" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 96 "/<>/templates/lib/template.h" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 96 "/<>/templates/lib/template.h" 8737: #pragma GCC diagnostic pop 8737: # 96 "/<>/templates/lib/template.h" 8737: struct QPrivateSignal {}; 8737: 8737: # 97 "/<>/templates/lib/template.h" 8737: public: 8737: ~TemplateImpl() override; 8737: 8737: 8737: 8737: 8737: QString render(Context *c) const; 8737: 8737: 8737: 8737: 8737: OutputStream *render(OutputStream *stream, Context *c) const; 8737: 8737: 8737: 8737: 8737: 8737: NodeList nodeList() const; 8737: 8737: 8737: 8737: 8737: void setNodeList(const NodeList &list); 8737: 8737: 8737: 8737: 8737: 8737: Error error() const; 8737: 8737: 8737: 8737: 8737: QString errorString() const; 8737: 8737: () noexcept 8768: { return static_cast(0); } 8768: 8768: static constexpr bool is_iec559 = false; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = true; 8768: 8768: static constexpr bool traps = true; 8768: static constexpr bool tinyness_before = false; 8768: static constexpr float_round_style round_style 8768: = round_toward_zero; 8768: }; 8768: # 1570 "/usr/include/c++/8/limits" 3 8768: template<> struct numeric_limits<__int128> { static constexpr bool is_specialized = true; static constexpr __int128 min() noexcept { return (((__int128)(-1) < 0) ? -(((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0) - 1 : (__int128)0); } static constexpr __int128 max() noexcept { return (((__int128)(-1) < 0) ? (((((__int128)1 << ((128 - ((__int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(__int128)0); } static constexpr int digits = 128 - 1; static constexpr int digits10 = (128 - 1) * 643L / 2136; static constexpr bool is_signed = true; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr __int128 epsilon() noexcept { return 0; } static constexpr __int128 round_error() noexcept { return 0; } static constexpr __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr __int128 infinity() noexcept { return static_cast<__int128>(0); } static constexpr __int128 quiet_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 signaling_NaN() noexcept { return static_cast<__int128>(0); } static constexpr __int128 denorm_min() noexcept { return static_cast<__int128>(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = false; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; template<> struct numeric_limits { static constexpr bool is_specialized = true; static constexpr unsigned __int128 min() noexcept { return 0; } static constexpr unsigned __int128 max() noexcept { return (((unsigned __int128)(-1) < 0) ? (((((unsigned __int128)1 << ((128 - ((unsigned __int128)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(unsigned __int128)0); } static constexpr unsigned __int128 lowest() noexcept { return min(); } static constexpr int max_digits10 = 0; static constexpr int digits = 128; static constexpr int digits10 = 128 * 643L / 2136; static constexpr bool is_signed = false; static constexpr bool is_integer = true; static constexpr bool is_exact = true; static constexpr int radix = 2; static constexpr unsigned __int128 epsilon() noexcept { return 0; } static constexpr unsigned __int128 round_error() noexcept { return 0; } static constexpr int min_exponent = 0; static constexpr int min_exponent10 = 0; static constexpr int max_exponent = 0; static constexpr int max_exponent10 = 0; static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; static constexpr float_denorm_style has_denorm = denorm_absent; static constexpr bool has_denorm_loss = false; static constexpr unsigned __int128 infinity() noexcept { return static_cast(0); } static constexpr unsigned __int128 quiet_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 signaling_NaN() noexcept { return static_cast(0); } static constexpr unsigned __int128 denorm_min() noexcept { return static_cast(0); } static constexpr bool is_iec559 = false; static constexpr bool is_bounded = true; static constexpr bool is_modulo = true; static constexpr bool traps = true; static constexpr bool tinyness_before = false; static constexpr float_round_style round_style = round_toward_zero; }; 8768: # 1593 "/usr/include/c++/8/limits" 3 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr float 8768: min() noexcept { return 1.17549435082228750796873653722224568e-38F; } 8768: 8768: static constexpr float 8768: max() noexcept { return 3.40282346638528859811704183484516925e+38F; } 8768: 8768: 8768: static constexpr float 8768: lowest() noexcept { return -3.40282346638528859811704183484516925e+38F; } 8768: 8768: 8768: static constexpr int digits = 24; 8768: static constexpr int digits10 = 6; 8768: 8768: static constexpr int max_digits10 8768: = (2 + (24) * 643L / 2136); 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = false; 8768: static constexpr bool is_exact = false; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr float 8768: epsilon() noexcept { return 1.19209289550781250000000000000000000e-7F; } 8768: 8768: static constexpr float 8768: round_error() noexcept { return 0.5F; } 8768: 8768: static constexpr int min_exponent = (-125); 8768: static constexpr int min_exponent10 = (-37); 8768: static constexpr int max_exponent = 128; 8768: static constexpr int max_exponent10 = 38; 8768: 8768: static constexpr bool has_infinity = 1; 8768: static constexpr bool has_quiet_NaN = 1; 8768: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8768: static constexpr float_denorm_style has_denorm 8768: = bool(1) ? denorm_present : denorm_absent; 8768: static constexpr bool has_denorm_loss 8768: = false; 8768: 8768: static constexpr float 8768: infinity() noexcept { return __builtin_huge_valf(); } 8768: 8768: static constexpr float 8768: quiet_NaN() noexcept { return __builtin_nanf(""); } 8768: 8768: static constexpr float 8768: signaling_NaN() noexcept { return __builtin_nansf(""); } 8768: 8768: static constexpr float 8768: denorm_min() noexcept { return 1.40129846432481707092372958328991613e-45F; } 8768: 8768: static constexpr bool is_iec559 8768: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = false; 8768: static constexpr bool tinyness_before 8768: = false; 8768: static constexpr float_round_style round_style 8768: = round_to_nearest; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr double 8768: min() noexcept { return double(2.22507385850720138309023271733240406e-308L); } 8768: 8768: static constexpr double 8768: max() noexcept { return double(1.79769313486231570814527423731704357e+308L); } 8768: 8768: 8768: static constexpr double 8768: lowest() noexcept { return -double(1.79769313486231570814527423731704357e+308L); } 8768: 8768: 8768: static constexpr int digits = 53; 8768: static constexpr int digits10 = 15; 8768: 8768: static constexpr int max_digits10 8768: = (2 + (53) * 643L / 2136); 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = false; 8768: static constexpr bool is_exact = false; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr double 8768: epsilon() noexcept { return double(2.8737: 8737: 8737: Engine const *engine() const; 8737: 8737: 8737: protected: 8737: TemplateImpl(Engine const *engine, QObject *parent = 0); 8737: TemplateImpl(Engine const *engine, bool smartTrim, QObject *parent = 0); 8737: 8737: void setContent(const QString &templateString); 8737: 8737: 8737: private: 8737: 8737: 8737: 8737: using QObject::setParent; 8737: 8737: private: 8737: 8737: # 152 "/<>/templates/lib/template.h" 3 4 8737: inline 8737: # 152 "/<>/templates/lib/template.h" 8737: TemplatePrivate 8737: # 152 "/<>/templates/lib/template.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 152 "/<>/templates/lib/template.h" 8737: TemplatePrivate 8737: # 152 "/<>/templates/lib/template.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 152 "/<>/templates/lib/template.h" 8737: TemplatePrivate 8737: # 152 "/<>/templates/lib/template.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/template.h" 8737: TemplatePrivate 8737: # 152 "/<>/templates/lib/template.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 152 "/<>/templates/lib/template.h" 8737: TemplatePrivate 8737: # 152 "/<>/templates/lib/template.h" 3 4 8737: ; 8737: 8737: # 153 "/<>/templates/lib/template.h" 8737: TemplatePrivate *const d_ptr; 8737: 8737: friend class Engine; 8737: friend class Parser; 8737: 8737: }; 8737: } 8737: # 25 "/<>/templates/lib/engine.h" 2 8737: # 1 "/<>/templates/lib/templateloader.h" 1 8737: # 24 "/<>/templates/lib/templateloader.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/templateloader.h" 2 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8737: # 28 "/<>/templates/lib/templateloader.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: 8737: class AbstractLocalizer; 8737: # 49 "/<>/templates/lib/templateloader.h" 8737: class __attribute__((visibility("default"))) AbstractTemplateLoader 8737: { 8737: public: 8737: 8737: 8737: 8737: virtual ~AbstractTemplateLoader(); 8737: 8737: 8737: 8737: 8737: 8737: 8737: virtual Template loadByName(const QString &name, 8737: Engine const *engine) const = 0; 8737: 8737: 8737: 8737: 8737: virtual QPair 8737: getMediaUri(const QString &fileName) const = 0; 8737: 8737: 8737: 8737: 8737: virtual bool canLoadTemplate(const QString &name) const = 0; 8737: }; 8737: 8737: 8737: 8737: class FileSystemTemplateLoaderPrivate; 8737: # 133 "/<>/templates/lib/templateloader.h" 8737: class __attribute__((visibility("default"))) FileSystemTemplateLoader 8737: : public AbstractTemplateLoader 8737: { 8737: public: 8737: 8737: 8737: 8737: FileSystemTemplateLoader(const QSharedPointer localizer 8737: = QSharedPointer()); 8737: 8737: 8737: 8737: 8737: ~FileSystemTemplateLoader() override; 8737: 8737: Template loadByName(const QString &name, Engine const *engine) const override; 8737: 8737: bool canLoadTemplate(const QString &name) const override; 8737: 8737: QPair getMediaUri(const QString &fileName) const override; 8737: 8737: 8737: 8737: 8737: void setTheme(const QString &themeName); 8737: 8737: 8737: 8737: 8737: QString themeName() const; 8737: 8737: 8737: 8737: 8737: void setTemplateDirs(const QStringList &dirs); 8737: 8737: 8737: 8737: 8737: QStringList templateDirs() const; 8737: 8737: private: 8737: 8737: # 175 "/<>/templates/lib/templateloader.h" 3 4 8737: inline 8737: # 175 "/<>/templates/lib/templateloader.h" 8737: FileSystemTemplateLoaderPrivate 8737: # 175 "/<>/templates/lib/templateloader.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 175 "/<>/templates/lib/templateloader.h" 8737: FileSystemTemplateLoaderPrivate 8737: # 175 "/<>/templates/lib/templateloader.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 175 "/<>/templates/lib/templateloader.h" 8737: FileSystemTemplateLoaderPrivate 8737: # 175 "/<>/templates/lib/templateloader.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/templateloader.h" 8737: FileSystemTemplateLoaderPrivate 8737: # 175 "/<>/templates/lib/templateloader.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 175 "/<>/templates/lib/templateloader.h" 8737: FileSystemTemplateLoaderPrivate 8737: # 175 "/<>/templates/lib/templateloader.h" 3 4 8737: ; 8737: 8737: # 176 "/<>/templates/lib/templateloader.h" 8737: FileSystemTemplateLoaderPrivate *const d_ptr; 8737: }; 8737: # 190 "/<>/templates/lib/templateloader.h" 8737: class __attribute__((visibility("default"))) InMemoryTemplateLoader 8737: : public AbstractTemplateLoader 8737: { 8737: public: 8737: InMemoryTemplateLoader(); 8737: ~InMemoryTemplateLoader() override; 8737: 8737: Template loadByName(const QString &name, Engine const *engine) const override; 8737: 8737: bool canLoadTemplate(const QString &name) const override; 8737: 8737: QPair getMediaUri(const QString &fileName) const override; 8737: # 217 "/<>/templates/lib/templateloader.h" 8737: void setTemplate(const QString &name, const QString &content); 8737: 8737: private: 8737: QHash m_namedTemplates; 8737: }; 8737: } 8737: # 26 "/<>/templates/lib/engine.h" 2 8737: 8737: namespace Grantlee 8737: { 8737: class TagLibraryInterface; 8737: 8737: class EnginePrivate; 8737: # 123 "/<>/templates/lib/engine.h" 8737: class __attribute__((visibility("default"))) Engine : public QObject 8737: { 8737: 8737: # 125 "/<>/templates/lib/engine.h" 3 4 8737: public: 8737: # 125 "/<>/templates/lib/engine.h" 8737: #pragma GCC diagnostic push 8737: # 125 "/<>/templates/lib/engine.h" 8737: 8737: # 125 "/<>/templates/lib/engine.h" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 125 "/<>/templates/lib/engine.h" 8737: 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: 8737: # 125 "/<>/templates/lib/engine.h" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 125 "/<>/templates/lib/engine.h" 8737: __attribu22044604925031308084726333618164062e-16L); } 8768: 8768: static constexpr double 8768: round_error() noexcept { return 0.5; } 8768: 8768: static constexpr int min_exponent = (-1021); 8768: static constexpr int min_exponent10 = (-307); 8768: static constexpr int max_exponent = 1024; 8768: static constexpr int max_exponent10 = 308; 8768: 8768: static constexpr bool has_infinity = 1; 8768: static constexpr bool has_quiet_NaN = 1; 8768: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8768: static constexpr float_denorm_style has_denorm 8768: = bool(1) ? denorm_present : denorm_absent; 8768: static constexpr bool has_denorm_loss 8768: = false; 8768: 8768: static constexpr double 8768: infinity() noexcept { return __builtin_huge_val(); } 8768: 8768: static constexpr double 8768: quiet_NaN() noexcept { return __builtin_nan(""); } 8768: 8768: static constexpr double 8768: signaling_NaN() noexcept { return __builtin_nans(""); } 8768: 8768: static constexpr double 8768: denorm_min() noexcept { return double(4.94065645841246544176568792868221372e-324L); } 8768: 8768: static constexpr bool is_iec559 8768: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = false; 8768: static constexpr bool tinyness_before 8768: = false; 8768: static constexpr float_round_style round_style 8768: = round_to_nearest; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: struct numeric_limits 8768: { 8768: static constexpr bool is_specialized = true; 8768: 8768: static constexpr long double 8768: min() noexcept { return 3.36210314311209350626267781732175260e-4932L; } 8768: 8768: static constexpr long double 8768: max() noexcept { return 1.18973149535723176502126385303097021e+4932L; } 8768: 8768: 8768: static constexpr long double 8768: lowest() noexcept { return -1.18973149535723176502126385303097021e+4932L; } 8768: 8768: 8768: static constexpr int digits = 64; 8768: static constexpr int digits10 = 18; 8768: 8768: static constexpr int max_digits10 8768: = (2 + (64) * 643L / 2136); 8768: 8768: static constexpr bool is_signed = true; 8768: static constexpr bool is_integer = false; 8768: static constexpr bool is_exact = false; 8768: static constexpr int radix = 2; 8768: 8768: static constexpr long double 8768: epsilon() noexcept { return 1.08420217248550443400745280086994171e-19L; } 8768: 8768: static constexpr long double 8768: round_error() noexcept { return 0.5L; } 8768: 8768: static constexpr int min_exponent = (-16381); 8768: static constexpr int min_exponent10 = (-4931); 8768: static constexpr int max_exponent = 16384; 8768: static constexpr int max_exponent10 = 4932; 8768: 8768: static constexpr bool has_infinity = 1; 8768: static constexpr bool has_quiet_NaN = 1; 8768: static constexpr bool has_signaling_NaN = has_quiet_NaN; 8768: static constexpr float_denorm_style has_denorm 8768: = bool(1) ? denorm_present : denorm_absent; 8768: static constexpr bool has_denorm_loss 8768: = false; 8768: 8768: static constexpr long double 8768: infinity() noexcept { return __builtin_huge_vall(); } 8768: 8768: static constexpr long double 8768: quiet_NaN() noexcept { return __builtin_nanl(""); } 8768: 8768: static constexpr long double 8768: signaling_NaN() noexcept { return __builtin_nansl(""); } 8768: 8768: static constexpr long double 8768: denorm_min() noexcept { return 3.64519953188247460252840593361941982e-4951L; } 8768: 8768: static constexpr bool is_iec559 8768: = has_infinity && has_quiet_NaN && has_denorm == denorm_present; 8768: static constexpr bool is_bounded = true; 8768: static constexpr bool is_modulo = false; 8768: 8768: static constexpr bool traps = false; 8768: static constexpr bool tinyness_before = 8768: false; 8768: static constexpr float_round_style round_style = 8768: round_to_nearest; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: # 36 "/usr/include/c++/8/bits/uniform_int_dist.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace __detail 8768: { 8768: 8768: template 8768: inline bool 8768: _Power_of_2(_Tp __x) 8768: { 8768: return ((__x - 1) & __x) == 0; 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class uniform_int_distribution 8768: { 8768: static_assert(std::is_integral<_IntType>::value, 8768: "template argument must be an integral type"); 8768: 8768: public: 8768: 8768: typedef _IntType result_type; 8768: 8768: struct param_type 8768: { 8768: typedef uniform_int_distribution<_IntType> distribution_type; 8768: 8768: explicit 8768: param_type(_IntType __a = 0, 8768: _IntType __b = std::numeric_limits<_IntType>::max()) 8768: : _M_a(__a), _M_b(__b) 8768: { 8768: ; 8768: } 8768: 8768: result_type 8768: a() const 8768: { return _M_a; } 8768: 8768: result_type 8768: b() const 8768: { return _M_b; } 8768: 8768: friend bool 8768: operator==(const param_type& __p1, const param_type& __p2) 8768: { return __p1._M_a == __p2._M_a && __p1._M_b == __p2._M_b; } 8768: 8768: friend bool 8768: operator!=(const param_type& __p1, const param_type& __p2) 8768: { return !(__p1 == __p2); } 8768: 8768: private: 8768: _IntType _M_a; 8768: _IntType _M_b; 8768: }; 8768: 8768: public: 8768: 8768: 8768: 8768: explicit 8768: uniform_int_distribution(_IntType __a = 0, 8768: _IntType __b = std::numeric_limits<_IntType>::max()) 8768: : _M_param(__a, __b) 8768: { } 8768: 8768: explicit 8768: uniform_int_distribution(const param_type& __p) 8768: : _M_param(__p) 8768: { } 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: reset() { } 8768: 8768: result_type 8768: a() const 8768: { return _M_param.a(); } 8768: 8768: result_type 8768: b() const 8768: { return _M_param.b(); } 8768: 8768: 8768: 8768: 8768: param_type 8768: param() const 8768: { return _M_param; } 8768: 8768: 8768: 8768: 8768: 8768: void 8768: param(const param_type& __param) 8768: { _M_param = __param; } 8768: 8768: 8768: 8768: 8768: result_type 8768: min() const 8768: { return this->a(); } 8768: 8768: 8768: 8768: 8768: result_type 8768: max() const 8768: { return this->b(); } 8768: 8768: 8768: 8768: 8768: template 8768: result_type 8768: operator()(_UniformRandomNumberGenerator& __urng) 8768: { return this->operator()(__urng, _M_param); } 8768: 8768: template 8768: result_type 8768: operator()(_UniformRandomNumberGenerator& __urng, 8768: const param_type& __p); 8768: 8768: template 8768: void 8768: __generate(_ForwardIterator __f, _ForwardIterator __t, 8768: _UniformRandomNumberGenerator& __urng) 8768: { this->__generate(__f, __t, __urng, _M_param); } 8768: 8768: template 8768: void 8768: __generate(_ForwardIterator __f, _ForwardIterator __t, 8768: _UniformRandomNumberGenerator& __urng, 8768: const param_type& __p) 8768: { this->__generate_impl(__f, __t, __urng, __p); } 8768: 8768: template 8768: void 8768: __generate(rete__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 125 "/<>/templates/lib/engine.h" 8737: #pragma GCC diagnostic pop 8737: # 125 "/<>/templates/lib/engine.h" 8737: struct QPrivateSignal {}; 8737: 8737: # 126 "/<>/templates/lib/engine.h" 8737: public: 8737: 8737: 8737: 8737: Engine(QObject *parent = 0); 8737: 8737: 8737: 8737: 8737: ~Engine() override; 8737: 8737: 8737: 8737: 8737: QList> templateLoaders(); 8737: 8737: 8737: 8737: 8737: void addTemplateLoader(QSharedPointer loader); 8737: # 155 "/<>/templates/lib/engine.h" 8737: void setPluginPaths(const QStringList &dirs); 8737: 8737: 8737: 8737: 8737: void addPluginPath(const QString &dir); 8737: 8737: 8737: 8737: 8737: void removePluginPath(const QString &dir); 8737: 8737: 8737: 8737: 8737: QStringList pluginPaths() const; 8737: # 185 "/<>/templates/lib/engine.h" 8737: QPair mediaUri(const QString &fileName) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: Template loadByName(const QString &name) const; 8737: # 202 "/<>/templates/lib/engine.h" 8737: Template newTemplate(const QString &content, const QString &name) const; 8737: 8737: 8737: 8737: 8737: QStringList defaultLibraries() const; 8737: 8737: 8737: 8737: 8737: 8737: void addDefaultLibrary(const QString &libName); 8737: 8737: 8737: 8737: 8737: 8737: 8737: void removeDefaultLibrary(const QString &libName); 8737: # 230 "/<>/templates/lib/engine.h" 8737: bool smartTrimEnabled() const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: void setSmartTrimEnabled(bool enabled); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void loadDefaultLibraries(); 8737: # 255 "/<>/templates/lib/engine.h" 8737: TagLibraryInterface *loadLibrary(const QString &name); 8737: 8737: 8737: private: 8737: 8737: # 259 "/<>/templates/lib/engine.h" 3 4 8737: inline 8737: # 259 "/<>/templates/lib/engine.h" 8737: EnginePrivate 8737: # 259 "/<>/templates/lib/engine.h" 3 4 8737: * d_func() { return reinterpret_cast< 8737: # 259 "/<>/templates/lib/engine.h" 8737: EnginePrivate 8737: # 259 "/<>/templates/lib/engine.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } inline const 8737: # 259 "/<>/templates/lib/engine.h" 8737: EnginePrivate 8737: # 259 "/<>/templates/lib/engine.h" 3 4 8737: * d_func() const { return reinterpret_cast>/templates/lib/engine.h" 8737: EnginePrivate 8737: # 259 "/<>/templates/lib/engine.h" 3 4 8737: *>(qGetPtrHelper(d_ptr)); } friend class 8737: # 259 "/<>/templates/lib/engine.h" 8737: EnginePrivate 8737: # 259 "/<>/templates/lib/engine.h" 3 4 8737: ; 8737: 8737: # 260 "/<>/templates/lib/engine.h" 8737: EnginePrivate *const d_ptr; 8737: }; 8737: } 8737: # 23 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/tests/grantlee_paths.h" 1 8737: # 24 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/<>/templates/lib/metatype.h" 1 8737: # 25 "/<>/templates/lib/metatype.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 26 "/<>/templates/lib/metatype.h" 2 8737: 8737: # 1 "/<>/templates/lib/typeaccessor.h" 1 8737: # 24 "/<>/templates/lib/typeaccessor.h" 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8737: # 25 "/<>/templates/lib/typeaccessor.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QObject" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QObject" 2 3 4 8737: # 27 "/<>/templates/lib/typeaccessor.h" 2 8737: 8737: 8737: 8737: namespace Grantlee 8737: { 8737: 8737: 8737: template struct TypeAccessor { 8737: static QVariant lookUp(const T object, const QString &property); 8737: }; 8737: 8737: template struct TypeAccessor { 8737: static QVariant lookUp(const T *const object, const QString &property); 8737: }; 8737: 8737: template struct TypeAccessor { 8737: static QVariant lookUp(const T &object, const QString &property); 8737: }; 8737: 8737: } 8737: # 28 "/<>/templates/lib/metatype.h" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8737: # 30 "/<>/templates/lib/metatype.h" 2 8737: 8737: 8737: 8737: namespace Grantlee 8737: { 8737: # 52 "/<>/templates/lib/metatype.h" 8737: class __attribute__((visibility("default"))) MetaType 8737: { 8737: public: 8737: 8737: 8737: 8737: typedef QVariant (*LookupFunction)(const QVariant &, const QString &); 8737: 8737: 8737: 8737: 8737: static void registerLookUpOperator(int id, LookupFunction f); 8737: 8737: 8737: 8737: 8737: static void internalLock(); 8737: 8737: 8737: 8737: 8737: static void internalUnlock(); 8737: 8737: 8737: 8737: 8737: static QVariant lookup(const QVariant &object, const QString &property); 8737: 8737: 8737: 8737: 8737: static bool lookupAlreadyRegistered(int id); 8737: 8737: private: 8737: MetaType(); 8737: }; 8737: 8737: 8737: namespace 8737: { 8737: 8737: 8737: 8737: 8737: template struct LookupTrait { 8737: static QVariant doLookUp(const QVariant &object, const QString &property) 8737: { 8737: typedef typename Grantlee::TypeAccessor Accessor; 8737: return Accessor::lookUp(object.value(), property); 8737: } 8737: }; 8737: 8737: template 8737: struct LookupTrait { 8737: static QVariant doLookUp(const QVariant &object, const QString &property) 8737: { 8737: typedef typename Grantlee::TypeAccessor Accessor; 8737: return Accessor::lookUp(object.value(), property); 8737: } 8737: }; 8737: 8737: template static int doRegister(int id) 8737: { 8737: if (MetaType::lookupAlreadyRegistered(id)) 8737: return id; 8737: 8737: QVariant (*lf)(const QVariant &, const QString &) 8737: = LookupTrait::doLookUp; 8737: 8737: MetaType::registerLookUpOperator( 8737: id, reinterpret_cast(lf)); 8737: 8737: return id; 8737: } 8737: 8737: 8737: 8737: 8737: template struct InternalRegisterType { 8737: static int doReg() 8737: { 8737: const int id = qMetaTypeId(); 8737: return doRegister(id); 8737: } 8737: }; 8737: 8737: template 8737: struct InternalRegisterType { 8737: static int doReg() 8737: { 8737: const int id = qMetaTypeId(); 8737: return doRegister(id); 8737: } 8737: };sult_type* __f, result_type* __t, 8768: _UniformRandomNumberGenerator& __urng, 8768: const param_type& __p) 8768: { this->__generate_impl(__f, __t, __urng, __p); } 8768: 8768: 8768: 8768: 8768: 8768: friend bool 8768: operator==(const uniform_int_distribution& __d1, 8768: const uniform_int_distribution& __d2) 8768: { return __d1._M_param == __d2._M_param; } 8768: 8768: private: 8768: template 8768: void 8768: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8768: _UniformRandomNumberGenerator& __urng, 8768: const param_type& __p); 8768: 8768: param_type _M_param; 8768: }; 8768: 8768: template 8768: template 8768: typename uniform_int_distribution<_IntType>::result_type 8768: uniform_int_distribution<_IntType>:: 8768: operator()(_UniformRandomNumberGenerator& __urng, 8768: const param_type& __param) 8768: { 8768: typedef typename _UniformRandomNumberGenerator::result_type 8768: _Gresult_type; 8768: typedef typename std::make_unsigned::type __utype; 8768: typedef typename std::common_type<_Gresult_type, __utype>::type 8768: __uctype; 8768: 8768: const __uctype __urngmin = __urng.min(); 8768: const __uctype __urngmax = __urng.max(); 8768: const __uctype __urngrange = __urngmax - __urngmin; 8768: const __uctype __urange 8768: = __uctype(__param.b()) - __uctype(__param.a()); 8768: 8768: __uctype __ret; 8768: 8768: if (__urngrange > __urange) 8768: { 8768: 8768: const __uctype __uerange = __urange + 1; 8768: const __uctype __scaling = __urngrange / __uerange; 8768: const __uctype __past = __uerange * __scaling; 8768: do 8768: __ret = __uctype(__urng()) - __urngmin; 8768: while (__ret >= __past); 8768: __ret /= __scaling; 8768: } 8768: else if (__urngrange < __urange) 8768: { 8768: # 264 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8768: __uctype __tmp; 8768: do 8768: { 8768: const __uctype __uerngrange = __urngrange + 1; 8768: __tmp = (__uerngrange * operator() 8768: (__urng, param_type(0, __urange / __uerngrange))); 8768: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8768: } 8768: while (__ret > __urange || __ret < __tmp); 8768: } 8768: else 8768: __ret = __uctype(__urng()) - __urngmin; 8768: 8768: return __ret + __param.a(); 8768: } 8768: 8768: 8768: template 8768: template 8768: void 8768: uniform_int_distribution<_IntType>:: 8768: __generate_impl(_ForwardIterator __f, _ForwardIterator __t, 8768: _UniformRandomNumberGenerator& __urng, 8768: const param_type& __param) 8768: { 8768: 8768: typedef typename _UniformRandomNumberGenerator::result_type 8768: _Gresult_type; 8768: typedef typename std::make_unsigned::type __utype; 8768: typedef typename std::common_type<_Gresult_type, __utype>::type 8768: __uctype; 8768: 8768: const __uctype __urngmin = __urng.min(); 8768: const __uctype __urngmax = __urng.max(); 8768: const __uctype __urngrange = __urngmax - __urngmin; 8768: const __uctype __urange 8768: = __uctype(__param.b()) - __uctype(__param.a()); 8768: 8768: __uctype __ret; 8768: 8768: if (__urngrange > __urange) 8768: { 8768: if (__detail::_Power_of_2(__urngrange + 1) 8768: && __detail::_Power_of_2(__urange + 1)) 8768: { 8768: while (__f != __t) 8768: { 8768: __ret = __uctype(__urng()) - __urngmin; 8768: *__f++ = (__ret & __urange) + __param.a(); 8768: } 8768: } 8768: else 8768: { 8768: 8768: const __uctype __uerange = __urange + 1; 8768: const __uctype __scaling = __urngrange / __uerange; 8768: const __uctype __past = __uerange * __scaling; 8768: while (__f != __t) 8768: { 8768: do 8768: __ret = __uctype(__urng()) - __urngmin; 8768: while (__ret >= __past); 8768: *__f++ = __ret / __scaling + __param.a(); 8768: } 8768: } 8768: } 8768: else if (__urngrange < __urange) 8768: { 8768: # 348 "/usr/include/c++/8/bits/uniform_int_dist.h" 3 8768: __uctype __tmp; 8768: while (__f != __t) 8768: { 8768: do 8768: { 8768: const __uctype __uerngrange = __urngrange + 1; 8768: __tmp = (__uerngrange * operator() 8768: (__urng, param_type(0, __urange / __uerngrange))); 8768: __ret = __tmp + (__uctype(__urng()) - __urngmin); 8768: } 8768: while (__ret > __urange || __ret < __tmp); 8768: *__f++ = __ret; 8768: } 8768: } 8768: else 8768: while (__f != __t) 8768: *__f++ = __uctype(__urng()) - __urngmin + __param.a(); 8768: } 8768: 8768: 8768: 8768: 8768: } 8768: # 67 "/usr/include/c++/8/bits/stl_algo.h" 2 3 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: void 8768: __move_median_to_first(_Iterator __result,_Iterator __a, _Iterator __b, 8768: _Iterator __c, _Compare __comp) 8768: { 8768: if (__comp(__a, __b)) 8768: { 8768: if (__comp(__b, __c)) 8768: std::iter_swap(__result, __b); 8768: else if (__comp(__a, __c)) 8768: std::iter_swap(__result, __c); 8768: else 8768: std::iter_swap(__result, __a); 8768: } 8768: else if (__comp(__a, __c)) 8768: std::iter_swap(__result, __a); 8768: else if (__comp(__b, __c)) 8768: std::iter_swap(__result, __c); 8768: else 8768: std::iter_swap(__result, __b); 8768: } 8768: 8768: 8768: template 8768: inline _InputIterator 8768: __find_if(_InputIterator __first, _InputIterator __last, 8768: _Predicate __pred, input_iterator_tag) 8768: { 8768: while (__first != __last && !__pred(__first)) 8768: ++__first; 8768: return __first; 8768: } 8768: 8768: 8768: template 8768: _RandomAccessIterator 8768: __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Predicate __pred, random_access_iterator_tag) 8768: { 8768: typename iterator_traits<_RandomAccessIterator>::difference_type 8768: __trip_count = (__last - __first) >> 2; 8768: 8768: for (; __trip_count > 0; --__trip_count) 8768: { 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: } 8768: 8768: switch (__last - __first) 8768: { 8768: case 3: 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: case 2: 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: case 1: 8768: if (__pred(__first)) 8768: return __first; 8768: ++__first; 8768: case 0: 8768: default: 8768: return __last; 8768: } 8768: } 8768: 8768: template 8768: inline _Iterator 8768: __find_if(_Iterator __first, _Iterator __last, _Predicate __pred) 8768: { 8768: return __find_if(__first, __last, __pred, 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: 8768: template 8768: inline _InputIterator 8768: __find_if_not(_InputIterator __first, _InputIterator __last, 8768: _Predicate __pred) 8768: { 8768: return std::__find_if(__first, __last, 8768: __gnu_cxx::__ops::__negate(__pred), 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: 8768: 8768: 8768: template>/templates/lib/metatype.h" 8737: template int registerMetaType() 8737: { 8737: MetaType::internalLock(); 8737: 8737: const int id = InternalRegisterType::doReg(); 8737: 8737: MetaType::internalUnlock(); 8737: 8737: return id; 8737: } 8737: # 202 "/<>/templates/lib/metatype.h" 8737: template int registerMetaType() 8737: { 8737: return registerMetaType(); 8737: } 8737: 8737: 8737: } 8737: # 25 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/<>/templates/lib/template.h" 1 8737: # 26 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/<>/templates/tests/test_macros.h" 1 8737: # 29 "/<>/templates/tests/test_macros.h" 8737: # 1 "/<>/templates/tests/qtunorderedmap.h" 1 8737: # 24 "/<>/templates/tests/qtunorderedmap.h" 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QHash" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QHash" 2 3 4 8737: # 25 "/<>/templates/tests/qtunorderedmap.h" 2 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/tr1/unordered_map" 1 3 8737: # 32 "/usr/include/c++/8/tr1/unordered_map" 3 8737: 8737: # 33 "/usr/include/c++/8/tr1/unordered_map" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/tr1/type_traits" 1 3 8737: # 32 "/usr/include/c++/8/tr1/type_traits" 3 8737: 8737: # 33 "/usr/include/c++/8/tr1/type_traits" 3 8737: 8737: 8737: 8737: 8737: # 36 "/usr/include/c++/8/tr1/type_traits" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: 8737: 8737: 8737: 8737: 8737: struct __sfinae_types 8737: { 8737: typedef char __one; 8737: typedef struct { char __arr[2]; } __two; 8737: }; 8737: # 70 "/usr/include/c++/8/tr1/type_traits" 3 8737: template 8737: struct integral_constant 8737: { 8737: static const _Tp value = __v; 8737: typedef _Tp value_type; 8737: typedef integral_constant<_Tp, __v> type; 8737: }; 8737: 8737: 8737: typedef integral_constant true_type; 8737: 8737: 8737: typedef integral_constant false_type; 8737: 8737: template 8737: const _Tp integral_constant<_Tp, __v>::value; 8737: 8737: 8737: template 8737: struct remove_cv; 8737: 8737: template 8737: struct __is_void_helper 8737: : public false_type { }; 8737: template<> struct __is_void_helper : public integral_constant { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct is_void 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: template 8737: struct __is_integral_helper 8737: : public false_type { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: template<> struct __is_integral_helper : public integral_constant { }; 8737: 8737: 8737: template 8737: struct is_integral 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: template 8737: struct __is_floating_point_helper 8737: : public false_type { }; 8737: template<> struct __is_floating_point_helper : public integral_constant { }; 8737: template<> struct __is_floating_point_helper : public integral_constant { }; 8737: template<> struct __is_floating_point_helper : public integral_constant { }; 8737: 8737: 8737: template 8737: struct is_floating_point 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_array 8737: : public false_type { }; 8737: 8737: template 8737: struct is_array<_Tp[_Size]> 8737: : public true_type { }; 8737: 8737: template 8737: struct is_array<_Tp[]> 8737: : public true_type { }; 8737: 8737: template 8737: struct __is_pointer_helper 8737: : public false_type { }; 8737: template struct __is_pointer_helper<_Tp*> : public integral_constant { }; 8737: 8737: 8737: template 8737: struct is_pointer 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_reference; 8737: 8737: 8737: template 8737: struct is_function; 8737: 8737: template 8737: struct __is_member_object_pointer_helper 8737: : public false_type { }; 8737: template struct __is_member_object_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8737: 8737: 8737: 8737: template 8737: struct is_member_object_pointer 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: template 8737: struct __is_member_function_pointer_helper 8737: : public false_type { }; 8737: template struct __is_member_function_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8737: 8737: 8737: 8737: template 8737: struct is_member_function_pointer 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_enum 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_union 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_class 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_function 8737: : public false_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes...)> 8737: : public trtance> 8768: _InputIterator 8768: __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) 8768: { 8768: for (; __len; --__len, (void) ++__first) 8768: if (!__pred(__first)) 8768: break; 8768: return __first; 8768: } 8768: # 202 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _ForwardIterator1 8768: __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8768: _BinaryPredicate __predicate) 8768: { 8768: 8768: if (__first1 == __last1 || __first2 == __last2) 8768: return __first1; 8768: 8768: 8768: _ForwardIterator2 __p1(__first2); 8768: if (++__p1 == __last2) 8768: return std::__find_if(__first1, __last1, 8768: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8768: 8768: 8768: _ForwardIterator2 __p; 8768: _ForwardIterator1 __current = __first1; 8768: 8768: for (;;) 8768: { 8768: __first1 = 8768: std::__find_if(__first1, __last1, 8768: __gnu_cxx::__ops::__iter_comp_iter(__predicate, __first2)); 8768: 8768: if (__first1 == __last1) 8768: return __last1; 8768: 8768: __p = __p1; 8768: __current = __first1; 8768: if (++__current == __last1) 8768: return __last1; 8768: 8768: while (__predicate(__current, __p)) 8768: { 8768: if (++__p == __last2) 8768: return __first1; 8768: if (++__current == __last1) 8768: return __last1; 8768: } 8768: ++__first1; 8768: } 8768: return __first1; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __search_n_aux(_ForwardIterator __first, _ForwardIterator __last, 8768: _Integer __count, _UnaryPredicate __unary_pred, 8768: std::forward_iterator_tag) 8768: { 8768: __first = std::__find_if(__first, __last, __unary_pred); 8768: while (__first != __last) 8768: { 8768: typename iterator_traits<_ForwardIterator>::difference_type 8768: __n = __count; 8768: _ForwardIterator __i = __first; 8768: ++__i; 8768: while (__i != __last && __n != 1 && __unary_pred(__i)) 8768: { 8768: ++__i; 8768: --__n; 8768: } 8768: if (__n == 1) 8768: return __first; 8768: if (__i == __last) 8768: return __last; 8768: __first = std::__find_if(++__i, __last, __unary_pred); 8768: } 8768: return __last; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _RandomAccessIter 8768: __search_n_aux(_RandomAccessIter __first, _RandomAccessIter __last, 8768: _Integer __count, _UnaryPredicate __unary_pred, 8768: std::random_access_iterator_tag) 8768: { 8768: typedef typename std::iterator_traits<_RandomAccessIter>::difference_type 8768: _DistanceType; 8768: 8768: _DistanceType __tailSize = __last - __first; 8768: _DistanceType __remainder = __count; 8768: 8768: while (__remainder <= __tailSize) 8768: { 8768: __first += __remainder; 8768: __tailSize -= __remainder; 8768: 8768: 8768: _RandomAccessIter __backTrack = __first; 8768: while (__unary_pred(--__backTrack)) 8768: { 8768: if (--__remainder == 0) 8768: return (__first - __count); 8768: } 8768: __remainder = __count + 1 - (__first - __backTrack); 8768: } 8768: return __last; 8768: } 8768: 8768: template 8768: _ForwardIterator 8768: __search_n(_ForwardIterator __first, _ForwardIterator __last, 8768: _Integer __count, 8768: _UnaryPredicate __unary_pred) 8768: { 8768: if (__count <= 0) 8768: return __first; 8768: 8768: if (__count == 1) 8768: return std::__find_if(__first, __last, __unary_pred); 8768: 8768: return std::__search_n_aux(__first, __last, __count, __unary_pred, 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: 8768: template 8768: _ForwardIterator1 8768: __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8768: forward_iterator_tag, forward_iterator_tag, 8768: _BinaryPredicate __comp) 8768: { 8768: if (__first2 == __last2) 8768: return __last1; 8768: 8768: _ForwardIterator1 __result = __last1; 8768: while (1) 8768: { 8768: _ForwardIterator1 __new_result 8768: = std::__search(__first1, __last1, __first2, __last2, __comp); 8768: if (__new_result == __last1) 8768: return __result; 8768: else 8768: { 8768: __result = __new_result; 8768: __first1 = __new_result; 8768: ++__first1; 8768: } 8768: } 8768: } 8768: 8768: 8768: template 8768: _BidirectionalIterator1 8768: __find_end(_BidirectionalIterator1 __first1, 8768: _BidirectionalIterator1 __last1, 8768: _BidirectionalIterator2 __first2, 8768: _BidirectionalIterator2 __last2, 8768: bidirectional_iterator_tag, bidirectional_iterator_tag, 8768: _BinaryPredicate __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; 8768: typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; 8768: 8768: _RevIterator1 __rlast1(__first1); 8768: _RevIterator2 __rlast2(__first2); 8768: _RevIterator1 __rresult = std::__search(_RevIterator1(__last1), __rlast1, 8768: _RevIterator2(__last2), __rlast2, 8768: __comp); 8768: 8768: if (__rresult == __rlast1) 8768: return __last1; 8768: else 8768: { 8768: _BidirectionalIterator1 __result = __rresult.base(); 8768: std::advance(__result, -std::distance(__first2, __last2)); 8768: return __result; 8768: } 8768: } 8768: # 423 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator1 8768: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__find_end(__first1, __last1, __first2, __last2, 8768: std::__iterator_category(__first1), 8768: std::__iterator_category(__first2), 8768: __gnu_cxx::__ops::__iter_equal_to_iter()); 8768: } 8768: # 471 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator1 8768: find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8768: _BinaryPredicate __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__find_end(__first1, __last1, __first2, __last2, 8768: std::__iterator_category(__first1), 8768: std::__iterator_category(__first2), 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: # 506 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8768: { return __last == std::find_if_not(__first, __last, __pred); } 8768: # 523 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline booue_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes......)> 8737: : public true_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes...) const> 8737: : public true_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes......) const> 8737: : public true_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes...) volatile> 8737: : public true_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes......) volatile> 8737: : public true_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes...) const volatile> 8737: : public true_type { }; 8737: template 8737: struct is_function<_Res(_ArgTypes......) const volatile> 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct is_arithmetic 8737: : public integral_constant::value 8737: || is_floating_point<_Tp>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_fundamental 8737: : public integral_constant::value 8737: || is_void<_Tp>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_object 8737: : public integral_constant::value 8737: || is_reference<_Tp>::value 8737: || is_void<_Tp>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_member_pointer; 8737: 8737: 8737: template 8737: struct is_scalar 8737: : public integral_constant::value 8737: || is_enum<_Tp>::value 8737: || is_pointer<_Tp>::value 8737: || is_member_pointer<_Tp>::value)> 8737: { }; 8737: 8737: 8737: template 8737: struct is_compound 8737: : public integral_constant::value> { }; 8737: 8737: 8737: template 8737: struct __is_member_pointer_helper 8737: : public false_type { }; 8737: template struct __is_member_pointer_helper<_Tp _Cp::*> : public integral_constant { }; 8737: 8737: template 8737: struct is_member_pointer 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: 8737: 8737: template 8737: struct is_const 8737: : public false_type { }; 8737: 8737: template 8737: struct is_const<_Tp const> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_volatile 8737: : public false_type { }; 8737: 8737: template 8737: struct is_volatile<_Tp volatile> 8737: : public true_type { }; 8737: 8737: 8737: template 8737: struct is_empty 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_polymorphic 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct is_abstract 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct has_virtual_destructor 8737: : public integral_constant 8737: { }; 8737: 8737: 8737: template 8737: struct alignment_of 8737: : public integral_constant { }; 8737: 8737: 8737: template 8737: struct rank 8737: : public integral_constant { }; 8737: 8737: template 8737: struct rank<_Tp[_Size]> 8737: : public integral_constant::value> { }; 8737: 8737: template 8737: struct rank<_Tp[]> 8737: : public integral_constant::value> { }; 8737: 8737: 8737: template 8737: struct extent 8737: : public integral_constant { }; 8737: 8737: template 8737: struct extent<_Tp[_Size], _Uint> 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct extent<_Tp[], _Uint> 8737: : public integral_constant::value> 8737: { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct is_same 8737: : public false_type { }; 8737: 8737: template 8737: struct is_same<_Tp, _Tp> 8737: : public true_type { }; 8737: 8737: 8737: 8737: 8737: template 8737: struct remove_const 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_const<_Tp const> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template 8737: struct remove_volatile 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_volatile<_Tp volatile> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template 8737: struct remove_cv 8737: { 8737: typedef typename 8737: remove_const::type>::type type; 8737: }; 8737: 8737: 8737: template 8737: struct add_const 8737: { typedef _Tp const type; }; 8737: 8737: 8737: template 8737: struct add_volatile 8737: { typedef _Tp volatile type; }; 8737: 8737: 8737: template 8737: struct add_cv 8737: { 8737: typedef typename 8737: add_const::type>::type type; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct remove_extent 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_extent<_Tp[_Size]> 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_extent<_Tp[]> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template 8737: struct remove_all_extents 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_all_extents<_Tp[_Size]> 8737: { typedef typename remove_all_extents<_Tp>::type type; }; 8737: 8737: template 8737: struct remove_all_extents<_Tp[]> 8737: { typedef typename remove_all_extents<_Tp>::type type; }; 8737: 8737: 8737: 8737: template 8737: struct __remove_pointer_helper 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct __remove_pointer_helper<_Tp, _Up*> 8737: { typedef _Up type; }; 8737: 8737: 8737: template 8737: struct remove_pointer 8737: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8737: { }; 8737: 8737: template 8737: struct remove_reference; 8737: 8737: 8737: template 8737: struct add_pointer 8737: { typedef typename remove_reference<_Tp>::type* type; }; 8737: 8737: template 8737: struct is_reference 8737: : public false_type { }; 8737: 8737: template 8737: struct is_reference<_Tp&> 8737: : public true_type { }; 8737: 8737: template 8737: struct is_pod 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: l 8768: none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8768: { return __last == std::find_if(__first, __last, __pred); } 8768: # 541 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8768: { return !std::none_of(__first, __last, __pred); } 8768: # 556 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _InputIterator 8768: find_if_not(_InputIterator __first, _InputIterator __last, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: return std::__find_if_not(__first, __last, 8768: __gnu_cxx::__ops::__pred_iter(__pred)); 8768: } 8768: # 580 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: is_partitioned(_InputIterator __first, _InputIterator __last, 8768: _Predicate __pred) 8768: { 8768: __first = std::find_if_not(__first, __last, __pred); 8768: if (__first == __last) 8768: return true; 8768: ++__first; 8768: return std::none_of(__first, __last, __pred); 8768: } 8768: # 601 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _ForwardIterator 8768: partition_point(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: typedef typename iterator_traits<_ForwardIterator>::difference_type 8768: _DistanceType; 8768: 8768: _DistanceType __len = std::distance(__first, __last); 8768: _DistanceType __half; 8768: _ForwardIterator __middle; 8768: 8768: while (__len > 0) 8768: { 8768: __half = __len >> 1; 8768: __middle = __first; 8768: std::advance(__middle, __half); 8768: if (__pred(*__middle)) 8768: { 8768: __first = __middle; 8768: ++__first; 8768: __len = __len - __half - 1; 8768: } 8768: else 8768: __len = __half; 8768: } 8768: return __first; 8768: } 8768: 8768: 8768: template 8768: _OutputIterator 8768: __remove_copy_if(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _Predicate __pred) 8768: { 8768: for (; __first != __last; ++__first) 8768: if (!__pred(__first)) 8768: { 8768: *__result = *__first; 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: # 668 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: remove_copy(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, const _Tp& __value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__remove_copy_if(__first, __last, __result, 8768: __gnu_cxx::__ops::__iter_equals_val(__value)); 8768: } 8768: # 700 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: remove_copy_if(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__remove_copy_if(__first, __last, __result, 8768: __gnu_cxx::__ops::__pred_iter(__pred)); 8768: } 8768: # 734 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _OutputIterator 8768: copy_if(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: if (__pred(*__first)) 8768: { 8768: *__result = *__first; 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: 8768: template 8768: _OutputIterator 8768: __copy_n(_InputIterator __first, _Size __n, 8768: _OutputIterator __result, input_iterator_tag) 8768: { 8768: if (__n > 0) 8768: { 8768: while (true) 8768: { 8768: *__result = *__first; 8768: ++__result; 8768: if (--__n > 0) 8768: ++__first; 8768: else 8768: break; 8768: } 8768: } 8768: return __result; 8768: } 8768: 8768: template 8768: inline _OutputIterator 8768: __copy_n(_RandomAccessIterator __first, _Size __n, 8768: _OutputIterator __result, random_access_iterator_tag) 8768: { return std::copy(__first, __first + __n, __result); } 8768: # 797 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: copy_n(_InputIterator __first, _Size __n, _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: return std::__copy_n(__first, __n, __result, 8768: std::__iterator_category(__first)); 8768: } 8768: # 825 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: pair<_OutputIterator1, _OutputIterator2> 8768: partition_copy(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator1 __out_true, _OutputIterator2 __out_false, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: if (__pred(*__first)) 8768: { 8768: *__out_true = *__first; 8768: ++__out_true; 8768: } 8768: else 8768: { 8768: *__out_false = *__first; 8768: ++__out_false; 8768: } 8768: 8768: return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); 8768: } 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __remove_if(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred) 8768: { 8768: __first = std::__find_if(__first, __last, __pred); 8768: if (__first == __last) 8768: return __first; 8768: _ForwardIterator __result = __first; 8768: ++__first; 8768: for (; __first != __last; ++__first) 8768: if (!__pred(__first)) 8768: { 8768: *__result = std::move(*__first); 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: # 894 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: remove(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__remove_if(__first, __last, 8768: __gnu_cxx::__ops::__iter_equals_val(__value)); 8768: } 8768: # 927 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: remove_if(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__remove_if(__first, __last, 8768: __gnu_cxx::__ops::__pred_iter(__pred)); 8768: } 8768: 8768: template 8768: _ForwardIterator 8768: __adjacent_find(_Forw struct has_trivial_constructor 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct has_trivial_copy 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct has_trivial_assign 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct has_trivial_destructor 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct has_nothrow_constructor 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct has_nothrow_copy 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct has_nothrow_assign 8737: : public integral_constant::value> 8737: { }; 8737: 8737: template 8737: struct __is_signed_helper 8737: : public false_type { }; 8737: template<> struct __is_signed_helper : public integral_constant { }; 8737: template<> struct __is_signed_helper : public integral_constant { }; 8737: template<> struct __is_signed_helper : public integral_constant { }; 8737: template<> struct __is_signed_helper : public integral_constant { }; 8737: template<> struct __is_signed_helper : public integral_constant { }; 8737: 8737: template 8737: struct is_signed 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: template 8737: struct __is_unsigned_helper 8737: : public false_type { }; 8737: template<> struct __is_unsigned_helper : public integral_constant { }; 8737: template<> struct __is_unsigned_helper : public integral_constant { }; 8737: template<> struct __is_unsigned_helper : public integral_constant { }; 8737: template<> struct __is_unsigned_helper : public integral_constant { }; 8737: template<> struct __is_unsigned_helper : public integral_constant { }; 8737: 8737: template 8737: struct is_unsigned 8737: : public integral_constant::type>::value)> 8737: { }; 8737: 8737: template 8737: struct __is_base_of_helper 8737: { 8737: typedef typename remove_cv<_Base>::type _NoCv_Base; 8737: typedef typename remove_cv<_Derived>::type _NoCv_Derived; 8737: static const bool __value = (is_same<_Base, _Derived>::value 8737: || (__is_base_of(_Base, _Derived) 8737: && !is_same<_NoCv_Base, 8737: _NoCv_Derived>::value)); 8737: }; 8737: 8737: template 8737: struct is_base_of 8737: : public integral_constant::__value> 8737: { }; 8737: 8737: template 8737: struct __is_convertible_simple 8737: : public __sfinae_types 8737: { 8737: private: 8737: static __one __test(_To); 8737: static __two __test(...); 8737: static _From __makeFrom(); 8737: 8737: public: 8737: static const bool __value = sizeof(__test(__makeFrom())) == 1; 8737: }; 8737: 8737: template 8737: struct add_reference; 8737: 8737: template 8737: struct __is_int_or_cref 8737: { 8737: typedef typename remove_reference<_Tp>::type __rr_Tp; 8737: static const bool __value = (is_integral<_Tp>::value 8737: || (is_integral<__rr_Tp>::value 8737: && is_const<__rr_Tp>::value 8737: && !is_volatile<__rr_Tp>::value)); 8737: }; 8737: 8737: template::value || is_void<_To>::value 8737: || is_function<_To>::value || is_array<_To>::value 8737: 8737: || (is_floating_point::type>::value 8737: && __is_int_or_cref<_To>::__value))> 8737: struct __is_convertible_helper 8737: { 8737: 8737: static const bool __value = (__is_convertible_simple::type, _To>::__value); 8737: }; 8737: 8737: template 8737: struct __is_convertible_helper<_From, _To, true> 8737: { static const bool __value = (is_void<_To>::value 8737: || (__is_int_or_cref<_To>::__value 8737: && !is_void<_From>::value)); }; 8737: 8737: template 8737: struct is_convertible 8737: : public integral_constant::__value> 8737: { }; 8737: 8737: 8737: template 8737: struct remove_reference 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct remove_reference<_Tp&> 8737: { typedef _Tp type; }; 8737: 8737: 8737: template::value 8737: || is_reference<_Tp>::value)> 8737: struct __add_reference_helper 8737: { typedef _Tp& type; }; 8737: 8737: template 8737: struct __add_reference_helper<_Tp, true> 8737: { typedef _Tp type; }; 8737: 8737: template 8737: struct add_reference 8737: : public __add_reference_helper<_Tp> 8737: { }; 8737: 8737: 8737: template 8737: struct aligned_storage 8737: { 8737: union type 8737: { 8737: unsigned char __data[_Len]; 8737: struct __attribute__((__aligned__((_Align)))) { } __align; 8737: }; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: 8737: } 8737: # 40 "/usr/include/c++/8/tr1/unordered_map" 2 3 8737: # 1 "/usr/include/c++/8/tr1/functional_hash.h" 1 3 8737: # 33 "/usr/include/c++/8/tr1/functional_hash.h" 3 8737: 8737: # 34 "/usr/include/c++/8/tr1/functional_hash.h" 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: 8737: 8737: 8737: template 8737: struct hash : public std::unary_function<_Tp, size_t> 8737: { 8737: size_t 8737: operator()(_Tp __val) const; 8737: }; 8737: 8737: 8737: template 8737: struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> 8737: { 8737: size_t 8737: operator()(_Tp* __p) const 8737: { return reinterpret_cast(__p); } 8737: }; 8737: # 67 "/usr/include/c++/8/tr1/functional_hash.h" 3 8737: template<> inline size_t hash::operator()(bool __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(char __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(signed char __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(unsigned char __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(wchar_t __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(short __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(int __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(long __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(long long __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash 8768: _ForwardIterator 8768: __unique(_ForwardIterator __first, _ForwardIterator __last, 8768: _BinaryPredicate __binary_pred) 8768: { 8768: 8768: __first = std::__adjacent_find(__first, __last, __binary_pred); 8768: if (__first == __last) 8768: return __last; 8768: 8768: 8768: _ForwardIterator __dest = __first; 8768: ++__first; 8768: while (++__first != __last) 8768: if (!__binary_pred(__dest, __first)) 8768: *++__dest = std::move(*__first); 8768: return ++__dest; 8768: } 8768: # 993 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: unique(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__unique(__first, __last, 8768: __gnu_cxx::__ops::__iter_equal_to_iter()); 8768: } 8768: # 1023 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: unique(_ForwardIterator __first, _ForwardIterator __last, 8768: _BinaryPredicate __binary_pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__unique(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _OutputIterator 8768: __unique_copy(_ForwardIterator __first, _ForwardIterator __last, 8768: _OutputIterator __result, _BinaryPredicate __binary_pred, 8768: forward_iterator_tag, output_iterator_tag) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: _ForwardIterator __next = __first; 8768: *__result = *__first; 8768: while (++__next != __last) 8768: if (!__binary_pred(__first, __next)) 8768: { 8768: __first = __next; 8768: *++__result = *__first; 8768: } 8768: return ++__result; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _OutputIterator 8768: __unique_copy(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _BinaryPredicate __binary_pred, 8768: input_iterator_tag, output_iterator_tag) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: typename iterator_traits<_InputIterator>::value_type __value = *__first; 8768: __decltype(__gnu_cxx::__ops::__iter_comp_val(__binary_pred)) 8768: __rebound_pred 8768: = __gnu_cxx::__ops::__iter_comp_val(__binary_pred); 8768: *__result = __value; 8768: while (++__first != __last) 8768: if (!__rebound_pred(__first, __value)) 8768: { 8768: __value = *__first; 8768: *++__result = __value; 8768: } 8768: return ++__result; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __unique_copy(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result, _BinaryPredicate __binary_pred, 8768: input_iterator_tag, forward_iterator_tag) 8768: { 8768: 8768: 8768: 8768: 8768: *__result = *__first; 8768: while (++__first != __last) 8768: if (!__binary_pred(__result, __first)) 8768: *++__result = *__first; 8768: return ++__result; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, 8768: bidirectional_iterator_tag) 8768: { 8768: while (true) 8768: if (__first == __last || __first == --__last) 8768: return; 8768: else 8768: { 8768: std::iter_swap(__first, __last); 8768: ++__first; 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: random_access_iterator_tag) 8768: { 8768: if (__first == __last) 8768: return; 8768: --__last; 8768: while (__first < __last) 8768: { 8768: std::iter_swap(__first, __last); 8768: ++__first; 8768: --__last; 8768: } 8768: } 8768: # 1178 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) 8768: { 8768: 8768: 8768: 8768: ; 8768: std::__reverse(__first, __last, std::__iterator_category(__first)); 8768: } 8768: # 1205 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _OutputIterator 8768: reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: while (__first != __last) 8768: { 8768: --__last; 8768: *__result = *__last; 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _EuclideanRingElement 8768: __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) 8768: { 8768: while (__n != 0) 8768: { 8768: _EuclideanRingElement __t = __m % __n; 8768: __m = __n; 8768: __n = __t; 8768: } 8768: return __m; 8768: } 8768: 8768: inline namespace _V2 8768: { 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __rotate(_ForwardIterator __first, 8768: _ForwardIterator __middle, 8768: _ForwardIterator __last, 8768: forward_iterator_tag) 8768: { 8768: if (__first == __middle) 8768: return __last; 8768: else if (__last == __middle) 8768: return __first; 8768: 8768: _ForwardIterator __first2 = __middle; 8768: do 8768: { 8768: std::iter_swap(__first, __first2); 8768: ++__first; 8768: ++__first2; 8768: if (__first == __middle) 8768: __middle = __first2; 8768: } 8768: while (__first2 != __last); 8768: 8768: _ForwardIterator __ret = __first; 8768: 8768: __first2 = __middle; 8768: 8768: while (__first2 != __last) 8768: { 8768: std::iter_swap(__first, __first2); 8768: ++__first; 8768: ++__first2; 8768: if (__first == __middle) 8768: __middle = __first2; 8768: else if (__first2 == __last) 8768: __first2 = __middle; 8768: } 8768: return __ret; 8768: } 8768: 8768: 8768: template 8768: _BidirectionalIterator 8768: __rotate(_BidirectionalIterator __first, 8768: _BidirectionalIterator __middle, 8768: _BidirectionalIterator __last, 8768: bidirectional_iterator_tag) 8768: { 8768: 8768: 8768: 8768: 8768: if (__first == __middle) 8768: return __last; 8768: else if (__last == __middle) 8768: return __first; 8768: 8768: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8768: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8768: 8768: while (__first != __middle && __middle != __last) 8768: { 8768: std::iter_swap(__first, --__last); 8768: ++__first; 8768: } 8768: 8768: if (__firsgned short>::operator()(unsigned short __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(unsigned int __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(unsigned long __val) const { return static_cast(__val); }; 8737: template<> inline size_t hash::operator()(unsigned long long __val) const { return static_cast(__val); }; 8737: # 91 "/usr/include/c++/8/tr1/functional_hash.h" 3 8737: template 8737: struct _Fnv_hash_base 8737: { 8737: template 8737: static size_t 8737: hash(const _Tp* __ptr, size_t __clength) 8737: { 8737: size_t __result = 0; 8737: const char* __cptr = reinterpret_cast(__ptr); 8737: for (; __clength; --__clength) 8737: __result = (__result * 131) + *__cptr++; 8737: return __result; 8737: } 8737: }; 8737: 8737: template<> 8737: struct _Fnv_hash_base<4> 8737: { 8737: template 8737: static size_t 8737: hash(const _Tp* __ptr, size_t __clength) 8737: { 8737: size_t __result = static_cast(2166136261UL); 8737: const char* __cptr = reinterpret_cast(__ptr); 8737: for (; __clength; --__clength) 8737: { 8737: __result ^= static_cast(*__cptr++); 8737: __result *= static_cast(16777619UL); 8737: } 8737: return __result; 8737: } 8737: }; 8737: 8737: template<> 8737: struct _Fnv_hash_base<8> 8737: { 8737: template 8737: static size_t 8737: hash(const _Tp* __ptr, size_t __clength) 8737: { 8737: size_t __result 8737: = static_cast(14695981039346656037ULL); 8737: const char* __cptr = reinterpret_cast(__ptr); 8737: for (; __clength; --__clength) 8737: { 8737: __result ^= static_cast(*__cptr++); 8737: __result *= static_cast(1099511628211ULL); 8737: } 8737: return __result; 8737: } 8737: }; 8737: 8737: struct _Fnv_hash 8737: : public _Fnv_hash_base 8737: { 8737: using _Fnv_hash_base::hash; 8737: 8737: template 8737: static size_t 8737: hash(const _Tp& __val) 8737: { return hash(&__val, sizeof(__val)); } 8737: }; 8737: 8737: 8737: template<> 8737: inline size_t 8737: hash::operator()(float __val) const 8737: { 8737: 8737: return __val != 0.0f ? std::tr1::_Fnv_hash::hash(__val) : 0; 8737: } 8737: 8737: 8737: template<> 8737: inline size_t 8737: hash::operator()(double __val) const 8737: { 8737: 8737: return __val != 0.0 ? std::tr1::_Fnv_hash::hash(__val) : 0; 8737: } 8737: 8737: 8737: template<> 8737: __attribute__ ((__pure__)) size_t 8737: hash::operator()(long double __val) const; 8737: 8737: 8737: template<> 8737: __attribute__ ((__pure__)) size_t 8737: hash::operator()(string) const; 8737: 8737: template<> 8737: __attribute__ ((__pure__)) size_t 8737: hash::operator()(const string&) const; 8737: 8737: 8737: template<> 8737: __attribute__ ((__pure__)) size_t 8737: hash::operator()(wstring) const; 8737: 8737: template<> 8737: __attribute__ ((__pure__)) size_t 8737: hash::operator()(const wstring&) const; 8737: 8737: } 8737: 8737: 8737: } 8737: # 41 "/usr/include/c++/8/tr1/unordered_map" 2 3 8737: # 1 "/usr/include/c++/8/tr1/hashtable.h" 1 3 8737: # 34 "/usr/include/c++/8/tr1/hashtable.h" 3 8737: 8737: # 35 "/usr/include/c++/8/tr1/hashtable.h" 3 8737: 8737: # 1 "/usr/include/c++/8/tr1/hashtable_policy.h" 1 3 8737: # 31 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: namespace __detail 8737: { 8737: 8737: 8737: template 8737: inline typename std::iterator_traits<_Iterator>::difference_type 8737: __distance_fw(_Iterator __first, _Iterator __last, 8737: std::input_iterator_tag) 8737: { return 0; } 8737: 8737: template 8737: inline typename std::iterator_traits<_Iterator>::difference_type 8737: __distance_fw(_Iterator __first, _Iterator __last, 8737: std::forward_iterator_tag) 8737: { return std::distance(__first, __last); } 8737: 8737: template 8737: inline typename std::iterator_traits<_Iterator>::difference_type 8737: __distance_fw(_Iterator __first, _Iterator __last) 8737: { 8737: typedef typename std::iterator_traits<_Iterator>::iterator_category _Tag; 8737: return __distance_fw(__first, __last, _Tag()); 8737: } 8737: # 68 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8737: template 8737: struct _Hash_node; 8737: 8737: template 8737: struct _Hash_node<_Value, true> 8737: { 8737: _Value _M_v; 8737: std::size_t _M_hash_code; 8737: _Hash_node* _M_next; 8737: }; 8737: 8737: template 8737: struct _Hash_node<_Value, false> 8737: { 8737: _Value _M_v; 8737: _Hash_node* _M_next; 8737: }; 8737: 8737: 8737: 8737: template 8737: struct _Node_iterator_base 8737: { 8737: _Node_iterator_base(_Hash_node<_Value, __cache>* __p) 8737: : _M_cur(__p) { } 8737: 8737: void 8737: _M_incr() 8737: { _M_cur = _M_cur->_M_next; } 8737: 8737: _Hash_node<_Value, __cache>* _M_cur; 8737: }; 8737: 8737: template 8737: inline bool 8737: operator==(const _Node_iterator_base<_Value, __cache>& __x, 8737: const _Node_iterator_base<_Value, __cache>& __y) 8737: { return __x._M_cur == __y._M_cur; } 8737: 8737: template 8737: inline bool 8737: operator!=(const _Node_iterator_base<_Value, __cache>& __x, 8737: const _Node_iterator_base<_Value, __cache>& __y) 8737: { return __x._M_cur != __y._M_cur; } 8737: 8737: template 8737: struct _Node_iterator 8737: : public _Node_iterator_base<_Value, __cache> 8737: { 8737: typedef _Value value_type; 8737: typedef typename 8737: __gnu_cxx::__conditional_type<__constant_iterators, 8737: const _Value*, _Value*>::__type 8737: pointer; 8737: typedef typename 8737: __gnu_cxx::__conditional_type<__constant_iterators, 8737: const _Value&, _Value&>::__type 8737: reference; 8737: typedef std::ptrdiff_t difference_type; 8737: typedef std::forward_iterator_tag iterator_category; 8737: 8737: _Node_iterator() 8737: : _Node_iterator_base<_Value, __cache>(0) { } 8737: 8737: explicit 8737: _Node_iterator(_Hash_node<_Value, __cache>* __p) 8737: : _Node_iterator_base<_Value, __cache>(__p) { } 8737: 8737: reference 8737: operator*() const 8737: { return this->_M_cur->_M_v; } 8737: 8737: pointer 8737: operator->() const 8737: { return std::__addressof(this->_M_cur->_M_v); } 8737: 8737: _Node_iterator& 8737: operator++() 8737: { 8737: this->_M_incr(); 8737: return *this; 8737: } 8737: 8737: _Node_iterator 8737: operator++(int) 8737: { 8737: _Node_iterator __tmp(*this); 8737: this->_M_incr(); 8737: return __tmp; 8737: } 8737: }; 8737: 8737: template 8737: struct _Node_const_iterator 8737: : public _Node_iterator_base<_Value, __cache> 8737: { 8737: typedef _Value value_type; 8737: typedef const _Value* pointer; 8737: typedef const _Value& referenct == __middle) 8768: { 8768: std::__reverse(__middle, __last, bidirectional_iterator_tag()); 8768: return __last; 8768: } 8768: else 8768: { 8768: std::__reverse(__first, __middle, bidirectional_iterator_tag()); 8768: return __first; 8768: } 8768: } 8768: 8768: 8768: template 8768: _RandomAccessIterator 8768: __rotate(_RandomAccessIterator __first, 8768: _RandomAccessIterator __middle, 8768: _RandomAccessIterator __last, 8768: random_access_iterator_tag) 8768: { 8768: 8768: 8768: 8768: 8768: if (__first == __middle) 8768: return __last; 8768: else if (__last == __middle) 8768: return __first; 8768: 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _Distance; 8768: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8768: _ValueType; 8768: 8768: _Distance __n = __last - __first; 8768: _Distance __k = __middle - __first; 8768: 8768: if (__k == __n - __k) 8768: { 8768: std::swap_ranges(__first, __middle, __middle); 8768: return __middle; 8768: } 8768: 8768: _RandomAccessIterator __p = __first; 8768: _RandomAccessIterator __ret = __first + (__last - __middle); 8768: 8768: for (;;) 8768: { 8768: if (__k < __n - __k) 8768: { 8768: if (__is_pod(_ValueType) && __k == 1) 8768: { 8768: _ValueType __t = std::move(*__p); 8768: std::move(__p + 1, __p + __n, __p); 8768: *(__p + __n - 1) = std::move(__t); 8768: return __ret; 8768: } 8768: _RandomAccessIterator __q = __p + __k; 8768: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8768: { 8768: std::iter_swap(__p, __q); 8768: ++__p; 8768: ++__q; 8768: } 8768: __n %= __k; 8768: if (__n == 0) 8768: return __ret; 8768: std::swap(__n, __k); 8768: __k = __n - __k; 8768: } 8768: else 8768: { 8768: __k = __n - __k; 8768: if (__is_pod(_ValueType) && __k == 1) 8768: { 8768: _ValueType __t = std::move(*(__p + __n - 1)); 8768: std::move_backward(__p, __p + __n - 1, __p + __n); 8768: *__p = std::move(__t); 8768: return __ret; 8768: } 8768: _RandomAccessIterator __q = __p + __n; 8768: __p = __q - __k; 8768: for (_Distance __i = 0; __i < __n - __k; ++ __i) 8768: { 8768: --__p; 8768: --__q; 8768: std::iter_swap(__p, __q); 8768: } 8768: __n %= __k; 8768: if (__n == 0) 8768: return __ret; 8768: std::swap(__n, __k); 8768: } 8768: } 8768: } 8768: # 1432 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: rotate(_ForwardIterator __first, _ForwardIterator __middle, 8768: _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__rotate(__first, __middle, __last, 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: } 8768: # 1469 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, 8768: _ForwardIterator __last, _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::copy(__first, __middle, 8768: std::copy(__middle, __last, __result)); 8768: } 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __partition(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred, forward_iterator_tag) 8768: { 8768: if (__first == __last) 8768: return __first; 8768: 8768: while (__pred(*__first)) 8768: if (++__first == __last) 8768: return __first; 8768: 8768: _ForwardIterator __next = __first; 8768: 8768: while (++__next != __last) 8768: if (__pred(*__next)) 8768: { 8768: std::iter_swap(__first, __next); 8768: ++__first; 8768: } 8768: 8768: return __first; 8768: } 8768: 8768: 8768: template 8768: _BidirectionalIterator 8768: __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, 8768: _Predicate __pred, bidirectional_iterator_tag) 8768: { 8768: while (true) 8768: { 8768: while (true) 8768: if (__first == __last) 8768: return __first; 8768: else if (__pred(*__first)) 8768: ++__first; 8768: else 8768: break; 8768: --__last; 8768: while (true) 8768: if (__first == __last) 8768: return __first; 8768: else if (!bool(__pred(*__last))) 8768: --__last; 8768: else 8768: break; 8768: std::iter_swap(__first, __last); 8768: ++__first; 8768: } 8768: } 8768: # 1546 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _ForwardIterator 8768: __stable_partition_adaptive(_ForwardIterator __first, 8768: _ForwardIterator __last, 8768: _Predicate __pred, _Distance __len, 8768: _Pointer __buffer, 8768: _Distance __buffer_size) 8768: { 8768: if (__len == 1) 8768: return __first; 8768: 8768: if (__len <= __buffer_size) 8768: { 8768: _ForwardIterator __result1 = __first; 8768: _Pointer __result2 = __buffer; 8768: 8768: 8768: 8768: 8768: *__result2 = std::move(*__first); 8768: ++__result2; 8768: ++__first; 8768: for (; __first != __last; ++__first) 8768: if (__pred(__first)) 8768: { 8768: *__result1 = std::move(*__first); 8768: ++__result1; 8768: } 8768: else 8768: { 8768: *__result2 = std::move(*__first); 8768: ++__result2; 8768: } 8768: 8768: std::move(__buffer, __result2, __result1); 8768: return __result1; 8768: } 8768: 8768: _ForwardIterator __middle = __first; 8768: std::advance(__middle, __len / 2); 8768: _ForwardIterator __left_split = 8768: std::__stable_partition_adaptive(__first, __middle, __pred, 8768: __len / 2, __buffer, 8768: __buffer_size); 8768: 8768: 8768: 8768: _Distance __right_len = __len - __len / 2; 8768: _ForwardIterator __right_split = 8768: std::__find_if_not_n(__middle, __right_len, __pred); 8768: 8768: if (__right_len) 8768: __right_split = 8768: std::__stable_partition_adaptive(__right_split, __last, __pred, 8768: __right_len, 8768: __buffer, __buffer_size); 8768: 8768: std::rotate(__left_split, __middle, __right_split); 8768: std::advance(__left_split, std::distance(__middle, __right_split)); 8768: return __left_split; 8768: } 8768: 8768: template 8768: _ForwardIterator 8768: __stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred) 8768: { 8768: __first = std::__find_if_not(__first, __last, __pred); 8768: 8768: if (__first == __last) 8768: return __first; 8768: 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_ForwardIterator>::difference_type 8768: _DistanceType; 8768: 8768: _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last); 8768: return 8768: std::__stable_partition_adaptive(__first, __last, __pred, 8768: _DistanceType(__buf.requested_size()), 8768: __buf.begin(), 8768: _DistanceType(__buf.size())); 8768: } 8768: # 1649 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: stable_partition(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__ste; 8737: typedef std::ptrdiff_t difference_type; 8737: typedef std::forward_iterator_tag iterator_category; 8737: 8737: _Node_const_iterator() 8737: : _Node_iterator_base<_Value, __cache>(0) { } 8737: 8737: explicit 8737: _Node_const_iterator(_Hash_node<_Value, __cache>* __p) 8737: : _Node_iterator_base<_Value, __cache>(__p) { } 8737: 8737: _Node_const_iterator(const _Node_iterator<_Value, __constant_iterators, 8737: __cache>& __x) 8737: : _Node_iterator_base<_Value, __cache>(__x._M_cur) { } 8737: 8737: reference 8737: operator*() const 8737: { return this->_M_cur->_M_v; } 8737: 8737: pointer 8737: operator->() const 8737: { return std::__addressof(this->_M_cur->_M_v); } 8737: 8737: _Node_const_iterator& 8737: operator++() 8737: { 8737: this->_M_incr(); 8737: return *this; 8737: } 8737: 8737: _Node_const_iterator 8737: operator++(int) 8737: { 8737: _Node_const_iterator __tmp(*this); 8737: this->_M_incr(); 8737: return __tmp; 8737: } 8737: }; 8737: 8737: template 8737: struct _Hashtable_iterator_base 8737: { 8737: _Hashtable_iterator_base(_Hash_node<_Value, __cache>* __node, 8737: _Hash_node<_Value, __cache>** __bucket) 8737: : _M_cur_node(__node), _M_cur_bucket(__bucket) { } 8737: 8737: void 8737: _M_incr() 8737: { 8737: _M_cur_node = _M_cur_node->_M_next; 8737: if (!_M_cur_node) 8737: _M_incr_bucket(); 8737: } 8737: 8737: void 8737: _M_incr_bucket(); 8737: 8737: _Hash_node<_Value, __cache>* _M_cur_node; 8737: _Hash_node<_Value, __cache>** _M_cur_bucket; 8737: }; 8737: 8737: 8737: 8737: template 8737: void 8737: _Hashtable_iterator_base<_Value, __cache>:: 8737: _M_incr_bucket() 8737: { 8737: ++_M_cur_bucket; 8737: 8737: 8737: while (!*_M_cur_bucket) 8737: ++_M_cur_bucket; 8737: _M_cur_node = *_M_cur_bucket; 8737: } 8737: 8737: template 8737: inline bool 8737: operator==(const _Hashtable_iterator_base<_Value, __cache>& __x, 8737: const _Hashtable_iterator_base<_Value, __cache>& __y) 8737: { return __x._M_cur_node == __y._M_cur_node; } 8737: 8737: template 8737: inline bool 8737: operator!=(const _Hashtable_iterator_base<_Value, __cache>& __x, 8737: const _Hashtable_iterator_base<_Value, __cache>& __y) 8737: { return __x._M_cur_node != __y._M_cur_node; } 8737: 8737: template 8737: struct _Hashtable_iterator 8737: : public _Hashtable_iterator_base<_Value, __cache> 8737: { 8737: typedef _Value value_type; 8737: typedef typename 8737: __gnu_cxx::__conditional_type<__constant_iterators, 8737: const _Value*, _Value*>::__type 8737: pointer; 8737: typedef typename 8737: __gnu_cxx::__conditional_type<__constant_iterators, 8737: const _Value&, _Value&>::__type 8737: reference; 8737: typedef std::ptrdiff_t difference_type; 8737: typedef std::forward_iterator_tag iterator_category; 8737: 8737: _Hashtable_iterator() 8737: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8737: 8737: _Hashtable_iterator(_Hash_node<_Value, __cache>* __p, 8737: _Hash_node<_Value, __cache>** __b) 8737: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8737: 8737: explicit 8737: _Hashtable_iterator(_Hash_node<_Value, __cache>** __b) 8737: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8737: 8737: reference 8737: operator*() const 8737: { return this->_M_cur_node->_M_v; } 8737: 8737: pointer 8737: operator->() const 8737: { return std::__addressof(this->_M_cur_node->_M_v); } 8737: 8737: _Hashtable_iterator& 8737: operator++() 8737: { 8737: this->_M_incr(); 8737: return *this; 8737: } 8737: 8737: _Hashtable_iterator 8737: operator++(int) 8737: { 8737: _Hashtable_iterator __tmp(*this); 8737: this->_M_incr(); 8737: return __tmp; 8737: } 8737: }; 8737: 8737: template 8737: struct _Hashtable_const_iterator 8737: : public _Hashtable_iterator_base<_Value, __cache> 8737: { 8737: typedef _Value value_type; 8737: typedef const _Value* pointer; 8737: typedef const _Value& reference; 8737: typedef std::ptrdiff_t difference_type; 8737: typedef std::forward_iterator_tag iterator_category; 8737: 8737: _Hashtable_const_iterator() 8737: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8737: 8737: _Hashtable_const_iterator(_Hash_node<_Value, __cache>* __p, 8737: _Hash_node<_Value, __cache>** __b) 8737: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8737: 8737: explicit 8737: _Hashtable_const_iterator(_Hash_node<_Value, __cache>** __b) 8737: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8737: 8737: _Hashtable_const_iterator(const _Hashtable_iterator<_Value, 8737: __constant_iterators, __cache>& __x) 8737: : _Hashtable_iterator_base<_Value, __cache>(__x._M_cur_node, 8737: __x._M_cur_bucket) { } 8737: 8737: reference 8737: operator*() const 8737: { return this->_M_cur_node->_M_v; } 8737: 8737: pointer 8737: operator->() const 8737: { return std::__addressof(this->_M_cur_node->_M_v); } 8737: 8737: _Hashtable_const_iterator& 8737: operator++() 8737: { 8737: this->_M_incr(); 8737: return *this; 8737: } 8737: 8737: _Hashtable_const_iterator 8737: operator++(int) 8737: { 8737: _Hashtable_const_iterator __tmp(*this); 8737: this->_M_incr(); 8737: return __tmp; 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct _Mod_range_hashing 8737: { 8737: typedef std::size_t first_argument_type; 8737: typedef std::size_t second_argument_type; 8737: typedef std::size_t result_type; 8737: 8737: result_type 8737: operator()(first_argument_type __num, second_argument_type __den) const 8737: { return __num % __den; } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct _Default_ranged_hash { }; 8737: 8737: 8737: 8737: struct _Prime_rehash_policy 8737: { 8737: _Prime_rehash_policy(float __z = 1.0) 8737: : _M_max_load_factor(__z), _M_growth_factor(2.f), _M_next_resize(0) { } 8737: 8737: float 8737: max_load_factor() const 8737: { return _M_max_load_factor; } 8737: 8737: 8737: std::size_t 8737: _M_next_bkt(std::size_t __n) const; 8737: 8737: 8737: std::size_t 8737: _M_bkt_for_elements(std::size_t __n) const; 8737: 8737: 8737: 8737: 8737: 8737: std::pair 8737: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8737: std::size_t __n_ins) const; 8737: 8737: enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 }; 8737: 8737: float _M_max_load_factor; 8737: float _M_growth_factor; 8737: mutable std::size_t _M_next_resize; 8737: }; 8737: 8737: extern const unsigned long __prime_list[]; 8737: 8737: 8737: 8737: 8737: 8737: inline std::size_t 8737: _Prime_rehash_policy:: 8737: _M_next_bkt(std::size_t __n) const 8737: { 8737: 8737: 8737: 8737: const unsigned long* __p 8737: = std::lower_bound(__prime_list, __prime_list + _S_n_primes - 1, __n); 8737: _M_next_resize = 8737: static_cast(__builtin_ceil(*__p * _M_max_load_factor)); 8737: return *__p; 8737: } 8737: 8737: 8737: 8737: inline std::size_t 8737: _Prime_rehash_policy:: 8737: _M_bkt_for_elements(std::size_t __n) const 8737: { 8737: const float __min_bktable_partition(__first, __last, 8768: __gnu_cxx::__ops::__pred_iter(__pred)); 8768: } 8768: 8768: 8768: template 8768: void 8768: __heap_select(_RandomAccessIterator __first, 8768: _RandomAccessIterator __middle, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: std::__make_heap(__first, __middle, __comp); 8768: for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) 8768: if (__comp(__i, __first)) 8768: std::__pop_heap(__first, __middle, __i, __comp); 8768: } 8768: 8768: 8768: 8768: template 8768: _RandomAccessIterator 8768: __partial_sort_copy(_InputIterator __first, _InputIterator __last, 8768: _RandomAccessIterator __result_first, 8768: _RandomAccessIterator __result_last, 8768: _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_InputIterator>::value_type 8768: _InputValueType; 8768: typedef iterator_traits<_RandomAccessIterator> _RItTraits; 8768: typedef typename _RItTraits::difference_type _DistanceType; 8768: 8768: if (__result_first == __result_last) 8768: return __result_last; 8768: _RandomAccessIterator __result_real_last = __result_first; 8768: while (__first != __last && __result_real_last != __result_last) 8768: { 8768: *__result_real_last = *__first; 8768: ++__result_real_last; 8768: ++__first; 8768: } 8768: 8768: std::__make_heap(__result_first, __result_real_last, __comp); 8768: while (__first != __last) 8768: { 8768: if (__comp(__first, __result_first)) 8768: std::__adjust_heap(__result_first, _DistanceType(0), 8768: _DistanceType(__result_real_last 8768: - __result_first), 8768: _InputValueType(*__first), __comp); 8768: ++__first; 8768: } 8768: std::__sort_heap(__result_first, __result_real_last, __comp); 8768: return __result_real_last; 8768: } 8768: # 1735 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _RandomAccessIterator 8768: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8768: _RandomAccessIterator __result_first, 8768: _RandomAccessIterator __result_last) 8768: { 8768: # 1749 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__partial_sort_copy(__first, __last, 8768: __result_first, __result_last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 1784 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _RandomAccessIterator 8768: partial_sort_copy(_InputIterator __first, _InputIterator __last, 8768: _RandomAccessIterator __result_first, 8768: _RandomAccessIterator __result_last, 8768: _Compare __comp) 8768: { 8768: # 1800 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__partial_sort_copy(__first, __last, 8768: __result_first, __result_last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: 8768: template 8768: void 8768: __unguarded_linear_insert(_RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: typename iterator_traits<_RandomAccessIterator>::value_type 8768: __val = std::move(*__last); 8768: _RandomAccessIterator __next = __last; 8768: --__next; 8768: while (__comp(__val, __next)) 8768: { 8768: *__last = std::move(*__next); 8768: __last = __next; 8768: --__next; 8768: } 8768: *__last = std::move(__val); 8768: } 8768: 8768: 8768: template 8768: void 8768: __insertion_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: if (__first == __last) return; 8768: 8768: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8768: { 8768: if (__comp(__i, __first)) 8768: { 8768: typename iterator_traits<_RandomAccessIterator>::value_type 8768: __val = std::move(*__i); 8768: std::move_backward(__first, __i, __i + 1); 8768: *__first = std::move(__val); 8768: } 8768: else 8768: std::__unguarded_linear_insert(__i, 8768: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8768: } 8768: } 8768: 8768: 8768: template 8768: inline void 8768: __unguarded_insertion_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: for (_RandomAccessIterator __i = __first; __i != __last; ++__i) 8768: std::__unguarded_linear_insert(__i, 8768: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: enum { _S_threshold = 16 }; 8768: 8768: 8768: template 8768: void 8768: __final_insertion_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: if (__last - __first > int(_S_threshold)) 8768: { 8768: std::__insertion_sort(__first, __first + int(_S_threshold), __comp); 8768: std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, 8768: __comp); 8768: } 8768: else 8768: std::__insertion_sort(__first, __last, __comp); 8768: } 8768: 8768: 8768: template 8768: _RandomAccessIterator 8768: __unguarded_partition(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, 8768: _RandomAccessIterator __pivot, _Compare __comp) 8768: { 8768: while (true) 8768: { 8768: while (__comp(__first, __pivot)) 8768: ++__first; 8768: --__last; 8768: while (__comp(__pivot, __last)) 8768: --__last; 8768: if (!(__first < __last)) 8768: return __first; 8768: std::iter_swap(__first, __last); 8768: ++__first; 8768: } 8768: } 8768: 8768: 8768: template 8768: inline _RandomAccessIterator 8768: __unguarded_partition_pivot(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: _RandomAccessIterator __mid = __first + (__last - __first) / 2; 8768: std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, 8768: __comp); 8768: return std::__unguarded_partition(__first + 1, __last, __first, __comp); 8768: } 8768: 8768: template 8768: inline void 8768: __partial_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __middle, 8768: _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: std::__heap_select(__first, __middle, __last, __comp); 8768: std::__sort_heap(__first, __middle, __comp); 8768: } 8768: 8768: 8768: template 8768: void 8768: __introsort_loop(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, 8768: _Size __depth_limit, _Compare __comp) 8768: { 8768: while (__last - __first > int(_S_threshold)) 8768: { 8768: if (__depth_limit == 0) 8768: { 8768: std::__partial_sort(__first, __last, __last, __comp); 8768: return; 8768: } 8768: --__depth_limit; 8768: _RandomAccessIterator __cut = 8768: std::__unguarded_partition_pivot(__first, __last, __comp); 8768: std::__introsort_loop(__cut, __lasts = __n / _M_max_load_factor; 8737: return _M_next_bkt(__builtin_ceil(__min_bkts)); 8737: } 8737: # 452 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8737: inline std::pair 8737: _Prime_rehash_policy:: 8737: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8737: std::size_t __n_ins) const 8737: { 8737: if (__n_elt + __n_ins > _M_next_resize) 8737: { 8737: float __min_bkts = ((float(__n_ins) + float(__n_elt)) 8737: / _M_max_load_factor); 8737: if (__min_bkts > __n_bkt) 8737: { 8737: __min_bkts = std::max(__min_bkts, _M_growth_factor * __n_bkt); 8737: return std::make_pair(true, 8737: _M_next_bkt(__builtin_ceil(__min_bkts))); 8737: } 8737: else 8737: { 8737: _M_next_resize = static_cast 8737: (__builtin_ceil(__n_bkt * _M_max_load_factor)); 8737: return std::make_pair(false, 0); 8737: } 8737: } 8737: else 8737: return std::make_pair(false, 0); 8737: } 8737: # 492 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8737: template 8737: struct _Map_base { }; 8737: 8737: template 8737: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, false, _Hashtable> 8737: { 8737: typedef typename _Pair::second_type mapped_type; 8737: }; 8737: 8737: template 8737: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable> 8737: { 8737: typedef typename _Pair::second_type mapped_type; 8737: 8737: mapped_type& 8737: operator[](const _Key& __k); 8737: }; 8737: 8737: template 8737: typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, 8737: true, _Hashtable>::mapped_type& 8737: _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: 8737: operator[](const _Key& __k) 8737: { 8737: _Hashtable* __h = static_cast<_Hashtable*>(this); 8737: typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); 8737: std::size_t __n = __h->_M_bucket_index(__k, __code, 8737: __h->_M_bucket_count); 8737: 8737: typename _Hashtable::_Node* __p = 8737: __h->_M_find_node(__h->_M_buckets[__n], __k, __code); 8737: if (!__p) 8737: return __h->_M_insert_bucket(std::make_pair(__k, mapped_type()), 8737: __n, __code)->second; 8737: return (__p->_M_v).second; 8737: } 8737: 8737: 8737: 8737: template 8737: struct _Rehash_base { }; 8737: 8737: template 8737: struct _Rehash_base<_Prime_rehash_policy, _Hashtable> 8737: { 8737: float 8737: max_load_factor() const 8737: { 8737: const _Hashtable* __this = static_cast(this); 8737: return __this->__rehash_policy().max_load_factor(); 8737: } 8737: 8737: void 8737: max_load_factor(float __z) 8737: { 8737: _Hashtable* __this = static_cast<_Hashtable*>(this); 8737: __this->__rehash_policy(_Prime_rehash_policy(__z)); 8737: } 8737: }; 8737: # 565 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8737: template 8737: struct _Hash_code_base; 8737: 8737: 8737: 8737: template 8737: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8737: _Hash, false> 8737: { 8737: protected: 8737: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8737: const _H1&, const _H2&, const _Hash& __h) 8737: : _M_extract(__ex), _M_eq(__eq), _M_ranged_hash(__h) { } 8737: 8737: typedef void* _Hash_code_type; 8737: 8737: _Hash_code_type 8737: _M_hash_code(const _Key& __key) const 8737: { return 0; } 8737: 8737: std::size_t 8737: _M_bucket_index(const _Key& __k, _Hash_code_type, 8737: std::size_t __n) const 8737: { return _M_ranged_hash(__k, __n); } 8737: 8737: std::size_t 8737: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8737: std::size_t __n) const 8737: { return _M_ranged_hash(_M_extract(__p->_M_v), __n); } 8737: 8737: bool 8737: _M_compare(const _Key& __k, _Hash_code_type, 8737: _Hash_node<_Value, false>* __n) const 8737: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8737: 8737: void 8737: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8737: { } 8737: 8737: void 8737: _M_copy_code(_Hash_node<_Value, false>*, 8737: const _Hash_node<_Value, false>*) const 8737: { } 8737: 8737: void 8737: _M_swap(_Hash_code_base& __x) 8737: { 8737: std::swap(_M_extract, __x._M_extract); 8737: std::swap(_M_eq, __x._M_eq); 8737: std::swap(_M_ranged_hash, __x._M_ranged_hash); 8737: } 8737: 8737: protected: 8737: _ExtractKey _M_extract; 8737: _Equal _M_eq; 8737: _Hash _M_ranged_hash; 8737: }; 8737: # 636 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8737: template 8737: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8737: _Hash, true>; 8737: 8737: 8737: 8737: 8737: template 8737: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8737: _Default_ranged_hash, false> 8737: { 8737: typedef _H1 hasher; 8737: 8737: hasher 8737: hash_function() const 8737: { return _M_h1; } 8737: 8737: protected: 8737: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8737: const _H1& __h1, const _H2& __h2, 8737: const _Default_ranged_hash&) 8737: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8737: 8737: typedef std::size_t _Hash_code_type; 8737: 8737: _Hash_code_type 8737: _M_hash_code(const _Key& __k) const 8737: { return _M_h1(__k); } 8737: 8737: std::size_t 8737: _M_bucket_index(const _Key&, _Hash_code_type __c, 8737: std::size_t __n) const 8737: { return _M_h2(__c, __n); } 8737: 8737: std::size_t 8737: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8737: std::size_t __n) const 8737: { return _M_h2(_M_h1(_M_extract(__p->_M_v)), __n); } 8737: 8737: bool 8737: _M_compare(const _Key& __k, _Hash_code_type, 8737: _Hash_node<_Value, false>* __n) const 8737: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8737: 8737: void 8737: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8737: { } 8737: 8737: void 8737: _M_copy_code(_Hash_node<_Value, false>*, 8737: const _Hash_node<_Value, false>*) const 8737: { } 8737: 8737: void 8737: _M_swap(_Hash_code_base& __x) 8737: { 8737: std::swap(_M_extract, __x._M_extract); 8737: std::swap(_M_eq, __x._M_eq); 8737: std::swap(_M_h1, __x._M_h1); 8737: std::swap(_M_h2, __x._M_h2); 8737: } 8737: 8737: protected: 8737: _ExtractKey _M_extract; 8737: _Equal _M_eq; 8737: _H1 _M_h1; 8737: _H2 _M_h2; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8737: _Default_ranged_hash, true> 8737: { 8737: typedef _H1 hasher; 8737: 8737: hasher 8737: hash_fu, __depth_limit, __comp); 8768: __last = __cut; 8768: } 8768: } 8768: 8768: 8768: 8768: template 8768: inline void 8768: __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: if (__first != __last) 8768: { 8768: std::__introsort_loop(__first, __last, 8768: std::__lg(__last - __first) * 2, 8768: __comp); 8768: std::__final_insertion_sort(__first, __last, __comp); 8768: } 8768: } 8768: 8768: template 8768: void 8768: __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8768: _RandomAccessIterator __last, _Size __depth_limit, 8768: _Compare __comp) 8768: { 8768: while (__last - __first > 3) 8768: { 8768: if (__depth_limit == 0) 8768: { 8768: std::__heap_select(__first, __nth + 1, __last, __comp); 8768: 8768: std::iter_swap(__first, __nth); 8768: return; 8768: } 8768: --__depth_limit; 8768: _RandomAccessIterator __cut = 8768: std::__unguarded_partition_pivot(__first, __last, __comp); 8768: if (__cut <= __nth) 8768: __first = __cut; 8768: else 8768: __last = __cut; 8768: } 8768: std::__insertion_sort(__first, __last, __comp); 8768: } 8768: # 2021 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: lower_bound(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__lower_bound(__first, __last, __val, 8768: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8768: } 8768: 8768: template 8768: _ForwardIterator 8768: __upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::difference_type 8768: _DistanceType; 8768: 8768: _DistanceType __len = std::distance(__first, __last); 8768: 8768: while (__len > 0) 8768: { 8768: _DistanceType __half = __len >> 1; 8768: _ForwardIterator __middle = __first; 8768: std::advance(__middle, __half); 8768: if (__comp(__val, __middle)) 8768: __len = __half; 8768: else 8768: { 8768: __first = __middle; 8768: ++__first; 8768: __len = __len - __half - 1; 8768: } 8768: } 8768: return __first; 8768: } 8768: # 2075 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__upper_bound(__first, __last, __val, 8768: __gnu_cxx::__ops::__val_less_iter()); 8768: } 8768: # 2105 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: upper_bound(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__upper_bound(__first, __last, __val, 8768: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: pair<_ForwardIterator, _ForwardIterator> 8768: __equal_range(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, 8768: _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::difference_type 8768: _DistanceType; 8768: 8768: _DistanceType __len = std::distance(__first, __last); 8768: 8768: while (__len > 0) 8768: { 8768: _DistanceType __half = __len >> 1; 8768: _ForwardIterator __middle = __first; 8768: std::advance(__middle, __half); 8768: if (__comp_it_val(__middle, __val)) 8768: { 8768: __first = __middle; 8768: ++__first; 8768: __len = __len - __half - 1; 8768: } 8768: else if (__comp_val_it(__val, __middle)) 8768: __len = __half; 8768: else 8768: { 8768: _ForwardIterator __left 8768: = std::__lower_bound(__first, __middle, __val, __comp_it_val); 8768: std::advance(__first, __len); 8768: _ForwardIterator __right 8768: = std::__upper_bound(++__middle, __first, __val, __comp_val_it); 8768: return pair<_ForwardIterator, _ForwardIterator>(__left, __right); 8768: } 8768: } 8768: return pair<_ForwardIterator, _ForwardIterator>(__first, __first); 8768: } 8768: # 2176 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline pair<_ForwardIterator, _ForwardIterator> 8768: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__equal_range(__first, __last, __val, 8768: __gnu_cxx::__ops::__iter_less_val(), 8768: __gnu_cxx::__ops::__val_less_iter()); 8768: } 8768: # 2212 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline pair<_ForwardIterator, _ForwardIterator> 8768: equal_range(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: ; 8768: 8768: return std::__equal_range(__first, __last, __val, 8768: __gnu_cxx::__ops::__iter_comp_val(__comp), 8768: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8768: } 8768: # 2245 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: bool 8768: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: _ForwardIterator __i 8768: = std::__lower_bound(__first, __last, __val, 8768: __gnu_cxx::__ops::__iter_less_val()); 8768: return __i != __last && !(__val < *__i); 8768: } 8768: # 2278 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: bool 8768: binary_search(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __val, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: ; 8768: 8768: _ForwardIterator __i 8768: = std::__lower_bound(__first, __last, __val, 8768: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8768: return __i != __last && !bool(__comp(__val, *__i)); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: { 8768: if (__comp(__first2, __first1)) 8768: { 8768: *__result = std::move(*__first2); 8768: ++__first2; 8768: } 8768: else 8768: { 8768: *__result = std::move(*__first1); 8768: ++__first1; 8768: } 8768: ++__result; 8768: } 8768: if (__first1 != __nction() const 8737: { return _M_h1; } 8737: 8737: protected: 8737: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8737: const _H1& __h1, const _H2& __h2, 8737: const _Default_ranged_hash&) 8737: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8737: 8737: typedef std::size_t _Hash_code_type; 8737: 8737: _Hash_code_type 8737: _M_hash_code(const _Key& __k) const 8737: { return _M_h1(__k); } 8737: 8737: std::size_t 8737: _M_bucket_index(const _Key&, _Hash_code_type __c, 8737: std::size_t __n) const 8737: { return _M_h2(__c, __n); } 8737: 8737: std::size_t 8737: _M_bucket_index(const _Hash_node<_Value, true>* __p, 8737: std::size_t __n) const 8737: { return _M_h2(__p->_M_hash_code, __n); } 8737: 8737: bool 8737: _M_compare(const _Key& __k, _Hash_code_type __c, 8737: _Hash_node<_Value, true>* __n) const 8737: { return __c == __n->_M_hash_code && _M_eq(__k, _M_extract(__n->_M_v)); } 8737: 8737: void 8737: _M_store_code(_Hash_node<_Value, true>* __n, _Hash_code_type __c) const 8737: { __n->_M_hash_code = __c; } 8737: 8737: void 8737: _M_copy_code(_Hash_node<_Value, true>* __to, 8737: const _Hash_node<_Value, true>* __from) const 8737: { __to->_M_hash_code = __from->_M_hash_code; } 8737: 8737: void 8737: _M_swap(_Hash_code_base& __x) 8737: { 8737: std::swap(_M_extract, __x._M_extract); 8737: std::swap(_M_eq, __x._M_eq); 8737: std::swap(_M_h1, __x._M_h1); 8737: std::swap(_M_h2, __x._M_h2); 8737: } 8737: 8737: protected: 8737: _ExtractKey _M_extract; 8737: _Equal _M_eq; 8737: _H1 _M_h1; 8737: _H2 _M_h2; 8737: }; 8737: } 8737: } 8737: 8737: 8737: } 8737: # 37 "/usr/include/c++/8/tr1/hashtable.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: # 101 "/usr/include/c++/8/tr1/hashtable.h" 3 8737: template 8737: class _Hashtable 8737: : public __detail::_Rehash_base<_RehashPolicy, 8737: _Hashtable<_Key, _Value, _Allocator, 8737: _ExtractKey, 8737: _Equal, _H1, _H2, _Hash, 8737: _RehashPolicy, 8737: __cache_hash_code, 8737: __constant_iterators, 8737: __unique_keys> >, 8737: public __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, __cache_hash_code>, 8737: public __detail::_Map_base<_Key, _Value, _ExtractKey, __unique_keys, 8737: _Hashtable<_Key, _Value, _Allocator, 8737: _ExtractKey, 8737: _Equal, _H1, _H2, _Hash, 8737: _RehashPolicy, 8737: __cache_hash_code, 8737: __constant_iterators, 8737: __unique_keys> > 8737: { 8737: public: 8737: typedef _Allocator allocator_type; 8737: typedef _Value value_type; 8737: typedef _Key key_type; 8737: typedef _Equal key_equal; 8737: 8737: 8737: typedef typename _Allocator::difference_type difference_type; 8737: typedef typename _Allocator::size_type size_type; 8737: typedef typename _Allocator::pointer pointer; 8737: typedef typename _Allocator::const_pointer const_pointer; 8737: typedef typename _Allocator::reference reference; 8737: typedef typename _Allocator::const_reference const_reference; 8737: 8737: typedef __detail::_Node_iterator 8737: local_iterator; 8737: typedef __detail::_Node_const_iterator 8737: const_local_iterator; 8737: 8737: typedef __detail::_Hashtable_iterator 8737: iterator; 8737: typedef __detail::_Hashtable_const_iterator 8737: const_iterator; 8737: 8737: template 8737: friend struct __detail::_Map_base; 8737: 8737: private: 8737: typedef __detail::_Hash_node<_Value, __cache_hash_code> _Node; 8737: typedef typename _Allocator::template rebind<_Node>::other 8737: _Node_allocator_type; 8737: typedef typename _Allocator::template rebind<_Node*>::other 8737: _Bucket_allocator_type; 8737: 8737: typedef typename _Allocator::template rebind<_Value>::other 8737: _Value_allocator_type; 8737: 8737: _Node_allocator_type _M_node_allocator; 8737: _Node** _M_buckets; 8737: size_type _M_bucket_count; 8737: size_type _M_element_count; 8737: _RehashPolicy _M_rehash_policy; 8737: 8737: _Node* 8737: _M_allocate_node(const value_type& __v); 8737: 8737: void 8737: _M_deallocate_node(_Node* __n); 8737: 8737: void 8737: _M_deallocate_nodes(_Node**, size_type); 8737: 8737: _Node** 8737: _M_allocate_buckets(size_type __n); 8737: 8737: void 8737: _M_deallocate_buckets(_Node**, size_type __n); 8737: 8737: public: 8737: 8737: _Hashtable(size_type __bucket_hint, 8737: const _H1&, const _H2&, const _Hash&, 8737: const _Equal&, const _ExtractKey&, 8737: const allocator_type&); 8737: 8737: template 8737: _Hashtable(_InputIterator __first, _InputIterator __last, 8737: size_type __bucket_hint, 8737: const _H1&, const _H2&, const _Hash&, 8737: const _Equal&, const _ExtractKey&, 8737: const allocator_type&); 8737: 8737: _Hashtable(const _Hashtable&); 8737: 8737: _Hashtable& 8737: operator=(const _Hashtable&); 8737: 8737: ~_Hashtable(); 8737: 8737: void swap(_Hashtable&); 8737: 8737: 8737: iterator 8737: begin() 8737: { 8737: iterator __i(_M_buckets); 8737: if (!__i._M_cur_node) 8737: __i._M_incr_bucket(); 8737: return __i; 8737: } 8737: 8737: const_iterator 8737: begin() const 8737: { 8737: const_iterator __i(_M_buckets); 8737: if (!__i._M_cur_node) 8737: __i._M_incr_bucket(); 8737: return __i; 8737: } 8737: 8737: iterator 8737: end() 8737: { return iterator(_M_buckets + _M_bucket_count); } 8737: 8737: const_iterator 8737: end() const 8737: { return const_iterator(_M_buckets + _M_bucket_count); } 8737: 8737: size_type 8737: size() const 8737: { return _M_element_count; } 8737: 8737: bool 8737: empty() const 8737: { return size() == 0; } 8737: 8737: allocator_type 8737: get_allocator() const 8737: { return allocator_type(_M_node_allocator); } 8737: 8737: _Value_allocator_type 8737: _M_get_Value_allocator() const 8737: { return _Value_allocator_type(_M_node_allocator); } 8737: 8737: size_type 8737: max_size() const 8737: { return _M_node_allocator.max_size(); } 8737: 8737: 8737: key_equal 8737: key_eq() const 8737: { return this->_M_eq; } 8737: 8737: 8737: 8737: 8737: size_type 8737: bucket_count() const 8737: { return _M_bucket_count; } 8737: 8737: size_type 8737: max_bucket_count() const 8737: { return max_size(); } 8737: 8737: size_type 8737: bucket_size(size_type __n) const 8737: { return std::distance(begin(__n), end(__n)); } 8737: 8737: size_type 8737: bucket(const key_type& __k) const 8737: { 8737: return this->_M_bucket_index(__k, this->_M_hash_code(__k), 8737: bucket_count()); 8737: } 8737:last1) 8768: std::move(__first1, __last1, __result); 8768: } 8768: 8768: 8768: template 8768: void 8768: __move_merge_adaptive_backward(_BidirectionalIterator1 __first1, 8768: _BidirectionalIterator1 __last1, 8768: _BidirectionalIterator2 __first2, 8768: _BidirectionalIterator2 __last2, 8768: _BidirectionalIterator3 __result, 8768: _Compare __comp) 8768: { 8768: if (__first1 == __last1) 8768: { 8768: std::move_backward(__first2, __last2, __result); 8768: return; 8768: } 8768: else if (__first2 == __last2) 8768: return; 8768: 8768: --__last1; 8768: --__last2; 8768: while (true) 8768: { 8768: if (__comp(__last2, __last1)) 8768: { 8768: *--__result = std::move(*__last1); 8768: if (__first1 == __last1) 8768: { 8768: std::move_backward(__first2, ++__last2, __result); 8768: return; 8768: } 8768: --__last1; 8768: } 8768: else 8768: { 8768: *--__result = std::move(*__last2); 8768: if (__first2 == __last2) 8768: return; 8768: --__last2; 8768: } 8768: } 8768: } 8768: 8768: 8768: template 8768: _BidirectionalIterator1 8768: __rotate_adaptive(_BidirectionalIterator1 __first, 8768: _BidirectionalIterator1 __middle, 8768: _BidirectionalIterator1 __last, 8768: _Distance __len1, _Distance __len2, 8768: _BidirectionalIterator2 __buffer, 8768: _Distance __buffer_size) 8768: { 8768: _BidirectionalIterator2 __buffer_end; 8768: if (__len1 > __len2 && __len2 <= __buffer_size) 8768: { 8768: if (__len2) 8768: { 8768: __buffer_end = std::move(__middle, __last, __buffer); 8768: std::move_backward(__first, __middle, __last); 8768: return std::move(__buffer, __buffer_end, __first); 8768: } 8768: else 8768: return __first; 8768: } 8768: else if (__len1 <= __buffer_size) 8768: { 8768: if (__len1) 8768: { 8768: __buffer_end = std::move(__first, __middle, __buffer); 8768: std::move(__middle, __last, __first); 8768: return std::move_backward(__buffer, __buffer_end, __last); 8768: } 8768: else 8768: return __last; 8768: } 8768: else 8768: { 8768: std::rotate(__first, __middle, __last); 8768: std::advance(__first, std::distance(__middle, __last)); 8768: return __first; 8768: } 8768: } 8768: 8768: 8768: template 8768: void 8768: __merge_adaptive(_BidirectionalIterator __first, 8768: _BidirectionalIterator __middle, 8768: _BidirectionalIterator __last, 8768: _Distance __len1, _Distance __len2, 8768: _Pointer __buffer, _Distance __buffer_size, 8768: _Compare __comp) 8768: { 8768: if (__len1 <= __len2 && __len1 <= __buffer_size) 8768: { 8768: _Pointer __buffer_end = std::move(__first, __middle, __buffer); 8768: std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last, 8768: __first, __comp); 8768: } 8768: else if (__len2 <= __buffer_size) 8768: { 8768: _Pointer __buffer_end = std::move(__middle, __last, __buffer); 8768: std::__move_merge_adaptive_backward(__first, __middle, __buffer, 8768: __buffer_end, __last, __comp); 8768: } 8768: else 8768: { 8768: _BidirectionalIterator __first_cut = __first; 8768: _BidirectionalIterator __second_cut = __middle; 8768: _Distance __len11 = 0; 8768: _Distance __len22 = 0; 8768: if (__len1 > __len2) 8768: { 8768: __len11 = __len1 / 2; 8768: std::advance(__first_cut, __len11); 8768: __second_cut 8768: = std::__lower_bound(__middle, __last, *__first_cut, 8768: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8768: __len22 = std::distance(__middle, __second_cut); 8768: } 8768: else 8768: { 8768: __len22 = __len2 / 2; 8768: std::advance(__second_cut, __len22); 8768: __first_cut 8768: = std::__upper_bound(__first, __middle, *__second_cut, 8768: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8768: __len11 = std::distance(__first, __first_cut); 8768: } 8768: 8768: _BidirectionalIterator __new_middle 8768: = std::__rotate_adaptive(__first_cut, __middle, __second_cut, 8768: __len1 - __len11, __len22, __buffer, 8768: __buffer_size); 8768: std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, 8768: __len22, __buffer, __buffer_size, __comp); 8768: std::__merge_adaptive(__new_middle, __second_cut, __last, 8768: __len1 - __len11, 8768: __len2 - __len22, __buffer, 8768: __buffer_size, __comp); 8768: } 8768: } 8768: 8768: 8768: template 8768: void 8768: __merge_without_buffer(_BidirectionalIterator __first, 8768: _BidirectionalIterator __middle, 8768: _BidirectionalIterator __last, 8768: _Distance __len1, _Distance __len2, 8768: _Compare __comp) 8768: { 8768: if (__len1 == 0 || __len2 == 0) 8768: return; 8768: 8768: if (__len1 + __len2 == 2) 8768: { 8768: if (__comp(__middle, __first)) 8768: std::iter_swap(__first, __middle); 8768: return; 8768: } 8768: 8768: _BidirectionalIterator __first_cut = __first; 8768: _BidirectionalIterator __second_cut = __middle; 8768: _Distance __len11 = 0; 8768: _Distance __len22 = 0; 8768: if (__len1 > __len2) 8768: { 8768: __len11 = __len1 / 2; 8768: std::advance(__first_cut, __len11); 8768: __second_cut 8768: = std::__lower_bound(__middle, __last, *__first_cut, 8768: __gnu_cxx::__ops::__iter_comp_val(__comp)); 8768: __len22 = std::distance(__middle, __second_cut); 8768: } 8768: else 8768: { 8768: __len22 = __len2 / 2; 8768: std::advance(__second_cut, __len22); 8768: __first_cut 8768: = std::__upper_bound(__first, __middle, *__second_cut, 8768: __gnu_cxx::__ops::__val_comp_iter(__comp)); 8768: __len11 = std::distance(__first, __first_cut); 8768: } 8768: 8768: std::rotate(__first_cut, __middle, __second_cut); 8768: _BidirectionalIterator __new_middle = __first_cut; 8768: std::advance(__new_middle, std::distance(__middle, __second_cut)); 8768: std::__merge_without_buffer(__first, __first_cut, __new_middle, 8768: __len11, __len22, __comp); 8768: std::__merge_without_buffer(__new_middle, __second_cut, __last, 8768: __len1 - __len11, __len2 - __len22, __comp); 8768: } 8768: 8768: template 8768: void 8768: __inplace_merge(_BidirectionalIterator __first, 8768: _BidirectionalIterator __middle, 8768: _BidirectionalIterator __last, 8768: _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_BidirectionalIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_BidirectionalIterator>::difference_type 8768: _DistanceType; 8768: 8768: if (__first == __middle || __middle == __last) 8768: return; 8768: 8768: const _DistanceType __len1 = std::distance(__first, __middle); 8768: const _DistanceType __len2 = std::distance(__middle, __last); 8768: 8768: typedef _Temporary_buffer<_BidirectionalIterator, _ValueType> _TmpBuf; 8768: _TmpBuf __buf(__first, __last); 8768: 8768: if (__buf.begin() == 0) 8768: std::__merge_without_buffer 8768: (__first, __middle, __last, __len1, __len2, __comp); 8768: else 8768: std::__merge_adaptive 8768: (__first, __middle, __last, __len1, __len2, __buf.begin(), 8768: _DistanceType(__buf.size()), __comp); 8768: } 8768: # 2572 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: templ 8737: local_iterator 8737: begin(size_type __n) 8737: { return local_iterator(_M_buckets[__n]); } 8737: 8737: local_iterator 8737: end(size_type) 8737: { return local_iterator(0); } 8737: 8737: const_local_iterator 8737: begin(size_type __n) const 8737: { return const_local_iterator(_M_buckets[__n]); } 8737: 8737: const_local_iterator 8737: end(size_type) const 8737: { return const_local_iterator(0); } 8737: 8737: float 8737: load_factor() const 8737: { 8737: return static_cast(size()) / static_cast(bucket_count()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const _RehashPolicy& 8737: __rehash_policy() const 8737: { return _M_rehash_policy; } 8737: 8737: void 8737: __rehash_policy(const _RehashPolicy&); 8737: 8737: 8737: iterator 8737: find(const key_type& __k); 8737: 8737: const_iterator 8737: find(const key_type& __k) const; 8737: 8737: size_type 8737: count(const key_type& __k) const; 8737: 8737: std::pair 8737: equal_range(const key_type& __k); 8737: 8737: std::pair 8737: equal_range(const key_type& __k) const; 8737: 8737: private: 8737: 8737: 8737: 8737: 8737: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8737: std::pair, iterator>::__type 8737: _Insert_Return_Type; 8737: 8737: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8737: std::_Select1st<_Insert_Return_Type>, 8737: std::_Identity<_Insert_Return_Type> 8737: >::__type 8737: _Insert_Conv_Type; 8737: 8737: _Node* 8737: _M_find_node(_Node*, const key_type&, 8737: typename _Hashtable::_Hash_code_type) const; 8737: 8737: iterator 8737: _M_insert_bucket(const value_type&, size_type, 8737: typename _Hashtable::_Hash_code_type); 8737: 8737: std::pair 8737: _M_insert(const value_type&, std::tr1::true_type); 8737: 8737: iterator 8737: _M_insert(const value_type&, std::tr1::false_type); 8737: 8737: void 8737: _M_erase_node(_Node*, _Node**); 8737: 8737: public: 8737: 8737: _Insert_Return_Type 8737: insert(const value_type& __v) 8737: { return _M_insert(__v, std::tr1::integral_constant()); } 8737: 8737: iterator 8737: insert(iterator, const value_type& __v) 8737: { return iterator(_Insert_Conv_Type()(this->insert(__v))); } 8737: 8737: const_iterator 8737: insert(const_iterator, const value_type& __v) 8737: { return const_iterator(_Insert_Conv_Type()(this->insert(__v))); } 8737: 8737: template 8737: void 8737: insert(_InputIterator __first, _InputIterator __last); 8737: 8737: iterator 8737: erase(iterator); 8737: 8737: const_iterator 8737: erase(const_iterator); 8737: 8737: size_type 8737: erase(const key_type&); 8737: 8737: iterator 8737: erase(iterator, iterator); 8737: 8737: const_iterator 8737: erase(const_iterator, const_iterator); 8737: 8737: void 8737: clear(); 8737: 8737: 8737: void rehash(size_type __n); 8737: 8737: private: 8737: 8737: void _M_rehash(size_type __n); 8737: }; 8737: 8737: 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::_Node* 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_allocate_node(const value_type& __v) 8737: { 8737: _Node* __n = _M_node_allocator.allocate(1); 8737: try 8737: { 8737: _M_get_Value_allocator().construct(&__n->_M_v, __v); 8737: __n->_M_next = 0; 8737: return __n; 8737: } 8737: catch(...) 8737: { 8737: _M_node_allocator.deallocate(__n, 1); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_deallocate_node(_Node* __n) 8737: { 8737: _M_get_Value_allocator().destroy(&__n->_M_v); 8737: _M_node_allocator.deallocate(__n, 1); 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_deallocate_nodes(_Node** __array, size_type __n) 8737: { 8737: for (size_type __i = 0; __i < __n; ++__i) 8737: { 8737: _Node* __p = __array[__i]; 8737: while (__p) 8737: { 8737: _Node* __tmp = __p; 8737: __p = __p->_M_next; 8737: _M_deallocate_node(__tmp); 8737: } 8737: __array[__i] = 0; 8737: } 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::_Node** 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_allocate_buckets(size_type __n) 8737: { 8737: _Bucket_allocator_type __alloc(_M_node_allocator); 8737: 8737: 8737: 8737: _Node** __p = __alloc.allocate(__n + 1); 8737: std::fill(__p, __p + __n, (_Node*) 0); 8737: __p[__n] = reinterpret_cast<_Node*>(0x1000); 8737: return __p; 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_deallocate_buckets(_Node** __p, size_type __n) 8737: { 8737: _Bucket_allocator_type __alloc(_M_node_allocator); 8737: __alloc.deallocate(__p, __n + 1); 8737: } 8737: 8737: template 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _Hashtable(size_type __bucket_hint, 8737: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8737: const _Equal& __eq, const _ExtractKey& __exk, 8737: const allocator_type& __a) 8737: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8737: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, __chc>(__exk, __eq, 8737: __h1, __h2, __h), 8737: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8737: _M_node_allocator(__a), 8737: _M_bucket_couate 8768: inline void 8768: inplace_merge(_BidirectionalIterator __first, 8768: _BidirectionalIterator __middle, 8768: _BidirectionalIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: std::__inplace_merge(__first, __middle, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 2613 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: inplace_merge(_BidirectionalIterator __first, 8768: _BidirectionalIterator __middle, 8768: _BidirectionalIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: std::__inplace_merge(__first, __middle, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: 8768: 8768: template 8768: _OutputIterator 8768: __move_merge(_InputIterator __first1, _InputIterator __last1, 8768: _InputIterator __first2, _InputIterator __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: { 8768: if (__comp(__first2, __first1)) 8768: { 8768: *__result = std::move(*__first2); 8768: ++__first2; 8768: } 8768: else 8768: { 8768: *__result = std::move(*__first1); 8768: ++__first1; 8768: } 8768: ++__result; 8768: } 8768: return std::move(__first2, __last2, std::move(__first1, __last1, __result)) 8768: 8768: ; 8768: } 8768: 8768: template 8768: void 8768: __merge_sort_loop(_RandomAccessIterator1 __first, 8768: _RandomAccessIterator1 __last, 8768: _RandomAccessIterator2 __result, _Distance __step_size, 8768: _Compare __comp) 8768: { 8768: const _Distance __two_step = 2 * __step_size; 8768: 8768: while (__last - __first >= __two_step) 8768: { 8768: __result = std::__move_merge(__first, __first + __step_size, 8768: __first + __step_size, 8768: __first + __two_step, 8768: __result, __comp); 8768: __first += __two_step; 8768: } 8768: __step_size = std::min(_Distance(__last - __first), __step_size); 8768: 8768: std::__move_merge(__first, __first + __step_size, 8768: __first + __step_size, __last, __result, __comp); 8768: } 8768: 8768: template 8768: void 8768: __chunk_insertion_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, 8768: _Distance __chunk_size, _Compare __comp) 8768: { 8768: while (__last - __first >= __chunk_size) 8768: { 8768: std::__insertion_sort(__first, __first + __chunk_size, __comp); 8768: __first += __chunk_size; 8768: } 8768: std::__insertion_sort(__first, __last, __comp); 8768: } 8768: 8768: enum { _S_chunk_size = 7 }; 8768: 8768: template 8768: void 8768: __merge_sort_with_buffer(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, 8768: _Pointer __buffer, _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _Distance; 8768: 8768: const _Distance __len = __last - __first; 8768: const _Pointer __buffer_last = __buffer + __len; 8768: 8768: _Distance __step_size = _S_chunk_size; 8768: std::__chunk_insertion_sort(__first, __last, __step_size, __comp); 8768: 8768: while (__step_size < __len) 8768: { 8768: std::__merge_sort_loop(__first, __last, __buffer, 8768: __step_size, __comp); 8768: __step_size *= 2; 8768: std::__merge_sort_loop(__buffer, __buffer_last, __first, 8768: __step_size, __comp); 8768: __step_size *= 2; 8768: } 8768: } 8768: 8768: template 8768: void 8768: __stable_sort_adaptive(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, 8768: _Pointer __buffer, _Distance __buffer_size, 8768: _Compare __comp) 8768: { 8768: const _Distance __len = (__last - __first + 1) / 2; 8768: const _RandomAccessIterator __middle = __first + __len; 8768: if (__len > __buffer_size) 8768: { 8768: std::__stable_sort_adaptive(__first, __middle, __buffer, 8768: __buffer_size, __comp); 8768: std::__stable_sort_adaptive(__middle, __last, __buffer, 8768: __buffer_size, __comp); 8768: } 8768: else 8768: { 8768: std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); 8768: std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); 8768: } 8768: std::__merge_adaptive(__first, __middle, __last, 8768: _Distance(__middle - __first), 8768: _Distance(__last - __middle), 8768: __buffer, __buffer_size, 8768: __comp); 8768: } 8768: 8768: 8768: template 8768: void 8768: __inplace_stable_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: if (__last - __first < 15) 8768: { 8768: std::__insertion_sort(__first, __last, __comp); 8768: return; 8768: } 8768: _RandomAccessIterator __middle = __first + (__last - __first) / 2; 8768: std::__inplace_stable_sort(__first, __middle, __comp); 8768: std::__inplace_stable_sort(__middle, __last, __comp); 8768: std::__merge_without_buffer(__first, __middle, __last, 8768: __middle - __first, 8768: __last - __middle, 8768: __comp); 8768: } 8768: # 2785 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: bool 8768: __includes(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: if (__comp(__first2, __first1)) 8768: return false; 8768: else if (__comp(__first1, __first2)) 8768: ++__first1; 8768: else 8768: { 8768: ++__first1; 8768: ++__first2; 8768: } 8768: 8768: return __first2 == __last2; 8768: } 8768: # 2824 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__includes(__first1, __last1, __first2, __last2, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 2868 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: includes(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__includes(__first1, __last1, __first2, __last2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: # 2903 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: nt(0), 8737: _M_element_count(0), 8737: _M_rehash_policy() 8737: { 8737: _M_bucket_count = _M_rehash_policy._M_next_bkt(__bucket_hint); 8737: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8737: } 8737: 8737: template 8737: template 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _Hashtable(_InputIterator __f, _InputIterator __l, 8737: size_type __bucket_hint, 8737: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8737: const _Equal& __eq, const _ExtractKey& __exk, 8737: const allocator_type& __a) 8737: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8737: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, __chc>(__exk, __eq, 8737: __h1, __h2, __h), 8737: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8737: _M_node_allocator(__a), 8737: _M_bucket_count(0), 8737: _M_element_count(0), 8737: _M_rehash_policy() 8737: { 8737: _M_bucket_count = std::max(_M_rehash_policy._M_next_bkt(__bucket_hint), 8737: _M_rehash_policy. 8737: _M_bkt_for_elements(__detail:: 8737: __distance_fw(__f, 8737: __l))); 8737: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8737: try 8737: { 8737: for (; __f != __l; ++__f) 8737: this->insert(*__f); 8737: } 8737: catch(...) 8737: { 8737: clear(); 8737: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _Hashtable(const _Hashtable& __ht) 8737: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(__ht), 8737: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, __chc>(__ht), 8737: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(__ht), 8737: _M_node_allocator(__ht._M_node_allocator), 8737: _M_bucket_count(__ht._M_bucket_count), 8737: _M_element_count(__ht._M_element_count), 8737: _M_rehash_policy(__ht._M_rehash_policy) 8737: { 8737: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8737: try 8737: { 8737: for (size_type __i = 0; __i < __ht._M_bucket_count; ++__i) 8737: { 8737: _Node* __n = __ht._M_buckets[__i]; 8737: _Node** __tail = _M_buckets + __i; 8737: while (__n) 8737: { 8737: *__tail = _M_allocate_node(__n->_M_v); 8737: this->_M_copy_code(*__tail, __n); 8737: __tail = &((*__tail)->_M_next); 8737: __n = __n->_M_next; 8737: } 8737: } 8737: } 8737: catch(...) 8737: { 8737: clear(); 8737: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>& 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: operator=(const _Hashtable& __ht) 8737: { 8737: _Hashtable __tmp(__ht); 8737: this->swap(__tmp); 8737: return *this; 8737: } 8737: 8737: template 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: ~_Hashtable() 8737: { 8737: clear(); 8737: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: swap(_Hashtable& __x) 8737: { 8737: 8737: 8737: 8737: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, __chc>::_M_swap(__x); 8737: 8737: 8737: 8737: std::__alloc_swap<_Node_allocator_type>::_S_do_it(_M_node_allocator, 8737: __x._M_node_allocator); 8737: 8737: std::swap(_M_rehash_policy, __x._M_rehash_policy); 8737: std::swap(_M_buckets, __x._M_buckets); 8737: std::swap(_M_bucket_count, __x._M_bucket_count); 8737: std::swap(_M_element_count, __x._M_element_count); 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: __rehash_policy(const _RehashPolicy& __pol) 8737: { 8737: _M_rehash_policy = __pol; 8737: size_type __n_bkt = __pol._M_bkt_for_elements(_M_element_count); 8737: if (__n_bkt > _M_bucket_count) 8737: _M_rehash(__n_bkt); 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: find(const key_type& __k) 8737: { 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8737: return __p ? iterator(__p, _M_buckets + __n) : this->end(); 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::const_iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: find(const key_type& __k) const 8737: { 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8737: return __p ? const_iterator(__p, _M_buckets + __n) : this->end(); 8737: } 8737: 8737: template 8768: inline bool 8768: next_permutation(_BidirectionalIterator __first, 8768: _BidirectionalIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__next_permutation 8768: (__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 2984 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: next_permutation(_BidirectionalIterator __first, 8768: _BidirectionalIterator __last, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__next_permutation 8768: (__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: bool 8768: __prev_permutation(_BidirectionalIterator __first, 8768: _BidirectionalIterator __last, _Compare __comp) 8768: { 8768: if (__first == __last) 8768: return false; 8768: _BidirectionalIterator __i = __first; 8768: ++__i; 8768: if (__i == __last) 8768: return false; 8768: __i = __last; 8768: --__i; 8768: 8768: for(;;) 8768: { 8768: _BidirectionalIterator __ii = __i; 8768: --__i; 8768: if (__comp(__ii, __i)) 8768: { 8768: _BidirectionalIterator __j = __last; 8768: while (!__comp(--__j, __i)) 8768: {} 8768: std::iter_swap(__i, __j); 8768: std::__reverse(__ii, __last, 8768: std::__iterator_category(__first)); 8768: return true; 8768: } 8768: if (__i == __first) 8768: { 8768: std::__reverse(__first, __last, 8768: std::__iterator_category(__first)); 8768: return false; 8768: } 8768: } 8768: } 8768: # 3052 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: prev_permutation(_BidirectionalIterator __first, 8768: _BidirectionalIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__prev_permutation(__first, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 3084 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: prev_permutation(_BidirectionalIterator __first, 8768: _BidirectionalIterator __last, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__prev_permutation(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: _OutputIterator 8768: __replace_copy_if(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, 8768: _Predicate __pred, const _Tp& __new_value) 8768: { 8768: for (; __first != __last; ++__first, (void)++__result) 8768: if (__pred(__first)) 8768: *__result = __new_value; 8768: else 8768: *__result = *__first; 8768: return __result; 8768: } 8768: # 3134 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: replace_copy(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, 8768: const _Tp& __old_value, const _Tp& __new_value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__replace_copy_if(__first, __last, __result, 8768: __gnu_cxx::__ops::__iter_equals_val(__old_value), 8768: __new_value); 8768: } 8768: # 3168 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: replace_copy_if(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, 8768: _Predicate __pred, const _Tp& __new_value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__replace_copy_if(__first, __last, __result, 8768: __gnu_cxx::__ops::__pred_iter(__pred), 8768: __new_value); 8768: } 8768: 8768: template 8768: typename iterator_traits<_InputIterator>::difference_type 8768: __count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8768: { 8768: typename iterator_traits<_InputIterator>::difference_type __n = 0; 8768: for (; __first != __last; ++__first) 8768: if (__pred(__first)) 8768: ++__n; 8768: return __n; 8768: } 8768: # 3207 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: is_sorted(_ForwardIterator __first, _ForwardIterator __last) 8768: { return std::is_sorted_until(__first, __last) == __last; } 8768: # 3221 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: is_sorted(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { return std::is_sorted_until(__first, __last, __comp) == __last; } 8768: 8768: template 8768: _ForwardIterator 8768: __is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: if (__first == __last) 8768: return __last; 8768: 8768: _ForwardIterator __next = __first; 8768: for (++__next; __next != __last; __first = __next, (void)++__next) 8768: if (__comp(__next, __first)) 8768: return __next; 8768: return __next; 8768: } 8768: # 3250 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__is_sorted_until(__first, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 3274 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__is_sorted_until(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: # 3299 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inlinypename _ExtractKey, typename _Equal, 8737: typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, 8737: bool __chc, bool __cit, bool __uk> 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::size_type 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: count(const key_type& __k) const 8737: { 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: std::size_t __result = 0; 8737: for (_Node* __p = _M_buckets[__n]; __p; __p = __p->_M_next) 8737: if (this->_M_compare(__k, __code, __p)) 8737: ++__result; 8737: return __result; 8737: } 8737: 8737: template 8737: std::pair::iterator, 8737: typename _Hashtable<_Key, _Value, _Allocator, 8737: _ExtractKey, _Equal, _H1, 8737: _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::iterator> 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: equal_range(const key_type& __k) 8737: { 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: _Node** __head = _M_buckets + __n; 8737: _Node* __p = _M_find_node(*__head, __k, __code); 8737: 8737: if (__p) 8737: { 8737: _Node* __p1 = __p->_M_next; 8737: for (; __p1; __p1 = __p1->_M_next) 8737: if (!this->_M_compare(__k, __code, __p1)) 8737: break; 8737: 8737: iterator __first(__p, __head); 8737: iterator __last(__p1, __head); 8737: if (!__p1) 8737: __last._M_incr_bucket(); 8737: return std::make_pair(__first, __last); 8737: } 8737: else 8737: return std::make_pair(this->end(), this->end()); 8737: } 8737: 8737: template 8737: std::pair::const_iterator, 8737: typename _Hashtable<_Key, _Value, _Allocator, 8737: _ExtractKey, _Equal, _H1, 8737: _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::const_iterator> 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: equal_range(const key_type& __k) const 8737: { 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: _Node** __head = _M_buckets + __n; 8737: _Node* __p = _M_find_node(*__head, __k, __code); 8737: 8737: if (__p) 8737: { 8737: _Node* __p1 = __p->_M_next; 8737: for (; __p1; __p1 = __p1->_M_next) 8737: if (!this->_M_compare(__k, __code, __p1)) 8737: break; 8737: 8737: const_iterator __first(__p, __head); 8737: const_iterator __last(__p1, __head); 8737: if (!__p1) 8737: __last._M_incr_bucket(); 8737: return std::make_pair(__first, __last); 8737: } 8737: else 8737: return std::make_pair(this->end(), this->end()); 8737: } 8737: 8737: 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, 8737: _Equal, _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::_Node* 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_find_node(_Node* __p, const key_type& __k, 8737: typename _Hashtable::_Hash_code_type __code) const 8737: { 8737: for (; __p; __p = __p->_M_next) 8737: if (this->_M_compare(__k, __code, __p)) 8737: return __p; 8737: return 0; 8737: } 8737: 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_insert_bucket(const value_type& __v, size_type __n, 8737: typename _Hashtable::_Hash_code_type __code) 8737: { 8737: std::pair __do_rehash 8737: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8737: _M_element_count, 1); 8737: 8737: 8737: 8737: _Node* __new_node = _M_allocate_node(__v); 8737: 8737: try 8737: { 8737: if (__do_rehash.first) 8737: { 8737: const key_type& __k = this->_M_extract(__v); 8737: __n = this->_M_bucket_index(__k, __code, __do_rehash.second); 8737: _M_rehash(__do_rehash.second); 8737: } 8737: 8737: __new_node->_M_next = _M_buckets[__n]; 8737: this->_M_store_code(__new_node, __code); 8737: _M_buckets[__n] = __new_node; 8737: ++_M_element_count; 8737: return iterator(__new_node, _M_buckets + __n); 8737: } 8737: catch(...) 8737: { 8737: _M_deallocate_node(__new_node); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: std::pair::iterator, bool> 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_insert(const value_type& __v, std::tr1::true_type) 8737: { 8737: const key_type& __k = this->_M_extract(__v); 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: 8737: if (_Node* __p = _M_find_node(_M_buckets[__n], __k, __code)) 8737: return std::make_pair(iterator(__p, _M_buckets + __n), false); 8737: return std::make_pair(_M_insert_bucket(__v, __n, __code), true); 8737: } 8737: 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_insert(const value_type& __v, std::tr1::false_type) 8737: { 8737: std::pair __do_rehash 8737: = _Me pair 8768: minmax(const _Tp& __a, const _Tp& __b) 8768: { 8768: 8768: 8768: 8768: return __b < __a ? pair(__b, __a) 8768: : pair(__a, __b); 8768: } 8768: # 3320 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inline pair 8768: minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) 8768: { 8768: return __comp(__b, __a) ? pair(__b, __a) 8768: : pair(__a, __b); 8768: } 8768: 8768: template 8768: 8768: pair<_ForwardIterator, _ForwardIterator> 8768: __minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: _ForwardIterator __next = __first; 8768: if (__first == __last 8768: || ++__next == __last) 8768: return std::make_pair(__first, __first); 8768: 8768: _ForwardIterator __min{}, __max{}; 8768: if (__comp(__next, __first)) 8768: { 8768: __min = __next; 8768: __max = __first; 8768: } 8768: else 8768: { 8768: __min = __first; 8768: __max = __next; 8768: } 8768: 8768: __first = __next; 8768: ++__first; 8768: 8768: while (__first != __last) 8768: { 8768: __next = __first; 8768: if (++__next == __last) 8768: { 8768: if (__comp(__first, __min)) 8768: __min = __first; 8768: else if (!__comp(__first, __max)) 8768: __max = __first; 8768: break; 8768: } 8768: 8768: if (__comp(__next, __first)) 8768: { 8768: if (__comp(__next, __min)) 8768: __min = __next; 8768: if (!__comp(__first, __max)) 8768: __max = __first; 8768: } 8768: else 8768: { 8768: if (__comp(__first, __min)) 8768: __min = __first; 8768: if (!__comp(__next, __max)) 8768: __max = __next; 8768: } 8768: 8768: __first = __next; 8768: ++__first; 8768: } 8768: 8768: return std::make_pair(__min, __max); 8768: } 8768: # 3400 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inline pair<_ForwardIterator, _ForwardIterator> 8768: minmax_element(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__minmax_element(__first, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 3428 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inline pair<_ForwardIterator, _ForwardIterator> 8768: minmax_element(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__minmax_element(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: 8768: template 8768: 8768: inline _Tp 8768: min(initializer_list<_Tp> __l) 8768: { return *std::min_element(__l.begin(), __l.end()); } 8768: 8768: template 8768: 8768: inline _Tp 8768: min(initializer_list<_Tp> __l, _Compare __comp) 8768: { return *std::min_element(__l.begin(), __l.end(), __comp); } 8768: 8768: template 8768: 8768: inline _Tp 8768: max(initializer_list<_Tp> __l) 8768: { return *std::max_element(__l.begin(), __l.end()); } 8768: 8768: template 8768: 8768: inline _Tp 8768: max(initializer_list<_Tp> __l, _Compare __comp) 8768: { return *std::max_element(__l.begin(), __l.end(), __comp); } 8768: 8768: template 8768: 8768: inline pair<_Tp, _Tp> 8768: minmax(initializer_list<_Tp> __l) 8768: { 8768: pair __p = 8768: std::minmax_element(__l.begin(), __l.end()); 8768: return std::make_pair(*__p.first, *__p.second); 8768: } 8768: 8768: template 8768: 8768: inline pair<_Tp, _Tp> 8768: minmax(initializer_list<_Tp> __l, _Compare __comp) 8768: { 8768: pair __p = 8768: std::minmax_element(__l.begin(), __l.end(), __comp); 8768: return std::make_pair(*__p.first, *__p.second); 8768: } 8768: 8768: template 8768: bool 8768: __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8768: { 8768: 8768: 8768: for (; __first1 != __last1; ++__first1, (void)++__first2) 8768: if (!__pred(__first1, __first2)) 8768: break; 8768: 8768: if (__first1 == __last1) 8768: return true; 8768: 8768: 8768: 8768: _ForwardIterator2 __last2 = __first2; 8768: std::advance(__last2, std::distance(__first1, __last1)); 8768: for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan) 8768: { 8768: if (__scan != std::__find_if(__first1, __scan, 8768: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan))) 8768: continue; 8768: 8768: auto __matches 8768: = std::__count_if(__first2, __last2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)); 8768: if (0 == __matches || 8768: std::__count_if(__scan, __last1, 8768: __gnu_cxx::__ops::__iter_comp_iter(__pred, __scan)) 8768: != __matches) 8768: return false; 8768: } 8768: return true; 8768: } 8768: # 3540 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__is_permutation(__first1, __last1, __first2, 8768: __gnu_cxx::__ops::__iter_equal_to_iter()); 8768: } 8768: # 3571 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline bool 8768: is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _BinaryPredicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__is_permutation(__first1, __last1, __first2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__pred)); 8768: } 8768: # 3767 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: pair<_IntType, _IntType> 8768: __gen_two_uniform_ints(_IntType __b0, _IntType __b1, 8768: _UniformRandomBitGenerator&& __g) 8768: { 8768: _IntType __x 8768: = uniform_int_distribution<_IntType>{0, (__b0 * __b1) - 1}(__g); 8768: return std::make_pair(__x / __b1, __x % __b1); 8768: } 8768: # 3789 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: void 8768: shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _UniformRandomNumberGenerator&& __g) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return; 8768: 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _DistanceType; 8768: 8768: typedef typename std::make_unsigned<_DistanceType>::type __ud_type; 8768: typedef typename std::uniform_int_distribution<__ud_type> __distr_type; 8768: typedef typename __distr_type::param_type __p_type; 8768: 8768: typedef typename remove_reference<_UniformRandomNumberGenerator>::type 8768: _Gen; 8768: typedef typen_rehash_policy._M_need_rehash(_M_bucket_count, 8737: _M_element_count, 1); 8737: if (__do_rehash.first) 8737: _M_rehash(__do_rehash.second); 8737: 8737: const key_type& __k = this->_M_extract(__v); 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: 8737: 8737: _Node* __prev = _M_find_node(_M_buckets[__n], __k, __code); 8737: _Node* __new_node = _M_allocate_node(__v); 8737: 8737: if (__prev) 8737: { 8737: __new_node->_M_next = __prev->_M_next; 8737: __prev->_M_next = __new_node; 8737: } 8737: else 8737: { 8737: __new_node->_M_next = _M_buckets[__n]; 8737: _M_buckets[__n] = __new_node; 8737: } 8737: this->_M_store_code(__new_node, __code); 8737: 8737: ++_M_element_count; 8737: return iterator(__new_node, _M_buckets + __n); 8737: } 8737: 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_erase_node(_Node* __p, _Node** __b) 8737: { 8737: _Node* __cur = *__b; 8737: if (__cur == __p) 8737: *__b = __cur->_M_next; 8737: else 8737: { 8737: _Node* __next = __cur->_M_next; 8737: while (__next != __p) 8737: { 8737: __cur = __next; 8737: __next = __cur->_M_next; 8737: } 8737: __cur->_M_next = __next->_M_next; 8737: } 8737: 8737: _M_deallocate_node(__p); 8737: --_M_element_count; 8737: } 8737: 8737: template 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: insert(_InputIterator __first, _InputIterator __last) 8737: { 8737: size_type __n_elt = __detail::__distance_fw(__first, __last); 8737: std::pair __do_rehash 8737: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8737: _M_element_count, __n_elt); 8737: if (__do_rehash.first) 8737: _M_rehash(__do_rehash.second); 8737: 8737: for (; __first != __last; ++__first) 8737: this->insert(*__first); 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: erase(iterator __it) 8737: { 8737: iterator __result = __it; 8737: ++__result; 8737: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8737: return __result; 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::const_iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: erase(const_iterator __it) 8737: { 8737: const_iterator __result = __it; 8737: ++__result; 8737: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8737: return __result; 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::size_type 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: erase(const key_type& __k) 8737: { 8737: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8737: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8737: size_type __result = 0; 8737: 8737: _Node** __slot = _M_buckets + __n; 8737: while (*__slot && !this->_M_compare(__k, __code, *__slot)) 8737: __slot = &((*__slot)->_M_next); 8737: 8737: _Node** __saved_slot = 0; 8737: while (*__slot && this->_M_compare(__k, __code, *__slot)) 8737: { 8737: 8737: 8737: 8737: if (&this->_M_extract((*__slot)->_M_v) != &__k) 8737: { 8737: _Node* __p = *__slot; 8737: *__slot = __p->_M_next; 8737: _M_deallocate_node(__p); 8737: --_M_element_count; 8737: ++__result; 8737: } 8737: else 8737: { 8737: __saved_slot = __slot; 8737: __slot = &((*__slot)->_M_next); 8737: } 8737: } 8737: 8737: if (__saved_slot) 8737: { 8737: _Node* __p = *__saved_slot; 8737: *__saved_slot = __p->_M_next; 8737: _M_deallocate_node(__p); 8737: --_M_element_count; 8737: ++__result; 8737: } 8737: 8737: return __result; 8737: } 8737: 8737: 8737: 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: erase(iterator __first, iterator __last) 8737: { 8737: while (__first != __last) 8737: __first = this->erase(__first); 8737: return __last; 8737: } 8737: 8737: template 8737: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, 8737: __chc, __cit, __uk>::const_iterator 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: erase(const_iterator __first, const_iterator __last) 8737: { 8737: while (__first != __last) 8737: __first = this->erase(__first); 8737: return __last; 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: clear() 8737: { 8737: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8737: _M_element_count = 0; 8737: } 8737: 8737: template::type 8768: __uc_type; 8768: 8768: const __uc_type __urngrange = __g.max() - __g.min(); 8768: const __uc_type __urange = __uc_type(__last - __first); 8768: 8768: if (__urngrange / __urange >= __urange) 8768: 8768: { 8768: _RandomAccessIterator __i = __first + 1; 8768: 8768: 8768: 8768: 8768: 8768: if ((__urange % 2) == 0) 8768: { 8768: __distr_type __d{0, 1}; 8768: std::iter_swap(__i++, __first + __d(__g)); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: while (__i != __last) 8768: { 8768: const __uc_type __swap_range = __uc_type(__i - __first) + 1; 8768: 8768: const pair<__uc_type, __uc_type> __pospos = 8768: __gen_two_uniform_ints(__swap_range, __swap_range + 1, __g); 8768: 8768: std::iter_swap(__i++, __first + __pospos.first); 8768: std::iter_swap(__i++, __first + __pospos.second); 8768: } 8768: 8768: return; 8768: } 8768: 8768: __distr_type __d; 8768: 8768: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8768: std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first))); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: # 3874 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _Function 8768: for_each(_InputIterator __first, _InputIterator __last, _Function __f) 8768: { 8768: 8768: 8768: ; 8768: for (; __first != __last; ++__first) 8768: __f(*__first); 8768: return __f; 8768: } 8768: # 3895 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _InputIterator 8768: find(_InputIterator __first, _InputIterator __last, 8768: const _Tp& __val) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: return std::__find_if(__first, __last, 8768: __gnu_cxx::__ops::__iter_equals_val(__val)); 8768: } 8768: # 3919 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _InputIterator 8768: find_if(_InputIterator __first, _InputIterator __last, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__find_if(__first, __last, 8768: __gnu_cxx::__ops::__pred_iter(__pred)); 8768: } 8768: # 3950 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _InputIterator 8768: find_first_of(_InputIterator __first1, _InputIterator __last1, 8768: _ForwardIterator __first2, _ForwardIterator __last2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1) 8768: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8768: if (*__first1 == *__iter) 8768: return __first1; 8768: return __last1; 8768: } 8768: # 3990 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _InputIterator 8768: find_first_of(_InputIterator __first1, _InputIterator __last1, 8768: _ForwardIterator __first2, _ForwardIterator __last2, 8768: _BinaryPredicate __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1) 8768: for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) 8768: if (__comp(*__first1, *__iter)) 8768: return __first1; 8768: return __last1; 8768: } 8768: # 4022 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: adjacent_find(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__adjacent_find(__first, __last, 8768: __gnu_cxx::__ops::__iter_equal_to_iter()); 8768: } 8768: # 4047 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: adjacent_find(_ForwardIterator __first, _ForwardIterator __last, 8768: _BinaryPredicate __binary_pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__adjacent_find(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); 8768: } 8768: # 4072 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline typename iterator_traits<_InputIterator>::difference_type 8768: count(_InputIterator __first, _InputIterator __last, const _Tp& __value) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__count_if(__first, __last, 8768: __gnu_cxx::__ops::__iter_equals_val(__value)); 8768: } 8768: # 4095 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline typename iterator_traits<_InputIterator>::difference_type 8768: count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__count_if(__first, __last, 8768: __gnu_cxx::__ops::__pred_iter(__pred)); 8768: } 8768: # 4135 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator1 8768: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _ForwardIterator2 __last2) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__search(__first1, __last1, __first2, __last2, 8768: __gnu_cxx::__ops::__iter_equal_to_iter()); 8768: } 8768: # 4174 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator1 8768: search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, 8768: _ForwardIterator2 __first2, _ForwardIterator2 __last2, 8768: _BinaryPredicate __predicate) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__search(__first1, __last1, __first2, __last2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__predicate)); 8768: } 8768: # 4209 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: search_n(_ForwardIterator __first, _ForwardIterator __last, 8768: _Integer __count, const _Tp& __val) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__search_n(__first, __last, __count, 8768: __gnu_cxx::__ops::__iter_equals_val(__val)); 8768: } 8768: # 4242 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: search_n(_ForwardIterator __first, _ForwardIterator __last, 8768: _Integer __count, const _Tp& __val, 8768: _BinaryPredicate __binary_pred) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__search_n(__first, __last, __count, 8768: __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); 8768: } 8768: # 4290 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _OutputIterator 8768: transform(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _UnaryOperation __unary_op) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++_name _H2, typename _Hash, typename _RehashPolicy, 8737: bool __chc, bool __cit, bool __uk> 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: rehash(size_type __n) 8737: { 8737: _M_rehash(std::max(_M_rehash_policy._M_next_bkt(__n), 8737: _M_rehash_policy._M_bkt_for_elements(_M_element_count 8737: + 1))); 8737: } 8737: 8737: template 8737: void 8737: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8737: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8737: _M_rehash(size_type __n) 8737: { 8737: _Node** __new_array = _M_allocate_buckets(__n); 8737: try 8737: { 8737: for (size_type __i = 0; __i < _M_bucket_count; ++__i) 8737: while (_Node* __p = _M_buckets[__i]) 8737: { 8737: std::size_t __new_index = this->_M_bucket_index(__p, __n); 8737: _M_buckets[__i] = __p->_M_next; 8737: __p->_M_next = __new_array[__new_index]; 8737: __new_array[__new_index] = __p; 8737: } 8737: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8737: _M_bucket_count = __n; 8737: _M_buckets = __new_array; 8737: } 8737: catch(...) 8737: { 8737: 8737: 8737: 8737: 8737: _M_deallocate_nodes(__new_array, __n); 8737: _M_deallocate_buckets(__new_array, __n); 8737: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8737: _M_element_count = 0; 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: 8737: } 8737: # 42 "/usr/include/c++/8/tr1/unordered_map" 2 3 8737: # 1 "/usr/include/c++/8/tr1/unordered_map.h" 1 3 8737: # 30 "/usr/include/c++/8/tr1/unordered_map.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: 8737: 8737: template, 8737: class _Pred = std::equal_to<_Key>, 8737: class _Alloc = std::allocator >, 8737: bool __cache_hash_code = false> 8737: class __unordered_map 8737: : public _Hashtable<_Key, std::pair, _Alloc, 8737: std::_Select1st >, _Pred, 8737: _Hash, __detail::_Mod_range_hashing, 8737: __detail::_Default_ranged_hash, 8737: __detail::_Prime_rehash_policy, 8737: __cache_hash_code, false, true> 8737: { 8737: typedef _Hashtable<_Key, std::pair, _Alloc, 8737: std::_Select1st >, _Pred, 8737: _Hash, __detail::_Mod_range_hashing, 8737: __detail::_Default_ranged_hash, 8737: __detail::_Prime_rehash_policy, 8737: __cache_hash_code, false, true> 8737: _Base; 8737: 8737: public: 8737: typedef typename _Base::size_type size_type; 8737: typedef typename _Base::hasher hasher; 8737: typedef typename _Base::key_equal key_equal; 8737: typedef typename _Base::allocator_type allocator_type; 8737: 8737: explicit 8737: __unordered_map(size_type __n = 10, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8737: __detail::_Default_ranged_hash(), 8737: __eql, std::_Select1st >(), __a) 8737: { } 8737: 8737: template 8737: __unordered_map(_InputIterator __f, _InputIterator __l, 8737: size_type __n = 10, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8737: __detail::_Default_ranged_hash(), 8737: __eql, std::_Select1st >(), __a) 8737: { } 8737: }; 8737: 8737: template, 8737: class _Pred = std::equal_to<_Key>, 8737: class _Alloc = std::allocator >, 8737: bool __cache_hash_code = false> 8737: class __unordered_multimap 8737: : public _Hashtable<_Key, std::pair, 8737: _Alloc, 8737: std::_Select1st >, _Pred, 8737: _Hash, __detail::_Mod_range_hashing, 8737: __detail::_Default_ranged_hash, 8737: __detail::_Prime_rehash_policy, 8737: __cache_hash_code, false, false> 8737: { 8737: typedef _Hashtable<_Key, std::pair, 8737: _Alloc, 8737: std::_Select1st >, _Pred, 8737: _Hash, __detail::_Mod_range_hashing, 8737: __detail::_Default_ranged_hash, 8737: __detail::_Prime_rehash_policy, 8737: __cache_hash_code, false, false> 8737: _Base; 8737: 8737: public: 8737: typedef typename _Base::size_type size_type; 8737: typedef typename _Base::hasher hasher; 8737: typedef typename _Base::key_equal key_equal; 8737: typedef typename _Base::allocator_type allocator_type; 8737: 8737: explicit 8737: __unordered_multimap(size_type __n = 10, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8737: __detail::_Default_ranged_hash(), 8737: __eql, std::_Select1st >(), __a) 8737: { } 8737: 8737: 8737: template 8737: __unordered_multimap(_InputIterator __f, _InputIterator __l, 8737: typename _Base::size_type __n = 0, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8737: __detail::_Default_ranged_hash(), 8737: __eql, std::_Select1st >(), __a) 8737: { } 8737: }; 8737: 8737: template 8737: inline void 8737: swap(__unordered_map<_Key, _Tp, _Hash, _Pred, 8737: _Alloc, __cache_hash_code>& __x, 8737: __unordered_map<_Key, _Tp, _Hash, _Pred, 8737: _Alloc, __cache_hash_code>& __y) 8737: { __x.swap(__y); } 8737: 8737: template 8737: inline void 8737: swap(__unordered_multimap<_Key, _Tp, _Hash, _Pred, 8737: _Alloc, __cache_hash_code>& __x, 8737: __unordered_multimap<_Key, _Tp, _Hash, _Pred, 8737: _Alloc, __cache_hash_code>& __y) 8737: { __x.swap(__y); } 8737: # 176 "/usr/include/c++/8/tr1/unordered_map.h" 3 8737: template, 8737: class _Pred = std::equal_to<_Key>, 8737: class _Alloc = std::allocator > > 8737: class unordered_map 8737: : public __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> 8737: { 8737: typedef __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8737: 8737: public: 8737: typedef typename _Base::value_type value_type; 8737: typedef typename _Base::size_type size_type; 8737: typedef typename _Base::hasher hasher; 8737: typedef typename _Base::key_equal key_equal; 8737: typedef typename _Base::allocator_type allocator_type; 8737: 8737: explicit 8737: unordered_map(size_type __n = 10, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__n, __hf, __eql, __a) 8737: { } 8737: 8737: template 8737: unordered_map(_InputIterator __f, _InputIterator __l, 8737: size_type __n = 10, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__f, __l, __n, __hf, __eql, __a) 8737: { } 8737: }; 8737: # 228 "/usr/include/c++/8/tr1/unordered_map.h" 3 8737: template, 8737: class _Pred = std::equal_to<_Key>, 8737: class _Alloc = std::allocator > > 8737: class unordered_multimap 8737: : public __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> 8737: { 8737: typedef __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8737: 8737: public: 8737: typedef typename _Base::value_type value_type; 8737: typedef typename _Base::size_type size_type; 8737: typedef typename _Base::hasher hasher; 8737: typedef typename _Base::key_equal key_equal; 8737: typedef typename _Base::allocator_type allocator_type; 8737: 8737: explicit 8737: unordered_multimap(size_type __n = 10, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__n, __hf, __eql, __a) 8737: { } 8737: 8737: 8737: template 8737: unordered_multimap(_InputIterator __f, _InputIterator __l, 8737: typename _Base::size_type __n = 0, 8737: const hasher& __hf = hasher(), 8737: const key_equal& __eql = key_equal(), 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__f, __l, __n, __hf, __eql, __a) 8737: { } 8737: 8737: }; 8737: 8737: template 8737: inline void 8737: swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8737: unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8737: { __x.swap(__y); } 8737: 8737: template 8737: inline void 8737: swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8737: unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8737: { __x.swap(__y); } 8737: } 8737: 8737: 8737: } 8737: # 43 "/usr/include/c++/8/tr1/unordered_map" 2 3 8737: # 30 "/<>/templates/tests/qtunorderedmap.h" 2 8737: 8737: 8737: 8737: # 32 "/<>/templates/tests/qtunorderedmap.h" 8737: template struct QtHasher { 8737: size_t operator()(Key k) const { return qHash(k); } 8737: }; 8737: 8737: template 8737: struct QtUnorderedMap 8737: : public std::tr1::unordered_map> { 8737: }; 8737: # 30 "/<>/templates/tests/test_macros.h" 2 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/tr1/array" 1 3 8737: # 32 "/usr/include/c++/8/tr1/array" 3 8737: 8737: # 33 "/usr/include/c++/8/tr1/array" 3 8737: 8737: 8737: 8737: 8737: # 36 "/usr/include/c++/8/tr1/array" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: # 56 "/usr/include/c++/8/tr1/array" 3 8737: template 8737: struct array 8737: { 8737: typedef _Tp value_type; 8737: typedef value_type& reference; 8737: typedef const value_type& const_reference; 8737: typedef value_type* iterator; 8737: typedef const value_type* const_iterator; 8737: typedef std::size_t size_type; 8737: typedef std::ptrdiff_t difference_type; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: 8737: 8737: value_type _M_instance[_Nm ? _Nm : 1]; 8737: 8737: 8737: 8737: void 8737: assign(const value_type& __u) 8737: { std::fill_n(begin(), size(), __u); } 8737: 8737: void 8737: swap(array& __other) 8737: { std::swap_ranges(begin(), end(), __other.begin()); } 8737: 8737: 8737: iterator 8737: begin() 8737: { return iterator(std::__addressof(_M_instance[0])); } 8737: 8737: const_iterator 8737: begin() const 8737: { return const_iterator(std::__addressof(_M_instance[0])); } 8737: 8737: iterator 8737: end() 8737: { return iterator(std::__addressof(_M_instance[_Nm])); } 8737: 8737: const_iterator 8737: end() const 8737: { return const_iterator(std::__addressof(_M_instance[_Nm])); } 8737: 8737: reverse_iterator 8737: rbegin() 8737: { return reverse_iterator(end()); } 8737: 8737: const_reverse_iterator 8737: rbegin() const 8737: { return const_reverse_iterator(end()); } 8737: 8737: reverse_iterator 8737: rend() 8737: { return reverse_iterator(begin()); } 8737: 8737: const_reverse_iterator 8737: rend() const 8737: { return const_reverse_iterator(begin()); } 8737: 8737: 8737: size_type 8737: size() const { return _Nm; } 8737: 8737: size_type 8737: max_size() const { return _Nm; } 8737: 8737: bool 8737: empty() const { return size() == 0; } 8737: 8737: 8737: reference 8737: operator[](size_type __n) 8737: { return _M_instance[__n]; } 8737: 8737: const_reference 8737: operator[](size_type __n) const 8737: { return _M_instance[__n]; } 8737: 8737: reference 8737: at(size_type __n) 8737: { 8737: if (__n >= _Nm) 8737: std::__throw_out_of_range(("array::at")); 8737: return _M_instance[__n]; 8737: } 8737: 8737: const_reference 8737: at(size_type __n) const 8737: { 8737: if (__n >= _Nm) 8737: std::__throw_out_of_range(("array::at")); 8737: return _M_instance[__n]; 8737: } 8737: 8737: reference 8737: front() 8737: { return *begin(); } 8737: 8737: const_reference 8737: front() const 8737: { return *begin(); } 8737: 8737: reference 8737: back() 8737: { return _Nm ? *(end() - 1) : *end(); } 8737: 8737: const_reference 8737: back() const 8737: { return _Nm ? *(end() - 1) : *end(); } 8737: 8737: _Tp* 8737: data() 8737: { return std::__addressof(_M_instance[0]); } 8737: 8737: const _Tp* 8737: data() const 8737: { return std::__addressof(_M_instance[0]); } 8737: }; 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8737: 8737: template 8737: inline bool 8737: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return !(__one == __two); } 8737: 8737: template 8737: inline bool 8737: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8737: { 8737: return std::lexicographical_compare(__a.begin(), __a.end(), 8737: __b.begin(), __b.end()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return __two < __one; } 8737: 8737: template 8737: inline bool 8737: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return !(__one > __two); } 8737: 8737: template 8737: inline bool 8737: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8737: { return !(__one < __two); } 8737: 8737: 8737: template 8737: inline void 8737: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8737: { __one.swap(__two); } 8737: 8737: 8737: 8737: 8737: template 8737: class tuple_size; _first, (void)++__result) 8768: *__result = __unary_op(*__first); 8768: return __result; 8768: } 8768: # 4327 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _OutputIterator 8768: transform(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _OutputIterator __result, 8768: _BinaryOperation __binary_op) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1, (void)++__first2, ++__result) 8768: *__result = __binary_op(*__first1, *__first2); 8768: return __result; 8768: } 8768: # 4360 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: void 8768: replace(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __old_value, const _Tp& __new_value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: if (*__first == __old_value) 8768: *__first = __new_value; 8768: } 8768: # 4392 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: void 8768: replace_if(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred, const _Tp& __new_value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: if (__pred(*__first)) 8768: *__first = __new_value; 8768: } 8768: # 4424 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: void 8768: generate(_ForwardIterator __first, _ForwardIterator __last, 8768: _Generator __gen) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: *__first = __gen(); 8768: } 8768: # 4455 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: _OutputIterator 8768: generate_n(_OutputIterator __first, _Size __n, _Generator __gen) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: for (__decltype(__n + 0) __niter = __n; 8768: __niter > 0; --__niter, (void) ++__first) 8768: *__first = __gen(); 8768: return __first; 8768: } 8768: # 4491 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: unique_copy(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return __result; 8768: return std::__unique_copy(__first, __last, __result, 8768: __gnu_cxx::__ops::__iter_equal_to_iter(), 8768: std::__iterator_category(__first), 8768: std::__iterator_category(__result)); 8768: } 8768: # 4531 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: unique_copy(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, 8768: _BinaryPredicate __binary_pred) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return __result; 8768: return std::__unique_copy(__first, __last, __result, 8768: __gnu_cxx::__ops::__iter_comp_iter(__binary_pred), 8768: std::__iterator_category(__first), 8768: std::__iterator_category(__result)); 8768: } 8768: # 4564 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first != __last) 8768: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8768: { 8768: 8768: _RandomAccessIterator __j = __first 8768: + std::rand() % ((__i - __first) + 1); 8768: if (__i != __j) 8768: std::iter_swap(__i, __j); 8768: } 8768: } 8768: # 4599 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: void 8768: random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: 8768: _RandomNumberGenerator&& __rand) 8768: 8768: 8768: 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return; 8768: for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) 8768: { 8768: _RandomAccessIterator __j = __first + __rand((__i - __first) + 1); 8768: if (__i != __j) 8768: std::iter_swap(__i, __j); 8768: } 8768: } 8768: # 4639 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _ForwardIterator 8768: partition(_ForwardIterator __first, _ForwardIterator __last, 8768: _Predicate __pred) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: return std::__partition(__first, __last, __pred, 8768: std::__iterator_category(__first)); 8768: } 8768: # 4672 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: partial_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __middle, 8768: _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: std::__partial_sort(__first, __middle, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 4710 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: partial_sort(_RandomAccessIterator __first, 8768: _RandomAccessIterator __middle, 8768: _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: std::__partial_sort(__first, __middle, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: # 4746 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8768: _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: if (__first == __last || __nth == __last) 8768: return; 8768: 8768: std::__introselect(__first, __nth, __last, 8768: std::__lg(__last - __first) * 2, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 4785 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, 8768: _RandomAccessIterator __last, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: if (__first == __last || __nth == __last) 8768: return; 8768: 8768: std::__introselect(__first, __nth, __last, 8768: std::__lg(__last - __first) * 2, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: # 4822 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 4852 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: _OutputIterator 8768: __merge(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: { 8768: if (__comp(__first2, __first1)) 8768: { 8768: *__result = *__first2; 8768: ++__first2; 8768: } 8768: else 8768: { 8768: *__result = *__first1; 8768: ++__first1; 8768: } 8768: ++__result; 8768: } 8768: return std::copy(__first2, __last2, 8768: std::copy(__first1, __last1, __result)); 8768: } 8768: # 4913 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__merge(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 4963 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: merge(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__merge(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: inline void 8768: __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: typedef typename iterator_traits<_RandomAccessIterator>::value_type 8768: _ValueType; 8768: typedef typename iterator_traits<_RandomAccessIterator>::difference_type 8768: _DistanceType; 8768: 8768: typedef _Temporary_buffer<_RandomAccessIterator, _ValueType> _TmpBuf; 8768: _TmpBuf __buf(__first, __last); 8768: 8768: if (__buf.begin() == 0) 8768: std::__inplace_stable_sort(__first, __last, __comp); 8768: else 8768: std::__stable_sort_adaptive(__first, __last, __buf.begin(), 8768: _DistanceType(__buf.size()), __comp); 8768: } 8768: # 5027 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: std::__stable_sort(__first, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5061 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline void 8768: stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: std::__stable_sort(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: _OutputIterator 8768: __set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: { 8768: if (__comp(__first1, __first2)) 8768: { 8768: *__result = *__first1; 8768: ++__first1; 8768: } 8768: else if (__comp(__first2, __first1)) 8768: { 8768: *__result = *__first2; 8768: ++__first2; 8768: } 8768: else 8768: { 8768: *__result = *__first1; 8768: ++__first1; 8768: ++__first2; 8768: } 8768: ++__result; 8768: } 8768: return std::copy(__first2, __last2, 8768: std::copy(__first1, __last1, __result)); 8768: } 8768: # 5130 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_union(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5180 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_union(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_union(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: _OutputIterator 8768: __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: if (__comp(__first1, __first2)) 8768: ++__first1; 8768: else if (__comp(__first2, __first1)) 8768: ++__first2; 8768: else 8768: { 8768: *__result = *__first1; 8768: ++__first1; 8768: ++__first2; 8768: ++__result; 8768: } 8768: return __result; 8768: } 8768: # 5251 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_intersection(__first1, __last1, 8768: __first2, 8737: 8737: 8737: template 8737: class tuple_element; 8737: 8737: template 8737: struct tuple_size > 8737: { static const int value = _Nm; }; 8737: 8737: template 8737: const int 8737: tuple_size >::value; 8737: 8737: template 8737: struct tuple_element<_Int, array<_Tp, _Nm> > 8737: { typedef _Tp type; }; 8737: 8737: template 8737: inline _Tp& 8737: get(array<_Tp, _Nm>& __arr) 8737: { return __arr[_Int]; } 8737: 8737: template 8737: inline const _Tp& 8737: get(const array<_Tp, _Nm>& __arr) 8737: { return __arr[_Int]; } 8737: } 8737: 8737: 8737: } 8737: # 35 "/<>/templates/tests/test_macros.h" 2 8737: 8737: 8737: 8737: # 37 "/<>/templates/tests/test_macros.h" 8737: template struct ThreeArray : public std::tr1::array { 8737: }; 8737: # 27 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLinkedList" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlinkedlist.h" 1 3 4 8737: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlinkedlist.h" 3 4 8737: 8737: 8737: 8737: 8737: # 58 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlinkedlist.h" 3 4 8737: struct __attribute__((visibility("default"))) QLinkedListData 8737: { 8737: QLinkedListData *n, *p; 8737: QtPrivate::RefCount ref; 8737: int size; 8737: uint sharable : 1; 8737: 8737: static const QLinkedListData shared_null; 8737: }; 8737: 8737: template 8737: struct QLinkedListNode 8737: { 8737: inline QLinkedListNode(const T &arg): t(arg) { } 8737: QLinkedListNode *n, *p; 8737: T t; 8737: }; 8737: 8737: template 8737: class QLinkedList 8737: { 8737: typedef QLinkedListNode Node; 8737: union { QLinkedListData *d; QLinkedListNode *e; }; 8737: 8737: public: 8737: inline QLinkedList() noexcept : d(const_cast(&QLinkedListData::shared_null)) { } 8737: inline QLinkedList(const QLinkedList &l) : d(l.d) { d->ref.ref(); if (!d->sharable) detach(); } 8737: 8737: inline QLinkedList(std::initializer_list list) 8737: : d(const_cast(&QLinkedListData::shared_null)) 8737: { 8737: std::copy(list.begin(), list.end(), std::back_inserter(*this)); 8737: } 8737: 8737: ~QLinkedList(); 8737: QLinkedList &operator=(const QLinkedList &); 8737: 8737: QLinkedList(QLinkedList &&other) noexcept 8737: : d(other.d) { other.d = const_cast(&QLinkedListData::shared_null); } 8737: QLinkedList &operator=(QLinkedList &&other) noexcept 8737: { QLinkedList moved(std::move(other)); swap(moved); return *this; } 8737: 8737: inline void swap(QLinkedList &other) noexcept { qSwap(d, other.d); } 8737: bool operator==(const QLinkedList &l) const; 8737: inline bool operator!=(const QLinkedList &l) const { return !(*this == l); } 8737: 8737: inline int size() const { return d->size; } 8737: inline void detach() 8737: { if (d->ref.isShared()) detach_helper2(this->e); } 8737: inline bool isDetached() const { return !d->ref.isShared(); } 8737: 8737: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QLinkedListData::shared_null) d->sharable = sharable; } 8737: 8737: inline bool isSharedWith(const QLinkedList &other) const { return d == other.d; } 8737: 8737: inline bool isEmpty() const { return d->size == 0; } 8737: 8737: void clear(); 8737: 8737: void append(const T &); 8737: void prepend(const T &); 8737: T takeFirst(); 8737: T takeLast(); 8737: int removeAll(const T &t); 8737: bool removeOne(const T &t); 8737: bool contains(const T &t) const; 8737: int count(const T &t) const; 8737: 8737: class const_iterator; 8737: 8737: class iterator 8737: { 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef T *pointer; 8737: typedef T &reference; 8737: Node *i; 8737: inline iterator() : i(nullptr) {} 8737: inline iterator(Node *n) : i(n) {} 8737: 8737: iterator(const iterator &other) noexcept : i(other.i) {} 8737: iterator &operator=(const iterator &other) noexcept { i = other.i; return *this; } 8737: iterator(iterator &&other) noexcept : i(other.i) {} 8737: iterator &operator=(iterator &&other) noexcept { return *this = other; } 8737: 8737: inline T &operator*() const { return i->t; } 8737: inline T *operator->() const { return &i->t; } 8737: inline bool operator==(const iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const iterator &o) const { return i != o.i; } 8737: inline bool operator==(const const_iterator &o) const 8737: { return i == o.i; } 8737: inline bool operator!=(const const_iterator &o) const 8737: { return i != o.i; } 8737: inline iterator &operator++() { i = i->n; return *this; } 8737: inline iterator operator++(int) { Node *n = i; i = i->n; return n; } 8737: inline iterator &operator--() { i = i->p; return *this; } 8737: inline iterator operator--(int) { Node *n = i; i = i->p; return n; } 8737: inline iterator operator+(int j) const 8737: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8737: inline iterator operator-(int j) const { return operator+(-j); } 8737: inline iterator &operator+=(int j) { return *this = *this + j; } 8737: inline iterator &operator-=(int j) { return *this = *this - j; } 8737: }; 8737: friend class iterator; 8737: 8737: class const_iterator 8737: { 8737: public: 8737: typedef std::bidirectional_iterator_tag iterator_category; 8737: typedef qptrdiff difference_type; 8737: typedef T value_type; 8737: typedef const T *pointer; 8737: typedef const T &reference; 8737: Node *i; 8737: inline const_iterator() : i(nullptr) {} 8737: inline const_iterator(Node *n) : i(n) {} 8737: inline const_iterator(iterator ci) : i(ci.i){} 8737: 8737: const_iterator(const const_iterator &other) noexcept : i(other.i) {} 8737: const_iterator &operator=(const const_iterator &other) noexcept { i = other.i; return *this; } 8737: const_iterator(const_iterator &&other) noexcept : i(other.i) {} 8737: const_iterator &operator=(const_iterator &&other) noexcept { return *this = other; } 8737: 8737: inline const T &operator*() const { return i->t; } 8737: inline const T *operator->() const { return &i->t; } 8737: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8737: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8737: inline const_iterator &operator++() { i = i->n; return *this; } 8737: inline const_iterator operator++(int) { Node *n = i; i = i->n; return n; } 8737: inline const_iterator &operator--() { i = i->p; return *this; } 8737: inline const_iterator operator--(int) { Node *n = i; i = i->p; return n; } 8737: inline const_iterator operator+(int j) const 8737: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8737: inline const_iterator operator-(int j) const { return operator+(-j); } 8737: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8737: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8737: }; 8737: friend class const_iterator; 8737: 8737: 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: 8737: inline iterator begin() { detach(); return e->n; } 8737: inline const_iterator begin() const noexcept { return e->n; } 8737: inline const_iterator cbegin() const noexcept { return e->n; } 8737: inline const_iterator constBegin() const noexcept { return e->n; } 8737: inline iterator end() { detach(); return e; } 8737: inline const_iterator end() const noexcept { return e; } 8737: inline const_iterator cend() const noexcept { return e; } 8737: inline const_iterator constEnd() const noexcept { return e; } 8737: 8737: reverse_iterator rbegin() { return reverse_iterator(end()); } 8737: reverse_iterator rend() { return reverse_iterator(begin()); } 8737: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8737: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8737: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8737: 8737: iterator insert(iterator before, const T &t); 8737: iterator erase(iterator pos); 8737: iterator erase(iterator first, iterator last); 8737: 8737: 8737: typedef iterator Iterator; 8737: typedef const_iterator ConstIterator; 8737: inline int count() const { return d->size; } 8737: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8737: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8737: const T& last() const { do { } while ((false) && (!isEmpty())); return *(--end()); } 8737: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8737: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8737: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8737: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8737: 8737: 8737: inline void push_back(const T &t) { append(t); } 8737: inline void push_front(const T &t) { prepend(t); } 8737: inline T& front() { return first(); } 8737: inline const T& front() const { return first(); } 8737: inline T& back() { return last(); } 8737: inline const T& back() const { return last(); } 8737: inline void pop_front() { removeFirst(); } 8737: inline void pop_back() { removeLast(); } 8737: inline bool empty() const { return isEmpty(); } 8737: typedef int size_type; 8737: typedef T value_type; 8737: typedef value_type *pointer; 8737: typedef const value_type *const_pointer; 8737: typedef value_type &reference; 8737: typedef const value_type &const_reference; 8737: typedef qptrdiff difference_type; 8737: 8737: static inline QLinkedList fromStdList(const std::list &list) 8737: { QLinkedList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8737: inline std::list toStdList() const 8737: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8737: 8737: 8737: QLinkedList &operator+=(const QLinkedList &l); 8737: QLinkedList operator+(const QLinkedList &l) const; 8737: inline QLinkedList &operator+=(const T &t) { append(t); return *this; } 8737: inline QLinkedList &operator<< (const T &t) { append(t); return *this; } 8737: inline QLinkedList &operator<<(const QLinkedList &l) { *this += l; return *this; } 8737: 8737: private: 8737: void detach_helper(); 8737: iterator detach_helper2(iterator); 8737: void freeData(QLinkedListData*); 8737: }; 8737: 8737: template 8737: inline QLinkedList::~QLinkedList() 8737: { 8737: if (!d->ref.deref()) 8737: freeData(d); 8737: } 8737: 8737: template 8737: void QLinkedList::detach_helper() 8737: { 8737: detach_helper2(this->e); 8737: } 8737: 8737: template 8737: typename QLinkedList::iterator QLinkedList::detach_helper2(iterator orgite) 8737: { 8737: 8737: bool isEndIterator = (orgite.i == this->e); 8737: union { QLinkedListData *d; Node *e; } x; 8737: x.d = new QLinkedListData; 8737: x.d->ref.initializeOwned(); 8737: x.d->size = d->size; 8737: x.d->sharable = true; 8737: Node *original = e->n; 8737: Node *copy = x.e; 8737: Node *org = orgite.i; 8737: 8737: while (original != org) { 8737: try { 8737: copy->n = new Node(original->t); 8737: copy->n->p = copy; 8737: original = original->n; 8737: copy = copy->n; 8737: } catch (...) { 8737: copy->n = x.e; 8737: do { } while ((false) && (!x.d->ref.deref())); 8737: freeData(x.d); 8737: throw; 8737: } 8737: } 8737: iterator r(copy); 8737: while (original != e) { 8737: try { 8737: copy->n = new Node(original->t); 8737: copy->n->p = copy; 8737: original = original->n; 8737: copy = copy->n; 8737: } catch (...) { 8737: copy->n = x.e; 8737: do { } while ((false) && (!x.d->ref.deref())); 8737: freeData(x.d); 8737: throw; 8737: } 8737: } 8737: copy->n = x.e; 8737: x.e->p = copy; 8737: if (!d->ref.deref()) 8737: freeData(d); 8737: d = x.d; 8737: if (!isEndIterator) 8737: ++r; 8737: return r; 8737: } 8737: 8737: template 8737: void QLinkedList::freeData(QLinkedListData *x) 8737: { 8737: Node *y = reinterpret_cast(x); 8737: Node *i = y->n; 8737: do { } while ((false) && (x->ref.atomic.load() == 0)); 8737: while (i != y) { 8737: Node *n = i; 8737: i = i->n; 8737: delete n; 8737: } 8737: delete x; 8737: } 8737: 8737: template 8737: void QLinkedList::clear() 8737: { 8737: *this = QLinkedList(); 8737: } 8737: 8737: template 8737: QLinkedList &QLinkedList::operator=(const QLinkedList &l) 8737: { 8737: if (d != l.d) { 8737: QLinkedListData *o = l.d; 8737: o->ref.ref(); 8737: if (!d->ref.deref()) 8737: freeData(d); 8737: d = o; 8737: if (!d->sharable) 8737: detach_helper(); 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: bool QLinkedList::operator== (const QLinkedList &l) const 8737: { 8737: if (d->size != l.d->size) 8737: return false; 8737: if (e == l.e) 8737: return true; 8737: Node *i = e->n; 8737: Node *il = l.e->n; 8737: while (i != e) { 8737: if (! (i->t == il->t)) 8737: return false; 8737: i = i->n; 8737: il = il->n; 8737: } 8737: return true; 8737: } 8737: 8737: template 8737: void QLinkedList::append(const T &t) 8737: { 8737: detach(); 8737: Node *i = new Node(t); 8737: i->n = e; 8737: i->p = e->p; 8737: i->p->n = i; 8737: e->p = i; 8737: d->size++; 8737: } 8737: 8737: template 8737: void QLinkedList::prepend(const T &t) 8737: { 8737: detach(); 8737: Node *i = new Node(t); 8737: i->n = e->n; 8737: i->p = e; 8737: i->n->p = i; 8737: e->n = i; 8737: d->size++; 8737: } 8737: 8737: template 8737: int QLinkedList::removeAll(const T &_t) 8737: { 8737: detach(); 8737: const T t = _t; 8737: Node *i = e->n; 8737: int c = 0; 8737: while (i != e) { 8737: if (i->t == t) { 8737: Node *n = i; 8737: i->n->p = i->p; 8737: i->p->n = i->n; 8737: i = i->n; 8737: delete n; 8737__last2, __result, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5300 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_intersection(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: _OutputIterator 8768: __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: if (__comp(__first1, __first2)) 8768: { 8768: *__result = *__first1; 8768: ++__first1; 8768: ++__result; 8768: } 8768: else if (__comp(__first2, __first1)) 8768: ++__first2; 8768: else 8768: { 8768: ++__first1; 8768: ++__first2; 8768: } 8768: return std::copy(__first1, __last1, __result); 8768: } 8768: # 5373 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_difference(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5424 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_difference(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: _OutputIterator 8768: __set_symmetric_difference(_InputIterator1 __first1, 8768: _InputIterator1 __last1, 8768: _InputIterator2 __first2, 8768: _InputIterator2 __last2, 8768: _OutputIterator __result, 8768: _Compare __comp) 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: if (__comp(__first1, __first2)) 8768: { 8768: *__result = *__first1; 8768: ++__first1; 8768: ++__result; 8768: } 8768: else if (__comp(__first2, __first1)) 8768: { 8768: *__result = *__first2; 8768: ++__first2; 8768: ++__result; 8768: } 8768: else 8768: { 8768: ++__first1; 8768: ++__first2; 8768: } 8768: return std::copy(__first2, __last2, 8768: std::copy(__first1, __last1, __result)); 8768: } 8768: # 5503 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_symmetric_difference(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5554 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: inline _OutputIterator 8768: set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _InputIterator2 __last2, 8768: _OutputIterator __result, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: ; 8768: ; 8768: 8768: return std::__set_symmetric_difference(__first1, __last1, 8768: __first2, __last2, __result, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: 8768: _ForwardIterator 8768: __min_element(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: if (__first == __last) 8768: return __first; 8768: _ForwardIterator __result = __first; 8768: while (++__first != __last) 8768: if (__comp(__first, __result)) 8768: __result = __first; 8768: return __result; 8768: } 8768: # 5607 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: _ForwardIterator 8768: inline min_element(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__min_element(__first, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5632 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inline _ForwardIterator 8768: min_element(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__min_element(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: 8768: template 8768: 8768: _ForwardIterator 8768: __max_element(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: if (__first == __last) return __first; 8768: _ForwardIterator __result = __first; 8768: while (++__first != __last) 8768: if (__comp(__result, __first)) 8768: __result = __first; 8768: return __result; 8768: } 8768: # 5671 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inline _ForwardIterator 8768: max_element(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: 8768: 8768: 8768: 8768: ; 8768: ; 8768: 8768: return std::__max_element(__first, __last, 8768: __gnu_cxx::__ops::__iter_less_iter()); 8768: } 8768: # 5696 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: template 8768: 8768: inline _ForwardIterator 8768: max_element(_ForwardIterator __first, _ForwardIterator __last, 8768: _Compare __comp) 8768: { 8768: 8768: 8768: 8768: 8768: 876: c++; 8737: } else { 8737: i = i->n; 8737: } 8737: } 8737: d->size-=c; 8737: return c; 8737: } 8737: 8737: template 8737: bool QLinkedList::removeOne(const T &_t) 8737: { 8737: detach(); 8737: iterator it = std::find(begin(), end(), _t); 8737: if (it != end()) { 8737: erase(it); 8737: return true; 8737: } 8737: return false; 8737: } 8737: 8737: template 8737: inline T QLinkedList::takeFirst() 8737: { 8737: T t = first(); 8737: removeFirst(); 8737: return t; 8737: } 8737: 8737: template 8737: inline T QLinkedList::takeLast() 8737: { 8737: T t = last(); 8737: removeLast(); 8737: return t; 8737: } 8737: 8737: template 8737: bool QLinkedList::contains(const T &t) const 8737: { 8737: Node *i = e; 8737: while ((i = i->n) != e) 8737: if (i->t == t) 8737: return true; 8737: return false; 8737: } 8737: 8737: template 8737: int QLinkedList::count(const T &t) const 8737: { 8737: Node *i = e; 8737: int c = 0; 8737: while ((i = i->n) != e) 8737: if (i->t == t) 8737: c++; 8737: return c; 8737: } 8737: 8737: 8737: template 8737: typename QLinkedList::iterator QLinkedList::insert(iterator before, const T &t) 8737: { 8737: if (d->ref.isShared()) 8737: before = detach_helper2(before); 8737: 8737: Node *i = before.i; 8737: Node *m = new Node(t); 8737: m->n = i; 8737: m->p = i->p; 8737: m->p->n = m; 8737: i->p = m; 8737: d->size++; 8737: return m; 8737: } 8737: 8737: template 8737: typename QLinkedList::iterator QLinkedList::erase(typename QLinkedList::iterator afirst, 8737: typename QLinkedList::iterator alast) 8737: { 8737: while (afirst != alast) 8737: erase(afirst++); 8737: return alast; 8737: } 8737: 8737: 8737: template 8737: typename QLinkedList::iterator QLinkedList::erase(iterator pos) 8737: { 8737: if (d->ref.isShared()) 8737: pos = detach_helper2(pos); 8737: 8737: Node *i = pos.i; 8737: if (i != e) { 8737: Node *n = i; 8737: i->n->p = i->p; 8737: i->p->n = i->n; 8737: i = i->n; 8737: delete n; 8737: d->size--; 8737: } 8737: return i; 8737: } 8737: 8737: template 8737: QLinkedList &QLinkedList::operator+=(const QLinkedList &l) 8737: { 8737: detach(); 8737: int n = l.d->size; 8737: d->size += n; 8737: Node *original = l.e->n; 8737: while (n--) { 8737: try { 8737: Node *copy = new Node(original->t); 8737: original = original->n; 8737: copy->n = e; 8737: copy->p = e->p; 8737: copy->p->n = copy; 8737: e->p = copy; 8737: } catch (...) { 8737: 8737: while (n++size) 8737: removeLast(); 8737: throw; 8737: } 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: QLinkedList QLinkedList::operator+(const QLinkedList &l) const 8737: { 8737: QLinkedList n = *this; 8737: n += l; 8737: return n; 8737: } 8737: 8737: 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; } }; 8737: 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; } }; 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLinkedList" 2 3 4 8737: # 29 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType" 2 3 4 8737: # 30 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QQueue" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qqueue.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qqueue.h" 3 4 8737: 8737: 8737: 8737: template 8737: class QQueue : public QList 8737: { 8737: public: 8737: 8737: inline void swap(QQueue &other) noexcept { QList::swap(other); } 8737: 8737: 8737: 8737: inline void swap(int i, int j) { QList::swap(i, j); } 8737: 8737: inline void enqueue(const T &t) { QList::append(t); } 8737: inline T dequeue() { return QList::takeFirst(); } 8737: inline T &head() { return QList::first(); } 8737: inline const T &head() const { return QList::first(); } 8737: }; 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QQueue" 2 3 4 8737: # 31 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStack" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h" 2 3 4 8737: 8737: 8737: 8737: 8737: template 8737: class QStack : public QVector 8737: { 8737: public: 8737: 8737: inline void swap(QStack &other) noexcept { QVector::swap(other); } 8737: inline void push(const T &t) { QVector::append(t); } 8737: T pop(); 8737: T &top(); 8737: const T &top() con8: ; 8768: ; 8768: 8768: return std::__max_element(__first, __last, 8768: __gnu_cxx::__ops::__iter_comp_iter(__comp)); 8768: } 8768: # 5839 "/usr/include/c++/8/bits/stl_algo.h" 3 8768: 8768: 8768: } 8768: # 63 "/usr/include/c++/8/algorithm" 2 3 8768: # 110 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 191 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef signed char qint8; 8768: typedef unsigned char quint8; 8768: typedef short qint16; 8768: typedef unsigned short quint16; 8768: typedef int qint32; 8768: typedef unsigned int quint32; 8768: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: typedef long long qint64; 8768: typedef unsigned long long quint64; 8768: 8768: 8768: typedef qint64 qlonglong; 8768: typedef quint64 qulonglong; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef unsigned char uchar; 8768: typedef unsigned short ushort; 8768: typedef unsigned int uint; 8768: typedef unsigned long ulong; 8768: 8768: 8768: 8768: 8768: 8768: typedef double qreal; 8768: # 356 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: extern "C" 8768: 8768: __attribute__((visibility("default"))) const char *qVersion(void) noexcept; 8768: # 384 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: namespace QtPrivate { 8768: template 8768: struct AlignOfHelper 8768: { 8768: char c; 8768: T type; 8768: 8768: AlignOfHelper(); 8768: ~AlignOfHelper(); 8768: }; 8768: 8768: template 8768: struct AlignOf_Default 8768: { 8768: enum { Value = sizeof(AlignOfHelper) - sizeof(T) }; 8768: }; 8768: 8768: template struct AlignOf : AlignOf_Default { }; 8768: template struct AlignOf : AlignOf {}; 8768: template struct AlignOf : AlignOf {}; 8768: 8768: 8768: template struct AlignOf : AlignOf {}; 8768: # 424 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: } 8768: # 440 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: template struct QIntegerForSize; 8768: template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; }; 8768: template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; }; 8768: template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; }; 8768: template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; }; 8768: 8768: template <> struct QIntegerForSize<16> { __extension__ typedef unsigned __int128 Unsigned; __extension__ typedef __int128 Signed; }; 8768: 8768: template struct QIntegerForSizeof: QIntegerForSize { }; 8768: typedef QIntegerForSize<8>::Signed qregisterint; 8768: typedef QIntegerForSize<8>::Unsigned qregisteruint; 8768: typedef QIntegerForSizeof::Unsigned quintptr; 8768: typedef QIntegerForSizeof::Signed qptrdiff; 8768: typedef qptrdiff qintptr; 8768: # 516 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: typedef int QNoImplicitBoolCast; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: constexpr inline T qAbs(const T &t) { return t >= 0 ? t : -t; } 8768: 8768: constexpr inline int qRound(double d) 8768: { return d >= 0.0 ? int(d + 0.5) : int(d - double(int(d-1)) + 0.5) + int(d-1); } 8768: constexpr inline int qRound(float d) 8768: { return d >= 0.0f ? int(d + 0.5f) : int(d - float(int(d-1)) + 0.5f) + int(d-1); } 8768: 8768: constexpr inline qint64 qRound64(double d) 8768: { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - double(qint64(d-1)) + 0.5) + qint64(d-1); } 8768: constexpr inline qint64 qRound64(float d) 8768: { return d >= 0.0f ? qint64(d + 0.5f) : qint64(d - float(qint64(d-1)) + 0.5f) + qint64(d-1); } 8768: 8768: template 8768: constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } 8768: template 8768: constexpr inline const T &qMax(const T &a, const T &b) { return (a < b) ? b : a; } 8768: template 8768: constexpr inline const T &qBound(const T &min, const T &val, const T &max) 8768: { return qMax(min, qMin(max, val)); } 8768: # 621 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: class QDataStream; 8768: 8768: inline void qt_noop(void) {} 8768: # 655 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qTerminate() noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) bool qSharedBuild() noexcept; 8768: # 702 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: class QString; 8768: __attribute__((visibility("default"))) QString qt_error_string(int errorCode = -1); 8768: 8768: 8768: __attribute__((__noreturn__)) 8768: 8768: __attribute__((visibility("default"))) void qt_assert(const char *assertion, const char *file, int line) noexcept; 8768: # 723 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: __attribute__((__noreturn__)) 8768: 8768: __attribute__((visibility("default"))) void qt_assert_x(const char *where, const char *what, const char *file, int line) noexcept; 8768: # 756 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: __attribute__((__noreturn__)) __attribute__((visibility("default"))) void qt_check_pointer(const char *, int) noexcept; 8768: __attribute__((visibility("default"))) void qBadAlloc(); 8768: # 769 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: template 8768: inline T *q_check_ptr(T *p) { do { if (!(p)) qBadAlloc(); } while (false); return p; } 8768: 8768: typedef void (*QFunctionPointer)(); 8768: 8768: 8768: 8768: 8768: 8768: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(double p1, double p2) 8768: { 8768: return (qAbs(p1 - p2) * 1000000000000. <= qMin(qAbs(p1), qAbs(p2))); 8768: } 8768: 8768: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyCompare(float p1, float p2) 8768: { 8768: return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2))); 8768: } 8768: 8768: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(double d) 8768: { 8768: return qAbs(d) <= 0.000000000001; 8768: } 8768: 8768: [[nodiscard]] constexpr static inline __attribute__((__unused__)) bool qFuzzyIsNull(float f) 8768: { 8768: return qAbs(f) <= 0.00001f; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(double d) 8768: { 8768: union U { 8768: double d; 8768: quint64 u; 8768: }; 8768: U val; 8768: val.d = d; 8768: return (val.u & static_cast(0x7fffffffffffffffULL)) == 0; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: [[nodiscard]] static inline __attribute__((__unused__)) bool qIsNull(float f) 8768: { 8768: union U { 8768: float f; 8768: quint32 u; 8768: }; 8768: U val; 8768: val.f = f; 8768: return (val.u & 0x7fffffff) == 0; 8768: } 8768: # 850 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: namespace QtPrivate 8768: { 8768: namespace SwapExceptionTester { 8768: using std::swap; 8768: template 8768: void checkSwap(T &t) 8768: noexcept(noexcept(swap(t, t))); 8768: 8768: } 8768: } 8768: 8768: template 8768: inline void qSwap(T &value1, T &value2) 8768: noexcept(noexcept(QtPrivate::SwapExceptionTester::checkSwap(value1))) 8768: { 8768: using std::swap; 8768: swap(value1, value2); 8768: } 8768: # 876 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: __attribute__((visibility("default"))) void *qMallocAligned(size_t size, size_t alignment) __attribute__((alloc_size(1))); 8768: __attribute__((visibility("default"))) void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment) __attrist; 8737: }; 8737: 8737: template 8737: inline T QStack::pop() 8737: { do { } while ((false) && (!this->isEmpty())); T t = this->data()[this->size() -1]; 8737: this->resize(this->size()-1); return t; } 8737: 8737: template 8737: inline T &QStack::top() 8737: { do { } while ((false) && (!this->isEmpty())); this->detach(); return this->data()[this->size()-1]; } 8737: 8737: template 8737: inline const T &QStack::top() const 8737: { do { } while ((false) && (!this->isEmpty())); return this->data()[this->size()-1]; } 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStack" 2 3 4 8737: # 32 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8737: # 33 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantHash" 1 3 4 8737: # 34 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/QTest" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest_global.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest_global.h" 3 4 8737: 8737: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest_global.h" 3 4 8737: namespace QTest 8737: { 8737: enum TestFailMode { Abort = 1, Continue = 2 }; 8737: } 8737: 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 1 3 4 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetaobject.h" 1 3 4 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetaobject.h" 3 4 8737: 8737: 8737: 8737: template class QList; 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QMetaMethod 8737: { 8737: public: 8737: constexpr inline QMetaMethod() : mobj(nullptr), handle(0) {} 8737: 8737: QByteArray methodSignature() const; 8737: QByteArray name() const; 8737: const char *typeName() const; 8737: int returnType() const; 8737: int parameterCount() const; 8737: int parameterType(int index) const; 8737: void getParameterTypes(int *types) const; 8737: QList parameterTypes() const; 8737: QList parameterNames() const; 8737: const char *tag() const; 8737: enum Access { Private, Protected, Public }; 8737: Access access() const; 8737: enum MethodType { Method, Signal, Slot, Constructor }; 8737: MethodType methodType() const; 8737: enum Attributes { Compatibility = 0x1, Cloned = 0x2, Scriptable = 0x4 }; 8737: int attributes() const; 8737: int methodIndex() const; 8737: int revision() const; 8737: 8737: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8737: 8737: bool invoke(QObject *object, 8737: Qt::ConnectionType connectionType, 8737: QGenericReturnArgument returnValue, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const; 8737: inline bool invoke(QObject *object, 8737: QGenericReturnArgument returnValue, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const 8737: { 8737: return invoke(object, Qt::AutoConnection, returnValue, 8737: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8737: } 8737: inline bool invoke(QObject *object, 8737: Qt::ConnectionType connectionType, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const 8737: { 8737: return invoke(object, connectionType, QGenericReturnArgument(), 8737: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8737: } 8737: inline bool invoke(QObject *object, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const 8737: { 8737: return invoke(object, Qt::AutoConnection, QGenericReturnArgument(), 8737: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8737: } 8737: 8737: bool invokeOnGadget(void *gadget, 8737: QGenericReturnArgument returnValue, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 8737: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const; 8737: inline bool invokeOnGadget(void *gadget, 8737: QGenericArgument val0 = QGenericArgument(nullptr), 8737: QGenericArgument val1 = QGenericArgument(), 8737: QGenericArgument val2 = QGenericArgument(), 8737: QGenericArgument val3 = QGenericArgument(), 8737: QGenericArgument val4 = QGenericArgument(), 873bute__((alloc_size(2))); 8768: __attribute__((visibility("default"))) void qFreeAligned(void *ptr); 8768: # 918 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: namespace QtPrivate { 8768: template struct QAddConst { typedef const T Type; }; 8768: } 8768: 8768: 8768: template 8768: constexpr typename QtPrivate::QAddConst::Type &qAsConst(T &t) noexcept { return t; } 8768: 8768: template 8768: void qAsConst(const T &&) = delete; 8768: 8768: 8768: 8768: namespace QtPrivate { 8768: 8768: template 8768: class QForeachContainer { 8768: QForeachContainer(const QForeachContainer &) = delete; QForeachContainer &operator=(const QForeachContainer &) = delete; 8768: public: 8768: QForeachContainer(const T &t) : c(t), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8768: QForeachContainer(T &&t) : c(std::move(t)), i(qAsConst(c).begin()), e(qAsConst(c).end()) {} 8768: 8768: QForeachContainer(QForeachContainer &&other) 8768: : c(std::move(other.c)), 8768: i(qAsConst(c).begin()), 8768: e(qAsConst(c).end()), 8768: control(std::move(other.control)) 8768: { 8768: } 8768: 8768: QForeachContainer &operator=(QForeachContainer &&other) 8768: { 8768: c = std::move(other.c); 8768: i = qAsConst(c).begin(); 8768: e = qAsConst(c).end(); 8768: control = std::move(other.control); 8768: return *this; 8768: } 8768: 8768: T c; 8768: typename T::const_iterator i, e; 8768: int control = 1; 8768: }; 8768: 8768: template 8768: QForeachContainer::type> qMakeForeachContainer(T &&t) 8768: { 8768: return QForeachContainer::type>(std::forward(t)); 8768: } 8768: 8768: } 8768: # 998 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: template static inline T *qGetPtrHelper(T *ptr) { return ptr; } 8768: template static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); } 8768: # 1031 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: __attribute__((visibility("default"))) QString qtTrId(const char *id, int n = -1); 8768: # 1063 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: template 8768: struct QNonConstOverload 8768: { 8768: template 8768: constexpr auto operator()(R (T::*ptr)(Args...)) const noexcept -> decltype(ptr) 8768: { return ptr; } 8768: 8768: template 8768: static constexpr auto of(R (T::*ptr)(Args...)) noexcept -> decltype(ptr) 8768: { return ptr; } 8768: }; 8768: 8768: template 8768: struct QConstOverload 8768: { 8768: template 8768: constexpr auto operator()(R (T::*ptr)(Args...) const) const noexcept -> decltype(ptr) 8768: { return ptr; } 8768: 8768: template 8768: static constexpr auto of(R (T::*ptr)(Args...) const) noexcept -> decltype(ptr) 8768: { return ptr; } 8768: }; 8768: 8768: template 8768: struct QOverload : QConstOverload, QNonConstOverload 8768: { 8768: using QConstOverload::of; 8768: using QConstOverload::operator(); 8768: using QNonConstOverload::of; 8768: using QNonConstOverload::operator(); 8768: 8768: template 8768: constexpr auto operator()(R (*ptr)(Args...)) const noexcept -> decltype(ptr) 8768: { return ptr; } 8768: 8768: template 8768: static constexpr auto of(R (*ptr)(Args...)) noexcept -> decltype(ptr) 8768: { return ptr; } 8768: }; 8768: # 1113 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: class QByteArray; 8768: __attribute__((visibility("default"))) QByteArray qgetenv(const char *varName); 8768: __attribute__((visibility("default"))) bool qputenv(const char *varName, const QByteArray& value); 8768: __attribute__((visibility("default"))) bool qunsetenv(const char *varName); 8768: 8768: __attribute__((visibility("default"))) bool qEnvironmentVariableIsEmpty(const char *varName) noexcept; 8768: __attribute__((visibility("default"))) bool qEnvironmentVariableIsSet(const char *varName) noexcept; 8768: __attribute__((visibility("default"))) int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept; 8768: 8768: inline int qIntCast(double f) { return int(f); } 8768: inline int qIntCast(float f) { return int(f); } 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) void qsrand(uint seed); 8768: __attribute__((visibility("default"))) int qrand(); 8768: # 1139 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 3 4 8768: namespace QtPrivate { 8768: 8768: template struct QEnableIf; 8768: template struct QEnableIf { typedef T Type; }; 8768: 8768: template struct QConditional { typedef T Type; }; 8768: template struct QConditional { typedef F Type; }; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 1 3 4 8768: # 41 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 1 3 4 8768: # 42 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: template 8768: class QTypeInfo 8768: { 8768: public: 8768: enum { 8768: isSpecialized = std::is_enum::value, 8768: isPointer = false, 8768: isIntegral = std::is_integral::value, 8768: isComplex = !isIntegral && !std::is_enum::value, 8768: isStatic = true, 8768: isRelocatable = std::is_enum::value, 8768: isLarge = (sizeof(T)>sizeof(void*)), 8768: isDummy = false, 8768: sizeOf = sizeof(T) 8768: }; 8768: }; 8768: 8768: template<> 8768: class QTypeInfo 8768: { 8768: public: 8768: enum { 8768: isSpecialized = true, 8768: isPointer = false, 8768: isIntegral = false, 8768: isComplex = false, 8768: isStatic = false, 8768: isRelocatable = false, 8768: isLarge = false, 8768: isDummy = false, 8768: sizeOf = 0 8768: }; 8768: }; 8768: 8768: template 8768: class QTypeInfo 8768: { 8768: public: 8768: enum { 8768: isSpecialized = true, 8768: isPointer = true, 8768: isIntegral = false, 8768: isComplex = false, 8768: isStatic = false, 8768: isRelocatable = true, 8768: isLarge = false, 8768: isDummy = false, 8768: sizeOf = sizeof(T*) 8768: }; 8768: }; 8768: # 122 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: template 8768: struct QTypeInfoQuery : public QTypeInfo 8768: { 8768: enum { isRelocatable = !QTypeInfo::isStatic }; 8768: }; 8768: 8768: 8768: template 8768: struct QTypeInfoQuery::isRelocatable || true>::type> : public QTypeInfo 8768: {}; 8768: # 153 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: template 8768: class QTypeInfoMerger 8768: { 8768: public: 8768: enum { 8768: isSpecialized = true, 8768: isComplex = QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex 8768: || QTypeInfoQuery::isComplex || QTypeInfoQuery::isComplex, 8768: isStatic = QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic 8768: || QTypeInfoQuery::isStatic || QTypeInfoQuery::isStatic, 8768: isRelocatable = QTypeInfoQuery::isRelocatable && QTypeInfoQuery::isRelocatable 8768: && QTypeInfoQuery::isRelocatable && QTypeInfoQuery7: QGenericArgument val5 = QGenericArgument(), 8737: QGenericArgument val6 = QGenericArgument(), 8737: QGenericArgument val7 = QGenericArgument(), 8737: QGenericArgument val8 = QGenericArgument(), 8737: QGenericArgument val9 = QGenericArgument()) const 8737: { 8737: return invokeOnGadget(gadget, QGenericReturnArgument(), 8737: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8737: } 8737: 8737: inline bool isValid() const { return mobj != nullptr; } 8737: 8737: template 8737: static inline QMetaMethod fromSignal(PointerToMemberFunction signal) 8737: { 8737: typedef QtPrivate::FunctionPointer SignalType; 8737: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8737: ; 8737: return fromSignalImpl(&SignalType::Object::staticMetaObject, 8737: reinterpret_cast(&signal)); 8737: } 8737: 8737: private: 8737: 8737: 8737: 8737: 8737: 8737: 8737: static QMetaMethod fromSignalImpl(const QMetaObject *, void **); 8737: 8737: const QMetaObject *mobj; 8737: uint handle; 8737: friend class QMetaMethodPrivate; 8737: friend struct QMetaObject; 8737: friend struct QMetaObjectPrivate; 8737: friend class QObject; 8737: friend bool operator==(const QMetaMethod &m1, const QMetaMethod &m2); 8737: friend bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2); 8737: }; 8737: 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"; } }; 8737: 8737: inline bool operator==(const QMetaMethod &m1, const QMetaMethod &m2) 8737: { return m1.mobj == m2.mobj && m1.handle == m2.handle; } 8737: inline bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2) 8737: { return !(m1 == m2); } 8737: 8737: class __attribute__((visibility("default"))) QMetaEnum 8737: { 8737: public: 8737: constexpr inline QMetaEnum() : mobj(nullptr), handle(0) {} 8737: 8737: const char *name() const; 8737: bool isFlag() const; 8737: bool isScoped() const; 8737: 8737: int keyCount() const; 8737: const char *key(int index) const; 8737: int value(int index) const; 8737: 8737: const char *scope() const; 8737: 8737: int keyToValue(const char *key, bool *ok = nullptr) const; 8737: const char* valueToKey(int value) const; 8737: int keysToValue(const char * keys, bool *ok = nullptr) const; 8737: QByteArray valueToKeys(int value) const; 8737: 8737: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8737: 8737: inline bool isValid() const { return name() != nullptr; } 8737: 8737: template static QMetaEnum fromType() { 8737: static_assert(bool(QtPrivate::IsQEnumHelper::Value), "QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG") 8737: ; 8737: const QMetaObject *metaObject = qt_getEnumMetaObject(T()); 8737: const char *name = qt_getEnumName(T()); 8737: return metaObject->enumerator(metaObject->indexOfEnumerator(name)); 8737: } 8737: 8737: private: 8737: const QMetaObject *mobj; 8737: uint handle; 8737: friend struct QMetaObject; 8737: }; 8737: 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"; } }; 8737: 8737: class __attribute__((visibility("default"))) QMetaProperty 8737: { 8737: public: 8737: QMetaProperty(); 8737: 8737: const char *name() const; 8737: const char *typeName() const; 8737: QVariant::Type type() const; 8737: int userType() const; 8737: int propertyIndex() const; 8737: 8737: bool isReadable() const; 8737: bool isWritable() const; 8737: bool isResettable() const; 8737: bool isDesignable(const QObject *obj = nullptr) const; 8737: bool isScriptable(const QObject *obj = nullptr) const; 8737: bool isStored(const QObject *obj = nullptr) const; 8737: bool isEditable(const QObject *obj = nullptr) const; 8737: bool isUser(const QObject *obj = nullptr) const; 8737: bool isConstant() const; 8737: bool isFinal() const; 8737: 8737: bool isFlagType() const; 8737: bool isEnumType() const; 8737: QMetaEnum enumerator() const; 8737: 8737: bool hasNotifySignal() const; 8737: QMetaMethod notifySignal() const; 8737: int notifySignalIndex() const; 8737: 8737: int revision() const; 8737: 8737: QVariant read(const QObject *obj) const; 8737: bool write(QObject *obj, const QVariant &value) const; 8737: bool reset(QObject *obj) const; 8737: 8737: QVariant readOnGadget(const void *gadget) const; 8737: bool writeOnGadget(void *gadget, const QVariant &value) const; 8737: bool resetOnGadget(void *gadget) const; 8737: 8737: bool hasStdCppSet() const; 8737: inline bool isValid() const { return isReadable(); } 8737: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8737: 8737: private: 8737: int registerPropertyType() const; 8737: 8737: const QMetaObject *mobj; 8737: uint handle; 8737: int idx; 8737: QMetaEnum menum; 8737: friend struct QMetaObject; 8737: friend struct QMetaObjectPrivate; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QMetaClassInfo 8737: { 8737: public: 8737: constexpr inline QMetaClassInfo() : mobj(nullptr), handle(0) {} 8737: const char *name() const; 8737: const char *value() const; 8737: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8737: private: 8737: const QMetaObject *mobj; 8737: uint handle; 8737: friend struct QMetaObject; 8737: }; 8737: 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"; } }; 8737: 8737: 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 1 3 4 8737: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfileinfo.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfilein::isRelocatable, 8768: isLarge = sizeof(T) > sizeof(void*), 8768: isPointer = false, 8768: isIntegral = false, 8768: isDummy = false, 8768: sizeOf = sizeof(T) 8768: }; 8768: }; 8768: # 192 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: 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) }; }; 8768: 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) }; }; 8768: 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) }; }; 8768: 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) }; }; 8768: 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) }; }; 8768: 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) }; }; 8768: # 221 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: 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) }; }; 8768: 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) }; }; 8768: 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) }; }; 8768: 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) }; }; 8768: # 236 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: enum { 8768: Q_COMPLEX_TYPE = 0, 8768: Q_PRIMITIVE_TYPE = 0x1, 8768: Q_STATIC_TYPE = 0, 8768: Q_MOVABLE_TYPE = 0x2, 8768: Q_DUMMY_TYPE = 0x4, 8768: Q_RELOCATABLE_TYPE = 0x8 8768: }; 8768: # 268 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: template class QFlags; 8768: template 8768: 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"; } }; 8768: # 300 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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 "ufo.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: 8737: 8737: class QFileDevicePrivate; 8737: 8737: class __attribute__((visibility("default"))) QFileDevice : public QIODevice 8737: { 8737: 8737: public: 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: 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: 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8737: struct QPrivateSignal {}; 8737: 8737: 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; 8737: 8737: public: 8737: enum FileError { 8737: NoError = 0, 8737: ReadError = 1, 8737: WriteError = 2, 8737: FatalError = 3, 8737: ResourceError = 4, 8737: OpenError = 5, 8737: AbortError = 6, 8737: TimeOutError = 7, 8737: UnspecifiedError = 8, 8737: RemoveError = 9, 8737: RenameError = 10, 8737: PositionError = 11, 8737: ResizeError = 12, 8737: PermissionsError = 13, 8737: CopyError = 14 8737: }; 8737: 8737: enum Permission { 8737: ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000, 8737: ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100, 8737: ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010, 8737: ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001 8737: }; 8737: typedef QFlags Permissions; 8737: 8737: enum FileHandleFlag { 8737: AutoCloseHandle = 0x0001, 8737: DontCloseHandle = 0 8737: }; 8737: typedef QFlags FileHandleFlags; 8737: 8737: ~QFileDevice(); 8737: 8737: FileError error() const; 8737: void unsetError(); 8737: 8737: virtual void close() override; 8737: 8737: bool isSequential() const override; 8737: 8737: int handle() const; 8737: virtual QString fileName() const; 8737: 8737: qint64 pos() const override; 8737: bool seek(qint64 offset) override; 8737: bool atEnd() const override; 8737: bool flush(); 8737: 8737: qint64 size() const override; 8737: 8737: virtual bool resize(qint64 sz); 8737: virtual Permissions permissions() const; 8737: virtual bool setPermissions(Permissions permissionSpec); 8737: 8737: 8737: enum MemoryMapFlags { 8737: NoOptions = 0, 8737: MapPrivateOption = 0x0001 8737: }; 8737: 8737: uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions); 8737: bool unmap(uchar *address); 8737: 8737: protected: 8737: QFileDevice(); 8737: 8737: 8737: 8737: explicit QFileDevice(QObject *parent); 8737: QFileDevice(QFileDevicePrivate &dd, QObject *parent = nullptr); 8737: 8737: 8737: qint64 readData(char *data, qint64 maxlen) override; 8737: qint64 writeData(const char *data, qint64 len) override; 8737: qint64 readLineData(char *data, qint64 maxlen) override; 8737: 8737: private: 8737: QFileDevice(const QFileDevice &) = delete; QFileDevice &operator=(const QFileDevice &) = delete; 8737: }; 8737: 8737: 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); } 8737: 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QTemporaryFile; 8737: class QFilePrivate; 8737: 8737: class __attribute__((visibility("default"))) QFile : public QFileDevice 8737: { 8737: 8737: public: 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: 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: 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: struct QPrivateSignal {}; 8737: 8737: 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; 8737: 8737: public: 8737: QFile(); 8737: QFile(const QString &name); 8737: 8737: explicit QFile(QObject *parent); 8737: QFile(const QString &name, QObject *parent); 8737: 8737: ~QFile(); 8737: 8737: QString fileName() const override; 8737: void setFileName(const QString &name); 8737: # 87 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: static inline QByteArray encodeName(const QString &fileName) 8737: { 8737: return fileName.toLocal8Bit(); 8737: } 8737: static QString decodeName(const QByteArray &localFileName) 8737: { 8737: return QString::fromLocal8Bit(localFileName); 8737: } 8737: 8737: inline static QString decodeName(const char *localFileName) 8737: { return decodeName(QByteArray(localFileName)); } 8737: # 106 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8737: bool exists() const; 8737: static bool exists(const QString &fileName); 8737: 8737: QString readLink() const; 8737: static QString readLink(const QStrishort"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 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"; } }; 8768: 8768: 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"; } }; 8768: # 331 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 3 4 8768: 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"; } }; 8768: 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"; } }; 8768: 8768: 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: # 1153 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: 8768: # 69 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: class QString; 8768: class __attribute__((visibility("default"))) QSysInfo { 8768: public: 8768: enum Sizes { 8768: WordSize = (sizeof(void *)<<3) 8768: }; 8768: # 84 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: enum Endian { 8768: BigEndian, 8768: LittleEndian 8768: 8768: 8768: 8768: 8768: 8768: 8768: , ByteOrder = LittleEndian 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: enum WinVersion { 8768: WV_None = 0x0000, 8768: 8768: WV_32s = 0x0001, 8768: WV_95 = 0x0002, 8768: WV_98 = 0x0003, 8768: WV_Me = 0x0004, 8768: WV_DOS_based= 0x000f, 8768: 8768: 8768: WV_NT = 0x0010, 8768: WV_2000 = 0x0020, 8768: WV_XP = 0x0030, 8768: WV_2003 = 0x0040, 8768: WV_VISTA = 0x0080, 8768: WV_WINDOWS7 = 0x0090, 8768: WV_WINDOWS8 = 0x00a0, 8768: WV_WINDOWS8_1 = 0x00b0, 8768: WV_WINDOWS10 = 0x00c0, 8768: WV_NT_based = 0x00f0, 8768: 8768: 8768: WV_4_0 = WV_NT, 8768: WV_5_0 = WV_2000, 8768: WV_5_1 = WV_XP, 8768: WV_5_2 = WV_2003, 8768: WV_6_0 = WV_VISTA, 8768: WV_6_1 = WV_WINDOWS7, 8768: WV_6_2 = WV_WINDOWS8, 8768: ng &fileName); 8737: inline QString symLinkTarget() const { return readLink(); } 8737: inline static QString symLinkTarget(const QString &fileName) { return readLink(fileName); } 8737: 8737: bool remove(); 8737: static bool remove(const QString &fileName); 8737: 8737: bool rename(const QString &newName); 8737: static bool rename(const QString &oldName, const QString &newName); 8737: 8737: bool link(const QString &newName); 8737: static bool link(const QString &oldname, const QString &newName); 8737: 8737: bool copy(const QString &newName); 8737: static bool copy(const QString &fileName, const QString &newName); 8737: 8737: bool open(OpenMode flags) override; 8737: bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8737: bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8737: 8737: qint64 size() const override; 8737: 8737: bool resize(qint64 sz) override; 8737: static bool resize(const QString &filename, qint64 sz); 8737: 8737: Permissions permissions() const override; 8737: static Permissions permissions(const QString &filename); 8737: bool setPermissions(Permissions permissionSpec) override; 8737: static bool setPermissions(const QString &filename, Permissions permissionSpec); 8737: 8737: protected: 8737: 8737: 8737: 8737: QFile(QFilePrivate &dd, QObject *parent = nullptr); 8737: 8737: 8737: private: 8737: friend class QTemporaryFile; 8737: QFile(const QFile &) = delete; QFile &operator=(const QFile &) = delete; 8737: }; 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfileinfo.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QDir; 8737: class QDirIteratorPrivate; 8737: class QDateTime; 8737: class QFileInfoPrivate; 8737: 8737: class __attribute__((visibility("default"))) QFileInfo 8737: { 8737: friend class QDirIteratorPrivate; 8737: public: 8737: explicit QFileInfo(QFileInfoPrivate *d); 8737: 8737: QFileInfo(); 8737: QFileInfo(const QString &file); 8737: QFileInfo(const QFile &file); 8737: QFileInfo(const QDir &dir, const QString &file); 8737: QFileInfo(const QFileInfo &fileinfo); 8737: ~QFileInfo(); 8737: 8737: QFileInfo &operator=(const QFileInfo &fileinfo); 8737: 8737: QFileInfo &operator=(QFileInfo &&other) noexcept { swap(other); return *this; } 8737: 8737: 8737: void swap(QFileInfo &other) noexcept 8737: { qSwap(d_ptr, other.d_ptr); } 8737: 8737: bool operator==(const QFileInfo &fileinfo) const; 8737: inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); } 8737: 8737: void setFile(const QString &file); 8737: void setFile(const QFile &file); 8737: void setFile(const QDir &dir, const QString &file); 8737: bool exists() const; 8737: static bool exists(const QString &file); 8737: void refresh(); 8737: 8737: QString filePath() const; 8737: QString absoluteFilePath() const; 8737: QString canonicalFilePath() const; 8737: QString fileName() const; 8737: QString baseName() const; 8737: QString completeBaseName() const; 8737: QString suffix() const; 8737: QString bundleName() const; 8737: QString completeSuffix() const; 8737: 8737: QString path() const; 8737: QString absolutePath() const; 8737: QString canonicalPath() const; 8737: QDir dir() const; 8737: QDir absoluteDir() const; 8737: 8737: bool isReadable() const; 8737: bool isWritable() const; 8737: bool isExecutable() const; 8737: bool isHidden() const; 8737: bool isNativePath() const; 8737: 8737: bool isRelative() const; 8737: inline bool isAbsolute() const { return !isRelative(); } 8737: bool makeAbsolute(); 8737: 8737: bool isFile() const; 8737: bool isDir() const; 8737: bool isSymLink() const; 8737: bool isRoot() const; 8737: bool isBundle() const; 8737: 8737: QString readLink() const; 8737: inline QString symLinkTarget() const { return readLink(); } 8737: 8737: QString owner() const; 8737: uint ownerId() const; 8737: QString group() const; 8737: uint groupId() const; 8737: 8737: bool permission(QFile::Permissions permissions) const; 8737: QFile::Permissions permissions() const; 8737: 8737: qint64 size() const; 8737: 8737: QDateTime created() const; 8737: QDateTime lastModified() const; 8737: QDateTime lastRead() const; 8737: 8737: bool caching() const; 8737: void setCaching(bool on); 8737: 8737: protected: 8737: QSharedDataPointer d_ptr; 8737: 8737: private: 8737: QFileInfoPrivate* d_func(); 8737: inline const QFileInfoPrivate* d_func() const 8737: { 8737: return d_ptr.constData(); 8737: } 8737: }; 8737: 8737: 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); } 8737: 8737: typedef QList QFileInfoList; 8737: 8737: 8737: 8737: 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; } }; 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: class QDirIterator; 8737: class QDirPrivate; 8737: 8737: class __attribute__((visibility("default"))) QDir 8737: { 8737: public: 8737: enum Filter { Dirs = 0x001, 8737: Files = 0x002, 8737: Drives = 0x004, 8737: NoSymLinks = 0x008, 8737: AllEntries = Dirs | Files | Drives, 8737: TypeMask = 0x00f, 8737: 8737: Readable = 0x010, 8737: Writable = 0x020, 8737: Executable = 0x040, 8737: PermissionMask = 0x070, 8737: 8737: Modified = 0x080, 8737: Hidden = 0x100, 8737: System = 0x200, 8737: 8737: AccessMask = 0x3F0, 8737: 8737: AllDirs = 0x400, 8737: CaseSensitive = 0x800, 8737: NoDot = 0x2000, 8737: NoDotDot = 0x4000, 8737: NoDotAndDotDot = NoDot | NoDotDot, 8737: 8737: NoFilter = -1 8737: }; 8737: typedef QFlags Filters; 8737: 8737: enum SortFlag { Name = 0x00, 8737: Time = 0x01, 8737: Size = 0x02, 8737: Unsorted = 0x03, 8737: SortByMask = 0x03, 8737: 8737: DirsFirst = 0x04, 8737: Reversed = 0x08, 8737: IgnoreCase = 0x10, 8737: DirsLast = 0x20, 8737: LocaleAware = 0x40, 8737: Type = 0x80, 8737: NoSort = -1 8737: }; 8737: typedef QFlags SortFlags; 8737: 8737: QDir(const QDir &); 8737: QDir(const QString &path = QString()); 8737: QDir(const QString &path, const QString &nameFilter, 8737: SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries); 8737: ~QDir(); 8737: 8 WV_6_3 = WV_WINDOWS8_1, 8768: WV_10_0 = WV_WINDOWS10, 8768: 8768: WV_CE = 0x0100, 8768: WV_CENET = 0x0200, 8768: WV_CE_5 = 0x0300, 8768: WV_CE_6 = 0x0400, 8768: WV_CE_based = 0x0f00 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: enum MacVersion { 8768: MV_None = 0xffff, 8768: MV_Unknown = 0x0000, 8768: 8768: 8768: MV_9 = (9 == 10 ? 0 + 2 : (9 == 9 ? 1 : 0)), 8768: MV_10_0 = (10 == 10 ? 0 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_1 = (10 == 10 ? 1 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_2 = (10 == 10 ? 2 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_3 = (10 == 10 ? 3 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_4 = (10 == 10 ? 4 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_5 = (10 == 10 ? 5 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_6 = (10 == 10 ? 6 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_7 = (10 == 10 ? 7 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_8 = (10 == 10 ? 8 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_9 = (10 == 10 ? 9 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_10 = (10 == 10 ? 10 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_11 = (10 == 10 ? 11 + 2 : (10 == 9 ? 1 : 0)), 8768: MV_10_12 = (10 == 10 ? 12 + 2 : (10 == 9 ? 1 : 0)), 8768: 8768: 8768: MV_CHEETAH = MV_10_0, 8768: MV_PUMA = MV_10_1, 8768: MV_JAGUAR = MV_10_2, 8768: MV_PANTHER = MV_10_3, 8768: MV_TIGER = MV_10_4, 8768: MV_LEOPARD = MV_10_5, 8768: MV_SNOWLEOPARD = MV_10_6, 8768: MV_LION = MV_10_7, 8768: MV_MOUNTAINLION = MV_10_8, 8768: MV_MAVERICKS = MV_10_9, 8768: MV_YOSEMITE = MV_10_10, 8768: MV_ELCAPITAN = MV_10_11, 8768: MV_SIERRA = MV_10_12, 8768: 8768: 8768: MV_IOS = 1 << 8, 8768: MV_IOS_4_3 = (QSysInfo::MV_IOS | 4 << 4 | 3), 8768: MV_IOS_5_0 = (QSysInfo::MV_IOS | 5 << 4 | 0), 8768: MV_IOS_5_1 = (QSysInfo::MV_IOS | 5 << 4 | 1), 8768: MV_IOS_6_0 = (QSysInfo::MV_IOS | 6 << 4 | 0), 8768: MV_IOS_6_1 = (QSysInfo::MV_IOS | 6 << 4 | 1), 8768: MV_IOS_7_0 = (QSysInfo::MV_IOS | 7 << 4 | 0), 8768: MV_IOS_7_1 = (QSysInfo::MV_IOS | 7 << 4 | 1), 8768: MV_IOS_8_0 = (QSysInfo::MV_IOS | 8 << 4 | 0), 8768: MV_IOS_8_1 = (QSysInfo::MV_IOS | 8 << 4 | 1), 8768: MV_IOS_8_2 = (QSysInfo::MV_IOS | 8 << 4 | 2), 8768: MV_IOS_8_3 = (QSysInfo::MV_IOS | 8 << 4 | 3), 8768: MV_IOS_8_4 = (QSysInfo::MV_IOS | 8 << 4 | 4), 8768: MV_IOS_9_0 = (QSysInfo::MV_IOS | 9 << 4 | 0), 8768: MV_IOS_9_1 = (QSysInfo::MV_IOS | 9 << 4 | 1), 8768: MV_IOS_9_2 = (QSysInfo::MV_IOS | 9 << 4 | 2), 8768: MV_IOS_9_3 = (QSysInfo::MV_IOS | 9 << 4 | 3), 8768: MV_IOS_10_0 = (QSysInfo::MV_IOS | 10 << 4 | 0), 8768: 8768: 8768: MV_TVOS = 1 << 9, 8768: MV_TVOS_9_0 = (QSysInfo::MV_TVOS | 9 << 4 | 0), 8768: MV_TVOS_9_1 = (QSysInfo::MV_TVOS | 9 << 4 | 1), 8768: MV_TVOS_9_2 = (QSysInfo::MV_TVOS | 9 << 4 | 2), 8768: MV_TVOS_10_0 = (QSysInfo::MV_TVOS | 10 << 4 | 0), 8768: 8768: 8768: MV_WATCHOS = 1 << 10, 8768: MV_WATCHOS_2_0 = (QSysInfo::MV_WATCHOS | 2 << 4 | 0), 8768: MV_WATCHOS_2_1 = (QSysInfo::MV_WATCHOS | 2 << 4 | 1), 8768: MV_WATCHOS_2_2 = (QSysInfo::MV_WATCHOS | 2 << 4 | 2), 8768: MV_WATCHOS_3_0 = (QSysInfo::MV_WATCHOS | 3 << 4 | 0) 8768: }; 8768: 8768: 8768: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: 8768: 8768: # 214 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8768: # 214 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: 8768: 8768: 8768: 8768: 8768: static const WinVersion WindowsVersion = WV_None; 8768: static WinVersion windowsVersion() { return WV_None; } 8768: 8768: 8768: 8768: 8768: 8768: static const MacVersion MacintoshVersion = MV_None; 8768: static MacVersion macVersion() { return MV_None; } 8768: 8768: 8768: # 229 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 229 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsysinfo.h" 3 4 8768: 8768: 8768: 8768: static QString buildCpuArchitecture(); 8768: static QString currentCpuArchitecture(); 8768: static QString buildAbi(); 8768: 8768: static QString kernelType(); 8768: static QString kernelVersion(); 8768: static QString productType(); 8768: static QString productVersion(); 8768: static QString prettyProductName(); 8768: 8768: static QString machineHostName(); 8768: }; 8768: 8768: 8768: 8768: 8768: # 1154 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h" 1 3 4 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h" 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QDebug; 8768: class QNoDebug; 8768: 8768: enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtInfoMsg, QtSystemMsg = QtCriticalMsg }; 8768: 8768: class QMessageLogContext 8768: { 8768: QMessageLogContext(const QMessageLogContext &) = delete; QMessageLogContext &operator=(const QMessageLogContext &) = delete; 8768: public: 8768: constexpr QMessageLogContext() 8768: : version(2), line(0), file(nullptr), function(nullptr), category(nullptr) {} 8768: constexpr QMessageLogContext(const char *fileName, int lineNumber, const char *functionName, const char *categoryName) 8768: : version(2), line(lineNumber), file(fileName), function(functionName), category(categoryName) {} 8768: 8768: void copy(const QMessageLogContext &logContext); 8768: 8768: int version; 8768: int line; 8768: const char *file; 8768: const char *function; 8768: const char *category; 8768: 8768: private: 8768: friend class QMessageLogger; 8768: friend class QDebug; 8768: }; 8768: 8768: class QLoggingCategory; 8768: 8768: class __attribute__((visibility("default"))) QMessageLogger 8768: { 8768: QMessageLogger(const QMessageLogger &) = delete; QMessageLogger &operator=(const QMessageLogger &) = delete; 8768: public: 8768: constexpr QMessageLogger() : context() {} 8768: constexpr QMessageLogger(const char *file, int line, const char *function) 8768: : context(file, line, function, "default") {} 8768: constexpr QMessageLogger(const char *file, int line, const char *function, const char *category) 8768: : context(file, line, function, category) {} 8768: 8768: void debug(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8768: void noDebug(const char *, ...) const __attribute__((format(printf, (2), (3)))) 8768: {} 8768: void info(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8768: void warning(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8768: void critical(const char *msg, ...) const __attribute__((format(printf, (2), (3)))); 8768: 8768: typedef const QLoggingCategory &(*CategoryFunction)(); 8768: 8768: void debug(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void debug(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void info(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void info(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void warning(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void warning(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void critical(const QLoggingCategory &cat, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: void c737: QDir &operator=(const QDir &); 8737: QDir &operator=(const QString &path); 8737: 8737: QDir &operator=(QDir &&other) noexcept { swap(other); return *this; } 8737: 8737: 8737: void swap(QDir &other) noexcept 8737: { qSwap(d_ptr, other.d_ptr); } 8737: 8737: void setPath(const QString &path); 8737: QString path() const; 8737: QString absolutePath() const; 8737: QString canonicalPath() const; 8737: 8737: static void addResourceSearchPath(const QString &path); 8737: 8737: static void setSearchPaths(const QString &prefix, const QStringList &searchPaths); 8737: static void addSearchPath(const QString &prefix, const QString &path); 8737: static QStringList searchPaths(const QString &prefix); 8737: 8737: QString dirName() const; 8737: QString filePath(const QString &fileName) const; 8737: QString absoluteFilePath(const QString &fileName) const; 8737: QString relativeFilePath(const QString &fileName) const; 8737: 8737: static QString toNativeSeparators(const QString &pathName); 8737: static QString fromNativeSeparators(const QString &pathName); 8737: 8737: bool cd(const QString &dirName); 8737: bool cdUp(); 8737: 8737: QStringList nameFilters() const; 8737: void setNameFilters(const QStringList &nameFilters); 8737: 8737: Filters filter() const; 8737: void setFilter(Filters filter); 8737: SortFlags sorting() const; 8737: void setSorting(SortFlags sort); 8737: 8737: uint count() const; 8737: bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot)) const; 8737: 8737: QString operator[](int) const; 8737: 8737: static QStringList nameFiltersFromString(const QString &nameFilter); 8737: 8737: QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8737: QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter, 8737: SortFlags sort = NoSort) const; 8737: 8737: QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8737: QFileInfoList entryInfoList(const QStringList &nameFilters, Filters filters = NoFilter, 8737: SortFlags sort = NoSort) const; 8737: 8737: bool mkdir(const QString &dirName) const; 8737: bool rmdir(const QString &dirName) const; 8737: bool mkpath(const QString &dirPath) const; 8737: bool rmpath(const QString &dirPath) const; 8737: 8737: bool removeRecursively(); 8737: 8737: bool isReadable() const; 8737: bool exists() const; 8737: bool isRoot() const; 8737: 8737: static bool isRelativePath(const QString &path); 8737: inline static bool isAbsolutePath(const QString &path) { return !isRelativePath(path); } 8737: bool isRelative() const; 8737: inline bool isAbsolute() const { return !isRelative(); } 8737: bool makeAbsolute(); 8737: 8737: bool operator==(const QDir &dir) const; 8737: inline bool operator!=(const QDir &dir) const { return !operator==(dir); } 8737: 8737: bool remove(const QString &fileName); 8737: bool rename(const QString &oldName, const QString &newName); 8737: bool exists(const QString &name) const; 8737: 8737: static QFileInfoList drives(); 8737: 8737: constexpr static inline QChar listSeparator() noexcept 8737: { 8737: 8737: 8737: 8737: return QLatin1Char(':'); 8737: 8737: } 8737: 8737: static QChar separator(); 8737: 8737: static bool setCurrent(const QString &path); 8737: static inline QDir current() { return QDir(currentPath()); } 8737: static QString currentPath(); 8737: 8737: static inline QDir home() { return QDir(homePath()); } 8737: static QString homePath(); 8737: static inline QDir root() { return QDir(rootPath()); } 8737: static QString rootPath(); 8737: static inline QDir temp() { return QDir(tempPath()); } 8737: static QString tempPath(); 8737: 8737: 8737: static bool match(const QStringList &filters, const QString &fileName); 8737: static bool match(const QString &filter, const QString &fileName); 8737: 8737: 8737: static QString cleanPath(const QString &path); 8737: void refresh() const; 8737: 8737: protected: 8737: explicit QDir(QDirPrivate &d); 8737: 8737: QSharedDataPointer d_ptr; 8737: 8737: private: 8737: friend class QDirIterator; 8737: 8737: QDirPrivate* d_func(); 8737: inline const QDirPrivate* d_func() const 8737: { 8737: return d_ptr.constData(); 8737: } 8737: 8737: }; 8737: 8737: 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); } 8737: 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); } 8737: 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); } 8737: 8737: 8737: class QDebug; 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QDir::Filters filters); 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, const QDir &dir); 8737: 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QScopedPointer" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 1 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QScopedPointer" 2 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QTemporaryDirPrivate; 8737: 8737: class __attribute__((visibility("default"))) QTemporaryDir 8737: { 8737: public: 8737: QTemporaryDir(); 8737: explicit QTemporaryDir(const QString &templateName); 8737: ~QTemporaryDir(); 8737: 8737: bool isValid() const; 8737: QString errorString() const; 8737: 8737: bool autoRemove() const; 8737: void setAutoRemove(bool b); 8737: bool remove(); 8737: 8737: QString path() const; 8737: QString filePath(const QString &fileName) const; 8737: 8737: private: 8737: QScopedPointer d_ptr; 8737: 8737: QTemporaryDir(const QTemporaryDir &) = delete; QTemporaryDir &operator=(const QTemporaryDir &) = delete; 8737: }; 8737: 8737: 8737: 8737: 8737: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QRegularExpression; 8737: # 231 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 3 4 8737: class QObject; 8737: class QTestData; 8737: 8737: 8737: 8737: 8737: namespace QTest 8737: { 8737: namespace Internal { 8737: 8737: template 8737: inline typename std::enable_if::Value, char*>::type toString(T e) 8737: { 8737: ritical(CategoryFunction catFunc, const char *msg, ...) const __attribute__((format(printf, (3), (4)))); 8768: 8768: 8768: __attribute__((__noreturn__)) 8768: 8768: void fatal(const char *msg, ...) const noexcept __attribute__((format(printf, (2), (3)))); 8768: 8768: 8768: QDebug debug() const; 8768: QDebug debug(const QLoggingCategory &cat) const; 8768: QDebug debug(CategoryFunction catFunc) const; 8768: QDebug info() const; 8768: QDebug info(const QLoggingCategory &cat) const; 8768: QDebug info(CategoryFunction catFunc) const; 8768: QDebug warning() const; 8768: QDebug warning(const QLoggingCategory &cat) const; 8768: QDebug warning(CategoryFunction catFunc) const; 8768: QDebug critical() const; 8768: QDebug critical(const QLoggingCategory &cat) const; 8768: QDebug critical(CategoryFunction catFunc) const; 8768: 8768: QNoDebug noDebug() const noexcept; 8768: 8768: 8768: private: 8768: QMessageLogContext context; 8768: }; 8768: # 179 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h" 3 4 8768: __attribute__((visibility("default"))) void qt_message_output(QtMsgType, const QMessageLogContext &context, 8768: const QString &message); 8768: 8768: __attribute__((visibility("default"))) void qErrnoWarning(int code, const char *msg, ...); 8768: __attribute__((visibility("default"))) void qErrnoWarning(const char *msg, ...); 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QString &); 8768: __attribute__((visibility("default"))) QtMessageHandler qInstallMessageHandler(QtMessageHandler); 8768: 8768: __attribute__((visibility("default"))) void qSetMessagePattern(const QString &messagePattern); 8768: __attribute__((visibility("default"))) QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, 8768: const QString &buf); 8768: 8768: 8768: # 1155 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 1 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 3 4 8768: 8768: 8768: class QDataStream; 8768: 8768: class QFlag 8768: { 8768: int i; 8768: public: 8768: constexpr inline QFlag(int ai) noexcept : i(ai) {} 8768: constexpr inline operator int() const noexcept { return i; } 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 3 4 8768: constexpr inline QFlag(uint ai) noexcept : i(int(ai)) {} 8768: constexpr inline QFlag(short ai) noexcept : i(int(ai)) {} 8768: constexpr inline QFlag(ushort ai) noexcept : i(int(uint(ai))) {} 8768: constexpr inline operator uint() const noexcept { return uint(i); } 8768: 8768: }; 8768: 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"; } }; 8768: 8768: class QIncompatibleFlag 8768: { 8768: int i; 8768: public: 8768: constexpr inline explicit QIncompatibleFlag(int i) noexcept; 8768: constexpr inline operator int() const noexcept { return i; } 8768: }; 8768: 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"; } }; 8768: 8768: constexpr inline QIncompatibleFlag::QIncompatibleFlag(int ai) noexcept : i(ai) {} 8768: 8768: 8768: 8768: 8768: template 8768: class QFlags 8768: { 8768: static_assert(bool((sizeof(Enum) <= sizeof(int))), "QFlags uses an int as storage, so an enum with underlying " "long long will overflow.") 8768: 8768: ; 8768: static_assert(bool((std::is_enum::value)), "QFlags is only usable on enumeration types."); 8768: 8768: struct Private; 8768: typedef int (Private::*Zero); 8768: template friend QDataStream &operator>>(QDataStream &, QFlags &); 8768: template friend QDataStream &operator<<(QDataStream &, QFlags); 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: typedef typename std::conditional< 8768: std::is_unsigned::type>::value, 8768: unsigned int, 8768: signed int 8768: >::type Int; 8768: 8768: typedef Enum enum_type; 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QFlags(Enum f) noexcept : i(Int(f)) {} 8768: constexpr inline QFlags(Zero = nullptr) noexcept : i(0) {} 8768: constexpr inline QFlags(QFlag f) noexcept : i(f) {} 8768: 8768: 8768: constexpr inline QFlags(std::initializer_list flags) noexcept 8768: : i(initializer_list_helper(flags.begin(), flags.end())) {} 8768: 8768: 8768: inline QFlags &operator&=(int mask) noexcept { i &= mask; return *this; } 8768: inline QFlags &operator&=(uint mask) noexcept { i &= mask; return *this; } 8768: inline QFlags &operator&=(Enum mask) noexcept { i &= Int(mask); return *this; } 8768: inline QFlags &operator|=(QFlags f) noexcept { i |= f.i; return *this; } 8768: inline QFlags &operator|=(Enum f) noexcept { i |= Int(f); return *this; } 8768: inline QFlags &operator^=(QFlags f) noexcept { i ^= f.i; return *this; } 8768: inline QFlags &operator^=(Enum f) noexcept { i ^= Int(f); return *this; } 8768: 8768: constexpr inline operator Int() const noexcept { return i; } 8768: 8768: constexpr inline QFlags operator|(QFlags f) const noexcept { return QFlags(QFlag(i | f.i)); } 8768: constexpr inline QFlags operator|(Enum f) const noexcept { return QFlags(QFlag(i | Int(f))); } 8768: constexpr inline QFlags operator^(QFlags f) const noexcept { return QFlags(QFlag(i ^ f.i)); } 8768: constexpr inline QFlags operator^(Enum f) const noexcept { return QFlags(QFlag(i ^ Int(f))); } 8768: constexpr inline QFlags operator&(int mask) const noexcept { return QFlags(QFlag(i & mask)); } 8768: constexpr inline QFlags operator&(uint mask) const noexcept { return QFlags(QFlag(i & mask)); } 8768: constexpr inline QFlags operator&(Enum f) const noexcept { return QFlags(QFlag(i & Int(f))); } 8768: constexpr inline QFlags operator~() const noexcept { return QFlags(QFlag(~i)); } 8768: 8768: constexpr inline bool operator!() const noexcept { return !i; } 8768: 8768: constexpr inline bool testFlag(Enum f) const noexcept { return (i & Int(f)) == Int(f) && (Int(f) != 0 || i == Int(f) ); } 8768: inline QFlags &setFlag(Enum f, bool on = true) noexcept 8768: { 8768: return on ? (*this |= f) : (*this &= ~f); 8768: } 8768: 8768: private: 8768: 8768: constexpr static inline Int initializer_list_helper(typename std::initializer_list::const_iterator it, 8768: typename std::initializer_list::const_iterator end) 8768: noexcept 8768: { 8768: return (it == end ? Int(0) : (Int(*it) | initializer_list_helper(it + 1, end))); 8768: } 8768: 8768: 8768: Int i; 8768: }; 8768: # 196 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h" 3 4 8768: 8768: # 1157 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h QMetaEnum me = QMetaEnum::fromType(); 8737: return qstrdup(me.valueToKey(int(e))); 8737: } 8737: 8737: template 8737: inline typename std::enable_if::Value, char*>::type toString(const T &) 8737: { 8737: return nullptr; 8737: } 8737: 8737: } 8737: 8737: template 8737: inline char *toString(const T &t) 8737: { 8737: return Internal::toString(t); 8737: } 8737: 8737: __attribute__((visibility("default"))) char *toHexRepresentation(const char *ba, int length); 8737: __attribute__((visibility("default"))) char *toPrettyCString(const char *unicode, int length); 8737: __attribute__((visibility("default"))) char *toPrettyUnicode(const ushort *unicode, int length); 8737: __attribute__((visibility("default"))) char *toString(const char *); 8737: __attribute__((visibility("default"))) char *toString(const void *); 8737: 8737: __attribute__((visibility("default"))) int qExec(QObject *testObject, int argc = 0, char **argv = nullptr); 8737: __attribute__((visibility("default"))) int qExec(QObject *testObject, const QStringList &arguments); 8737: 8737: __attribute__((visibility("default"))) void setMainSourcePath(const char *file, const char *builddir = nullptr); 8737: 8737: __attribute__((visibility("default"))) bool qVerify(bool statement, const char *statementStr, const char *description, 8737: const char *file, int line); 8737: __attribute__((visibility("default"))) void qFail(const char *statementStr, const char *file, int line); 8737: __attribute__((visibility("default"))) void qSkip(const char *message, const char *file, int line); 8737: __attribute__((visibility("default"))) bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode, 8737: const char *file, int line); 8737: __attribute__((visibility("default"))) void qWarn(const char *message, const char *file = nullptr, int line = 0); 8737: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const char *message); 8737: 8737: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const QRegularExpression &messagePattern); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QSharedPointer qExtractTestData(const QString &dirName); 8737: 8737: __attribute__((visibility("default"))) QString qFindTestData(const char* basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8737: __attribute__((visibility("default"))) QString qFindTestData(const QString& basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8737: 8737: __attribute__((visibility("default"))) void *qData(const char *tagName, int typeId); 8737: __attribute__((visibility("default"))) void *qGlobalData(const char *tagName, int typeId); 8737: __attribute__((visibility("default"))) void *qElementData(const char *elementName, int metaTypeId); 8737: __attribute__((visibility("default"))) QObject *testObject(); 8737: 8737: __attribute__((visibility("default"))) const char *currentAppName(); 8737: 8737: __attribute__((visibility("default"))) const char *currentTestFunction(); 8737: __attribute__((visibility("default"))) const char *currentDataTag(); 8737: __attribute__((visibility("default"))) bool currentTestFailed(); 8737: 8737: __attribute__((visibility("default"))) Qt::Key asciiToKey(char ascii); 8737: __attribute__((visibility("default"))) char keyToAscii(Qt::Key key); 8737: 8737: __attribute__((visibility("default"))) bool compare_helper(bool success, const char *failureMsg, 8737: char *val1, char *val2, 8737: const char *actual, const char *expected, 8737: const char *file, int line); 8737: __attribute__((visibility("default"))) void qSleep(int ms); 8737: __attribute__((visibility("default"))) void addColumnInternal(int id, const char *name); 8737: 8737: template 8737: inline void addColumn(const char *name, T * = nullptr) 8737: { 8737: typedef std::is_same QIsSameTConstChar; 8737: static_assert(bool(!QIsSameTConstChar::value), "const char* is not allowed as a test data format."); 8737: addColumnInternal(qMetaTypeId(), name); 8737: } 8737: __attribute__((visibility("default"))) QTestData &newRow(const char *dataTag); 8737: __attribute__((visibility("default"))) QTestData &addRow(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8737: 8737: template 8737: inline bool qCompare(T const &t1, T const &t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_helper(t1 == t2, "Compared values are not the same", 8737: toString(t1), toString(t2), actual, expected, file, line); 8737: } 8737: 8737: __attribute__((visibility("default"))) bool qCompare(float const &t1, float const &t2, 8737: const char *actual, const char *expected, const char *file, int line); 8737: 8737: __attribute__((visibility("default"))) bool qCompare(double const &t1, double const &t2, 8737: const char *actual, const char *expected, const char *file, int line); 8737: 8737: inline bool compare_ptr_helper(const volatile void *t1, const volatile void *t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return compare_helper(t1 == t2, "Compared pointers are not the same", 8737: toString(t1), toString(t2), actual, expected, file, line); 8737: } 8737: 8737: inline bool compare_ptr_helper(const volatile void *t1, std::nullptr_t, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return compare_helper(t1 == nullptr, "Compared pointers are not the same", 8737: toString(t1), toString(nullptr), actual, expected, file, line); 8737: } 8737: 8737: inline bool compare_ptr_helper(std::nullptr_t, const volatile void *t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return compare_helper(nullptr == t2, "Compared pointers are not the same", 8737: toString(nullptr), toString(t2), actual, expected, file, line); 8737: } 8737: 8737: __attribute__((visibility("default"))) bool compare_string_helper(const char *t1, const char *t2, const char *actual, 8737: const char *expected, const char *file, int line); 8737: 8737: 8737: template<> __attribute__((visibility("default"))) char *toString(const short &); 8737: template<> __attribute__((visibility("default"))) char *toString(const ushort &); 8737: template<> __attribute__((visibility("default"))) char *toString(const int &); 8737: template<> __attribute__((visibility("default"))) char *toString(const uint &); 8737: template<> __attribute__((visibility("default"))) char *toString(const long &); 8737: template<> __attribute__((visibility("default"))) char *toString(const ulong &); 8737: template<> __attribute__((visibility("default"))) char *toString(const qint64 &); 8737: template<> __attribute__((visibility("default"))) char *toString(const quint64 &); 8737: 8737: template<> __attribute__((visibility("default"))) char *toString(const float &); 8737: template<> __attribute__((visibility("default"))) char *toString(const double &); 8737: template<> __attribute__((visibility("default"))) char *toString(const char &); 8737: tem" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 1 3 4 8768: # 41 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 42 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 2 3 4 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 2 3 4 8768: 8768: 8768: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8768: template struct QAtomicOpsSupport { enum { IsSupported = 0 }; }; 8768: template<> struct QAtomicOpsSupport<4> { enum { IsSupported = 1 }; }; 8768: 8768: template struct QAtomicAdditiveType 8768: { 8768: typedef T AdditiveT; 8768: static const int AddScale = 1; 8768: }; 8768: template struct QAtomicAdditiveType 8768: { 8768: typedef qptrdiff AdditiveT; 8768: static const int AddScale = sizeof(T); 8768: }; 8768: 8768: 8768: template struct QGenericAtomicOps 8768: { 8768: template struct AtomicType { typedef T Type; typedef T *PointerType; }; 8768: 8768: template static void acquireMemoryFence(const T &_q_value) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: } 8768: template static void releaseMemoryFence(const T &_q_value) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: } 8768: template static void orderedMemoryFence(const T &) noexcept 8768: { 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T load(const T &_q_value) noexcept 8768: { 8768: return _q_value; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: void store(T &_q_value, X newValue) noexcept 8768: { 8768: _q_value = newValue; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T loadAcquire(const T &_q_value) noexcept 8768: { 8768: T tmp = *static_cast(&_q_value); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: void storeRelease(T &_q_value, X newValue) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: *static_cast(&_q_value) = newValue; 8768: } 8768: 8768: static inline constexpr bool isReferenceCountingNative() noexcept 8768: { return BaseClass::isFetchAndAddNative(); } 8768: static inline constexpr bool isReferenceCountingWaitFree() noexcept 8768: { return BaseClass::isFetchAndAddWaitFree(); } 8768: template static inline __attribute__((always_inline)) 8768: bool ref(T &_q_value) noexcept 8768: { 8768: return BaseClass::fetchAndAddRelaxed(_q_value, 1) != T(-1); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: bool deref(T &_q_value) noexcept 8768: { 8768: return BaseClass::fetchAndAddRelaxed(_q_value, -1) != 1; 8768: } 8768: # 141 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h" 3 4 8768: template static inline __attribute__((always_inline)) 8768: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue) noexcept 8768: { 8768: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: bool testAndSetAcquire(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8768: { 8768: bool tmp = BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: bool testAndSetRelease(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: bool testAndSetOrdered(T &_q_value, X expectedValue, X newValue, X *currentValue) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::testAndSetRelaxed(_q_value, expectedValue, newValue, currentValue); 8768: } 8768: 8768: static inline constexpr bool isFetchAndStoreNative() noexcept { return false; } 8768: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndStoreRelaxed(T &_q_value, X newValue) noexcept 8768: { 8768: 8768: for(;;) { 8768: T tmp = load(_q_value); 8768: if (BaseClass::testAndSetRelaxed(_q_value, tmp, newValue)) 8768: return tmp; 8768: } 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndStoreAcquire(T &_q_value, X newValue) noexcept 8768: { 8768: T tmp = BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndStoreRelease(T &_q_value, X newValue) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndStoreOrdered(T &_q_value, X newValue) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::fetchAndStoreRelaxed(_q_value, newValue); 8768: } 8768: 8768: static inline constexpr bool isFetchAndAddNative() noexcept { return false; } 8768: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: 8768: for(;;) { 8768: T tmp = BaseClass::load(_q_value); 8768: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp + valueToAdd))) 8768plate<> __attribute__((visibility("default"))) char *toString(const signed char &); 8737: template<> __attribute__((visibility("default"))) char *toString(const unsigned char &); 8737: template<> __attribute__((visibility("default"))) char *toString(const bool &); 8737: 8737: 8737: template 8737: bool qCompare(T1 const &, T2 const &, const char *, const char *, const char *, int); 8737: 8737: inline bool qCompare(double const &t1, float const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8737: } 8737: 8737: inline bool qCompare(float const &t1, double const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qCompare(const T *t1, const T *t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8737: } 8737: template 8737: inline bool qCompare(T *t1, T *t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qCompare(T *t1, std::nullptr_t, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_ptr_helper(t1, nullptr, actual, expected, file, line); 8737: } 8737: template 8737: inline bool qCompare(std::nullptr_t, T *t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_ptr_helper(nullptr, t2, actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qCompare(const T1 *t1, const T2 *t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_ptr_helper(t1, static_cast(t2), actual, expected, file, line); 8737: } 8737: template 8737: inline bool qCompare(T1 *t1, T2 *t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_ptr_helper(const_cast(t1), 8737: static_cast(const_cast(t2)), actual, expected, file, line); 8737: } 8737: inline bool qCompare(const char *t1, const char *t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return compare_string_helper(t1, t2, actual, expected, file, line); 8737: } 8737: inline bool qCompare(char *t1, char *t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return compare_string_helper(t1, t2, actual, expected, file, line); 8737: } 8737: 8737: 8737: 8737: 8737: inline bool qCompare(char *t1, const char *t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return compare_string_helper(t1, t2, actual, expected, file, line); 8737: } 8737: inline bool qCompare(const char *t1, char *t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return compare_string_helper(t1, t2, actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qTest(const T& actual, const char *elementName, const char *actualStr, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(actual, *static_cast(QTest::qElementData(elementName, 8737: qMetaTypeId())), actualStr, expected, file, line); 8737: } 8737: } 8737: 8737: 8737: 8737: 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestdata.h" 1 3 4 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestdata.h" 3 4 8737: 8737: 8737: 8737: class QTestTable; 8737: class QTestDataPrivate; 8737: 8737: class __attribute__((visibility("default"))) QTestData 8737: { 8737: public: 8737: ~QTestData(); 8737: 8737: void append(int type, const void *data); 8737: void *data(int index) const; 8737: const char *dataTag() const; 8737: QTestTable *parent() const; 8737: int dataCount() const; 8737: 8737: private: 8737: friend class QTestTable; 8737: QTestData(const char *tag, QTestTable *parent); 8737: 8737: QTestData(const QTestData &) = delete; QTestData &operator=(const QTestData &) = delete; 8737: 8737: QTestDataPrivate *d; 8737: }; 8737: 8737: template 8737: QTestData &operator<<(QTestData &data, const T &value) 8737: { 8737: data.append(qMetaTypeId(), &value); 8737: return data; 8737: } 8737: 8737: inline QTestData &operator<<(QTestData &data, const char * value) 8737: { 8737: QString str = QString::fromUtf8(value); 8737: data.append(QMetaType::QString, &str); 8737: return data; 8737: } 8737: 8737: 8737: template 8737: inline QTestData &operator<<(QTestData &data, const QStringBuilder &value) 8737: { 8737: return data << typename QConcatenable >::ConvertTo(value); 8737: } 8737: 8737: 8737: 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmarkmetric.h" 1 3 4 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmarkmetric.h" 3 4 8737: 8737: 8737: 8737: namespace QTest { 8737: 8737: enum QBenchmarkMetric { 8737: FramesPerSecond, 8737: BitsPerSecond, 8737: BytesPerSecond, 8737: WalltimeMilliseconds, 8737: CPUTicks, 8737: InstructionReads, 8737: Events, 8737: WalltimeNanoseconds, 8737: BytesAllocated, 8737: CPUMigrations, 8737: CPUCycles, 8737: BusCycles, 8737: StalledCycles, 8737: Instructions, 8737: BranchInstructions, 8737: BranchMisses, 8737: CacheReferences, 8737: CacheReads, 8737: CacheWrites, 8737: CachePrefetches, 8737: CacheMisses, 8737: CacheReadMisses, 8737: CacheWriteMisses, 8737: CachePrefetchMisses, 8737: ContextSwitches, 8737: PageFaults, 8737: MinorPageFaults, 8737: MajorPageFaults, 8737: AlignmentFaults, 8737: EmulationFaults, 8737: RefCPUCycles, 8737: }; 8737: 8737: } 8737: 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 2 3 4 8737: 8737: 8737: 8737: 8737: namespace QTest 8737: { 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 3 4 8737: class __attribute__((visibility("default"))) QBenchmarkIterationController 8737: { 8737: public: 8737: enum RunMode { RepeatUntilValidMeasurement, RunOnce }; 8737: QBenchmarkIterationController(); 8737: QBenchmarkIterationController(RunMode runMode); 8737: ~QBenchmarkIterationController(); 8737: bool isDone(); 8737: void next(); 8737: int i; 8737: }; 8737: 8737: } 8737: # 84 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 3 4 8737: namespace QTest 8737: { 8737: void __attribute__((visibility("default"))) setBenchmarkResult(qreal result, QBenchmarkMetric metric); 8737: } 8737: 8737: 8737: 8737: 8737: # 48 "/usr/include/x86_6: return tmp; 8768: } 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAddAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: T tmp = BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAddRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::fetchAndAddRelaxed(_q_value, valueToAdd); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndSubRelaxed(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8768: { 8768: 8768: return fetchAndAddRelaxed(_q_value, -operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndSubAcquire(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8768: { 8768: T tmp = BaseClass::fetchAndSubRelaxed(_q_value, operand); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndSubRelease(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndSubOrdered(T &_q_value, typename QAtomicAdditiveType::AdditiveT operand) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::fetchAndSubRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAndRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: 8768: T tmp = BaseClass::load(_q_value); 8768: for(;;) { 8768: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp & operand), &tmp)) 8768: return tmp; 8768: } 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAndAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: T tmp = BaseClass::fetchAndAndRelaxed(_q_value, operand); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAndRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndAndOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::fetchAndAndRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndOrRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: 8768: T tmp = BaseClass::load(_q_value); 8768: for(;;) { 8768: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp | operand), &tmp)) 8768: return tmp; 8768: } 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndOrAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: T tmp = BaseClass::fetchAndOrRelaxed(_q_value, operand); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndOrRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndOrOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::fetchAndOrRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndXorRelaxed(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: 8768: T tmp = BaseClass::load(_q_value); 8768: for(;;) { 8768: if (BaseClass::testAndSetRelaxed(_q_value, tmp, T(tmp ^ operand), &tmp)) 8768: return tmp; 8768: } 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndXorAcquire(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: T tmp = BaseClass::fetchAndXorRelaxed(_q_value, operand); 8768: BaseClass::acquireMemoryFence(_q_value); 8768: return tmp; 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndXorRelease(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: BaseClass::releaseMemoryFence(_q_value); 8768: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8768: } 8768: 8768: template static inline __attribute__((always_inline)) 8768: T fetchAndXorOrdered(T &_q_value, typename std::enable_if::isIntegral, T>::type operand) noexcept 8768: { 8768: BaseClass::orderedMemoryFence(_q_value); 8768: return BaseClass::fetchAndXorRelaxed(_q_value, operand); 8768: } 8768: }; 8768: 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8768: # 1 "/usr/include/c++/8/atomic" 1 3 4 8768: # 35 "/usr/include/c++/8/atomic" 3 4 8768: 8768: # 36 "/usr/include/c++/8/atomic" 3 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/atomic_base.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/atomic_base.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/atomic_base.h" 3 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h" 1 3 4 8768: # 9 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h" 3 4 8768: # 1 "/usr/include/stdint.h" 1 3 4 8768: # 26 "/usr/include/stdint.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8768: # 27 "/usr/include/stdint.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4 8768: # 29 "/usr/include/stdint.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 30 "/usr/include/stdint.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 1 3 4 8768: # 4-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h" 1 3 4 8737: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h" 3 4 8737: 8737: 8737: class QTimeZone; 8737: 8737: class __attribute__((visibility("default"))) QDate 8737: { 8737: public: 8737: enum MonthNameType { 8737: DateFormat = 0, 8737: StandaloneFormat 8737: }; 8737: private: 8737: explicit constexpr QDate(qint64 julianDay) : jd(julianDay) {} 8737: public: 8737: constexpr QDate() : jd(nullJd()) {} 8737: QDate(int y, int m, int d); 8737: 8737: constexpr bool isNull() const { return !isValid(); } 8737: constexpr bool isValid() const { return jd >= minJd() && jd <= maxJd(); } 8737: 8737: int year() const; 8737: int month() const; 8737: int day() const; 8737: int dayOfWeek() const; 8737: int dayOfYear() const; 8737: int daysInMonth() const; 8737: int daysInYear() const; 8737: int weekNumber(int *yearNum = nullptr) const; 8737: 8737: 8737: static QString shortMonthName(int month, MonthNameType type = DateFormat); 8737: static QString shortDayName(int weekday, MonthNameType type = DateFormat); 8737: static QString longMonthName(int month, MonthNameType type = DateFormat); 8737: static QString longDayName(int weekday, MonthNameType type = DateFormat); 8737: 8737: 8737: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8737: QString toString(const QString &format) const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool setDate(int year, int month, int day); 8737: 8737: 8737: void getDate(int *year, int *month, int *day); 8737: 8737: void getDate(int *year, int *month, int *day) const; 8737: 8737: [[nodiscard]] QDate addDays(qint64 days) const; 8737: [[nodiscard]] QDate addMonths(int months) const; 8737: [[nodiscard]] QDate addYears(int years) const; 8737: qint64 daysTo(const QDate &) const; 8737: 8737: constexpr bool operator==(const QDate &other) const { return jd == other.jd; } 8737: constexpr bool operator!=(const QDate &other) const { return jd != other.jd; } 8737: constexpr bool operator< (const QDate &other) const { return jd < other.jd; } 8737: constexpr bool operator<=(const QDate &other) const { return jd <= other.jd; } 8737: constexpr bool operator> (const QDate &other) const { return jd > other.jd; } 8737: constexpr bool operator>=(const QDate &other) const { return jd >= other.jd; } 8737: 8737: static QDate currentDate(); 8737: 8737: static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8737: static QDate fromString(const QString &s, const QString &format); 8737: 8737: static bool isValid(int y, int m, int d); 8737: static bool isLeapYear(int year); 8737: 8737: static constexpr inline QDate fromJulianDay(qint64 jd_) 8737: { return jd_ >= minJd() && jd_ <= maxJd() ? QDate(jd_) : QDate() ; } 8737: constexpr inline qint64 toJulianDay() const { return jd; } 8737: 8737: private: 8737: 8737: static constexpr inline qint64 nullJd() { return (std::numeric_limits::min)(); } 8737: static constexpr inline qint64 minJd() { return static_cast(-784350574879LL); } 8737: static constexpr inline qint64 maxJd() { return static_cast(784354017364LL); } 8737: 8737: qint64 jd; 8737: 8737: friend class QDateTime; 8737: friend class QDateTimePrivate; 8737: 8737: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8737: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8737: 8737: }; 8737: 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"; } }; 8737: 8737: class __attribute__((visibility("default"))) QTime 8737: { 8737: explicit constexpr QTime(int ms) : mds(ms) 8737: {} 8737: public: 8737: constexpr QTime(): mds(NullTime) 8737: {} 8737: QTime(int h, int m, int s = 0, int ms = 0); 8737: 8737: constexpr bool isNull() const { return mds == NullTime; } 8737: bool isValid() const; 8737: 8737: int hour() const; 8737: int minute() const; 8737: int second() const; 8737: int msec() const; 8737: 8737: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8737: QString toString(const QString &format) const; 8737: 8737: bool setHMS(int h, int m, int s, int ms = 0); 8737: 8737: [[nodiscard]] QTime addSecs(int secs) const; 8737: int secsTo(const QTime &) const; 8737: [[nodiscard]] QTime addMSecs(int ms) const; 8737: int msecsTo(const QTime &) const; 8737: 8737: constexpr bool operator==(const QTime &other) const { return mds == other.mds; } 8737: constexpr bool operator!=(const QTime &other) const { return mds != other.mds; } 8737: constexpr bool operator< (const QTime &other) const { return mds < other.mds; } 8737: constexpr bool operator<=(const QTime &other) const { return mds <= other.mds; } 8737: constexpr bool operator> (const QTime &other) const { return mds > other.mds; } 8737: constexpr bool operator>=(const QTime &other) const { return mds >= other.mds; } 8737: 8737: static constexpr inline QTime fromMSecsSinceStartOfDay(int msecs) { return QTime(msecs); } 8737: constexpr inline int msecsSinceStartOfDay() const { return mds == NullTime ? 0 : mds; } 8737: 8737: static QTime currentTime(); 8737: 8737: static QTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8737: static QTime fromString(const QString &s, const QString &format); 8737: 8737: static bool isValid(int h, int m, int s, int ms = 0); 8737: 8737: void start(); 8737: int restart(); 8737: int elapsed() const; 8737: private: 8737: enum TimeFlag { NullTime = -1 }; 8737: constexpr inline int ds() const { return mds == -1 ? 0 : mds; } 8737: int mds; 8737: 8737: friend class QDateTime; 8737: friend class QDateTimePrivate; 8737: 8737: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8737: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8737: 8737: }; 8737: 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"; } }; 8737: 8737: class QDateTimePrivate; 8737: 8737: class __attribute__((visibility("default"))) QDateTime 8737: { 8737: 8737: struct ShortData { 8737: 8737: quintptr status : 8; 8737: 8737: 8737: qintptr msecs : sizeof(void *) * 8 - 8; 8737: 8737: 8737: 8737: 8737: }; 8737: 8737: union Data { 8737: enum { 8737: 8737: 8737: 8737: CanBeSmall = sizeof(ShortData) * 8 > 50 8737: }; 8737: 8737: Data(); 8737: Data(Qt::TimeSpec); 8737: Data(const Data &other); 8737: Data(Data &&other); 8737: Data &operator=(const Data &other); 8737: ~Data(); 8737: 8737: bool isShort() const; 8737: void detach(); 8737: 8737: cons24 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 3 4 8768: typedef __uint8_t uint8_t; 8768: typedef __uint16_t uint16_t; 8768: typedef __uint32_t uint32_t; 8768: typedef __uint64_t uint64_t; 8768: # 38 "/usr/include/stdint.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: typedef signed char int_least8_t; 8768: typedef short int int_least16_t; 8768: typedef int int_least32_t; 8768: 8768: typedef long int int_least64_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef unsigned char uint_least8_t; 8768: typedef unsigned short int uint_least16_t; 8768: typedef unsigned int uint_least32_t; 8768: 8768: typedef unsigned long int uint_least64_t; 8768: # 68 "/usr/include/stdint.h" 3 4 8768: typedef signed char int_fast8_t; 8768: 8768: typedef long int int_fast16_t; 8768: typedef long int int_fast32_t; 8768: typedef long int int_fast64_t; 8768: # 81 "/usr/include/stdint.h" 3 4 8768: typedef unsigned char uint_fast8_t; 8768: 8768: typedef unsigned long int uint_fast16_t; 8768: typedef unsigned long int uint_fast32_t; 8768: typedef unsigned long int uint_fast64_t; 8768: # 97 "/usr/include/stdint.h" 3 4 8768: typedef long int intptr_t; 8768: 8768: 8768: typedef unsigned long int uintptr_t; 8768: # 111 "/usr/include/stdint.h" 3 4 8768: typedef __intmax_t intmax_t; 8768: typedef __uintmax_t uintmax_t; 8768: # 10 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdint.h" 2 3 4 8768: # 37 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8768: # 1 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/atomic_lockfree_defines.h" 3 8768: # 38 "/usr/include/c++/8/bits/atomic_base.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 55 "/usr/include/c++/8/bits/atomic_base.h" 3 8768: typedef enum memory_order 8768: { 8768: memory_order_relaxed, 8768: memory_order_consume, 8768: memory_order_acquire, 8768: memory_order_release, 8768: memory_order_acq_rel, 8768: memory_order_seq_cst 8768: } memory_order; 8768: 8768: enum __memory_order_modifier 8768: { 8768: __memory_order_mask = 0x0ffff, 8768: __memory_order_modifier_mask = 0xffff0000, 8768: __memory_order_hle_acquire = 0x10000, 8768: __memory_order_hle_release = 0x20000 8768: }; 8768: 8768: constexpr memory_order 8768: operator|(memory_order __m, __memory_order_modifier __mod) 8768: { 8768: return memory_order(__m | int(__mod)); 8768: } 8768: 8768: constexpr memory_order 8768: operator&(memory_order __m, __memory_order_modifier __mod) 8768: { 8768: return memory_order(__m & int(__mod)); 8768: } 8768: 8768: 8768: constexpr memory_order 8768: __cmpexch_failure_order2(memory_order __m) noexcept 8768: { 8768: return __m == memory_order_acq_rel ? memory_order_acquire 8768: : __m == memory_order_release ? memory_order_relaxed : __m; 8768: } 8768: 8768: constexpr memory_order 8768: __cmpexch_failure_order(memory_order __m) noexcept 8768: { 8768: return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask) 8768: | (__m & __memory_order_modifier_mask)); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: atomic_thread_fence(memory_order __m) noexcept 8768: { __atomic_thread_fence(__m); } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: atomic_signal_fence(memory_order __m) noexcept 8768: { __atomic_signal_fence(__m); } 8768: 8768: 8768: template 8768: inline _Tp 8768: kill_dependency(_Tp __y) noexcept 8768: { 8768: _Tp __ret(__y); 8768: return __ret; 8768: } 8768: 8768: 8768: 8768: template 8768: struct __atomic_base; 8768: 8768: 8768: 8768: 8768: template 8768: struct atomic; 8768: 8768: template 8768: struct atomic<_Tp*>; 8768: 8768: 8768: 8768: typedef bool __atomic_flag_data_type; 8768: # 148 "/usr/include/c++/8/bits/atomic_base.h" 3 8768: extern "C" { 8768: 8768: struct __atomic_flag_base 8768: { 8768: __atomic_flag_data_type _M_i; 8768: }; 8768: 8768: } 8768: 8768: 8768: 8768: 8768: struct atomic_flag : public __atomic_flag_base 8768: { 8768: atomic_flag() noexcept = default; 8768: ~atomic_flag() noexcept = default; 8768: atomic_flag(const atomic_flag&) = delete; 8768: atomic_flag& operator=(const atomic_flag&) = delete; 8768: atomic_flag& operator=(const atomic_flag&) volatile = delete; 8768: 8768: 8768: constexpr atomic_flag(bool __i) noexcept 8768: : __atomic_flag_base{ _S_init(__i) } 8768: { } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: test_and_set(memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return __atomic_test_and_set (&_M_i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return __atomic_test_and_set (&_M_i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: clear(memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: __atomic_clear (&_M_i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: clear(memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: __atomic_clear (&_M_i, __m); 8768: } 8768: 8768: private: 8768: static constexpr __atomic_flag_data_type 8768: _S_init(bool __i) 8768: { return __i ? 1 : 0; } 8768: }; 8768: # 237 "/usr/include/c++/8/bits/atomic_base.h" 3 8768: template 8768: struct __atomic_base 8768: { 8768: private: 8768: typedef _ITp __int_type; 8768: 8768: static constexpr int _S_alignment = 8768: sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp); 8768: 8768: alignas(_S_alignment) __int_type _M_i; 8768: 8768: public: 8768: __atomic_base() noexcept = default; 8768: ~__atomic_base() noexcept = default; 8768: __atomic_base(const __atomic_base&) = delete; 8768: __atomic_base& operator=(const __atomic_base&) = delete; 8768: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8768: 8768: 8768: constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { } 8768: 8768: operator __int_type() const noexcept 8768: { return load(); } 8768: 8768: operator __int_type() const volatile noexcept 8768: { return load(); } 8768: 8768: __int_type 8768: operator=(__int_type __i) noexcept 8768: { 8768: store(__i); 8768: return __i; 8768: } 8768: 8768: __int_type 8768: operator=(__int_type __i) volatile noexcept 8768: { 8768: store(__i); 8768: return __i; 8768: } 8768: 8768: __int_type 8768: operator++(int) noexcept 8768: { return fetch_add(1); } 8768: 8768: __int_type 8768: operator++(int) volatile noexcept 8768: { return fetch_add(1); } 8768: 8768: __int_type 8768: operator--(int) noexcept 8768: { return fetch_sub(1); } 8768: 8768: __int_type 8768: operator--(int) volatile noexcept 8768: { return fetch_sub(1); } 8768: 8768: __int_type 8768: operator++() noexcept 8768: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator++() volatile noexcept 8768: { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator--() noexcept 8768: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator--() volatile noexcept 8768: { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator+=(__int_type __i) noexcept 8768: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator+=(__int_type __i) volatile noexcept 8768: { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator-=(__int_type __i) noexcept 8768: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator-=(__int_type __i) volatile noexcept 8768: { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator&=(__int_type __i) noexcept 8768: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator&=(__int_type __i) volatile noexcept 8768: { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator|=(__int_type __i) noexcept 8768: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator|=(__int_type __i) volatile noexcept 8768: { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator^=(__int_type __i) noexcept 8768: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: __int_type 8768: operator^=(__int_type __i) volatile noexcept 8768: { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); } 8768: 8768: bool 8768: is_lock_free() const noexcept 8768: { 8768: 8768: return __atomic_is_lock_free(sizeof(_M_i), 8768: reinterpret_cast(-__alignof(_M_i))); 8768: } 8768: 8768: bool 8768: is_lock_free() const volatile noexcept 8768: { 8768: 8768: return __atomic_is_lock_free(sizeof(_M_i), 8768: reinterpret_cast(-__alignof(_M_i))); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: __atomic_store_n(&_M_i, __i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: store(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: __atomic_store_n(&_M_i, __i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: load(memory_order __m = memory_order_seq_cst) const noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: 8768: return __atomic_load_n(&_M_i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: 8768: return __atomic_load_n(&_M_i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: exchange(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return __atomic_exchange_n(&_M_i, __i, __m); 8768: } 8768: 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: exchange(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return __atomic_exchange_n(&_M_i, __i, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8768: memory_order __m1, memory_order __m2) noexcept 8768: { 8768: memory_order __b2 = __m2 & __memory_order_mask; 8768: memory_order __b1 = __m1 & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8768: memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { 8768: memory_order __b2 = __m2 & __memory_order_mask; 8768: memory_order __b1 = __m1 & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return compare_exchange_weak(__i1, __i2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_weak(__int_type& __i1, __int_type __i2, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return compare_exchange_weak(__i1, __i2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8768: memory_order __m1, memory_order __m2) noexcept 8768: { 8768: memory_order __b2 = __m2 & __memory_order_mask; 8768: memory_order __b1 = __m1 & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8768: memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { 8768: memory_order __b2 = __m2 & __memory_order_mask; 8768: memory_order __b1 = __m1 & __memory_order_mask; 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return compare_exchange_strong(__i1, __i2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_strong(__int_type& __i1, __int_type __i2, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return compare_exchange_strong(__i1, __i2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_add(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_add(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_add(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_add(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_sub(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_sub(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_sub(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_and(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_and(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_and(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_and(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_or(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_or(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_or(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_or(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_xor(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8768: 8768: inline __attribute__((__always_inline__)) __int_type 8768: fetch_xor(__int_type __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_xor(&_M_i, __i, __m); } 8768: }; 8768: 8768: 8768: 8768: template 8768: struct __atomic_base<_PTp*> 8768: { 8768: private: 8768: typedef _PTp* __pointer_type; 8768: 8768: __pointer_type _M_p; 8768: 8768: 8768: constexpr ptrdiff_t 8768: _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); } 8768: 8768: constexpr ptrdiff_t 8768: _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); } 8768: 8768: public: 8768: __atomic_base() noexcept = default; 8768: ~__atomic_base() noexcept = default; 8768: __atomic_base(const __atomic_base&) = delete; 8768: __atomic_base& operator=(const __atomic_base&) = delete; 8768: __atomic_base& operator=(const __atomic_base&) volatile = delete; 8768: 8768: 8768: constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { } 8768: 8768: operator __pointer_type() const noexcept 8768: { return load(); } 8768: 8768: operator __pointer_type() const volatile noexcept 8768: { return load(); } 8768: 8768: __pointer_type 8768: operator=(__pointer_type __p) noexcept 8768: { 8768: store(__p); 8768: return __p; 8768: } 8768: 8768: __pointer_type 8768: operator=(__pointer_type __p) volatile noexcept 8768: { 8768: store(__p); 8768: return __p; 8768: } 8768: 8768: __pointer_type 8768: operator++(int) noexcept 8768: { return fetch_add(1); } 8768: 8768: __pointer_type 8768: operator++(int) volatile noexcept 8768: { return fetch_add(1); } 8768: 8768: __pointer_type 8768: operator--(int) noexcept 8768: { return fetch_sub(1); } 8768: 8768: __pointer_type 8768: operator--(int) volatile noexcept 8768: { return fetch_sub(1); } 8768: 8768: __pointer_type 8768: operator++() noexcept 8768: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator++() volatile noexcept 8768: { return __atomic_add_fetch(&_M_p, _M_type_size(1), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator--() noexcept 8768: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator--() volatile noexcept 8768: { return __atomic_sub_fetch(&_M_p, _M_type_size(1), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator+=(ptrdiff_t __d) noexcept 8768: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator+=(ptrdiff_t __d) volatile noexcept 8768: { return __atomic_add_fetch(&_M_p, _M_type_size(__d), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator-=(ptrdiff_t __d) noexcept 8768: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8768: memory_order_seq_cst); } 8768: 8768: __pointer_type 8768: operator-=(ptrdiff_t __d) volatile noexcept 8768: { return __atomic_sub_fetch(&_M_p, _M_type_size(__d), 8768: memory_order_seq_cst); } 8768: 8768: bool 8768: is_lock_free() const noexcept 8768: { 8768: 8768: return __atomic_is_lock_free(sizeof(_M_p), 8768: reinterpret_cast(-__alignof(_M_p))); 8768: } 8768: 8768: bool 8768: is_lock_free() const volatile noexcept 8768: { 8768: 8768: return __atomic_is_lock_free(sizeof(_M_p), 8768: reinterpret_cast(-__alignof(_M_p))); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: store(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: __atomic_store_n(&_M_p, __p, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) void 8768: store(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: __atomic_store_n(&_M_p, __p, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: load(memory_order __m = memory_order_seq_cst) const noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: 8768: return __atomic_load_n(&_M_p, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8768: { 8768: memory_order __b = __m & __memory_order_mask; 8768: ; 8768: ; 8768: 8768: return __atomic_load_n(&_M_p, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: exchange(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return __atomic_exchange_n(&_M_p, __p, __m); 8768: } 8768: 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: exchange(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return __atomic_exchange_n(&_M_p, __p, __m); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m1, 8768: memory_order __m2) noexcept 8768: { 8768: memory_order __b2 = __m2 & __memory_order_mask; 8768: memory_order __b1 = __m1 & __memory_order_mask; 8768: ; 8768: ; 8768: ; 8768: 8768: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) bool 8768: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { 8768: memory_order __b2 = __m2 & __memory_order_mask; 8768: memory_order __b1 = __m1 & __memory_order_mask; 8768: 8768: ; 8768: ; 8768: ; 8768: 8768: return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); 8768: } 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: fetch_add(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: fetch_add(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } 8768: 8768: inline __attribute__((__always_inline__)) _t QDateTimePrivate *operator->() const; 8737: QDateTimePrivate *operator->(); 8737: 8737: QDateTimePrivate *d; 8737: ShortData data; 8737: }; 8737: 8737: public: 8737: QDateTime() noexcept(Data::CanBeSmall); 8737: explicit QDateTime(const QDate &); 8737: QDateTime(const QDate &, const QTime &, Qt::TimeSpec spec = Qt::LocalTime); 8737: 8737: QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec, int offsetSeconds); 8737: 8737: QDateTime(const QDate &date, const QTime &time, const QTimeZone &timeZone); 8737: 8737: QDateTime(const QDateTime &other) noexcept; 8737: QDateTime(QDateTime &&other) noexcept; 8737: ~QDateTime(); 8737: 8737: 8737: QDateTime &operator=(QDateTime &&other) noexcept { swap(other); return *this; } 8737: 8737: QDateTime &operator=(const QDateTime &other) noexcept; 8737: 8737: void swap(QDateTime &other) noexcept { qSwap(d.d, other.d.d); } 8737: 8737: bool isNull() const; 8737: bool isValid() const; 8737: 8737: QDate date() const; 8737: QTime time() const; 8737: Qt::TimeSpec timeSpec() const; 8737: int offsetFromUtc() const; 8737: 8737: QTimeZone timeZone() const; 8737: 8737: QString timeZoneAbbreviation() const; 8737: bool isDaylightTime() const; 8737: 8737: qint64 toMSecsSinceEpoch() const; 8737: qint64 toSecsSinceEpoch() const; 8737: 8737: void setDate(const QDate &date); 8737: void setTime(const QTime &time); 8737: void setTimeSpec(Qt::TimeSpec spec); 8737: void setOffsetFromUtc(int offsetSeconds); 8737: 8737: void setTimeZone(const QTimeZone &toZone); 8737: 8737: void setMSecsSinceEpoch(qint64 msecs); 8737: void setSecsSinceEpoch(qint64 secs); 8737: 8737: 8737: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8737: QString toString(const QString &format) const; 8737: 8737: [[nodiscard]] QDateTime addDays(qint64 days) const; 8737: [[nodiscard]] QDateTime addMonths(int months) const; 8737: [[nodiscard]] QDateTime addYears(int years) const; 8737: [[nodiscard]] QDateTime addSecs(qint64 secs) const; 8737: [[nodiscard]] QDateTime addMSecs(qint64 msecs) const; 8737: 8737: QDateTime toTimeSpec(Qt::TimeSpec spec) const; 8737: inline QDateTime toLocalTime() const { return toTimeSpec(Qt::LocalTime); } 8737: inline QDateTime toUTC() const { return toTimeSpec(Qt::UTC); } 8737: QDateTime toOffsetFromUtc(int offsetSeconds) const; 8737: 8737: QDateTime toTimeZone(const QTimeZone &toZone) const; 8737: 8737: 8737: qint64 daysTo(const QDateTime &) const; 8737: qint64 secsTo(const QDateTime &) const; 8737: qint64 msecsTo(const QDateTime &) const; 8737: 8737: bool operator==(const QDateTime &other) const; 8737: inline bool operator!=(const QDateTime &other) const { return !(*this == other); } 8737: bool operator<(const QDateTime &other) const; 8737: inline bool operator<=(const QDateTime &other) const { return !(other < *this); } 8737: inline bool operator>(const QDateTime &other) const { return other < *this; } 8737: inline bool operator>=(const QDateTime &other) const { return !(*this < other); } 8737: 8737: 8737: void setUtcOffset(int seconds); 8737: int utcOffset() const; 8737: 8737: 8737: static QDateTime currentDateTime(); 8737: static QDateTime currentDateTimeUtc(); 8737: 8737: static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8737: static QDateTime fromString(const QString &s, const QString &format); 8737: 8737: 8737: 8737: uint toTime_t() const; 8737: void setTime_t(uint secsSince1Jan1970UTC); 8737: static QDateTime fromTime_t(uint secsSince1Jan1970UTC); 8737: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, Qt::TimeSpec spec, 8737: int offsetFromUtc = 0); 8737: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, const QTimeZone &timeZone); 8737: 8737: 8737: static QDateTime fromMSecsSinceEpoch(qint64 msecs); 8737: 8_pointer_type 8768: fetch_sub(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8768: 8768: inline __attribute__((__always_inline__)) __pointer_type 8768: fetch_sub(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } 8768: }; 8768: 8768: 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/atomic" 2 3 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 57 "/usr/include/c++/8/atomic" 3 8768: template 8768: struct atomic; 8768: 8768: 8768: 8768: template<> 8768: struct atomic 8768: { 8768: private: 8768: __atomic_base _M_base; 8768: 8768: public: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(bool __i) noexcept : _M_base(__i) { } 8768: 8768: bool 8768: operator=(bool __i) noexcept 8768: { return _M_base.operator=(__i); } 8768: 8768: bool 8768: operator=(bool __i) volatile noexcept 8768: { return _M_base.operator=(__i); } 8768: 8768: operator bool() const noexcept 8768: { return _M_base.load(); } 8768: 8768: operator bool() const volatile noexcept 8768: { return _M_base.load(); } 8768: 8768: bool 8768: is_lock_free() const noexcept { return _M_base.is_lock_free(); } 8768: 8768: bool 8768: is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); } 8768: 8768: 8768: 8768: 8768: 8768: void 8768: store(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8768: { _M_base.store(__i, __m); } 8768: 8768: void 8768: store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { _M_base.store(__i, __m); } 8768: 8768: bool 8768: load(memory_order __m = memory_order_seq_cst) const noexcept 8768: { return _M_base.load(__m); } 8768: 8768: bool 8768: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8768: { return _M_base.load(__m); } 8768: 8768: bool 8768: exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_base.exchange(__i, __m); } 8768: 8768: bool 8768: exchange(bool __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_base.exchange(__i, __m); } 8768: 8768: bool 8768: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8768: memory_order __m2) noexcept 8768: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_weak(bool& __i1, bool __i2, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8768: 8768: bool 8768: compare_exchange_weak(bool& __i1, bool __i2, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_base.compare_exchange_weak(__i1, __i2, __m); } 8768: 8768: bool 8768: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8768: memory_order __m2) noexcept 8768: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_strong(bool& __i1, bool __i2, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8768: 8768: bool 8768: compare_exchange_strong(bool& __i1, bool __i2, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_base.compare_exchange_strong(__i1, __i2, __m); } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct atomic 8768: { 8768: private: 8768: 8768: static constexpr int _S_min_alignment 8768: = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 8768: ? 0 : sizeof(_Tp); 8768: 8768: static constexpr int _S_alignment 8768: = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); 8768: 8768: alignas(_S_alignment) _Tp _M_i; 8768: 8768: static_assert(__is_trivially_copyable(_Tp), 8768: "std::atomic requires a trivially copyable type"); 8768: 8768: static_assert(sizeof(_Tp) > 0, 8768: "Incomplete or zero-sized types are not supported"); 8768: 8768: public: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(_Tp __i) noexcept : _M_i(__i) { } 8768: 8768: operator _Tp() const noexcept 8768: { return load(); } 8768: 8768: operator _Tp() const volatile noexcept 8768: { return load(); } 8768: 8768: _Tp 8768: operator=(_Tp __i) noexcept 8768: { store(__i); return __i; } 8768: 8768: _Tp 8768: operator=(_Tp __i) volatile noexcept 8768: { store(__i); return __i; } 8768: 8768: bool 8768: is_lock_free() const noexcept 8768: { 8768: 8768: return __atomic_is_lock_free(sizeof(_M_i), 8768: reinterpret_cast(-__alignof(_M_i))); 8768: } 8768: 8768: bool 8768: is_lock_free() const volatile noexcept 8768: { 8768: 8768: return __atomic_is_lock_free(sizeof(_M_i), 8768: reinterpret_cast(-__alignof(_M_i))); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: store(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8768: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8768: 8768: void 8768: store(_Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { __atomic_store(std::__addressof(_M_i), std::__addressof(__i), __m); } 8768: 8768: _Tp 8768: load(memory_order __m = memory_order_seq_cst) const noexcept 8768: { 8768: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8768: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8768: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8768: return *__ptr; 8768: } 8768: 8768: _Tp 8768: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8768: { 8768: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8768: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8768: __atomic_load(std::__addressof(_M_i), __ptr, __m); 8768: return *__ptr; 8768: } 8768: 8768: _Tp 8768: exchange(_Tp __i, memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8768: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8768: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8768: __ptr, __m); 8768: return *__ptr; 8768: } 8768: 8768: _Tp 8768: exchange(_Tp __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: alignas(_Tp) unsigned char __buf[sizeof(_Tp)]; 8768: _Tp* __ptr = reinterpret_cast<_Tp*>(__buf); 8768: __atomic_exchange(std::__addressof(_M_i), std::__addressof(__i), 8768: __ptr, __m); 8768: return *__ptr; 8768: } 8768: 8768: bool 8768: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8768: 737: static QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetFromUtc = 0); 8737: static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime, int offsetFromUtc = 0); 8737: 8737: 8737: static QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone); 8737: static QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone); 8737: 8737: 8737: static qint64 currentMSecsSinceEpoch() noexcept; 8737: static qint64 currentSecsSinceEpoch() noexcept; 8737: # 366 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h" 3 4 8737: private: 8737: friend class QDateTimePrivate; 8737: 8737: Data d; 8737: 8737: 8737: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8737: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8737: 8737: 8737: 8737: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8737: 8737: }; 8737: 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); } 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDate &); 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QTime &); 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) uint qHash(const QDateTime &key, uint seed = 0); 8737: __attribute__((visibility("default"))) uint qHash(const QDate &key, uint seed = 0) noexcept; 8737: __attribute__((visibility("default"))) uint qHash(const QTime &key, uint seed = 0) noexcept; 8737: 8737: 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 1 3 4 8737: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 3 4 8737: 8737: 8737: 8737: class QUrlQuery; 8737: class QUrlPrivate; 8737: class QDataStream; 8737: 8737: template 8737: class QUrlTwoFlags 8737: { 8737: int i; 8737: typedef int QUrlTwoFlags:: *Zero; 8737: public: 8737: constexpr inline QUrlTwoFlags(E1 f) : i(f) {} 8737: constexpr inline QUrlTwoFlags(E2 f) : i(f) {} 8737: constexpr inline QUrlTwoFlags(QFlag f) : i(f) {} 8737: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8737: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8737: constexpr inline QUrlTwoFlags(Zero = 0) : i(0) {} 8737: 8737: inline QUrlTwoFlags &operator&=(int mask) { i &= mask; return *this; } 8737: inline QUrlTwoFlags &operator&=(uint mask) { i &= mask; return *this; } 8737: inline QUrlTwoFlags &operator|=(QUrlTwoFlags f) { i |= f.i; re[ 93%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/load.cpp.o turn *this; } 8737: inline QUrlTwoFlags &operator|=(E1 f) { i |= f; return *this; } 8737: inline QUrlTwoFlags &operator|=(E2 f) { i |= f; return *this; } 8737: inline QUrlTwoFlags &operator^=(QUrlTwoFlags f) { i ^= f.i; return *this; } 8737: inline QUrlTwoFlags &operator^=(E1 f) { i ^= f; return *this; } 8737: inline QUrlTwoFlags &operator^=(E2 f) { i ^= f; return *this; } 8737: 8737: constexpr inline operator QFlags() const { return QFlag(i); } 8737: constexpr inline operator QFlags() const { return QFlag(i); } 8737: constexpr inline operator int() const { return i; } 8737: constexpr inline bool operator!() const { return !i; } 8737: 8737: constexpr inline QUrlTwoFlags operator|(QUrlTwoFlags f) const 8737: { return QUrlTwoFlags(QFlag(i | f.i)); } 8737: constexpr inline QUrlTwoFlags operator|(E1 f) const 8737: { return QUrlTwoFlags(QFlag(i | f)); } 8737: constexpr inline QUrlTwoFlags operator|(E2 f) const 8737: { return QUrlTwoFlags(QFlag(i | f)); } 8737: constexpr inline QUrlTwoFlags operator^(QUrlTwoFlags f) const 8737: { return QUrlTwoFlags(QFlag(i ^ f.i)); } 8737: constexpr inline QUrlTwoFlags operator^(E1 f) const 8737: { return QUrlTwoFlags(QFlag(i ^ f)); } 8737: constexpr inline QUrlTwoFlags operator^(E2 f) const 8737: { return QUrlTwoFlags(QFlag(i ^ f)); } 8737: constexpr inline QUrlTwoFlags operator&(int mask) const 8737: { return QUrlTwoFlags(QFlag(i & mask)); } 8737: constexpr inline QUrlTwoFlags operator&(uint mask) const 8737: { return QUrlTwoFlags(QFlag(i & mask)); } 8737: constexpr inline QUrlTwoFlags operator&(E1 f) const 8737: { return QUrlTwoFlags(QFlag(i & f)); } 8737: constexpr inline QUrlTwoFlags operator&(E2 f) const 8737: { return QUrlTwoFlags(QFlag(i & f)); } 8737: constexpr inline QUrlTwoFlags operator~() const 8737: { return QUrlTwoFlags(QFlag(~i)); } 8737: 8737: constexpr inline bool testFlag(E1 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8737: constexpr inline bool testFlag(E2 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8737: }; 8737: 8737: template 8737: class QTypeInfo > : public QTypeInfoMerger, E1, E2> {}; 8737: 8737: class QUrl; 8737: 8737: __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed = 0) noexcept; 8737: 8737: class __attribute__((visibility("default"))) QUrl 8737: { 8737: public: 8737: enum ParsingMode { 8737: TolerantMode, 8737: StrictMode, 8737: DecodedMode 8737: }; 8737: 8737: 8737: enum UrlFormattingOption { 8737: None = 0x0, 8737: RemoveScheme = 0x1, 8737: RemovePassword = 0x2, 8737: RemoveUserInfo = RemovePassword | 0x4, 8737: RemovePort = 0x8, 8737: RemoveAuthority = RemoveUserInfo | RemovePort | 0x10, 8737: RemovePath = 0x20, 8737: RemoveQuery = 0x40, 8737: RemoveFragment = 0x80, 8737: 8737: PreferLocalFile = 0x200, 8737: StripTrailingSlash = 0x400, 8737: RemoveFilename = 0x800, 8737: NormalizePathSegments = 0x1000 8737: }; 8737: 8737: enum ComponentFormattingOption { 8737: PrettyDecoded = 0x000000, 8737: EncodeSpaces = 0x100000, 8737: EncodeUnicode = 0x200000, 8737: EncodeDelimiters = 0x400000 | 0x800000, 8737: EncodeReserved = 0x1000000, 8737: DecodeReserved = 0x2000000, 8737: 8737: 8737: FullyEncoded = EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved, 8737: FullyDecoded = FullyEncoded | DecodeReserved | 0x4000000 8737: }; 8737: typedef QFlags ComponentFormattingOptions; 8737: # 173 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 3 4 8737: typedef QUrlTwoFlags FormattingOptions; 8737: 8737: 8737: QUrl(); 8737: QUrl(const QUrl ©); 8737: QUrl &operator =(const QUrl &co memory_order __f) noexcept 8768: { 8768: return __atomic_compare_exchange(std::__addressof(_M_i), 8768: std::__addressof(__e), 8768: std::__addressof(__i), 8768: true, __s, __f); 8768: } 8768: 8768: bool 8768: compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 8768: memory_order __f) volatile noexcept 8768: { 8768: return __atomic_compare_exchange(std::__addressof(_M_i), 8768: std::__addressof(__e), 8768: std::__addressof(__i), 8768: true, __s, __f); 8768: } 8768: 8768: bool 8768: compare_exchange_weak(_Tp& __e, _Tp __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return compare_exchange_weak(__e, __i, __m, 8768: __cmpexch_failure_order(__m)); } 8768: 8768: bool 8768: compare_exchange_weak(_Tp& __e, _Tp __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return compare_exchange_weak(__e, __i, __m, 8768: __cmpexch_failure_order(__m)); } 8768: 8768: bool 8768: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8768: memory_order __f) noexcept 8768: { 8768: return __atomic_compare_exchange(std::__addressof(_M_i), 8768: std::__addressof(__e), 8768: std::__addressof(__i), 8768: false, __s, __f); 8768: } 8768: 8768: bool 8768: compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 8768: memory_order __f) volatile noexcept 8768: { 8768: return __atomic_compare_exchange(std::__addressof(_M_i), 8768: std::__addressof(__e), 8768: std::__addressof(__i), 8768: false, __s, __f); 8768: } 8768: 8768: bool 8768: compare_exchange_strong(_Tp& __e, _Tp __i, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return compare_exchange_strong(__e, __i, __m, 8768: __cmpexch_failure_order(__m)); } 8768: 8768: bool 8768: compare_exchange_strong(_Tp& __e, _Tp __i, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return compare_exchange_strong(__e, __i, __m, 8768: __cmpexch_failure_order(__m)); } 8768: }; 8768: 8768: 8768: 8768: template 8768: struct atomic<_Tp*> 8768: { 8768: typedef _Tp* __pointer_type; 8768: typedef __atomic_base<_Tp*> __base_type; 8768: __base_type _M_b; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__pointer_type __p) noexcept : _M_b(__p) { } 8768: 8768: operator __pointer_type() const noexcept 8768: { return __pointer_type(_M_b); } 8768: 8768: operator __pointer_type() const volatile noexcept 8768: { return __pointer_type(_M_b); } 8768: 8768: __pointer_type 8768: operator=(__pointer_type __p) noexcept 8768: { return _M_b.operator=(__p); } 8768: 8768: __pointer_type 8768: operator=(__pointer_type __p) volatile noexcept 8768: { return _M_b.operator=(__p); } 8768: 8768: __pointer_type 8768: operator++(int) noexcept 8768: { return _M_b++; } 8768: 8768: __pointer_type 8768: operator++(int) volatile noexcept 8768: { return _M_b++; } 8768: 8768: __pointer_type 8768: operator--(int) noexcept 8768: { return _M_b--; } 8768: 8768: __pointer_type 8768: operator--(int) volatile noexcept 8768: { return _M_b--; } 8768: 8768: __pointer_type 8768: operator++() noexcept 8768: { return ++_M_b; } 8768: 8768: __pointer_type 8768: operator++() volatile noexcept 8768: { return ++_M_b; } 8768: 8768: __pointer_type 8768: operatorpy); 8737: 8737: explicit QUrl(const QString &url, ParsingMode mode = TolerantMode); 8737: 8737: 8737: 8737: 8737: 8737: QUrl(QUrl &&other) noexcept : d(other.d) 8737: { other.d = nullptr; } 8737: inline QUrl &operator=(QUrl &&other) noexcept 8737: { qSwap(d, other.d); return *this; } 8737: 8737: ~QUrl(); 8737: 8737: inline void swap(QUrl &other) noexcept { qSwap(d, other.d); } 8737: 8737: void setUrl(const QString &url, ParsingMode mode = TolerantMode); 8737: QString url(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8737: QString toString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8737: QString toDisplayString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8737: [[nodiscard]] QUrl adjusted(FormattingOptions options) const; 8737: 8737: QByteArray toEncoded(FormattingOptions options = FullyEncoded) const; 8737: static QUrl fromEncoded(const QByteArray &url, ParsingMode mode = TolerantMode); 8737: 8737: enum UserInputResolutionOption { 8737: DefaultResolution, 8737: AssumeLocalFile 8737: }; 8737: typedef QFlags UserInputResolutionOptions; 8737: 8737: static QUrl fromUserInput(const QString &userInput); 8737: 8737: static QUrl fromUserInput(const QString &userInput, const QString &workingDirectory, 8737: UserInputResolutionOptions options = DefaultResolution); 8737: 8737: bool isValid() const; 8737: QString errorString() const; 8737: 8737: bool isEmpty() const; 8737: void clear(); 8737: 8737: void setScheme(const QString &scheme); 8737: QString scheme() const; 8737: 8737: void setAuthority(const QString &authority, ParsingMode mode = TolerantMode); 8737: QString authority(ComponentFormattingOptions options = PrettyDecoded) const; 8737: 8737: void setUserInfo(const QString &userInfo, ParsingMode mode = TolerantMode); 8737: QString userInfo(ComponentFormattingOptions options = PrettyDecoded) const; 8737: 8737: void setUserName(const QString &userName, ParsingMode mode = DecodedMode); 8737: QString userName(ComponentFormattingOptions options = FullyDecoded) const; 8737: 8737: void setPassword(const QString &password, ParsingMode mode = DecodedMode); 8737: QString password(ComponentFormattingOptions = FullyDecoded) const; 8737: 8737: void setHost(const QString &host, ParsingMode mode = DecodedMode); 8737: QString host(ComponentFormattingOptions = FullyDecoded) const; 8737: 8737: QString topLevelDomain(ComponentFormattingOptions options = FullyDecoded) const; 8737: 8737: 8737: void setPort(int port); 8737: int port(int defaultPort = -1) const; 8737: 8737: void setPath(const QString &path, ParsingMode mode = DecodedMode); 8737: QString path(ComponentFormattingOptions options = FullyDecoded) const; 8737: QString fileName(ComponentFormattingOptions options = FullyDecoded) const; 8737: 8737: bool hasQuery() const; 8737: void setQuery(const QString &query, ParsingMode mode = TolerantMode); 8737: void setQuery(const QUrlQuery &query); 8737: QString query(ComponentFormattingOptions = PrettyDecoded) const; 8737: 8737: bool hasFragment() const; 8737: QString fragment(ComponentFormattingOptions options = PrettyDecoded) const; 8737: void setFragment(const QString &fragment, ParsingMode mode = TolerantMode); 8737: 8737: [[nodiscard]] QUrl resolved(const QUrl &relative) const; 8737: 8737: bool isRelative() const; 8737: bool isParentOf(const QUrl &url) const; 8737: 8737: bool isLocalFile() const; 8737: static QUrl fromLocalFile(const QString &localfile); 8737: QString toLocalFile() const; 8737: 8737: void detach(); 8737: bool isDetached() const; 8737: 8737: bool operator <(const QUrl &url) const; 8737: bool operator ==(const QUrl &url) const; 8737: bool operator !=(const QUrl &url) const; 8737: 8737: bool matches(const QUrl &url, For--() noexcept 8768: { return --_M_b; } 8768: 8768: __pointer_type 8768: operator--() volatile noexcept 8768: { return --_M_b; } 8768: 8768: __pointer_type 8768: operator+=(ptrdiff_t __d) noexcept 8768: { return _M_b.operator+=(__d); } 8768: 8768: __pointer_type 8768: operator+=(ptrdiff_t __d) volatile noexcept 8768: { return _M_b.operator+=(__d); } 8768: 8768: __pointer_type 8768: operator-=(ptrdiff_t __d) noexcept 8768: { return _M_b.operator-=(__d); } 8768: 8768: __pointer_type 8768: operator-=(ptrdiff_t __d) volatile noexcept 8768: { return _M_b.operator-=(__d); } 8768: 8768: bool 8768: is_lock_free() const noexcept 8768: { return _M_b.is_lock_free(); } 8768: 8768: bool 8768: is_lock_free() const volatile noexcept 8768: { return _M_b.is_lock_free(); } 8768: 8768: 8768: 8768: 8768: 8768: void 8768: store(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_b.store(__p, __m); } 8768: 8768: void 8768: store(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_b.store(__p, __m); } 8768: 8768: __pointer_type 8768: load(memory_order __m = memory_order_seq_cst) const noexcept 8768: { return _M_b.load(__m); } 8768: 8768: __pointer_type 8768: load(memory_order __m = memory_order_seq_cst) const volatile noexcept 8768: { return _M_b.load(__m); } 8768: 8768: __pointer_type 8768: exchange(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_b.exchange(__p, __m); } 8768: 8768: __pointer_type 8768: exchange(__pointer_type __p, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_b.exchange(__p, __m); } 8768: 8768: bool 8768: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m1, memory_order __m2) noexcept 8768: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return compare_exchange_weak(__p1, __p2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: bool 8768: compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return compare_exchange_weak(__p1, __p2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: bool 8768: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m1, memory_order __m2) noexcept 8768: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m1, 8768: memory_order __m2) volatile noexcept 8768: { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); } 8768: 8768: bool 8768: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { 8768: return _M_b.compare_exchange_strong(__p1, __p2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: bool 8768: compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { 8768: return _M_b.compare_exchange_strong(__p1, mattingOptions options) const; 8737: 8737: static QString fromPercentEncoding(const QByteArray &); 8737: static QByteArray toPercentEncoding(const QString &, 8737: const QByteArray &exclude = QByteArray(), 8737: const QByteArray &include = QByteArray()); 8737: # 353 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 3 4 8737: private: 8737: static QString fromEncodedComponent_helper(const QByteArray &ba); 8737: 8737: public: 8737: static QString fromAce(const QByteArray &); 8737: static QByteArray toAce(const QString &); 8737: static QStringList idnWhitelist(); 8737: static QStringList toStringList(const QList &uris, FormattingOptions options = FormattingOptions(PrettyDecoded)); 8737: static QList fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode); 8737: 8737: static void setIdnWhitelist(const QStringList &); 8737: friend __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed) noexcept; 8737: 8737: private: 8737: QUrlPrivate *d; 8737: friend class QUrlQuery; 8737: 8737: public: 8737: typedef QUrlPrivate * DataPtr; 8737: inline DataPtr &data_ptr() { return d; } 8737: }; 8737: 8737: 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); } 8737: 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); } 8737: 8737: 8737: 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::UrlFormattingOption f2) 8737: { return QUrl::FormattingOptions(f1) | f2; } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::FormattingOptions f2) 8737: { return f2 | f1; } 8737: constexpr inline QIncompatibleFlag operator|(QUrl::UrlFormattingOption f1, int f2) 8737: { return QIncompatibleFlag(int(f1) | f2); } 8737: 8737: 8737: inline QUrl::FormattingOptions &operator|=(QUrl::FormattingOptions &i, QUrl::ComponentFormattingOptions f) 8737: { i |= QUrl::UrlFormattingOption(int(f)); return i; } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOption f) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOptions f) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::UrlFormattingOption i) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::UrlFormattingOption i) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::FormattingOptions i, QUrl::ComponentFormattingOptions f) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: __p2, __m, 8768: __cmpexch_failure_order(__m)); 8768: } 8768: 8768: __pointer_type 8768: fetch_add(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_b.fetch_add(__d, __m); } 8768: 8768: __pointer_type 8768: fetch_add(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_b.fetch_add(__d, __m); } 8768: 8768: __pointer_type 8768: fetch_sub(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) noexcept 8768: { return _M_b.fetch_sub(__d, __m); } 8768: 8768: __pointer_type 8768: fetch_sub(ptrdiff_t __d, 8768: memory_order __m = memory_order_seq_cst) volatile noexcept 8768: { return _M_b.fetch_sub(__d, __m); } 8768: }; 8768: 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef char __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef signed char __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept= default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef unsigned char __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept= default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef short __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef unsigned short __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::FormattingOptions i) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::FormattingOptions i) 8737: { return i | QUrl::UrlFormattingOption(int(f)); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUrl &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUrl &); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUrl &); 8737: 8737: 8737: 8737: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 1 3 4 8737: # 63 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QUuid 8737: { 8737: public: 8737: enum Variant { 8737: VarUnknown =-1, 8737: NCS = 0, 8737: DCE = 2, 8737: Microsoft = 6, 8737: Reserved = 7 8737: }; 8737: 8737: enum Version { 8737: VerUnknown =-1, 8737: Time = 1, 8737: EmbeddedPOSIX = 2, 8737: Md5 = 3, 8737: Name = Md5, 8737: Random = 4, 8737: Sha1 = 5 8737: }; 8737: 8737: 8737: constexpr QUuid() noexcept : data1(0), data2(0), data3(0), data4{0,0,0,0,0,0,0,0} {} 8737: 8737: constexpr QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, 8737: uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) noexcept 8737: : data1(l), data2(w1), data3(w2), data4{b1, b2, b3, b4, b5, b6, b7, b8} {} 8737: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8737: QUuid(const QString &); 8737: QUuid(const char *); 8737: QString toString() const; 8737: QUuid(const QByteArray &); 8737: QByteArray toByteArray() const; 8737: QByteArray toRfc4122() const; 8737: static QUuid fromRfc4122(const QByteArray &); 8737: bool isNull() const noexcept; 8737: 8737: bool operator==(const QUuid &orig) const noexcept 8737: { 8737: if (data1 != orig.data1 || data2 != orig.data2 || 8737: data3 != orig.data3) 8737: return false; 8737: 8737: for (uint i = 0; i < 8; i++) 8737: if (data4[i] != orig.data4[i]) 8737: return false; 8737: 8737: return true; 8737: } 8737: 8737: bool operator!=(const QUuid &orig) const noexcept 8737: { 8737: return !(*this == orig); 8737: } 8737: 8737: bool operator<(const QUuid &other) const noexcept; 8737: bool operator>(const QUuid &other) const noexcept; 8737: # 189 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8737: static QUuid createUuid(); 8737: 8737: static QUuid createUuidV3(const QUuid &ns, const QByteArray &baseData); 8737: static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData); 8737: static inline QUuid createUuidV3(const QUuid &ns, const QString &baseData) 8737: { 8737: return QUuid::createUuidV3(ns, baseData.toUtf8()); 8737: } 8737: 8737: static inline QUuid createUuidV5(const QUuid &ns, const QString &baseData) 8737: { 8737: return QUuid::createUuidV5(ns, baseData.toUtf8()); 8737: } 8737: 8737: 8737: 8737: QUuid::Variant variant() const noexcept; 8737: QUuid::Version version() const noexcept; 8737: # 215 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8737: uint data1; 8737: ushort data2; 8737: ushort data3; 8737: uchar data4[8]; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUuid &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUuid &); 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUuid &); 8737: 8737: 8737: __attribute__((visibility("default"))) uint qHash(const QUuid &uuid, uint seed = 0) noexcept; 8737: 8737: inline bool operator<=(const QUuid &lhs, const QUuid &rhs) noexcept 8737: { return !(rhs < lhs); } 8737: inline bool operator>=(const QUuid &lhs, const QUuid &rhs) noexcept 8737: { return !(lhs < rhs); } 8737: 8737: 8737: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpoint.h" 1 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpoint.h" 3 4 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QPoint 8737: { 8737: public: 8737: constexpr QPoint(); 8737: constexpr QPoint(int xpos, int ypos); 8737: 8737: constexpr inline bool isNull() const; 8737: 8737: constexpr inline int x() const; 8737: constexpr inline int y() const; 8737: inline void setX(int x); 8737: inline void setY(int y); 8737: 8737: constexpr inline int manhattanLength() const; 8737: 8737: inline int &rx(); 8737: inline int &ry(); 8737: 8737: inline QPoint &operator+=(const QPoint &p); 8737: inline QPoint &operator-=(const QPoint &p); 8737: 8737: inline QPoint &operator*=(float factor); 8737: inline QPoint &operator*=(double factor); 8737: inline QPoint &operator*=(int factor); 8737: 8737: inline QPoint &operator/=(qreal divisor); 8737: 8737: constexpr static inline int dotProduct(const QPoint &p1, const QPoint &p2) 8737: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8737: 8737: friend constexpr inline bool operator==(const QPoint &, const QPoint &); 8737: friend constexpr inline bool operator!=(const QPoint &, const QPoint &); 8737: friend constexpr inline const QPoint operator+(const QPoint &, const QPoint &); 8737: friend constexpr inline const QPoint operator-(const QPoint &, const QPoint &); 8737: friend constexpr inline const QPoint operator*(const QPoint &, float); 8737: friend constexpr inline const QPoint operator*(float, const QPoint &); 8737: friend constexpr inline const QPoint operator*(const QPoint &, double); 8737: friend constexpr inline const QPoint operator*(double, const QPoint &); 8737: friend constexpr inline const QPoint operator*(const QPoint &, int); 8737: friend constexpr inline const QPoint operator*(int, const QPoint &); 8737: friend constexpr inline const QPoint operator+(const QPoint &); 8737: friend constexpr inline const QPoint operator-(const QPoint &); 8737: friend constexpr inline const QPoint operator/(const QPoint &, qreal); 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: friend class QTransform; 8737: int xp; 8737: int yp; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPoint &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPoint &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QPoint::QPoint() : xp(0), yp(0) {} 8737: 8737: constexpr inline QPoint::QPoint(int xpos, int ypos) : xp(xpos), yp(ypos) {} 8737: 8737: constexpr inline bool QPoint::isNull() const 8737: { return xp == 0 && yp == 0; } 8737: 8737: constexpr inline int QPoint::x() const 8737: { return xp; } 8737: 8737: constexpr inline int QPoint::y() const 8737: { return yp; } 8737: 8737: inline void QPoint::setX(int xpos) 8737: { xp = xpos; } 8737: 8737: inline void QPoint::setY(int ypos) 8737: { yp = ypos; } 8737: 8737: inline int constexpr QPoint::manhattanLength() const 8737: { return qAbs(x())+qAbs(y()); } 8737: 8737: inline int &QPoint::rx() 8737: { return xp; } 8737: 8737: inline int &QPoint::ry() 8737: { return yp; } 8737: 8737: inline QPoint &QPoint::operator+=(const QPoint &p) 8737: { xp+=p.xp; yp+=p.yp; return *this; } 8737: 8737: inline QPoint &QPoint::operator-=(const QPoint &p) 8737: { xp-=p.xp; yp-=p.yp; return *this; } 8737: 8737: inline QPoint &QPoint::operator*=(float factor) 8737: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8737: 8737: inline QPoint &QPoint::operator*=(double factor) 8737: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8737: 8737: inline QPoint &QPoint::operator*=(int factor) 8737: { xp = xp*factor; yp = yp*factor; return *this; } 8737: 8737: constexpr inline bool operator==(const QPoint &p1, const QPoint &p2) 8737: { return p1.xp == p2.xp && p1.yp == p2.yp; } 8737: 8737: constexpr inline bool operator!=(const QPoint &p1, const QPoint &p2) 8737: { return p1.xp != p2.xp || p1.yp != p2.yp; } 8737: 8737: constexpr inline const QPoint operator+(const QPoint &p1, const QPoint &p2) 8737: { return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); } 8737: 8737: constexpr inline const QPoint operator-(const QPoint &p1, const QPoint &p2) 8737: { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } 8737: 8737: constexpr inline const QPoint operator*(const QPoint &p, float factor) 8737: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8737: 8737: constexpr inline const QPoint operator*(const QPoint &p, double factor) 8737: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8737: 8737: constexpr inline const QPoint operator*(const QPoint &p, int factor) 8737: { return QPoint(p.xp*factor, p.yp*factor); } 8737: 8737: constexpr inline const QPoint operator*(float factor, const QPoint &p) 8737: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8737: 8737: constexpr inline const QPoint operator*(double factor, const QPoint &p) 8737: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8737: 8737: constexpr inline const QPoint operator*(int factor, const QPoint &p) 8737: { return QPoint(p.xp*factor, p.yp*factor); } 8737: 8737: constexpr inline const QPoint operator+(const QPoint &p) 8737: { return p; } 8737: 8737: constexpr inline const QPoint operator-(const QPoint &p) 8737: { return QPoint(-p.xp, -p.yp); } 8737: 8737: inline QPoint &QPoint::operator/=(qreal c) 8737: { 8737: xp = qRound(xp/c); 8737: yp = qRound(yp/c); 8737: return *this; 8737: } 8737: 8737: constexpr inline const QPoint operator/(const QPoint &p, qreal c) 8737: { 8737: return QPoint(qRound(p.xp/c), qRound(p.yp/c)); 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QPoint &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QPointF 8737: { 8737: public: 8737: constexpr QPointF(); 8737: constexpr QPointF(const QPoint &p); 8737: constexpr QPointF(qreal xpos, qreal ypos); 8737: 8737: constexpr inline qreal manhattanLength() const; 8737: 8737: inline bool isNull() const; 8737: 8737: constexpr inline qreal x() const; 8737: constexpr inline qreal y() const; 8737: inline void setX(qreal x); 8737: inline void setY(qreal y); 8737: 8737: inline qreal &rx(); 8737: inline qreal &ry(); 8737: 8737: inline QPointF &operator+=(const QPointF &p); 8737: inline QPointF &operator-=(const QPointF &p); 8737: inline QPointF &operator*=(qreal c); 8737: inline QPointF &operator/=(qreal c); 8737: 8737: constexpr static inline qreal dotProduct(const QPointF &p1, const QPointF &p2) 8737: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8737: 8737: friend constexpr inline bool operator==(const QPointF &, const QPointF &); 8737: friend constexpr inline bool operator!=(const QPointF &, const QPointF &); 8737: friend constexpr inline const QPointF operator+(const QPointF &, const QPointF &); 8737: friend constexpr inline const QPointF operator-(const QPointF &, const QPointF &); 8737: friend constexpr inline const QPointF operator*(qreal, const QPointF &); 8737: friend constexpr inline const QPointF operator*(const QPointF &, qreal); 8737: friend constexpr inline const QPointF operator+(const QPointF &); 8737: friend constexpr inline const QPointF operator-(const QPointF &); 8737: friend constexpr inline const QPointF operator/(const QPointF &, qreal); 8737: 8737: constexpr QPoint toPoint() const; 8737: 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: friend class QMatrix; 8737: friend class QTransform; 8737: 8737: qreal xp; 8737: qreal yp; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPointF &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPointF &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QPointF::QPointF() : xp(0), yp(0) { } 8737: 8737: constexpr inline QPointF::QPointF(qreal xpos, qreal ypos) : xp(xpos), yp(ypos) { } 8737: 8737: constexpr inline QPointF::QPointF(const QPoint &p) : xp(p.x()), yp(p.y()) { } 8737: 8737: constexpr inline qreal QPointF::manhattanLength() const 8737: { 8737: return qAbs(x())+qAbs(y()); 8737: } 8737: 8737: inline bool QPointF::isNull() const 8737: { 8737: return qIsNull(xp) && qIsNull(yp); 8737: } 8737: 8737: constexpr inline qreal QPointF::x() const 8737: { 8737: return xp; 8737: } 8737: 8737: constexpr inline qreal QPointF::y() const 8737: { 8737: return yp; 8737: } 8737: 8737: inline void QPointF::setX(qreal xpos) 8737: { 8737: xp = xpos; 8737: } 8737: 8737: inline void QPointF::setY(qreal ypos) 8737: { 8737: yp = ypos; 8737: } 8737: 8737: inline qreal &QPointF::rx() 8737: { 8737: return xp; 8737: } 8737: 8737: inline qreal &QPointF::ry() 8737: { 8737: return yp; 8737: } 8737: 8737: inline QPointF &QPointF::operator+=(const QPointF &p) 8737: { 8737: xp+=p.xp; 8737: yp+=p.yp; 8737: return *this; 8737: } 8737: 8737: inline QPointF &QPointF::operator-=(const QPointF &p) 8737: { 8737: xp-=p.xp; yp-=p.yp; return *this; 8737: } 8737: 8737: inline QPointF &QPointF::operator*=(qreal c) 8737: { 8737: xp*=c; yp*=c; return *this; 8737: } 8737: 8737: constexpr inline bool operator==(const QPointF &p1, const QPointF &p2) 8737: { 8737: return qFuzzyIsNull(p1.xp - p2.xp) && qFuzzyIsNull(p1.yp - p2.yp); 8737: } 8737: 8737: constexpr inline bool operator!=(const QPointF &p1, const QPointF &p2) 8737: { 8737: return !qFuzzyIsNull(p1.xp - p2.xp) || !qFuzzyIsNull(p1.yp - p2.yp); 8737: } 8737: 8737: constexpr inline const QPointF operator+(const QPointF &p1, const QPointF &p2) 8737: { 8737: return QPointF(p1.xp+p2.xp, p1.yp+p2.yp); 8737: } 8737: 8737: constexpr inline const QPointF operator-(const QPointF &p1, const QPointF &p2) 8737: { 8737: return QPointF(p1.xp-p2.xp, p1.yp-p2.yp); 8737: } 8737: 8737: constexpr inline const QPointF operator*(const QPointF &p, qreal c) 8737: { 8737: return QPointF(p.xp*c, p.yp*c); 8737: } 8737: 8737: constexpr inline const QPointF operator*(qreal c, const QPointF &p) 8737: { 8737: return QPointF(p.xp*c, p.yp*c); 8737: } 8737: 8737: constexpr inline const QPointF operator+(const QPointF &p) 8737: { 8737: return p; 8737: } 8737: 8737: constexpr inline const QPointF operator-(const QPointF &p) 8737: { 8737: return QPointF(-p.xp, -p.yp); 8737: } 8737: 8737: inline QPointF &QPointF::operator/=(qreal divisor) 8737: { 8737: xp/=divisor; 8737: yp/=divisor; 8737: return *this; 8737: } 8737: 8737: constexpr inline const QPointF operator/(const QPointF &p, qreal divisor) 8737: { 8737: return QPointF(p.xp/divisor, p.yp/divisor); 8737: } 8737: 8737: constexpr inline QPoint QPointF::toPoint() const 8737: { 8737: return QPoint(qRound(xp), qRound(yp)); 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug d, const QPointF &p); 8737: 8737: 8737: 8737: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h" 1 3 4 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h" 3 4 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QSize 8737: { 8737: public: 8737: constexpr QSize() noexcept; 8737: constexpr QSize(int w, int h) noexcept; 8737: 8737: constexpr inline bool isNull() const noexcept; 8737: constexpr inline bool isEmpty() const noexcept; 8737: constexpr inline bool isValid() const noexcept; 8737: 8737: constexpr inline int width() const noexcept; 8737: constexpr inline int height() const noexcept; 8737: inline void setWidth(int w) noexcept; 8737: inline void setHeight(int h) noexcept; 8737: void transpose() noexcept; 8737: [[nodiscard]] constexpr inline QSize transposed() const noexcept; 8737: 8737: inline void scale(int w, int h, Qt::AspectRatioMode mode) noexcept; 8737: inline void scale(const QSize &s, Qt::AspectRatioMode mode) noexcept; 8737: [[nodiscard]] QSize scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept; 8737: [[nodiscard]] QSize scaled(const QSize &s, Qt::AspectRatioMode mode) const noexcept; 8737: 8737: [[nodiscard]] constexpr inline QSize expandedTo(const QSize &) const noexcept; 8737: [[nodiscard]] constexpr inline QSize boundedTo(const QSize &) const noexcept; 8737: 8737: inline int &rwidth() noexcept; 8737: inline int &rheight() noexcept; 8737: 8737: inline QSize &operator+=(const QSize &) noexcept; 8737: inline QSize &operator-=(const QSize &) noexcept; 8737: inline QSize &operator*=(qreal c) noexcept; 8737: inline QSize &operator/=(qreal c); 8737: 8737: friend inline constexpr bool operator==(const QSize &, const QSize &) noexcept; 8737: friend inline constexpr bool operator!=(const QSize &, const QSize &) noexcept; 8737: friend inline constexpr const QSize operator+(const QSize &, const QSize &) noexcept; 8737: friend inline constexpr const QSize operator-(const QSize &, const QSize &) noexcept; 8737: friend inline constexpr const QSize operator*(const QSize &, qreal) noexcept; 8737: friend inline constexpr const QSize operator*(qreal, const QSize &) noexcept; 8737: friend inline const QSize operator/(const QSize &, qreal); 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: int wd; 8737: int ht; 8737: }; 8737: 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"; } }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSize &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSize &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QSize::QSize() noexcept : wd(-1), ht(-1) {} 8737: 8737: constexpr inline QSize::QSize(int w, int h) noexcept : wd(w), ht(h) {} 8737: 8737: constexpr inline bool QSize::isNull() const noexcept 8737: { return wd==0 && ht==0; } 8737: 8737: constexpr inline bool QSize::isEmpty() const noexcept 8737: { return wd<1 || ht<1; } 8737: 8737: constexpr inline bool QSize::isValid() const noexcept 8737: { return wd>=0 && ht>=0; } 8737: 8737: constexpr inline int QSize::width() const noexcept 8737: { return wd; } 8737: 8737: constexpr inline int QSize::height() const noexcept 8737: { return ht; } 8737: 8737: inline void QSize::setWidth(int w) noexcept 8737: { wd = w; } 8737: 8737: inline void QSize::setHeight(int h) noexcept 8737: { ht = h; } 8737: 8737: constexpr inline QSize QSize::transposed() const noexcept 8737: { return QSize(ht, wd); } 8737: 8737: inline void QSize::scale(int w, int h, Qt::AspectRatioMode mode) noexcept 8737: { scale(QSize(w, h), mode); } 8737: 8737: inline void QSize::scale(const QSize &s, Qt::AspectRatioMode mode) noexcept 8737: { *this = scaled(s, mode); } 8737: 8737: inline QSize QSize::scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept 8737: { return scaled(QSize(w, h), mode); } 8737: 8737: inline int &QSize::rwidth() noexcept 8737: { return wd; } 8737: 8737: inline int &QSize::rheight() noexcept 8737: { return ht; } 8737: 8737: inline QSize &QSize::operator+=(const QSize &s) noexcept 8737: { wd+=s.wd; ht+=s.ht; return *this; } 8737: 8737: inline QSize &QSize::operator-=(const QSize &s) noexcept 8737: { wd-=s.wd; ht-=s.ht; return *this; } 8737: 8737: inline QSize &QSize::operator*=(qreal c) noexcept 8737: { wd = qRound(wd*c); ht = qRound(ht*c); return *this; } 8737: 8737: constexpr inline bool operator==(const QSize &s1, const QSize &s2) noexcept 8737: { return s1.wd == s2.wd && s1.ht == s2.ht; } 8737: 8737: constexpr inline bool operator!=(const QSize &s1, const QSize &s2) noexcept 8737: { return s1.wd != s2.wd || s1.ht != s2.ht; } 8737: 8737: constexpr inline const QSize operator+(const QSize & s1, const QSize & s2) noexcept 8737: { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } 8737: 8737: constexpr inline const QSize operator-(const QSize &s1, const QSize &s2) noexcept 8737: { return QSize(s1.wd-s2.wd, s1.ht-s2.ht); } 8737: 8737: constexpr inline const QSize operator*(const QSize &s, qreal c) noexcept 8737: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8737: 8737: constexpr inline const QSize operator*(qreal c, const QSize &s) noexcept 8737: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8737: 8737: inline QSize &QSize::operator/=(qreal c) 8737: { 8737: do { } while ((false) && (!qFuzzyIsNull(c))); 8737: wd = qRound(wd/c); ht = qRound(ht/c); 8737: return *this; 8737: } 8737: 8737: inline const QSize operator/(const QSize &s, qreal c) 8737: { 8737: do { } while ((false) && (!qFuzzyIsNull(c))); 8737: return QSize(qRound(s.wd/c), qRound(s.ht/c)); 8737: } 8737: 8737: constexpr inline QSize QSize::expandedTo(const QSize & otherSize) const noexcept 8737: { 8737: return QSize(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8737: } 8737: 8737: constexpr inline QSize QSize::boundedTo(const QSize & otherSize) const noexcept 8737: { 8737: return QSize(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSize &); 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QSizeF 8737: { 8737: public: 8737: constexpr QSizeF() noexcept; 8737: constexpr QSizeF(const QSize &sz) noexcept; 8737: constexpr QSizeF(qreal w, qreal h) noexcept; 8737: 8737: inline bool isNull() const noexcept; 8737: constexpr inline bool isEmpty() const noexcept; 8737: constexpr inline bool isValid() const noexcept; 8737: 8737: constexpr inline qreal width() const noexcept; 8737: constexpr inline qreal height() const noexcept; 8737: inline void setWidth(qreal w) noexcept; 8737: inline void setHeight(qreal h) noexcept; 8737: void transpose() noexcept; 8737: [[nodiscard]] constexpr inline QSizeF transposed() const noexcept; 8737: 8737: inline void scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept; 8737: inline void scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept; 8737: [[nodiscard]] QSizeF scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept; 8737: [[nodiscard]] QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const noexcept; 8737: 8737: [[nodiscard]] constexpr inline QSizeF expandedTo(const QSizeF &) const noexcept; 8737: [[nodiscard]] constexpr inline QSizeF boundedTo(const QSizeF &) const noexcept; 8737: 8737: inline qreal &rwidth() noexcept; 8737: inline qreal &rheight() noexcept; 8737: 8737: inline QSizeF &operator+=(const QSizeF &) noexcept; 8737: inline QSizeF &operator-=(const QSizeF &) noexcept; 8737: inline QSizeF &operator*=(qreal c) noexcept; 8737: inline QSizeF &operator/=(qreal c); 8737: 8737: friend constexpr inline bool operator==(const QSizeF &, const QSizeF &) noexcept; 8737: friend constexpr inline bool operator!=(const QSizeF &, const QSizeF &) noexcept; 8737: friend constexpr inline const QSizeF operator+(const QSizeF &, const QSizeF &) noexcept; 8737: friend constexpr inline const QSizeF operator-(const QSizeF &, const QSizeF &) noexcept; 8737: friend constexpr inline const QSizeF operator*(const QSizeF &, qreal) noexcept; 8737: friend constexpr inline const QSizeF operator*(qreal, const QSizeF &) noexcept; 8737: friend inline const QSizeF operator/(const QSizeF &, qreal); 8737: 8737: constexpr inline QSize toSize() const noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: qreal wd; 8737: qreal ht; 8737: }; 8737: 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"; } }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSizeF &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSizeF &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QSizeF::QSizeF() noexcept : wd(-1.), ht(-1.) {} 8737: 8737: constexpr inline QSizeF::QSizeF(const QSize &sz) noexcept : wd(sz.width()), ht(sz.height()) {} 8737: 8737: constexpr inline QSizeF::QSizeF(qreal w, qreal h) noexcept : wd(w), ht(h) {} 8737: 8737: inline bool QSizeF::isNull() const noexcept 8737: { return qIsNull(wd) && qIsNull(ht); } 8737: 8737: constexpr inline bool QSizeF::isEmpty() const noexcept 8737: { return wd <= 0. || ht <= 0.; } 8737: 8737: constexpr inline bool QSizeF::isValid() const noexcept 8737: { return wd >= 0. && ht >= 0.; } 8737: 8737: constexpr inline qreal QSizeF::width() const noexcept 8737: { return wd; } 8737: 8737: constexpr inline qreal QSizeF::height() const noexcept 8737: { return ht; } 8737: 8737: inline void QSizeF::setWidth(qreal w) noexcept 8737: { wd = w; } 8737: 8737: inline void QSizeF::setHeight(qreal h) noexcept 8737: { ht = h; } 8737: 8737: constexpr inline QSizeF QSizeF::transposed() const noexcept 8737: { return QSizeF(ht, wd); } 8737: 8737: inline void QSizeF::scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept 8737: { scale(QSizeF(w, h), mode); } 8737: 8737: inline void QSizeF:8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef int __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef unsigned int __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef long __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef unsigned long __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef long long __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef unsigned long long __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&):scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept 8737: { *this = scaled(s, mode); } 8737: 8737: inline QSizeF QSizeF::scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept 8737: { return scaled(QSizeF(w, h), mode); } 8737: 8737: inline qreal &QSizeF::rwidth() noexcept 8737: { return wd; } 8737: 8737: inline qreal &QSizeF::rheight() noexcept 8737: { return ht; } 8737: 8737: inline QSizeF &QSizeF::operator+=(const QSizeF &s) noexcept 8737: { wd += s.wd; ht += s.ht; return *this; } 8737: 8737: inline QSizeF &QSizeF::operator-=(const QSizeF &s) noexcept 8737: { wd -= s.wd; ht -= s.ht; return *this; } 8737: 8737: inline QSizeF &QSizeF::operator*=(qreal c) noexcept 8737: { wd *= c; ht *= c; return *this; } 8737: 8737: constexpr inline bool operator==(const QSizeF &s1, const QSizeF &s2) noexcept 8737: { return qFuzzyCompare(s1.wd, s2.wd) && qFuzzyCompare(s1.ht, s2.ht); } 8737: 8737: constexpr inline bool operator!=(const QSizeF &s1, const QSizeF &s2) noexcept 8737: { return !qFuzzyCompare(s1.wd, s2.wd) || !qFuzzyCompare(s1.ht, s2.ht); } 8737: 8737: constexpr inline const QSizeF operator+(const QSizeF & s1, const QSizeF & s2) noexcept 8737: { return QSizeF(s1.wd+s2.wd, s1.ht+s2.ht); } 8737: 8737: constexpr inline const QSizeF operator-(const QSizeF &s1, const QSizeF &s2) noexcept 8737: { return QSizeF(s1.wd-s2.wd, s1.ht-s2.ht); } 8737: 8737: constexpr inline const QSizeF operator*(const QSizeF &s, qreal c) noexcept 8737: { return QSizeF(s.wd*c, s.ht*c); } 8737: 8737: constexpr inline const QSizeF operator*(qreal c, const QSizeF &s) noexcept 8737: { return QSizeF(s.wd*c, s.ht*c); } 8737: 8737: inline QSizeF &QSizeF::operator/=(qreal c) 8737: { 8737: do { } while ((false) && (!qFuzzyIsNull(c))); 8737: wd = wd/c; ht = ht/c; 8737: return *this; 8737: } 8737: 8737: inline const QSizeF operator/(const QSizeF &s, qreal c) 8737: { 8737: do { } while ((false) && (!qFuzzyIsNull(c))); 8737: return QSizeF(s.wd/c, s.ht/c); 8737: } 8737: 8737: constexpr inline QSizeF QSizeF::expandedTo(const QSizeF & otherSize) const noexcept 8737: { 8737: return QSizeF(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8737: } 8737: 8737: constexpr inline QSizeF QSizeF::boundedTo(const QSizeF & otherSize) const noexcept 8737: { 8737: return QSizeF(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8737: } 8737: 8737: constexpr inline QSize QSizeF::toSize() const noexcept 8737: { 8737: return QSize(qRound(wd), qRound(ht)); 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSizeF &); 8737: 8737: 8737: 8737: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmargins.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmargins.h" 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: class QMargins 8737: { 8737: public: 8737: constexpr QMargins() noexcept; 8737: constexpr QMargins(int left, int top, int right, int bottom) noexcept; 8737: 8737: constexpr bool isNull() const noexcept; 8737: 8737: constexpr int left() const noexcept; 8737: constexpr int top() const noexcept; 8737: constexpr int right() const noexcept; 8737: constexpr int bottom() const noexcept; 8737: 8737: void setLeft(int left) noexcept; 8737: void setTop(int top) noexcept; 8737: void setRight(int right) noexcept; 8737: void setBottom(int bottom) noexcept; 8737: 8737: QMargins &operator+=(const QMargins &margins) noexcept; 8737: QMargins &operator-=(const QMargins &margins) noexcept; 8737: QMargins &operator+=(int) noexcept; 8737: QMargins &operator-=(int) noexcept; 8737: QMargins &operator*=(int) noexcept; 8737: QMargins &operator/=(int); 8737: QMargins &operator*=(qreal) noexcept; 8737: QMargins &operator/=(qreal); 8737: 8737: private: 8737: int m_left; 8737: int m_top; 8737: int m_rig = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef wchar_t __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef char16_t __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: template<> 8768: struct atomic : __atomic_base 8768: { 8768: typedef char32_t __integral_type; 8768: typedef __atomic_base __base_type; 8768: 8768: atomic() noexcept = default; 8768: ~atomic() noexcept = default; 8768: atomic(const atomic&) = delete; 8768: atomic& operator=(const atomic&) = delete; 8768: atomic& operator=(const atomic&) volatile = delete; 8768: 8768: constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { } 8768: 8768: using __base_type::operator __integral_type; 8768: using __base_type::operator=; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: 8768: typedef atomic atomic_bool; 8768: 8768: 8768: typedef atomic atomic_char; 8768: 8768: 8768: typedef atomic atomic_schar; 8768: 8768: 8768: typedef atomic atomic_uchar; 8768: 8768: 8768: typedef atomic atomic_short; 8768: 8768: 8768: typedef atomic atomic_ushort; 8768: 8768: 8768: typedef atomic atomic_int; 8768: 8768: 8768: typedef atomic atomic_uint; 8768: 8768: 8768: typedef atomic atomic_long; 8768: 8768: 8768: typedef atomic atomic_ulong; 8768: 8768: 8768: typedef atomic atomic_llong; 8768: 8768: 8768: typedef atomic atomic_ullong; 8768: 8768: 8768: typedef atomic atomic_wchar_t; 8768: 8768: 8768: typedef atomic atomic_char16_t; 8768: 8768: 8768: typedef atomic atomic_char32_t; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef atomic atomic_int8_t; 8768: 8768: 8768: typedef atomic atomic_uint8_t; 8768: 8768: 8768: typedef atomic atomic_int16_t; 8768: 8768: 8768: typedef atomic atomic_uint16_t; 8768: 8768: 8768: typedef atomic atomic_int32_t; 8768: 8768: 8768: typedef atomic atomic_uint32_t; 8768: 8768: 8768: typedef atomic atomic_int64_t; 8768: 8768: 8768: typedef atomic atomic_uint64_t; 8768: 8768: 8768: 8768: typedef atomic atomic_int_least8_t; 8768: 8768: 8768: typedef atomic atomic_uint_least8_t; 8768: 8768: 8768: typedef atomic atomic_int_least16_t; 8768: 8768: 8768: typedef atomic atomic_uint_least16_t; 8768: 8768: 8768: typedef atomic atomic_int_least32_t; 8768: 8768: 8768: typedef atomic atomic_uint_least32_t; 8768: 8768: 8768: typedef atomic atomic_int_least64_t; 8768: 8768: 8768: typedef atomic atomic_uint_least64_t; 8768: 8768: 8768: 8768: typedef atomic atomic_int_fast8_t; 8768: 8768: 8768: typedef atomic atomic_uint_fast8_t; 8768: 8768: 8768: typedef atomic atomic_int_fast16_t; 8768: 8768: 8768: typedef atomic atomic_uint_fast16_t; 8768: 8768: 8768: typedef atomic atomic_int_fast32_t; 8768: 8768: 8768: typedef atomic atomic_uint_fast32_t; 8768: 8768: 8768: typedef atomic atomic_int_fast64_t; 8768: 8768: 8768: typedef atomic atomic_uint_fast64_t; 8768: 8768: 8768: 8768: 8768: typedef atomic atomic_intptr_t; 8768: 8768: 8768: typedef atomic atomic_uintptr_t; 8768: 8768: 8768: typedef atomic atomic_size_t; 8768: 8768: 8768: typedef atomic atomic_ptrdiff_t; 8768: 8768: 8768: 8768: typedef atomic atomic_intmax_t; 8768: 8768: 8768: typedef atomic atomic_uintmax_t; 8768: 8768: 8768: 8768: inline bool 8768: atomic_flag_test_and_set_explicit(atomic_flag* __a, 8768: memory_order __m) noexcept 8768: { return __a->test_and_set(__m); } 8768: 8768: inline bool 8768: atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, 8768: memory_order __m) noexcept 8768: { return __a->test_and_set(__m); } 8768: 8768: inline void 8768: atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept 8768: { __a->clear(__m); } 8768: 8768: inline void 8768: atomic_flag_clear_explicit(volatile atomic_flag* __a, 8768: memory_order __m) noexcept 8768: { __a->clear(__m); } 8768: 8768: inline bool 8768: atomic_flag_test_and_set(atomic_flag* __a) noexcept 8768: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8768: 8768: inline bool 8768: atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept 8768: { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } 8768: 8768: inline void 8768: atomic_flag_clear(atomic_flag* __a) noexcept 8768: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8768: 8768: inline void 8768: atomic_flag_clear(volatile atomic_flag* __a) noexcept 8768: { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } 8768: 8768: 8768: 8768: template 8768: inline bool 8768: atomic_is_lock_free(const atomic<_ITp>* __a) noexcept 8768: { return __a->is_lock_free(); } 8768: 8768: template 8768: inline bool 8768: atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept 8768: { return __a->is_lock_free(); } 8768: 8768: template 8768: inline void 8768: atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept 8768: { __a->store(__i, memory_order_relaxed); } 8768: 8768: template 8768: inline void 8768: atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8768: { __a->store(__i, memory_order_relaxed); } 8768: 8768: template 8768: inline void 8768: atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { __a->store(__i, __m); } 8768: 8768: template 8768: inline void 8768: atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { __a->store(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept 8768: { return __a->load(__m); } 8768: 8768: template 8768: inline _ITp 8768: ht; 8737: int m_bottom; 8737: 8737: friend constexpr inline bool operator==(const QMargins &, const QMargins &) noexcept; 8737: friend constexpr inline bool operator!=(const QMargins &, const QMargins &) noexcept; 8737: }; 8737: 8737: 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"; } }; 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMargins &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMargins &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QMargins::QMargins() noexcept : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8737: 8737: constexpr inline QMargins::QMargins(int aleft, int atop, int aright, int abottom) noexcept 8737: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8737: 8737: constexpr inline bool QMargins::isNull() const noexcept 8737: { return m_left==0 && m_top==0 && m_right==0 && m_bottom==0; } 8737: 8737: constexpr inline int QMargins::left() const noexcept 8737: { return m_left; } 8737: 8737: constexpr inline int QMargins::top() const noexcept 8737: { return m_top; } 8737: 8737: constexpr inline int QMargins::right() const noexcept 8737: { return m_right; } 8737: 8737: constexpr inline int QMargins::bottom() const noexcept 8737: { return m_bottom; } 8737: 8737: 8737: inline void QMargins::setLeft(int aleft) noexcept 8737: { m_left = aleft; } 8737: 8737: inline void QMargins::setTop(int atop) noexcept 8737: { m_top = atop; } 8737: 8737: inline void QMargins::setRight(int aright) noexcept 8737: { m_right = aright; } 8737: 8737: inline void QMargins::setBottom(int abottom) noexcept 8737: { m_bottom = abottom; } 8737: 8737: constexpr inline bool operator==(const QMargins &m1, const QMargins &m2) noexcept 8737: { 8737: return 8737: m1.m_left == m2.m_left && 8737: m1.m_top == m2.m_top && 8737: m1.m_right == m2.m_right && 8737: m1.m_bottom == m2.m_bottom; 8737: } 8737: 8737: constexpr inline bool operator!=(const QMargins &m1, const QMargins &m2) noexcept 8737: { 8737: return 8737: m1.m_left != m2.m_left || 8737: m1.m_top != m2.m_top || 8737: m1.m_right != m2.m_right || 8737: m1.m_bottom != m2.m_bottom; 8737: } 8737: 8737: constexpr inline QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept 8737: { 8737: return QMargins(m1.left() + m2.left(), m1.top() + m2.top(), 8737: m1.right() + m2.right(), m1.bottom() + m2.bottom()); 8737: } 8737: 8737: constexpr inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept 8737: { 8737: return QMargins(m1.left() - m2.left(), m1.top() - m2.top(), 8737: m1.right() - m2.right(), m1.bottom() - m2.bottom()); 8737: } 8737: 8737: constexpr inline QMargins operator+(const QMargins &lhs, int rhs) noexcept 8737: { 8737: return QMargins(lhs.left() + rhs, lhs.top() + rhs, 8737: lhs.right() + rhs, lhs.bottom() + rhs); 8737: } 8737: 8737: constexpr inline QMargins operator+(int lhs, const QMargins &rhs) noexcept 8737: { 8737: return QMargins(rhs.left() + lhs, rhs.top() + lhs, 8737: rhs.right() + lhs, rhs.bottom() + lhs); 8737: } 8737: 8737: constexpr inline QMargins operator-(const QMargins &lhs, int rhs) noexcept 8737: { 8737: return QMargins(lhs.left() - rhs, lhs.top() - rhs, 8737: lhs.right() - rhs, lhs.bottom() - rhs); 8737: } 8737: 8737: constexpr inline QMargins cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 atomic_load_explicit(const volatile atomic<_ITp>* __a, 8768: memory_order __m) noexcept 8768: { return __a->load(__m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->exchange(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->exchange(__i, __m); } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2, 8768: memory_order __m1, 8768: memory_order __m2) noexcept 8768: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2, 8768: memory_order __m1, 8768: memory_order __m2) noexcept 8768: { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2, 8768: memory_order __m1, 8768: memory_order __m2) noexcept 8768: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2, 8768: memory_order __m1, 8768: memory_order __m2) noexcept 8768: { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } 8768: 8768: 8768: template 8768: inline void 8768: atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept 8768: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline void 8768: atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8768: { atomic_store_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_load(const atomic<_ITp>* __a) noexcept 8768: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_load(const volatile atomic<_ITp>* __a) noexcept 8768: { return atomic_load_explicit(__a, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_weak(atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2) noexcept 8768: { 8768: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8768: memory_order_seq_cst, 8768: memory_order_seq_cst); 8768: } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2) noexcept 8768: { 8768: return atomic_compare_exchange_weak_explicit(__a, __i1, __i2, 8768: memory_order_seq_cst, 8768: memory_order_seq_cst); 8768: } 8768: 8768: template 8768: inline bool 8768: atomic_compare_exchange_strong(atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2) noexcept 8768: { 8768: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8768: memory_order_seq_cst, 8768: memory_order_seq_cst); 8768: } 8768: 8768: 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"; } }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMarginsF &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMarginsF &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QMarginsF::QMarginsF() noexcept 8737: : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8737: 8737: constexpr inline QMarginsF::QMarginsF(qreal aleft, qreal atop, qreal aright, qreal abottom) noexcept 8737: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8737: 8737: constexpr inline QMarginsF::QMarginsF(const QMargins &margins) noexcept 8737: : m_left(margins.left()), m_top(margins.top()), m_right(margins.right()), m_bottom(margins.bottom()) {} 8737: 8737: constexpr inline bool QMarginsF::isNull() const noexcept 8737: { return qFuzzyIsNull(m_left) && qFuzzyIsNull(m_top) && qFuzzyIsNull(m_right) && qFuzzyIsNull(m_bottom); } 8737: 8737: constexpr inline qreal QMarginsF::left() const noexcept 8737: { return m_left; } 8737: 8737: constexpr inline qreal QMarginsF::top() const noexcept 8737: { return m_top; } 8737: 8737: constexpr inline qreal QMarginsF::right() const noexcept 8737: { return m_right; } 8737: 8737: constexpr inline qreal QMarginsF::bottom() const noexcept 8737: { return m_bottom; } 8737: 8737: 8737: inline void QMarginsF::setLeft(qreal aleft) noexcept 8737: { m_left = aleft; } 8737: 8737: inline void QMarginsF::setTop(qreal atop) noexcept 8737: { m_top = atop; } 8737: 8737: inline void QMarginsF::setRight(qreal aright) noexcept 8737: { m_right = aright; } 8737: 8737: inline void QMarginsF::setBottom(qreal abottom) noexcept 8737: { m_bottom = abottom; } 8737: 8737: constexpr inline bool operator==(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return qFuzzyCompare(lhs.left(), rhs.left()) 8737: && qFuzzyCompare(lhs.top(), rhs.top()) 8737: && qFuzzyCompare(lhs.right(), rhs.right()) 8737: && qFuzzyCompare(lhs.bottom(), rhs.bottom()); 8737: } 8737: 8737: constexpr inline bool operator!=(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return !operator==(lhs, rhs); 8737: } 8737: 8737: constexpr inline QMarginsF operator+(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return QMarginsF(lhs.left() + rhs.left(), lhs.top() + rhs.top(), 8737: lhs.right() + rhs.right(), lhs.bottom() + rhs.bottom()); 8737: } 8737: 8737: constexpr inline QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return QMarginsF(lhs.left() - rhs.left(), lhs.top() - rhs.top(), 8737: lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom()); 8737: } 8737: 8737: constexpr inline QMarginsF operator+(const QMarginsF &lhs, qreal rhs) noexcept 8737: { 8737: return QMarginsF(lhs.left() + rhs, lhs.top() + rhs, 8737: lhs.right() + rhs, lhsme _ITp> 8768: inline bool 8768: atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, 8768: _ITp* __i1, _ITp __i2) noexcept 8768: { 8768: return atomic_compare_exchange_strong_explicit(__a, __i1, __i2, 8768: memory_order_seq_cst, 8768: memory_order_seq_cst); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_add(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_add(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_sub(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_sub(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_and(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_and(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_or(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_or(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_xor(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i, 8768: memory_order __m) noexcept 8768: { return __a->fetch_xor(__i, __m); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: template 8768: inline _ITp 8768: atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept 8768: { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } 8768: 8768: 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8768: memory_order __m) noexcept 8768: { return __a->fetch_add(__d, __m); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d, 8768: memory_order __m) noexcept 8768: { return __a->fetch_add(__d, __m); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8768: { return __a->fetch_add(__d); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8768: { return __a->fetch_add(__d); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a, 8768: ptrdiff_t __d, memory_order __m) noexcept 8768: { return __a->fetch_sub(__d, __m); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d, 8768: memory_order __m) noexcept 8768: { return __a->fetch_sub(__d, __m); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8768: { return __a->fetch_sub(__d); } 8768: 8768: template 8768: inline _ITp* 8768: atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept 8768: { return __a->fetch_sub(__d); } 8768: 8768: 8768: 8768: } 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 2 3 4 8768: 8768: 8768: # 75 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: template struct QAtomicTraits 8768: { static constexpr inline bool isLockFree(); }; 8768: # 89 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: template <> constexpr inline bool QAtomicTraits<4>::isLockFree() 8768: { return true; } 8768: # 134 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: template<> struct QAtomicOpsSupport<1> { enum { IsSupported = 1 }; }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template <> constexpr inline bool QAtomicTraits<1>::isLockFree() 8768: { return true; } 8768: # 162 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: template<> struct QAtomicOpsSupport<2> { enum { IsSupported = 1 }; }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template <> constexpr inline bool QAtomicTraits<2>::isLockFree() 8768: { return false; } 8768: # 191 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: template<> struct QAtomicOpsSupport<8> { enum { IsSupported = 1 }; }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template <> constexpr inline bool QAtomicTraits<8>::isLockFree() 8768: { return true; } 8768: # 220 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h" 3 4 8768: template struct QAtomicOps 8768: { 8768: typedef std::atomic Type; 8768: 8768: template static inline 8768: T load(const std::atomic &_q_value) noexcept 8768: { 8768: return _q_value.load(std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T load(const volatile std::atomic &_q_value) noexcept 8768: { 8768: return _q_value.load(std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T loadAcquire(const std::atomic &_q_value) noexcept 8768: { 8768: return _q_value.load(std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: T loadAcquire(const volatile std::atomic &_q_value) noexcept 8768: { 8768: return _q_value.load(std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: void store(std::atomic &_q_value, T newValue) noexcept 8768: { 8768: _q_value.store(newValue, std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: void storeRelease(std::atomic &_q_value, T newValue) noexcept 8768: { 8768: _q_value.store(newValue, std::memory_order_release); 8768: } 8768: 8768: static inline constexpr bool isReferenceCountingNative() noexcept { return isTestAndSetNative(); } 8768: static inline constexpr bool isReferenceCountingWaitFree() noexcept { return false; } 8768: template 8768: static inline bool ref(std::atomic &_q_value) 8768: { 8768: return ++_q_value != 0; 8768: } 8768: 8768: template 8768: static inline bool deref(std::atomic &_q_value) noexcept 8768: { 8768: return --_q_value != 0; 8768: } 8768: 8768: static inline constexpr bool isTestAndSetNative() noexcept 8768: { return QAtomicTraits::isLockFree(); } 8768: static inline constexpr bool isTestAndSetWaitFree() noexcept { return false; } 8768: 8768: template 8768: static bool testAndSetRelaxed(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8768: { 8768: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed, std::memory_order_relaxed); 8768: if (currentValue) 8768: *currentValue = expectedValue; 8768: return tmp; 8768: } 8768: 8768: template 8768: static bool testAndSetAcquire(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8768: { 8768: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire, std::memory_order_acquire); 8768: if (currentValue) 8768: *currentValue = expectedValue; 8768: return tmp; 8768: } 8768: 8768: template 8768: static bool testAndSetRelease(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8768: { 8768: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release, std::memory_order_relaxed); 8768: if (currentValue) 8768: *currentValue = expectedValue; 8768: return tmp; 8768: } 8768: 8768: template 8768: static bool testAndSetOrdered(std::atomic &_q_value, T expectedValue, T newValue, T *currentValue = nullptr) noexcept 8768: { 8768: bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel, std::memory_order_acquire); 8768: if (currentValue) 8768: *currentValue = expectedValue; 8768: return tmp; 8768: } 8768: 8768: static inline constexpr bool isFetchAndStoreNative() noexcept { return isTestAndSetNative(); } 8768: static inline constexpr bool isFetchAndStoreWaitFree() noexcept { return false; } 8768: 8768: template 8768: static T fetchAndStoreRelaxed(std::atomic &_q_value, T newValue) noexcept 8768: { 8768: return _q_value.exchange(newValue, std::memory_order_relaxed); 8768: } 8768: 8768: template 8768: static T fetchAndStoreAcquire(std::atomic &_q_value, T newValue) noexcept 8768: { 8768: return _q_value.exchange(newValue, std::memory_order_acquire); 8768: } 8768: 8768: template 8768: static T fetchAndStoreRelease(std::atomic &_q_value, T newValue) noexcept 8768: { 8768: return _q_value.exchange(newValue, std::memory_order_release); 8768: } 8768: 8768: template 8768: static T fetchAndStoreOrdered(std::atomic &_q_value, T newValue) noexcept 8768: { 8768: return _q_value.exchange(newValue, std::memory_order_acq_rel); 8768: } 8768: 8768: static inline constexpr bool isFetchAndAddNative() noexcept { return isTestAndSetNative(); } 8768: static inline constexpr bool isFetchAndAddWaitFree() noexcept { return false; } 8768: 8768: template static inline 8768: T fetchAndAddRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_add(valueToAdd, std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T fetchAndAddAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_add(valueToAdd, std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: T fetchAndAddRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_add(valueToAdd, std::memory_order_release); 8768: } 8768: 8768: template static inline 8768: T fetchAndAddOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_add(valueToAdd, std::memory_order_acq_rel); 8768: } 8768: 8768: template static inline 8768: T fetchAndSubRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_sub(valueToAdd, std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T fetchAndSubAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_sub(valueToAdd, std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: T fetchAndSubRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_sub(valueToAdd, std::memory_order_release); 8768: } 8768: 8768: template static inline 8768: T fetchAndSubOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_sub(valueToAdd, std::memory_order_acq_rel); 8768: } 8768: 8768: template static inline 8768: T fetchAndAndRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_and(valueToAdd, std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T fetchAndAndAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_and(valueToAdd, std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: T fetchAndAndRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_and(valueToAdd, std::memory_order_release); 8768: } 8768: 8768: template static inline 8768: T fetchAndAndOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_and(valueToAdd, std::memory_order_acq_rel); 8768: } 8768: 8768: template static inline 8768: T fetchAndOrRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_or(valueToAdd, std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T fetchAndOrAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_or(valueToAdd, std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: T fetchAndOrRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_or(valueToAdd, std::memory_order_release); 8768: } 8768: 8768: template static inline 8768: T fetchAndOrOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_or(valueToAdd, std::memory_order_acq_rel); 8768: } 8768: 8768: template static inline 8768: T fetchAndXorRelaxed(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_xor(valueToAdd, std::memory_order_relaxed); 8768: } 8768: 8768: template static inline 8768: T fetchAndXorAcquire(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_xor(valueToAdd, std::memory_order_acquire); 8768: } 8768: 8768: template static inline 8768: T fetchAndXorRelease(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_xor(valueToAdd, std::memory_order_release); 8768: } 8768: 8768: template static inline 8768: T fetchAndXorOrdered(std::atomic &_q_value, typename QAtomicAdditiveType::AdditiveT valueToAdd) noexcept 8768: { 8768: return _q_value.fetch_xor(valueToAdd, std::memory_order_acq_rel); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 2 3 4 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: 8768: 8768: 8768: 8768: # 89 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: template 8768: class QBasicAtomicInteger 8768: { 8768: public: 8768: typedef QAtomicOps Ops; 8768: 8768: static_assert(bool(QTypeInfo::isIntegral), "template parameter is not an integral type"); 8768: static_assert(bool(QAtomicOpsSupport::IsSupported), "template parameter is an integral of a size not supported on this platform"); 8768: 8768: typename Ops::Type _q_value; 8768: 8768: 8768: 8768: T load() const noexcept { return Ops::load(_q_value); } 8768: void store(T newValue) noexcept { Ops::store(_q_value, newValue); } 8768: 8768: T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8768: void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8768: operator T() const noexcept { return loadAcquire(); } 8768: T operator=(T newValue) noexcept { storeRelease(newValue); return newValue; } 8768: 8768: static constexpr bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); } 8768: static constexpr bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); } 8768: 8768: bool ref() noexcept { return Ops::ref(_q_value); } 8768: bool deref() noexcept { return Ops::deref(_q_value); } 8768: 8768: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8768: .bottom() + rhs); 8737: } 8737: 8737: constexpr inline QMarginsF operator+(qreal lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return QMarginsF(rhs.left() + lhs, rhs.top() + lhs, 8737: rhs.right() + lhs, rhs.bottom() + lhs); 8737: } 8737: 8737: constexpr inline QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept 8737: { 8737: return QMarginsF(lhs.left() - rhs, lhs.top() - rhs, 8737: lhs.right() - rhs, lhs.bottom() - rhs); 8737: } 8737: 8737: constexpr inline QMarginsF operator*(const QMarginsF &lhs, qreal rhs) noexcept 8737: { 8737: return QMarginsF(lhs.left() * rhs, lhs.top() * rhs, 8737: lhs.right() * rhs, lhs.bottom() * rhs); 8737: } 8737: 8737: constexpr inline QMarginsF operator*(qreal lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return QMarginsF(rhs.left() * lhs, rhs.top() * lhs, 8737: rhs.right() * lhs, rhs.bottom() * lhs); 8737: } 8737: 8737: constexpr inline QMarginsF operator/(const QMarginsF &lhs, qreal divisor) 8737: { 8737: return QMarginsF(lhs.left() / divisor, lhs.top() / divisor, 8737: lhs.right() / divisor, lhs.bottom() / divisor); 8737: } 8737: 8737: inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins) noexcept 8737: { 8737: return *this = *this + margins; 8737: } 8737: 8737: inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins) noexcept 8737: { 8737: return *this = *this - margins; 8737: } 8737: 8737: inline QMarginsF &QMarginsF::operator+=(qreal addend) noexcept 8737: { 8737: m_left += addend; 8737: m_top += addend; 8737: m_right += addend; 8737: m_bottom += addend; 8737: return *this; 8737: } 8737: 8737: inline QMarginsF &QMarginsF::operator-=(qreal subtrahend) noexcept 8737: { 8737: m_left -= subtrahend; 8737: m_top -= subtrahend; 8737: m_right -= subtrahend; 8737: m_bottom -= subtrahend; 8737: return *this; 8737: } 8737: 8737: inline QMarginsF &QMarginsF::operator*=(qreal factor) noexcept 8737: { 8737: return *this = *this * factor; 8737: } 8737: 8737: inline QMarginsF &QMarginsF::operator/=(qreal divisor) 8737: { 8737: return *this = *this / divisor; 8737: } 8737: 8737: constexpr inline QMarginsF operator+(const QMarginsF &margins) noexcept 8737: { 8737: return margins; 8737: } 8737: 8737: constexpr inline QMarginsF operator-(const QMarginsF &margins) noexcept 8737: { 8737: return QMarginsF(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8737: } 8737: 8737: constexpr inline QMargins QMarginsF::toMargins() const noexcept 8737: { 8737: return QMargins(qRound(m_left), qRound(m_top), qRound(m_right), qRound(m_bottom)); 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMarginsF &); 8737: 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 2 3 4 8737: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: 8737: 8737: class __attribute__((visibility("default"))) QRect 8737: { 8737: public: 8737: constexpr QRect() noexcept : x1(0), y1(0), x2(-1), y2(-1) {} 8737: constexpr QRect(const QPoint &topleft, const QPoint &bottomright) noexcept; 8737: constexpr QRect(const QPoint &topleft, const QSize &size) noexcept; 8737: constexpr QRect(int left, int top, int width, int height) noexcept; 8737: 8737: constexpr inline bool isNull() const noexcept; 8737: constexpr inline bool isEmpty() const noexcept; 8737: constexpr inline bool isValid() const noexcept; 8737: 8737: constexpr inline int left() const noexcept; 8737: constexpr inline int top() const noexcept; 8737: constexpr inline int right() const noexcept; 8737: constexpr inline int bottom() const noexcept; 8737: [[nodiscard]] QRect normalized() const noexcept; 8737: 8737: constexpr inline int x() const noexcept; 8737: constexpr inline int y() const noexcept; 8737: inline void setLeft(int pos) noexcept; 8737: inline void setTop(int pos) noexcept; 8737: inline void setRight(int pos) noexcept; 8737: inline void setBottom(int pos) noexcept; 8737: inline void setX(int x) noexcept; 8737: inline void setY(int y) noexcept; 8737: 8737: inline void setTopLeft(const QPoint &p) noexcept; 8737: inline void setBottomRight(const QPoint &p) noexcept; 8737: inline void setTopRight(const QPoint &p) noexcept; 8737: inline void setBottomLeft(const QPoint &p) noexcept; 8737: 8737: constexpr inline QPoint topLeft() const noexcept; 8737: constexpr inline QPoint bottomRight() const noexcept; 8737: constexpr inline QPoint topRight() const noexcept; 8737: constexpr inline QPoint bottomLeft() const noexcept; 8737: constexpr inline QPoint center() const noexcept; 8737: 8737: inline void moveLeft(int pos) noexcept; 8737: inline void moveTop(int pos) noexcept; 8737: inline void moveRight(int pos) noexcept; 8737: inline void moveBottom(int pos) noexcept; 8737: inline void moveTopLeft(const QPoint &p) noexcept; 8737: inline void moveBottomRight(const QPoint &p) noexcept; 8737: inline void moveTopRight(const QPoint &p) noexcept; 8737: inline void moveBottomLeft(const QPoint &p) noexcept; 8737: inline void moveCenter(const QPoint &p) noexcept; 8737: 8737: inline void translate(int dx, int dy) noexcept; 8737: inline void translate(const QPoint &p) noexcept; 8737: [[nodiscard]] constexpr inline QRect translated(int dx, int dy) const noexcept; 8737: [[nodiscard]] constexpr inline QRect translated(const QPoint &p) const noexcept; 8737: [[nodiscard]] constexpr inline QRect transposed() const noexcept; 8737: 8737: inline void moveTo(int x, int t) noexcept; 8737: inline void moveTo(const QPoint &p) noexcept; 8737: 8737: inline void setRect(int x, int y, int w, int h) noexcept; 8737: inline void getRect(int *x, int *y, int *w, int *h) const; 8737: 8737: inline void setCoords(int x1, int y1, int x2, int y2) noexcept; 8737: inline void getCoords(int *x1, int *y1, int *x2, int *y2) const; 8737: 8737: inline void adjust(int x1, int y1, int x2, int y2) noexcept; 8737: [[nodiscard]] constexpr inline QRect adjusted(int x1, int y1, int x2, int y2) const noexcept; 8737: 8737: constexpr inline QSize size() const noexcept; 8737: constexpr inline int width() const noexcept; 8737: constexpr inline int height() const noexcept; 8737: inline void setWidth(int w) noexcept; 8737: inline void setHeight(int h) noexcept; 8737: inline void setSize(const QSize &s) noexcept; 8737: 8737: QRect operator|(const QRect &r) const noexcept; 8737: QRect operator&(const QRect &r) const noexcept; 8737: inline QRect& operator|=(const QRect &r) noexcept; 8737: inline QRect& operator&=(const QRect &r) noexcept; 8737: 8737: bool contains(const QRect &r, bool proper = false) const noexcept; 8737: bool contains(const QPoint &p, bool proper=false) const noexcept; 8737: inline bool contains(int x, int y) const noexcept; 8737: inline bool contains(int x, int y, bool proper) const noexcept; 8737: [[nodiscard]] inline QRect united(const QRect &other) const noexcept; 8737: [[nodiscard]] inline QRect intersected(const QRect &other) const noexcept; 8737: bool intersects(const QRect &r) const noexcept; 8737: 8737: constexpr inline QRect marginsAdded(const QMargins &margins) const noexcept; 8737: constexpr inline QRect marginsRemoved(const QMargins &margins) const noexcept; 8737: inline QRect &operator+=(const QMargins &margins) noexcept; 8737: inline QRect &operator-=(const QMargins &margins) noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: friend constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8737: friend constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: int x1; 8737: int y1; 8737: int x2; 8737: int y2; 8737: }; 8737: 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"; } }; 8737: 8737: constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8737: constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRect &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRect &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QRect::QRect(int aleft, int atop, int awidth, int aheight) noexcept 8737: : x1(aleft), y1(atop), x2(aleft + awidth - 1), y2(atop + aheight - 1) {} 8737: 8737: constexpr inline QRect::QRect(const QPoint &atopLeft, const QPoint &abottomRight) noexcept 8737: : x1(atopLeft.x()), y1(atopLeft.y()), x2(abottomRight.x()), y2(abottomRight.y()) {} 8737: 8737: constexpr inline QRect::QRect(const QPoint &atopLeft, const QSize &asize) noexcept 8737: : x1(atopLeft.x()), y1(atopLeft.y()), x2(atopLeft.x()+asize.width() - 1), y2(atopLeft.y()+asize.height() - 1) {} 8737: 8737: constexpr inline bool QRect::isNull() const noexcept 8737: { return x2 == x1 - 1 && y2 == y1 - 1; } 8737: 8737: constexpr inline bool QRect::isEmpty() const noexcept 8737: { return x1 > x2 || y1 > y2; } 8737: 8737: constexpr inline bool QRect::isValid() const noexcept 8737: { return x1 <= x2 && y1 <= y2; } 8737: 8737: constexpr inline int QRect::left() const noexcept 8737: { return x1; } 8737: 8737: constexpr inline int QRect::top() const noexcept 8737: { return y1; } 8737: 8737: constexpr inline int QRect::right() const noexcept 8737: { return x2; } 8737: 8737: constexpr inline int QRect::bottom() const noexcept 8737: { return y2; } 8737: 8737: constexpr inline int QRect::x() const noexcept 8737: { return x1; } 8737: 8737: constexpr inline int QRect::y() const noexcept 8737: { return y1; } 8737: 8737: inline void QRect::setLeft(int pos) noexcept 8737: { x1 = pos; } 8737: 8737: inline void QRect::setTop(int pos) noexcept 8737: { y1 = pos; } 8737: 8737: inline void QRect::setRight(int pos) noexcept 8737: { x2 = pos; } 8737: 8737: inline void QRect::setBottom(int pos) noexcept 8737: { y2 = pos; } 8737: 8737: inline void QRect::setTopLeft(const QPoint &p) noexcept 8737: { x1 = p.x(); y1 = p.y(); } 8737: 8737: inline void QRect::setBottomRight(const QPoint &p) noexcept 8737: { x2 = p.x(); y2 = p.y(); } 8737: 8737: inline void QRect::setTopRight(const QPoint &p) noexcept 8737: { x2 = p.x(); y1 = p.y(); } 8737: 8737: inline void QRect::setBottomLeft(const QPoint &p) noexcept 8737: { x1 = p.x(); y2 = p.y(); } 8737: 8737: inline void QRect::setX(int ax) noexcept 8737: { x1 = ax; } 8737: 8737: inline void QRect::setY(int ay) noexcept 8737: { y1 = ay; } 8737: 8737: constexpr inline QPoint QRect::topLeft() const noexcept 8737: { return QPoint(x1, y1); } 8737: 8737: constexpr inline QPoint QRect::bottomRight() const noexcept 8737: { return QPoint(x2, y2); } 8737: 8737: constexpr inline QPoint QRect::topRight() const noexcept 8737: { return QPoint(x2, y1); } 8737: 8737: constexpr inline QPoint QRect::bottomLeft() const noexcept 8737: { return QPoint(x1, y2); } 8737: 8737: constexpr inline QPoint QRect::center() const noexcept 8737: { return QPoint(int((qint64(x1)+x2)/2), int((qint64(y1)+y2)/2)); } 8737: 8737: constexpr inline int QRect::width() const noexcept 8737: { return x2 - x1 + 1; } 8737: 8737: constexpr inline int QRect::height() const noexcept 8737: { return y2 - y1 + 1; } 8737: 8737: constexpr inline QSize QRect::size() const noexcept 8737: { return QSize(width(), height()); } 8737: 8737: inline void QRect::translate(int dx, int dy) noexcept 8737: { 8737: x1 += dx; 8737: y1 += dy; 8737: x2 += dx; 8737: y2 += dy; 8737: } 8737: 8737: inline void QRect::translate(const QPoint &p) noexcept 8737: { 8737: x1 += p.x(); 8737: y1 += p.y(); 8737: x2 += p.x(); 8737: y2 += p.y(); 8737: } 8737: 8737: constexpr inline QRect QRect::translated(int dx, int dy) const noexcept 8737: { return QRect(QPoint(x1 + dx, y1 + dy), QPoint(x2 + dx, y2 + dy)); } 8737: 8737: constexpr inline QRect QRect::translated(const QPoint &p) const noexcept 8737: { return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); } 8737: 8737: constexpr inline QRect QRect::transposed() const noexcept 8737: { return QRect(topLeft(), size().transposed()); } 8737: 8737: inline void QRect::moveTo(int ax, int ay) noexcept 8737: { 8737: x2 += ax - x1; 8737: y2 += ay - y1; 8737: x1 = ax; 8737: y1 = ay; 8737: } 8737: 8737: inline void QRect::moveTo(const QPoint &p) noexcept 8737: { 8737: x2 += p.x() - x1; 8737: y2 += p.y() - y1; 8737: x1 = p.x(); 8737: y1 = p.y(); 8737: } 8737: 8737: inline void QRect::moveLeft(int pos) noexcept 8737: { x2 += (pos - x1); x1 = pos; } 8737: 8737: inline void QRect::moveTop(int pos) noexcept 8737: { y2 += (pos - y1); y1 = pos; } 8737: 8737: inline void QRect::moveRight(int pos) noexcept 8737: { 8737: x1 += (pos - x2); 8737: x2 = pos; 8737: } 8737: 8737: inline void QRect::moveBottom(int pos) noexcept 8737: { 8737: y1 += (pos - y2); 8737: y2 = pos; 8737: } 8737: 8737: inline void QRect::moveTopLeft(const QPoint &p) noexcept 8737: { 8737: moveLeft(p.x()); 8737: moveTop(p.y()); 8737: } 8737: 8737: inline void QRect::moveBottomRight(const QPoint &p) noexcept 8737: { 8737: moveRight(p.x()); 8737: moveBottom(p.y()); 8737: } 8737: 8737: inline void QRect::moveTopRight(const QPoint &p) noexcept 8737: { 8737: moveRight(p.x()); 8737: moveTop(p.y()); 8737: } 8737: 8737: inline void QRect::moveBottomLeft(const QPoint &p) noexcept 8737: { 8737: moveLeft(p.x()); 8737: moveBottom(p.y()); 8737: } 8737: 8737: inline void QRect::moveCenter(const QPoint &p) noexcept 8737: { 8737: int w = x2 - x1; 8737: int h = y2 - y1; 8737: x1 = p.x() - w/2; 8737: y1 = p.y() - h/2; 8737: x2 = x1 + w; 8737: y2 = y1 + h; 8737: } 8737: 8737: inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const 8737: { 8737: *ax = x1; 8737: *ay = y1; 8737: *aw = x2 - x1 + 1; 8737: *ah = y2 - y1 + 1; 8737: } 8737: 8737: inline void QRect::setRect(int ax, int ay, int aw, int ah) noexcept 8737: { 8737: x1 = ax; 8737: y1 = ay; 8737: x2 = (ax + aw - 1); 8737: y2 = (ay + ah - 1); 8737: } 8737: 8737: inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const 8737: { 8737: *xp1 = x1; 8737: *yp1 = y1; 8737: *xp2 = x2; 8737: *yp2 = y2; 8737: } 8737: 8737: inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2) noexcept 8737: { 8737: x1 = xp1; 8737: y1 = yp1; 8737: x2 = xp2; 8737: y2 = yp2; 8737: } 8737: 8737: constexpr inline QRect QRect::adjusted(int xp1, int yp1, int xp2, int yp2) const noexcept 8737: { return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); } 8737: 8737: inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2) noexcept 8737: { 8737: x1 += dx1; 8737: y1 += dy1; 8737: x2 += dx2; 8737: y2 += dy2; 8737: } 8737: 8737: inline void QRect::setWidth(int w) noexcept 8737: { x2 = (x1 + w - 1); } 8737: 8737: inline void QRect::setHeight(int h) noexcept 8737: { y2 = (y1 + h - 1); } 8737: 8737: inline void QRect::setSize(const QSize &s) noexcept 8737: { 8737: x2 = (s.width() + x1 - 1); 8737: y2 = (s.height() + y1 - 1); 8737: } 8737: 8737: inline bool QRect::contains(int ax, int ay, bool aproper) const noexcept 8737: { 8737: return contains(QPoint(ax, ay), aproper); 8737: } 8737: 8737: inline bool QRect::contains(int ax, int ay) const noexcept 8737: { 8737: return contains(QPoint(ax, ay), false); 8737: } 8737: 8737: inline QRect& QRect::operator|=(const QRect &r) noexcept 8737: { 8737: *this = *this | r; 8737: return *this; 8737: } 8737: 8737: inline QRect& QRect::operator&=(const QRect &r) noexcept 8737: { 8737: *this = *this & r; 8737: return *this; 8737: } 8737: 8737: inline QRect QRect::intersected(const QRect &other) const noexcept 8737: { 8737: return *this & other; 8737: } 8737: 8737: inline QRect QRect::united(const QRect &r) const noexcept 8737: { 8737: return *this | r; 8737: } 8737: 8737: constexpr inline bool operator==(const QRect &r1, const QRect &r2) noexcept 8737: { 8737: return r1.x1==r2.x1 && r1.x2==r2.x2 && r1.y1==r2.y1 && r1.y2==r2.y2; 8737: } 8737: 8737: constexpr inline bool operator!=(const QRect &r1, const QRect &r2) noexcept 8737: { 8737: return r1.x1!=r2.x1 || r1.x2!=r2.x2 || r1.y1!=r2.y1 || r1.y2!=r2.y2; 8737: } 8737: 8737: constexpr inline QRect operator+(const QRect &rectangle, const QMargins &margins) noexcept 8737: { 8737: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8737: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8737: } 8737: 8737: constexpr inline QRect operator+(const QMargins &margins, const QRect &rectangle) noexcept 8737: { 8737: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8737: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8737: } 8737: 8737: constexpr inline QRect operator-(const QRect &lhs, const QMargins &rhs) noexcept 8737: { 8737: return QRect(QPoint(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8737: QPoint(lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom())); 8737: } 8737: 8737: constexpr inline QRect QRect::marginsAdded(const QMargins &margins) const noexcept 8737: { 8737: return QRect(QPoint(x1 - margins.left(), y1 - margins.top()), 8737: QPoint(x2 + margins.right(), y2 + margins.bottom())); 8737: } 8737: 8737: constexpr inline QRect QRect::marginsRemoved(const QMargins &margins) const noexcept 8737: { 8737: return QRect(QPoint(x1 + margins.left(), y1 + margins.top()), 8737: QPoint(x2 - margins.right(), y2 - margins.bottom())); 8737: } 8737: 8737: inline QRect &QRect::operator+=(const QMargins &margins) noexcept 8737: { 8737: *this = marginsAdded(margins); 8737: return *this; 8737: } 8737: 8737: inline QRect &QRect::operator-=(const QMargins &margins) noexcept 8737: { 8737: *this = marginsRemoved(margins); 8737: return *this; 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRect &); 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QRectF 8737: { 8737: public: 8737: constexpr QRectF() noexcept : xp(0.), yp(0.), w(0.), h(0.) {} 8737: constexpr QRectF(const QPointF &topleft, const QSizeF &size) noexcept; 8737: constexpr QRectF(const QPointF &topleft, const QPointF &bottomRight) noexcept; 8737: constexpr QRectF(qreal left, qreal top, qreal width, qreal height) noexcept; 8737: constexpr QRectF(const QRect &rect) noexcept; 8737: 8737: constexpr inline bool isNull() const noexcept; 8737: constexpr inline bool isEmpty() const noexcept; 8737: constexpr inline bool isValid() const noexcept; 8737: [[nodiscard]] QRectF normalized() const noexcept; 8737: 8737: constexpr inline qreal left() const noexcept { return xp; } 8737: constexpr inline qreal top() const noexcept { return yp; } 8737: constexpr inline qreal right() const noexcept { return xp + w; } 8737: constexpr inline qreal bottom() const noexcept { return yp + h; } 8737: 8737: constexpr inline qreal x() const noexcept; 8737: constexpr inline qreal y() const noexcept; 8737: inline void setLeft(qreal pos) noexcept; 8737: inline void setTop(qreal pos) noexcept; 8737: inline void setRight(qreal pos) noexcept; 8737: inline void setBottom(qreal pos) noexcept; 8737: inline void setX(qreal pos) noexcept { setLeft(pos); } 8737: inline void setY(qreal pos) noexcept { setTop(pos); } 8737: 8737: constexpr inline QPointF topLeft() const noexcept { return QPointF(xp, yp); } 8737: constexpr inline QPointF bottomRight() const noexcept { return QPointF(xp+w, yp+h); } 8737: constexpr inline QPointF topRight() const noexcept { return QPointF(xp+w, yp); } 8737: constexpr inline QPointF bottomLeft() const noexcept { return QPointF(xp, yp+h); } 8737: constexpr inline QPointF center() const noexcept; 8737: 8737: inline void setTopLeft(const QPointF &p) noexcept; 8737: inline void setBottomRight(const QPointF &p) noexcept; 8737: inline void setTopRight(const QPointF &p) noexcept; 8737: inline void setBottomLeft(const QPointF &p) noexcept; 8737: 8737: inline void moveLeft(qreal pos) noexcept; 8737: inline void moveTop(qreal pos) noexcept; 8737: inline void moveRight(qreal pos) noexcept; 8737: inline void moveBottom(qreal pos) noexcept; 8737: inline void moveTopLeft(const QPointF &p) noexcept; 8737: inline void moveBottomRight(const QPointF &p) noexcept; 8737: inline void moveTopRight(const QPointF &p) noexcept; 8737: inline void moveBottomLeft(const QPointF &p) noexcept; 8737: inline void moveCenter(const QPointF &p) noexcept; 8737: 8737: inline void translate(qreal dx, qreal dy) noexcept; 8737: inline void translate(const QPointF &p) noexcept; 8737: 8737: [[nodiscard]] constexpr inline QRectF translated(qreal dx, qreal dy) const noexcept; 8737: [[nodiscard]] constexpr inline QRectF translated(const QPointF &p) const noexcept; 8737: 8737: [[nodiscard]] constexpr inline QRectF transposed() const noexcept; 8737: 8737: inline void moveTo(qreal x, qreal y) noexcept; 8737: inline void moveTo(const QPointF &p) noexcept; 8737: 8737: inline void setRect(qreal x, qreal y, qreal w, qreal h) noexcept; 8737: inline void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const; 8737: 8737: inline void setCoords(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8737: inline void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const; 8737: 8737: inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8737: [[nodiscard]] constexpr inline QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const noexcept; 8737: 8737: constexpr inline QSizeF size() const noexcept; 8737: constexpr inline qreal width() const noexcept; 8737: constexpr inline qreal height() const noexcept; 8737: inline void setWidth(qreal w) noexcept; 8737: inline void setHeight(qreal h) noexcept; 8737: inline void setSize(const QSizeF &s) noexcept; 8737: 8737: QRectF operator|(const QRectF &r) const noexcept; 8737: QRectF operator&(const QRectF &r) const noexcept; 8737: inline QRectF& operator|=(const QRectF &r) noexcept; 8737: inline QRectF& operator&=(const QRectF &r) noexcept; 8737: 8737: bool contains(const QRectF &r) const noexcept; 8737: bool contains(const QPointF &p) const noexcept; 8737: inline bool contains(qreal x, qreal y) const noexcept; 8737: [[nodiscard]] inline QRectF united(const QRectF &other) const noexcept; 8737: [[nodiscard]] inline QRectF intersected(const QRectF &other) const noexcept; 8737: bool intersects(const QRectF &r) const noexcept; 8737: 8737: constexpr inline QRectF marginsAdded(const QMarginsF &margins) const noexcept; 8737: constexpr inline QRectF marginsRemoved(const QMarginsF &margins) const noexcept; 8737: inline QRectF &operator+=(const QMarginsF &margins) noexcept; 8737: inline QRectF &operator-=(const QMarginsF &margins) noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: friend constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8737: friend constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8737: 8737: [[nodiscard]] constexpr inline QRect toRect() const noexcept; 8737: [[nodiscard]] QRect toAlignedRect() const noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: qreal xp; 8737: qreal yp; 8737: qreal w; 8737: qreal h; 8737: }; 8737: 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"; } }; 8737: 8737: constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8737: constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8737: 8737: 8737: 8737: 8737: 8737: 8737: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRectF &); 8737: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRectF &); 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr inline QRectF::QRectF(qreal aleft, qreal atop, qreal awidth, qreal aheight) noexcept 8737: : xp(aleft), yp(atop), w(awidth), h(aheight) 8737: { 8737: } 8737: 8737: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QSizeF &asize) noexcept 8737: : xp(atopLeft.x()), yp(atopLeft.y()), w(asize.width()), h(asize.height()) 8737: { 8737: } 8737: 8737: 8737: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QPointF &abottomRight) noexcept 8737: : xp(atopLeft.x()), yp(atopLeft.y()), w(abottomRight.x() - atopLeft.x()), h(abottomRight.y() - atopLeft.y()) 8737: { 8737: } 8737: 8737: constexpr inline QRectF::QRectF(const QRect &r) noexcept 8737: : xp(r.x()), yp(r.y()), w(r.width()), h(r.height()) 8737: { 8737: } 8737: 8737: 8737: # 665 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 665 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: 8737: 8737: 8737: # 667 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wfloat-equal" 8737: # 667 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: 8737: 8737: constexpr inline bool QRectF::isNull() const noexcept 8737: { return w == 0. && h == 0.; } 8737: 8737: constexpr inline bool QRectF::isEmpty() const noexcept 8737: { return w <= 0. || h <= 0.; } 8737: 8737: 8737: # 675 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 675 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8737: 8737: 8737: constexpr inline bool QRectF::isValid() const noexcept 8737: { return w > 0. && h > 0.; } 8737: 8737: constexpr inline qreal QRectF::x() const noexcept 8737: { return xp; } 8737: 8737: constexpr inline qreal QRectF::y() const noexcept 8737: { return yp; } 8737: 8737: inline void QRectF::setLeft(qreal pos) noexcept 8737: { qreal diff = pos - xp; xp += diff; w -= diff; } 8737: 8737: inline void QRectF::setRight(qreal pos) noexcept 8737: { w = pos - xp; } 8737: 8737: inline void QRectF::setTop(qreal pos) noexcept 8737: { qreal diff = pos - yp; yp += diff; h -= diff; } 8737: 8737: inline void QRectF::setBottom(qreal pos) noexcept 8737: { h = pos - yp; } 8737: 8737: inline void QRectF::setTopLeft(const QPointF &p) noexcept 8737: { setLeft(p.x()); setTop(p.y()); } 8737: 8737: inline void QRectF::setTopRight(const QPointF &p) noexcept 8737: { setRight(p.x()); setTop(p.y()); } 8737: 8737: inline void QRectF::setBottomLeft(const QPointF &p) noexcept 8737: { setLeft(p.x()); setBottom(p.y()); } 8737: 8737: inline void QRectF::setBottomRight(const QPointF &p) noexcept 8737: { setRight(p.x()); setBottom(p.y()); } 8737: 8737: constexpr inline QPointF QRectF::center() const noexcept 8737: { return QPointF(xp + w/2, yp + h/2); } 8737: 8737: inline void QRectF::moveLeft(qreal pos) noexcept 8737: { xp = pos; } 8737: 8737: inline void QRectF::moveTop(qreal pos) noexcept 8737: { yp = pos; } 8737: 8737: inline void QRectF::moveRight(qreal pos) noexcept 8737: { xp = pos - w; } 8737: 8737: inline void QRectF::moveBottom(qreal pos) noexcept 8737: { yp = pos - h; } 8737: 8737: inline void QRectF::moveTopLeft(const QPointF &p) noexcept 8737: { moveLeft(p.x()); moveTop(p.y()); } 8737: 8737: inline void QRectF::moveTopRight(const QPointF &p) noexcept 8737: { moveRight(p.x()); moveTop(p.y()); } 8737: 8737: inline void QRectF::moveBottomLeft(const QPointF &p) noexcept 8737: { moveLeft(p.x()); moveBottom(p.y()); } 8737: 8737: inline void QRectF::moveBottomRight(const QPointF &p) noexcept 8737: { moveRight(p.x()); moveBottom(p.y()); } 8737: 8737: inline void QRectF::moveCenter(const QPointF &p) noexcept 8737: { xp = p.x() - w/2; yp = p.y() - h/2; } 8737: 8737: constexpr inline qreal QRectF::width() const noexcept 8737: { return w; } 8737: 8737: constexpr inline qreal QRectF::height() const noexcept 8737: { return h; } 8737: 8737: constexpr inline QSizeF QRectF::size() const noexcept 8737: { return QSizeF(w, h); } 8737: 8737: inline void QRectF::translate(qreal dx, qreal dy) noexcept 8737: { 8737: xp += dx; 8737: yp += dy; 8737: } 8737: 8737: inline void QRectF::translate(const QPointF &p) noexcept 8737: { 8737: xp += p.x(); 8737: yp += p.y(); 8737: } 8737: 8737: inline void QRectF::moveTo(qreal ax, qreal ay) noexcept 8737: { 8737: xp = ax; 8737: yp = ay; 8737: } 8737: 8737: inline void QRectF::moveTo(const QPointF &p) noexcept 8737: { 8737: xp = p.x(); 8737: yp = p.y(); 8737: } 8737: 8737: constexpr inline QRectF QRectF::translated(qreal dx, qreal dy) const noexcept 8737: { return QRectF(xp + dx, yp + dy, w, h); } 8737: 8737: constexpr inline QRectF QRectF::translated(const QPointF &p) const noexcept 8737: { return QRectF(xp + p.x(), yp + p.y(), w, h); } 8737: 8737: constexpr inline QRectF QRectF::transposed() const noexcept 8737: { return QRectF(topLeft(), size().transposed()); } 8737: 8737: inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const 8737: { 8737: *ax = this->xp; 8737: *ay = this->yp; 8737: *aaw = this->w; 8737: *aah = this->h; 8737: } 8737: 8737: inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah) noexcept 8737: { 8737: this->xp = ax; 8737: this->yp = ay; 8737: this->w = aaw; 8737: this->h = aah; 8737: } 8737: 8737: inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const 8737: { 8737: *xp1 = xp; 8737: *yp1 = yp; 8737: *xp2 = xp + w; 8737: *yp2 = yp + h; 8737: } 8737: 8737: inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8737: { 8737: xp = xp1; 8737: yp = yp1; 8737: w = xp2 - xp1; 8737: h = yp2 - yp1; 8737: } 8737: 8737: inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8737: { xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; } 8737: 8737: constexpr inline QRectF QRectF::adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const noexcept 8737: { return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); } 8737: 8737: inline void QRectF::setWidth(qreal aw) noexcept 8737: { this->w = aw; } 8737: 8737: inline void QRectF::setHeight(qreal ah) noexcept 8737: { this->h = ah; } 8737: 8737: inline void QRectF::setSize(const QSizeF &s) noexcept 8737: { 8737: w = s.width(); 8737: h = s.height(); 8737: } 8737: 8737: inline bool QRectF::contains(qreal ax, qreal ay) const noexcept 8737: { 8737: return contains(QPointF(ax, ay)); 8737: } 8737: 8737: inline QRectF& QRectF::operator|=(const QRectF &r) noexcept 8737: { 8737: *this = *this | r; 8737: return *this; 8737: } 8737: 8737: inline QRectF& QRectF::operator&=(const QRectF &r) noexcept 8737: { 8737: *this = *this & r; 8737: return *this; 8737: } 8737: 8737: inline QRectF QRectF::intersected(const QRectF &r) const noexcept 8737: { 8737: return *this & r; 8737: } 8737: 8737: inline QRectF QRectF::united(const QRectF &r) const noexcept 8737: { 8737: return *this | r; 8737: } 8737: 8737: constexpr inline bool operator==(const QRectF &r1, const QRectF &r2) noexcept 8737: { 8737: return qFuzzyCompare(r1.xp, r2.xp) && qFuzzyCompare(r1.yp, r2.yp) 8737: && qFuzzyCompare(r1.w, r2.w) && qFuzzyCompare(r1.h, r2.h); 8737: } 8737: 8737: constexpr inline bool operator!=(const QRectF &r1, const QRectF &r2) noexcept 8737: { 8737: return !qFuzzyCompare(r1.xp, r2.xp) || !qFuzzyCompare(r1.yp, r2.yp) 8737: || !qFuzzyCompare(r1.w, r2.w) || !qFuzzyCompare(r1.h, r2.h); 8737: } 8737: 8737: constexpr inline QRect QRectF::toRect() const noexcept 8737: { 8737: return QRect(qRound(xp), qRound(yp), qRound(w), qRound(h)); 8737: } 8737: 8737: constexpr inline QRectF operator+(const QRectF &lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return QRectF(QPointF(lhs.left() - rhs.left(), lhs.top() - rhs.top()), 8737: QSizeF(lhs.width() + rhs.left() + rhs.right(), lhs.height() + rhs.top() + rhs.bottom())); 8737: } 8737: 8737: constexpr inline QRectF operator+(const QMarginsF &lhs, const QRectF &rhs) noexcept 8737: { 8737: return QRectF(QPointF(rhs.left() - lhs.left(), rhs.top() - lhs.top()), 8737: QSizeF(rhs.width() + lhs.left() + lhs.right(), rhs.height() + lhs.top() + lhs.bottom())); 8737: } 8737: 8737: constexpr inline QRectF operator-(const QRectF &lhs, const QMarginsF &rhs) noexcept 8737: { 8737: return QRectF(QPointF(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8737: QSizeF(lhs.width() - rhs.left() - rhs.right(), lhs.height() - rhs.top() - rhs.bottom())); 8737: } 8737: 8737: constexpr inline QRectF QRectF::marginsAdded(const QMarginsF &margins) const noexcept 8737: { 8737: return QRectF(QPointF(xp - margins.left(), yp - margins.top()), 8737: QSizeF(w + margins.left() + margins.right(), h + margins.top() + margins.bottom())); 8737: } 8737: 8737: constexpr inline QRectF QRectF::marginsRemoved(const QMarginsF &margins) const noexcept 8737: { 8737: return QRectF(QPointF(xp + margins.left(), yp + margins.top()), 8737: QSizeF(w - margins.left() - margins.right(), h - margins.top() - margins.bottom())); 8737: } 8737: 8737: inline QRectF &QRectF::operator+=(const QMarginsF &margins) noexcept 8737: { 8737: *this = marginsAdded(margins); 8737: return *this; 8737: } 8737: 8737: inline QRectF &QRectF::operator-=(const QMarginsF &margins) noexcept 8737: { 8737: *this = marginsRemoved(margins); 8737: return *this; 8737: } 8737: 8737: 8737: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRectF &); 8737: 8737: 8737: 8737: # 61 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: 8737: 8737: 8737: 8737: namespace QTest 8737: { 8737: 8737: template<> inline char *toString(const QString &str) 8737: { 8737: return QTest::toPrettyUnicode(reinterpret_cast(str.constData()), str.length()); 8737: } 8737: 8737: template<> inline char *toString(const QLatin1String &str) 8737: { 8737: return toString(QString(str)); 8737: } 8737: 8737: template<> inline char *toString(const QByteArray &ba) 8737: { 8737: return QTest::toPrettyCString(ba.constData(), ba.length()); 8737: } 8737: 8737: 8737: template<> inline char *toString(const QTime &time) 8737: { 8737: return time.isValid() 8737: ? qstrdup(QString(time.toString(QLatin1String("hh:mm:ss.zzz"))).toLocal8Bit().constData()) 8737: : qstrdup("Invalid QTime"); 8737: } 8737: 8737: template<> inline char *toString(const QDate &date) 8737: { 8737: return date.isValid() 8737: ? qstrdup(QString(date.toString(QLatin1String("yyyy/MM/dd"))).toLocal8Bit().constData()) 8737: : qstrdup("Invalid QDate"); 8737: } 8737: 8737: template<> inline char *toString(const QDateTime &dateTime) 8737: { 8737: return dateTime.isValid() 8737: ? qstrdup(QString(dateTime.toString(QLatin1String("yyyy/MM/dd hh:mm:ss.zzz[t]"))).toLocal8Bit().constData()) 8737: : qstrdup("Invalid QDateTime"); 8737: } 8737: 8737: 8737: template<> inline char *toString(const QChar &c) 8737: { 8737: const ushort uc = c.unicode(); 8737: if (uc < 128) { 8737: char msg[32] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QChar: '%c' (0x%x)", char(uc), unsigned(uc)); 8737: return qstrdup(msg); 8737: } 8737: return qstrdup(QString(QString::fromLatin1("QChar: '%1' (0x%2)").arg(c).arg(QString::number(static_cast(c.unicode()), 16))).toLocal8Bit().constData()); 8737: } 8737: 8737: template<> inline char *toString(const QPoint &p) 8737: { 8737: char msg[128] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QPoint(%d,%d)", p.x(), p.y()); 8737: return qstrdup(msg); 8737: } 8737: 8737: template<> inline char *toString(const QSize &s) 8737: { 8737: char msg[128] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QSize(%dx%d)", s.width(), s.height()); 8737: return qstrdup(msg); 8737: } 8737: 8737: template<> inline char *toString(const QRect &s) 8737: { 8737: char msg[256] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QRect(%d,%d %dx%d) (bottomright %d,%d)", 8737: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8737: return qstrdup(msg); 8737: } 8737: 8737: template<> inline char *toString(const QPointF &p) 8737: { 8737: char msg[64] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QPointF(%g,%g)", p.x(), p.y()); 8737: return qstrdup(msg); 8737: } 8737: 8737: template<> inline char *toString(const QSizeF &s) 8737: { 8737: char msg[64] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QSizeF(%gx%g)", s.width(), s.height()); 8737: return qstrdup(msg); 8737: } 8737: 8737: template<> inline char *toString(const QRectF &s) 8737: { 8737: char msg[256] = {'\0'}; 8737: qsnprintf(msg, sizeof(msg), "QRectF(%g,%g %gx%g) (bottomright %g,%g)", 8737: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8737: return qstrdup(msg); 8737: } 8737: 8737: template<> inline char *toString(const QUrl &uri) 8737: { 8737: if (!uri.isValid()) 8737: return qstrdup(QString(QLatin1String("Invalid URL: ") + uri.errorString()).toLocal8Bit().constData()); 8737: return qstrdup(uri.toEncoded().constData()); 8737: } 8737: 8737: template <> inline char *toString(const QUuid &uuid) 8737: { 8737: return qstrdup(uuid.toByteArray().constData()); 8737: } 8737: 8737: template<> inline char *toString(const QVariant &v) 8737: { 8737: QByteArray vstring("QVariant("); 8737: if (v.isValid()) { 8737: QByteArray type(v.typeName()); 8737: if (type.isEmpty()) { 8737: type = QByteArray::number(v.userType()); 8737: } 8737: vstring.append(type); 8737: if (!v.isNull()) { 8737: vstring.append(','); 8737: if (v.canConvert(QVariant::String)) { 8737: vstring.append(v.toString().toLocal8Bit()); 8737: } 8737: else { 8737: vstring.append(""); 8737: } 8737: } 8737: } 8737: vstring.append(')'); 8737: 8737: return qstrdup(vstring.constData()); 8737: } 8737: 8737: inline char *toString(std::nullptr_t) 8737: { 8737: return toString(QLatin1String("nullptr")); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(QString const &t1, QLatin1String const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(t1, QString(t2), actual, expected, file, line); 8737: } 8737: template<> 8737: inline bool qCompare(QLatin1String const &t1, QString const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(QString(t1), t2, actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qCompare(QList const &t1, QList const &t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: char msg[1024]; 8737: msg[0] = '\0'; 8737: bool isOk = true; 8737: const int actualSize = t1.count(); 8737: const int expectedSize = t2.count(); 8737: if (actualSize != expectedSize) { 8737: qsnprintf(msg, sizeof(msg), "Compared lists have different sizes.\n" 8737: " Actual (%s) size: %d\n" 8737: " Expected (%s) size: %d", actual, actualSize, expected, expectedSize); 8737: isOk = false; 8737: } 8737: for (int i = 0; isOk && i < actualSize; ++i) { 8737: if (!(t1.at(i) == t2.at(i))) { 8737: char *val1 = toString(t1.at(i)); 8737: char *val2 = toString(t2.at(i)); 8737: 8737: qsnprintf(msg, sizeof(msg), "Compared lists differ at index %d.\n" 8737: " Actual (%s): %s\n" 8737: " Expected (%s): %s", i, actual, val1 ? val1 : "", 8737: expected, val2 ? val2 : ""); 8737: isOk = false; 8737: 8737: delete [] val1; 8737: delete [] val2; 8737: } 8737: } 8737: return compare_helper(isOk, msg, nullptr, nullptr, actual, expected, file, line); 8737: } 8737: 8737: template <> 8737: inline bool qCompare(QStringList const &t1, QStringList const &t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return qCompare(t1, t2, actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qCompare(QFlags const &t1, T const &t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return qCompare(int(t1), int(t2), actual, expected, file, line); 8737: } 8737: 8737: template 8737: inline bool qCompare(QFlags const &t1, int const &t2, const char *actual, const char *expected, 8737: const char *file, int line) 8737: { 8737: return qCompare(int(t1), t2, actual, expected, file, line); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(qint64 const &t1, qint32 const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(qint64 const &t1, quint32 const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(quint64 const &t1, quint32 const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(qint32 const &t1, qint64 const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(quint32 const &t1, qint64 const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8737: } 8737: 8737: template<> 8737: inline bool qCompare(quint32 const &t1, quint64 const &t2, const char *actual, 8737: const char *expected, const char *file, int line) 8737: { 8737: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8737: } 8737: 8737: } 8737: 8737: # 328 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 1 3 4 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 1 3 4 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 1 3 4 8737: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: 8737: 8737: 8737: class QEventPrivate; 8737: class __attribute__((visibility("default"))) QEvent 8737: { 8737: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8737: 8737: 8737: public: 8737: enum Type { 8737: 8737: 8737: 8737: 8737: 8737: 8737: None = 0, 8737: Timer = 1, 8737: MouseButtonPress = 2, 8737: MouseButtonRelease = 3, 8737: MouseButtonDblClick = 4, 8737: MouseMove = 5, 8737: KeyPress = 6, 8737: KeyRelease = 7, 8737: FocusIn = 8, 8737: FocusOut = 9, 8737: FocusAboutToChange = 23, 8737: Enter = 10, 8737: Leave = 11, 8737: Paint = 12, 8737: Move = 13, 8737: Resize = 14, 8737: Create = 15, 8737: Destroy = 16, 8737: Show = 17, 8737: Hide = 18, 8737: Close = 19, 8737: Quit = 20, 8737: ParentChange = 21, 8737: ParentAboutToChange = 131, 8737: ThreadChange = 22, 8737: WindowActivate = 24, 8737: WindowDeactivate = 25, 8737: ShowToParent = 26, 8737: HideToParent = 27, 8737: Wheel = 31, 8737: WindowTitleChange = 33, 8737: WindowIconChange = 34, 8737: ApplicationWindowIconChange = 35, 8737: ApplicationFontChange = 36, 8737: ApplicationLayoutDirectionChange = 37, 8737: ApplicationPaletteChange = 38, 8737: PaletteChange = 39, 8737: Clipboard = 40, 8737: Speech = 42, 8737: MetaCall = 43, 8737: SockAct = 50, 8737: WinEventAct = 132, 8737: DeferredDelete = 52, 8737: DragEnter = 60, 8737: DragMove = 61, 8737: DragLeave = 62, 8737: Drop = 63, 8737: DragResponse = 64, 8737: ChildAdded = 68, 8737: ChildPolished = 69, 8737: ChildRemoved = 71, 8737: ShowWindowRequest = 73, 8737: PolishRequest = 74, 8737: Polish = 75, 8737: LayoutRequest = 76, 8737: UpdateRequest = 77, 8737: UpdateLater = 78, 8737: 8737: EmbeddingControl = 79, 8737: ActivateControl = 80, 8737: DeactivateControl = 81, 8737: ContextMenu = 82, 8737: InputMethod = 83, 8737: TabletMove = 87, 8737: LocaleChange = 88, 8737: LanguageChange = 89, 8737: LayoutDirectionChange = 90, 8737: Style = 91, 8737: TabletPress = 92, 8737: TabletRelease = 93, 8737: OkRequest = 94, 8737: HelpRequest = 95, 8737: 8737: IconDrag = 96, 8737: 8737: FontChange = 97, 8737: EnabledChange = 98, 8737: ActivationChange = 99, 8737: StyleChange = 100, 8737: IconTextChange = 101, 8737: ModifiedChange = 102, 8737: MouseTrackingChange = 109, 8737: 8737: WindowBlocked = 103, 8737: WindowUnblocked = 104, 8737: WindowStateChange = 105, 8737: 8737: ReadOnlyChange = 106, 8737: 8737: ToolTip = 110, 8737: WhatsThis = 111, 8737: StatusTip = 112, 8737: 8737: ActionChanged = 113, 8737: ActionAdded = 114, 8737: ActionRemoved = 115, 8737: 8737: FileOpen = 116, 8737: 8737: Shortcut = 117, 8737: ShortcutOverride = 51, 8737: 8737: WhatsThisClicked = 118, 8737: 8737: ToolBarChange = 120, 8737: 8737: ApplicationActivate = 121, 8737: ApplicationActivated = ApplicationActivate, 8737: ApplicationDeactivate = 122, 8737: ApplicationDeactivated = ApplicationDeactivate, 8737: 8737: QueryWhatsThis = 123, 8737: EnterWhatsThisMode = 124, 8737: LeaveWhatsThisMode = 125, 8737: 8737: ZOrderChange = 126, 8737: 8737: HoverEnter = 127, 8737: HoverLeave = 128, 8737: HoverMove = 129, 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: AcceptDropsChange = 152, 8737: 8737: ZeroTimerEvent = 154, 8737: 8737: GraphicsSceneMouseMove = 155, 8737: GraphicsSceneMousePress = 156, 8737: GraphicsSceneMouseRelease = 157, 8737: GraphicsSceneMouseDoubleClick = 158, 8737: GraphicsSceneContextMenu = 159, 8737: GraphicsSceneHoverEnter = 160, 8737: GraphicsSceneHoverMove = 161, 8737: GraphicsSceneHoverLeave = 162, 8737: GraphicsSceneHelp = 163, 8737: GraphicsSceneDragEnter = 164, 8737: GraphicsSceneDragMove = 165, 8737: GraphicsSceneDragLeave = 166, 8737: GraphicsSceneDrop = 167, 8737: GraphicsSceneWheel = 168, 8737: 8737: KeyboardLayoutChange = 169, 8737: 8737: DynamicPropertyChange = 170, 8737: 8737: TabletEnterProximity = 171, 8737: TabletLeaveProximity = 172, 8737: 8737: NonClientAreaMouseMove = 173, 8737: NonClientAreaMouseButtonPress = 174, 8737: NonClientAreaMouseButtonRelease = 175, 8737: NonClientAreaMouseButtonDblClick = 176, 8737: 8737: MacSizeChange = 177, 8737: 8737: ContentsRectChange = 178, 8737: 8737: MacGLWindowChange = 179, 8737: 8737: FutureCallOut = 180, 8737: 8737: GraphicsSceneResize = 181, 8737: GraphicsSceneMove = 182, 8737: 8737: CursorChange = 183, 8737: ToolTipChange = 184, 8737: 8737: NetworkReplyUpdated = 185, 8737: 8737: GrabMouse = 186, 8737: UngrabMouse = 187, 8737: GrabKeyboard = 188, 8737: UngrabKeyboard = 189, 8737: MacGLClearDrawable = 191, 8737: 8737: StateMachineSignal = 192, 8737: StateMachineWrapped = 193, 8737: 8737: TouchBegin = 194, 8737: TouchUpdate = 195, 8737: TouchEnd = 196, 8737: 8737: 8737: NativeGesture = 197, 8737: 8737: RequestSoftwareInputPanel = 199, 8737: CloseSoftwareInputPanel = 200, 8737: 8737: WinIdChange = 203, 8737: 8737: Gesture = 198, 8737: GestureOverride = 202, 8737: 8737: ScrollPrepare = 204, 8737: Scroll = 205, 8737: 8737: Expose = 206, 8737: 8737: InputMethodQuery = 207, 8737: OrientationChange = 208, 8737: 8737: TouchCancel = 209, 8737: 8737: ThemeChange = 210, 8737: 8737: SockClose = 211, 8737: 8737: PlatformPanel = 212, 8737: 8737: StyleAnimationUpdate = 213, 8737: ApplicationStateChange = 214, 8737: 8737: WindowChangeInternal = 215, 8737: ScreenChangeInternal = 216, 8737: 8737: PlatformSurface = 217, 8737: 8737: Pointer = 218, 8737: 8737: TabletTrackingChange = 219, 8737: 8737: 8737: 8737: 8737: User = 1000, 8737: MaxUser = 65535 8737: }; 8737: friend constexpr const QMetaObject *qt_getEnumMetaObject(Type) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Type) noexcept { return "Type"; } 8737: 8737: explicit QEvent(Type type); 8737: QEvent(const QEvent &other); 8737: virtual ~QEvent(); 8737: QEvent &operator=(const QEvent &other); 8737: inline Type type() const { return static_cast(t); } 8737: inline bool spontaneous() const { return spont; } 8737: 8737: inline void setAccepted(bool accepted) { m_accept = accepted; } 8737: inline bool isAccepted() const { return m_accept; } 8737: 8737: inline void accept() { m_accept = true; } 8737: inline void ignore() { m_accept = false; } 8737: 8737: static int registerEventType(int hint = -1) noexcept; 8737: 8737: protected: 8737: QEventPrivate *d; 8737: ushort t; 8737: 8737: private: 8737: ushort posted : 1; 8737: ushort spont : 1; 8737: ushort m_accept : 1; 8737: ushort reserved : 13; 8737: 8737: friend class QCoreApplication; 8737: friend class QCoreApplicationPrivate; 8737: friend class QThreadData; 8737: friend class QApplication; 8737: friend class QShortcutMap; 8737: friend class QGraphicsView; 8737: friend class QGraphicsScene; 8737: friend class QGraphicsScenePrivate; 8737: 8737: friend class QSpontaneKeyEvent; 8737: 8737: inline __attribute__((always_inline)) 8737: void setSpontaneous() { spont = true; } 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QTimerEvent : public QEvent 8737: { 8737: public: 8737: explicit QTimerEvent( int timerId ); 8737: ~QTimerEvent(); 8737: int timerId() const { return id; } 8737: protected: 8737: int id; 8737: }; 8737: 8737: class QObject; 8737: 8737: class __attribute__((visibility("default"))) QChildEvent : public QEvent 8737: { 8737: public: 8737: QChildEvent( Type type, QObject *child ); 8737: ~QChildEvent(); 8737: QObject *child() const { return c; } 8737: bool added() const { return type() == ChildAdded; } 8737: bool polished() const { return type() == ChildPolished; } 8737: bool removed() const { return type() == ChildRemoved; } 8737: protected: 8737: QObject *c; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QDynamicPropertyChangeEvent : public QEvent 8737: { 8737: public: 8737: explicit QDynamicPropertyChangeEvent(const QByteArray &name); 8737: ~QDynamicPropertyChangeEvent(); 8737: 8737: inline QByteArray propertyName() const { return n; } 8737: 8737: private: 8737: QByteArray n; 8737: }; 8737: 8737: class __attribute__((visibility("default"))) QDeferredDeleteEvent : public QEvent 8737: { 8737: public: 8737: explicit QDeferredDeleteEvent(); 8737: ~QDeferredDeleteEvent(); 8737: int loopLevel() const { return level; } 8737: private: 8737: int level; 8737: friend class QCoreApplication; 8737: }; 8737: 8737: 8737: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: 8737: 8737: 8737: class QEventLoopPrivate; 8737: 8737: class __attribute__((visibility("default"))) QEventLoop : public QObject 8737: { 8737: public: 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: 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: 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8737: struct QPrivateSignal {}; 8737: 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; 8737: 8737: public: 8737: explicit QEventLoop(QObject *parent = nullptr); 8737: ~QEventLoop(); 8737: 8737: enum ProcessEventsFlag { 8737: AllEvents = 0x00, 8737: ExcludeUserInputEvents = 0x01, 8737: ExcludeSocketNotifiers = 0x02, 8737: WaitForMoreEvents = 0x04, 8737: X11ExcludeTimers = 0x08, 8737: EventLoopExec = 0x20, 8737: DialogExec = 0x40 8737: }; 8737: typedef QFlags ProcessEventsFlags; 8737: 8737: bool processEvents(ProcessEventsFlags flags = AllEvents); 8737: void processEvents(ProcessEventsFlags flags, int maximumTime); 8737: 8737: int exec(ProcessEventsFlags flags = AllEvents); 8737: void exit(int returnCode = 0); 8737: bool isRunning() const; 8737: 8737: void wakeUp(); 8737: 8737: bool event(QEvent *event) override; 8737: 8737: public : 8737: void quit(); 8737: }; 8737: 8737: 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); } 8737: 8737: 8737: class QEventLoopLockerPrivate; 8737: 8737: class __attribute__((visibility("default"))) QEventLoopLocker 8737: { 8737: public: 8737: QEventLoopLocker(); 8737: explicit QEventLoopLocker(QEventLoop *loop); 8737: explicit QEventLoopLocker(QThread *thread); 8737: ~QEventLoopLocker(); 8737: 8737: private: 8737: QEventLoopLocker(const QEventLoopLocker &) = delete; QEventLoopLocker &operator=(const QEventLoopLocker &) = delete; 8737: QEventLoopLockerPrivate *d_ptr; 8737: }; 8737: 8737: 8737: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 2 3 4 8737: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: 8737: 8737: 8737: class QCoreApplicationPrivate; 8737: class QTextCodec; 8737: class QTranslator; 8737: class QPostEventList; 8737: class QStringList; 8737: class QAbstractEventDispatcher; 8737: class QAbstractNativeEventFilter; 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QCoreApplication 8737: 8737: : public QObject 8737: 8737: { 8737: 8737: public: 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: #pragma GCC diagnostic push 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: 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: 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: #pragma GCC diagnostic pop 8737: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: struct QPrivateSignal {}; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 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; 8737: public: 8737: enum { ApplicationFlags = ((5<<16)|(9<<8)|(3)) 8737: }; 8737: 8737: QCoreApplication(int &argc, char **argv 8737: 8737: , int = ApplicationFlags 8737: 8737: ); 8737: 8737: ~QCoreApplication(); 8737: 8737: static QStringList arguments(); 8737: 8737: static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); 8737: static bool testAttribute(Qt::ApplicationAttribute attribute); 8737: 8737: static void setOrganizationDomain(const QString &orgDomain); 8737: static QString organizationDomain(); 8737: static void setOrganizationName(const QString &orgName); 8737: static QString organizationName(); 8737: static void setApplicationName(const QString &application); 8737: static QString applicationName(); 8737: static void setApplicationVersion(const QString &version); 8737: static QString applicationVersion(); 8737: 8737: static void setSetuidAllowed(bool allow); 8737: static bool isSetuidAllowed(); 8737: 8737: static QCoreApplication *instance() { return self; } 8737: 8737: 8737: static int exec(); 8737: static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents); 8737: static void processEvents(QEventLoop::ProcessEventsFlags flags, int maxtime); 8737: static void exit(int retcode=0); 8737: 8737: static bool sendEvent(QObject *receiver, QEvent *event); 8737: static void postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority); 8737: static void sendPostedEvents(QObject *receiver = nullptr, int event_type = 0); 8737: static void removePostedEvents(QObject *receiver, int eventType = 0); 8737: 8737: static bool hasPendingEvents(); 8737: 8737: static QAbstractEventDispatcher *eventDispatcher(); 8737: static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher); 8737: 8737: virtual bool notify(QObject *, QEvent *); 8737: 8737: static bool startingUp(); 8737: static bool closingDown(); 8737: 8737: 8737: static QString applicationDirPath(); 8737: static QString applicationFilePath(); 8737: static qint64 applicationPid(); 8737: 8737: 8737: static void setLibraryPaths(const QStringList &); 8737: static QStringList libraryPaths(); 8737: static void addLibraryPath(const QString &); 8737: static void removeLibraryPath(const QString &); 8737: 8737: 8737: 8737: static bool installTranslator(QTranslator * messageFile); 8737: static bool removeTranslator(QTranslator * messageFile); 8737: 8737: 8737: static QString translate(const char * context, 8737: const char * key, 8737: const char * disambiguation = nullptr, 8737: int n = -1); 8737: # 169 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: static void flush(); 8737: 8737: 8737: void installNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8737: void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8737: 8737: static bool isQuitLockEnabled(); 8737: static void setQuitLockEnabled(bool enabled); 8737: 8737: public : 8737: static void quit(); 8737: 8737: public : 8737: void aboutToQuit(QPrivateSignal); 8737: 8737: void organizationNameChanged(); 8737: void organizationDomainChanged(); 8737: void applicationNameChanged(); 8737: void applicationVersionChanged(); 8737: 8737: protected: 8737: bool event(QEvent *) override; 8737: 8737: virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); 8737: 8737: 8737: protected: 8737: QCoreApplication(QCoreApplicationPrivate &p); 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: 8737: static bool sendSpontaneousEvent(QObject *receiver, QEvent *event); 8737: 8737: bool notifyInternal(QObject *receiver, QEvent *event); 8737: 8737: static bool notifyInternal2(QObject *receiver, QEvent *); 8737: 8737: 8737: static QCoreApplication *self; 8737: 8737: QCoreApplication(const QCoreApplication &) = delete; QCoreApplication &operator=(const QCoreApplication &) = delete; 8737: 8737: friend class QApplication; 8737: friend class QApplicationPrivate; 8737: friend class QGuiApplication; 8737: friend class QGuiApplicationPrivate; 8737: friend class QWidget; 8737: friend class QWidgetWindow; 8737: friend class QWidgetPrivate; 8737: 8737: friend class QEventDispatcherUNIXPrivate; 8737: friend class QCocoaEventDispatcherPrivate; 8737: friend bool qt_sendSpontaneousEvent(QObject*, QEvent*); 8737: 8737: friend __attribute__((visibility("default"))) QString qAppName(); 8737: friend class QClassFactory; 8737: }; 8737: 8737: 8737: inline bool QCoreApplication::sendEvent(QObject *receiver, QEvent *event) 8737: { if (event) event->spont = false; return notifyInternal2(receiver, event); } 8737: 8737: inline bool QCoreApplication::sendSpontaneousEvent(QObject *receiver, QEvent *event) 8737: { if (event) event->spont = true; return notifyInternal2(receiver, event); } 8737: # 254 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: typedef void (*QtStartUpFunction)(); 8737: typedef void (*QtCleanUpFunction)(); 8737: 8737: __attribute__((visibility("default"))) void qAddPreRoutine(QtStartUpFunction); 8737: __attribute__((visibility("default"))) void qAddPostRoutine(QtCleanUpFunction); 8737: __attribute__((visibility("default"))) void qRemovePostRoutine(QtCleanUpFunction); 8737: __attribute__((visibility("default"))) QString qAppName(); 8737: # 275 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8737: 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 1 3 4 8737: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qelapsedtimer.h" 1 3 4 8737: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qelapsedtimer.h" 3 4 8737: 8737: 8737: 8737: class __attribute__((visibility("default"))) QElapsedTimer 8737: { 8737: public: 8737: enum ClockType { 8737: SystemTime, 8737: MonotonicClock, 8737: TickCounter, 8737: MachAbsoluteTime, 8737: PerformanceCounter 8737: }; 8737: 8737: constexpr QElapsedTimer() 8737: : t1(static_cast(0x8000000000000000LL)), 8737: t2(static_cast(0x8000000000000000LL)) 8737: { 8737: } 8737: 8737: static ClockType clockType() noexcept; 8737: static bool isMonotonic() noexcept; 8737: 8737: void start() noexcept; 8737: qint64 restart() noexcept; 8737: void invalidate() noexcept; 8737: bool isValid() const noexcept; 8737: 8737: qint64 nsecsElapsed() const noexcept; 8737: qint64 elapsed() const noexcept; 8737: bool hasExpired(qint64 timeout) const noexcept; 8737: 8737: qint64 msecsSinceReference() const noexcept; 8737: qint64 msecsTo(const QElapsedTimer &other) const noexcept; 8737: qint64 secsTo(const QElapsedTimer &other) const noexcept; 8737: 8737: bool operator==(const QElapsedTimer &other) const noexcept 8737: { return t1 == other.t1 && t2 == other.t2; } 8737: bool operator!=(const QElapsedTimer &other) const noexcept 8737: { return !(*this == other); } 8737: 8737: friend bool __attribute__((visibility("default"))) operator<(const QElapsedTimer &v1, const QElapsedTimer &v2) noexcept; 8737: 8737: private: 8737: qint64 t1; 8737: qint64 t2; 8737: }; 8737: 8737: 8737: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 2 3 4 8737: # 58 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 3 4 8737: 8737: 8737: class __attribute__((visibility("default"))) QDeadlineTimer 8737: { 8737: public: 8737: enum ForeverConstant { Forever }; 8737: 8737: constexpr QDeadlineTimer(Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8737: : t1(0), t2(0), type(type_) {} 8737: constexpr QDeadlineTimer(ForeverConstant, Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8737: : t1(std::numeric_limits::max()), t2(0), type(type_) {} 8737: explicit QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8737: 8737: void swap(QDeadlineTimer &other) noexcept 8737: { qSwap(t1, other.t1); qSwap(t2, other.t2); qSwap(type, other.type); } 8737: 8737: constexpr bool isForever() const noexcept 8737: { return t1 == (std::numeric_limits::max)(); } 8737: bool hasExpired() const noexcept; 8737: 8737: Qt::TimerType timerType() const noexcept 8737: { return Qt::TimerType(type & 0xff); } 8737: void setTimerType(Qt::TimerType type); 8737: 8737: qint64 remainingTime() const noexcept; 8737: qint64 remainingTimeNSecs() const noexcept; 8737: void setRemainingTime(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8737: void setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, 8737: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8737: 8737: qint64 deadline() const noexcept __attribute__((pure)); 8737: qint64 deadlineNSecs() const noexcept __attribute__((pure)); 8737: void setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8737: void setPreciseDeadline(qint64 secs, qint64 nsecs = 0, 8737: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8737: 8737: static QDeadlineTimer addNSecs(QDeadlineTimer dt, qint64 nsecs) noexcept __attribute__((pure)); 8737: static QDeadlineTimer current(Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8737: 8737: friend bool operator==(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8737: { return d1.t1 == d2.t1 && d1.t2 == d2.t2; } 8737: friend bool operator!=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8737: { return !(d1 == d2); } 8737: friend bool operator<(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8737: { return d1.t1 < d2.t1 || (d1.t1 == d2.t1 && d1.t2 < d2.t2); } 8737: friend bool operator<=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8737: { return d1 == d2 || d1 < d2; } 8737: friend bool operator>(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8737: { return d2 < d1; } 8737: friend bool operator>=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8737: { return !(d1 < d2); } 8737: 8737: friend QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs) 8737: { return QDeadlineTimer::addNSecs(dt, msecs * 1000 * 1000); } 8737: friend QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt) 8737: { return dt + msecs; } 8737: friend QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs) 8737: { return dt + (-msecs); } 8737: friend qint64 operator-(QDeadlineTimer dt1, QDeadlineTimer dt2) 8737: { return (dt1.deadlineNSecs() - dt2.deadlineNSecs()) / (1000 * 1000); } 8737: QDeadlineTimer &operator+=(qint64 msecs) 8737: { *this = *this + msecs; return *this; } 8737: QDeadlineTimer &operator-=(qint64 msecs) 8737: { *this = *this + (-msecs); return *this; } 8737: 8737: 8737: template 8737: QDeadlineTimer(std::chrono::time_point deadline_, 8737: Qt::TimerType type_ = Qt::CoarseTimer) : t2(0) 8737: { setDeadline(deadline_, type_); } 8737: template 8737: QDeadlineTimer &operator=(std::chrono::time_point deadline_) 8737: { setDeadline(deadline_); return *this; } 8737: 8737: template 8737: void setDeadline(std::chrono::time_point deadline_, 8737: Qt::TimerType type_ = Qt::CoarseTimer) 8737: { setRemainingTime(deadline_ == deadline_.max() ? Duration::max() : deadline_ - Clock::now(), type_); } 8737: 8737: template 8737: std::chrono::time_point deadline() const 8737: { 8737: auto val = std::chrono::nanoseconds(rawRemainingTimeNSecs()) + Clock::now(); 8737: return std::chrono::time_point_cast(val); 8737: } 8737: 8737: template 8737: QDeadlineTimer(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8737: : t2(0) 8737: { setRemainingTime(remaining, type_); } 8737: 8737: template 8737: QDeadlineTimer &operator=(std::chrono::duration remaining) 8737: { setRemainingTime(remaining); return *this; } 8737: 8737: template 8737: void setRemainingTime(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8737: { 8737: if (remaining == remaining.max()) 8737: *this = QDeadlineTimer(Forever, type_); 8737: else 8737: setPreciseRemainingTime(0, std::chrono::nanoseconds(remaining).count(), type_); 8737: } 8737: 8737: std::chrono::nanoseconds remainingTimeAsDuration() const noexcept 8737: { 8737: if (isForever()) 8737: return std::chrono::nanoseconds::max(); 8737: qint64 nsecs = rawRemainingTimeNSecs(); 8737: if (nsecs <= 0) 8737: return std::chrono::nanoseconds::zero(); 8737: return std::chrono::nanoseconds(nsecs); 8737: } 8737: 8737: template 8737: friend QDeadlineTimer operator+(QDeadlineTimer dt, std::chrono::duration value) 8737: { return QDeadlineTimer::addNSecs(dt, std::chrono::duration_cast(value).count()); } 8737: template 8737: friend QDeadlineTimer operator+(std::chrono::duration value, QDeadlineTimer dt) 8737: { return dt + value; } 8737: template 8737: friend QDeadlineTimer operator+=(QDeadlineTimer &dt, std::chrono::duration value) 8737: { return dt = dt + value; } 8737: 8737: 8737: private: 8737: qint64 t1; 8737: unsigned t2; 8737: unsigned type; 8737: 8737: qint64 rawRemainingTimeNSecs() const noexcept; 8737: }; 8737: 8737: 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); } 8737: 8737: 8737: 8737: 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; } }; 8737: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 2 3 4 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace QTest 8737: { 8737: __attribute__((__unused__)) inline static void qWait(int ms) 8737: { 8737: do { } while ((false) && (QCoreApplication::instance())); 8737: 8737: QDeadlineTimer timer(ms, Qt::PreciseTimer); 8737: int remaining = ms; 8737: do { 8737: QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); 8737: QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); 8737: remaining = timer.remainingTime(); 8737: if (remaining <= 0) 8737: break; 8737: QTest::qSleep(qMin(10, remaining)); 8737: remaining = timer.remainingTime(); 8737: } while (remaining > 0); 8737: } 8737: # 140 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 3 4 8737: } 8737: 8737: 8737: # 329 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/c++/8/set" 1 3 4 8737: # 58 "/usr/include/c++/8/set" 3 4 8737: 8737: # 59 "/usr/include/c++/8/set" 3 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_set.h" 1 3 8737: # 64 "/usr/include/c++/8/bits/stl_set.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: class multiset; 8737: # 92 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template, 8737: typename _Alloc = std::allocator<_Key> > 8737: class set 8737: { 8737: # 108 "/usr/include/c++/8/bits/stl_set.h" 3 8737: static_assert(is_same::type, _Key>::value, 8737: "std::set must have a non-const, non-volatile value_type"); 8737: 8737: 8737: 8737: 8737: 8737: 8737: public: 8737: 8737: 8737: 8737: typedef _Key key_type; 8737: typedef _Key value_type; 8737: typedef _Compare key_compare; 8737: typedef _Compare value_compare; 8737: typedef _Alloc allocator_type; 8737: 8737: 8737: private: 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Key>::other _Key_alloc_type; 8737: 8737: typedef _Rb_tree, 8737: key_compare, _Key_alloc_type> _Rep_type; 8737: _Rep_type _M_t; 8737: 8737: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8737: 8737: public: 8737: 8737: 8737: typedef typename _Alloc_traits::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: 8737: 8737: 8737: typedef typename _Rep_type::const_iterator iterator; 8737: typedef typename _Rep_type::const_iterator const_iterator; 8737: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8737: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8737: typedef typename _Rep_type::size_type size_type; 8737: typedef typename _Rep_type::difference_type difference_type; 8737: # 167 "/usr/include/c++/8/bits/stl_set.h" 3 8737: set() = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: set(const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Key_alloc_type(__a)) { } 8737: # 190 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: set(_InputIterator __first, _InputIterator __last) 8737: : _M_t() 8737: { _M_t._M_insert_unique(__first, __last); } 8737: # 207 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: set(_InputIterator __first, _InputIterator __last, 8737: const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Key_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__first, __last); } 8737: # 223 "/usr/include/c++/8/bits/stl_set.h" 3 8737: set(const set&) = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: set(set&&) = default; 8737: # 243 "/usr/include/c++/8/bits/stl_set.h" 3 8737: set(initializer_list __l, 8737: const _Compare& __comp = _Compare(), 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Key_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8737: 8737: 8737: explicit 8737: set(const allocator_type& __a) 8737: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8737: 8737: 8737: set(const set& __x, const allocator_type& __a) 8737: : _M_t(__x._M_t, _Key_alloc_type(__a)) { } 8737: 8737: 8737: set(set&& __x, const allocator_type& __a) 8737: noexcept(is_nothrow_copy_constructible<_Compare>::value 8737: && _Alloc_traits::_S_always_equal()) 8737: : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } 8737: 8737: 8737: set(initializer_list __l, const allocator_type& __a) 8737: : _M_t(_Compare(), _Key_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8737: 8737: 8737: template 8737: set(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a) 8737: : _M_t(_Compare(), _Key_alloc_type(__a)) 8737: { _M_t._M_insert_unique(__first, __last); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: ~set() = default; 8737: # 297 "/usr/include/c++/8/bits/stl_set.h" 3 8737: set& 8737: operator=(const set&) = default; 8737: 8737: 8737: set& 8737: operator=(set&&) = default; 8737: # 315 "/usr/include/c++/8/bits/stl_set.h" 3 8737: set& 8737: operator=(initializer_list __l) 8737: { 8737: _M_t._M_assign_unique(__l.begin(), __l.end()); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: key_compare 8737: key_comp() const 8737: { return _M_t.key_comp(); } 8737: 8737: value_compare 8737: value_comp() const 8737: { return _M_t.key_comp(); } 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_t.get_allocator()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: cbegin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: cend() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: crbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: crend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return _M_t.empty(); } 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_t.size(); } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _M_t.max_size(); } 8737: # 440 "/usr/include/c++/8/bits/stl_set.h" 3 8737: void 8737: swap(set& __x) 8737: noexcept(__is_nothrow_swappable<_Compare>::value) 8737: { _M_t.swap(__x._M_t); } 8737: # 460 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: std::pair 8737: emplace(_Args&&... __args) 8737: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8737: # 486 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: iterator 8737: emplace_hint(const_iterator __pos, _Args&&... __args) 8737: { 8737: return _M_t._M_emplace_hint_unique(__pos, 8737: std::forward<_Args>(__args)...); 8737: } 8737: # 508 "/usr/include/c++/8/bits/stl_set.h" 3 8737: std::pair 8737: insert(const value_type& __x) 8737: { 8737: std::pair __p = 8737: _M_t._M_insert_unique(__x); 8737: return std::pair(__p.first, __p.second); 8737: } 8737: 8737: 8737: std::pair 8737: insert(value_type&& __x) 8737: { 8737: std::pair __p = 8737: _M_t._M_insert_unique(std::move(__x)); 8737: return std::pair(__p.first, __p.second); 8737: } 8737: # 545 "/usr/include/c++/8/bits/stl_set.h" 3 8737: iterator 8737: insert(const_iterator __position, const value_type& __x) 8737: { return _M_t._M_insert_unique_(__position, __x); } 8737: 8737: 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8737: # 564 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: void 8737: insert(_InputIterator __first, _InputIterator __last) 8737: { _M_t._M_insert_unique(__first, __last); } 8737: # 577 "/usr/include/c++/8/bits/stl_set.h" 3 8737: void 8737: insert(initializer_list __l) 8737: { this->insert(__l.begin(), __l.end()); } 8737: # 652 "/usr/include/c++/8/bits/stl_set.h" 3 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(const_iterator __position) 8737: { return _M_t.erase(__position); } 8737: # 683 "/usr/include/c++/8/bits/stl_set.h" 3 8737: size_type 8737: erase(const key_type& __x) 8737: { return _M_t.erase(__x); } 8737: # 704 "/usr/include/c++/8/bits/stl_set.h" 3 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(const_iterator __first, const_iterator __last) 8737: { return _M_t.erase(__first, __last); } 8737: # 732 "/usr/include/c++/8/bits/stl_set.h" 3 8737: void 8737: clear() noexcept 8737: { _M_t.clear(); } 8737: # 747 "/usr/include/c++/8/bits/stl_set.h" 3 8737: size_type 8737: count(const key_type& __x) const 8737: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8737: # 774 "/usr/include/c++/8/bits/stl_set.h" 3 8737: iterator 8737: find(const key_type& __x) 8737: { return _M_t.find(__x); } 8737: 8737: const_iterator 8737: find(const key_type& __x) const 8737: { return _M_t.find(__x); } 8737: # 809 "/usr/include/c++/8/bits/stl_set.h" 3 8737: iterator 8737: lower_bound(const key_type& __x) 8737: { return _M_t.lower_bound(__x); } 8737: 8737: const_iterator 8737: lower_bound(const key_type& __x) const 8737: { return _M_t.lower_bound(__x); } 8737: # 839 "/usr/include/c++/8/bits/stl_set.h" 3 8737: iterator 8737: upper_bound(const key_type& __x) 8737: { return _M_t.upper_bound(__x); } 8737: 8737: const_iterator 8737: upper_bound(const key_type& __x) const 8737: { return _M_t.upper_bound(__x); } 8737: # 878 "/usr/include/c++/8/bits/stl_set.h" 3 8737: std::pair 8737: equal_range(const key_type& __x) 8737: { return _M_t.equal_range(__x); } 8737: 8737: std::pair 8737: equal_range(const key_type& __x) const 8737: { return _M_t.equal_range(__x); } 8737: # 901 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: friend bool 8737: operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8737: 8737: template 8737: friend bool 8737: operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8737: }; 8737: # 956 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: inline bool 8737: operator==(const set<_Key, _Compare, _Alloc>& __x, 8737: const set<_Key, _Compare, _Alloc>& __y) 8737: { return __x._M_t == __y._M_t; } 8737: # 973 "/usr/include/c++/8/bits/stl_set.h" 3 8737: template 8737: inline bool 8737: operator<(const set<_Key, _Compare, _Alloc>& __x, 8737: const set<_Key, _Compare, _Alloc>& __y) 8737: { return __x._M_t < __y._M_t; } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const set<_Key, _Compare, _Alloc>& __x, 8737: const set<_Key, _Compare, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const set<_Key, _Compare, _Alloc>& __x, 8737: const set<_Key, _Compare, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const set<_Key, _Compare, _Alloc>& __x, 8737: const set<_Key, _Compare, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const set<_Key, _Compare, _Alloc>& __x, 8737: const set<_Key, _Compare, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: # 1035 "/usr/include/c++/8/bits/stl_set.h" 3 8737: 8737: } 8737: # 62 "/usr/include/c++/8/set" 2 3 8737: # 1 "/usr/include/c++/8/bits/stl_multiset.h" 1 3 8737: # 64 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: template 8737: class set; 8737: # 94 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template , 8737: typename _Alloc = std::allocator<_Key> > 8737: class multiset 8737: { 8737: # 110 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: static_assert(is_same::type, _Key>::value, 8737: "std::multiset must have a non-const, non-volatile value_type"); 8737: 8737: 8737: 8737: 8737: 8737: 8737: public: 8737: 8737: typedef _Key key_type; 8737: typedef _Key value_type; 8737: typedef _Compare key_compare; 8737: typedef _Compare value_compare; 8737: typedef _Alloc allocator_type; 8737: 8737: private: 8737: 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Key>::other _Key_alloc_type; 8737: 8737: typedef _Rb_tree, 8737: key_compare, _Key_alloc_type> _Rep_type; 8737: 8737: _Rep_type _M_t; 8737: 8737: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8737: 8737: public: 8737: typedef typename _Alloc_traits::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: 8737: 8737: 8737: typedef typename _Rep_type::const_iterator iterator; 8737: typedef typename _Rep_type::const_iterator const_iterator; 8737: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8737: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8737: typedef typename _Rep_type::size_type size_type; 8737: typedef typename _Rep_type::difference_type difference_type; 8737: # 164 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: multiset() = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: multiset(const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Key_alloc_type(__a)) { } 8737: # 186 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: multiset(_InputIterator __first, _InputIterator __last) 8737: : _M_t() 8737: { _M_t._M_insert_equal(__first, __last); } 8737: # 202 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: multiset(_InputIterator __first, _InputIterator __last, 8737: const _Compare& __comp, 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Key_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__first, __last); } 8737: # 218 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: multiset(const multiset&) = default; 8737: # 227 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: multiset(multiset&&) = default; 8737: # 239 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: multiset(initializer_list __l, 8737: const _Compare& __comp = _Compare(), 8737: const allocator_type& __a = allocator_type()) 8737: : _M_t(__comp, _Key_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8737: 8737: 8737: explicit 8737: multiset(const allocator_type& __a) 8737: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8737: 8737: 8737: multiset(const multiset& __m, const allocator_type& __a) 8737: : _M_t(__m._M_t, _Key_alloc_type(__a)) { } 8737: 8737: 8737: multiset(multiset&& __m, const allocator_type& __a) 8737: noexcept(is_nothrow_copy_constructible<_Compare>::value 8737: && _Alloc_traits::_S_always_equal()) 8737: : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } 8737: 8737: 8737: multiset(initializer_list __l, const allocator_type& __a) 8737: : _M_t(_Compare(), _Key_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8737: 8737: 8737: template 8737: multiset(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a) 8737: : _M_t(_Compare(), _Key_alloc_type(__a)) 8737: { _M_t._M_insert_equal(__first, __last); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: ~multiset() = default; 8737: # 293 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: multiset& 8737: operator=(const multiset&) = default; 8737: 8737: 8737: multiset& 8737: operator=(multiset&&) = default; 8737: # 311 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: multiset& 8737: operator=(initializer_list __l) 8737: { 8737: _M_t._M_assign_equal(__l.begin(), __l.end()); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: key_compare 8737: key_comp() const 8737: { return _M_t.key_comp(); } 8737: 8737: value_compare 8737: value_comp() const 8737: { return _M_t.key_comp(); } 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_t.get_allocator()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: cbegin() const noexcept 8737: { return _M_t.begin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: cend() const noexcept 8737: { return _M_t.end(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: crbegin() const noexcept 8737: { return _M_t.rbegin(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: crend() const noexcept 8737: { return _M_t.rend(); } 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return _M_t.empty(); } 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return _M_t.size(); } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _M_t.max_size(); } 8737: # 436 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: void 8737: swap(multiset& __x) 8737: noexcept(__is_nothrow_swappable<_Compare>::value) 8737: { _M_t.swap(__x._M_t); } 8737: # 455 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: iterator 8737: emplace(_Args&&... __args) 8737: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8737: # 481 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: iterator 8737: emplace_hint(const_iterator __pos, _Args&&... __args) 8737: { 8737: return _M_t._M_emplace_hint_equal(__pos, 8737: std::forward<_Args>(__args)...); 8737: } 8737: # 501 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: iterator 8737: insert(const value_type& __x) 8737: { return _M_t._M_insert_equal(__x); } 8737: 8737: 8737: iterator 8737: insert(value_type&& __x) 8737: { return _M_t._M_insert_equal(std::move(__x)); } 8737: # 531 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: iterator 8737: insert(const_iterator __position, const value_type& __x) 8737: { return _M_t._M_insert_equal_(__position, __x); } 8737: 8737: 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8737: # 549 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: void 8737: insert(_InputIterator __first, _InputIterator __last) 8737: { _M_t._M_insert_equal(__first, __last); } 8737: # 562 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: void 8737: insert(initializer_list __l) 8737: { this->insert(__l.begin(), __l.end()); } 8737: # 637 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(const_iterator __position) 8737: { return _M_t.erase(__position); } 8737: # 668 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: size_type 8737: erase(const key_type& __x) 8737: { return _M_t.erase(__x); } 8737: # 689 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: __attribute ((__abi_tag__ ("cxx11"))) 8737: iterator 8737: erase(const_iterator __first, const_iterator __last) 8737: { return _M_t.erase(__first, __last); } 8737: # 717 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: void 8737: clear() noexcept 8737: { _M_t.clear(); } 8737: # 729 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: size_type 8737: count(const key_type& __x) const 8737: { return _M_t.count(__x); } 8737: # 755 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: iterator 8737: find(const key_type& __x) 8737: { return _M_t.find(__x); } 8737: 8737: const_iterator 8737: find(const key_type& __x) const 8737: { return _M_t.find(__x); } 8737: # 790 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: iterator 8737: lower_bound(const key_type& __x) 8737: { return _M_t.lower_bound(__x); } 8737: 8737: const_iterator 8737: lower_bound(const key_type& __x) const 8737: { return _M_t.lower_bound(__x); } 8737: # 820 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: iterator 8737: upper_bound(const key_type& __x) 8737: { return _M_t.upper_bound(__x); } 8737: 8737: const_iterator 8737: upper_bound(const key_type& __x) const 8737: { return _M_t.upper_bound(__x); } 8737: # 859 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: std::pair 8737: equal_range(const key_type& __x) 8737: { return _M_t.equal_range(__x); } 8737: 8737: std::pair 8737: equal_range(const key_type& __x) const 8737: { return _M_t.equal_range(__x); } 8737: # 882 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: friend bool 8737: operator==(const multiset<_K1, _C1, _A1>&, 8737: const multiset<_K1, _C1, _A1>&); 8737: 8737: template 8737: friend bool 8737: operator< (const multiset<_K1, _C1, _A1>&, 8737: const multiset<_K1, _C1, _A1>&); 8737: }; 8737: # 941 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: inline bool 8737: operator==(const multiset<_Key, _Compare, _Alloc>& __x, 8737: const multiset<_Key, _Compare, _Alloc>& __y) 8737: { return __x._M_t == __y._M_t; } 8737: # 958 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: template 8737: inline bool 8737: operator<(const multiset<_Key, _Compare, _Alloc>& __x, 8737: const multiset<_Key, _Compare, _Alloc>& __y) 8737: { return __x._M_t < __y._M_t; } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const multiset<_Key, _Compare, _Alloc>& __x, 8737: const multiset<_Key, _Compare, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const multiset<_Key,_Compare,_Alloc>& __x, 8737: const multiset<_Key,_Compare,_Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const multiset<_Key, _Compare, _Alloc>& __x, 8737: const multiset<_Key, _Compare, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const multiset<_Key, _Compare, _Alloc>& __x, 8737: const multiset<_Key, _Compare, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(multiset<_Key, _Compare, _Alloc>& __x, 8737: multiset<_Key, _Compare, _Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: # 1023 "/usr/include/c++/8/bits/stl_multiset.h" 3 8737: 8737: } 8737: # 63 "/usr/include/c++/8/set" 2 3 8737: # 330 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/QTest" 2 3 4 8737: # 35 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: 8737: # 1 "/<>/templates/tests/coverageobject.h" 1 8737: 8737: 8737: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QObject" 1 3 4 8737: # 4 "/<>/templates/tests/coverageobject.h" 2 8737: 8737: # 4 "/<>/templates/tests/coverageobject.h" 8737: class CoverageObject : public QObject 8737: { 8737: 8737: # 6 "/<>/templates/tests/coverageobject.h" 3 4 8737: public: 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: #pragma GCC diagnostic push 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: 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: 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: #pragma GCC diagnostic pop 8737: # 6 "/<>/templates/tests/coverageobject.h" 8737: struct QPrivateSignal {}; 8737: 8737: # 7 "/<>/templates/tests/coverageobject.h" 8737: public: 8737: CoverageObject(QObject *p = 8737: # 8 "/<>/templates/tests/coverageobject.h" 3 4 8737: __null 8737: # 8 "/<>/templates/tests/coverageobject.h" 8737: ) : QObject(p) {} 8737: virtual void initTest() {} 8737: virtual void cleanupTest() {} 8737: protected : 8737: void init(); 8737: void cleanup(); 8737: 8737: private: 8737: void saveCoverageData(); 8737: QString generateTestName() const; 8737: }; 8737: # 37 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: # 1 "/usr/include/c++/8/deque" 1 3 8737: # 58 "/usr/include/c++/8/deque" 3 8737: 8737: # 59 "/usr/include/c++/8/deque" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/stl_deque.h" 1 3 8737: # 68 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: 8737: # 68 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: # 91 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: constexpr inline size_t 8737: __deque_buf_size(size_t __size) 8737: { return (__size < 512 8737: ? size_t(512 / __size) : size_t(1)); } 8737: # 108 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: struct _Deque_iterator 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: private: 8737: template 8737: using __ptr_to = typename pointer_traits<_Ptr>::template rebind<_Up>; 8737: template 8737: using __iter = _Deque_iterator<_Tp, _CvTp&, __ptr_to<_CvTp>>; 8737: public: 8737: typedef __iter<_Tp> iterator; 8737: typedef __iter const_iterator; 8737: typedef __ptr_to<_Tp> _Elt_pointer; 8737: typedef __ptr_to<_Elt_pointer> _Map_pointer; 8737: 8737: 8737: static size_t _S_buffer_size() noexcept 8737: { return __deque_buf_size(sizeof(_Tp)); } 8737: 8737: typedef std::random_access_iterator_tag iterator_category; 8737: typedef _Tp value_type; 8737: typedef _Ptr pointer; 8737: typedef _Ref reference; 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Deque_iterator _Self; 8737: 8737: _Elt_pointer _M_cur; 8737: _Elt_pointer _M_first; 8737: _Elt_pointer _M_last; 8737: _Map_pointer _M_node; 8737: 8737: _Deque_iterator(_Elt_pointer __x, _Map_pointer __y) noexcept 8737: : _M_cur(__x), _M_first(*__y), 8737: _M_last(*__y + _S_buffer_size()), _M_node(__y) { } 8737: 8737: _Deque_iterator() noexcept 8737: : _M_cur(), _M_first(), _M_last(), _M_node() { } 8737: 8737: _Deque_iterator(const iterator& __x) noexcept 8737: : _M_cur(__x._M_cur), _M_first(__x._M_first), 8737: _M_last(__x._M_last), _M_node(__x._M_node) { } 8737: 8737: iterator 8737: _M_const_cast() const noexcept 8737: { return iterator(_M_cur, _M_node); } 8737: 8737: reference 8737: operator*() const noexcept 8737: { return *_M_cur; } 8737: 8737: pointer 8737: operator->() const noexcept 8737: { return _M_cur; } 8737: 8737: _Self& 8737: operator++() noexcept 8737: { 8737: ++_M_cur; 8737: if (_M_cur == _M_last) 8737: { 8737: _M_set_node(_M_node + 1); 8737: _M_cur = _M_first; 8737: } 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator++(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: ++*this; 8737: return __tmp; 8737: } 8737: 8737: _Self& 8737: operator--() noexcept 8737: { 8737: if (_M_cur == _M_first) 8737: { 8737: _M_set_node(_M_node - 1); 8737: _M_cur = _M_last; 8737: } 8737: --_M_cur; 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator--(int) noexcept 8737: { 8737: _Self __tmp = *this; 8737: --*this; 8737: return __tmp; 8737: } 8737: 8737: _Self& 8737: operator+=(difference_type __n) noexcept 8737: { 8737: const difference_type __offset = __n + (_M_cur - _M_first); 8737: if (__offset >= 0 && __offset < difference_type(_S_buffer_size())) 8737: _M_cur += __n; 8737: else 8737: { 8737: const difference_type __node_offset = 8737: __offset > 0 ? __offset / difference_type(_S_buffer_size()) 8737: : -difference_type((-__offset - 1) 8737: / _S_buffer_size()) - 1; 8737: _M_set_node(_M_node + __node_offset); 8737: _M_cur = _M_first + (__offset - __node_offset 8737: * difference_type(_S_buffer_size())); 8737: } 8737: return *this; 8737: } 8737: 8737: _Self 8737: operator+(difference_type __n) const noexcept 8737: { 8737: _Self __tmp = *this; 8737: return __tmp += __n; 8737: } 8737: 8737: _Self& 8737: operator-=(difference_type __n) noexcept 8737: { return *this += -__n; } 8737: 8737: _Self 8737: operator-(difference_type __n) const noexcept 8737: { 8737: _Self __tmp = *this; 8737: return __tmp -= __n; 8737: } 8737: 8737: reference 8737: operator[](difference_type __n) const noexcept 8737: { return *(*this + __n); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: _M_set_node(_Map_pointer __new_node) noexcept 8737: { 8737: _M_node = __new_node; 8737: _M_first = *__new_node; 8737: _M_last = _M_first + difference_type(_S_buffer_size()); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { return __x._M_cur == __y._M_cur; } 8737: 8737: template 8737: inline bool 8737: operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { return __x._M_cur == __y._M_cur; } 8737: 8737: template 8737: inline bool 8737: operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { return !(__x == __y); } 8737: 8737: template 8737: inline bool 8737: operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur) 8737: : (__x._M_node < __y._M_node); } 8737: 8737: template 8737: inline bool 8737: operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur) 8737: : (__x._M_node < __y._M_node); } 8737: 8737: template 8737: inline bool 8737: operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { return __y < __x; } 8737: 8737: template 8737: inline bool 8737: operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { return !(__x < __y); } 8737: 8737: template 8737: inline bool 8737: operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { return !(__x < __y); } 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type 8737: operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x, 8737: const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) noexcept 8737: { 8737: return typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type 8737: (_Deque_iterator<_Tp, _Ref, _Ptr>::_S_buffer_size()) 8737: * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) 8737: + (__y._M_last - __y._M_cur); 8737: } 8737: 8737: template 8737: inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type 8737: operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x, 8737: const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) noexcept 8737: { 8737: return typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type 8737: (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size()) 8737: * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first) 8737: + (__y._M_last - __y._M_cur); 8737: } 8737: 8737: template 8737: inline _Deque_iterator<_Tp, _Ref, _Ptr> 8737: operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x) 8737: noexcept 8737: { return __x + __n; } 8737: 8737: template 8737: void 8737: fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>&, 8737: const _Deque_iterator<_Tp, _Tp&, _Tp*>&, const _Tp&); 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8737: 8737: template 8737: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: copy(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { return std::copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*>(__first), 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*>(__last), 8737: __result); } 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: copy_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8737: 8737: template 8737: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: copy_backward(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { return std::copy_backward(_Deque_iterator<_Tp, 8737: const _Tp&, const _Tp*>(__first), 8737: _Deque_iterator<_Tp, 8737: const _Tp&, const _Tp*>(__last), 8737: __result); } 8737: 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: move(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8737: 8737: template 8737: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: move(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { return std::move(_Deque_iterator<_Tp, const _Tp&, const _Tp*>(__first), 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*>(__last), 8737: __result); } 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: move_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*>, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*>); 8737: 8737: template 8737: inline _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: move_backward(_Deque_iterator<_Tp, _Tp&, _Tp*> __first, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { return std::move_backward(_Deque_iterator<_Tp, 8737: const _Tp&, const _Tp*>(__first), 8737: _Deque_iterator<_Tp, 8737: const _Tp&, const _Tp*>(__last), 8737: __result); } 8737: # 460 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: class _Deque_base 8737: { 8737: protected: 8737: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8737: rebind<_Tp>::other _Tp_alloc_type; 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8737: 8737: 8737: 8737: 8737: 8737: typedef typename _Alloc_traits::pointer _Ptr; 8737: typedef typename _Alloc_traits::const_pointer _Ptr_const; 8737: 8737: 8737: typedef typename _Alloc_traits::template rebind<_Ptr>::other 8737: _Map_alloc_type; 8737: typedef __gnu_cxx::__alloc_traits<_Map_alloc_type> _Map_alloc_traits; 8737: 8737: public: 8737: typedef _Alloc allocator_type; 8737: typedef typename _Alloc_traits::size_type size_type; 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return allocator_type(_M_get_Tp_allocator()); } 8737: 8737: typedef _Deque_iterator<_Tp, _Tp&, _Ptr> iterator; 8737: typedef _Deque_iterator<_Tp, const _Tp&, _Ptr_const> const_iterator; 8737: 8737: _Deque_base() 8737: : _M_impl() 8737: { _M_initialize_map(0); } 8737: 8737: _Deque_base(size_t __num_elements) 8737: : _M_impl() 8737: { _M_initialize_map(__num_elements); } 8737: 8737: _Deque_base(const allocator_type& __a, size_t __num_elements) 8737: : _M_impl(__a) 8737: { _M_initialize_map(__num_elements); } 8737: 8737: _Deque_base(const allocator_type& __a) 8737: : _M_impl(__a) 8737: { } 8737: 8737: 8737: _Deque_base(_Deque_base&& __x, false_type) 8737: : _M_impl(__x._M_move_impl()) 8737: { } 8737: 8737: _Deque_base(_Deque_base&& __x, true_type) 8737: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8737: { 8737: _M_initialize_map(0); 8737: if (__x._M_impl._M_map) 8737: this->_M_impl._M_swap_data(__x._M_impl); 8737: } 8737: 8737: _Deque_base(_Deque_base&& __x) 8737: : _Deque_base(std::move(__x), typename _Alloc_traits::is_always_equal{}) 8737: { } 8737: 8737: _Deque_base(_Deque_base&& __x, const allocator_type& __a, size_type __n) 8737: : _M_impl(__a) 8737: { 8737: if (__x.get_allocator() == __a) 8737: { 8737: if (__x._M_impl._M_map) 8737: { 8737: _M_initialize_map(0); 8737: this->_M_impl._M_swap_data(__x._M_impl); 8737: } 8737: } 8737: else 8737: { 8737: _M_initialize_map(__n); 8737: } 8737: } 8737: 8737: 8737: ~_Deque_base() noexcept; 8737: 8737: protected: 8737: typedef typename iterator::_Map_pointer _Map_pointer; 8737: 8737: 8737: 8737: 8737: struct _Deque_impl 8737: : public _Tp_alloc_type 8737: { 8737: _Map_pointer _M_map; 8737: size_t _M_map_size; 8737: iterator _M_start; 8737: iterator _M_finish; 8737: 8737: _Deque_impl() 8737: : _Tp_alloc_type(), _M_map(), _M_map_size(0), 8737: _M_start(), _M_finish() 8737: { } 8737: 8737: _Deque_impl(const _Tp_alloc_type& __a) noexcept 8737: : _Tp_alloc_type(__a), _M_map(), _M_map_size(0), 8737: _M_start(), _M_finish() 8737: { } 8737: 8737: 8737: _Deque_impl(_Deque_impl&&) = default; 8737: 8737: _Deque_impl(_Tp_alloc_type&& __a) noexcept 8737: : _Tp_alloc_type(std::move(__a)), _M_map(), _M_map_size(0), 8737: _M_start(), _M_finish() 8737: { } 8737: 8737: 8737: void _M_swap_data(_Deque_impl& __x) noexcept 8737: { 8737: using std::swap; 8737: swap(this->_M_start, __x._M_start); 8737: swap(this->_M_finish, __x._M_finish); 8737: swap(this->_M_map, __x._M_map); 8737: swap(this->_M_map_size, __x._M_map_size); 8737: } 8737: }; 8737: 8737: _Tp_alloc_type& 8737: _M_get_Tp_allocator() noexcept 8737: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8737: 8737: const _Tp_alloc_type& 8737: _M_get_Tp_allocator() const noexcept 8737: { return *static_cast(&this->_M_impl); } 8737: 8737: _Map_alloc_type 8737: _M_get_map_allocator() const noexcept 8737: { return _Map_alloc_type(_M_get_Tp_allocator()); } 8737: 8737: _Ptr 8737: _M_allocate_node() 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Traits; 8737: return _Traits::allocate(_M_impl, __deque_buf_size(sizeof(_Tp))); 8737: } 8737: 8737: void 8737: _M_deallocate_node(_Ptr __p) noexcept 8737: { 8737: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Traits; 8737: _Traits::deallocate(_M_impl, __p, __deque_buf_size(sizeof(_Tp))); 8737: } 8737: 8737: _Map_pointer 8737: _M_allocate_map(size_t __n) 8737: { 8737: _Map_alloc_type __map_alloc = _M_get_map_allocator(); 8737: return _Map_alloc_traits::allocate(__map_alloc, __n); 8737: } 8737: 8737: void 8737: _M_deallocate_map(_Map_pointer __p, size_t __n) noexcept 8737: { 8737: _Map_alloc_type __map_alloc = _M_get_map_allocator(); 8737: _Map_alloc_traits::deallocate(__map_alloc, __p, __n); 8737: } 8737: 8737: protected: 8737: void _M_initialize_map(size_t); 8737: void _M_create_nodes(_Map_pointer __nstart, _Map_pointer __nfinish); 8737: void _M_destroy_nodes(_Map_pointer __nstart, 8737: _Map_pointer __nfinish) noexcept; 8737: enum { _S_initial_map_size = 8 }; 8737: 8737: _Deque_impl _M_impl; 8737: 8737: 8737: private: 8737: _Deque_impl 8737: _M_move_impl() 8737: { 8737: if (!_M_impl._M_map) 8737: return std::move(_M_impl); 8737: 8737: 8737: _Tp_alloc_type __alloc{_M_get_Tp_allocator()}; 8737: 8737: _Tp_alloc_type __sink __attribute((__unused__)) {std::move(__alloc)}; 8737: 8737: _Deque_base __empty{__alloc}; 8737: __empty._M_initialize_map(0); 8737: 8737: _Deque_impl __ret{std::move(_M_get_Tp_allocator())}; 8737: _M_impl._M_swap_data(__ret); 8737: _M_impl._M_swap_data(__empty._M_impl); 8737: return __ret; 8737: } 8737: 8737: }; 8737: 8737: template 8737: _Deque_base<_Tp, _Alloc>:: 8737: ~_Deque_base() noexcept 8737: { 8737: if (this->_M_impl._M_map) 8737: { 8737: _M_destroy_nodes(this->_M_impl._M_start._M_node, 8737: this->_M_impl._M_finish._M_node + 1); 8737: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8737: } 8737: } 8737: # 680 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: void 8737: _Deque_base<_Tp, _Alloc>:: 8737: _M_initialize_map(size_t __num_elements) 8737: { 8737: const size_t __num_nodes = (__num_elements/ __deque_buf_size(sizeof(_Tp)) 8737: + 1); 8737: 8737: this->_M_impl._M_map_size = std::max((size_t) _S_initial_map_size, 8737: size_t(__num_nodes + 2)); 8737: this->_M_impl._M_map = _M_allocate_map(this->_M_impl._M_map_size); 8737: 8737: 8737: 8737: 8737: 8737: 8737: _Map_pointer __nstart = (this->_M_impl._M_map 8737: + (this->_M_impl._M_map_size - __num_nodes) / 2); 8737: _Map_pointer __nfinish = __nstart + __num_nodes; 8737: 8737: try 8737: { _M_create_nodes(__nstart, __nfinish); } 8737: catch(...) 8737: { 8737: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8737: this->_M_impl._M_map = _Map_pointer(); 8737: this->_M_impl._M_map_size = 0; 8737: throw; 8737: } 8737: 8737: this->_M_impl._M_start._M_set_node(__nstart); 8737: this->_M_impl._M_finish._M_set_node(__nfinish - 1); 8737: this->_M_impl._M_start._M_cur = _M_impl._M_start._M_first; 8737: this->_M_impl._M_finish._M_cur = (this->_M_impl._M_finish._M_first 8737: + __num_elements 8737: % __deque_buf_size(sizeof(_Tp))); 8737: } 8737: 8737: template 8737: void 8737: _Deque_base<_Tp, _Alloc>:: 8737: _M_create_nodes(_Map_pointer __nstart, _Map_pointer __nfinish) 8737: { 8737: _Map_pointer __cur; 8737: try 8737: { 8737: for (__cur = __nstart; __cur < __nfinish; ++__cur) 8737: *__cur = this->_M_allocate_node(); 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(__nstart, __cur); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: void 8737: _Deque_base<_Tp, _Alloc>:: 8737: _M_destroy_nodes(_Map_pointer __nstart, 8737: _Map_pointer __nfinish) noexcept 8737: { 8737: for (_Map_pointer __n = __nstart; __n < __nfinish; ++__n) 8737: _M_deallocate_node(*__n); 8737: } 8737: # 831 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template > 8737: class deque : protected _Deque_base<_Tp, _Alloc> 8737: { 8737: # 844 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: static_assert(is_same::type, _Tp>::value, 8737: "std::deque must have a non-const, non-volatile value_type"); 8737: 8737: 8737: 8737: 8737: 8737: 8737: typedef _Deque_base<_Tp, _Alloc> _Base; 8737: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8737: typedef typename _Base::_Alloc_traits _Alloc_traits; 8737: typedef typename _Base::_Map_pointer _Map_pointer; 8737: 8737: public: 8737: typedef _Tp value_type; 8737: typedef typename _Alloc_traits::pointer pointer; 8737: typedef typename _Alloc_traits::const_pointer const_pointer; 8737: typedef typename _Alloc_traits::reference reference; 8737: typedef typename _Alloc_traits::const_reference const_reference; 8737: typedef typename _Base::iterator iterator; 8737: typedef typename _Base::const_iterator const_iterator; 8737: typedef std::reverse_iterator const_reverse_iterator; 8737: typedef std::reverse_iterator reverse_iterator; 8737: typedef size_t size_type; 8737: typedef ptrdiff_t difference_type; 8737: typedef _Alloc allocator_type; 8737: 8737: protected: 8737: static size_t _S_buffer_size() noexcept 8737: { return __deque_buf_size(sizeof(_Tp)); } 8737: 8737: 8737: using _Base::_M_initialize_map; 8737: using _Base::_M_create_nodes; 8737: using _Base::_M_destroy_nodes; 8737: using _Base::_M_allocate_node; 8737: using _Base::_M_deallocate_node; 8737: using _Base::_M_allocate_map; 8737: using _Base::_M_deallocate_map; 8737: using _Base::_M_get_Tp_allocator; 8737: 8737: 8737: 8737: 8737: 8737: using _Base::_M_impl; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: 8737: deque() : _Base() { } 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: deque(const allocator_type& __a) 8737: : _Base(__a, 0) { } 8737: # 917 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: explicit 8737: deque(size_type __n, const allocator_type& __a = allocator_type()) 8737: : _Base(__a, __n) 8737: { _M_default_initialize(); } 8737: # 930 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque(size_type __n, const value_type& __value, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a, __n) 8737: { _M_fill_initialize(__value); } 8737: # 957 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque(const deque& __x) 8737: : _Base(_Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator()), 8737: __x.size()) 8737: { std::__uninitialized_copy_a(__x.begin(), __x.end(), 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); } 8737: # 972 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque(deque&& __x) 8737: : _Base(std::move(__x)) { } 8737: 8737: 8737: deque(const deque& __x, const allocator_type& __a) 8737: : _Base(__a, __x.size()) 8737: { std::__uninitialized_copy_a(__x.begin(), __x.end(), 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); } 8737: 8737: 8737: deque(deque&& __x, const allocator_type& __a) 8737: : _Base(std::move(__x), __a, __x.size()) 8737: { 8737: if (__x.get_allocator() != __a) 8737: { 8737: std::__uninitialized_move_a(__x.begin(), __x.end(), 8737: this->_M_impl._M_start, 8737: _M_get_Tp_allocator()); 8737: __x.clear(); 8737: } 8737: } 8737: # 1006 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque(initializer_list __l, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a) 8737: { 8737: _M_range_initialize(__l.begin(), __l.end(), 8737: random_access_iterator_tag()); 8737: } 8737: # 1031 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template> 8737: deque(_InputIterator __first, _InputIterator __last, 8737: const allocator_type& __a = allocator_type()) 8737: : _Base(__a) 8737: { _M_initialize_dispatch(__first, __last, __false_type()); } 8737: # 1054 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: ~deque() 8737: { _M_destroy_data(begin(), end(), _M_get_Tp_allocator()); } 8737: # 1066 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque& 8737: operator=(const deque& __x); 8737: # 1078 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque& 8737: operator=(deque&& __x) noexcept(_Alloc_traits::_S_always_equal()) 8737: { 8737: using __always_equal = typename _Alloc_traits::is_always_equal; 8737: _M_move_assign1(std::move(__x), __always_equal{}); 8737: return *this; 8737: } 8737: # 1097 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: deque& 8737: operator=(initializer_list __l) 8737: { 8737: _M_assign_aux(__l.begin(), __l.end(), 8737: random_access_iterator_tag()); 8737: return *this; 8737: } 8737: # 1116 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: assign(size_type __n, const value_type& __val) 8737: { _M_fill_assign(__n, __val); } 8737: # 1133 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template> 8737: void 8737: assign(_InputIterator __first, _InputIterator __last) 8737: { _M_assign_dispatch(__first, __last, __false_type()); } 8737: # 1160 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: assign(initializer_list __l) 8737: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8737: 8737: 8737: 8737: allocator_type 8737: get_allocator() const noexcept 8737: { return _Base::get_allocator(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: begin() noexcept 8737: { return this->_M_impl._M_start; } 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: begin() const noexcept 8737: { return this->_M_impl._M_start; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: iterator 8737: end() noexcept 8737: { return this->_M_impl._M_finish; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: end() const noexcept 8737: { return this->_M_impl._M_finish; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rbegin() noexcept 8737: { return reverse_iterator(this->_M_impl._M_finish); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rbegin() const noexcept 8737: { return const_reverse_iterator(this->_M_impl._M_finish); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: reverse_iterator 8737: rend() noexcept 8737: { return reverse_iterator(this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: rend() const noexcept 8737: { return const_reverse_iterator(this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cbegin() const noexcept 8737: { return this->_M_impl._M_start; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_iterator 8737: cend() const noexcept 8737: { return this->_M_impl._M_finish; } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crbegin() const noexcept 8737: { return const_reverse_iterator(this->_M_impl._M_finish); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: const_reverse_iterator 8737: crend() const noexcept 8737: { return const_reverse_iterator(this->_M_impl._M_start); } 8737: 8737: 8737: 8737: 8737: size_type 8737: size() const noexcept 8737: { return this->_M_impl._M_finish - this->_M_impl._M_start; } 8737: 8737: 8737: size_type 8737: max_size() const noexcept 8737: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8737: # 1299 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: resize(size_type __new_size) 8737: { 8737: const size_type __len = size(); 8737: if (__new_size > __len) 8737: _M_default_append(__new_size - __len); 8737: else if (__new_size < __len) 8737: _M_erase_at_end(this->_M_impl._M_start 8737: + difference_type(__new_size)); 8737: } 8737: # 1321 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: resize(size_type __new_size, const value_type& __x) 8737: { 8737: const size_type __len = size(); 8737: if (__new_size > __len) 8737: _M_fill_insert(this->_M_impl._M_finish, __new_size - __len, __x); 8737: else if (__new_size < __len) 8737: _M_erase_at_end(this->_M_impl._M_start 8737: + difference_type(__new_size)); 8737: } 8737: # 1357 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: shrink_to_fit() noexcept 8737: { _M_shrink_to_fit(); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: bool 8737: empty() const noexcept 8737: { return this->_M_impl._M_finish == this->_M_impl._M_start; } 8737: # 1382 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: reference 8737: operator[](size_type __n) noexcept 8737: { 8737: ; 8737: return this->_M_impl._M_start[difference_type(__n)]; 8737: } 8737: # 1400 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: const_reference 8737: operator[](size_type __n) const noexcept 8737: { 8737: ; 8737: return this->_M_impl._M_start[difference_type(__n)]; 8737: } 8737: 8737: protected: 8737: 8737: void 8737: _M_range_check(size_type __n) const 8737: { 8737: if (__n >= this->size()) 8737: __throw_out_of_range_fmt(("deque::_M_range_check: __n " "(which is %zu)>= this->size() " "(which is %zu)") 8737: 8737: , 8737: __n, this->size()); 8737: } 8737: 8737: public: 8737: # 1431 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: reference 8737: at(size_type __n) 8737: { 8737: _M_range_check(__n); 8737: return (*this)[__n]; 8737: } 8737: # 1449 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: const_reference 8737: at(size_type __n) const 8737: { 8737: _M_range_check(__n); 8737: return (*this)[__n]; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: front() noexcept 8737: { 8737: ; 8737: return *begin(); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: front() const noexcept 8737: { 8737: ; 8737: return *begin(); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: reference 8737: back() noexcept 8737: { 8737: ; 8737: iterator __tmp = end(); 8737: --__tmp; 8737: return *__tmp; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: const_reference 8737: back() const noexcept 8737: { 8737: ; 8737: const_iterator __tmp = end(); 8737: --__tmp; 8737: return *__tmp; 8737: } 8737: # 1514 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: push_front(const value_type& __x) 8737: { 8737: if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first) 8737: { 8737: _Alloc_traits::construct(this->_M_impl, 8737: this->_M_impl._M_start._M_cur - 1, 8737: __x); 8737: --this->_M_impl._M_start._M_cur; 8737: } 8737: else 8737: _M_push_front_aux(__x); 8737: } 8737: 8737: 8737: void 8737: push_front(value_type&& __x) 8737: { emplace_front(std::move(__x)); } 8737: 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: emplace_front(_Args&&... __args); 8737: # 1551 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: push_back(const value_type& __x) 8737: { 8737: if (this->_M_impl._M_finish._M_cur 8737: != this->_M_impl._M_finish._M_last - 1) 8737: { 8737: _Alloc_traits::construct(this->_M_impl, 8737: this->_M_impl._M_finish._M_cur, __x); 8737: ++this->_M_impl._M_finish._M_cur; 8737: } 8737: else 8737: _M_push_back_aux(__x); 8737: } 8737: 8737: 8737: void 8737: push_back(value_type&& __x) 8737: { emplace_back(std::move(__x)); } 8737: 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: emplace_back(_Args&&... __args); 8737: # 1587 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: pop_front() noexcept 8737: { 8737: ; 8737: if (this->_M_impl._M_start._M_cur 8737: != this->_M_impl._M_start._M_last - 1) 8737: { 8737: _Alloc_traits::destroy(this->_M_impl, 8737: this->_M_impl._M_start._M_cur); 8737: ++this->_M_impl._M_start._M_cur; 8737: } 8737: else 8737: _M_pop_front_aux(); 8737: } 8737: # 1610 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: pop_back() noexcept 8737: { 8737: ; 8737: if (this->_M_impl._M_finish._M_cur 8737: != this->_M_impl._M_finish._M_first) 8737: { 8737: --this->_M_impl._M_finish._M_cur; 8737: _Alloc_traits::destroy(this->_M_impl, 8737: this->_M_impl._M_finish._M_cur); 8737: } 8737: else 8737: _M_pop_back_aux(); 8737: } 8737: # 1635 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: iterator 8737: emplace(const_iterator __position, _Args&&... __args); 8737: # 1648 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: iterator 8737: insert(const_iterator __position, const value_type& __x); 8737: # 1674 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: iterator 8737: insert(const_iterator __position, value_type&& __x) 8737: { return emplace(__position, std::move(__x)); } 8737: # 1687 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: iterator 8737: insert(const_iterator __p, initializer_list __l) 8737: { 8737: auto __offset = __p - cbegin(); 8737: _M_range_insert_aux(__p._M_const_cast(), __l.begin(), __l.end(), 8737: std::random_access_iterator_tag()); 8737: return begin() + __offset; 8737: } 8737: # 1708 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: iterator 8737: insert(const_iterator __position, size_type __n, const value_type& __x) 8737: { 8737: difference_type __offset = __position - cbegin(); 8737: _M_fill_insert(__position._M_const_cast(), __n, __x); 8737: return begin() + __offset; 8737: } 8737: # 1742 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template> 8737: iterator 8737: insert(const_iterator __position, _InputIterator __first, 8737: _InputIterator __last) 8737: { 8737: difference_type __offset = __position - cbegin(); 8737: _M_insert_dispatch(__position._M_const_cast(), 8737: __first, __last, __false_type()); 8737: return begin() + __offset; 8737: } 8737: # 1788 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: iterator 8737: 8737: erase(const_iterator __position) 8737: 8737: 8737: 8737: { return _M_erase(__position._M_const_cast()); } 8737: # 1812 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: iterator 8737: 8737: erase(const_iterator __first, const_iterator __last) 8737: 8737: 8737: 8737: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8737: # 1831 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: swap(deque& __x) noexcept 8737: { 8737: 8737: 8737: ; 8737: 8737: _M_impl._M_swap_data(__x._M_impl); 8737: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8737: __x._M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: clear() noexcept 8737: { _M_erase_at_end(begin()); } 8737: 8737: protected: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8737: { 8737: _M_initialize_map(static_cast(__n)); 8737: _M_fill_initialize(__x); 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { 8737: _M_range_initialize(__first, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: # 1890 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: void 8737: _M_range_initialize(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag); 8737: 8737: 8737: template 8737: void 8737: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag); 8737: # 1912 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: _M_fill_initialize(const value_type& __value); 8737: 8737: 8737: 8737: void 8737: _M_default_initialize(); 8737: # 1928 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: void 8737: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8737: { _M_fill_assign(__n, __val); } 8737: 8737: 8737: template 8737: void 8737: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8737: 8737: 8737: template 8737: void 8737: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag); 8737: 8737: 8737: template 8737: void 8737: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag) 8737: { 8737: const size_type __len = std::distance(__first, __last); 8737: if (__len > size()) 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, size()); 8737: std::copy(__first, __mid, begin()); 8737: _M_range_insert_aux(end(), __mid, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: else 8737: _M_erase_at_end(std::copy(__first, __last, begin())); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_fill_assign(size_type __n, const value_type& __val) 8737: { 8737: if (__n > size()) 8737: { 8737: std::fill(begin(), end(), __val); 8737: _M_fill_insert(end(), __n - size(), __val); 8737: } 8737: else 8737: { 8737: _M_erase_at_end(begin() + difference_type(__n)); 8737: std::fill(begin(), end(), __val); 8737: } 8737: } 8737: # 1989 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: void _M_push_back_aux(_Args&&... __args); 8737: 8737: template 8737: void _M_push_front_aux(_Args&&... __args); 8737: 8737: 8737: void _M_pop_back_aux(); 8737: 8737: void _M_pop_front_aux(); 8737: # 2008 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: void 8737: _M_insert_dispatch(iterator __pos, 8737: _Integer __n, _Integer __x, __true_type) 8737: { _M_fill_insert(__pos, __n, __x); } 8737: 8737: 8737: template 8737: void 8737: _M_insert_dispatch(iterator __pos, 8737: _InputIterator __first, _InputIterator __last, 8737: __false_type) 8737: { 8737: _M_range_insert_aux(__pos, __first, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: 8737: template 8737: void 8737: _M_range_insert_aux(iterator __pos, _InputIterator __first, 8737: _InputIterator __last, std::input_iterator_tag); 8737: 8737: 8737: template 8737: void 8737: _M_range_insert_aux(iterator __pos, _ForwardIterator __first, 8737: _ForwardIterator __last, std::forward_iterator_tag); 8737: 8737: 8737: 8737: 8737: void 8737: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: iterator 8737: _M_insert_aux(iterator __pos, _Args&&... __args); 8737: 8737: 8737: 8737: void 8737: _M_insert_aux(iterator __pos, size_type __n, const value_type& __x); 8737: 8737: 8737: template 8737: void 8737: _M_insert_aux(iterator __pos, 8737: _ForwardIterator __first, _ForwardIterator __last, 8737: size_type __n); 8737: 8737: 8737: 8737: 8737: void 8737: _M_destroy_data_aux(iterator __first, iterator __last); 8737: 8737: 8737: 8737: template 8737: void 8737: _M_destroy_data(iterator __first, iterator __last, const _Alloc1&) 8737: { _M_destroy_data_aux(__first, __last); } 8737: 8737: void 8737: _M_destroy_data(iterator __first, iterator __last, 8737: const std::allocator<_Tp>&) 8737: { 8737: if (!__has_trivial_destructor(value_type)) 8737: _M_destroy_data_aux(__first, __last); 8737: } 8737: 8737: 8737: void 8737: _M_erase_at_begin(iterator __pos) 8737: { 8737: _M_destroy_data(begin(), __pos, _M_get_Tp_allocator()); 8737: _M_destroy_nodes(this->_M_impl._M_start._M_node, __pos._M_node); 8737: this->_M_impl._M_start = __pos; 8737: } 8737: 8737: 8737: 8737: void 8737: _M_erase_at_end(iterator __pos) 8737: { 8737: _M_destroy_data(__pos, end(), _M_get_Tp_allocator()); 8737: _M_destroy_nodes(__pos._M_node + 1, 8737: this->_M_impl._M_finish._M_node + 1); 8737: this->_M_impl._M_finish = __pos; 8737: } 8737: 8737: iterator 8737: _M_erase(iterator __pos); 8737: 8737: iterator 8737: _M_erase(iterator __first, iterator __last); 8737: 8737: 8737: 8737: void 8737: _M_default_append(size_type __n); 8737: 8737: bool 8737: _M_shrink_to_fit(); 8737: 8737: 8737: 8737: 8737: iterator 8737: _M_reserve_elements_at_front(size_type __n) 8737: { 8737: const size_type __vacancies = this->_M_impl._M_start._M_cur 8737: - this->_M_impl._M_start._M_first; 8737: if (__n > __vacancies) 8737: _M_new_elements_at_front(__n - __vacancies); 8737: return this->_M_impl._M_start - difference_type(__n); 8737: } 8737: 8737: iterator 8737: _M_reserve_elements_at_back(size_type __n) 8737: { 8737: const size_type __vacancies = (this->_M_impl._M_finish._M_last 8737: - this->_M_impl._M_finish._M_cur) - 1; 8737: if (__n > __vacancies) 8737: _M_new_elements_at_back(__n - __vacancies); 8737: return this->_M_impl._M_finish + difference_type(__n); 8737: } 8737: 8737: void 8737: _M_new_elements_at_front(size_type __new_elements); 8737: 8737: void 8737: _M_new_elements_at_back(size_type __new_elements); 8737: # 2158 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: void 8737: _M_reserve_map_at_back(size_type __nodes_to_add = 1) 8737: { 8737: if (__nodes_to_add + 1 > this->_M_impl._M_map_size 8737: - (this->_M_impl._M_finish._M_node - this->_M_impl._M_map)) 8737: _M_reallocate_map(__nodes_to_add, false); 8737: } 8737: 8737: void 8737: _M_reserve_map_at_front(size_type __nodes_to_add = 1) 8737: { 8737: if (__nodes_to_add > size_type(this->_M_impl._M_start._M_node 8737: - this->_M_impl._M_map)) 8737: _M_reallocate_map(__nodes_to_add, true); 8737: } 8737: 8737: void 8737: _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front); 8737: 8737: 8737: 8737: 8737: 8737: void 8737: _M_move_assign1(deque&& __x, true_type) noexcept 8737: { 8737: this->_M_impl._M_swap_data(__x._M_impl); 8737: __x.clear(); 8737: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8737: } 8737: 8737: 8737: 8737: 8737: void 8737: _M_move_assign1(deque&& __x, false_type) 8737: { 8737: constexpr bool __move_storage = 8737: _Alloc_traits::_S_propagate_on_move_assign(); 8737: _M_move_assign2(std::move(__x), __bool_constant<__move_storage>()); 8737: } 8737: 8737: 8737: 8737: template 8737: void 8737: _M_replace_map(_Args&&... __args) 8737: { 8737: 8737: deque __newobj(std::forward<_Args>(__args)...); 8737: 8737: clear(); 8737: _M_deallocate_node(*begin()._M_node); 8737: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8737: this->_M_impl._M_map = nullptr; 8737: this->_M_impl._M_map_size = 0; 8737: 8737: this->_M_impl._M_swap_data(__newobj._M_impl); 8737: } 8737: 8737: 8737: void 8737: _M_move_assign2(deque&& __x, true_type) 8737: { 8737: 8737: auto __alloc = __x._M_get_Tp_allocator(); 8737: 8737: 8737: _M_replace_map(std::move(__x)); 8737: 8737: _M_get_Tp_allocator() = std::move(__alloc); 8737: } 8737: 8737: 8737: 8737: void 8737: _M_move_assign2(deque&& __x, false_type) 8737: { 8737: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8737: { 8737: 8737: 8737: _M_replace_map(std::move(__x), __x.get_allocator()); 8737: } 8737: else 8737: { 8737: 8737: 8737: _M_assign_aux(std::__make_move_if_noexcept_iterator(__x.begin()), 8737: std::__make_move_if_noexcept_iterator(__x.end()), 8737: std::random_access_iterator_tag()); 8737: __x.clear(); 8737: } 8737: } 8737: 8737: }; 8737: # 2275 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: inline bool 8737: operator==(const deque<_Tp, _Alloc>& __x, 8737: const deque<_Tp, _Alloc>& __y) 8737: { return __x.size() == __y.size() 8737: && std::equal(__x.begin(), __x.end(), __y.begin()); } 8737: # 2293 "/usr/include/c++/8/bits/stl_deque.h" 3 8737: template 8737: inline bool 8737: operator<(const deque<_Tp, _Alloc>& __x, 8737: const deque<_Tp, _Alloc>& __y) 8737: { return std::lexicographical_compare(__x.begin(), __x.end(), 8737: __y.begin(), __y.end()); } 8737: 8737: 8737: template 8737: inline bool 8737: operator!=(const deque<_Tp, _Alloc>& __x, 8737: const deque<_Tp, _Alloc>& __y) 8737: { return !(__x == __y); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>(const deque<_Tp, _Alloc>& __x, 8737: const deque<_Tp, _Alloc>& __y) 8737: { return __y < __x; } 8737: 8737: 8737: template 8737: inline bool 8737: operator<=(const deque<_Tp, _Alloc>& __x, 8737: const deque<_Tp, _Alloc>& __y) 8737: { return !(__y < __x); } 8737: 8737: 8737: template 8737: inline bool 8737: operator>=(const deque<_Tp, _Alloc>& __x, 8737: const deque<_Tp, _Alloc>& __y) 8737: { return !(__x < __y); } 8737: 8737: 8737: template 8737: inline void 8737: swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) 8737: noexcept(noexcept(__x.swap(__y))) 8737: { __x.swap(__y); } 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 65 "/usr/include/c++/8/deque" 2 3 8737: 8737: # 1 "/usr/include/c++/8/bits/deque.tcc" 1 3 8737: # 59 "/usr/include/c++/8/bits/deque.tcc" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_default_initialize() 8737: { 8737: _Map_pointer __cur; 8737: try 8737: { 8737: for (__cur = this->_M_impl._M_start._M_node; 8737: __cur < this->_M_impl._M_finish._M_node; 8737: ++__cur) 8737: std::__uninitialized_default_a(*__cur, *__cur + _S_buffer_size(), 8737: _M_get_Tp_allocator()); 8737: std::__uninitialized_default_a(this->_M_impl._M_finish._M_first, 8737: this->_M_impl._M_finish._M_cur, 8737: _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur), 8737: _M_get_Tp_allocator()); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: deque<_Tp, _Alloc>& 8737: deque<_Tp, _Alloc>:: 8737: operator=(const deque& __x) 8737: { 8737: if (&__x != this) 8737: { 8737: 8737: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8737: { 8737: if (!_Alloc_traits::_S_always_equal() 8737: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8737: { 8737: 8737: 8737: _M_replace_map(__x, __x.get_allocator()); 8737: std::__alloc_on_copy(_M_get_Tp_allocator(), 8737: __x._M_get_Tp_allocator()); 8737: return *this; 8737: } 8737: std::__alloc_on_copy(_M_get_Tp_allocator(), 8737: __x._M_get_Tp_allocator()); 8737: } 8737: 8737: const size_type __len = size(); 8737: if (__len >= __x.size()) 8737: _M_erase_at_end(std::copy(__x.begin(), __x.end(), 8737: this->_M_impl._M_start)); 8737: else 8737: { 8737: const_iterator __mid = __x.begin() + difference_type(__len); 8737: std::copy(__x.begin(), __mid, this->_M_impl._M_start); 8737: _M_range_insert_aux(this->_M_impl._M_finish, __mid, __x.end(), 8737: std::random_access_iterator_tag()); 8737: } 8737: } 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: deque<_Tp, _Alloc>:: 8737: emplace_front(_Args&&... __args) 8737: { 8737: if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first) 8737: { 8737: _Alloc_traits::construct(this->_M_impl, 8737: this->_M_impl._M_start._M_cur - 1, 8737: std::forward<_Args>(__args)...); 8737: --this->_M_impl._M_start._M_cur; 8737: } 8737: else 8737: _M_push_front_aux(std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: } 8737: 8737: template 8737: template 8737: 8737: 8737: 8737: void 8737: 8737: deque<_Tp, _Alloc>:: 8737: emplace_back(_Args&&... __args) 8737: { 8737: if (this->_M_impl._M_finish._M_cur 8737: != this->_M_impl._M_finish._M_last - 1) 8737: { 8737: _Alloc_traits::construct(this->_M_impl, 8737: this->_M_impl._M_finish._M_cur, 8737: std::forward<_Args>(__args)...); 8737: ++this->_M_impl._M_finish._M_cur; 8737: } 8737: else 8737: _M_push_back_aux(std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: template 8737: template 8737: typename deque<_Tp, _Alloc>::iterator 8737: deque<_Tp, _Alloc>:: 8737: emplace(const_iterator __position, _Args&&... __args) 8737: { 8737: if (__position._M_cur == this->_M_impl._M_start._M_cur) 8737: { 8737: emplace_front(std::forward<_Args>(__args)...); 8737: return this->_M_impl._M_start; 8737: } 8737: else if (__position._M_cur == this->_M_impl._M_finish._M_cur) 8737: { 8737: emplace_back(std::forward<_Args>(__args)...); 8737: iterator __tmp = this->_M_impl._M_finish; 8737: --__tmp; 8737: return __tmp; 8737: } 8737: else 8737: return _M_insert_aux(__position._M_const_cast(), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: 8737: template 8737: typename deque<_Tp, _Alloc>::iterator 8737: deque<_Tp, _Alloc>:: 8737: 8737: insert(const_iterator __position, const value_type& __x) 8737: 8737: 8737: 8737: { 8737: if (__position._M_cur == this->_M_impl._M_start._M_cur) 8737: { 8737: push_front(__x); 8737: return this->_M_impl._M_start; 8737: } 8737: else if (__position._M_cur == this->_M_impl._M_finish._M_cur) 8737: { 8737: push_back(__x); 8737: iterator __tmp = this->_M_impl._M_finish; 8737: --__tmp; 8737: return __tmp; 8737: } 8737: else 8737: return _M_insert_aux(__position._M_const_cast(), __x); 8737: } 8737: 8737: template 8737: typename deque<_Tp, _Alloc>::iterator 8737: deque<_Tp, _Alloc>:: 8737: _M_erase(iterator __position) 8737: { 8737: iterator __next = __position; 8737: ++__next; 8737: const difference_type __index = __position - begin(); 8737: if (static_cast(__index) < (size() >> 1)) 8737: { 8737: if (__position != begin()) 8737: std::move_backward(begin(), __position, __next); 8737: pop_front(); 8737: } 8737: else 8737: { 8737: if (__next != end()) 8737: std::move(__next, end(), __position); 8737: pop_back(); 8737: } 8737: return begin() + __index; 8737: } 8737: 8737: template 8737: typename deque<_Tp, _Alloc>::iterator 8737: deque<_Tp, _Alloc>:: 8737: _M_erase(iterator __first, iterator __last) 8737: { 8737: if (__first == __last) 8737: return __first; 8737: else if (__first == begin() && __last == end()) 8737: { 8737: clear(); 8737: return end(); 8737: } 8737: else 8737: { 8737: const difference_type __n = __last - __first; 8737: const difference_type __elems_before = __first - begin(); 8737: if (static_cast(__elems_before) <= (size() - __n) / 2) 8737: { 8737: if (__first != begin()) 8737: std::move_backward(begin(), __first, __last); 8737: _M_erase_at_begin(begin() + __n); 8737: } 8737: else 8737: { 8737: if (__last != end()) 8737: std::move(__last, end(), __first); 8737: _M_erase_at_end(end() - __n); 8737: } 8737: return begin() + __elems_before; 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag) 8737: { 8737: iterator __cur = begin(); 8737: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8737: *__cur = *__first; 8737: if (__first == __last) 8737: _M_erase_at_end(__cur); 8737: else 8737: _M_range_insert_aux(end(), __first, __last, 8737: std::__iterator_category(__first)); 8737: } 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x) 8737: { 8737: if (__pos._M_cur == this->_M_impl._M_start._M_cur) 8737: { 8737: iterator __new_start = _M_reserve_elements_at_front(__n); 8737: try 8737: { 8737: std::__uninitialized_fill_a(__new_start, this->_M_impl._M_start, 8737: __x, _M_get_Tp_allocator()); 8737: this->_M_impl._M_start = __new_start; 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(__new_start._M_node, 8737: this->_M_impl._M_start._M_node); 8737: throw; 8737: } 8737: } 8737: else if (__pos._M_cur == this->_M_impl._M_finish._M_cur) 8737: { 8737: iterator __new_finish = _M_reserve_elements_at_back(__n); 8737: try 8737: { 8737: std::__uninitialized_fill_a(this->_M_impl._M_finish, 8737: __new_finish, __x, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8737: __new_finish._M_node + 1); 8737: throw; 8737: } 8737: } 8737: else 8737: _M_insert_aux(__pos, __n, __x); 8737: } 8737: 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_default_append(size_type __n) 8737: { 8737: if (__n) 8737: { 8737: iterator __new_finish = _M_reserve_elements_at_back(__n); 8737: try 8737: { 8737: std::__uninitialized_default_a(this->_M_impl._M_finish, 8737: __new_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8737: __new_finish._M_node + 1); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: bool 8737: deque<_Tp, _Alloc>:: 8737: _M_shrink_to_fit() 8737: { 8737: const difference_type __front_capacity 8737: = (this->_M_impl._M_start._M_cur - this->_M_impl._M_start._M_first); 8737: if (__front_capacity == 0) 8737: return false; 8737: 8737: const difference_type __back_capacity 8737: = (this->_M_impl._M_finish._M_last - this->_M_impl._M_finish._M_cur); 8737: if (__front_capacity + __back_capacity < _S_buffer_size()) 8737: return false; 8737: 8737: return std::__shrink_to_fit_aux::_S_do_it(*this); 8737: } 8737: 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_fill_initialize(const value_type& __value) 8737: { 8737: _Map_pointer __cur; 8737: try 8737: { 8737: for (__cur = this->_M_impl._M_start._M_node; 8737: __cur < this->_M_impl._M_finish._M_node; 8737: ++__cur) 8737: std::__uninitialized_fill_a(*__cur, *__cur + _S_buffer_size(), 8737: __value, _M_get_Tp_allocator()); 8737: std::__uninitialized_fill_a(this->_M_impl._M_finish._M_first, 8737: this->_M_impl._M_finish._M_cur, 8737: __value, _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur), 8737: _M_get_Tp_allocator()); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_range_initialize(_InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag) 8737: { 8737: this->_M_initialize_map(0); 8737: try 8737: { 8737: for (; __first != __last; ++__first) 8737: 8737: emplace_back(*__first); 8737: 8737: 8737: 8737: } 8737: catch(...) 8737: { 8737: clear(); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag) 8737: { 8737: const size_type __n = std::distance(__first, __last); 8737: this->_M_initialize_map(__n); 8737: 8737: _Map_pointer __cur_node; 8737: try 8737: { 8737: for (__cur_node = this->_M_impl._M_start._M_node; 8737: __cur_node < this->_M_impl._M_finish._M_node; 8737: ++__cur_node) 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, _S_buffer_size()); 8737: std::__uninitialized_copy_a(__first, __mid, *__cur_node, 8737: _M_get_Tp_allocator()); 8737: __first = __mid; 8737: } 8737: std::__uninitialized_copy_a(__first, __last, 8737: this->_M_impl._M_finish._M_first, 8737: _M_get_Tp_allocator()); 8737: } 8737: catch(...) 8737: { 8737: std::_Destroy(this->_M_impl._M_start, 8737: iterator(*__cur_node, __cur_node), 8737: _M_get_Tp_allocator()); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_push_back_aux(_Args&&... __args) 8737: 8737: 8737: 8737: 8737: 8737: { 8737: _M_reserve_map_at_back(); 8737: *(this->_M_impl._M_finish._M_node + 1) = this->_M_allocate_node(); 8737: try 8737: { 8737: 8737: _Alloc_traits::construct(this->_M_impl, 8737: this->_M_impl._M_finish._M_cur, 8737: std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node 8737: + 1); 8737: this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_first; 8737: } 8737: catch(...) 8737: { 8737: _M_deallocate_node(*(this->_M_impl._M_finish._M_node + 1)); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_push_front_aux(_Args&&... __args) 8737: 8737: 8737: 8737: 8737: 8737: { 8737: _M_reserve_map_at_front(); 8737: *(this->_M_impl._M_start._M_node - 1) = this->_M_allocate_node(); 8737: try 8737: { 8737: this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node 8737: - 1); 8737: this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_last - 1; 8737: 8737: _Alloc_traits::construct(this->_M_impl, 8737: this->_M_impl._M_start._M_cur, 8737: std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: } 8737: catch(...) 8737: { 8737: ++this->_M_impl._M_start; 8737: _M_deallocate_node(*(this->_M_impl._M_start._M_node - 1)); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: void deque<_Tp, _Alloc>:: 8737: _M_pop_back_aux() 8737: { 8737: _M_deallocate_node(this->_M_impl._M_finish._M_first); 8737: this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node - 1); 8737: this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_last - 1; 8737: _Alloc_traits::destroy(_M_get_Tp_allocator(), 8737: this->_M_impl._M_finish._M_cur); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: void deque<_Tp, _Alloc>:: 8737: _M_pop_front_aux() 8737: { 8737: _Alloc_traits::destroy(_M_get_Tp_allocator(), 8737: this->_M_impl._M_start._M_cur); 8737: _M_deallocate_node(this->_M_impl._M_start._M_first); 8737: this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node + 1); 8737: this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_first; 8737: } 8737: 8737: template 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_range_insert_aux(iterator __pos, 8737: _InputIterator __first, _InputIterator __last, 8737: std::input_iterator_tag) 8737: { std::copy(__first, __last, std::inserter(*this, __pos)); } 8737: 8737: template 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_range_insert_aux(iterator __pos, 8737: _ForwardIterator __first, _ForwardIterator __last, 8737: std::forward_iterator_tag) 8737: { 8737: const size_type __n = std::distance(__first, __last); 8737: if (__pos._M_cur == this->_M_impl._M_start._M_cur) 8737: { 8737: iterator __new_start = _M_reserve_elements_at_front(__n); 8737: try 8737: { 8737: std::__uninitialized_copy_a(__first, __last, __new_start, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_start = __new_start; 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(__new_start._M_node, 8737: this->_M_impl._M_start._M_node); 8737: throw; 8737: } 8737: } 8737: else if (__pos._M_cur == this->_M_impl._M_finish._M_cur) 8737: { 8737: iterator __new_finish = _M_reserve_elements_at_back(__n); 8737: try 8737: { 8737: std::__uninitialized_copy_a(__first, __last, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8737: __new_finish._M_node + 1); 8737: throw; 8737: } 8737: } 8737: else 8737: _M_insert_aux(__pos, __first, __last, __n); 8737: } 8737: 8737: template 8737: 8737: template 8737: typename deque<_Tp, _Alloc>::iterator 8737: deque<_Tp, _Alloc>:: 8737: _M_insert_aux(iterator __pos, _Args&&... __args) 8737: { 8737: value_type __x_copy(std::forward<_Args>(__args)...); 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: difference_type __index = __pos - this->_M_impl._M_start; 8737: if (static_cast(__index) < size() / 2) 8737: { 8737: push_front(std::move(front())); 8737: iterator __front1 = this->_M_impl._M_start; 8737: ++__front1; 8737: iterator __front2 = __front1; 8737: ++__front2; 8737: __pos = this->_M_impl._M_start + __index; 8737: iterator __pos1 = __pos; 8737: ++__pos1; 8737: std::move(__front2, __pos1, __front1); 8737: } 8737: else 8737: { 8737: push_back(std::move(back())); 8737: iterator __back1 = this->_M_impl._M_finish; 8737: --__back1; 8737: iterator __back2 = __back1; 8737: --__back2; 8737: __pos = this->_M_impl._M_start + __index; 8737: std::move_backward(__pos, __back2, __back1); 8737: } 8737: *__pos = std::move(__x_copy); 8737: return __pos; 8737: } 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_insert_aux(iterator __pos, size_type __n, const value_type& __x) 8737: { 8737: const difference_type __elems_before = __pos - this->_M_impl._M_start; 8737: const size_type __length = this->size(); 8737: value_type __x_copy = __x; 8737: if (__elems_before < difference_type(__length / 2)) 8737: { 8737: iterator __new_start = _M_reserve_elements_at_front(__n); 8737: iterator __old_start = this->_M_impl._M_start; 8737: __pos = this->_M_impl._M_start + __elems_before; 8737: try 8737: { 8737: if (__elems_before >= difference_type(__n)) 8737: { 8737: iterator __start_n = (this->_M_impl._M_start 8737: + difference_type(__n)); 8737: std::__uninitialized_move_a(this->_M_impl._M_start, 8737: __start_n, __new_start, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_start = __new_start; 8737: std::move(__start_n, __pos, __old_start); 8737: std::fill(__pos - difference_type(__n), __pos, __x_copy); 8737: } 8737: else 8737: { 8737: std::__uninitialized_move_fill(this->_M_impl._M_start, 8737: __pos, __new_start, 8737: this->_M_impl._M_start, 8737: __x_copy, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_start = __new_start; 8737: std::fill(__old_start, __pos, __x_copy); 8737: } 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(__new_start._M_node, 8737: this->_M_impl._M_start._M_node); 8737: throw; 8737: } 8737: } 8737: else 8737: { 8737: iterator __new_finish = _M_reserve_elements_at_back(__n); 8737: iterator __old_finish = this->_M_impl._M_finish; 8737: const difference_type __elems_after = 8737: difference_type(__length) - __elems_before; 8737: __pos = this->_M_impl._M_finish - __elems_after; 8737: try 8737: { 8737: if (__elems_after > difference_type(__n)) 8737: { 8737: iterator __finish_n = (this->_M_impl._M_finish 8737: - difference_type(__n)); 8737: std::__uninitialized_move_a(__finish_n, 8737: this->_M_impl._M_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: std::move_backward(__pos, __finish_n, __old_finish); 8737: std::fill(__pos, __pos + difference_type(__n), __x_copy); 8737: } 8737: else 8737: { 8737: std::__uninitialized_fill_move(this->_M_impl._M_finish, 8737: __pos + difference_type(__n), 8737: __x_copy, __pos, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: std::fill(__pos, __old_finish, __x_copy); 8737: } 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8737: __new_finish._M_node + 1); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_insert_aux(iterator __pos, 8737: _ForwardIterator __first, _ForwardIterator __last, 8737: size_type __n) 8737: { 8737: const difference_type __elemsbefore = __pos - this->_M_impl._M_start; 8737: const size_type __length = size(); 8737: if (static_cast(__elemsbefore) < __length / 2) 8737: { 8737: iterator __new_start = _M_reserve_elements_at_front(__n); 8737: iterator __old_start = this->_M_impl._M_start; 8737: __pos = this->_M_impl._M_start + __elemsbefore; 8737: try 8737: { 8737: if (__elemsbefore >= difference_type(__n)) 8737: { 8737: iterator __start_n = (this->_M_impl._M_start 8737: + difference_type(__n)); 8737: std::__uninitialized_move_a(this->_M_impl._M_start, 8737: __start_n, __new_start, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_start = __new_start; 8737: std::move(__start_n, __pos, __old_start); 8737: std::copy(__first, __last, __pos - difference_type(__n)); 8737: } 8737: else 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, difference_type(__n) - __elemsbefore); 8737: std::__uninitialized_move_copy(this->_M_impl._M_start, 8737: __pos, __first, __mid, 8737: __new_start, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_start = __new_start; 8737: std::copy(__mid, __last, __old_start); 8737: } 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(__new_start._M_node, 8737: this->_M_impl._M_start._M_node); 8737: throw; 8737: } 8737: } 8737: else 8737: { 8737: iterator __new_finish = _M_reserve_elements_at_back(__n); 8737: iterator __old_finish = this->_M_impl._M_finish; 8737: const difference_type __elemsafter = 8737: difference_type(__length) - __elemsbefore; 8737: __pos = this->_M_impl._M_finish - __elemsafter; 8737: try 8737: { 8737: if (__elemsafter > difference_type(__n)) 8737: { 8737: iterator __finish_n = (this->_M_impl._M_finish 8737: - difference_type(__n)); 8737: std::__uninitialized_move_a(__finish_n, 8737: this->_M_impl._M_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: std::move_backward(__pos, __finish_n, __old_finish); 8737: std::copy(__first, __last, __pos); 8737: } 8737: else 8737: { 8737: _ForwardIterator __mid = __first; 8737: std::advance(__mid, __elemsafter); 8737: std::__uninitialized_copy_move(__mid, __last, __pos, 8737: this->_M_impl._M_finish, 8737: this->_M_impl._M_finish, 8737: _M_get_Tp_allocator()); 8737: this->_M_impl._M_finish = __new_finish; 8737: std::copy(__first, __mid, __pos); 8737: } 8737: } 8737: catch(...) 8737: { 8737: _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1, 8737: __new_finish._M_node + 1); 8737: throw; 8737: } 8737: } 8737: } 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_destroy_data_aux(iterator __first, iterator __last) 8737: { 8737: for (_Map_pointer __node = __first._M_node + 1; 8737: __node < __last._M_node; ++__node) 8737: std::_Destroy(*__node, *__node + _S_buffer_size(), 8737: _M_get_Tp_allocator()); 8737: 8737: if (__first._M_node != __last._M_node) 8737: { 8737: std::_Destroy(__first._M_cur, __first._M_last, 8737: _M_get_Tp_allocator()); 8737: std::_Destroy(__last._M_first, __last._M_cur, 8737: _M_get_Tp_allocator()); 8737: } 8737: else 8737: std::_Destroy(__first._M_cur, __last._M_cur, 8737: _M_get_Tp_allocator()); 8737: } 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_new_elements_at_front(size_type __new_elems) 8737: { 8737: if (this->max_size() - this->size() < __new_elems) 8737: __throw_length_error(("deque::_M_new_elements_at_front")); 8737: 8737: const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1) 8737: / _S_buffer_size()); 8737: _M_reserve_map_at_front(__new_nodes); 8737: size_type __i; 8737: try 8737: { 8737: for (__i = 1; __i <= __new_nodes; ++__i) 8737: *(this->_M_impl._M_start._M_node - __i) = this->_M_allocate_node(); 8737: } 8737: catch(...) 8737: { 8737: for (size_type __j = 1; __j < __i; ++__j) 8737: _M_deallocate_node(*(this->_M_impl._M_start._M_node - __j)); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_new_elements_at_back(size_type __new_elems) 8737: { 8737: if (this->max_size() - this->size() < __new_elems) 8737: __throw_length_error(("deque::_M_new_elements_at_back")); 8737: 8737: const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1) 8737: / _S_buffer_size()); 8737: _M_reserve_map_at_back(__new_nodes); 8737: size_type __i; 8737: try 8737: { 8737: for (__i = 1; __i <= __new_nodes; ++__i) 8737: *(this->_M_impl._M_finish._M_node + __i) = this->_M_allocate_node(); 8737: } 8737: catch(...) 8737: { 8737: for (size_type __j = 1; __j < __i; ++__j) 8737: _M_deallocate_node(*(this->_M_impl._M_finish._M_node + __j)); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: void 8737: deque<_Tp, _Alloc>:: 8737: _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front) 8737: { 8737: const size_type __old_num_nodes 8737: = this->_M_impl._M_finish._M_node - this->_M_impl._M_start._M_node + 1; 8737: const size_type __new_num_nodes = __old_num_nodes + __nodes_to_add; 8737: 8737: _Map_pointer __new_nstart; 8737: if (this->_M_impl._M_map_size > 2 * __new_num_nodes) 8737: { 8737: __new_nstart = this->_M_impl._M_map + (this->_M_impl._M_map_size 8737: - __new_num_nodes) / 2 8737: + (__add_at_front ? __nodes_to_add : 0); 8737: if (__new_nstart < this->_M_impl._M_start._M_node) 8737: std::copy(this->_M_impl._M_start._M_node, 8737: this->_M_impl._M_finish._M_node + 1, 8737: __new_nstart); 8737: else 8737: std::copy_backward(this->_M_impl._M_start._M_node, 8737: this->_M_impl._M_finish._M_node + 1, 8737: __new_nstart + __old_num_nodes); 8737: } 8737: else 8737: { 8737: size_type __new_map_size = this->_M_impl._M_map_size 8737: + std::max(this->_M_impl._M_map_size, 8737: __nodes_to_add) + 2; 8737: 8737: _Map_pointer __new_map = this->_M_allocate_map(__new_map_size); 8737: __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2 8737: + (__add_at_front ? __nodes_to_add : 0); 8737: std::copy(this->_M_impl._M_start._M_node, 8737: this->_M_impl._M_finish._M_node + 1, 8737: __new_nstart); 8737: _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size); 8737: 8737: this->_M_impl._M_map = __new_map; 8737: this->_M_impl._M_map_size = __new_map_size; 8737: } 8737: 8737: this->_M_impl._M_start._M_set_node(__new_nstart); 8737: this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1); 8737: } 8737: 8737: 8737: 8737: template 8737: void 8737: fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first, 8737: const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value) 8737: { 8737: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8737: 8737: for (typename _Self::_Map_pointer __node = __first._M_node + 1; 8737: __node < __last._M_node; ++__node) 8737: std::fill(*__node, *__node + _Self::_S_buffer_size(), __value); 8737: 8737: if (__first._M_node != __last._M_node) 8737: { 8737: std::fill(__first._M_cur, __first._M_last, __value); 8737: std::fill(__last._M_first, __last._M_cur, __value); 8737: } 8737: else 8737: std::fill(__first._M_cur, __last._M_cur, __value); 8737: } 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: copy(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { 8737: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8737: typedef typename _Self::difference_type difference_type; 8737: 8737: difference_type __len = __last - __first; 8737: while (__len > 0) 8737: { 8737: const difference_type __clen 8737: = std::min(__len, std::min(__first._M_last - __first._M_cur, 8737: __result._M_last - __result._M_cur)); 8737: std::copy(__first._M_cur, __first._M_cur + __clen, __result._M_cur); 8737: __first += __clen; 8737: __result += __clen; 8737: __len -= __clen; 8737: } 8737: return __result; 8737: } 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: copy_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { 8737: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8737: typedef typename _Self::difference_type difference_type; 8737: 8737: difference_type __len = __last - __first; 8737: while (__len > 0) 8737: { 8737: difference_type __llen = __last._M_cur - __last._M_first; 8737: _Tp* __lend = __last._M_cur; 8737: 8737: difference_type __rlen = __result._M_cur - __result._M_first; 8737: _Tp* __rend = __result._M_cur; 8737: 8737: if (!__llen) 8737: { 8737: __llen = _Self::_S_buffer_size(); 8737: __lend = *(__last._M_node - 1) + __llen; 8737: } 8737: if (!__rlen) 8737: { 8737: __rlen = _Self::_S_buffer_size(); 8737: __rend = *(__result._M_node - 1) + __rlen; 8737: } 8737: 8737: const difference_type __clen = std::min(__len, 8737: std::min(__llen, __rlen)); 8737: std::copy_backward(__lend - __clen, __lend, __rend); 8737: __last -= __clen; 8737: __result -= __clen; 8737: __len -= __clen; 8737: } 8737: return __result; 8737: } 8737: 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: move(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { 8737: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8737: typedef typename _Self::difference_type difference_type; 8737: 8737: difference_type __len = __last - __first; 8737: while (__len > 0) 8737: { 8737: const difference_type __clen 8737: = std::min(__len, std::min(__first._M_last - __first._M_cur, 8737: __result._M_last - __result._M_cur)); 8737: std::move(__first._M_cur, __first._M_cur + __clen, __result._M_cur); 8737: __first += __clen; 8737: __result += __clen; 8737: __len -= __clen; 8737: } 8737: return __result; 8737: } 8737: 8737: template 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> 8737: move_backward(_Deque_iterator<_Tp, const _Tp&, const _Tp*> __first, 8737: _Deque_iterator<_Tp, const _Tp&, const _Tp*> __last, 8737: _Deque_iterator<_Tp, _Tp&, _Tp*> __result) 8737: { 8737: typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self; 8737: typedef typename _Self::difference_type difference_type; 8737: 8737: difference_type __len = __last - __first; 8737: while (__len > 0) 8737: { 8737: difference_type __llen = __last._M_cur - __last._M_first; 8737: _Tp* __lend = __last._M_cur; 8737: 8737: difference_type __rlen = __result._M_cur - __result._M_first; 8737: _Tp* __rend = __result._M_cur; 8737: 8737: if (!__llen) 8737: { 8737: __llen = _Self::_S_buffer_size(); 8737: __lend = *(__last._M_node - 1) + __llen; 8737: } 8737: if (!__rlen) 8737: { 8737: __rlen = _Self::_S_buffer_size(); 8737: __rend = *(__result._M_node - 1) + __rlen; 8737: } 8737: 8737: const difference_type __clen = std::min(__len, 8737: std::min(__llen, __rlen)); 8737: std::move_backward(__lend - __clen, __lend, __rend); 8737: __last -= __clen; 8737: __result -= __clen; 8737: __len -= __clen; 8737: } 8737: return __result; 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: # 67 "/usr/include/c++/8/deque" 2 3 8737: # 38 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/tr1/memory" 1 3 8737: # 33 "/usr/include/c++/8/tr1/memory" 3 8737: 8737: # 34 "/usr/include/c++/8/tr1/memory" 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/memory" 1 3 8737: # 46 "/usr/include/c++/8/memory" 3 8737: 8737: # 47 "/usr/include/c++/8/memory" 3 8737: # 67 "/usr/include/c++/8/memory" 3 8737: # 1 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 1 3 8737: # 59 "/usr/include/c++/8/bits/stl_raw_storage_iter.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class raw_storage_iterator 8737: : public iterator 8737: { 8737: protected: 8737: _OutputIterator _M_iter; 8737: 8737: public: 8737: explicit 8737: raw_storage_iterator(_OutputIterator __x) 8737: : _M_iter(__x) {} 8737: 8737: raw_storage_iterator& 8737: operator*() { return *this; } 8737: 8737: raw_storage_iterator& 8737: operator=(const _Tp& __element) 8737: { 8737: std::_Construct(std::__addressof(*_M_iter), __element); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: raw_storage_iterator& 8737: operator=(_Tp&& __element) 8737: { 8737: std::_Construct(std::__addressof(*_M_iter), std::move(__element)); 8737: return *this; 8737: } 8737: 8737: 8737: raw_storage_iterator& 8737: operator++() 8737: { 8737: ++_M_iter; 8737: return *this; 8737: } 8737: 8737: raw_storage_iterator 8737: operator++(int) 8737: { 8737: raw_storage_iterator __tmp = *this; 8737: ++_M_iter; 8737: return __tmp; 8737: } 8737: 8737: 8737: 8737: _OutputIterator base() const { return _M_iter; } 8737: }; 8737: 8737: 8737: } 8737: # 68 "/usr/include/c++/8/memory" 2 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/ext/concurrence.h" 1 3 8737: # 32 "/usr/include/c++/8/ext/concurrence.h" 3 8737: 8737: # 33 "/usr/include/c++/8/ext/concurrence.h" 3 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: enum _Lock_policy { _S_single, _S_mutex, _S_atomic }; 8737: 8737: 8737: 8737: static const _Lock_policy __default_lock_policy = 8737: 8737: 8737: 8737: _S_atomic; 8737: # 67 "/usr/include/c++/8/ext/concurrence.h" 3 8737: class __concurrence_lock_error : public std::exception 8737: { 8737: public: 8737: virtual char const* 8737: what() const throw() 8737: { return "__gnu_cxx::__concurrence_lock_error"; } 8737: }; 8737: 8737: class __concurrence_unlock_error : public std::exception 8737: { 8737: public: 8737: virtual char const* 8737: what() const throw() 8737: { return "__gnu_cxx::__concurrence_unlock_error"; } 8737: }; 8737: 8737: class __concurrence_broadcast_error : public std::exception 8737: { 8737: public: 8737: virtual char const* 8737: what() const throw() 8737: { return "__gnu_cxx::__concurrence_broadcast_error"; } 8737: }; 8737: 8737: class __concurrence_wait_error : public std::exception 8737: { 8737: public: 8737: virtual char const* 8737: what() const throw() 8737: { return "__gnu_cxx::__concurrence_wait_error"; } 8737: }; 8737: 8737: 8737: inline void 8737: __throw_concurrence_lock_error() 8737: { (throw (__concurrence_lock_error())); } 8737: 8737: inline void 8737: __throw_concurrence_unlock_error() 8737: { (throw (__concurrence_unlock_error())); } 8737: 8737: 8737: inline void 8737: __throw_concurrence_broadcast_error() 8737: { (throw (__concurrence_broadcast_error())); } 8737: 8737: inline void 8737: __throw_concurrence_wait_error() 8737: { (throw (__concurrence_wait_error())); } 8737: 8737: 8737: class __mutex 8737: { 8737: private: 8737: 8737: __gthread_mutex_t _M_mutex = { { 0, 0, 0, 0, 0, 0, 0, { 0, 0 } } }; 8737: 8737: 8737: 8737: 8737: __mutex(const __mutex&); 8737: __mutex& operator=(const __mutex&); 8737: 8737: public: 8737: __mutex() 8737: { 8737: 8737: 8737: 8737: 8737: } 8737: # 147 "/usr/include/c++/8/ext/concurrence.h" 3 8737: void lock() 8737: { 8737: 8737: if (__gthread_active_p()) 8737: { 8737: if (__gthread_mutex_lock(&_M_mutex) != 0) 8737: __throw_concurrence_lock_error(); 8737: } 8737: 8737: } 8737: 8737: void unlock() 8737: { 8737: 8737: if (__gthread_active_p()) 8737: { 8737: if (__gthread_mutex_unlock(&_M_mutex) != 0) 8737: __throw_concurrence_unlock_error(); 8737: } 8737: 8737: } 8737: 8737: __gthread_mutex_t* gthread_mutex(void) 8737: { return &_M_mutex; } 8737: }; 8737: 8737: class __recursive_mutex 8737: { 8737: private: 8737: 8737: __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, 0, { 0, 0 } } }; 8737: 8737: 8737: 8737: 8737: __recursive_mutex(const __recursive_mutex&); 8737: __recursive_mutex& operator=(const __recursive_mutex&); 8737: 8737: public: 8737: __recursive_mutex() 8737: { 8737: 8737: 8737: 8737: 8737: } 8737: # 202 "/usr/include/c++/8/ext/concurrence.h" 3 8737: void lock() 8737: { 8737: 8737: if (__gthread_active_p()) 8737: { 8737: if (__gthread_recursive_mutex_lock(&_M_mutex) != 0) 8737: __throw_concurrence_lock_error(); 8737: } 8737: 8737: } 8737: 8737: void unlock() 8737: { 8737: 8737: if (__gthread_active_p()) 8737: { 8737: if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0) 8737: __throw_concurrence_unlock_error(); 8737: } 8737: 8737: } 8737: 8737: __gthread_recursive_mutex_t* gthread_recursive_mutex(void) 8737: { return &_M_mutex; } 8737: }; 8737: 8737: 8737: 8737: 8737: class __scoped_lock 8737: { 8737: public: 8737: typedef __mutex __mutex_type; 8737: 8737: private: 8737: __mutex_type& _M_device; 8737: 8737: __scoped_lock(const __scoped_lock&); 8737: __scoped_lock& operator=(const __scoped_lock&); 8737: 8737: public: 8737: explicit __scoped_lock(__mutex_type& __name) : _M_device(__name) 8737: { _M_device.lock(); } 8737: 8737: ~__scoped_lock() throw() 8737: { _M_device.unlock(); } 8737: }; 8737: 8737: 8737: class __cond 8737: { 8737: private: 8737: 8737: __gthread_cond_t _M_cond = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; 8737: 8737: 8737: 8737: 8737: __cond(const __cond&); 8737: __cond& operator=(const __cond&); 8737: 8737: public: 8737: __cond() 8737: { 8737: 8737: 8737: 8737: 8737: } 8737: # 280 "/usr/include/c++/8/ext/concurrence.h" 3 8737: void broadcast() 8737: { 8737: 8737: if (__gthread_active_p()) 8737: { 8737: if (__gthread_cond_broadcast(&_M_cond) != 0) 8737: __throw_concurrence_broadcast_error(); 8737: } 8737: 8737: } 8737: 8737: void wait(__mutex *mutex) 8737: { 8737: 8737: { 8737: if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0) 8737: __throw_concurrence_wait_error(); 8737: } 8737: 8737: } 8737: 8737: void wait_recursive(__recursive_mutex *mutex) 8737: { 8737: 8737: { 8737: if (__gthread_cond_wait_recursive(&_M_cond, 8737: mutex->gthread_recursive_mutex()) 8737: != 0) 8737: __throw_concurrence_wait_error(); 8737: } 8737: 8737: } 8737: }; 8737: 8737: 8737: 8737: } 8737: # 75 "/usr/include/c++/8/memory" 2 3 8737: 8737: 8737: 8737: 8737: 8737: # 1 "/usr/include/c++/8/bits/unique_ptr.h" 1 3 8737: # 41 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: template class auto_ptr; 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: 8737: template 8737: struct default_delete 8737: { 8737: 8737: constexpr default_delete() noexcept = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: template::value>::type> 8737: default_delete(const default_delete<_Up>&) noexcept { } 8737: 8737: 8737: void 8737: operator()(_Tp* __ptr) const 8737: { 8737: static_assert(!is_void<_Tp>::value, 8737: "can't delete pointer to incomplete type"); 8737: static_assert(sizeof(_Tp)>0, 8737: "can't delete pointer to incomplete type"); 8737: delete __ptr; 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: struct default_delete<_Tp[]> 8737: { 8737: public: 8737: 8737: constexpr default_delete() noexcept = default; 8737: # 104 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: template::value>::type> 8737: default_delete(const default_delete<_Up[]>&) noexcept { } 8737: 8737: 8737: template 8737: typename enable_if::value>::type 8737: operator()(_Up* __ptr) const 8737: { 8737: static_assert(sizeof(_Tp)>0, 8737: "can't delete pointer to incomplete type"); 8737: delete [] __ptr; 8737: } 8737: }; 8737: 8737: template 8737: class __uniq_ptr_impl 8737: { 8737: template 8737: struct _Ptr 8737: { 8737: using type = _Up*; 8737: }; 8737: 8737: template 8737: struct 8737: _Ptr<_Up, _Ep, __void_t::type::pointer>> 8737: { 8737: using type = typename remove_reference<_Ep>::type::pointer; 8737: }; 8737: 8737: public: 8737: using _DeleterConstraint = enable_if< 8737: __and_<__not_>, 8737: is_default_constructible<_Dp>>::value>; 8737: 8737: using pointer = typename _Ptr<_Tp, _Dp>::type; 8737: 8737: __uniq_ptr_impl() = default; 8737: __uniq_ptr_impl(pointer __p) : _M_t() { _M_ptr() = __p; } 8737: 8737: template 8737: __uniq_ptr_impl(pointer __p, _Del&& __d) 8737: : _M_t(__p, std::forward<_Del>(__d)) { } 8737: 8737: pointer& _M_ptr() { return std::get<0>(_M_t); } 8737: pointer _M_ptr() const { return std::get<0>(_M_t); } 8737: _Dp& _M_deleter() { return std::get<1>(_M_t); } 8737: const _Dp& _M_deleter() const { return std::get<1>(_M_t); } 8737: 8737: private: 8737: tuple _M_t; 8737: }; 8737: 8737: 8737: template > 8737: class unique_ptr 8737: { 8737: template 8737: using _DeleterConstraint = 8737: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 8737: 8737: __uniq_ptr_impl<_Tp, _Dp> _M_t; 8737: 8737: public: 8737: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 8737: using element_type = _Tp; 8737: using deleter_type = _Dp; 8737: 8737: 8737: 8737: template 8737: using __safe_conversion_up = __and_< 8737: is_convertible::pointer, pointer>, 8737: __not_>, 8737: __or_<__and_, 8737: is_same>, 8737: __and_<__not_>, 8737: is_convertible<_Ep, deleter_type>> 8737: > 8737: >; 8737: 8737: 8737: 8737: 8737: template > 8737: constexpr unique_ptr() noexcept 8737: : _M_t() 8737: { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template > 8737: explicit 8737: unique_ptr(pointer __p) noexcept 8737: : _M_t(__p) 8737: { } 8737: # 215 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: unique_ptr(pointer __p, 8737: typename conditional::value, 8737: deleter_type, const deleter_type&>::type __d) noexcept 8737: : _M_t(__p, __d) { } 8737: # 227 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: unique_ptr(pointer __p, 8737: typename remove_reference::type&& __d) noexcept 8737: : _M_t(std::move(__p), std::move(__d)) 8737: { static_assert(!std::is_reference::value, 8737: "rvalue deleter bound to reference"); } 8737: 8737: 8737: template > 8737: constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } 8737: 8737: 8737: 8737: 8737: unique_ptr(unique_ptr&& __u) noexcept 8737: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template, 8737: typename conditional::value, 8737: is_same<_Ep, _Dp>, 8737: is_convertible<_Ep, _Dp>>::type>> 8737: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 8737: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 8737: { } 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: 8737: template, is_same<_Dp, default_delete<_Tp>>>> 8737: unique_ptr(auto_ptr<_Up>&& __u) noexcept; 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: 8737: ~unique_ptr() noexcept 8737: { 8737: auto& __ptr = _M_t._M_ptr(); 8737: if (__ptr != nullptr) 8737: get_deleter()(__ptr); 8737: __ptr = pointer(); 8737: } 8737: # 286 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: unique_ptr& 8737: operator=(unique_ptr&& __u) noexcept 8737: { 8737: reset(__u.release()); 8737: get_deleter() = std::forward(__u.get_deleter()); 8737: return *this; 8737: } 8737: # 301 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: template 8737: typename enable_if< __and_< 8737: __safe_conversion_up<_Up, _Ep>, 8737: is_assignable 8737: >::value, 8737: unique_ptr&>::type 8737: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 8737: { 8737: reset(__u.release()); 8737: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 8737: return *this; 8737: } 8737: 8737: 8737: unique_ptr& 8737: operator=(nullptr_t) noexcept 8737: { 8737: reset(); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: typename add_lvalue_reference::type 8737: operator*() const 8737: { 8737: ; 8737: return *get(); 8737: } 8737: 8737: 8737: pointer 8737: operator->() const noexcept 8737: { 8737: ; 8737: return get(); 8737: } 8737: 8737: 8737: pointer 8737: get() const noexcept 8737: { return _M_t._M_ptr(); } 8737: 8737: 8737: deleter_type& 8737: get_deleter() noexcept 8737: { return _M_t._M_deleter(); } 8737: 8737: 8737: const deleter_type& 8737: get_deleter() const noexcept 8737: { return _M_t._M_deleter(); } 8737: 8737: 8737: explicit operator bool() const noexcept 8737: { return get() == pointer() ? false : true; } 8737: 8737: 8737: 8737: 8737: pointer 8737: release() noexcept 8737: { 8737: pointer __p = get(); 8737: _M_t._M_ptr() = pointer(); 8737: return __p; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: void 8737: reset(pointer __p = pointer()) noexcept 8737: { 8737: using std::swap; 8737: swap(_M_t._M_ptr(), __p); 8737: if (__p != pointer()) 8737: get_deleter()(__p); 8737: } 8737: 8737: 8737: void 8737: swap(unique_ptr& __u) noexcept 8737: { 8737: using std::swap; 8737: swap(_M_t, __u._M_t); 8737: } 8737: 8737: 8737: unique_ptr(const unique_ptr&) = delete; 8737: unique_ptr& operator=(const unique_ptr&) = delete; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class unique_ptr<_Tp[], _Dp> 8737: { 8737: template 8737: using _DeleterConstraint = 8737: typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 8737: 8737: __uniq_ptr_impl<_Tp, _Dp> _M_t; 8737: 8737: template 8737: using __remove_cv = typename remove_cv<_Up>::type; 8737: 8737: 8737: template 8737: using __is_derived_Tp 8737: = __and_< is_base_of<_Tp, _Up>, 8737: __not_, __remove_cv<_Up>>> >; 8737: 8737: public: 8737: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 8737: using element_type = _Tp; 8737: using deleter_type = _Dp; 8737: 8737: 8737: 8737: template, 8737: typename _Up_element_type = typename _Up_up::element_type> 8737: using __safe_conversion_up = __and_< 8737: is_array<_Up>, 8737: is_same, 8737: is_same, 8737: is_convertible<_Up_element_type(*)[], element_type(*)[]>, 8737: __or_<__and_, is_same>, 8737: __and_<__not_>, 8737: is_convertible<_Ep, deleter_type>>> 8737: >; 8737: 8737: 8737: template 8737: using __safe_conversion_raw = __and_< 8737: __or_<__or_, 8737: is_same<_Up, nullptr_t>>, 8737: __and_, 8737: is_same, 8737: is_convertible< 8737: typename remove_pointer<_Up>::type(*)[], 8737: element_type(*)[]> 8737: > 8737: > 8737: >; 8737: 8737: 8737: 8737: 8737: template > 8737: constexpr unique_ptr() noexcept 8737: : _M_t() 8737: { } 8737: # 470 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: template, 8737: typename = typename enable_if< 8737: __safe_conversion_raw<_Up>::value, bool>::type> 8737: explicit 8737: unique_ptr(_Up __p) noexcept 8737: : _M_t(__p) 8737: { } 8737: # 488 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: template::value, bool>::type> 8737: unique_ptr(_Up __p, 8737: typename conditional::value, 8737: deleter_type, const deleter_type&>::type __d) noexcept 8737: : _M_t(__p, __d) { } 8737: # 504 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: template::value, bool>::type> 8737: unique_ptr(_Up __p, typename 8737: remove_reference::type&& __d) noexcept 8737: : _M_t(std::move(__p), std::move(__d)) 8737: { static_assert(!is_reference::value, 8737: "rvalue deleter bound to reference"); } 8737: 8737: 8737: unique_ptr(unique_ptr&& __u) noexcept 8737: : _M_t(__u.release(), std::forward(__u.get_deleter())) { } 8737: 8737: 8737: template > 8737: constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { } 8737: 8737: template>> 8737: unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 8737: : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter())) 8737: { } 8737: 8737: 8737: ~unique_ptr() 8737: { 8737: auto& __ptr = _M_t._M_ptr(); 8737: if (__ptr != nullptr) 8737: get_deleter()(__ptr); 8737: __ptr = pointer(); 8737: } 8737: # 545 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: unique_ptr& 8737: operator=(unique_ptr&& __u) noexcept 8737: { 8737: reset(__u.release()); 8737: get_deleter() = std::forward(__u.get_deleter()); 8737: return *this; 8737: } 8737: # 560 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: template 8737: typename 8737: enable_if<__and_<__safe_conversion_up<_Up, _Ep>, 8737: is_assignable 8737: >::value, 8737: unique_ptr&>::type 8737: operator=(unique_ptr<_Up, _Ep>&& __u) noexcept 8737: { 8737: reset(__u.release()); 8737: get_deleter() = std::forward<_Ep>(__u.get_deleter()); 8737: return *this; 8737: } 8737: 8737: 8737: unique_ptr& 8737: operator=(nullptr_t) noexcept 8737: { 8737: reset(); 8737: return *this; 8737: } 8737: 8737: 8737: 8737: 8737: typename std::add_lvalue_reference::type 8737: operator[](size_t __i) const 8737: { 8737: ; 8737: return get()[__i]; 8737: } 8737: 8737: 8737: pointer 8737: get() const noexcept 8737: { return _M_t._M_ptr(); } 8737: 8737: 8737: deleter_type& 8737: get_deleter() noexcept 8737: { return _M_t._M_deleter(); } 8737: 8737: 8737: const deleter_type& 8737: get_deleter() const noexcept 8737: { return _M_t._M_deleter(); } 8737: 8737: 8737: explicit operator bool() const noexcept 8737: { return get() == pointer() ? false : true; } 8737: 8737: 8737: 8737: 8737: pointer 8737: release() noexcept 8737: { 8737: pointer __p = get(); 8737: _M_t._M_ptr() = pointer(); 8737: return __p; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template , 8737: __and_, 8737: is_pointer<_Up>, 8737: is_convertible< 8737: typename remove_pointer<_Up>::type(*)[], 8737: element_type(*)[] 8737: > 8737: > 8737: > 8737: >> 8737: void 8737: reset(_Up __p) noexcept 8737: { 8737: pointer __ptr = __p; 8737: using std::swap; 8737: swap(_M_t._M_ptr(), __ptr); 8737: if (__ptr != nullptr) 8737: get_deleter()(__ptr); 8737: } 8737: 8737: void reset(nullptr_t = nullptr) noexcept 8737: { 8737: reset(pointer()); 8737: } 8737: 8737: 8737: void 8737: swap(unique_ptr& __u) noexcept 8737: { 8737: using std::swap; 8737: swap(_M_t, __u._M_t); 8737: } 8737: 8737: 8737: unique_ptr(const unique_ptr&) = delete; 8737: unique_ptr& operator=(const unique_ptr&) = delete; 8737: }; 8737: 8737: template 8737: inline 8737: 8737: 8737: typename enable_if<__is_swappable<_Dp>::value>::type 8737: 8737: 8737: 8737: swap(unique_ptr<_Tp, _Dp>& __x, 8737: unique_ptr<_Tp, _Dp>& __y) noexcept 8737: { __x.swap(__y); } 8737: 8737: 8737: template 8737: typename enable_if::value>::type 8737: swap(unique_ptr<_Tp, _Dp>&, 8737: unique_ptr<_Tp, _Dp>&) = delete; 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const unique_ptr<_Tp, _Dp>& __x, 8737: const unique_ptr<_Up, _Ep>& __y) 8737: { return __x.get() == __y.get(); } 8737: 8737: template 8737: inline bool 8737: operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 8737: { return !__x; } 8737: 8737: template 8737: inline bool 8737: operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 8737: { return !__x; } 8737: 8737: template 8737: inline bool 8737: operator!=(const unique_ptr<_Tp, _Dp>& __x, 8737: const unique_ptr<_Up, _Ep>& __y) 8737: { return __x.get() != __y.get(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept 8737: { return (bool)__x; } 8737: 8737: template 8737: inline bool 8737: operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept 8737: { return (bool)__x; } 8737: 8737: template 8737: inline bool 8737: operator<(const unique_ptr<_Tp, _Dp>& __x, 8737: const unique_ptr<_Up, _Ep>& __y) 8737: { 8737: typedef typename 8737: std::common_type::pointer, 8737: typename unique_ptr<_Up, _Ep>::pointer>::type _CT; 8737: return std::less<_CT>()(__x.get(), __y.get()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8737: { return std::less::pointer>()(__x.get(), 8737: nullptr); } 8737: 8737: template 8737: inline bool 8737: operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8737: { return std::less::pointer>()(nullptr, 8737: __x.get()); } 8737: 8737: template 8737: inline bool 8737: operator<=(const unique_ptr<_Tp, _Dp>& __x, 8737: const unique_ptr<_Up, _Ep>& __y) 8737: { return !(__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8737: { return !(nullptr < __x); } 8737: 8737: template 8737: inline bool 8737: operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8737: { return !(__x < nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>(const unique_ptr<_Tp, _Dp>& __x, 8737: const unique_ptr<_Up, _Ep>& __y) 8737: { return (__y < __x); } 8737: 8737: template 8737: inline bool 8737: operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8737: { return std::less::pointer>()(nullptr, 8737: __x.get()); } 8737: 8737: template 8737: inline bool 8737: operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8737: { return std::less::pointer>()(__x.get(), 8737: nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>=(const unique_ptr<_Tp, _Dp>& __x, 8737: const unique_ptr<_Up, _Ep>& __y) 8737: { return !(__x < __y); } 8737: 8737: template 8737: inline bool 8737: operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) 8737: { return !(__x < nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) 8737: { return !(nullptr < __x); } 8737: 8737: 8737: template 8737: struct hash> 8737: : public __hash_base>, 8737: private __poison_hash::pointer> 8737: { 8737: size_t 8737: operator()(const unique_ptr<_Tp, _Dp>& __u) const noexcept 8737: { 8737: typedef unique_ptr<_Tp, _Dp> _UP; 8737: return std::hash()(__u.get()); 8737: } 8737: }; 8737: # 847 "/usr/include/c++/8/bits/unique_ptr.h" 3 8737: 8737: } 8737: # 81 "/usr/include/c++/8/memory" 2 3 8737: # 1 "/usr/include/c++/8/bits/shared_ptr.h" 1 3 8737: # 52 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: # 1 "/usr/include/c++/8/bits/shared_ptr_base.h" 1 3 8737: # 60 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: template class auto_ptr; 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: 8737: 8737: 8737: 8737: class bad_weak_ptr : public std::exception 8737: { 8737: public: 8737: virtual char const* what() const noexcept; 8737: 8737: virtual ~bad_weak_ptr() noexcept; 8737: }; 8737: 8737: 8737: inline void 8737: __throw_bad_weak_ptr() 8737: { (throw (bad_weak_ptr())); } 8737: 8737: using __gnu_cxx::_Lock_policy; 8737: using __gnu_cxx::__default_lock_policy; 8737: using __gnu_cxx::_S_single; 8737: using __gnu_cxx::_S_mutex; 8737: using __gnu_cxx::_S_atomic; 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: class _Mutex_base 8737: { 8737: protected: 8737: 8737: enum { _S_need_barriers = 0 }; 8737: }; 8737: 8737: template<> 8737: class _Mutex_base<_S_mutex> 8737: : public __gnu_cxx::__mutex 8737: { 8737: protected: 8737: 8737: 8737: 8737: enum { _S_need_barriers = 1 }; 8737: }; 8737: 8737: template<_Lock_policy _Lp = __default_lock_policy> 8737: class _Sp_counted_base 8737: : public _Mutex_base<_Lp> 8737: { 8737: public: 8737: _Sp_counted_base() noexcept 8737: : _M_use_count(1), _M_weak_count(1) { } 8737: 8737: virtual 8737: ~_Sp_counted_base() noexcept 8737: { } 8737: 8737: 8737: 8737: virtual void 8737: _M_dispose() noexcept = 0; 8737: 8737: 8737: virtual void 8737: _M_destroy() noexcept 8737: { delete this; } 8737: 8737: virtual void* 8737: _M_get_deleter(const std::type_info&) noexcept = 0; 8737: 8737: void 8737: _M_add_ref_copy() 8737: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 8737: 8737: void 8737: _M_add_ref_lock(); 8737: 8737: bool 8737: _M_add_ref_lock_nothrow(); 8737: 8737: void 8737: _M_release() noexcept 8737: { 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 8737: { 8737: ; 8737: _M_dispose(); 8737: 8737: 8737: 8737: 8737: if (_Mutex_base<_Lp>::_S_need_barriers) 8737: { 8737: __atomic_thread_fence (4); 8737: } 8737: 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 8737: -1) == 1) 8737: { 8737: ; 8737: _M_destroy(); 8737: } 8737: } 8737: } 8737: 8737: void 8737: _M_weak_add_ref() noexcept 8737: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 8737: 8737: void 8737: _M_weak_release() noexcept 8737: { 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 8737: { 8737: ; 8737: if (_Mutex_base<_Lp>::_S_need_barriers) 8737: { 8737: 8737: 8737: __atomic_thread_fence (4); 8737: } 8737: _M_destroy(); 8737: } 8737: } 8737: 8737: long 8737: _M_get_use_count() const noexcept 8737: { 8737: 8737: 8737: return __atomic_load_n(&_M_use_count, 0); 8737: } 8737: 8737: private: 8737: _Sp_counted_base(_Sp_counted_base const&) = delete; 8737: _Sp_counted_base& operator=(_Sp_counted_base const&) = delete; 8737: 8737: _Atomic_word _M_use_count; 8737: _Atomic_word _M_weak_count; 8737: }; 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_single>:: 8737: _M_add_ref_lock() 8737: { 8737: if (_M_use_count == 0) 8737: __throw_bad_weak_ptr(); 8737: ++_M_use_count; 8737: } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_mutex>:: 8737: _M_add_ref_lock() 8737: { 8737: __gnu_cxx::__scoped_lock sentry(*this); 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8737: { 8737: _M_use_count = 0; 8737: __throw_bad_weak_ptr(); 8737: } 8737: } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_atomic>:: 8737: _M_add_ref_lock() 8737: { 8737: 8737: _Atomic_word __count = _M_get_use_count(); 8737: do 8737: { 8737: if (__count == 0) 8737: __throw_bad_weak_ptr(); 8737: 8737: 8737: } 8737: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 8737: true, 4, 8737: 0)); 8737: } 8737: 8737: template<> 8737: inline bool 8737: _Sp_counted_base<_S_single>:: 8737: _M_add_ref_lock_nothrow() 8737: { 8737: if (_M_use_count == 0) 8737: return false; 8737: ++_M_use_count; 8737: return true; 8737: } 8737: 8737: template<> 8737: inline bool 8737: _Sp_counted_base<_S_mutex>:: 8737: _M_add_ref_lock_nothrow() 8737: { 8737: __gnu_cxx::__scoped_lock sentry(*this); 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8737: { 8737: _M_use_count = 0; 8737: return false; 8737: } 8737: return true; 8737: } 8737: 8737: template<> 8737: inline bool 8737: _Sp_counted_base<_S_atomic>:: 8737: _M_add_ref_lock_nothrow() 8737: { 8737: 8737: _Atomic_word __count = _M_get_use_count(); 8737: do 8737: { 8737: if (__count == 0) 8737: return false; 8737: 8737: 8737: } 8737: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 8737: true, 4, 8737: 0)); 8737: return true; 8737: } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_single>::_M_add_ref_copy() 8737: { ++_M_use_count; } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_single>::_M_release() noexcept 8737: { 8737: if (--_M_use_count == 0) 8737: { 8737: _M_dispose(); 8737: if (--_M_weak_count == 0) 8737: _M_destroy(); 8737: } 8737: } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept 8737: { ++_M_weak_count; } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_single>::_M_weak_release() noexcept 8737: { 8737: if (--_M_weak_count == 0) 8737: _M_destroy(); 8737: } 8737: 8737: template<> 8737: inline long 8737: _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept 8737: { return _M_use_count; } 8737: 8737: 8737: 8737: template 8737: class __shared_ptr; 8737: 8737: template 8737: class __weak_ptr; 8737: 8737: template 8737: class __enable_shared_from_this; 8737: 8737: template 8737: class shared_ptr; 8737: 8737: template 8737: class weak_ptr; 8737: 8737: template 8737: struct owner_less; 8737: 8737: template 8737: class enable_shared_from_this; 8737: 8737: template<_Lock_policy _Lp = __default_lock_policy> 8737: class __weak_count; 8737: 8737: template<_Lock_policy _Lp = __default_lock_policy> 8737: class __shared_count; 8737: 8737: 8737: 8737: template 8737: class _Sp_counted_ptr final : public _Sp_counted_base<_Lp> 8737: { 8737: public: 8737: explicit 8737: _Sp_counted_ptr(_Ptr __p) noexcept 8737: : _M_ptr(__p) { } 8737: 8737: virtual void 8737: _M_dispose() noexcept 8737: { delete _M_ptr; } 8737: 8737: virtual void 8737: _M_destroy() noexcept 8737: { delete this; } 8737: 8737: virtual void* 8737: _M_get_deleter(const std::type_info&) noexcept 8737: { return nullptr; } 8737: 8737: _Sp_counted_ptr(const _Sp_counted_ptr&) = delete; 8737: _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete; 8737: 8737: private: 8737: _Ptr _M_ptr; 8737: }; 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_ptr::_M_dispose() noexcept { } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_ptr::_M_dispose() noexcept { } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_ptr::_M_dispose() noexcept { } 8737: 8737: template 8737: struct _Sp_ebo_helper; 8737: 8737: 8737: template 8737: struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp 8737: { 8737: explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } 8737: explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } 8737: 8737: static _Tp& 8737: _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } 8737: }; 8737: 8737: 8737: template 8737: struct _Sp_ebo_helper<_Nm, _Tp, false> 8737: { 8737: explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } 8737: explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } 8737: 8737: static _Tp& 8737: _S_get(_Sp_ebo_helper& __eboh) 8737: { return __eboh._M_tp; } 8737: 8737: private: 8737: _Tp _M_tp; 8737: }; 8737: 8737: 8737: template 8737: class _Sp_counted_deleter final : public _Sp_counted_base<_Lp> 8737: { 8737: class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc> 8737: { 8737: typedef _Sp_ebo_helper<0, _Deleter> _Del_base; 8737: typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base; 8737: 8737: public: 8737: _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 8737: : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a) 8737: { } 8737: 8737: _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } 8737: _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); } 8737: 8737: _Ptr _M_ptr; 8737: }; 8737: 8737: public: 8737: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>; 8737: 8737: 8737: _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept 8737: : _M_impl(__p, std::move(__d), _Alloc()) { } 8737: 8737: 8737: _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept 8737: : _M_impl(__p, std::move(__d), __a) { } 8737: 8737: ~_Sp_counted_deleter() noexcept { } 8737: 8737: virtual void 8737: _M_dispose() noexcept 8737: { _M_impl._M_del()(_M_impl._M_ptr); } 8737: 8737: virtual void 8737: _M_destroy() noexcept 8737: { 8737: __allocator_type __a(_M_impl._M_alloc()); 8737: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 8737: this->~_Sp_counted_deleter(); 8737: } 8737: 8737: virtual void* 8737: _M_get_deleter(const std::type_info& __ti) noexcept 8737: { 8737: 8737: 8737: 8737: return __ti == typeid(_Deleter) 8737: ? std::__addressof(_M_impl._M_del()) 8737: : nullptr; 8737: 8737: 8737: 8737: } 8737: 8737: private: 8737: _Impl _M_impl; 8737: }; 8737: 8737: 8737: 8737: struct _Sp_make_shared_tag 8737: { 8737: # 523 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8737: }; 8737: 8737: template 8737: class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp> 8737: { 8737: class _Impl : _Sp_ebo_helper<0, _Alloc> 8737: { 8737: typedef _Sp_ebo_helper<0, _Alloc> _A_base; 8737: 8737: public: 8737: explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { } 8737: 8737: _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); } 8737: 8737: __gnu_cxx::__aligned_buffer<_Tp> _M_storage; 8737: }; 8737: 8737: public: 8737: using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>; 8737: 8737: template 8737: _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args) 8737: : _M_impl(__a) 8737: { 8737: 8737: 8737: allocator_traits<_Alloc>::construct(__a, _M_ptr(), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: ~_Sp_counted_ptr_inplace() noexcept { } 8737: 8737: virtual void 8737: _M_dispose() noexcept 8737: { 8737: allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr()); 8737: } 8737: 8737: 8737: virtual void 8737: _M_destroy() noexcept 8737: { 8737: __allocator_type __a(_M_impl._M_alloc()); 8737: __allocated_ptr<__allocator_type> __guard_ptr{ __a, this }; 8737: this->~_Sp_counted_ptr_inplace(); 8737: } 8737: 8737: 8737: virtual void* 8737: _M_get_deleter(const std::type_info& __ti) noexcept 8737: { 8737: 8737: if (__ti == typeid(_Sp_make_shared_tag)) 8737: 8737: 8737: 8737: return const_cast::type*>(_M_ptr()); 8737: return nullptr; 8737: } 8737: 8737: private: 8737: _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); } 8737: 8737: _Impl _M_impl; 8737: }; 8737: 8737: 8737: struct __sp_array_delete 8737: { 8737: template 8737: void operator()(_Yp* __p) const { delete[] __p; } 8737: }; 8737: 8737: template<_Lock_policy _Lp> 8737: class __shared_count 8737: { 8737: public: 8737: constexpr __shared_count() noexcept : _M_pi(0) 8737: { } 8737: 8737: template 8737: explicit 8737: __shared_count(_Ptr __p) : _M_pi(0) 8737: { 8737: try 8737: { 8737: _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p); 8737: } 8737: catch(...) 8737: { 8737: delete __p; 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: __shared_count(_Ptr __p, false_type) 8737: : __shared_count(__p) 8737: { } 8737: 8737: template 8737: __shared_count(_Ptr __p, true_type) 8737: : __shared_count(__p, __sp_array_delete{}, allocator()) 8737: { } 8737: 8737: template 8737: __shared_count(_Ptr __p, _Deleter __d) 8737: : __shared_count(__p, std::move(__d), allocator()) 8737: { } 8737: 8737: template 8737: __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0) 8737: { 8737: typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type; 8737: try 8737: { 8737: typename _Sp_cd_type::__allocator_type __a2(__a); 8737: auto __guard = std::__allocate_guarded(__a2); 8737: _Sp_cd_type* __mem = __guard.get(); 8737: ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a)); 8737: _M_pi = __mem; 8737: __guard = nullptr; 8737: } 8737: catch(...) 8737: { 8737: __d(__p); 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: __shared_count(_Sp_make_shared_tag, _Tp*, const _Alloc& __a, 8737: _Args&&... __args) 8737: : _M_pi(0) 8737: { 8737: typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type; 8737: typename _Sp_cp_type::__allocator_type __a2(__a); 8737: auto __guard = std::__allocate_guarded(__a2); 8737: _Sp_cp_type* __mem = __guard.get(); 8737: ::new (__mem) _Sp_cp_type(std::move(__a), 8737: std::forward<_Args>(__args)...); 8737: _M_pi = __mem; 8737: __guard = nullptr; 8737: } 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: 8737: template 8737: explicit 8737: __shared_count(std::auto_ptr<_Tp>&& __r); 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: 8737: template 8737: explicit 8737: __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0) 8737: { 8737: 8737: 8737: if (__r.get() == nullptr) 8737: return; 8737: 8737: using _Ptr = typename unique_ptr<_Tp, _Del>::pointer; 8737: using _Del2 = typename conditional::value, 8737: reference_wrapper::type>, 8737: _Del>::type; 8737: using _Sp_cd_type 8737: = _Sp_counted_deleter<_Ptr, _Del2, allocator, _Lp>; 8737: using _Alloc = allocator<_Sp_cd_type>; 8737: using _Alloc_traits = allocator_traits<_Alloc>; 8737: _Alloc __a; 8737: _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1); 8737: _Alloc_traits::construct(__a, __mem, __r.release(), 8737: __r.get_deleter()); 8737: _M_pi = __mem; 8737: } 8737: 8737: 8737: explicit __shared_count(const __weak_count<_Lp>& __r); 8737: 8737: 8737: explicit __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t); 8737: 8737: ~__shared_count() noexcept 8737: { 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_release(); 8737: } 8737: 8737: __shared_count(const __shared_count& __r) noexcept 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_add_ref_copy(); 8737: } 8737: 8737: __shared_count& 8737: operator=(const __shared_count& __r) noexcept 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: if (__tmp != _M_pi) 8737: { 8737: if (__tmp != 0) 8737: __tmp->_M_add_ref_copy(); 8737: if (_M_pi != 0) 8737: _M_pi->_M_release(); 8737: _M_pi = __tmp; 8737: } 8737: return *this; 8737: } 8737: 8737: void 8737: _M_swap(__shared_count& __r) noexcept 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: __r._M_pi = _M_pi; 8737: _M_pi = __tmp; 8737: } 8737: 8737: long 8737: _M_get_use_count() const noexcept 8737: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 8737: 8737: bool 8737: _M_unique() const noexcept 8737: { return this->_M_get_use_count() == 1; } 8737: 8737: void* 8737: _M_get_deleter(const std::type_info& __ti) const noexcept 8737: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; } 8737: 8737: bool 8737: _M_less(const __shared_count& __rhs) const noexcept 8737: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8737: 8737: bool 8737: _M_less(const __weak_count<_Lp>& __rhs) const noexcept 8737: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8737: 8737: 8737: friend inline bool 8737: operator==(const __shared_count& __a, const __shared_count& __b) noexcept 8737: { return __a._M_pi == __b._M_pi; } 8737: 8737: private: 8737: friend class __weak_count<_Lp>; 8737: 8737: _Sp_counted_base<_Lp>* _M_pi; 8737: }; 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: class __weak_count 8737: { 8737: public: 8737: constexpr __weak_count() noexcept : _M_pi(nullptr) 8737: { } 8737: 8737: __weak_count(const __shared_count<_Lp>& __r) noexcept 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_weak_add_ref(); 8737: } 8737: 8737: __weak_count(const __weak_count& __r) noexcept 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_weak_add_ref(); 8737: } 8737: 8737: __weak_count(__weak_count&& __r) noexcept 8737: : _M_pi(__r._M_pi) 8737: { __r._M_pi = nullptr; } 8737: 8737: ~__weak_count() noexcept 8737: { 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_weak_release(); 8737: } 8737: 8737: __weak_count& 8737: operator=(const __shared_count<_Lp>& __r) noexcept 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: if (__tmp != nullptr) 8737: __tmp->_M_weak_add_ref(); 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_weak_release(); 8737: _M_pi = __tmp; 8737: return *this; 8737: } 8737: 8737: __weak_count& 8737: operator=(const __weak_count& __r) noexcept 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: if (__tmp != nullptr) 8737: __tmp->_M_weak_add_ref(); 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_weak_release(); 8737: _M_pi = __tmp; 8737: return *this; 8737: } 8737: 8737: __weak_count& 8737: operator=(__weak_count&& __r) noexcept 8737: { 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_weak_release(); 8737: _M_pi = __r._M_pi; 8737: __r._M_pi = nullptr; 8737: return *this; 8737: } 8737: 8737: void 8737: _M_swap(__weak_count& __r) noexcept 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: __r._M_pi = _M_pi; 8737: _M_pi = __tmp; 8737: } 8737: 8737: long 8737: _M_get_use_count() const noexcept 8737: { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; } 8737: 8737: bool 8737: _M_less(const __weak_count& __rhs) const noexcept 8737: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8737: 8737: bool 8737: _M_less(const __shared_count<_Lp>& __rhs) const noexcept 8737: { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); } 8737: 8737: 8737: friend inline bool 8737: operator==(const __weak_count& __a, const __weak_count& __b) noexcept 8737: { return __a._M_pi == __b._M_pi; } 8737: 8737: private: 8737: friend class __shared_count<_Lp>; 8737: 8737: _Sp_counted_base<_Lp>* _M_pi; 8737: }; 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: inline 8737: __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r) 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != nullptr) 8737: _M_pi->_M_add_ref_lock(); 8737: else 8737: __throw_bad_weak_ptr(); 8737: } 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: inline 8737: __shared_count<_Lp>:: 8737: __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t) 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != nullptr) 8737: if (!_M_pi->_M_add_ref_lock_nothrow()) 8737: _M_pi = nullptr; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: struct __sp_compatible_with 8737: : false_type 8737: { }; 8737: 8737: template 8737: struct __sp_compatible_with<_Yp*, _Tp*> 8737: : is_convertible<_Yp*, _Tp*>::type 8737: { }; 8737: 8737: template 8737: struct __sp_compatible_with<_Up(*)[_Nm], _Up(*)[]> 8737: : true_type 8737: { }; 8737: 8737: template 8737: struct __sp_compatible_with<_Up(*)[_Nm], const _Up(*)[]> 8737: : true_type 8737: { }; 8737: 8737: template 8737: struct __sp_compatible_with<_Up(*)[_Nm], volatile _Up(*)[]> 8737: : true_type 8737: { }; 8737: 8737: template 8737: struct __sp_compatible_with<_Up(*)[_Nm], const volatile _Up(*)[]> 8737: : true_type 8737: { }; 8737: 8737: 8737: template 8737: struct __sp_is_constructible_arrN 8737: : false_type 8737: { }; 8737: 8737: template 8737: struct __sp_is_constructible_arrN<_Up, _Nm, _Yp, __void_t<_Yp[_Nm]>> 8737: : is_convertible<_Yp(*)[_Nm], _Up(*)[_Nm]>::type 8737: { }; 8737: 8737: 8737: template 8737: struct __sp_is_constructible_arr 8737: : false_type 8737: { }; 8737: 8737: template 8737: struct __sp_is_constructible_arr<_Up, _Yp, __void_t<_Yp[]>> 8737: : is_convertible<_Yp(*)[], _Up(*)[]>::type 8737: { }; 8737: 8737: 8737: template 8737: struct __sp_is_constructible; 8737: 8737: 8737: template 8737: struct __sp_is_constructible<_Up[_Nm], _Yp> 8737: : __sp_is_constructible_arrN<_Up, _Nm, _Yp>::type 8737: { }; 8737: 8737: 8737: template 8737: struct __sp_is_constructible<_Up[], _Yp> 8737: : __sp_is_constructible_arr<_Up, _Yp>::type 8737: { }; 8737: 8737: 8737: template 8737: struct __sp_is_constructible 8737: : is_convertible<_Yp*, _Tp*>::type 8737: { }; 8737: 8737: 8737: 8737: template::value, bool = is_void<_Tp>::value> 8737: class __shared_ptr_access 8737: { 8737: public: 8737: using element_type = _Tp; 8737: 8737: element_type& 8737: operator*() const noexcept 8737: { 8737: ; 8737: return *_M_get(); 8737: } 8737: 8737: element_type* 8737: operator->() const noexcept 8737: { 8737: ; 8737: return _M_get(); 8737: } 8737: 8737: private: 8737: element_type* 8737: _M_get() const noexcept 8737: { return static_cast*>(this)->get(); } 8737: }; 8737: 8737: 8737: template 8737: class __shared_ptr_access<_Tp, _Lp, false, true> 8737: { 8737: public: 8737: using element_type = _Tp; 8737: 8737: element_type* 8737: operator->() const noexcept 8737: { 8737: auto __ptr = static_cast*>(this)->get(); 8737: ; 8737: return __ptr; 8737: } 8737: }; 8737: 8737: 8737: template 8737: class __shared_ptr_access<_Tp, _Lp, true, false> 8737: { 8737: public: 8737: using element_type = typename remove_extent<_Tp>::type; 8737: 8737: 8737: [[__deprecated__("shared_ptr::operator* is absent from C++17")]] 8737: element_type& 8737: operator*() const noexcept 8737: { 8737: ; 8737: return *_M_get(); 8737: } 8737: 8737: [[__deprecated__("shared_ptr::operator-> is absent from C++17")]] 8737: element_type* 8737: operator->() const noexcept 8737: { 8737: ; 8737: return _M_get(); 8737: } 8737: 8737: 8737: element_type& 8737: operator[](ptrdiff_t __i) const 8737: { 8737: ; 8737: ; 8737: return _M_get()[__i]; 8737: } 8737: 8737: private: 8737: element_type* 8737: _M_get() const noexcept 8737: { return static_cast*>(this)->get(); } 8737: }; 8737: 8737: template 8737: class __shared_ptr 8737: : public __shared_ptr_access<_Tp, _Lp> 8737: { 8737: public: 8737: using element_type = typename remove_extent<_Tp>::type; 8737: 8737: private: 8737: 8737: template 8737: using _SafeConv 8737: = typename enable_if<__sp_is_constructible<_Tp, _Yp>::value>::type; 8737: 8737: 8737: template 8737: using _Compatible = typename 8737: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 8737: 8737: 8737: template 8737: using _Assignable = _Compatible<_Yp, __shared_ptr&>; 8737: 8737: 8737: template::pointer> 8737: using _UniqCompatible = typename enable_if<__and_< 8737: __sp_compatible_with<_Yp*, _Tp*>, is_convertible<_Ptr, element_type*> 8737: >::value, _Res>::type; 8737: 8737: 8737: template 8737: using _UniqAssignable = _UniqCompatible<_Yp, _Del, __shared_ptr&>; 8737: 8737: public: 8737: 8737: 8737: 8737: 8737: 8737: constexpr __shared_ptr() noexcept 8737: : _M_ptr(0), _M_refcount() 8737: { } 8737: 8737: template> 8737: explicit 8737: __shared_ptr(_Yp* __p) 8737: : _M_ptr(__p), _M_refcount(__p, typename is_array<_Tp>::type()) 8737: { 8737: static_assert( !is_void<_Yp>::value, "incomplete type" ); 8737: static_assert( sizeof(_Yp) > 0, "incomplete type" ); 8737: _M_enable_shared_from_this_with(__p); 8737: } 8737: 8737: template> 8737: __shared_ptr(_Yp* __p, _Deleter __d) 8737: : _M_ptr(__p), _M_refcount(__p, std::move(__d)) 8737: { 8737: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 8737: "deleter expression d(p) is well-formed"); 8737: _M_enable_shared_from_this_with(__p); 8737: } 8737: 8737: template> 8737: __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 8737: : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) 8737: { 8737: static_assert(__is_invocable<_Deleter&, _Yp*&>::value, 8737: "deleter expression d(p) is well-formed"); 8737: _M_enable_shared_from_this_with(__p); 8737: } 8737: 8737: template 8737: __shared_ptr(nullptr_t __p, _Deleter __d) 8737: : _M_ptr(0), _M_refcount(__p, std::move(__d)) 8737: { } 8737: 8737: template 8737: __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 8737: : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) 8737: { } 8737: 8737: template 8737: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r, 8737: element_type* __p) noexcept 8737: : _M_ptr(__p), _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: __shared_ptr(const __shared_ptr&) noexcept = default; 8737: __shared_ptr& operator=(const __shared_ptr&) noexcept = default; 8737: ~__shared_ptr() = default; 8737: 8737: template> 8737: __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8737: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: __shared_ptr(__shared_ptr&& __r) noexcept 8737: : _M_ptr(__r._M_ptr), _M_refcount() 8737: { 8737: _M_refcount._M_swap(__r._M_refcount); 8737: __r._M_ptr = 0; 8737: } 8737: 8737: template> 8737: __shared_ptr(__shared_ptr<_Yp, _Lp>&& __r) noexcept 8737: : _M_ptr(__r._M_ptr), _M_refcount() 8737: { 8737: _M_refcount._M_swap(__r._M_refcount); 8737: __r._M_ptr = 0; 8737: } 8737: 8737: template> 8737: explicit __shared_ptr(const __weak_ptr<_Yp, _Lp>& __r) 8737: : _M_refcount(__r._M_refcount) 8737: { 8737: 8737: 8737: _M_ptr = __r._M_ptr; 8737: } 8737: 8737: 8737: template> 8737: __shared_ptr(unique_ptr<_Yp, _Del>&& __r) 8737: : _M_ptr(__r.get()), _M_refcount() 8737: { 8737: auto __raw = __to_address(__r.get()); 8737: _M_refcount = __shared_count<_Lp>(std::move(__r)); 8737: _M_enable_shared_from_this_with(__raw); 8737: } 8737: 8737: 8737: protected: 8737: 8737: template>, is_array<_Tp1>, 8737: is_convertible::pointer, _Tp*> 8737: >::value, bool>::type = true> 8737: __shared_ptr(unique_ptr<_Tp1, _Del>&& __r, __sp_array_delete) 8737: : _M_ptr(__r.get()), _M_refcount() 8737: { 8737: auto __raw = __to_address(__r.get()); 8737: _M_refcount = __shared_count<_Lp>(std::move(__r)); 8737: _M_enable_shared_from_this_with(__raw); 8737: } 8737: public: 8737: 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: 8737: template> 8737: __shared_ptr(auto_ptr<_Yp>&& __r); 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { } 8737: 8737: template 8737: _Assignable<_Yp> 8737: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8737: { 8737: _M_ptr = __r._M_ptr; 8737: _M_refcount = __r._M_refcount; 8737: return *this; 8737: } 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: template 8737: _Assignable<_Yp> 8737: operator=(auto_ptr<_Yp>&& __r) 8737: { 8737: __shared_ptr(std::move(__r)).swap(*this); 8737: return *this; 8737: } 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: __shared_ptr& 8737: operator=(__shared_ptr&& __r) noexcept 8737: { 8737: __shared_ptr(std::move(__r)).swap(*this); 8737: return *this; 8737: } 8737: 8737: template 8737: _Assignable<_Yp> 8737: operator=(__shared_ptr<_Yp, _Lp>&& __r) noexcept 8737: { 8737: __shared_ptr(std::move(__r)).swap(*this); 8737: return *this; 8737: } 8737: 8737: template 8737: _UniqAssignable<_Yp, _Del> 8737: operator=(unique_ptr<_Yp, _Del>&& __r) 8737: { 8737: __shared_ptr(std::move(__r)).swap(*this); 8737: return *this; 8737: } 8737: 8737: void 8737: reset() noexcept 8737: { __shared_ptr().swap(*this); } 8737: 8737: template 8737: _SafeConv<_Yp> 8737: reset(_Yp* __p) 8737: { 8737: 8737: ; 8737: __shared_ptr(__p).swap(*this); 8737: } 8737: 8737: template 8737: _SafeConv<_Yp> 8737: reset(_Yp* __p, _Deleter __d) 8737: { __shared_ptr(__p, std::move(__d)).swap(*this); } 8737: 8737: template 8737: _SafeConv<_Yp> 8737: reset(_Yp* __p, _Deleter __d, _Alloc __a) 8737: { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } 8737: 8737: element_type* 8737: get() const noexcept 8737: { return _M_ptr; } 8737: 8737: explicit operator bool() const 8737: { return _M_ptr == 0 ? false : true; } 8737: 8737: bool 8737: unique() const noexcept 8737: { return _M_refcount._M_unique(); } 8737: 8737: long 8737: use_count() const noexcept 8737: { return _M_refcount._M_get_use_count(); } 8737: 8737: void 8737: swap(__shared_ptr<_Tp, _Lp>& __other) noexcept 8737: { 8737: std::swap(_M_ptr, __other._M_ptr); 8737: _M_refcount._M_swap(__other._M_refcount); 8737: } 8737: 8737: template 8737: bool 8737: owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept 8737: { return _M_refcount._M_less(__rhs._M_refcount); } 8737: 8737: template 8737: bool 8737: owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept 8737: { return _M_refcount._M_less(__rhs._M_refcount); } 8737: 8737: protected: 8737: 8737: template 8737: __shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a, 8737: _Args&&... __args) 8737: : _M_ptr(), _M_refcount(__tag, (_Tp*)0, __a, 8737: std::forward<_Args>(__args)...) 8737: { 8737: 8737: 8737: 8737: void* __p = _M_refcount._M_get_deleter(typeid(__tag)); 8737: 8737: 8737: 8737: _M_ptr = static_cast<_Tp*>(__p); 8737: _M_enable_shared_from_this_with(_M_ptr); 8737: } 8737: 8737: template 8737: friend __shared_ptr<_Tp1, _Lp1> 8737: __allocate_shared(const _Alloc& __a, _Args&&... __args); 8737: 8737: 8737: 8737: __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t) 8737: : _M_refcount(__r._M_refcount, std::nothrow) 8737: { 8737: _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr; 8737: } 8737: 8737: friend class __weak_ptr<_Tp, _Lp>; 8737: 8737: private: 8737: 8737: template 8737: using __esft_base_t = decltype(__enable_shared_from_this_base( 8737: std::declval&>(), 8737: std::declval<_Yp*>())); 8737: 8737: 8737: template 8737: struct __has_esft_base 8737: : false_type { }; 8737: 8737: template 8737: struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>> 8737: : __not_> { }; 8737: 8737: template::type> 8737: typename enable_if<__has_esft_base<_Yp2>::value>::type 8737: _M_enable_shared_from_this_with(_Yp* __p) noexcept 8737: { 8737: if (auto __base = __enable_shared_from_this_base(_M_refcount, __p)) 8737: __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount); 8737: } 8737: 8737: template::type> 8737: typename enable_if::value>::type 8737: _M_enable_shared_from_this_with(_Yp*) noexcept 8737: { } 8737: 8737: void* 8737: _M_get_deleter(const std::type_info& __ti) const noexcept 8737: { return _M_refcount._M_get_deleter(__ti); } 8737: 8737: template friend class __shared_ptr; 8737: template friend class __weak_ptr; 8737: 8737: template 8737: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept; 8737: 8737: template 8737: friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; 8737: 8737: element_type* _M_ptr; 8737: __shared_count<_Lp> _M_refcount; 8737: }; 8737: 8737: 8737: 8737: template 8737: inline bool 8737: operator==(const __shared_ptr<_Tp1, _Lp>& __a, 8737: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8737: { return __a.get() == __b.get(); } 8737: 8737: template 8737: inline bool 8737: operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8737: { return !__a; } 8737: 8737: template 8737: inline bool 8737: operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8737: { return !__a; } 8737: 8737: template 8737: inline bool 8737: operator!=(const __shared_ptr<_Tp1, _Lp>& __a, 8737: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8737: { return __a.get() != __b.get(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8737: { return (bool)__a; } 8737: 8737: template 8737: inline bool 8737: operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8737: { return (bool)__a; } 8737: 8737: template 8737: inline bool 8737: operator<(const __shared_ptr<_Tp, _Lp>& __a, 8737: const __shared_ptr<_Up, _Lp>& __b) noexcept 8737: { 8737: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 8737: using _Up_elt = typename __shared_ptr<_Up, _Lp>::element_type; 8737: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 8737: return less<_Vp>()(__a.get(), __b.get()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8737: { 8737: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 8737: return less<_Tp_elt*>()(__a.get(), nullptr); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8737: { 8737: using _Tp_elt = typename __shared_ptr<_Tp, _Lp>::element_type; 8737: return less<_Tp_elt*>()(nullptr, __a.get()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<=(const __shared_ptr<_Tp1, _Lp>& __a, 8737: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8737: { return !(__b < __a); } 8737: 8737: template 8737: inline bool 8737: operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8737: { return !(nullptr < __a); } 8737: 8737: template 8737: inline bool 8737: operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8737: { return !(__a < nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>(const __shared_ptr<_Tp1, _Lp>& __a, 8737: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8737: { return (__b < __a); } 8737: 8737: template 8737: inline bool 8737: operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8737: { return nullptr < __a; } 8737: 8737: template 8737: inline bool 8737: operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8737: { return __a < nullptr; } 8737: 8737: template 8737: inline bool 8737: operator>=(const __shared_ptr<_Tp1, _Lp>& __a, 8737: const __shared_ptr<_Tp2, _Lp>& __b) noexcept 8737: { return !(__a < __b); } 8737: 8737: template 8737: inline bool 8737: operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept 8737: { return !(__a < nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept 8737: { return !(nullptr < __a); } 8737: 8737: template 8737: struct _Sp_less : public binary_function<_Sp, _Sp, bool> 8737: { 8737: bool 8737: operator()(const _Sp& __lhs, const _Sp& __rhs) const noexcept 8737: { 8737: typedef typename _Sp::element_type element_type; 8737: return std::less()(__lhs.get(), __rhs.get()); 8737: } 8737: }; 8737: 8737: template 8737: struct less<__shared_ptr<_Tp, _Lp>> 8737: : public _Sp_less<__shared_ptr<_Tp, _Lp>> 8737: { }; 8737: 8737: 8737: template 8737: inline void 8737: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept 8737: { __a.swap(__b); } 8737: # 1540 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 8737: { 8737: using _Sp = __shared_ptr<_Tp, _Lp>; 8737: return _Sp(__r, static_cast(__r.get())); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 8737: { 8737: using _Sp = __shared_ptr<_Tp, _Lp>; 8737: return _Sp(__r, const_cast(__r.get())); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept 8737: { 8737: using _Sp = __shared_ptr<_Tp, _Lp>; 8737: if (auto* __p = dynamic_cast(__r.get())) 8737: return _Sp(__r, __p); 8737: return _Sp(); 8737: } 8737: # 1586 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8737: template 8737: class __weak_ptr 8737: { 8737: template 8737: using _Compatible = typename 8737: enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type; 8737: 8737: 8737: template 8737: using _Assignable = _Compatible<_Yp, __weak_ptr&>; 8737: 8737: public: 8737: using element_type = typename remove_extent<_Tp>::type; 8737: 8737: constexpr __weak_ptr() noexcept 8737: : _M_ptr(nullptr), _M_refcount() 8737: { } 8737: 8737: __weak_ptr(const __weak_ptr&) noexcept = default; 8737: 8737: ~__weak_ptr() = default; 8737: # 1622 "/usr/include/c++/8/bits/shared_ptr_base.h" 3 8737: template> 8737: __weak_ptr(const __weak_ptr<_Yp, _Lp>& __r) noexcept 8737: : _M_refcount(__r._M_refcount) 8737: { _M_ptr = __r.lock().get(); } 8737: 8737: template> 8737: __weak_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8737: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: __weak_ptr(__weak_ptr&& __r) noexcept 8737: : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount)) 8737: { __r._M_ptr = nullptr; } 8737: 8737: template> 8737: __weak_ptr(__weak_ptr<_Yp, _Lp>&& __r) noexcept 8737: : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount)) 8737: { __r._M_ptr = nullptr; } 8737: 8737: __weak_ptr& 8737: operator=(const __weak_ptr& __r) noexcept = default; 8737: 8737: template 8737: _Assignable<_Yp> 8737: operator=(const __weak_ptr<_Yp, _Lp>& __r) noexcept 8737: { 8737: _M_ptr = __r.lock().get(); 8737: _M_refcount = __r._M_refcount; 8737: return *this; 8737: } 8737: 8737: template 8737: _Assignable<_Yp> 8737: operator=(const __shared_ptr<_Yp, _Lp>& __r) noexcept 8737: { 8737: _M_ptr = __r._M_ptr; 8737: _M_refcount = __r._M_refcount; 8737: return *this; 8737: } 8737: 8737: __weak_ptr& 8737: operator=(__weak_ptr&& __r) noexcept 8737: { 8737: _M_ptr = __r._M_ptr; 8737: _M_refcount = std::move(__r._M_refcount); 8737: __r._M_ptr = nullptr; 8737: return *this; 8737: } 8737: 8737: template 8737: _Assignable<_Yp> 8737: operator=(__weak_ptr<_Yp, _Lp>&& __r) noexcept 8737: { 8737: _M_ptr = __r.lock().get(); 8737: _M_refcount = std::move(__r._M_refcount); 8737: __r._M_ptr = nullptr; 8737: return *this; 8737: } 8737: 8737: __shared_ptr<_Tp, _Lp> 8737: lock() const noexcept 8737: { return __shared_ptr(*this, std::nothrow); } 8737: 8737: long 8737: use_count() const noexcept 8737: { return _M_refcount._M_get_use_count(); } 8737: 8737: bool 8737: expired() const noexcept 8737: { return _M_refcount._M_get_use_count() == 0; } 8737: 8737: template 8737: bool 8737: owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept 8737: { return _M_refcount._M_less(__rhs._M_refcount); } 8737: 8737: template 8737: bool 8737: owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept 8737: { return _M_refcount._M_less(__rhs._M_refcount); } 8737: 8737: void 8737: reset() noexcept 8737: { __weak_ptr().swap(*this); } 8737: 8737: void 8737: swap(__weak_ptr& __s) noexcept 8737: { 8737: std::swap(_M_ptr, __s._M_ptr); 8737: _M_refcount._M_swap(__s._M_refcount); 8737: } 8737: 8737: private: 8737: 8737: void 8737: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept 8737: { 8737: if (use_count() == 0) 8737: { 8737: _M_ptr = __ptr; 8737: _M_refcount = __refcount; 8737: } 8737: } 8737: 8737: template friend class __shared_ptr; 8737: template friend class __weak_ptr; 8737: friend class __enable_shared_from_this<_Tp, _Lp>; 8737: friend class enable_shared_from_this<_Tp>; 8737: 8737: element_type* _M_ptr; 8737: __weak_count<_Lp> _M_refcount; 8737: }; 8737: 8737: 8737: template 8737: inline void 8737: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept 8737: { __a.swap(__b); } 8737: 8737: template 8737: struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> 8737: { 8737: bool 8737: operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept 8737: { return __lhs.owner_before(__rhs); } 8737: 8737: bool 8737: operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept 8737: { return __lhs.owner_before(__rhs); } 8737: 8737: bool 8737: operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept 8737: { return __lhs.owner_before(__rhs); } 8737: }; 8737: 8737: template<> 8737: struct _Sp_owner_less 8737: { 8737: template 8737: auto 8737: operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept 8737: -> decltype(__lhs.owner_before(__rhs)) 8737: { return __lhs.owner_before(__rhs); } 8737: 8737: using is_transparent = void; 8737: }; 8737: 8737: template 8737: struct owner_less<__shared_ptr<_Tp, _Lp>> 8737: : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>> 8737: { }; 8737: 8737: template 8737: struct owner_less<__weak_ptr<_Tp, _Lp>> 8737: : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>> 8737: { }; 8737: 8737: 8737: template 8737: class __enable_shared_from_this 8737: { 8737: protected: 8737: constexpr __enable_shared_from_this() noexcept { } 8737: 8737: __enable_shared_from_this(const __enable_shared_from_this&) noexcept { } 8737: 8737: __enable_shared_from_this& 8737: operator=(const __enable_shared_from_this&) noexcept 8737: { return *this; } 8737: 8737: ~__enable_shared_from_this() { } 8737: 8737: public: 8737: __shared_ptr<_Tp, _Lp> 8737: shared_from_this() 8737: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 8737: 8737: __shared_ptr 8737: shared_from_this() const 8737: { return __shared_ptr(this->_M_weak_this); } 8737: 8737: 8737: __weak_ptr<_Tp, _Lp> 8737: weak_from_this() noexcept 8737: { return this->_M_weak_this; } 8737: 8737: __weak_ptr 8737: weak_from_this() const noexcept 8737: { return this->_M_weak_this; } 8737: 8737: 8737: private: 8737: template 8737: void 8737: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept 8737: { _M_weak_this._M_assign(__p, __n); } 8737: 8737: friend const __enable_shared_from_this* 8737: __enable_shared_from_this_base(const __shared_count<_Lp>&, 8737: const __enable_shared_from_this* __p) 8737: { return __p; } 8737: 8737: template 8737: friend class __shared_ptr; 8737: 8737: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 8737: }; 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: __allocate_shared(const _Alloc& __a, _Args&&... __args) 8737: { 8737: return __shared_ptr<_Tp, _Lp>(_Sp_make_shared_tag(), __a, 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: __make_shared(_Args&&... __args) 8737: { 8737: typedef typename std::remove_const<_Tp>::type _Tp_nc; 8737: return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: 8737: template 8737: struct hash<__shared_ptr<_Tp, _Lp>> 8737: : public __hash_base> 8737: { 8737: size_t 8737: operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept 8737: { 8737: return hash::element_type*>()( 8737: __s.get()); 8737: } 8737: }; 8737: 8737: 8737: } 8737: # 53 "/usr/include/c++/8/bits/shared_ptr.h" 2 3 8737: 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline std::basic_ostream<_Ch, _Tr>& 8737: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 8737: const __shared_ptr<_Tp, _Lp>& __p) 8737: { 8737: __os << __p.get(); 8737: return __os; 8737: } 8737: 8737: template 8737: inline _Del* 8737: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept 8737: { 8737: 8737: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: template 8737: inline _Del* 8737: get_deleter(const shared_ptr<_Tp>& __p) noexcept 8737: { 8737: 8737: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: class shared_ptr : public __shared_ptr<_Tp> 8737: { 8737: template 8737: using _Constructible = typename enable_if< 8737: is_constructible<__shared_ptr<_Tp>, _Args...>::value 8737: >::type; 8737: 8737: template 8737: using _Assignable = typename enable_if< 8737: is_assignable<__shared_ptr<_Tp>&, _Arg>::value, shared_ptr& 8737: >::type; 8737: 8737: public: 8737: 8737: using element_type = typename __shared_ptr<_Tp>::element_type; 8737: # 127 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 8737: 8737: shared_ptr(const shared_ptr&) noexcept = default; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template> 8737: explicit 8737: shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 8737: # 154 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template> 8737: shared_ptr(_Yp* __p, _Deleter __d) 8737: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 8737: # 172 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: shared_ptr(nullptr_t __p, _Deleter __d) 8737: : __shared_ptr<_Tp>(__p, std::move(__d)) { } 8737: # 191 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template> 8737: shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 8737: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 8737: # 211 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 8737: : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } 8737: # 233 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 8737: : __shared_ptr<_Tp>(__r, __p) { } 8737: # 244 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template&>> 8737: shared_ptr(const shared_ptr<_Yp>& __r) noexcept 8737: : __shared_ptr<_Tp>(__r) { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: shared_ptr(shared_ptr&& __r) noexcept 8737: : __shared_ptr<_Tp>(std::move(__r)) { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template>> 8737: shared_ptr(shared_ptr<_Yp>&& __r) noexcept 8737: : __shared_ptr<_Tp>(std::move(__r)) { } 8737: # 274 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template&>> 8737: explicit shared_ptr(const weak_ptr<_Yp>& __r) 8737: : __shared_ptr<_Tp>(__r) { } 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: template>> 8737: shared_ptr(auto_ptr<_Yp>&& __r); 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: 8737: 8737: template>> 8737: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 8737: : __shared_ptr<_Tp>(std::move(__r)) { } 8737: 8737: 8737: 8737: 8737: 8737: template, __sp_array_delete>* = 0> 8737: shared_ptr(unique_ptr<_Yp, _Del>&& __r) 8737: : __shared_ptr<_Tp>(std::move(__r), __sp_array_delete()) { } 8737: 8737: 8737: 8737: 8737: 8737: 8737: constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 8737: 8737: shared_ptr& operator=(const shared_ptr&) noexcept = default; 8737: 8737: template 8737: _Assignable&> 8737: operator=(const shared_ptr<_Yp>& __r) noexcept 8737: { 8737: this->__shared_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: template 8737: _Assignable> 8737: operator=(auto_ptr<_Yp>&& __r) 8737: { 8737: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8737: return *this; 8737: } 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: shared_ptr& 8737: operator=(shared_ptr&& __r) noexcept 8737: { 8737: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8737: return *this; 8737: } 8737: 8737: template 8737: _Assignable> 8737: operator=(shared_ptr<_Yp>&& __r) noexcept 8737: { 8737: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8737: return *this; 8737: } 8737: 8737: template 8737: _Assignable> 8737: operator=(unique_ptr<_Yp, _Del>&& __r) 8737: { 8737: this->__shared_ptr<_Tp>::operator=(std::move(__r)); 8737: return *this; 8737: } 8737: 8737: private: 8737: 8737: template 8737: shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a, 8737: _Args&&... __args) 8737: : __shared_ptr<_Tp>(__tag, __a, std::forward<_Args>(__args)...) 8737: { } 8737: 8737: template 8737: friend shared_ptr<_Yp> 8737: allocate_shared(const _Alloc& __a, _Args&&... __args); 8737: 8737: 8737: shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) 8737: : __shared_ptr<_Tp>(__r, std::nothrow) { } 8737: 8737: friend class weak_ptr<_Tp>; 8737: }; 8737: # 382 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: inline bool 8737: operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8737: { return __a.get() == __b.get(); } 8737: 8737: template 8737: inline bool 8737: operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8737: { return !__a; } 8737: 8737: template 8737: inline bool 8737: operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8737: { return !__a; } 8737: 8737: template 8737: inline bool 8737: operator!=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8737: { return __a.get() != __b.get(); } 8737: 8737: template 8737: inline bool 8737: operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8737: { return (bool)__a; } 8737: 8737: template 8737: inline bool 8737: operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8737: { return (bool)__a; } 8737: 8737: template 8737: inline bool 8737: operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8737: { 8737: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 8737: using _Up_elt = typename shared_ptr<_Up>::element_type; 8737: using _Vp = typename common_type<_Tp_elt*, _Up_elt*>::type; 8737: return less<_Vp>()(__a.get(), __b.get()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8737: { 8737: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 8737: return less<_Tp_elt*>()(__a.get(), nullptr); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8737: { 8737: using _Tp_elt = typename shared_ptr<_Tp>::element_type; 8737: return less<_Tp_elt*>()(nullptr, __a.get()); 8737: } 8737: 8737: template 8737: inline bool 8737: operator<=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8737: { return !(__b < __a); } 8737: 8737: template 8737: inline bool 8737: operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8737: { return !(nullptr < __a); } 8737: 8737: template 8737: inline bool 8737: operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8737: { return !(__a < nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8737: { return (__b < __a); } 8737: 8737: template 8737: inline bool 8737: operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8737: { return nullptr < __a; } 8737: 8737: template 8737: inline bool 8737: operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8737: { return __a < nullptr; } 8737: 8737: template 8737: inline bool 8737: operator>=(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept 8737: { return !(__a < __b); } 8737: 8737: template 8737: inline bool 8737: operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept 8737: { return !(__a < nullptr); } 8737: 8737: template 8737: inline bool 8737: operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept 8737: { return !(nullptr < __a); } 8737: 8737: template 8737: struct less> : public _Sp_less> 8737: { }; 8737: 8737: 8737: template 8737: inline void 8737: swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept 8737: { __a.swap(__b); } 8737: 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: static_pointer_cast(const shared_ptr<_Up>& __r) noexcept 8737: { 8737: using _Sp = shared_ptr<_Tp>; 8737: return _Sp(__r, static_cast(__r.get())); 8737: } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: const_pointer_cast(const shared_ptr<_Up>& __r) noexcept 8737: { 8737: using _Sp = shared_ptr<_Tp>; 8737: return _Sp(__r, const_cast(__r.get())); 8737: } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept 8737: { 8737: using _Sp = shared_ptr<_Tp>; 8737: if (auto* __p = dynamic_cast(__r.get())) 8737: return _Sp(__r, __p); 8737: return _Sp(); 8737: } 8737: # 535 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: class weak_ptr : public __weak_ptr<_Tp> 8737: { 8737: template 8737: using _Constructible = typename enable_if< 8737: is_constructible<__weak_ptr<_Tp>, _Arg>::value 8737: >::type; 8737: 8737: template 8737: using _Assignable = typename enable_if< 8737: is_assignable<__weak_ptr<_Tp>&, _Arg>::value, weak_ptr& 8737: >::type; 8737: 8737: public: 8737: constexpr weak_ptr() noexcept = default; 8737: 8737: template&>> 8737: weak_ptr(const shared_ptr<_Yp>& __r) noexcept 8737: : __weak_ptr<_Tp>(__r) { } 8737: 8737: weak_ptr(const weak_ptr&) noexcept = default; 8737: 8737: template&>> 8737: weak_ptr(const weak_ptr<_Yp>& __r) noexcept 8737: : __weak_ptr<_Tp>(__r) { } 8737: 8737: weak_ptr(weak_ptr&&) noexcept = default; 8737: 8737: template>> 8737: weak_ptr(weak_ptr<_Yp>&& __r) noexcept 8737: : __weak_ptr<_Tp>(std::move(__r)) { } 8737: 8737: weak_ptr& 8737: operator=(const weak_ptr& __r) noexcept = default; 8737: 8737: template 8737: _Assignable&> 8737: operator=(const weak_ptr<_Yp>& __r) noexcept 8737: { 8737: this->__weak_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: template 8737: _Assignable&> 8737: operator=(const shared_ptr<_Yp>& __r) noexcept 8737: { 8737: this->__weak_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: weak_ptr& 8737: operator=(weak_ptr&& __r) noexcept = default; 8737: 8737: template 8737: _Assignable> 8737: operator=(weak_ptr<_Yp>&& __r) noexcept 8737: { 8737: this->__weak_ptr<_Tp>::operator=(std::move(__r)); 8737: return *this; 8737: } 8737: 8737: shared_ptr<_Tp> 8737: lock() const noexcept 8737: { return shared_ptr<_Tp>(*this, std::nothrow); } 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline void 8737: swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept 8737: { __a.swap(__b); } 8737: 8737: 8737: 8737: template 8737: struct owner_less; 8737: 8737: 8737: template<> 8737: struct owner_less : _Sp_owner_less 8737: { }; 8737: 8737: 8737: template 8737: struct owner_less> 8737: : public _Sp_owner_less, weak_ptr<_Tp>> 8737: { }; 8737: 8737: 8737: template 8737: struct owner_less> 8737: : public _Sp_owner_less, shared_ptr<_Tp>> 8737: { }; 8737: 8737: 8737: 8737: 8737: template 8737: class enable_shared_from_this 8737: { 8737: protected: 8737: constexpr enable_shared_from_this() noexcept { } 8737: 8737: enable_shared_from_this(const enable_shared_from_this&) noexcept { } 8737: 8737: enable_shared_from_this& 8737: operator=(const enable_shared_from_this&) noexcept 8737: { return *this; } 8737: 8737: ~enable_shared_from_this() { } 8737: 8737: public: 8737: shared_ptr<_Tp> 8737: shared_from_this() 8737: { return shared_ptr<_Tp>(this->_M_weak_this); } 8737: 8737: shared_ptr 8737: shared_from_this() const 8737: { return shared_ptr(this->_M_weak_this); } 8737: 8737: 8737: 8737: weak_ptr<_Tp> 8737: weak_from_this() noexcept 8737: { return this->_M_weak_this; } 8737: 8737: weak_ptr 8737: weak_from_this() const noexcept 8737: { return this->_M_weak_this; } 8737: 8737: 8737: private: 8737: template 8737: void 8737: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept 8737: { _M_weak_this._M_assign(__p, __n); } 8737: 8737: 8737: friend const enable_shared_from_this* 8737: __enable_shared_from_this_base(const __shared_count<>&, 8737: const enable_shared_from_this* __p) 8737: { return __p; } 8737: 8737: template 8737: friend class __shared_ptr; 8737: 8737: mutable weak_ptr<_Tp> _M_weak_this; 8737: }; 8737: # 702 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: inline shared_ptr<_Tp> 8737: allocate_shared(const _Alloc& __a, _Args&&... __args) 8737: { 8737: return shared_ptr<_Tp>(_Sp_make_shared_tag(), __a, 8737: std::forward<_Args>(__args)...); 8737: } 8737: # 717 "/usr/include/c++/8/bits/shared_ptr.h" 3 8737: template 8737: inline shared_ptr<_Tp> 8737: make_shared(_Args&&... __args) 8737: { 8737: typedef typename std::remove_const<_Tp>::type _Tp_nc; 8737: return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(), 8737: std::forward<_Args>(__args)...); 8737: } 8737: 8737: 8737: template 8737: struct hash> 8737: : public __hash_base> 8737: { 8737: size_t 8737: operator()(const shared_ptr<_Tp>& __s) const noexcept 8737: { 8737: return std::hash::element_type*>()(__s.get()); 8737: } 8737: }; 8737: 8737: 8737: 8737: 8737: } 8737: # 82 "/usr/include/c++/8/memory" 2 3 8737: # 1 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 1 3 8737: # 35 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: struct _Sp_locker 8737: { 8737: _Sp_locker(const _Sp_locker&) = delete; 8737: _Sp_locker& operator=(const _Sp_locker&) = delete; 8737: 8737: 8737: explicit 8737: _Sp_locker(const void*) noexcept; 8737: _Sp_locker(const void*, const void*) noexcept; 8737: ~_Sp_locker(); 8737: 8737: private: 8737: unsigned char _M_key1; 8737: unsigned char _M_key2; 8737: 8737: 8737: 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline bool 8737: atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p) 8737: { 8737: 8737: return __gthread_active_p() == 0; 8737: 8737: 8737: 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_is_lock_free(const shared_ptr<_Tp>* __p) 8737: { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); } 8737: # 96 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8737: template 8737: inline shared_ptr<_Tp> 8737: atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) 8737: { 8737: _Sp_locker __lock{__p}; 8737: return *__p; 8737: } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: atomic_load(const shared_ptr<_Tp>* __p) 8737: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order) 8737: { 8737: _Sp_locker __lock{__p}; 8737: return *__p; 8737: } 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: atomic_load(const __shared_ptr<_Tp, _Lp>* __p) 8737: { return std::atomic_load_explicit(__p, memory_order_seq_cst); } 8737: # 132 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8737: template 8737: inline void 8737: atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 8737: memory_order) 8737: { 8737: _Sp_locker __lock{__p}; 8737: __p->swap(__r); 8737: } 8737: 8737: template 8737: inline void 8737: atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 8737: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 8737: 8737: template 8737: inline void 8737: atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p, 8737: __shared_ptr<_Tp, _Lp> __r, 8737: memory_order) 8737: { 8737: _Sp_locker __lock{__p}; 8737: __p->swap(__r); 8737: } 8737: 8737: template 8737: inline void 8737: atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 8737: { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); } 8737: # 169 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8737: template 8737: inline shared_ptr<_Tp> 8737: atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, 8737: memory_order) 8737: { 8737: _Sp_locker __lock{__p}; 8737: __p->swap(__r); 8737: return __r; 8737: } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) 8737: { 8737: return std::atomic_exchange_explicit(__p, std::move(__r), 8737: memory_order_seq_cst); 8737: } 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p, 8737: __shared_ptr<_Tp, _Lp> __r, 8737: memory_order) 8737: { 8737: _Sp_locker __lock{__p}; 8737: __p->swap(__r); 8737: return __r; 8737: } 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r) 8737: { 8737: return std::atomic_exchange_explicit(__p, std::move(__r), 8737: memory_order_seq_cst); 8737: } 8737: # 218 "/usr/include/c++/8/bits/shared_ptr_atomic.h" 3 8737: template 8737: bool 8737: atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, 8737: shared_ptr<_Tp>* __v, 8737: shared_ptr<_Tp> __w, 8737: memory_order, 8737: memory_order) 8737: { 8737: shared_ptr<_Tp> __x; 8737: _Sp_locker __lock{__p, __v}; 8737: owner_less> __less; 8737: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 8737: { 8737: __x = std::move(*__p); 8737: *__p = std::move(__w); 8737: return true; 8737: } 8737: __x = std::move(*__v); 8737: *__v = *__p; 8737: return false; 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 8737: shared_ptr<_Tp> __w) 8737: { 8737: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8737: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, 8737: shared_ptr<_Tp>* __v, 8737: shared_ptr<_Tp> __w, 8737: memory_order __success, 8737: memory_order __failure) 8737: { 8737: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8737: std::move(__w), __success, __failure); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, 8737: shared_ptr<_Tp> __w) 8737: { 8737: return std::atomic_compare_exchange_weak_explicit(__p, __v, 8737: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8737: } 8737: 8737: template 8737: bool 8737: atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p, 8737: __shared_ptr<_Tp, _Lp>* __v, 8737: __shared_ptr<_Tp, _Lp> __w, 8737: memory_order, 8737: memory_order) 8737: { 8737: __shared_ptr<_Tp, _Lp> __x; 8737: _Sp_locker __lock{__p, __v}; 8737: owner_less<__shared_ptr<_Tp, _Lp>> __less; 8737: if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p)) 8737: { 8737: __x = std::move(*__p); 8737: *__p = std::move(__w); 8737: return true; 8737: } 8737: __x = std::move(*__v); 8737: *__v = *__p; 8737: return false; 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p, 8737: __shared_ptr<_Tp, _Lp>* __v, 8737: __shared_ptr<_Tp, _Lp> __w) 8737: { 8737: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8737: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p, 8737: __shared_ptr<_Tp, _Lp>* __v, 8737: __shared_ptr<_Tp, _Lp> __w, 8737: memory_order __success, 8737: memory_order __failure) 8737: { 8737: return std::atomic_compare_exchange_strong_explicit(__p, __v, 8737: std::move(__w), __success, __failure); 8737: } 8737: 8737: template 8737: inline bool 8737: atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p, 8737: __shared_ptr<_Tp, _Lp>* __v, 8737: __shared_ptr<_Tp, _Lp> __w) 8737: { 8737: return std::atomic_compare_exchange_weak_explicit(__p, __v, 8737: std::move(__w), memory_order_seq_cst, memory_order_seq_cst); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: } 8737: # 83 "/usr/include/c++/8/memory" 2 3 8737: 8737: # 1 "/usr/include/c++/8/backward/auto_ptr.h" 1 3 8737: # 36 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 47 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: template 8737: struct auto_ptr_ref 8737: { 8737: _Tp1* _M_ptr; 8737: 8737: explicit 8737: auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } 8737: } __attribute__ ((__deprecated__)); 8737: 8737: #pragma GCC diagnostic push 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: # 88 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: template 8737: class auto_ptr 8737: { 8737: private: 8737: _Tp* _M_ptr; 8737: 8737: public: 8737: 8737: typedef _Tp element_type; 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: explicit 8737: auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } 8737: # 114 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } 8737: # 126 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: template 8737: auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } 8737: # 137 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: auto_ptr& 8737: operator=(auto_ptr& __a) throw() 8737: { 8737: reset(__a.release()); 8737: return *this; 8737: } 8737: # 154 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: template 8737: auto_ptr& 8737: operator=(auto_ptr<_Tp1>& __a) throw() 8737: { 8737: reset(__a.release()); 8737: return *this; 8737: } 8737: # 172 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: ~auto_ptr() { delete _M_ptr; } 8737: # 182 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: element_type& 8737: operator*() const throw() 8737: { 8737: ; 8737: return *_M_ptr; 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: element_type* 8737: operator->() const throw() 8737: { 8737: ; 8737: return _M_ptr; 8737: } 8737: # 212 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: element_type* 8737: get() const throw() { return _M_ptr; } 8737: # 226 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: element_type* 8737: release() throw() 8737: { 8737: element_type* __tmp = _M_ptr; 8737: _M_ptr = 0; 8737: return __tmp; 8737: } 8737: # 241 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: void 8737: reset(element_type* __p = 0) throw() 8737: { 8737: if (__p != _M_ptr) 8737: { 8737: delete _M_ptr; 8737: _M_ptr = __p; 8737: } 8737: } 8737: # 266 "/usr/include/c++/8/backward/auto_ptr.h" 3 8737: auto_ptr(auto_ptr_ref __ref) throw() 8737: : _M_ptr(__ref._M_ptr) { } 8737: 8737: auto_ptr& 8737: operator=(auto_ptr_ref __ref) throw() 8737: { 8737: if (__ref._M_ptr != this->get()) 8737: { 8737: delete _M_ptr; 8737: _M_ptr = __ref._M_ptr; 8737: } 8737: return *this; 8737: } 8737: 8737: template 8737: operator auto_ptr_ref<_Tp1>() throw() 8737: { return auto_ptr_ref<_Tp1>(this->release()); } 8737: 8737: template 8737: operator auto_ptr<_Tp1>() throw() 8737: { return auto_ptr<_Tp1>(this->release()); } 8737: } __attribute__ ((__deprecated__)); 8737: 8737: 8737: 8737: template<> 8737: class auto_ptr 8737: { 8737: public: 8737: typedef void element_type; 8737: } __attribute__ ((__deprecated__)); 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: template 8737: inline 8737: __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r) 8737: : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get())) 8737: { __r.release(); } 8737: 8737: template 8737: template 8737: inline 8737: __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r) 8737: : _M_ptr(__r.get()), _M_refcount() 8737: { 8737: 8737: static_assert( sizeof(_Tp1) > 0, "incomplete type" ); 8737: _Tp1* __tmp = __r.get(); 8737: _M_refcount = __shared_count<_Lp>(std::move(__r)); 8737: _M_enable_shared_from_this_with(__tmp); 8737: } 8737: 8737: template 8737: template 8737: inline 8737: shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r) 8737: : __shared_ptr<_Tp>(std::move(__r)) { } 8737: 8737: template 8737: template 8737: inline 8737: unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept 8737: : _M_t(__u.release(), deleter_type()) { } 8737: 8737: 8737: #pragma GCC diagnostic pop 8737: 8737: 8737: } 8737: # 85 "/usr/include/c++/8/memory" 2 3 8737: # 93 "/usr/include/c++/8/memory" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: # 113 "/usr/include/c++/8/memory" 3 8737: inline void* 8737: align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept 8737: { 8737: const auto __intptr = reinterpret_cast(__ptr); 8737: const auto __aligned = (__intptr - 1u + __align) & -__align; 8737: const auto __diff = __aligned - __intptr; 8737: if ((__size + __diff) > __space) 8737: return nullptr; 8737: else 8737: { 8737: __space -= __diff; 8737: return __ptr = reinterpret_cast(__aligned); 8737: } 8737: } 8737: 8737: 8737: 8737: enum class pointer_safety { relaxed, preferred, strict }; 8737: 8737: inline void 8737: declare_reachable(void*) { } 8737: 8737: template 8737: inline _Tp* 8737: undeclare_reachable(_Tp* __p) { return __p; } 8737: 8737: inline void 8737: declare_no_pointers(char*, size_t) { } 8737: 8737: inline void 8737: undeclare_no_pointers(char*, size_t) { } 8737: 8737: inline pointer_safety 8737: get_pointer_safety() noexcept { return pointer_safety::relaxed; } 8737: 8737: 8737: } 8737: # 40 "/usr/include/c++/8/tr1/memory" 2 3 8737: # 50 "/usr/include/c++/8/tr1/memory" 3 8737: # 1 "/usr/include/c++/8/tr1/shared_ptr.h" 1 3 8737: # 52 "/usr/include/c++/8/tr1/shared_ptr.h" 3 8737: namespace std __attribute__ ((__visibility__ ("default"))) 8737: { 8737: 8737: 8737: namespace tr1 8737: { 8737: 8737: 8737: 8737: 8737: class bad_weak_ptr : public std::exception 8737: { 8737: public: 8737: virtual char const* 8737: what() const throw() 8737: { return "tr1::bad_weak_ptr"; } 8737: }; 8737: 8737: 8737: inline void 8737: __throw_bad_weak_ptr() 8737: { (throw (bad_weak_ptr())); } 8737: 8737: using __gnu_cxx::_Lock_policy; 8737: using __gnu_cxx::__default_lock_policy; 8737: using __gnu_cxx::_S_single; 8737: using __gnu_cxx::_S_mutex; 8737: using __gnu_cxx::_S_atomic; 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: class _Mutex_base 8737: { 8737: protected: 8737: 8737: enum { _S_need_barriers = 0 }; 8737: }; 8737: 8737: template<> 8737: class _Mutex_base<_S_mutex> 8737: : public __gnu_cxx::__mutex 8737: { 8737: protected: 8737: 8737: 8737: 8737: enum { _S_need_barriers = 1 }; 8737: }; 8737: 8737: template<_Lock_policy _Lp = __default_lock_policy> 8737: class _Sp_counted_base 8737: : public _Mutex_base<_Lp> 8737: { 8737: public: 8737: _Sp_counted_base() 8737: : _M_use_count(1), _M_weak_count(1) { } 8737: 8737: virtual 8737: ~_Sp_counted_base() 8737: { } 8737: 8737: 8737: 8737: virtual void 8737: _M_dispose() = 0; 8737: 8737: 8737: virtual void 8737: _M_destroy() 8737: { delete this; } 8737: 8737: virtual void* 8737: _M_get_deleter(const std::type_info&) = 0; 8737: 8737: void 8737: _M_add_ref_copy() 8737: { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); } 8737: 8737: void 8737: _M_add_ref_lock(); 8737: 8737: void 8737: _M_release() 8737: { 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1) 8737: { 8737: ; 8737: _M_dispose(); 8737: 8737: 8737: 8737: 8737: if (_Mutex_base<_Lp>::_S_need_barriers) 8737: { 8737: __atomic_thread_fence (4); 8737: } 8737: 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, 8737: -1) == 1) 8737: { 8737: ; 8737: _M_destroy(); 8737: } 8737: } 8737: } 8737: 8737: void 8737: _M_weak_add_ref() 8737: { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); } 8737: 8737: void 8737: _M_weak_release() 8737: { 8737: 8737: ; 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1) 8737: { 8737: ; 8737: if (_Mutex_base<_Lp>::_S_need_barriers) 8737: { 8737: 8737: 8737: __atomic_thread_fence (4); 8737: } 8737: _M_destroy(); 8737: } 8737: } 8737: 8737: long 8737: _M_get_use_count() const 8737: { 8737: 8737: 8737: return const_cast(_M_use_count); 8737: } 8737: 8737: private: 8737: _Sp_counted_base(_Sp_counted_base const&); 8737: _Sp_counted_base& operator=(_Sp_counted_base const&); 8737: 8737: _Atomic_word _M_use_count; 8737: _Atomic_word _M_weak_count; 8737: }; 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_single>:: 8737: _M_add_ref_lock() 8737: { 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8737: { 8737: _M_use_count = 0; 8737: __throw_bad_weak_ptr(); 8737: } 8737: } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_mutex>:: 8737: _M_add_ref_lock() 8737: { 8737: __gnu_cxx::__scoped_lock sentry(*this); 8737: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0) 8737: { 8737: _M_use_count = 0; 8737: __throw_bad_weak_ptr(); 8737: } 8737: } 8737: 8737: template<> 8737: inline void 8737: _Sp_counted_base<_S_atomic>:: 8737: _M_add_ref_lock() 8737: { 8737: 8737: _Atomic_word __count = _M_use_count; 8737: do 8737: { 8737: if (__count == 0) 8737: __throw_bad_weak_ptr(); 8737: 8737: 8737: } 8737: while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1, 8737: true, 4, 8737: 0)); 8737: } 8737: 8737: template 8737: class _Sp_counted_base_impl 8737: : public _Sp_counted_base<_Lp> 8737: { 8737: public: 8737: 8737: _Sp_counted_base_impl(_Ptr __p, _Deleter __d) 8737: : _M_ptr(__p), _M_del(__d) { } 8737: 8737: virtual void 8737: _M_dispose() 8737: { _M_del(_M_ptr); } 8737: 8737: virtual void* 8737: _M_get_deleter(const std::type_info& __ti) 8737: { 8737: 8737: return __ti == typeid(_Deleter) ? &_M_del : 0; 8737: 8737: 8737: 8737: } 8737: 8737: private: 8737: _Sp_counted_base_impl(const _Sp_counted_base_impl&); 8737: _Sp_counted_base_impl& operator=(const _Sp_counted_base_impl&); 8737: 8737: _Ptr _M_ptr; 8737: _Deleter _M_del; 8737: }; 8737: 8737: template<_Lock_policy _Lp = __default_lock_policy> 8737: class __weak_count; 8737: 8737: template 8737: struct _Sp_deleter 8737: { 8737: typedef void result_type; 8737: typedef _Tp* argument_type; 8737: void operator()(_Tp* __p) const { delete __p; } 8737: }; 8737: 8737: template<_Lock_policy _Lp = __default_lock_policy> 8737: class __shared_count 8737: { 8737: public: 8737: __shared_count() 8737: : _M_pi(0) 8737: { } 8737: 8737: template 8737: __shared_count(_Ptr __p) : _M_pi(0) 8737: { 8737: try 8737: { 8737: typedef typename std::tr1::remove_pointer<_Ptr>::type _Tp; 8737: _M_pi = new _Sp_counted_base_impl<_Ptr, _Sp_deleter<_Tp>, _Lp>( 8737: __p, _Sp_deleter<_Tp>()); 8737: } 8737: catch(...) 8737: { 8737: delete __p; 8737: throw; 8737: } 8737: } 8737: 8737: template 8737: __shared_count(_Ptr __p, _Deleter __d) : _M_pi(0) 8737: { 8737: try 8737: { 8737: _M_pi = new _Sp_counted_base_impl<_Ptr, _Deleter, _Lp>(__p, __d); 8737: } 8737: catch(...) 8737: { 8737: __d(__p); 8737: throw; 8737: } 8737: } 8737: 8737: 8737: template 8737: explicit 8737: __shared_count(std::auto_ptr<_Tp>& __r) 8737: : _M_pi(new _Sp_counted_base_impl<_Tp*, 8737: _Sp_deleter<_Tp>, _Lp >(__r.get(), _Sp_deleter<_Tp>())) 8737: { __r.release(); } 8737: 8737: 8737: explicit 8737: __shared_count(const __weak_count<_Lp>& __r); 8737: 8737: ~__shared_count() 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_release(); 8737: } 8737: 8737: __shared_count(const __shared_count& __r) 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_add_ref_copy(); 8737: } 8737: 8737: __shared_count& 8737: operator=(const __shared_count& __r) 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: if (__tmp != _M_pi) 8737: { 8737: if (__tmp != 0) 8737: __tmp->_M_add_ref_copy(); 8737: if (_M_pi != 0) 8737: _M_pi->_M_release(); 8737: _M_pi = __tmp; 8737: } 8737: return *this; 8737: } 8737: 8737: void 8737: _M_swap(__shared_count& __r) 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: __r._M_pi = _M_pi; 8737: _M_pi = __tmp; 8737: } 8737: 8737: long 8737: _M_get_use_count() const 8737: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 8737: 8737: bool 8737: _M_unique() const 8737: { return this->_M_get_use_count() == 1; } 8737: 8737: friend inline bool 8737: operator==(const __shared_count& __a, const __shared_count& __b) 8737: { return __a._M_pi == __b._M_pi; } 8737: 8737: friend inline bool 8737: operator<(const __shared_count& __a, const __shared_count& __b) 8737: { return std::less<_Sp_counted_base<_Lp>*>()(__a._M_pi, __b._M_pi); } 8737: 8737: void* 8737: _M_get_deleter(const std::type_info& __ti) const 8737: { return _M_pi ? _M_pi->_M_get_deleter(__ti) : 0; } 8737: 8737: private: 8737: friend class __weak_count<_Lp>; 8737: 8737: _Sp_counted_base<_Lp>* _M_pi; 8737: }; 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: class __weak_count 8737: { 8737: public: 8737: __weak_count() 8737: : _M_pi(0) 8737: { } 8737: 8737: __weak_count(const __shared_count<_Lp>& __r) 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_weak_add_ref(); 8737: } 8737: 8737: __weak_count(const __weak_count<_Lp>& __r) 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_weak_add_ref(); 8737: } 8737: 8737: ~__weak_count() 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_weak_release(); 8737: } 8737: 8737: __weak_count<_Lp>& 8737: operator=(const __shared_count<_Lp>& __r) 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: if (__tmp != 0) 8737: __tmp->_M_weak_add_ref(); 8737: if (_M_pi != 0) 8737: _M_pi->_M_weak_release(); 8737: _M_pi = __tmp; 8737: return *this; 8737: } 8737: 8737: __weak_count<_Lp>& 8737: operator=(const __weak_count<_Lp>& __r) 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: if (__tmp != 0) 8737: __tmp->_M_weak_add_ref(); 8737: if (_M_pi != 0) 8737: _M_pi->_M_weak_release(); 8737: _M_pi = __tmp; 8737: return *this; 8737: } 8737: 8737: void 8737: _M_swap(__weak_count<_Lp>& __r) 8737: { 8737: _Sp_counted_base<_Lp>* __tmp = __r._M_pi; 8737: __r._M_pi = _M_pi; 8737: _M_pi = __tmp; 8737: } 8737: 8737: long 8737: _M_get_use_count() const 8737: { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; } 8737: 8737: friend inline bool 8737: operator==(const __weak_count<_Lp>& __a, const __weak_count<_Lp>& __b) 8737: { return __a._M_pi == __b._M_pi; } 8737: 8737: friend inline bool 8737: operator<(const __weak_count<_Lp>& __a, const __weak_count<_Lp>& __b) 8737: { return std::less<_Sp_counted_base<_Lp>*>()(__a._M_pi, __b._M_pi); } 8737: 8737: private: 8737: friend class __shared_count<_Lp>; 8737: 8737: _Sp_counted_base<_Lp>* _M_pi; 8737: }; 8737: 8737: 8737: template<_Lock_policy _Lp> 8737: inline 8737: __shared_count<_Lp>:: 8737: __shared_count(const __weak_count<_Lp>& __r) 8737: : _M_pi(__r._M_pi) 8737: { 8737: if (_M_pi != 0) 8737: _M_pi->_M_add_ref_lock(); 8737: else 8737: __throw_bad_weak_ptr(); 8737: } 8737: 8737: 8737: template 8737: class __shared_ptr; 8737: 8737: template 8737: class __weak_ptr; 8737: 8737: template 8737: class __enable_shared_from_this; 8737: 8737: template 8737: class shared_ptr; 8737: 8737: template 8737: class weak_ptr; 8737: 8737: template 8737: class enable_shared_from_this; 8737: 8737: 8737: 8737: 8737: template<_Lock_policy _Lp, typename _Tp1, typename _Tp2> 8737: void 8737: __enable_shared_from_this_helper(const __shared_count<_Lp>&, 8737: const __enable_shared_from_this<_Tp1, 8737: _Lp>*, const _Tp2*); 8737: 8737: 8737: template 8737: void 8737: __enable_shared_from_this_helper(const __shared_count<>&, 8737: const enable_shared_from_this<_Tp1>*, 8737: const _Tp2*); 8737: 8737: template<_Lock_policy _Lp> 8737: inline void 8737: __enable_shared_from_this_helper(const __shared_count<_Lp>&, ...) 8737: { } 8737: 8737: 8737: struct __static_cast_tag { }; 8737: struct __const_cast_tag { }; 8737: struct __dynamic_cast_tag { }; 8737: 8737: 8737: 8737: 8737: template 8737: class __shared_ptr 8737: { 8737: public: 8737: typedef _Tp element_type; 8737: 8737: __shared_ptr() 8737: : _M_ptr(0), _M_refcount() 8737: { } 8737: 8737: template 8737: explicit 8737: __shared_ptr(_Tp1* __p) 8737: : _M_ptr(__p), _M_refcount(__p) 8737: { 8737: 8737: typedef int _IsComplete[sizeof(_Tp1)]; 8737: __enable_shared_from_this_helper(_M_refcount, __p, __p); 8737: } 8737: 8737: template 8737: __shared_ptr(_Tp1* __p, _Deleter __d) 8737: : _M_ptr(__p), _M_refcount(__p, __d) 8737: { 8737: 8737: 8737: __enable_shared_from_this_helper(_M_refcount, __p, __p); 8737: } 8737: 8737: 8737: 8737: template 8737: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r) 8737: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: template 8737: explicit 8737: __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r) 8737: : _M_refcount(__r._M_refcount) 8737: { 8737: 8737: 8737: 8737: _M_ptr = __r._M_ptr; 8737: } 8737: 8737: 8737: 8737: template 8737: explicit 8737: __shared_ptr(std::auto_ptr<_Tp1>& __r) 8737: : _M_ptr(__r.get()), _M_refcount() 8737: { 8737: 8737: typedef int _IsComplete[sizeof(_Tp1)]; 8737: _Tp1* __tmp = __r.get(); 8737: _M_refcount = __shared_count<_Lp>(__r); 8737: __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp); 8737: } 8737: 8737: 8737: 8737: template 8737: __shared_ptr(const __shastatic constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8768: 8768: bool testAndSetRelaxed(T expectedValue, T newValue) noexcept 8768: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8768: bool testAndSetAcquire(T expectedValue, T newValue) noexcept 8768: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8768: bool testAndSetRelease(T expectedValue, T newValue) noexcept 8768: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8768: bool testAndSetOrdered(T expectedValue, T newValue) noexcept 8768: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8768: 8768: bool testAndSetRelaxed(T expectedValue, T newValue, T ¤tValue) noexcept 8768: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8768: bool testAndSetAcquire(T expectedValue, T newValue, T ¤tValue) noexcept 8768: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8768: bool testAndSetRelease(T expectedValue, T newValue, T ¤tValue) noexcept 8768: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); } 8768: bool testAndSetOrdered(T expectedValue, T newValue, T ¤tValue) noexcept 8768: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8768: 8768: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8768: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8768: 8768: T fetchAndStoreRelaxed(T newValue) noexcept 8768: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8768: T fetchAndStoreAcquire(T newValue) noexcept 8768: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8768: T fetchAndStoreRelease(T newValue) noexcept 8768: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8768: T fetchAndStoreOrdered(T newValue) noexcept 8768: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8768: 8768: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8768: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8768: 8768: T fetchAndAddRelaxed(T valueToAdd) noexcept 8768: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8768: T fetchAndAddAcquire(T valueToAdd) noexcept 8768: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8768: T fetchAndAddRelease(T valueToAdd) noexcept 8768: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8768: T fetchAndAddOrdered(T valueToAdd) noexcept 8768: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8768: 8768: T fetchAndSubRelaxed(T valueToAdd) noexcept 8768: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8768: T fetchAndSubAcquire(T valueToAdd) noexcept 8768: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8768: T fetchAndSubRelease(T valueToAdd) noexcept 8768: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8768: T fetchAndSubOrdered(T valueToAdd) noexcept 8768: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8768: 8768: T fetchAndAndRelaxed(T valueToAdd) noexcept 8768: { return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); } 8768: T fetchAndAndAcquire(T valueToAdd) noexcept 8768: { return Ops::fetchAndAndAcquire(_q_value, valueToAdd); } 8768: T fetchAndAndRelease(T valueToAdd) noexcept 8768: { return Ops::fetchAndAndRelease(_q_value, valueToAdd); } 8768: T fetchAndAndOrdered(T valueToAdd) noexcept 8768: { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); } 8768: 8768: T fetchAndOrRelaxed(T valueToAdd) noexcept 8768: { return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); } 8768: T fetchAndOrAcquire(T valueToAdd) noexcept 8768: { return Ops::fetchAndOrAcquire(_q_value, valueToAdd); } 8768: T fetchAndOrRelease(T valueToAdd) noexcept 8768: { return Ops::fetchAndOrRelease(_q_value, valueToAdd); } 8768: T fetchAndOrOrdered(T valueToAdd) noexcept 8768: { return Ops::fetchAndOrOrdered(_q_value, valueToAdd); } 8768: 8768: T fetchAndXorRelaxed(T valueToAdd) noexcept 8768: { return Ops::fetchAndXorRelaxed(_q_value, valueToAdd); } 8768: T fetchAndXorAcquire(T valueToAdd) noexcept 8768: { return Ops::fetchAndXorAcquire(_q_value, valueToAdd); } 8768: T fetchAndXorRelease(T valueToAdd) noexcept 8768: { return Ops::fetchAndXorRelease(_q_value, valueToAdd); } 8768: T fetchAndXorOrdered(T valueToAdd) noexcept 8768: { return Ops::fetchAndXorOrdered(_q_value, valueToAdd); } 8768: 8768: T operator++() noexcept 8768: { return fetchAndAddOrdered(1) + 1; } 8768: T operator++(int) noexcept 8768: { return fetchAndAddOrdered(1); } 8768: T operator--() noexcept 8768: { return fetchAndSubOrdered(1) - 1; } 8768: T operator--(int) noexcept 8768: { return fetchAndSubOrdered(1); } 8768: 8768: T operator+=(T v) noexcept 8768: { return fetchAndAddOrdered(v) + v; } 8768: T operator-=(T v) noexcept 8768: { return fetchAndSubOrdered(v) - v; } 8768: T operator&=(T v) noexcept 8768: { return fetchAndAndOrdered(v) & v; } 8768: T operator|=(T v) noexcept 8768: { return fetchAndOrOrdered(v) | v; } 8768: T operator^=(T v) noexcept 8768: { return fetchAndXorOrdered(v) ^ v; } 8768: 8768: 8768: 8768: QBasicAtomicInteger() = default; 8768: constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {} 8768: QBasicAtomicInteger(const QBasicAtomicInteger &) = delete; 8768: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete; 8768: QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete; 8768: 8768: }; 8768: typedef QBasicAtomicInteger QBasicAtomicInt; 8768: 8768: template 8768: class QBasicAtomicPointer 8768: { 8768: public: 8768: typedef X *Type; 8768: typedef QAtomicOps Ops; 8768: typedef typename Ops::Type AtomicType; 8768: 8768: AtomicType _q_value; 8768: 8768: Type load() const noexcept { return Ops::load(_q_value); } 8768: void store(Type newValue) noexcept { Ops::store(_q_value, newValue); } 8768: operator Type() const noexcept { return loadAcquire(); } 8768: Type operator=(Type newValue) noexcept { storeRelease(newValue); return newValue; } 8768: 8768: 8768: Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); } 8768: void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); } 8768: 8768: static constexpr bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); } 8768: static constexpr bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); } 8768: 8768: bool testAndSetRelaxed(Type expectedValue, Type newValue) noexcept 8768: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); } 8768: bool testAndSetAcquire(Type expectedValue, Type newValue) noexcept 8768: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); } 8768: bool testAndSetRelease(Type expectedValue, Type newValue) noexcept 8768: { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); } 8768: bool testAndSetOrdered(Type expectedValue, Type newValue) noexcept 8768: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); } 8768: 8768: bool testAndSetRelaxed(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8768: { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); } 8768: bool testAndSetAcquire(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8768: { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); } 8768: bool testAndSetRelease(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8768: { return Ops::testAndSetRelease(_qred_ptr<_Tp1, _Lp>& __r, __static_cast_tag) 8737: : _M_ptr(static_cast(__r._M_ptr)), 8737: _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: template 8737: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __const_cast_tag) 8737: : _M_ptr(const_cast(__r._M_ptr)), 8737: _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: template 8737: __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, __dynamic_cast_tag) 8737: : _M_ptr(dynamic_cast(__r._M_ptr)), 8737: _M_refcount(__r._M_refcount) 8737: { 8737: if (_M_ptr == 0) 8737: _M_refcount = __shared_count<_Lp>(); 8737: } 8737: 8737: template 8737: __shared_ptr& 8737: operator=(const __shared_ptr<_Tp1, _Lp>& __r) 8737: { 8737: _M_ptr = __r._M_ptr; 8737: _M_refcount = __r._M_refcount; 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: __shared_ptr& 8737: operator=(std::auto_ptr<_Tp1>& __r) 8737: { 8737: __shared_ptr(__r).swap(*this); 8737: return *this; 8737: } 8737: 8737: 8737: void 8737: reset() 8737: { __shared_ptr().swap(*this); } 8737: 8737: template 8737: void 8737: reset(_Tp1* __p) 8737: { 8737: 8737: ; 8737: __shared_ptr(__p).swap(*this); 8737: } 8737: 8737: template 8737: void 8737: reset(_Tp1* __p, _Deleter __d) 8737: { __shared_ptr(__p, __d).swap(*this); } 8737: 8737: 8737: typename std::tr1::add_reference<_Tp>::type 8737: operator*() const 8737: { 8737: ; 8737: return *_M_ptr; 8737: } 8737: 8737: _Tp* 8737: operator->() const 8737: { 8737: ; 8737: return _M_ptr; 8737: } 8737: 8737: _Tp* 8737: get() const 8737: { return _M_ptr; } 8737: 8737: 8737: private: 8737: typedef _Tp* __shared_ptr::*__unspecified_bool_type; 8737: 8737: public: 8737: operator __unspecified_bool_type() const 8737: { return _M_ptr == 0 ? 0 : &__shared_ptr::_M_ptr; } 8737: 8737: bool 8737: unique() const 8737: { return _M_refcount._M_unique(); } 8737: 8737: long 8737: use_count() const 8737: { return _M_refcount._M_get_use_count(); } 8737: 8737: void 8737: swap(__shared_ptr<_Tp, _Lp>& __other) 8737: { 8737: std::swap(_M_ptr, __other._M_ptr); 8737: _M_refcount._M_swap(__other._M_refcount); 8737: } 8737: 8737: private: 8737: void* 8737: _M_get_deleter(const std::type_info& __ti) const 8737: { return _M_refcount._M_get_deleter(__ti); } 8737: 8737: template 8737: bool 8737: _M_less(const __shared_ptr<_Tp1, _Lp1>& __rhs) const 8737: { return _M_refcount < __rhs._M_refcount; } 8737: 8737: template friend class __shared_ptr; 8737: template friend class __weak_ptr; 8737: 8737: template 8737: friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&); 8737: 8737: 8737: template 8737: friend inline bool 8737: operator==(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b) 8737: { return __a.get() == __b.get(); } 8737: 8737: template 8737: friend inline bool 8737: operator!=(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b) 8737: { return __a.get() != __b.get(); } 8737: 8737: template 8737: friend inline bool 8737: operator<(const __shared_ptr& __a, const __shared_ptr<_Tp1, _Lp>& __b) 8737: { return __a._M_less(__b); } 8737: 8737: _Tp* _M_ptr; 8737: __shared_count<_Lp> _M_refcount; 8737: }; 8737: 8737: 8737: template 8737: inline void 8737: swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) 8737: { __a.swap(__b); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) 8737: { return __shared_ptr<_Tp, _Lp>(__r, __static_cast_tag()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) 8737: { return __shared_ptr<_Tp, _Lp>(__r, __const_cast_tag()); } 8737: 8737: 8737: 8737: 8737: 8737: 8737: template 8737: inline __shared_ptr<_Tp, _Lp> 8737: dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) 8737: { return __shared_ptr<_Tp, _Lp>(__r, __dynamic_cast_tag()); } 8737: 8737: 8737: template 8737: std::basic_ostream<_Ch, _Tr>& 8737: operator<<(std::basic_ostream<_Ch, _Tr>& __os, 8737: const __shared_ptr<_Tp, _Lp>& __p) 8737: { 8737: __os << __p.get(); 8737: return __os; 8737: } 8737: 8737: 8737: template 8737: inline _Del* 8737: get_deleter(const __shared_ptr<_Tp, _Lp>& __p) 8737: { 8737: 8737: return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); 8737: 8737: 8737: 8737: } 8737: 8737: 8737: template 8737: class __weak_ptr 8737: { 8737: public: 8737: typedef _Tp element_type; 8737: 8737: __weak_ptr() 8737: : _M_ptr(0), _M_refcount() 8737: { } 8737: # 823 "/usr/include/c++/8/tr1/shared_ptr.h" 3 8737: template 8737: __weak_ptr(const __weak_ptr<_Tp1, _Lp>& __r) 8737: : _M_refcount(__r._M_refcount) 8737: { 8737: 8737: _M_ptr = __r.lock().get(); 8737: } 8737: 8737: template 8737: __weak_ptr(const __shared_ptr<_Tp1, _Lp>& __r) 8737: : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) 8737: { } 8737: 8737: template 8737: __weak_ptr& 8737: operator=(const __weak_ptr<_Tp1, _Lp>& __r) 8737: { 8737: _M_ptr = __r.lock().get(); 8737: _M_refcount = __r._M_refcount; 8737: return *this; 8737: } 8737: 8737: template 8737: __weak_ptr& 8737: operator=(const __shared_ptr<_Tp1, _Lp>& __r) 8737: { 8737: _M_ptr = __r._M_ptr; 8737: _M_refcount = __r._M_refcount; 8737: return *this; 8737: } 8737: 8737: __shared_ptr<_Tp, _Lp> 8737: lock() const 8737: { 8737: 8737: 8737: if (expired()) 8737: return __shared_ptr(); 8737: 8737: try 8737: { 8737: return __shared_ptr(*this); 8737: } 8737: catch(const bad_weak_ptr&) 8737: { 8737: 8737: 8737: 8737: return __shared_ptr(); 8737: } 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: } 8737: 8737: long 8737: use_count() const 8737: { return _M_refcount._M_get_use_count(); } 8737: 8737: bool 8737: expired() const 8737: { return _M_refcount._M_get_use_count() == 0; } 8737: 8737: void 8737: reset() 8737: { __weak_ptr().swap(*this); } 8737: 8737: void 8737: swap(__weak_ptr& __s) 8737: { 8737: std::swap(_M_ptr, __s._M_ptr); 8737: _M_refcount._M_swap(__s._M_refcount); 8737: } 8737: 8737: private: 8737: 8737: void 8737: _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) 8737: { 8737: _M_ptr = __ptr; 8737: _M_refcount = __refcount; 8737: } 8737: 8737: template 8737: bool 8737: _M_less(const __weak_ptr<_Tp1, _Lp>& __rhs) const 8737: { return _M_refcount < __rhs._M_refcount; } 8737: 8737: template friend class __shared_ptr; 8737: template friend class __weak_ptr; 8737: friend class __enable_shared_from_this<_Tp, _Lp>; 8737: friend class enable_shared_from_this<_Tp>; 8737: 8737: 8737: template 8737: friend inline bool 8737: operator<(const __weak_ptr& __lhs, const __weak_ptr<_Tp1, _Lp>& __rhs) 8737: { return __lhs._M_less(__rhs); } 8737: 8737: _Tp* _M_ptr; 8737: __weak_count<_Lp> _M_refcount; 8737: }; 8737: 8737: 8737: template 8737: inline void 8737: swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) 8737: { __a.swap(__b); } 8737: 8737: 8737: template 8737: class __enable_shared_from_this 8737: { 8737: protected: 8737: __enable_shared_from_this() { } 8737: 8737: __enable_shared_from_this(const __enable_shared_from_this&) { } 8737: 8737: __enable_shared_from_this& 8737: operator=(const __enable_shared_from_this&) 8737: { return *this; } 8737: 8737: ~__enable_shared_from_this() { } 8737: 8737: public: 8737: __shared_ptr<_Tp, _Lp> 8737: shared_from_this() 8737: { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); } 8737: 8737: __shared_ptr 8737: shared_from_this() const 8737: { return __shared_ptr(this->_M_weak_this); } 8737: 8737: private: 8737: template 8737: void 8737: _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const 8737: { _M_weak_this._M_assign(__p, __n); } 8737: 8737: template 8737: friend void 8737: __enable_shared_from_this_helper(const __shared_count<_Lp>& __pn, 8737: const __enable_shared_from_this* __pe, 8737: const _Tp1* __px) 8737: { 8737: if (__pe != 0) 8737: __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn); 8737: } 8737: 8737: mutable __weak_ptr<_Tp, _Lp> _M_weak_this; 8737: }; 8737: 8737: 8737: 8737: 8737: template 8737: class shared_ptr 8737: : public __shared_ptr<_Tp> 8737: { 8737: public: 8737: shared_ptr() 8737: : __shared_ptr<_Tp>() { } 8737: 8737: template 8737: explicit 8737: shared_ptr(_Tp1* __p) 8737: : __shared_ptr<_Tp>(__p) { } 8737: 8737: template 8737: shared_ptr(_Tp1* __p, _Deleter __d) 8737: : __shared_ptr<_Tp>(__p, __d) { } 8737: 8737: template 8737: shared_ptr(const shared_ptr<_Tp1>& __r) 8737: : __shared_ptr<_Tp>(__r) { } 8737: 8737: template 8737: explicit 8737: shared_ptr(const weak_ptr<_Tp1>& __r) 8737: : __shared_ptr<_Tp>(__r) { } 8737: 8737: 8737: template 8737: explicit 8737: shared_ptr(std::auto_ptr<_Tp1>& __r) 8737: : __shared_ptr<_Tp>(__r) { } 8737: 8737: 8737: template 8737: shared_ptr(const shared_ptr<_Tp1>& __r, __static_cast_tag) 8737: : __shared_ptr<_Tp>(__r, __static_cast_tag()) { } 8737: 8737: template 8737: shared_ptr(const shared_ptr<_Tp1>& __r, __const_cast_tag) 8737: : __shared_ptr<_Tp>(__r, __const_cast_tag()) { } 8737: 8737: template 8737: shared_ptr(const shared_ptr<_Tp1>& __r, __dynamic_cast_tag) 8737: : __shared_ptr<_Tp>(__r, __dynamic_cast_tag()) { } 8737: 8737: template 8737: shared_ptr& 8737: operator=(const shared_ptr<_Tp1>& __r) 8737: { 8737: this->__shared_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: 8737: template 8737: shared_ptr& 8737: operator=(std::auto_ptr<_Tp1>& __r) 8737: { 8737: this->__shared_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: }; 8737: 8737: 8737: template 8737: inline void 8737: swap(__shared_ptr<_Tp>& __a, __shared_ptr<_Tp>& __b) 8737: { __a.swap(__b); } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: static_pointer_cast(const shared_ptr<_Tp1>& __r) 8737: { return shared_ptr<_Tp>(__r, __static_cast_tag()); } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: const_pointer_cast(const shared_ptr<_Tp1>& __r) 8737: { return shared_ptr<_Tp>(__r, __const_cast_tag()); } 8737: 8737: template 8737: inline shared_ptr<_Tp> 8737: dynamic_pointer_cast(const shared_ptr<_Tp1>& __r) 8737: { return shared_ptr<_Tp>(__r, __dynamic_cast_tag()); } 8737: 8737: 8737: 8737: 8737: template 8737: class weak_ptr 8737: : public __weak_ptr<_Tp> 8737: { 8737: public: 8737: weak_ptr() 8737: : __weak_ptr<_Tp>() { } 8737: 8737: template 8737: weak_ptr(const weak_ptr<_Tp1>& __r) 8737: : __weak_ptr<_Tp>(__r) { } 8737: 8737: template 8737: weak_ptr(const shared_ptr<_Tp1>& __r) 8737: : __weak_ptr<_Tp>(__r) { } 8737: 8737: template 8737: weak_ptr& 8737: operator=(const weak_ptr<_Tp1>& __r) 8737: { 8737: this->__weak_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: template 8737: weak_ptr& 8737: operator=(const shared_ptr<_Tp1>& __r) 8737: { 8737: this->__weak_ptr<_Tp>::operator=(__r); 8737: return *this; 8737: } 8737: 8737: shared_ptr<_Tp> 8737: lock() const 8737: { 8737: 8737: if (this->expired()) 8737: return shared_ptr<_Tp>(); 8737: 8737: try 8737: { 8737: return shared_ptr<_Tp>(*this); 8737: } 8737: catch(const bad_weak_ptr&) 8737: { 8737: return shared_ptr<_Tp>(); 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: }; 8737: 8737: template 8737: class enable_shared_from_this 8737: { 8737: protected: 8737: enable_shared_from_this() { } 8737: 8737: enable_shared_from_this(const enable_shared_from_this&) { } 8737: 8737: enable_shared_from_this& 8737: operator=(const enable_shared_from_this&) 8737: { return *this; } 8737: 8737: ~enable_shared_from_this() { } 8737: 8737: public: 8737: shared_ptr<_Tp> 8737: shared_from_this() 8737: { return shared_ptr<_Tp>(this->_M_weak_this); } 8737: 8737: shared_ptr 8737: shared_from_this() const 8737: { return shared_ptr(this->_M_weak_this); } 8737: 8737: private: 8737: template 8737: void 8737: _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const 8737: { _M_weak_this._M_assign(__p, __n); } 8737: 8737: template 8737: friend void 8737: __enable_shared_from_this_helper(const __shared_count<>& __pn, 8737: const enable_shared_from_this* __pe, 8737: const _Tp1* __px) 8737: { 8737: if (__pe != 0) 8737: __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn); 8737: } 8737: 8737: mutable weak_ptr<_Tp> _M_weak_this; 8737: }; 8737: } 8737: 8737: 8737: } 8737: # 51 "/usr/include/c++/8/tr1/memory" 2 3 8737: # 46 "/<>/templates/tests/testgenerictypes.cpp" 2 8737: 8737: 8737: template struct QMetaTypeId< 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: ThreeArray 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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 tNameL_value, expectedValue, newValue, ¤tValue); } 8768: bool testAndSetOrdered(Type expectedValue, Type newValue, Type ¤tValue) noexcept 8768: { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); } 8768: 8768: static constexpr bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); } 8768: static constexpr bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); } 8768: 8768: Type fetchAndStoreRelaxed(Type newValue) noexcept 8768: { return Ops::fetchAndStoreRelaxed(_q_value, newValue); } 8768: Type fetchAndStoreAcquire(Type newValue) noexcept 8768: { return Ops::fetchAndStoreAcquire(_q_value, newValue); } 8768: Type fetchAndStoreRelease(Type newValue) noexcept 8768: { return Ops::fetchAndStoreRelease(_q_value, newValue); } 8768: Type fetchAndStoreOrdered(Type newValue) noexcept 8768: { return Ops::fetchAndStoreOrdered(_q_value, newValue); } 8768: 8768: static constexpr bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); } 8768: static constexpr bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); } 8768: 8768: Type fetchAndAddRelaxed(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); } 8768: Type fetchAndAddAcquire(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); } 8768: Type fetchAndAddRelease(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndAddRelease(_q_value, valueToAdd); } 8768: Type fetchAndAddOrdered(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); } 8768: 8768: Type fetchAndSubRelaxed(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); } 8768: Type fetchAndSubAcquire(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); } 8768: Type fetchAndSubRelease(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndSubRelease(_q_value, valueToAdd); } 8768: Type fetchAndSubOrdered(qptrdiff valueToAdd) noexcept 8768: { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); } 8768: 8768: Type operator++() noexcept 8768: { return fetchAndAddOrdered(1) + 1; } 8768: Type operator++(int) noexcept 8768: { return fetchAndAddOrdered(1); } 8768: Type operator--() noexcept 8768: { return fetchAndSubOrdered(1) - 1; } 8768: Type operator--(int) noexcept 8768: { return fetchAndSubOrdered(1); } 8768: Type operator+=(qptrdiff valueToAdd) noexcept 8768: { return fetchAndAddOrdered(valueToAdd) + valueToAdd; } 8768: Type operator-=(qptrdiff valueToSub) noexcept 8768: { return fetchAndSubOrdered(valueToSub) - valueToSub; } 8768: 8768: 8768: QBasicAtomicPointer() = default; 8768: constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {} 8768: QBasicAtomicPointer(const QBasicAtomicPointer &) = delete; 8768: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete; 8768: QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete; 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 329 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 329 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h" 3 4 8768: 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 2 3 4 8768: 8768: 8768: 8768: 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: 8768: 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wextra" 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: 8768: 8768: 8768: template 8768: class QAtomicInteger : public QBasicAtomicInteger 8768: { 8768: public: 8768: 8768: 8768: constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger(value) {} 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline QAtomicInteger(const QAtomicInteger &other) noexcept 8768: 8768: : QBasicAtomicInteger() 8768: 8768: { 8768: this->storeRelease(other.loadAcquire()); 8768: } 8768: 8768: inline QAtomicInteger &operator=(const QAtomicInteger &other) noexcept 8768: { 8768: this->storeRelease(other.loadAcquire()); 8768: return *this; 8768: } 8768: # 151 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: }; 8768: 8768: class QAtomicInt : public QAtomicInteger 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: constexpr 8768: 8768: QAtomicInt(int value = 0) noexcept : QAtomicInteger(value) {} 8768: }; 8768: 8768: 8768: template 8768: class QAtomicPointer : public QBasicAtomicPointer 8768: { 8768: public: 8768: 8768: constexpr QAtomicPointer(T *value = 0) noexcept : QBasicAtomicPointer(value) {} 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline QAtomicPointer(const QAtomicPointer &other) noexcept 8768: 8768: : QBasicAtomicPointer() 8768: 8768: { 8768: this->storeRelease(other.loadAcquire()); 8768: } 8768: 8768: inline QAtomicPointer &operator=(const QAtomicPointer &other) noexcept 8768: { 8768: this->storeRelease(other.loadAcquire()); 8768: return *this; 8768: } 8768: # 222 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: }; 8768: 8768: 8768: # 224 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 224 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: 8768: # 236 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: template 8768: inline void qAtomicAssign(T *&d, T *x) 8768: { 8768: if (d == x) 8768: return; 8768: x->ref.ref(); 8768: if (!d->ref.deref()) 8768: delete d; 8768: d = x; 8768: } 8768: # 255 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 3 4 8768: template 8768: inline void qAtomicDetach(T *&d) 8768: { 8768: if (d->ref.load() == 1) 8768: return; 8768: T *x = d; 8768: d = new T(*d); 8768: if (!x->ref.deref()) 8768: delete x; 8768: } 8768: 8768: 8768: # 1159 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 2 3 4 8768: 8768: 8768: 8768: namespace QtGlobalStatic { 8768: enum GuardValues { 8768: Destroyed = -2, 8768: Initialized = -1, 8768: Uninitialized = 0, 8768: Initializing = 1 8768: }; 8768: } 8768: # 127 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8768: template 8768: struct QGlobalStatic 8768: { 8768: typedef T Type; 8768: 8768: bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; } 8768: bool exists() const { return guard.load() == QtGlobalStatic::Initialized; } 8768: operator Type *() { if (isDestroyed()) return 0; return innerFunction(); } 8768: Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); } 8768: Type *operator->() 8768: { 8768: do { } while ((false) && (!isDestroyed())); 8768: return innerFunction(); 8768: } 8768: Type &operator*() 8768: { 8768: do { } while ((false) && (!isDestroyed())); 8768: return *innerFunction(); 8768: } 8768: }; 8768: # 161 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobalstatic.h" 3 4 8768: 8768: # 1160 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnumeric.h" 1 3 4 8768: # 45 "/usr/include/en = int(qstrlen(tName)); QByteArray typeName; typeName.reserve(int(sizeof( 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: "ThreeArray" 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) + 1 + tNameLen + 1 + 1); typeName.append( 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: "ThreeArray" 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , int(sizeof( 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: "ThreeArray" 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: ThreeArray 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( typeName, reinterpret_cast< 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: ThreeArray 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer< 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 8737: ThreeArray 8737: # 48 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { enum { Value = true }; }; } 8737: 8737: namespace QtPrivate { template struct IsAssociativeContainer< 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8737: QtUnorderedMap 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { enum { Value = true }; }; } template struct QMetaTypeId< 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8737: QtUnorderedMap 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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( 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QtUnorderedMap" 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) + 1 + tNameLen + 1 + uNameLen + 1 + 1); typeName.append( 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QtUnorderedMap" 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , int(sizeof( 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QtUnorderedMap" 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) - 1) .append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 8737: QtUnorderedMap 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( typeName, reinterpret_cast< 8737: # 50x86_64-linux-gnu/qt5/QtCore/qnumeric.h" 3 4 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) bool qIsInf(double d); 8768: __attribute__((visibility("default"))) bool qIsNaN(double d); 8768: __attribute__((visibility("default"))) bool qIsFinite(double d); 8768: __attribute__((visibility("default"))) bool qIsInf(float f); 8768: __attribute__((visibility("default"))) bool qIsNaN(float f); 8768: __attribute__((visibility("default"))) bool qIsFinite(float f); 8768: __attribute__((visibility("default"))) double qSNaN(); 8768: __attribute__((visibility("default"))) double qQNaN(); 8768: __attribute__((visibility("default"))) double qInf(); 8768: 8768: __attribute__((visibility("default"))) quint32 qFloatDistance(float a, float b); 8768: __attribute__((visibility("default"))) quint64 qFloatDistance(double a, double b); 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1161 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qversiontagging.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qversiontagging.h" 3 4 8768: 8768: # 85 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qversiontagging.h" 3 4 8768: asm ( ".section .qtversion, \"aG\", @progbits, " "qt_version_tag" ", comdat\n" ".align 8\n" ".quad " "qt_version_tag" "@GOT\n" ".long " "((5<<16)|(9<<8)|(3))" "\n" ".align 8\n" ".previous" ); 8768: 8768: 8768: 8768: # 1162 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h" 2 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 2 3 4 8768: 8768: 8768: 8768: 8768: class QString; 8768: 8768: struct QLatin1Char 8768: { 8768: public: 8768: constexpr inline explicit QLatin1Char(char c) noexcept : ch(c) {} 8768: constexpr inline char toLatin1() const noexcept { return ch; } 8768: constexpr inline ushort unicode() const noexcept { return ushort(uchar(ch)); } 8768: 8768: private: 8768: char ch; 8768: }; 8768: 8768: 8768: class __attribute__((visibility("default"))) QChar { 8768: public: 8768: enum SpecialCharacter { 8768: Null = 0x0000, 8768: Tabulation = 0x0009, 8768: LineFeed = 0x000a, 8768: CarriageReturn = 0x000d, 8768: Space = 0x0020, 8768: Nbsp = 0x00a0, 8768: SoftHyphen = 0x00ad, 8768: ReplacementCharacter = 0xfffd, 8768: ObjectReplacementCharacter = 0xfffc, 8768: ByteOrderMark = 0xfeff, 8768: ByteOrderSwapped = 0xfffe, 8768: ParagraphSeparator = 0x2029, 8768: LineSeparator = 0x2028, 8768: LastValidCodePoint = 0x10ffff 8768: }; 8768: 8768: constexpr QChar() noexcept : ucs(0) {} 8768: constexpr QChar(ushort rc) noexcept : ucs(rc) {} 8768: constexpr QChar(uchar c, uchar r) noexcept : ucs(ushort((r << 8) | c)) {} 8768: constexpr QChar(short rc) noexcept : ucs(ushort(rc)) {} 8768: constexpr QChar(uint rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8768: constexpr QChar(int rc) noexcept : ucs(ushort(rc & 0xffff)) {} 8768: constexpr QChar(SpecialCharacter s) noexcept : ucs(ushort(s)) {} 8768: constexpr QChar(QLatin1Char ch) noexcept : ucs(ch.unicode()) {} 8768: # 98 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h" 3 4 8768: enum Category 8768: { 8768: Mark_NonSpacing, 8768: Mark_SpacingCombining, 8768: Mark_Enclosing, 8768: 8768: Number_DecimalDigit, 8768: Number_Letter, 8768: Number_Other, 8768: 8768: Separator_Space, 8768: Separator_Line, 8768: Separator_Paragraph, 8768: 8768: Other_Control, 8768: Other_Format, 8768: Other_Surrogate, 8768: Other_PrivateUse, 8768: Other_NotAssigned, 8768: 8768: Letter_Uppercase, 8768: Letter_Lowercase, 8768: Letter_Titlecase, 8768: Letter_Modifier, 8768: Letter_Other, 8768: 8768: Punctuation_Connector, 8768: Punctuation_Dash, 8768: Punctuation_Open, 8768: Punctuation_Close, 8768: Punctuation_InitialQuote, 8768: Punctuation_FinalQuote, 8768: Punctuation_Other, 8768: 8768: Symbol_Math, 8768: Symbol_Currency, 8768: Symbol_Modifier, 8768: Symbol_Other 8768: }; 8768: 8768: enum Script 8768: { 8768: Script_Unknown, 8768: Script_Inherited, 8768: Script_Common, 8768: 8768: Script_Latin, 8768: Script_Greek, 8768: Script_Cyrillic, 8768: Script_Armenian, 8768: Script_Hebrew, 8768: Script_Arabic, 8768: Script_Syriac, 8768: Script_Thaana, 8768: Script_Devanagari, 8768: Script_Bengali, 8768: Script_Gurmukhi, 8768: Script_Gujarati, 8768: Script_Oriya, 8768: Script_Tamil, 8768: Script_Telugu, 8768: Script_Kannada, 8768: Script_Malayalam, 8768: Script_Sinhala, 8768: Script_Thai, 8768: Script_Lao, 8768: Script_Tibetan, 8768: Script_Myanmar, 8768: Script_Georgian, 8768: Script_Hangul, 8768: Script_Ethiopic, 8768: Script_Cherokee, 8768: Script_CanadianAboriginal, 8768: Script_Ogham, 8768: Script_Runic, 8768: Script_Khmer, 8768: Script_Mongolian, 8768: Script_Hiragana, 8768: Script_Katakana, 8768: Script_Bopomofo, 8768: Script_Han, 8768: Script_Yi, 8768: Script_OldItalic, 8768: Script_Gothic, 8768: Script_Deseret, 8768: Script_Tagalog, 8768: Script_Hanunoo, 8768: Script_Buhid, 8768: Script_Tagbanwa, 8768: Script_Coptic, 8768: 8768: 8768: Script_Limbu, 8768: Script_TaiLe, 8768: Script_LinearB, 8768: Script_Ugaritic, 8768: Script_Shavian, 8768: Script_Osmanya, 8768: Script_Cypriot, 8768: Script_Braille, 8768: 8768: 8768: Script_Buginese, 8768: Script_NewTaiLue, 8768: Script_Glagolitic, 8768: Script_Tifinagh, 8768: Script_SylotiNagri, 8768: Script_OldPersian, 8768: Script_Kharoshthi, 8768: 8768: 8768: Script_Balinese, 8768: Script_Cuneiform, 8768: Script_Phoenician, 8768: Script_PhagsPa, 8768: Script_Nko, 8768: 8768: 8768: Script_Sundanese, 8768: Script_Lepcha, 8768: Script_OlChiki, 8768: Script_Vai, 8768: Script_Saurashtra, 8768: Script_KayahLi, 8768: Script_Rejang, 8768: Script_Lycian, 8768: Script_Carian, 8768: Script_Lydian, 8768: Script_Cham, 8768: 8768: 8768: Script_TaiTham, 8768: Script_TaiViet, 8768: Script_Avestan, 8768: Script_EgyptianHieroglyphs, 8768: Script_Samaritan, 8768: Script_Lisu, 8768: Script_Bamum, 8768: Script_Javanese, 8768: Script_MeeteiMayek, 8768: Script_ImperialAramaic, 8768: Script_OldSouthArabian, 8768: Script_InscriptionalParthian, 8768: Script_InscriptionalPahlavi, 8768: Script_OldTurkic, 8768: Script_Kaithi, 8768: 8768: 8768: Script_Batak, 8768: Script_Brahmi, 8768: Script_Mandaic, 8768: 8768: 8768: Script_Chakma, 8768: Script_MeroiticCursive, 8768: Script_MeroiticHieroglyphs, 8768: Script_Miao, 8768: Script_Sharada, 8768: Script_SoraSompeng, 8768: Script_Takri, 8768: 8768: 8768: Script_CaucasianAlbanian, 8768: Script_BassaVah, 8768: Script_Duployan, 8768: Script_Elbasan, 8768: Script_Grantha, 8768: Script_PahawhHmong, 8768: Script_Khojki, 8768: Script_LinearA, 8768: Script_Mahajani, 8768: Script_Manichaean, 8768: Script_MendeKikakui, 8768: Script_Modi, 8768: Script_Mro, 8768: Script_OldNorthArabian, 8768: Script_Nabataean, 8768: Script_Palmyrene, 8768: Script_PauCinHau, 8768: Script_OldPermic, 8768: Scr "/<>/templates/tests/testgenerictypes.cpp" 8737: QtUnorderedMap 8737: # 50 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8737: 8737: namespace QtPrivate { template struct SharedPointerMetaTypeIdHelper< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 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( 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: "std::tr1::shared_ptr" 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ) + 1 + strlen(cName) + 1)); typeName.append( 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: "std::tr1::shared_ptr" 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , int(sizeof( 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: "std::tr1::shared_ptr" 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) - 1) .append('<').append(cName).append('>'); const int newId = qRegisterNormalizedMetaType< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( typeName, reinterpret_cast< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; template struct MetaTypeSmartPointerHelper< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , typename std::enable_if::Value>::type> { static bool registerConverter(int id) { const int toId = QMetaType::QObjectStar; if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { QtPrivate::QSmartPointerConvertFunctor< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > o; static const QtPrivate::ConverterFunctor< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , QObject*, QSmartPointerConvertFunctor< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > > f(o); return QMetaType::registerConverterFunction(&f, id, toId); } return true; } }; } template struct QMetaTypeId< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > : QtPrivate::SharedPointerMetaTypeIdHelper< 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::tr1::shared_ptr 8737: # 52 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , QtPrivate::IsPointerToTypeDerivedFromQObject::Value> { }; 8737: 8737: 8737: template struct QMetaTypeId< 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::deque 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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( 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: "std::deque" 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) + 1 + tNameLen + 1 + 1); typeName.append( 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: "std::deque" 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , int(sizeof( 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: "std::deque" 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) - 1) .append('<').append(tName, tNameLen); if (typeName.endsWith('>')) typeName.append(' '); typeName.append('>'); const int newId = qRegisterNormalizedMetaType< 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::deque 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( typeName, reinterpret_cast< 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::deque 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; namespace QtPrivate { template struct IsSequentialContainer< 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 8737: std::deque 8737: # 55 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { enum { Value = true }; }; } 8737: 8737: 8737: # 57 "/<>/templates/tests/testgenerictypes.cpp" 8737: class TestGenericTypes : public CoverageObject 8737: { 8737: 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: public: 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic push 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: 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: 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic pop 8737: # 59 "/<>/templates/tests/testgenerictypes.cpp" 8737: struct QPrivateSignal {}; 8737: 8737: 8737: # 61 "/<>/templates/tests/testgenerictypes.cpp" 8737: private : 8737: 8737: void initTestCase(); 8737: 8737: void testGenericClassType(); 8737: void testSequentialContainer_Variant(); 8737: void testAssociativeContainer_Variant(); 8737: void testSequentialContainer_Type(); 8737: void testAssociativeContainer_Type(); 8737: void testSharedPointer(); 8737: void testThirdPartySharedPointer(); 8737: void testNestedContainers(); 8737: 8737: void testCustomQObjectDerived(); 8737: 8737: void testUnregistered(); 8737: void testPointerNonQObject(); 8737: }; 8737: 8737: class Person 8737: { 8737: public: 8737: Person() : age(0) {} 8737: Person(std::string _name, int _age) : name(_name), age(_age) 8737: { 8737: static auto _uid = 0; 8737: uid = ++_uid; 8737: } 8737: 8737: bool operator==(const Person &other) const { return uid == other.uid; } 8737: 8737: std::string name; 8737: int age; 8737: int uid; 8737: }; 8737: 8737: int qHash(const Person &p) { return p.uid; } 8737: 8737: 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: template <> struct QMetaTypeId< 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8737: Person 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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< 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8737: Person 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Person" 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , reinterpret_cast< 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 8737: Person 8737: # 99 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8737: 8737: 8737: # 101 "/<>/templates/tests/testgenerictypes.cpp" 8737: namespace Grantlee { template <> inline QVariant TypeAccessor::lookUp(const Person &object, const QString &property) { 8737: if (property == 8737: # 102 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 102 "/<>/templates/tests/testgenerictypes.cpp" 8737: "name" 8737: # 102 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 102 "/<>/templates/tests/testgenerictypes.cpp" 8737: "name" 8737: # 102 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 102 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: return QString::fromStdString(object.name); 8737: else if (property == 8737: # 104 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 104 "/<>/templates/tests/testgenerictypes.cpp" 8737: "age" 8737: # 104 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 104 "/<>/templates/tests/testgenerictypes.cpp" 8737: "age" 8737: # 104 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 104 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: return object.age; 8737: return QVariant(); } } 8737: 8737: class PersonObject : public QObject 8737: { 8737: 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: public: 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic push 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: 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: 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic pop 8737: # 110 "/<>/templates/tests/testgenerictypes.cpp" 8737: struct QPrivateSignal {}; 8737: 8737: 8737: 8737: # 113 "/<>/templates/tests/testgenerictypes.cpp" 8737: public: 8737: PersonObject(const QString &name, int age, QObject *parent = 0) 8737: : QObject(parent), m_name(name), m_age(age) 8737: { 8737: } 8737: 8737: QString name() const { return m_name; } 8737: int age() const { return m_age; } 8737: 8737: private: 8737: const QString m_name; 8737: const int m_age; 8737: }; 8737: 8737: void TestGenericTypes::initTestCase() 8737: { 8737: 8737: Grantlee::registerMetaType(); 8737: } 8737: 8737: void TestGenericTypes::testGenericClassType() 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 137 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 137 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 137 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 137 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 137 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 137 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto t1 = engine.newTemplate( 8737: 8737: # 140 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 140 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Person: \nName: {{p.name}}\nAge: {{p.age}}\nUnknown: {{p.unknown}}" 8737: # 140 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 140 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Person: \nName: {{p.name}}\nAge: {{p.age}}\nUnknown: {{p.unknown}}" 8737: # 140 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: 8737: # 141 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 142 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 142 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 142 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 142 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 142 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 142 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: 8737: QVariantHash h; 8737: Person p("Grant Lee", 2); 8737: h.insert( 8737: # 147 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 147 "/<>/templates/tests/testgenerictypes.cpp" 8737: "p" 8737: # 147 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 147 "/<>/templates/tests/testgenerictypes.cpp" 8737: "p" 8737: # 147 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 147 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(p)); 8737: Grantlee::Context c(h); 8737: 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8737: t1->render(&c) 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Person: \nName: Grant Lee\nAge: 2\nUnknown: " 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Person: \nName: Grant Lee\nAge: 2\nUnknown: " 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8737: "t1->render(&c)" 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Person: \\nName: Grant Lee\\nAge: 2\\nUnknown: \")" 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: "/<>/templates/tests/testgenerictypes.cpp" 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: 150 8737: # 149 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) return;} while (false) 8737: 8737: # 150 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: static QMap getPeople() 8737: { 8737: QMap people; 8737: people.insert(23, Person("Claire", 23)); 8737: people.insert(32, Person("Grant", 32)); 8737: people.insert(50, Person("Alan", 50)); 8737: return people; 8737: } 8737: 8737: template 8737: void insertPeopleVariants(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: const auto end = people.constEnd(); 8737: SequentialContainer container; 8737: for (; it != end; ++it) 8737: container.push_back(QVariant::fromValue(it.value())); 8737: c.insert( 8737: # 171 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 171 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 171 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 171 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 171 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 171 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: template 8737: void insertAssociatedPeopleVariants(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: const auto end = people.constEnd(); 8737: AssociativeContainer container; 8737: for (; it != end; ++it) 8737: container.insert(QString::number(it.key()), 8737: QVariant::fromValue(it.value())); 8737: c.insert( 8737: # 184 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 184 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 184 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 184 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 184 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 184 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: template <> 8737: void insertPeopleVariants>(Grantlee::Context &c) 8737: { 8737: insertAssociatedPeopleVariants>(c); 8737: } 8737: 8737: template <> 8737: void insertPeopleVariants>(Grantlee::Context &c) 8737: { 8737: insertAssociatedPeopleVariants>(c); 8737: } 8737: 8737: template void testSequentialIteration(Grantlee::Context &c) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 203 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 203 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 203 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 203 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 203 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 203 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: { 8737: Grantlee::Template t1 = engine.newTemplate( 8737: 8737: # 207 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 207 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for person in people %}{{ person.name }},{% endfor %}" 8737: # 207 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 207 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for person in people %}{{ person.name }},{% endfor %}" 8737: # 207 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: 8737: # 208 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 209 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 209 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 209 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 209 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 209 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 209 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8737: t1->render(&c) 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire,Grant,Alan," 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire,Grant,Alan," 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8737: "t1->render(&c)" 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Claire,Grant,Alan,\")" 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 210)) return;} while (false) 8737: # 210 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: } 8737: 8737: template void testSequentialIndexing(Grantlee::Context &c) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 218 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 218 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 218 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 218 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 218 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 218 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: { 8737: Grantlee::Template t1 = engine.newTemplate( 8737: 8737: # 222 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 222 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ people.0.name }},{{ people.1.name }},{{ people.2.name }}," 8737: # 222 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 222 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ people.0.name }},{{ people.1.name }},{{ people.2.name }}," 8737: # 222 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: 8737: # 223 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 224 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 224 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 224 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 224 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 224 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 224 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8737: t1->render(&c) 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire,Grant,Alan," 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire,Grant,Alan," 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8737: "t1->render(&c)" 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Claire,Grant,Alan,\")" 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 225)) return;} while (false) 8737: # 225 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: } 8737: 8737: template struct SequentialContainerTester { 8737: static void iteration(Grantlee::Context &c) 8737: { 8737: testSequentialIteration(c); 8737: } 8737: 8737: static void indexing(Grantlee::Context &c) 8737: { 8737: testSequentialIndexing(c); 8737: } 8737: }; 8737: 8737: template struct SequentialContainerTester> { 8737: static void iteration(Grantlee::Context &c) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() 8737: << 8737: # 247 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 247 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 247 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 247 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 247 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 247 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: Grantlee::Template t1 = engine.newTemplate( 8737: 8737: # 250 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 250 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for person in people %}{{ person.name }},{% endfor %}" 8737: # 250 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 250 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for person in people %}{{ person.name }},{% endfor %}" 8737: # 250 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: 8737: # 251 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 252 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 252 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 252 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 252 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 252 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 252 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: auto result = t1->render(&c); 8737: QStringList output; 8737: output << 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire," 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire," 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8737: << 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant," 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant," 8737: # 255 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8737: << 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Alan," 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Alan," 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 256 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 257 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8737: # 257 "/<>/templates/tests/testgenerictypes.cpp" 8737: output 8737: # 257 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8737: # 257 "/<>/templates/tests/testgenerictypes.cpp" 8737: const QString &s 8737: # 257 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: = *_container_.i; _container_.control; _container_.control = 0) 8737: # 257 "/<>/templates/tests/testgenerictypes.cpp" 8737: { 8737: 8737: # 258 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 258 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains(s) 8737: # 258 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 258 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(s)" 8737: # 258 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 258)) return;} while (false) 8737: # 258 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.length() 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8737: output.join(QString()).length() 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.length()" 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8737: "output.join(QString()).length()" 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 261)) return;} while (false) 8737: # 261 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: static void indexing(Grantlee::Context) {} 8737: }; 8737: 8737: template struct SequentialContainerTester> { 8737: static void iteration(Grantlee::Context &c) 8737: { 8737: testSequentialIteration>(c); 8737: } 8737: 8737: static void indexing(Grantlee::Context) {} 8737: }; 8737: 8737: template struct SequentialContainerTester> { 8737: static void iteration(Grantlee::Context &c) 8737: { 8737: testSequentialIteration>(c); 8737: } 8737: 8737: static void indexing(Grantlee::Context) {} 8737: }; 8737: 8737: template void doTestSequentialContainer_Variant() 8737: { 8737: Grantlee::Context c; 8737: 8737: insertPeopleVariants(c); 8737: 8737: SequentialContainerTester::iteration(c); 8737: SequentialContainerTester::indexing(c); 8737: } 8737: 8737: template 8737: void testAssociativeValues(Grantlee::Context &c, bool unordered = false) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 300 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 300 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 300 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 300 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 300 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 300 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: { 8737: Grantlee::Template t1 = engine.newTemplate( 8737: 8737: # 304 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 304 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for person in people.values %}({{ person.name }}:{{ person.age }}),{% endfor %}" 8737: # 304 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 304 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for person in people.values %}({{ person.name }}:{{ person.age }}),{% endfor %}" 8737: # 304 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 304 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 305 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 305 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 305 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 305 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 305 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 305 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto result = t1->render(&c); 8737: if (!unordered) 8737: 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8737: result 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23),(Grant:32),(Alan:50)," 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23),(Grant:32),(Alan:50)," 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result" 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"(Claire:23),(Grant:32),(Alan:50),\")" 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 309)) return;} while (false) 8737: # 309 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: else { 8737: 8737: # 311 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 311 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.size() == 33 8737: # 311 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 311 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.size() == 33" 8737: # 311 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 311)) return;} while (false) 8737: # 311 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains( 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23)," 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23)," 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(QStringLiteral(\"(Claire:23),\"))" 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 312)) return;} while (false) 8737: # 312 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains( 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Grant:32)," 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Grant:32)," 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(QStringLiteral(\"(Grant:32),\"))" 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 313)) return;} while (false) 8737: # 313 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains( 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Alan:50)," 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Alan:50)," 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(QStringLiteral(\"(Alan:50),\"))" 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 314)) return;} while (false) 8737: # 314 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: } 8737: } 8737: 8737: template 8737: void testAssociativeItems(Grantlee::Context &c, bool unordered) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 324 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 324 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 324 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 324 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 324 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 324 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: { 8737: Grantlee::Template t1 = engine.newTemplate( 8737: 8737: # 328 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 328 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for item in people.items %}({{ item.1.name }}:{{ item.1.age }}),{% endfor %}" 8737: # 328 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 328 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% for item in people.items %}({{ item.1.name }}:{{ item.1.age }}),{% endfor %}" 8737: # 328 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 328 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 329 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 329 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 329 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 329 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people_template" 8737: # 329 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 329 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: auto result = t1->render(&c); 8737: if (!unordered) 8737: 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8737: result 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23),(Grant:32),(Alan:50)," 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23),(Grant:32),(Alan:50)," 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result" 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"(Claire:23),(Grant:32),(Alan:50),\")" 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 332)) return;} while (false) 8737: # 332 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: else { 8737: 8737: # 334 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 334 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.size() == 33 8737: # 334 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 334 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.size() == 33" 8737: # 334 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 334)) return;} while (false) 8737: # 334 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains( 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23)," 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Claire:23)," 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(QStringLiteral(\"(Claire:23),\"))" 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 335)) return;} while (false) 8737: # 335 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains( 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Grant:32)," 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Grant:32)," 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(QStringLiteral(\"(Grant:32),\"))" 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 336)) return;} while (false) 8737: # 336 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.contains( 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Alan:50)," 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(Alan:50)," 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.contains(QStringLiteral(\"(Alan:50),\"))" 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 337)) return;} while (false) 8737: # 337 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: } 8737: } 8737: 8737: template 8737: void doTestAssociativeContainer_Variant(bool unordered = false) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 347 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 347 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 347 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 347 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 347 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 347 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: Grantlee::Context c; 8737: 8737: insertPeopleVariants(c); 8737: testAssociativeValues(c, unordered); 8737: testAssociativeItems(c, unordered); 8737: } 8737: 8737: void TestGenericTypes::testSequentialContainer_Variant() 8737: { 8737: doTestSequentialContainer_Variant(); 8737: doTestSequentialContainer_Variant>(); 8737: doTestSequentialContainer_Variant>(); 8737: doTestSequentialContainer_Variant>(); 8737: doTestSequentialContainer_Variant>(); 8737: } 8737: 8737: void TestGenericTypes::testAssociativeContainer_Variant() 8737: { 8737: doTestAssociativeContainer_Variant(); 8737: doTestAssociativeContainer_Variant(true); 8737: } 8737: 8737: template void insertPeople(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: const auto end = people.constEnd(); 8737: SequentialContainer container; 8737: for (; it != end; ++it) 8737: container.insert(container.end(), it.value()); 8737: c.insert( 8737: # 379 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 379 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 379 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 379 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 379 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 379 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: template <> void insertPeople>(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: const auto end = people.constEnd(); 8737: QSet container; 8737: for (; it != end; ++it) 8737: container.insert(it.value()); 8737: c.insert( 8737: # 390 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 390 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 390 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 390 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 390 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 390 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: 8737: template <> void insertPeople>(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: ThreeArray container; 8737: for (auto i = 0; i < 3; ++i, ++it) { 8737: 8737: # 400 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { } while ((false) && ( 8737: # 400 "/<>/templates/tests/testgenerictypes.cpp" 8737: it != people.constEnd() 8737: # 400 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )) 8737: # 400 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: container[i] = it.value(); 8737: } 8737: c.insert( 8737: # 403 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 403 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 403 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 403 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 403 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 403 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: 8737: template 8737: void insertAssociatedPeople(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: const auto end = people.constEnd(); 8737: AssociativeContainer container; 8737: for (; it != end; ++it) 8737: container[QString::number(it.key())] = it.value(); 8737: c.insert( 8737: # 416 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 416 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 416 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 416 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 416 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 416 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: template 8737: void insertAssociatedPeople_Number(Grantlee::Context &c) 8737: { 8737: auto people = getPeople(); 8737: auto it = people.constBegin(); 8737: const auto end = people.constEnd(); 8737: AssociativeContainer container; 8737: for (; it != end; ++it) 8737: container[it.key()] = it.value(); 8737: c.insert( 8737: # 428 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 428 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 428 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 428 "/<>/templates/tests/testgenerictypes.cpp" 8737: "people" 8737: # 428 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 428 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(container)); 8737: } 8737: 8737: template void doTestSequentialContainer_Type() 8737: { 8737: Grantlee::Context c; 8737: 8737: insertPeople(c); 8737: 8737: SequentialContainerTester::iteration(c); 8737: SequentialContainerTester::indexing(c); 8737: } 8737: 8737: template 8737: void doTestAssociativeContainer_Type(bool unordered = false) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 446 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 446 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 446 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 446 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 446 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 446 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: Grantlee::Context c; 8737: 8737: insertAssociatedPeople(c); 8737: testAssociativeValues(c, unordered); 8737: testAssociativeItems(c, unordered); 8737: } 8737: 8737: template 8737: void doTestAssociativeContainer_Type_Number(bool unordered = false) 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 460 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 460 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 460 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 460 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 460 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 460 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: Grantlee::Context c; 8737: 8737: insertAssociatedPeople_Number(c); 8737: testAssociativeValues(c, unordered); 8737: testAssociativeItems(c, unordered); 8737: 8737: { 8737: Grantlee::Template t1 8737: = engine.newTemplate( 8737: # 470 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 470 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ people.23.name }}" 8737: # 470 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 470 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ people.23.name }}" 8737: # 470 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 470 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 471 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 471 "/<>/templates/tests/testgenerictypes.cpp" 8737: "claire_template" 8737: # 471 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 471 "/<>/templates/tests/testgenerictypes.cpp" 8737: "claire_template" 8737: # 471 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 471 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: auto result = t1->render(&c); 8737: 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8737: result 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire" 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Claire" 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result" 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Claire\")" 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 473)) return;} while (false) 8737: # 473 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: } 8737: 8737: void TestGenericTypes::testSequentialContainer_Type() 8737: { 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: doTestSequentialContainer_Type>(); 8737: 8737: doTestSequentialContainer_Type>(); 8737: 8737: } 8737: 8737: void TestGenericTypes::testAssociativeContainer_Type() 8737: { 8737: doTestAssociativeContainer_Type>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: 8737: doTestAssociativeContainer_Type>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: doTestAssociativeContainer_Type_Number>(); 8737: 8737: 8737: doTestAssociativeContainer_Type>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: doTestAssociativeContainer_Type_Number>(true); 8737: 8737: } 8737: 8737: void TestGenericTypes::testSharedPointer() 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 533 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 533 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 533 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 533 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 533 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 533 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto t1 = engine.newTemplate( 8737: # 535 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 535 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ p.name }} {{ p.age }}" 8737: # 535 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 535 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ p.name }} {{ p.age }}" 8737: # 535 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 535 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 536 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 536 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 536 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 536 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 536 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 536 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: 8737: QVariantHash h; 8737: QSharedPointer p( 8737: new PersonObject( 8737: # 541 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 541 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee" 8737: # 541 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 541 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee" 8737: # 541 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 541 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 2)); 8737: h.insert( 8737: # 542 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 542 "/<>/templates/tests/testgenerictypes.cpp" 8737: "p" 8737: # 542 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 542 "/<>/templates/tests/testgenerictypes.cpp" 8737: "p" 8737: # 542 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 542 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(p)); 8737: Grantlee::Context c(h); 8737: 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8737: t1->render(&c) 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee 2" 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee 2" 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; cipt_PsalterPahlavi, 8768: Script_Siddham, 8768: Script_Khudawadi, 8768: Script_Tirhuta, 8768: Script_WarangCiti, 8768: 8768: 8768: Script_Ahom, 8768: Script_AnatolianHieroglyphs, 8768: Script_Hatran, 8768: Script_Multani, 8768: Script_OldHungarian, 8768: Script_SignWriting, 8768: 8768: ScriptCount 8768: }; 8768: 8768: enum Direction 8768: { 8768: DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, 8768: DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN, 8768: DirLRI, DirRLI, DirFSI, DirPDI 8768: }; 8768: 8768: enum Decomposition 8768: { 8768: NoDecomposition, 8768: Canonical, 8768: Font, 8768: NoBreak, 8768: Initial, 8768: Medial, 8768: Final, 8768: Isolated, 8768: Circle, 8768: Super, 8768: Sub, 8768: Vertical, 8768: Wide, 8768: Narrow, 8768: Small, 8768: Square, 8768: Compat, 8768: Fraction 8768: }; 8768: 8768: enum JoiningType { 8768: Joining_None, 8768: Joining_Causing, 8768: Joining_Dual, 8768: Joining_Right, 8768: Joining_Left, 8768: Joining_Transparent 8768: }; 8768: 8768: 8768: enum Joining 8768: { 8768: OtherJoining, Dual, Right, Center 8768: }; 8768: 8768: 8768: enum CombiningClass 8768: { 8768: Combining_BelowLeftAttached = 200, 8768: Combining_BelowAttached = 202, 8768: Combining_BelowRightAttached = 204, 8768: Combining_LeftAttached = 208, 8768: Combining_RightAttached = 210, 8768: Combining_AboveLeftAttached = 212, 8768: Combining_AboveAttached = 214, 8768: Combining_AboveRightAttached = 216, 8768: 8768: Combining_BelowLeft = 218, 8768: Combining_Below = 220, 8768: Combining_BelowRight = 222, 8768: Combining_Left = 224, 8768: Combining_Right = 226, 8768: Combining_AboveLeft = 228, 8768: Combining_Above = 230, 8768: Combining_AboveRight = 232, 8768: 8768: Combining_DoubleBelow = 233, 8768: Combining_DoubleAbove = 234, 8768: Combining_IotaSubscript = 240 8768: }; 8768: 8768: enum UnicodeVersion { 8768: Unicode_Unassigned, 8768: Unicode_1_1, 8768: Unicode_2_0, 8768: Unicode_2_1_2, 8768: Unicode_3_0, 8768: Unicode_3_1, 8768: Unicode_3_2, 8768: Unicode_4_0, 8768: Unicode_4_1, 8768: Unicode_5_0, 8768: Unicode_5_1, 8768: Unicode_5_2, 8768: Unicode_6_0, 8768: Unicode_6_1, 8768: Unicode_6_2, 8768: Unicode_6_3, 8768: Unicode_7_0, 8768: Unicode_8_0 8768: }; 8768: 8768: 8768: inline Category category() const noexcept { return QChar::category(ucs); } 8768: inline Direction direction() const noexcept { return QChar::direction(ucs); } 8768: inline JoiningType joiningType() const noexcept { return QChar::joiningType(ucs); } 8768: 8768: inline Joining joining() const noexcept 8768: { 8768: switch (QChar::joiningType(ucs)) { 8768: case QChar::Joining_Causing: return QChar::Center; 8768: case QChar::Joining_Dual: return QChar::Dual; 8768: case QChar::Joining_Right: return QChar::Right; 8768: case QChar::Joining_None: 8768: case QChar::Joining_Left: 8768: case QChar::Joining_Transparent: 8768: default: return QChar::OtherJoining; 8768: } 8768: } 8768: 8768: inline unsigned char combiningClass() const noexcept { return QChar::combiningClass(ucs); } 8768: 8768: inline QChar mirroredChar() const noexcept { return QChar::mirroredChar(ucs); } 8768: inline bool hasMirrored() const noexcept { return QChar::hasMirrored(ucs); } 8768: 8768: QString decomposition() const; 8768: inline Decomposition decompositionTag() const noexcept { return QChar::decompositionTag(ucs); } 8768: 8768: inline int digitValue() const noexcept { return QChar::digitValue(ucs); } 8768: inline QChar toLower() const noexcept { return QChar::toLower(ucs); } 8768: inline QChar toUpper() const noexcept { return QChar::toUpper(ucs); } 8768: inline QChar toTitleCase() const noexcept { return QChar::toTitleCase(ucs); } 8768: inline QChar toCaseFolded() const noexcept { return QChar::toCaseFolded(ucs); } 8768: 8768: inline Script script() const noexcept { return QChar::script(ucs); } 8768: 8768: inline UnicodeVersion unicodeVersion() const noexcept { return QChar::unicodeVersion(ucs); } 8768: 8768: 8768: 8768: 8768: constexpr inline char toLatin1() const noexcept { return ucs > 0xff ? '\0' : char(ucs); } 8768: constexpr inline ushort unicode() const noexcept { return ucs; } 8768: inline ushort &unicode() noexcept { return ucs; } 8768: 8768: 8768: 8768: 8768: 8768: static constexpr inline QChar fromLatin1(char c) noexcept { return QChar(ushort(uchar(c))); } 8768: 8768: constexpr inline bool isNull() const noexcept { return ucs == 0; } 8768: 8768: inline bool isPrint() const noexcept { return QChar::isPrint(ucs); } 8768: constexpr inline bool isSpace() const noexcept { return QChar::isSpace(ucs); } 8768: inline bool isMark() const noexcept { return QChar::isMark(ucs); } 8768: inline bool isPunct() const noexcept { return QChar::isPunct(ucs); } 8768: inline bool isSymbol() const noexcept { return QChar::isSymbol(ucs); } 8768: constexpr inline bool isLetter() const noexcept { return QChar::isLetter(ucs); } 8768: constexpr inline bool isNumber() const noexcept { return QChar::isNumber(ucs); } 8768: constexpr inline bool isLetterOrNumber() const noexcept { return QChar::isLetterOrNumber(ucs); } 8768: constexpr inline bool isDigit() const noexcept { return QChar::isDigit(ucs); } 8768: constexpr inline bool isLower() const noexcept { return QChar::isLower(ucs); } 8768: constexpr inline bool isUpper() const noexcept { return QChar::isUpper(ucs); } 8768: constexpr inline bool isTitleCase() const noexcept { return QChar::isTitleCase(ucs); } 8768: 8768: constexpr inline bool isNonCharacter() const noexcept { return QChar::isNonCharacter(ucs); } 8768: constexpr inline bool isHighSurrogate() const noexcept { return QChar::isHighSurrogate(ucs); } 8768: constexpr inline bool isLowSurrogate() const noexcept { return QChar::isLowSurrogate(ucs); } 8768: constexpr inline bool isSurrogate() const noexcept { return QChar::isSurrogate(ucs); } 8768: 8768: constexpr inline uchar cell() const noexcept { return uchar(ucs & 0xff); } 8768: constexpr inline uchar row() const noexcept { return uchar((ucs>>8)&0xff); } 8768: inline void setCell(uchar acell) noexcept { ucs = ushort((ucs & 0xff00) + acell); } 8768: inline void setRow(uchar arow) noexcept { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); } 8768: 8768: static constexpr inline bool isNonCharacter(uint ucs4) noexcept 8768: { 8768: return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe); 8768: } 8768: static constexpr inline bool isHighSurrogate(uint ucs4) noexcept 8768: { 8768: return ((ucs4 & 0xfffffc00) == 0xd800); 8768: } 8768: static constexpr inline bool isLowSurrogate(uint ucs4) noexcept 8768: { 8768: return ((ucs4 & 0xfffffc00) == 0xdc00); 8768: } 8768: static constexpr inline bool isSurrogate(uint ucs4) noexcept 8768: { 8768: return (ucs4 - 0xd800u < 2048u); 8768: } 8768: static constexpr inline bool requiresSurrogates(uint ucs4) noexcept 8768: { 8768: return (ucs4 >= 0x10000); 8768: } 8768: static constexpr inline uint surrogateToUcs4(ushort high, ushort low) noexcept 8768: { 8768: return (uint(high)<<10) + low - 0x35fdc00; 8768: } 8768: static constexpr inline uint surrogateToUcs4(QChar high, QChar low) noexcept 8768: { 8768: returnonst QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8737: "t1->render(&c)" 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Grant Lee 2\")" 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 544)) return;} while (false) 8737: # 544 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: void TestGenericTypes::testThirdPartySharedPointer() 8737: { 8737: 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 552 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 552 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 552 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 552 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 552 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 552 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto t1 = engine.newTemplate( 8737: # 554 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 554 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ p.name }} {{ p.age }}" 8737: # 554 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 554 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ p.name }} {{ p.age }}" 8737: # 554 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 554 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 555 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 555 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 555 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 555 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 555 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 555 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: 8737: QVariantHash h; 8737: std::tr1::shared_ptr p( 8737: new PersonObject( 8737: # 560 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 560 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee" 8737: # 560 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 560 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee" 8737: # 560 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 560 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 2)); 8737: h.insert( 8737: # 561 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 561 "/<>/templates/tests/testgenerictypes.cpp" 8737: "p" 8737: # 561 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 561 "/<>/templates/tests/testgenerictypes.cpp" 8737: "p" 8737: # 561 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 561 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(p)); 8737: Grantlee::Context c(h); 8737: 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8737: t1->render(&c) 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee 2" 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Grant Lee 2" 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8737: "t1->render(&c)" 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Grant Lee 2\")" 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 563)) return;} while (false) 8737: # 563 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: } 8737: 8737: typedef QList> ListVectorInt; 8737: typedef QMap>> MapListVectorInt; 8737: typedef QStack>>> StackMapListVectorInt; 8737: 8737: static QVector getNumbers() 8737: { 8737: static auto n = 0; 8737: QVector nums; 8737: nums.push_back(++n); 8737: nums.push_back(++n); 8737: return nums; 8737: } 8737: 8737: static ListVectorInt getNumberLists() 8737: { 8737: ListVectorInt list; 8737: for (auto i = 0; i < 2; ++i) { 8737: list.append(getNumbers()); 8737: } 8737: return list; 8737: } 8737: 8737: static MapListVectorInt getNumberListMap() 8737: { 8737: MapListVectorInt map; 8737: for (auto i = 0; i < 2; ++i) { 8737: map.insert(i, getNumberLists()); 8737: } 8737: return map; 8737: } 8737: 8737: static StackMapListVectorInt getMapStack() 8737: { 8737: StackMapListVectorInt stack; 8737: for (auto i = 0; i < 2; ++i) { 8737: stack.push(getNumberListMap()); 8737: } 8737: return stack; 8737: } 8737: 8737: void TestGenericTypes::testNestedContainers() 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 611 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 611 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 611 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 611 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 611 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 611 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: Grantlee::Context c; 8737: c.insert( 8737: # 614 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 614 "/<>/templates/tests/testgenerictypes.cpp" 8737: "stack" 8737: # 614 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 614 "/<>/templates/tests/testgenerictypes.cpp" 8737: "stack" 8737: # 614 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 614 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(getMapStack())); 8737: # 623 "/<>/templates/tests/testgenerictypes.cpp" 8737: auto t1 = engine.newTemplate( 8737: 8737: # 624 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 624 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% 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 %}" 8737: # 624 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 624 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{% 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 %}" 8737: # 624 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: 8737: # 632 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 633 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 633 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 633 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 633 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 633 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 633 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: 8737: 8737: auto result = t1->render(&c); 8737: 8737: auto expectedResult = 8737: # 639 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 639 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(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,),),)," 8737: # 639 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 639 "/<>/templates/tests/testgenerictypes.cpp" 8737: "(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,),),)," 8737: # 639 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 639 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8737: result 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8737: expectedResult 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result" 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8737: "expectedResult" 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 641)) return;} while (false) 8737: # 641 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: class CustomObject : public QObject 8737: { 8737: 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: public: 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic push 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: 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: 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic pop 8737: # 646 "/<>/templates/tests/testgenerictypes.cpp" 8737: struct QPrivateSignal {}; 8737: 8737: # 647 "/<>/templates/tests/testgenerictypes.cpp" 8737: public: 8737: explicit CustomObject(QObject *parent = 0) : QObject(parent) {} 8737: }; 8737: 8737: class OtherObject : public QObject 8737: { 8737: 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: public: 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic push 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wsuggest-override" 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: 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: 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic ignored "-Wattributes" 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: #pragma GCC diagnostic pop 8737: # 653 "/<>/templates/tests/testgenerictypes.cpp" 8737: struct QPrivateSignal {}; 8737: 8737: 8737: # 655 "/<>/templates/tests/testgenerictypes.cpp" 8737: public: 8737: explicit OtherObject(QObject *parent = 0) 8737: : QObject(parent), m_custom(new CustomObject(this)) 8737: { 8737: m_custom->setProperty("nestedProp", 8737: # 659 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 659 "/<>/templates/tests/testgenerictypes.cpp" 8737: "nestedValue" 8737: # 659 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 659 "/<>/templates/tests/testgenerictypes.cpp" 8737: "nestedValue" 8737: # 659 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 659 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: } 8737: 8737: CustomObject *custom() { return m_custom; } 8737: 8737: private: 8737: CustomObject *m_custom; 8737: }; 8737: 8737: void TestGenericTypes::testCustomQObjectDerived() 8737: { 8737: Grantlee::Engine engine; 8737: 8737: engine.setPluginPaths(QStringList() << 8737: # 672 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 672 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 672 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 672 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu/" 8737: # 672 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 672 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto customObject = new CustomObject(this); 8737: customObject->setProperty("someProp", 8737: # 675 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 675 "/<>/templates/tests/testgenerictypes.cpp" 8737: "propValue" 8737: # 675 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 675 "/<>/templates/tests/testgenerictypes.cpp" 8737: "propValue" 8737: # 675 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 675 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: Grantlee::Context c; 8737: c.insert( 8737: # 678 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 678 "/<>/templates/tests/testgenerictypes.cpp" 8737: "custom" 8737: # 678 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 678 "/<>/templates/tests/testgenerictypes.cpp" 8737: "custom" 8737: # 678 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 678 "/<>/templates/tests/testgenerictypes.cpp" 8737: , QVariant::fromValue(customObject)); 8737: 8737: { 8737: auto t1 = engine.newTemplate( 8737: # 681 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 681 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ custom.someProp }}" 8737: # 681 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 681 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ custom.someProp }}" 8737: # 681 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 681 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 682 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 682 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 682 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 682 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 682 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 682 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto result = t1->render(&c); 8737: auto expectedResult = 8737: # 685 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 685 "/<>/templates/tests/testgenerictypes.cpp" 8737: "propValue" 8737: # 685 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 685 "/<>/templates/tests/testgenerictypes.cpp" 8737: "propValue" 8737: # 685 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 685 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8737: result 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8737: expectedResult 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result" 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8737: "expectedResult" 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 687)) return;} while (false) 8737: # 687 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: auto other = new OtherObject(this); 8737: 8737: c.insert( 8737: # 692 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 692 "/<>/templates/tests/testgenerictypes.cpp" 8737: "other" 8737: # 692 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 692 "/<>/templates/tests/testgenerictypes.cpp" 8737: "other" 8737: # 692 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qst surrogateToUcs4(high.ucs, low.ucs); 8768: } 8768: static constexpr inline ushort highSurrogate(uint ucs4) noexcept 8768: { 8768: return ushort((ucs4>>10) + 0xd7c0); 8768: } 8768: static constexpr inline ushort lowSurrogate(uint ucs4) noexcept 8768: { 8768: return ushort(ucs4%0x400 + 0xdc00); 8768: } 8768: 8768: static Category category(uint ucs4) noexcept __attribute__((const)); 8768: static Direction direction(uint ucs4) noexcept __attribute__((const)); 8768: static JoiningType joiningType(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static Joining joining(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static unsigned char combiningClass(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static uint mirroredChar(uint ucs4) noexcept __attribute__((const)); 8768: static bool hasMirrored(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static QString decomposition(uint ucs4); 8768: static Decomposition decompositionTag(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static int digitValue(uint ucs4) noexcept __attribute__((const)); 8768: static uint toLower(uint ucs4) noexcept __attribute__((const)); 8768: static uint toUpper(uint ucs4) noexcept __attribute__((const)); 8768: static uint toTitleCase(uint ucs4) noexcept __attribute__((const)); 8768: static uint toCaseFolded(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static Script script(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static UnicodeVersion unicodeVersion(uint ucs4) noexcept __attribute__((const)); 8768: 8768: static UnicodeVersion currentUnicodeVersion() noexcept __attribute__((const)); 8768: 8768: static bool isPrint(uint ucs4) noexcept __attribute__((const)); 8768: static constexpr inline bool isSpace(uint ucs4) noexcept __attribute__((const)) 8768: { 8768: 8768: return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09) 8768: || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4))); 8768: } 8768: static bool isMark(uint ucs4) noexcept __attribute__((const)); 8768: static bool isPunct(uint ucs4) noexcept __attribute__((const)); 8768: static bool isSymbol(uint ucs4) noexcept __attribute__((const)); 8768: static constexpr inline bool isLetter(uint ucs4) noexcept __attribute__((const)) 8768: { 8768: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8768: || (ucs4 > 127 && QChar::isLetter_helper(ucs4)); 8768: } 8768: static constexpr inline bool isNumber(uint ucs4) noexcept __attribute__((const)) 8768: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); } 8768: static constexpr inline bool isLetterOrNumber(uint ucs4) noexcept __attribute__((const)) 8768: { 8768: return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z')) 8768: || (ucs4 >= '0' && ucs4 <= '9') 8768: || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4)); 8768: } 8768: static constexpr inline bool isDigit(uint ucs4) noexcept __attribute__((const)) 8768: { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); } 8768: static constexpr inline bool isLower(uint ucs4) noexcept __attribute__((const)) 8768: { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); } 8768: static constexpr inline bool isUpper(uint ucs4) noexcept __attribute__((const)) 8768: { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); } 8768: static constexpr inline bool isTitleCase(uint ucs4) noexcept __attribute__((const)) 8768: { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; } 8768: 8768: private: 8768: static bool isSpace_helper(uint ucs4) noexcept __attribute__((const)); 8768: static bool isLetter_helper(uint ucs4) noexcept __attribute__((const)); 8768: static bool isNumber_helper(uint ucs4) noexcept __attribute__((const)); 8768: static bool isLetterOrNumber_helper(uint ucs4) noexcept __attribute__((const)); 8768: 8768: 8768: QChar(char c) noexcept; 8768: QChar(uchar c) noexcept; 8768: 8768: 8768: friend constexpr bool operator==(QChar, QChar) noexcept; 8768: friend constexpr bool operator< (QChar, QChar) noexcept; 8768: ushort ucs; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: constexpr inline bool operator==(QChar c1, QChar c2) noexcept { return c1.ucs == c2.ucs; } 8768: constexpr inline bool operator< (QChar c1, QChar c2) noexcept { return c1.ucs < c2.ucs; } 8768: 8768: constexpr inline bool operator!=(QChar c1, QChar c2) noexcept { return !operator==(c1, c2); } 8768: constexpr inline bool operator>=(QChar c1, QChar c2) noexcept { return !operator< (c1, c2); } 8768: constexpr inline bool operator> (QChar c1, QChar c2) noexcept { return operator< (c2, c1); } 8768: constexpr inline bool operator<=(QChar c1, QChar c2) noexcept { return !operator< (c2, c1); } 8768: 8768: 8768: constexpr inline bool operator==(QChar lhs, std::nullptr_t) noexcept { return lhs.isNull(); } 8768: constexpr inline bool operator< (QChar, std::nullptr_t) noexcept { return false; } 8768: constexpr inline bool operator==(std::nullptr_t, QChar rhs) noexcept { return rhs.isNull(); } 8768: constexpr inline bool operator< (std::nullptr_t, QChar rhs) noexcept { return !rhs.isNull(); } 8768: 8768: constexpr inline bool operator!=(QChar lhs, std::nullptr_t) noexcept { return !operator==(lhs, nullptr); } 8768: constexpr inline bool operator>=(QChar lhs, std::nullptr_t) noexcept { return !operator< (lhs, nullptr); } 8768: constexpr inline bool operator> (QChar lhs, std::nullptr_t) noexcept { return operator< (nullptr, lhs); } 8768: constexpr inline bool operator<=(QChar lhs, std::nullptr_t) noexcept { return !operator< (nullptr, lhs); } 8768: 8768: constexpr inline bool operator!=(std::nullptr_t, QChar rhs) noexcept { return !operator==(nullptr, rhs); } 8768: constexpr inline bool operator>=(std::nullptr_t, QChar rhs) noexcept { return !operator< (nullptr, rhs); } 8768: constexpr inline bool operator> (std::nullptr_t, QChar rhs) noexcept { return operator< (rhs, nullptr); } 8768: constexpr inline bool operator<=(std::nullptr_t, QChar rhs) noexcept { return !operator< (rhs, nullptr); } 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, QChar); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QChar &); 8768: 8768: 8768: 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h" 2 3 4 8768: 8768: 8768: 8768: 8768: namespace QtPrivate 8768: { 8768: 8768: class RefCount 8768: { 8768: public: 8768: inline bool ref() noexcept { 8768: int count = atomic.load(); 8768: 8768: if (count == 0) 8768: return false; 8768: 8768: if (count != -1) 8768: atomic.ref(); 8768: return true; 8768: } 8768: 8768: inline bool deref() noexcept { 8768: int count = atomic.load(); 8768: 8768: if (count == 0) 8768: return false; 8768: 8768: if (count == -1) 8768: return true; 8768: return atomic.deref(); 8768: } 8768: 8768: 8768: bool setSharable(bool sharable) noexcept 8768: { 8768: do { } while ((false) && (!isShared())); 8768: if (sharable) 8768: return atomic.testAndSetRelaxed(0, 1); 8768: else 8768: return atomic.testAndSetRelaxed(1, 0); 8768: } 8768: 8768: bool isSharable() const noexcept 8768: { 8768: 8768: return atomic.load() != 0; 8768: } 8768: 8768: 8768: bool isStatic() const noexcept 8768: { 8768: 8768: return atomic.load() == -1; 8768: } 8768: 8768: bool isShared() const noexcept 8768: { 8768: int count = atomic.load(); 8768: return (count != 1) && (count != 0); 8768: } 8768: 8768: void initializeOwned() noexcept { atomic.store(1); } 8768: void initializeUnsharable() noexcept { atomic.store(0); } 8768: 8768: QBasicAtomicInt atomic; 8768: }; 8768: 8768: } 8768: 8768: 8768: 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 1 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8768: 8768: 8768: 8768: struct QMetaObject; 8768: const QMetaObject *qt_getQtMetaObject() noexcept; 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8768: namespace 8768: 8768: 8768: 8768: Qt { 8768: 8768: 8768: 8768: 8768: 8768: 8768: enum GlobalColor { 8768: color0, 8768: color1, 8768: black, 8768: white, 8768: darkGray, 8768: gray, 8768: lightGray, 8768: red, 8768: green, 8768: blue, 8768: cyan, 8768: magenta, 8768: yellow, 8768: darkRed, 8768: darkGreen, 8768: darkBlue, 8768: darkCyan, 8768: darkMagenta, 8768: darkYellow, 8768: transparent 8768: }; 8768: 8768: enum KeyboardModifier { 8768: NoModifier = 0x00000000, 8768: ShiftModifier = 0x02000000, 8768: ControlModifier = 0x04000000, 8768: AltModifier = 0x08000000, 8768: MetaModifier = 0x10000000, 8768: KeypadModifier = 0x20000000, 8768: GroupSwitchModifier = 0x40000000, 8768: 8768: KeyboardModifierMask = 0xfe000000 8768: }; 8768: typedef QFlags KeyboardModifiers; 8768: 8768: 8768: 8768: 8768: 8768: 8768: enum Modifier { 8768: META = Qt::MetaModifier, 8768: SHIFT = Qt::ShiftModifier, 8768: CTRL = Qt::ControlModifier, 8768: ALT = Qt::AltModifier, 8768: MODIFIER_MASK = KeyboardModifierMask, 8768: UNICODE_ACCEL = 0x00000000 8768: }; 8768: 8768: enum MouseButton { 8768: NoButton = 0x00000000, 8768: LeftButton = 0x00000001, 8768: RightButton = 0x00000002, 8768: MidButton = 0x00000004, 8768: MiddleButton = MidButton, 8768: BackButton = 0x00000008, 8768: XButton1 = BackButton, 8768: ExtraButton1 = XButton1, 8768: ForwardButton = 0x00000010, 8768: XButton2 = ForwardButton, 8768: ExtraButton2 = ForwardButton, 8768: TaskButton = 0x00000020, 8768: ExtraButton3 = TaskButton, 8768: ExtraButton4 = 0x00000040, 8768: ExtraButton5 = 0x00000080, 8768: ExtraButton6 = 0x00000100, 8768: ExtraButton7 = 0x00000200, 8768: ExtraButton8 = 0x00000400, 8768: ExtraButton9 = 0x00000800, 8768: ExtraButton10 = 0x00001000, 8768: ExtraButton11 = 0x00002000, 8768: ExtraButton12 = 0x00004000, 8768: ExtraButton13 = 0x00008000, 8768: ExtraButton14 = 0x00010000, 8768: ExtraButton15 = 0x00020000, 8768: ExtraButton16 = 0x00040000, 8768: ExtraButton17 = 0x00080000, 8768: ExtraButton18 = 0x00100000, 8768: ExtraButton19 = 0x00200000, 8768: ExtraButton20 = 0x00400000, 8768: ExtraButton21 = 0x00800000, 8768: ExtraButton22 = 0x01000000, 8768: ExtraButton23 = 0x02000000, 8768: ExtraButton24 = 0x04000000, 8768: AllButtons = 0x07ffffff, 8768: MaxMouseButton = ExtraButton24, 8768: 8768: MouseButtonMask = 0xffffffff 8768: }; 8768: typedef QFlags MouseButtons; 8768: 8768: enum Orientation { 8768: Horizontal = 0x1, 8768: Vertical = 0x2 8768: }; 8768: 8768: typedef QFlags Orientations; 8768: 8768: enum FocusPolicy { 8768: NoFocus = 0, 8768: TabFocus = 0x1, 8768: ClickFocus = 0x2, 8768: StrongFocus = TabFocus | ClickFocus | 0x8, 8768: WheelFocus = StrongFocus | 0x4 8768: }; 8768: 8768: enum TabFocusBehavior { 8768: NoTabFocus = 0x00, 8768: TabFocusTextControls = 0x01, 8768: TabFocusListControls = 0x02, 8768: TabFocusAllControls = 0xff 8768: }; 8768: 8768: enum SortOrder { 8768: AscendingOrder, 8768: DescendingOrder 8768: }; 8768: 8768: enum TileRule { 8768: StretchTile, 8768: RepeatTile, 8768: RoundTile 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: enum AlignmentFlag { 8768: AlignLeft = 0x0001, 8768: AlignLeading = AlignLeft, 8768: AlignRight = 0x0002, 8768: AlignTrailing = AlignRight, 8768: AlignHCenter = 0x0004, 8768: AlignJustify = 0x0008, 8768: AlignAbsolute = 0x0010, 8768: AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute, 8768: 8768: AlignTop = 0x0020, 8768: AlignBottom = 0x0040, 8768: AlignVCenter = 0x0080, 8768: AlignBaseline = 0x0100, 8768: 8768: 8768: 8768: 8768: AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline, 8768: 8768: AlignCenter = AlignVCenter | AlignHCenter 8768: }; 8768: 8768: typedef QFlags Alignment; 8768: 8768: enum TextFlag { 8768: TextSingleLine = 0x0100, 8768: TextDontClip = 0x0200, 8768: TextExpandTabs = 0x0400, 8768: TextShowMnemonic = 0x0800, 8768: TextWordWrap = 0x1000, 8768: TextWrapAnywhere = 0x2000, 8768: TextDontPrint = 0x4000, 8768: TextIncludeTrailingSpaces = 0x08000000, 8768: TextHideMnemonic = 0x8000, 8768: TextJustificationForced = 0x10000, 8768: TextForceLeftToRight = 0x20000, 8768: TextForceRightToLeft = 0x40000, 8768: 8768: 8768: TextLongestVariant = 0x80000, 8768: TextBypassShaping = 0x100000 8768: }; 8768: 8768: enum TextElideMode { 8768: ElideLeft, 8768: ElideRight, 8768: ElideMiddle, 8768: ElideNone 8768: }; 8768: 8768: enum WhiteSpaceMode { 8768: WhiteSpaceNormal, 8768: WhiteSpacePre, 8768: WhiteSpaceNoWrap, 8768: WhiteSpaceModeUndefined = -1 8768: }; 8768: 8768: enum HitTestAccuracy { ExactHit, FuzzyHit }; 8768: 8768: enum WindowType { 8768: Widget = 0x00000000, 8768: Window = 0x00000001, 8768: Dialog = 0x00000002 | Window, 8768: Sheet = 0x00000004 | Window, 8768: Drawer = Sheet | Dialog, 8768: Popup = 0x00000008 | Window, 8768: Tool = Popup | Dialog, 8768: ToolTip = Popup | Sheet, 8768: SplashScreen = ToolTip | Dialog, 8768: Desktop = 0x00000010 | Window, 8768: SubWindow = 0x00000012, 8768: ForeignWindow = 0x00000020 | Window, 8768: CoverWindow = 0x00000040 | Window, 8768: 8768: WindowType_Mask = 0x000000ff, 8768: MSWindowsFixedSizeDialogHint = 0x00000100, 8768: MSWindowsOwnDC = 0x00000200, 8768: BypassWindowManagerHint = 0x00000400, 8768: X11BypassWindowManagerHint = BypassWindowManagerHint, 8768: FramelessWindowHint = 0x00000800, 8768: WindowTitleHint = 0x00001000, 8768: WindowSystemMenuHint = 0x00002000, 8768: WindowMinimizeButtonHint = 0x00004000, 8768: WindowMaximizeButtonHint = 0x00008000, 8768: WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint, 8768: WindowContextHelpButtonHint = 0x00010000, 8768: WindowShadeButtonHint = 0x00020000, 8768: WindowStaysOnTopHint = 0x00040000, 8768: WindowTransparentForInput = 0x00080000, 8768: WindowOverridesSystemGestures = 0x00100000, 8768: WindowDoesNotAcceptFocus = 0x00200000, 8768: MaximizeUsingFullscreenGeometryHint = 0x00400000, 8768: 8768: CustomizeWindowHint = 0x02000000, 8768: WindowStaysOnBottomHint = 0x04000000, 8768: WindowCloseButtonHint = 0x08000000, 8768: MacWindowToolBarButtonHint = 0x10000000, 8768: BypassGraphicsProxyWidget = 0x20000000, 8768: NoDropShadowWindowHint = 0x40000000, 8768: WindowFullscreenButtonHint = 0x80000000 8768: }; 8768: 8768: typedef QFlags WindowFlags; 8768: 8768: enum WindowState { 8768: WindowNoState = 0x00000000, 8768: WindowMinimized = 0x00000001, 8768: WindowMaximized = 0x00000002, 8768: WindowFullScreen = 0x00000004, 8768: WindowActive = 0x00000008 8768: }; 8768: 8768: typedef QFlags WindowStates; 8768: 8768: enum ApplicationState { 8768: ApplicationSuspended = 0x00000000, 8768: ApplicationHidden = 0x00000001, 8768: ApplicationInactive = 0x00000002, 8768: ApplicationActive = 0x00000004 8768: }; 8768: 8768: typedef QFlags ApplicationStates; 8768: 8768: enum ScreenOrientation { 8768: PrimaryOrientation = 0x00000000, 8768: PortraitOrientation = 0x00000001, 8768: LandscapeOrientation = 0x00000002, 8768: InvertedPortraitOrientation = 0x00000004, 8768: InvertedLandscapeOrientation = 0x00000008 8768: }; 8768: 8768: typedef QFlags ScreenOrientations; 8768: 8768: enum WidgetAttribute { 8768: WA_Disabled = 0, 8768: WA_UnderMouse = 1, 8768: WA_MouseTracking = 2, 8768: WA_ContentsPropagated = 3, 8768: WA_OpaquePaintEvent = 4, 8768: WA_NoBackground = WA_OpaquePaintEvent, 8768: WA_StaticContents = 5, 8768: WA_LaidOut = 7, 8768: WA_PaintOnScreen = 8, 8768: WA_NoSystemBackground = 9, 8768: WA_UpdatesDisabled = 10, 8768: WA_Mapped = 11, 8768: WA_MacNoClickThrough = 12, 8768: WA_InputMethodEnabled = 14, 8768: WA_WState_Visible = 15, 8768: WA_WState_Hidden = 16, 8768: 8768: WA_ForceDisabled = 32, 8768: WA_KeyCompression = 33, 8768: WA_PendingMoveEvent = 34, 8768: WA_PendingResizeEvent = 35, 8768: WA_SetPalette = 36, 8768: WA_SetFont = 37, 8768: WA_SetCursor = 38, 8768: WA_NoChildEventsFromChildren = 39, 8768: WA_WindowModified = 41, 8768: WA_Resized = 42, 8768: WA_Moved = 43, 8768: WA_PendingUpdate = 44, 8768: WA_InvalidSize = 45, 8768: WA_MacBrushedMetal = 46, 8768: WA_MacMetalStyle = WA_MacBrushedMetal, 8768: WA_CustomWhatsThis = 47, 8768: WA_LayoutOnEntireRect = 48, 8768: WA_OutsideWSRange = 49, 8768: WA_GrabbedShortcut = 50, 8768: WA_TransparentForMouseEvents = 51, 8768: WA_PaintUnclipped = 52, 8768: WA_SetWindowIcon = 53, 8768: WA_NoMouseReplay = 54, 8768: WA_DeleteOnClose = 55, 8768: WA_RightToLeft = 56, 8768: WA_SetLayoutDirection = 57, 8768: WA_NoChildEventsForParent = 58, 8768: WA_ForceUpdatesDisabled = 59, 8768: 8768: WA_WState_Created = 60, 8768: WA_WState_CompressKeys = 61, 8768: WA_WState_InPaintEvent = 62, 8768: WA_WState_Reparented = 63, 8768: WA_WState_ConfigPending = 64, 8768: WA_WState_Polished = 66, 8768: WA_WState_DND = 67, 8768: WA_WState_OwnSizePolicy = 68, 8768: WA_WState_ExplicitShowHide = 69, 8768: 8768: WA_ShowModal = 70, 8768: WA_MouseNoMask = 71, 8768: WA_GroupLeader = 72, 8768: WA_NoMousePropagation = 73, 8768: WA_Hover = 74, 8768: WA_InputMethodTransparent = 75, 8768: WA_QuitOnClose = 76, 8768: 8768: WA_KeyboardFocusChange = 77, 8768: 8768: WA_AcceptDrops = 78, 8768: WA_DropSiteRegistered = 79, 8768: WA_ForceAcceptDrops = WA_DropSiteRegistered, 8768: 8768: WA_WindowPropagation = 80, 8768: 8768: WA_NoX11EventCompression = 81, 8768: WA_TintedBackground = 82, 8768: WA_X11OpenGLOverlay = 83, 8768: WA_AlwaysShowToolTips = 84, 8768: WA_MacOpaqueSizeGrip = 85, 8768: WA_SetStyle = 86, 8768: 8768: WA_SetLocale = 87, 8768: WA_MacShowFocusRect = 88, 8768: 8768: WA_MacNormalSize = 89, 8768: WA_MacSmallSize = 90, 8768: WA_MacMiniSize = 91, 8768: 8768: WA_LayoutUsesWidgetRect = 92, 8768: WA_StyledBackground = 93, 8768: WA_MSWindowsUseDirect3D = 94, 8768: WA_CanHostQMdiSubWindowTitleBar = 95, 8768: 8768: WA_MacAlwaysShowToolWindow = 96, 8768: 8768: WA_StyleSheet = 97, 8768: 8768: WA_ShowWithoutActivating = 98, 8768: 8768: WA_X11BypassTransientForHint = 99, 8768: 8768: WA_NativeWindow = 100, 8768: WA_DontCreateNativeAncestors = 101, 8768: 8768: WA_MacVariableSize = 102, 8768: 8768: WA_DontShowOnScreen = 103, 8768: 8768: 8768: WA_X11NetWmWindowTypeDesktop = 104, 8768: WA_X11NetWmWindowTypeDock = 105, 8768: WA_X11NetWmWindowTypeToolBar = 106, 8768: WA_X11NetWmWindowTypeMenu = 107, 8768: WA_X11NetWmWindowTypeUtility = 108, 8768: WA_X11NetWmWindowTypeSplash = 109, 8768: WA_X11NetWmWindowTypeDialog = 110, 8768: WA_X11NetWmWindowTypeDropDownMenu = 111, 8768: WA_X11NetWmWindowTypePopupMenu = 112, 8768: WA_X11NetWmWindowTypeToolTip = 113, 8768: WA_X11NetWmWindowTypeNotification = 114, 8768: WA_X11NetWmWindowTypeCombo = 115, 8768: WA_X11NetWmWindowTypeDND = 116, 8768: 8768: WA_MacFrameworkScaled = 117, 8768: 8768: WA_SetWindowModality = 118, 8768: WA_WState_WindowOpacitySet = 119, 8768: WA_TranslucentBackground = 120, 8768: 8768: WA_AcceptTouchEvents = 121, 8768: WA_WState_AcceptedTouchBeginEvent = 122, 8768: WA_TouchPadAcceptSingleTouchEvents = 123, 8768: 8768: WA_X11DoNotAcceptFocus = 126, 8768: WA_MacNoShadow = 127, 8768: 8768: WA_AlwaysStackOnTop = 128, 8768: 8768: WA_TabletTracking = 129, 8768: 8768: 8768: WA_AttributeCount 8768: }; 8768: 8768: enum ApplicationAttribute 8768: { 8768: AA_ImmediateWidgetCreation = 0, 8768: AA_MSWindowsUseDirect3DByDefault = 1, 8768: AA_DontShowIconsInMenus = 2, 8768: AA_NativeWindows = 3, 8768: AA_DontCreateNativeWidgetSiblings = 4, 8768: AA_PluginApplication = 5, 8768: AA_MacPluginApplication = AA_PluginApplication, 8768: AA_DontUseNativeMenuBar = 6, 8768: AA_MacDontSwapCtrlAndMeta = 7, 8768: AA_Use96Dpi = 8, 8768: AA_X11InitThreads = 10, 8768: AA_SynthesizeTouchForUnhandledMouseEvents = 11, 8768: AA_SynthesizeMouseForUnhandledTouchEvents = 12, 8768: AA_UseHighDpiPixmaps = 13, 8768: AA_ForceRasterWidgets = 14, 8768: AA_UseDesktopOpenGL = 15, 8768: AA_UseOpenGLES = 16, 8768: AA_UseSoftwareOpenGL = 17, 8768: AA_ShareOpenGLContexts = 18, 8768: AA_SetPalette = 19, 8768: AA_EnableHighDpiScaling = 20, 8768: AA_DisableHighDpiScaling = 21, 8768: AA_UseStyleSheetPropagationInWidgetStyles = 22, 8768: AA_DontUseNativeDialogs = 23, 8768: AA_SynthesizeMousering_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 692 "/<>/templates/tests/testgenerictypes.cpp" 8737: , other); 8737: 8737: { 8737: auto t1 8737: = engine.newTemplate( 8737: # 696 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 696 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ other.custom.nestedProp }}" 8737: # 696 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 696 "/<>/templates/tests/testgenerictypes.cpp" 8737: "{{ other.custom.nestedProp }}" 8737: # 696 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 696 "/<>/templates/tests/testgenerictypes.cpp" 8737: , 8737: 8737: # 697 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 697 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 697 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 697 "/<>/templates/tests/testgenerictypes.cpp" 8737: "template1" 8737: # 697 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 697 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: auto result = t1->render(&c); 8737: auto expectedResult = 8737: # 700 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 700 "/<>/templates/tests/testgenerictypes.cpp" 8737: "nestedValue" 8737: # 700 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 700 "/<>/templates/tests/testgenerictypes.cpp" 8737: "nestedValue" 8737: # 700 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 700 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8737: result 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8737: expectedResult 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result" 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8737: "expectedResult" 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 702)) return;} while (false) 8737: # 702 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: } 8737: 8737: struct UnregisteredType { 8737: }; 8737: 8737: 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: template <> struct QMetaTypeId< 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8737: UnregisteredType 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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< 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8737: UnregisteredType 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8737: "UnregisteredType" 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , reinterpret_cast< 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 8737: UnregisteredType 8737: # 709 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8737: 8737: 8737: # 711 "/<>/templates/tests/testgenerictypes.cpp" 8737: struct RegisteredNotListType { 8737: }; 8737: 8737: 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: template <> struct QMetaTypeId< 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8737: RegisteredNotListType 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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< 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8737: RegisteredNotListType 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8737: "RegisteredNotListType" 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , reinterpret_cast< 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 8737: RegisteredNotListType 8737: # 714 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8737: 8737: 8737: # 716 "/<>/templates/tests/testgenerictypes.cpp" 8737: namespace Grantlee { template <> inline QVariant TypeAccessor::lookUp(const RegisteredNotListType &object, const QStringForUnhandledTabletEvents = 24, 8768: AA_CompressHighFrequencyEvents = 25, 8768: AA_DontCheckOpenGLContextThreadAffinity = 26, 8768: AA_DisableShaderDiskCache = 27, 8768: 8768: 8768: AA_AttributeCount 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: enum ImageConversionFlag { 8768: ColorMode_Mask = 0x00000003, 8768: AutoColor = 0x00000000, 8768: ColorOnly = 0x00000003, 8768: MonoOnly = 0x00000002, 8768: 8768: 8768: AlphaDither_Mask = 0x0000000c, 8768: ThresholdAlphaDither = 0x00000000, 8768: OrderedAlphaDither = 0x00000004, 8768: DiffuseAlphaDither = 0x00000008, 8768: NoAlpha = 0x0000000c, 8768: 8768: Dither_Mask = 0x00000030, 8768: DiffuseDither = 0x00000000, 8768: OrderedDither = 0x00000010, 8768: ThresholdDither = 0x00000020, 8768: 8768: 8768: DitherMode_Mask = 0x000000c0, 8768: AutoDither = 0x00000000, 8768: PreferDither = 0x00000040, 8768: AvoidDither = 0x00000080, 8768: 8768: NoOpaqueDetection = 0x00000100, 8768: NoFormatConversion = 0x00000200 8768: }; 8768: typedef QFlags ImageConversionFlags; 8768: 8768: enum BGMode { 8768: TransparentMode, 8768: OpaqueMode 8768: }; 8768: 8768: enum Key { 8768: Key_Escape = 0x01000000, 8768: Key_Tab = 0x01000001, 8768: Key_Backtab = 0x01000002, 8768: Key_Backspace = 0x01000003, 8768: Key_Return = 0x01000004, 8768: Key_Enter = 0x01000005, 8768: Key_Insert = 0x01000006, 8768: Key_Delete = 0x01000007, 8768: Key_Pause = 0x01000008, 8768: Key_Print = 0x01000009, 8768: Key_SysReq = 0x0100000a, 8768: Key_Clear = 0x0100000b, 8768: Key_Home = 0x01000010, 8768: Key_End = 0x01000011, 8768: Key_Left = 0x01000012, 8768: Key_Up = 0x01000013, 8768: Key_Right = 0x01000014, 8768: Key_Down = 0x01000015, 8768: Key_PageUp = 0x01000016, 8768: Key_PageDown = 0x01000017, 8768: Key_Shift = 0x01000020, 8768: Key_Control = 0x01000021, 8768: Key_Meta = 0x01000022, 8768: Key_Alt = 0x01000023, 8768: Key_CapsLock = 0x01000024, 8768: Key_NumLock = 0x01000025, 8768: Key_ScrollLock = 0x01000026, 8768: Key_F1 = 0x01000030, 8768: Key_F2 = 0x01000031, 8768: Key_F3 = 0x01000032, 8768: Key_F4 = 0x01000033, 8768: Key_F5 = 0x01000034, 8768: Key_F6 = 0x01000035, 8768: Key_F7 = 0x01000036, 8768: Key_F8 = 0x01000037, 8768: Key_F9 = 0x01000038, 8768: Key_F10 = 0x01000039, 8768: Key_F11 = 0x0100003a, 8768: Key_F12 = 0x0100003b, 8768: Key_F13 = 0x0100003c, 8768: Key_F14 = 0x0100003d, 8768: Key_F15 = 0x0100003e, 8768: Key_F16 = 0x0100003f, 8768: Key_F17 = 0x01000040, 8768: Key_F18 = 0x01000041, 8768: Key_F19 = 0x01000042, 8768: Key_F20 = 0x01000043, 8768: Key_F21 = 0x01000044, 8768: Key_F22 = 0x01000045, 8768: Key_F23 = 0x01000046, 8768: Key_F24 = 0x01000047, 8768: Key_F25 = 0x01000048, 8768: Key_F26 = 0x01000049, 8768: Key_F27 = 0x0100004a, 8768: Key_F28 = 0x0100004b, 8768: Key_F29 = 0x0100004c, 8768: Key_F30 = 0x0100004d, 8768: Key_F31 = 0x0100004e, 8768: Key_F32 = 0x0100004f, 8768: Key_F33 = 0x01000050, 8768: Key_F34 = 0x01000051, 8768: Key_F35 = 0x01000052, 8768: Key_Super_L = 0x01000053, 8768: Key_Super_R = 0x01000054, 8768: Key_Menu = 0x01000055, 8768: Key_Hyper_L = 0x01000056, 8768: Key_Hyper_R = 0x01000057, 8768: Key_Help = 0x01000058, 8768: Key_Direction_L = 0x01000059, 8768: Key_Direction_R = 0x01000060, 8768: Key_Space = 0x20, 8768: Key_Any = Key_Space, 8768: Key_Exclam = 0x21, 8768: Key_QuoteDbl = 0x22, 8768: Key_NumberSign = 0x23, 8768: Key_Dollar = 0x24, 8768: Key_Percent = 0x25, 8768: Key_Ampersand = 0x26, 8768: Key_Apostrophe = 0x27, 8768: Key_ParenLeft = 0x28, 8768: Key_ParenRight = 0x29, 8768: Key_Asterisk = 0x2a, 8768: Key_Plus = 0x2b, 8768: Key_Comma = 0x2c, 8768: Key_Minus = 0x2d, 8768: Key_Period = 0x2e, 8768: Key_Slash = 0x2f, 8768: Key_0 = 0x30, 8768: Key_1 = 0x31, 8768: Key_2 = 0x32, 8768: Key_3 = 0x33, 8768: Key_4 = 0x34, 8768: Key_5 = 0x35, 8768: Key_6 = 0x36, 8768: Key_7 = 0x37, 8768: Key_8 = 0x38, 8768: Key_9 = 0x39, 8768: Key_Colon = 0x3a, 8768: Key_Semicolon = 0x3b, 8768: Key_Less = 0x3c, 8768: Key_Equal = 0x3d, 8768: Key_Greater = 0x3e, 8768: Key_Question = 0x3f, 8768: Key_At = 0x40, 8768: Key_A = 0x41, 8768: Key_B = 0x42, 8768: Key_C = 0x43, 8768: Key_D = 0x44, 8768: Key_E = 0x45, 8768: Key_F = 0x46, 8768: Key_G = 0x47, 8768: Key_H = 0x48, 8768: Key_I = 0x49, 8768: Key_J = 0x4a, 8768: Key_K = 0x4b, 8768: Key_L = 0x4c, 8768: Key_M = 0x4d, 8768: Key_N = 0x4e, 8768: Key_O = 0x4f, 8768: Key_P = 0x50, 8768: Key_Q = 0x51, 8768: Key_R = 0x52, 8768: Key_S = 0x53, 8768: Key_T = 0x54, 8768: Key_U = 0x55, 8768: Key_V = 0x56, 8768: Key_W = 0x57, 8768: Key_X = 0x58, 8768: Key_Y = 0x59, 8768: Key_Z = 0x5a, 8768: Key_BracketLeft = 0x5b, 8768: Key_Backslash = 0x5c, 8768: Key_BracketRight = 0x5d, 8768: Key_AsciiCircum = 0x5e, 8768: Key_Underscore = 0x5f, 8768: Key_QuoteLeft = 0x60, 8768: Key_BraceLeft = 0x7b, 8768: Key_Bar = 0x7c, 8768: Key_BraceRight = 0x7d, 8768: Key_AsciiTilde = 0x7e, 8768: 8768: Key_nobreakspace = 0x0a0, 8768: Key_exclamdown = 0x0a1, 8768: Key_cent = 0x0a2, 8768: Key_sterling = 0x0a3, 8768: Key_currency = 0x0a4, 8768: Key_yen = 0x0a5, 8768: Key_brokenbar = 0x0a6, 8768: Key_section = 0x0a7, 8768: Key_diaeresis = 0x0a8, 8768: Key_copyright = 0x0a9, 8768: Key_ordfeminine = 0x0aa, 8768: Key_guillemotleft = 0x0ab, 8768: Key_notsign = 0x0ac, 8768: Key_hyphen = 0x0ad, 8768: Key_registered = 0x0ae, 8768: Key_macron = 0x0af, 8768: Key_degree = 0x0b0, 8768: Key_plusminus = 0x0b1, 8768: Key_twosuperior = 0x0b2, 8768: Key_threesuperior = 0x0b3, 8768: Key_acute = 0x0b4, 8768: Key_mu = 0x0b5, 8768: Key_paragraph = 0x0b6, 8768: Key_periodcentered = 0x0b7, 8768: Key_cedilla = 0x0b8, 8768: Key_onesuperior = 0x0b9, 8768: Key_masculine = 0x0ba, 8768: Key_guillemotright = 0x0bb, 8768: Key_onequarter = 0x0bc, 8768: Key_onehalf = 0x0bd, 8768: Key_threequarters = 0x0be, 8768: Key_questiondown = 0x0bf, 8768: Key_Agrave = 0x0c0, 8768: Key_Aacute = 0x0c1, 8768: Key_Acircumflex = 0x0c2, 8768: Key_Atilde = 0x0c3, 8768: Key_Adiaeresis = 0x0c4, 8768: Key_Aring = 0x0c5, 8768: Key_AE = 0x0c6, 8768: Key_Ccedilla = 0x0c7, 8768: Key_Egrave = 0x0c8, 8768: Key_Eacute = 0x0c9, 8768: Key_Ecircumflex = 0x0ca, 8768: Key_Ediaeresis = 0x0cb, 8768: Key_Igrave = 0x0cc, 8768: Key_Iacute = 0x0cd, 8768: Key_Icircumflex = 0x0ce, 8768: Key_Idiaeresis = 0x0cf, 8768: Key_ETH = 0x0d0, 8768: Key_Ntilde = 0x0d1, 8768: Key_Ograve = 0x0d2, 8768: Key_Oacute = 0x0d3, 8768: Key_Ocircumflex = 0x0d4, 8768: Key_Otilde = 0x0d5, 8768: Key_Odiaeresis = 0x0d6, 8768: Key_multipl &property) { 8737: 8737: # 717 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: (void) 8737: # 717 "/<>/templates/tests/testgenerictypes.cpp" 8737: object 8737: # 717 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ; 8737: 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8737: if (property == 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 718 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: return 42; 8737: return QVariant(); } } 8737: 8737: static QVariantList dummy(const UnregisteredType &) 8737: { 8737: return QVariantList() << 42; 8737: } 8737: 8737: QVariant dummyLookup(const QVariant &, const QString &) { return 42; } 8737: 8737: void TestGenericTypes::testUnregistered() 8737: { 8737: 8737: { 8737: UnregisteredType unregType; 8737: auto v = QVariant::fromValue(unregType); 8737: 8737: auto result = Grantlee::MetaType::lookup(v, 8737: # 736 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 736 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 736 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 736 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 736 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 736 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: # 737 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 737 "/<>/templates/tests/testgenerictypes.cpp" 8737: !result.isValid() 8737: # 737 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 737 "/<>/templates/tests/testgenerictypes.cpp" 8737: "!result.isValid()" 8737: # 737 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 737)) return;} while (false) 8737: # 737 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: 8737: # 739 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 739 "/<>/templates/tests/testgenerictypes.cpp" 8737: !v.canConvert() 8737: # 739 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 739 "/<>/templates/tests/testgenerictypes.cpp" 8737: "!v.canConvert()" 8737: # 739 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 739)) return;} while (false) 8737: # 739 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: Grantlee::registerMetaType(); 8737: 8737: { 8737: RegisteredNotListType nonListType; 8737: auto v = QVariant::fromValue(nonListType); 8737: auto result = Grantlee::MetaType::lookup(v, 8737: # 747 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 747 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 747 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 747 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 747 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 747 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: # 748 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 748 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.isValid() 8737: # 748 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 748 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.isValid()" 8737: # 748 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 748)) return;} while (false) 8737: # 748 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: # 749 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 749 "/<>/templates/tests/testgenerictypes.cpp" 8737: !v.canConvert() 8737: # 749 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 749 "/<>/templates/tests/testgenerictypes.cpp" 8737: "!v.canConvert()" 8737: # 749 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 749)) return;} while (false) 8737: # 749 "/<>/templates/tests/testgenerictypes.cpp" 8737: y = 0x0d7, 8768: Key_Ooblique = 0x0d8, 8768: Key_Ugrave = 0x0d9, 8768: Key_Uacute = 0x0da, 8768: Key_Ucircumflex = 0x0db, 8768: Key_Udiaeresis = 0x0dc, 8768: Key_Yacute = 0x0dd, 8768: Key_THORN = 0x0de, 8768: Key_ssharp = 0x0df, 8768: Key_division = 0x0f7, 8768: Key_ydiaeresis = 0x0ff, 8768: 8768: 8768: 8768: 8768: 8768: 8768: Key_AltGr = 0x01001103, 8768: Key_Multi_key = 0x01001120, 8768: Key_Codeinput = 0x01001137, 8768: Key_SingleCandidate = 0x0100113c, 8768: Key_MultipleCandidate = 0x0100113d, 8768: Key_PreviousCandidate = 0x0100113e, 8768: 8768: 8768: Key_Mode_switch = 0x0100117e, 8768: 8768: 8768: 8768: Key_Kanji = 0x01001121, 8768: Key_Muhenkan = 0x01001122, 8768: 8768: Key_Henkan = 0x01001123, 8768: Key_Romaji = 0x01001124, 8768: Key_Hiragana = 0x01001125, 8768: Key_Katakana = 0x01001126, 8768: Key_Hiragana_Katakana = 0x01001127, 8768: Key_Zenkaku = 0x01001128, 8768: Key_Hankaku = 0x01001129, 8768: Key_Zenkaku_Hankaku = 0x0100112a, 8768: Key_Touroku = 0x0100112b, 8768: Key_Massyo = 0x0100112c, 8768: Key_Kana_Lock = 0x0100112d, 8768: Key_Kana_Shift = 0x0100112e, 8768: Key_Eisu_Shift = 0x0100112f, 8768: Key_Eisu_toggle = 0x01001130, 8768: # 806 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h" 3 4 8768: Key_Hangul = 0x01001131, 8768: Key_Hangul_Start = 0x01001132, 8768: Key_Hangul_End = 0x01001133, 8768: Key_Hangul_Hanja = 0x01001134, 8768: Key_Hangul_Jamo = 0x01001135, 8768: Key_Hangul_Romaja = 0x01001136, 8768: 8768: Key_Hangul_Jeonja = 0x01001138, 8768: Key_Hangul_Banja = 0x01001139, 8768: Key_Hangul_PreHanja = 0x0100113a, 8768: Key_Hangul_PostHanja = 0x0100113b, 8768: 8768: 8768: 8768: Key_Hangul_Special = 0x0100113f, 8768: 8768: 8768: 8768: Key_Dead_Grave = 0x01001250, 8768: Key_Dead_Acute = 0x01001251, 8768: Key_Dead_Circumflex = 0x01001252, 8768: Key_Dead_Tilde = 0x01001253, 8768: Key_Dead_Macron = 0x01001254, 8768: Key_Dead_Breve = 0x01001255, 8768: Key_Dead_Abovedot = 0x01001256, 8768: Key_Dead_Diaeresis = 0x01001257, 8768: Key_Dead_Abovering = 0x01001258, 8768: Key_Dead_Doubleacute = 0x01001259, 8768: Key_Dead_Caron = 0x0100125a, 8768: Key_Dead_Cedilla = 0x0100125b, 8768: Key_Dead_Ogonek = 0x0100125c, 8768: Key_Dead_Iota = 0x0100125d, 8768: Key_Dead_Voiced_Sound = 0x0100125e, 8768: Key_Dead_Semivoiced_Sound = 0x0100125f, 8768: Key_Dead_Belowdot = 0x01001260, 8768: Key_Dead_Hook = 0x01001261, 8768: Key_Dead_Horn = 0x01001262, 8768: 8768: 8768: Key_Back = 0x01000061, 8768: Key_Forward = 0x01000062, 8768: Key_Stop = 0x01000063, 8768: Key_Refresh = 0x01000064, 8768: Key_VolumeDown = 0x01000070, 8768: Key_VolumeMute = 0x01000071, 8768: Key_VolumeUp = 0x01000072, 8768: Key_BassBoost = 0x01000073, 8768: Key_BassUp = 0x01000074, 8768: Key_BassDown = 0x01000075, 8768: Key_TrebleUp = 0x01000076, 8768: Key_TrebleDown = 0x01000077, 8768: Key_MediaPlay = 0x01000080, 8768: Key_MediaStop = 0x01000081, 8768: Key_MediaPrevious = 0x01000082, 8768: Key_MediaNext = 0x01000083, 8768: Key_MediaRecord = 0x01000084, 8768: Key_MediaPause = 0x1000085, 8768: Key_MediaTogglePlayPause = 0x1000086, 8768: Key_HomePage = 0x01000090, 8768: Key_Favorites = 0x01000091, 8768: Key_Search = 0x01000092, 8768: Key_Standby = 0x01000093, 8768: Key_OpenUrl = 0x01000094, 8768: Key_LaunchMail = 0x010000a0, 8768: Key_LaunchMedia = 0x010000a1, 8768: Key_Launch0 = 0x010000a2, 8768: Key_Launch1 = 0x010000a3, 8768: Key_Launch2 = 0x010000a4, 8768: Key_Launch3 = 0x010000a5, 8768: Key_Launch4 = 0x010000a6, 8768: Key_Launch5 = 0x010000a7, 8768: Key_Launch6 = 0x010000a8, 8768: Key_Launch7 = 0x010000a9, 8768: Key_Launch8 = 0x010000aa, 8768: Key_Launch9 = 0x010000ab, 8768: Key_LaunchA = 0x010000ac, 8768: Key_LaunchB = 0x010000ad, 8768: Key_LaunchC = 0x010000ae, 8768: Key_LaunchD = 0x010000af, 8768: Key_LaunchE = 0x010000b0, 8768: Key_LaunchF = 0x010000b1, 8768: Key_MonBrightnessUp = 0x010000b2, 8768: Key_MonBrightnessDown = 0x010000b3, 8768: Key_KeyboardLightOnOff = 0x010000b4, 8768: Key_KeyboardBrightnessUp = 0x010000b5, 8768: Key_KeyboardBrightnessDown = 0x010000b6, 8768: Key_PowerOff = 0x010000b7, 8768: Key_WakeUp = 0x010000b8, 8768: Key_Eject = 0x010000b9, 8768: Key_ScreenSaver = 0x010000ba, 8768: Key_WWW = 0x010000bb, 8768: Key_Memo = 0x010000bc, 8768: Key_LightBulb = 0x010000bd, 8768: Key_Shop = 0x010000be, 8768: Key_History = 0x010000bf, 8768: Key_AddFavorite = 0x010000c0, 8768: Key_HotLinks = 0x010000c1, 8768: Key_BrightnessAdjust = 0x010000c2, 8768: Key_Finance = 0x010000c3, 8768: Key_Community = 0x010000c4, 8768: Key_AudioRewind = 0x010000c5, 8768: Key_BackForward = 0x010000c6, 8768: Key_ApplicationLeft = 0x010000c7, 8768: Key_ApplicationRight = 0x010000c8, 8768: Key_Book = 0x010000c9, 8768: Key_CD = 0x010000ca, 8768: Key_Calculator = 0x010000cb, 8768: Key_ToDoList = 0x010000cc, 8768: Key_ClearGrab = 0x010000cd, 8768: Key_Close = 0x010000ce, 8768: Key_Copy = 0x010000cf, 8768: Key_Cut = 0x010000d0, 8768: Key_Display = 0x010000d1, 8768: Key_DOS = 0x010000d2, 8768: Key_Documents = 0x010000d3, 8768: Key_Excel = 0x010000d4, 8768: Key_Explorer = 0x010000d5, 8768: Key_Game = 0x010000d6, 8768: Key_Go = 0x010000d7, 8768: Key_iTouch = 0x010000d8, 8768: Key_LogOff = 0x010000d9, 8768: Key_Market = 0x010000da, 8768: Key_Meeting = 0x010000db, 8768: Key_MenuKB = 0x010000dc, 8768: Key_MenuPB = 0x010000dd, 8768: Key_MySites = 0x010000de, 8768: Key_News = 0x010000df, 8768: Key_OfficeHome = 0x010000e0, 8768: Key_Option = 0x010000e1, 8768: Key_Paste = 0x010000e2, 8768: Key_Phone = 0x010000e3, 8768: Key_Calendar = 0x010000e4, 8768: Key_Reply = 0x010000e5, 8768: Key_Reload = 0x010000e6, 8768: Key_RotateWindows = 0x010000e7, 8768: Key_RotationPB = 0x010000e8, 8768: Key_RotationKB = 0x010000e9, 8768: Key_Save = 0x010000ea, 8768: Key_Send = 0x010000eb, 8768: Key_Spell = 0x010000ec, 8768: Key_SplitScreen = 0x010000ed, 8768: Key_Support = 0x010000ee, 8768: Key_TaskPane = 0x010000ef, 8768: Key_Terminal = 0x010000f0, 8768: Key_Tools = 0x010000f1, 8768: Key_Travel = 0x010000f2, 8768: Key_Video = 0x010000f3, 8768: Key_Word = 0x010000f4, 8768: Key_Xfer = 0x010000f5, 8768: Key_ZoomIn = 0x010000f6, 8768: Key_ZoomOut = 0x010000f7, 8768: Key_Away = 0x010000f8, 8768: Key_Messenger = 0x010000f9, 8768: Key_WebCam = 0x010000fa, 8768: Key_MailForward = 0x010000fb, 8768: Key_Pictures = 0x010000fc, 8768: Key_Music = 0x010000fd, 8768: Key_Battery = 0x010000fe, 8768: Key_Bluetooth = 0x010000ff, 8768: Key_WLAN = 0x01000100, 8768: Key_UWB = 0x01000101, 8768: Key_AudioForward = 0x01000102, 8768: Key_AudioRepeat = 0x01000103, 8768: Key_AudioRandomPlay = 0x01000104, 8768: Key_Subtitle = 0x01000105, 8768: Key_AudioCycleTrack = 0x01000106, 8768: Key_Time = 0x01000107, 8768: Key_Hiberna ; 8737: } 8737: 8737: { 8737: QMetaType::registerConverter(&dummy); 8737: UnregisteredType unregType; 8737: auto v = QVariant::fromValue(unregType); 8737: auto result = Grantlee::MetaType::lookup(v, 8737: # 756 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 756 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 756 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 756 "/<>/templates/tests/testgenerictypes.cpp" 8737: "property" 8737: # 756 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 756 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: # 757 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qVerify(static_cast( 8737: # 757 "/<>/templates/tests/testgenerictypes.cpp" 8737: !result.isValid() 8737: # 757 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ), 8737: # 757 "/<>/templates/tests/testgenerictypes.cpp" 8737: "!result.isValid()" 8737: # 757 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "", "/<>/templates/tests/testgenerictypes.cpp", 757)) return;} while (false) 8737: # 757 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: } 8737: 8737: 8737: 8737: 8737: } 8737: 8737: 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: template <> struct QMetaTypeId< 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8737: Person * 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: > { 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< 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8737: Person * 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: >( 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Person *" 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , reinterpret_cast< 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 8737: Person * 8737: # 765 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8737: 8737: 8737: # 767 "/<>/templates/tests/testgenerictypes.cpp" 8737: namespace Grantlee { template <> inline QVariant TypeAccessor::lookUp(const Person *const object, const QString &property) { 8737: if (property == 8737: # 768 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 768 "/<>/templates/tests/testgenerictypes.cpp" 8737: "name" 8737: # 768 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 768 "/<>/templates/tests/testgenerictypes.cpp" 8737: "name" 8737: # 768 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 768 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: return QString::fromStdString(object->name); 8737: else if (property == 8737: # 770 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 770 "/<>/templates/tests/testgenerictypes.cpp" 8737: "age" 8737: # 770 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 770 "/<>/templates/tests/testgenerictypes.cpp" 8737: "age" 8737: # 770 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 770 "/<>/templates/tests/testgenerictypes.cpp" 8737: ) 8737: return object->age; 8737: return QVariant(); } } 8737: 8737: void TestGenericTypes::testPointerNonQObject() 8737: { 8737: auto p = new Person("Adele", 21); 8737: auto v = QVariant::fromValue(p); 8737: 8737: Grantlee::registerMetaType(); 8737: 8737: auto result = Grantlee::MetaType::lookup(v, 8737: # 781 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 781 "/<>/templates/tests/testgenerictypes.cpp" 8737: "name" 8737: # 781 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 781 "/<>/templates/tests/testgenerictypes.cpp" 8737: "name" 8737: # 781 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8737: # 781 "/<>/templates/tests/testgenerictypes.cpp" 8737: ); 8737: 8737: 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: do { if (!QTest::qCompare( 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8737: result.value() 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Adele" 87te = 0x01000108, 8768: Key_View = 0x01000109, 8768: Key_TopMenu = 0x0100010a, 8768: Key_PowerDown = 0x0100010b, 8768: Key_Suspend = 0x0100010c, 8768: Key_ContrastAdjust = 0x0100010d, 8768: 8768: Key_LaunchG = 0x0100010e, 8768: Key_LaunchH = 0x0100010f, 8768: 8768: Key_TouchpadToggle = 0x01000110, 8768: Key_TouchpadOn = 0x01000111, 8768: Key_TouchpadOff = 0x01000112, 8768: 8768: Key_MicMute = 0x01000113, 8768: 8768: Key_Red = 0x01000114, 8768: Key_Green = 0x01000115, 8768: Key_Yellow = 0x01000116, 8768: Key_Blue = 0x01000117, 8768: 8768: Key_ChannelUp = 0x01000118, 8768: Key_ChannelDown = 0x01000119, 8768: 8768: Key_Guide = 0x0100011a, 8768: Key_Info = 0x0100011b, 8768: Key_Settings = 0x0100011c, 8768: 8768: Key_MicVolumeUp = 0x0100011d, 8768: Key_MicVolumeDown = 0x0100011e, 8768: 8768: Key_New = 0x01000120, 8768: Key_Open = 0x01000121, 8768: Key_Find = 0x01000122, 8768: Key_Undo = 0x01000123, 8768: Key_Redo = 0x01000124, 8768: 8768: Key_MediaLast = 0x0100ffff, 8768: 8768: 8768: Key_Select = 0x01010000, 8768: Key_Yes = 0x01010001, 8768: Key_No = 0x01010002, 8768: 8768: 8768: Key_Cancel = 0x01020001, 8768: Key_Printer = 0x01020002, 8768: Key_Execute = 0x01020003, 8768: Key_Sleep = 0x01020004, 8768: Key_Play = 0x01020005, 8768: Key_Zoom = 0x01020006, 8768: 8768: 8768: 8768: Key_Exit = 0x0102000a, 8768: 8768: 8768: Key_Context1 = 0x01100000, 8768: Key_Context2 = 0x01100001, 8768: Key_Context3 = 0x01100002, 8768: Key_Context4 = 0x01100003, 8768: Key_Call = 0x01100004, 8768: Key_Hangup = 0x01100005, 8768: Key_Flip = 0x01100006, 8768: Key_ToggleCallHangup = 0x01100007, 8768: Key_VoiceDial = 0x01100008, 8768: Key_LastNumberRedial = 0x01100009, 8768: 8768: Key_Camera = 0x01100020, 8768: Key_CameraFocus = 0x01100021, 8768: 8768: Key_unknown = 0x01ffffff 8768: }; 8768: 8768: enum ArrowType { 8768: NoArrow, 8768: UpArrow, 8768: DownArrow, 8768: LeftArrow, 8768: RightArrow 8768: }; 8768: 8768: enum PenStyle { 8768: NoPen, 8768: SolidLine, 8768: DashLine, 8768: DotLine, 8768: DashDotLine, 8768: DashDotDotLine, 8768: CustomDashLine 8768: 8768: , MPenStyle = 0x0f 8768: 8768: }; 8768: 8768: enum PenCapStyle { 8768: FlatCap = 0x00, 8768: SquareCap = 0x10, 8768: RoundCap = 0x20, 8768: MPenCapStyle = 0x30 8768: }; 8768: 8768: enum PenJoinStyle { 8768: MiterJoin = 0x00, 8768: BevelJoin = 0x40, 8768: RoundJoin = 0x80, 8768: SvgMiterJoin = 0x100, 8768: MPenJoinStyle = 0x1c0 8768: }; 8768: 8768: enum BrushStyle { 8768: NoBrush, 8768: SolidPattern, 8768: Dense1Pattern, 8768: Dense2Pattern, 8768: Dense3Pattern, 8768: Dense4Pattern, 8768: Dense5Pattern, 8768: Dense6Pattern, 8768: Dense7Pattern, 8768: HorPattern, 8768: VerPattern, 8768: CrossPattern, 8768: BDiagPattern, 8768: FDiagPattern, 8768: DiagCrossPattern, 8768: LinearGradientPattern, 8768: RadialGradientPattern, 8768: ConicalGradientPattern, 8768: TexturePattern = 24 8768: }; 8768: 8768: enum SizeMode { 8768: AbsoluteSize, 8768: RelativeSize 8768: }; 8768: 8768: enum UIEffect { 8768: UI_General, 8768: UI_AnimateMenu, 8768: UI_FadeMenu, 8768: UI_AnimateCombo, 8768: UI_AnimateTooltip, 8768: UI_FadeTooltip, 8768: UI_AnimateToolBox 8768: }; 8768: 8768: enum CursorShape { 8768: ArrowCursor, 8768: UpArrowCursor, 8768: CrossCursor, 8768: WaitCursor, 8768: IBeamCursor, 8768: SizeVerCursor, 8768: SizeHorCursor, 8768: SizeBDiagCursor, 8768: SizeFDiagCursor, 8768: SizeAllCursor, 8768: BlankCursor, 8768: SplitVCursor, 8768: SplitHCursor, 8768: PointingHandCursor, 8768: ForbiddenCursor, 8768: WhatsThisCursor, 8768: BusyCursor, 8768: OpenHandCursor, 8768: ClosedHandCursor, 8768: DragCopyCursor, 8768: DragMoveCursor, 8768: DragLinkCursor, 8768: LastCursor = DragLinkCursor, 8768: BitmapCursor = 24, 8768: CustomCursor = 25 8768: }; 8768: 8768: enum TextFormat { 8768: PlainText, 8768: RichText, 8768: AutoText 8768: }; 8768: 8768: enum AspectRatioMode { 8768: IgnoreAspectRatio, 8768: KeepAspectRatio, 8768: KeepAspectRatioByExpanding 8768: }; 8768: 8768: enum DockWidgetArea { 8768: LeftDockWidgetArea = 0x1, 8768: RightDockWidgetArea = 0x2, 8768: TopDockWidgetArea = 0x4, 8768: BottomDockWidgetArea = 0x8, 8768: 8768: DockWidgetArea_Mask = 0xf, 8768: AllDockWidgetAreas = DockWidgetArea_Mask, 8768: NoDockWidgetArea = 0 8768: }; 8768: enum DockWidgetAreaSizes { 8768: NDockWidgetAreas = 4 8768: }; 8768: 8768: typedef QFlags DockWidgetAreas; 8768: 8768: enum ToolBarArea { 8768: LeftToolBarArea = 0x1, 8768: RightToolBarArea = 0x2, 8768: TopToolBarArea = 0x4, 8768: BottomToolBarArea = 0x8, 8768: 8768: ToolBarArea_Mask = 0xf, 8768: AllToolBarAreas = ToolBarArea_Mask, 8768: NoToolBarArea = 0 8768: }; 8768: 8768: enum ToolBarAreaSizes { 8768: NToolBarAreas = 4 8768: }; 8768: 8768: typedef QFlags ToolBarAreas; 8768: 8768: enum DateFormat { 8768: TextDate, 8768: ISODate, 8768: SystemLocaleDate, 8768: LocalDate = SystemLocaleDate, 8768: LocaleDate, 8768: SystemLocaleShortDate, 8768: SystemLocaleLongDate, 8768: DefaultLocaleShortDate, 8768: DefaultLocaleLongDate, 8768: RFC2822Date, 8768: ISODateWithMs 8768: }; 8768: 8768: enum TimeSpec { 8768: LocalTime, 8768: UTC, 8768: OffsetFromUTC, 8768: TimeZone 8768: }; 8768: 8768: enum DayOfWeek { 8768: Monday = 1, 8768: Tuesday = 2, 8768: Wednesday = 3, 8768: Thursday = 4, 8768: Friday = 5, 8768: Saturday = 6, 8768: Sunday = 7 8768: }; 8768: 8768: enum ScrollBarPolicy { 8768: ScrollBarAsNeeded, 8768: ScrollBarAlwaysOff, 8768: ScrollBarAlwaysOn 8768: }; 8768: 8768: enum CaseSensitivity { 8768: CaseInsensitive, 8768: CaseSensitive 8768: }; 8768: 8768: enum Corner { 8768: TopLeftCorner = 0x00000, 8768: TopRightCorner = 0x00001, 8768: BottomLeftCorner = 0x00002, 8768: BottomRightCorner = 0x00003 8768: }; 8768: 8768: enum Edge { 8768: TopEdge = 0x00001, 8768: LeftEdge = 0x00002, 8768: RightEdge = 0x00004, 8768: BottomEdge = 0x00008 8768: }; 8768: 8768: typedef QFlags Edges; 8768: 8768: enum ConnectionType { 8768: AutoConnection, 8768: DirectConnection, 8768: QueuedConnection, 8768: BlockingQueuedConnection, 8768: UniqueConnection = 0x80 8768: }; 8768: 8768: enum ShortcutContext { 8768: WidgetShortcut, 8768: WindowShortcut, 8768: ApplicationShortcut, 8768: WidgetWithChildrenShortcut 8768: }; 8768: 8768: enum FillRule { 8768: OddEvenFill, 8768: WindingFill 8768: }; 8768: 8768: enum MaskMode { 8768: MaskInColor, 8768: MaskOutColor 8768: }; 8768: 8768: enum ClipOperation { 8768: NoClip, 8768: ReplaceClip, 8768: IntersectClip 8768: }; 8768: 8768: 8768: enum ItemSelectionMode { 8768: ContainsItemShape = 0x0, 8768: IntersectsItemShape = 0x1, 8768: ContainsItemBoundingRect = 0x2, 8768: IntersectsItemBoundingRect = 0x3 8768: }; 8768: 8768: enum ItemSelectionOperation { 8768: ReplaceSelection, 8768: AddToSelection 8768: }; 8768: 8768: enum TransformationMode { 8768: FastTransformation, 8768: SmoothTransformation 8768: }; 8768: 8768: enum Axis { 8768: XAxis, 8768: YAxis, 8768: ZAxis 8768: }; 8768: 8768: enum FocusReason { 8768: MouseFocusReason, 8768: TabFocusReason, 8768: BacktabFocusReason, 8768: ActiveWindowFocusReason, 8768: PopupFocusReason, 8768: ShortcutFocusReason, 8768: MenuBarFocusReason, 8768: OtherFocusReason, 8768: NoFocusReason 8768: }; 8768: 8768: enum ContextMenuPolicy { 8768: NoContextMenu, 8768: DefaultContextMenu, 8768: ActionsContextMenu, 8768: CustomContextMenu, 8768: PreventContextMenu 8768: }; 8768: 8768: enum InputMethodQuery { 8768: ImEnabled = 0x1, 8768: ImCursorRectangle = 0x2, 8768: ImMicroFocus = 0x2, 8768: ImFont = 0x4, 8768: ImCursorPosition = 0x8, 8768: ImSurroundingText = 0x10, 8768: ImCurrentSelection = 0x20, 8768: ImMaximumTextLength = 0x40, 8768: ImAnchorPosition = 0x80, 8768: ImHints = 0x100, 8768: ImPreferredLanguage = 0x200, 8768: 8768: ImAbsolutePosition = 0x400, 8768: ImTextBeforeCursor = 0x800, 8768: ImTextAfterCursor = 0x1000, 8768: ImEnterKeyType = 0x2000, 8768: ImAnchorRectangle = 0x4000, 8768: ImInputItemClipRectangle = 0x8000, 8768: 8768: ImPlatformData = 0x80000000, 8768: ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText | 8768: ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition, 8768: ImQueryAll = 0xffffffff 8768: }; 8768: typedef QFlags InputMethodQueries; 8768: 8768: enum InputMethodHint { 8768: ImhNone = 0x0, 8768: 8768: ImhHiddenText = 0x1, 8768: ImhSensitiveData = 0x2, 8768: ImhNoAutoUppercase = 0x4, 8768: ImhPreferNumbers = 0x8, 8768: ImhPreferUppercase = 0x10, 8768: ImhPreferLowercase = 0x20, 8768: ImhNoPredictiveText = 0x40, 8768: 8768: ImhDate = 0x80, 8768: ImhTime = 0x100, 8768: 8768: ImhPreferLatin = 0x200, 8768: 8768: ImhMultiLine = 0x400, 8768: 8768: ImhDigitsOnly = 0x10000, 8768: ImhFormattedNumbersOnly = 0x20000, 8768: ImhUppercaseOnly = 0x40000, 8768: ImhLowercaseOnly = 0x80000, 8768: ImhDialableCharactersOnly = 0x100000, 8768: ImhEmailCharactersOnly = 0x200000, 8768: ImhUrlCharactersOnly = 0x400000, 8768: ImhLatinOnly = 0x800000, 8768: 8768: ImhExclusiveInputMask = 0xffff0000 8768: }; 8768: typedef QFlags InputMethodHints; 8768: 8768: enum EnterKeyType { 8768: EnterKeyDefault, 8768: EnterKeyReturn, 8768: EnterKeyDone, 8768: EnterKeyGo, 8768: EnterKeySend, 8768: EnterKeySearch, 8768: EnterKeyNext, 8768: EnterKeyPrevious 8768: }; 8768: 8768: enum ToolButtonStyle { 8768: ToolButtonIconOnly, 8768: ToolButtonTextOnly, 8768: ToolButtonTextBesideIcon, 8768: ToolButtonTextUnderIcon, 8768: ToolButtonFollowStyle 8768: }; 8768: 8768: enum LayoutDirection { 8768: LeftToRight, 8768: RightToLeft, 8768: LayoutDirectionAuto 8768: }; 8768: 8768: enum AnchorPoint { 8768: AnchorLeft = 0, 8768: AnchorHorizontalCenter, 8768: AnchorRight, 8768: AnchorTop, 8768: AnchorVerticalCenter, 8768: AnchorBottom 8768: }; 8768: 8768: enum FindChildOption { 8768: FindDirectChildrenOnly = 0x0, 8768: FindChildrenRecursively = 0x1 8768: }; 8768: typedef QFlags FindChildOptions; 8768: 8768: enum DropAction { 8768: CopyAction = 0x1, 8768: MoveAction = 0x2, 8768: LinkAction = 0x4, 8768: ActionMask = 0xff, 8768: TargetMoveAction = 0x8002, 8768: IgnoreAction = 0x0 8768: }; 8768: typedef QFlags DropActions; 8768: 8768: enum CheckState { 8768: Unchecked, 8768: PartiallyChecked, 8768: Checked 8768: }; 8768: 8768: enum ItemDataRole { 8768: DisplayRole = 0, 8768: DecorationRole = 1, 8768: EditRole = 2, 8768: ToolTipRole = 3, 8768: StatusTipRole = 4, 8768: WhatsThisRole = 5, 8768: 8768: FontRole = 6, 8768: TextAlignmentRole = 7, 8768: BackgroundColorRole = 8, 8768: BackgroundRole = 8, 8768: TextColorRole = 9, 8768: ForegroundRole = 9, 8768: CheckStateRole = 10, 8768: 8768: AccessibleTextRole = 11, 8768: AccessibleDescriptionRole = 12, 8768: 8768: SizeHintRole = 13, 8768: InitialSortOrderRole = 14, 8768: 8768: DisplayPropertyRole = 27, 8768: DecorationPropertyRole = 28, 8768: ToolTipPropertyRole = 29, 8768: StatusTipPropertyRole = 30, 8768: WhatsThisPropertyRole = 31, 8768: 8768: UserRole = 0x0100 8768: }; 8768: 8768: enum ItemFlag { 8768: NoItemFlags = 0, 8768: ItemIsSelectable = 1, 8768: ItemIsEditable = 2, 8768: ItemIsDragEnabled = 4, 8768: ItemIsDropEnabled = 8, 8768: ItemIsUserCheckable = 16, 8768: ItemIsEnabled = 32, 8768: ItemIsAutoTristate = 64, 8768: 8768: ItemIsTristate = ItemIsAutoTristate, 8768: 8768: ItemNeverHasChildren = 128, 8768: ItemIsUserTristate = 256 8768: }; 8768: typedef QFlags ItemFlags; 8768: 8768: enum MatchFlag { 8768: MatchExactly = 0, 8768: MatchContains = 1, 8768: MatchStartsWith = 2, 8768: MatchEndsWith = 3, 8768: MatchRegExp = 4, 8768: MatchWildcard = 5, 8768: MatchFixedString = 8, 8768: MatchCaseSensitive = 16, 8768: MatchWrap = 32, 8768: MatchRecursive = 64 8768: }; 8768: typedef QFlags MatchFlags; 8768: 8768: typedef void * HANDLE; 8768: 8768: 8768: 8768: 8768: enum WindowModality { 8768: NonModal, 8768: WindowModal, 8768: ApplicationModal 8768: }; 8768: 8768: enum TextInteractionFlag { 8768: NoTextInteraction = 0, 8768: TextSelectableByMouse = 1, 8768: TextSelectableByKeyboard = 2, 8768: LinksAccessibleByMouse = 4, 8768: LinksAccessibleByKeyboard = 8, 8768: TextEditable = 16, 8768: 8768: TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable, 8768: TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard 8768: }; 8768: typedef QFlags TextInteractionFlags; 8768: 8768: enum EventPriority { 8768: HighEventPriority = 1, 8768: NormalEventPriority = 0, 8768: LowEventPriority = -1 8768: }; 8768: 8768: enum SizeHint { 8768: MinimumSize, 8768: PreferredSize, 8768: MaximumSize, 8768: MinimumDescent, 8768: NSizeHints 8768: }; 8768: 8768: enum WindowFrameSection { 8768: NoSection, 8768: LeftSection, 8768: TopLeftSection, 8768: TopSection, 8768: TopRightSection, 8768: RightSection, 8768: BottomRightSection, 8768: BottomSection, 8768: BottomLeftSection, 8768: TitleBarArea 8768: }; 8768: 8768: 8768: enum class Initialization { 8768: Uninitialized 8768: }; 8768: static constexpr __attribute__((__unused__)) Initialization Uninitialized = Initialization::Uninitialized; 8768: 8768: 8768: 8768: 8768: 8768: 8768: enum CoordinateSystem { 8768: DeviceCoordinates, 8768: LogicalCoordinates 8768: }; 8768: 8768: enum TouchPointState { 8768: TouchPointPressed = 0x01, 8768: TouchPointMoved = 0x02, 8768: TouchPointStationary = 0x04, 8768: TouchPointReleased = 0x08 8768: }; 8768: typedef QFlags TouchPointStates; 8768: 8768: 8768: enum GestureState 8768: { 8768: NoGesture, 8768: GestureStarted = 1, 8768: GestureUpdated = 2, 8768: GestureFinished = 3, 8768: GestureCanceled = 4 8768: }; 8768: 8768: enum GestureType 8768: { 8768: TapGesture = 1, 8768: TapAndHoldGesture = 2, 8768: PanGesture = 3, 8768: PinchGesture = 4, 8768: SwipeGesture = 5, 8768: 8768: CustomGesture = 0x0100, 8768: 8768: LastGestureType = ~0u 8768: }; 8768: 8768: enum GestureFlag 8768: { 8768: DontStartGestureOnChildren = 0x01, 8768: ReceivePartialGestures = 0x02, 8768: IgnoredGesturesPropagateToParent = 0x04 8768: }; 8768: typedef QFlags GestureFlags; 8768: 8768: enum NativeGestureType 8768: { 8768: BeginNativeGesture, 8768: EndNativeGesture, 8768: PanNativeGesture, 8768: ZoomNativeGesture, 8768: SmartZoomNativeGesture, 8768: RotateNativeGesture, 8768: SwipeNativeGesture 8768: }; 8768: 8768: 8768: 8768: enum NavigationMode 8768: { 8768: NavigationModeNone, 8768: NavigationModeKeypadTabOrder, 8768: NavigationModeKeypadDirectional, 8768: NavigationModeCursorAuto, 8768: NavigationModeCursorForceVisible 8768: }; 8768: 8768: enum CursorMoveStyle { 8768: LogicalMoveStyle, 8768: VisualMoveStyle 8768: }; 8768: 8768: enum TimerType { 8768: PreciseTimer, 8768: CoarseTimer, 8768: VeryCoarseTimer 8768: }; 8768: 8768: enum ScrollPhase { 8768: NoScrollPhase = 0, 8768: ScrollBegin, 8768: ScrollUpdate, 8768: ScrollEnd 8768: }; 8768: 8768: enum MouseEventSource { 8768: MouseEventNotSynthesized, 8768: MouseEventSynthesizedBySystem, 8768: MouseEventSynthesizedByQt, 8768: MouseEventSynthesizedByApplication 8768: }; 8768: 8768: enum MouseEventFlag { 8768: MouseEventCreatedDoubleClick = 0x01, 8768: MouseEventFlagMask = 0xFF 8768: }; 8768: typedef QFlags MouseEventFlags; 8768: 8768: enum ChecksumType { 8768: ChecksumIso3309, 8768: ChecksumItuV41 8768: }; 8768: 8768: 8768: 8768: inline const QMetaObject *qt_getEnumMetaObject(ScrollBarPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollBarPolicy) noexcept { return "ScrollBarPolicy"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(FocusPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusPolicy) noexcept { return "FocusPolicy"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ContextMenuPolicy) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ContextMenuPolicy) noexcept { return "ContextMenuPolicy"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ArrowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ArrowType) noexcept { return "ArrowType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ToolButtonStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolButtonStyle) noexcept { return "ToolButtonStyle"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(PenStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenStyle) noexcept { return "PenStyle"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(PenCapStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenCapStyle) noexcept { return "PenCapStyle"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(PenJoinStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(PenJoinStyle) noexcept { return "PenJoinStyle"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(BrushStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BrushStyle) noexcept { return "BrushStyle"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(FillRule) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FillRule) noexcept { return "FillRule"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(MaskMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MaskMode) noexcept { return "MaskMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(BGMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(BGMode) noexcept { return "BGMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ClipOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ClipOperation) noexcept { return "ClipOperation"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(SizeMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeMode) noexcept { return "SizeMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Axis) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Axis) noexcept { return "Axis"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Corner) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Corner) noexcept { return "Corner"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Edge) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edge) noexcept { return "Edge"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(LayoutDirection) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(LayoutDirection) noexcept { return "LayoutDirection"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(SizeHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SizeHint) noexcept { return "SizeHint"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Orientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientation) noexcept { return "Orientation"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(DropAction) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropAction) noexcept { return "DropAction"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Alignment) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Alignment) noexcept { return "Alignment"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TextFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFlag) noexcept { return "TextFlag"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Orientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Orientations) noexcept { return "Orientations"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(DropActions) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DropActions) noexcept { return "DropActions"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Edges) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Edges) noexcept { return "Edges"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetAreas) noexcept { return "DockWidgetAreas"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ToolBarAreas) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarAreas) noexcept { return "ToolBarAreas"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(DockWidgetArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DockWidgetArea) noexcept { return "DockWidgetArea"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ToolBarArea) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ToolBarArea) noexcept { return "ToolBarArea"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TextFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextFormat) noexcept { return "TextFormat"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TextElideMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextElideMode) noexcept { return "TextElideMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(DateFormat) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DateFormat) noexcept { return "DateFormat"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TimeSpec) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimeSpec) noexcept { return "TimeSpec"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(DayOfWeek) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(DayOfWeek) noexcept { return "DayOfWeek"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(CursorShape) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorShape) noexcept { return "CursorShape"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(GlobalColor) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GlobalColor) noexcept { return "GlobalColor"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(AspectRatioMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(AspectRatioMode) noexcept { return "AspectRatioMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TransformationMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TransformationMode) noexcept { return "TransformationMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ImageConversionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ImageConversionFlags) noexcept { return "ImageConversionFlags"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(Key) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(Key) noexcept { return "Key"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ShortcutContext) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ShortcutContext) noexcept { return "ShortcutContext"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlag) noexcept { return "TextInteractionFlag"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TextInteractionFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TextInteractionFlags) noexcept { return "TextInteractionFlags"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionMode) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionMode) noexcept { return "ItemSelectionMode"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ItemSelectionOperation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemSelectionOperation) noexcept { return "ItemSelectionOperation"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ItemFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemFlags) noexcept { return "ItemFlags"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(CheckState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CheckState) noexcept { return "CheckState"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ItemDataRole) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ItemDataRole) noexcept { return "ItemDataRole"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(SortOrder) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(SortOrder) noexcept { return "SortOrder"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(CaseSensitivity) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CaseSensitivity) noexcept { return "CaseSensitivity"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(MatchFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MatchFlags) noexcept { return "MatchFlags"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(KeyboardModifiers) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(KeyboardModifiers) noexcept { return "KeyboardModifiers"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(MouseButtons) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseButtons) noexcept { return "MouseButtons"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(WindowType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowType) noexcept { return "WindowType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(WindowState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowState) noexcept { return "WindowState"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(WindowModality) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowModality) noexcept { return "WindowModality"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(WidgetAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WidgetAttribute) noexcept { return "WidgetAttribute"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ApplicationAttribute) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationAttribute) noexcept { return "ApplicationAttribute"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(WindowFlags) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowFlags) noexcept { return "WindowFlags"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(WindowStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(WindowStates) noexcept { return "WindowStates"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(FocusReason) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(FocusReason) noexcept { return "FocusReason"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHint) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHint) noexcept { return "InputMethodHint"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQuery) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQuery) noexcept { return "InputMethodQuery"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(InputMethodHints) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodHints) noexcept { return "InputMethodHints"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(EnterKeyType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(EnterKeyType) noexcept { return "EnterKeyType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(InputMethodQueries) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(InputMethodQueries) noexcept { return "InputMethodQueries"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TouchPointStates) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TouchPointStates) noexcept { return "TouchPointStates"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientation) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientation) noexcept { return "ScreenOrientation"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ScreenOrientations) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScreenOrientations) noexcept { return "ScreenOrientations"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ConnectionType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ConnectionType) noexcept { return "ConnectionType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ApplicationState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ApplicationState) noexcept { return "ApplicationState"; } 8768: 8768: inline const QMetaObject *qt_getEnumMetaObject(GestureState) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureState) noexcept { return "GestureState"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(GestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(GestureType) noexcept { return "GestureType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(NativeGestureType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(NativeGestureType) noexcept { return "NativeGestureType"; } 8768: 8768: inline const QMetaObject *qt_getEnumMetaObject(CursorMoveStyle) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(CursorMoveStyle) noexcept { return "CursorMoveStyle"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TimerType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TimerType) noexcept { return "TimerType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ScrollPhase) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ScrollPhase) noexcept { return "ScrollPhase"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(MouseEventSource) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventSource) noexcept { return "MouseEventSource"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(MouseEventFlag) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(MouseEventFlag) noexcept { return "MouseEventFlag"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(ChecksumType) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(ChecksumType) noexcept { return "ChecksumType"; } 8768: inline const QMetaObject *qt_getEnumMetaObject(TabFocusBehavior) noexcept { return qt_getQtMetaObject(); } inline constexpr const char *qt_getEnumName(TabFocusBehavior) noexcept { return "TabFocusBehavior"; } 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 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); } 8768: 8768: 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); } 8768: 8768: 8768: typedef bool (*qInternalCallback)(void **); 8768: 8768: class __attribute__((visibility("default"))) QInternal { 8768: public: 8768: enum PaintDeviceFlags { 8768: UnknownDevice = 0x00, 8768: Widget = 0x01, 8768: Pixmap = 0x02, 8768: Image = 0x03, 8768: Printer = 0x04, 8768: Picture = 0x05, 8768: Pbuffer = 0x06, 8768: FramebufferObject = 0x07, 8768: CustomRaster = 0x08, 8768: MacQuartz = 0x09, 8768: PaintBuffer = 0x0a, 8768: OpenGL = 0x0b 8768: }; 8768: enum RelayoutType { 8768: RelayoutNormal, 8768: RelayoutDragging, 8768: RelayoutDropped 8768: }; 8768: 8768: enum DockPosition { 8768: LeftDock, 8768: RightDock, 8768: TopDock, 8768: BottomDock, 8768: DockCount 8768: }; 8768: 8768: enum Callback { 8768: EventNotifyCallback, 8768: LastCallback 8768: }; 8768: static bool registerCallback(Callback, qInternalCallback); 8768: static bool unregisterCallback(Callback, qInternalCallback); 8768: static bool activateCallbacks(Callback, void **); 8768: }; 8768: 8768: 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8768: # 1 "/usr/include/string.h" 1 3 4 8768: # 26 "/usr/include/string.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8768: # 27 "/usr/include/string.h" 2 3 4 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 34 "/usr/include/string.h" 2 3 4 8768: # 42 "/usr/include/string.h" 3 4 8768: extern void *memcpy (void *__restrict __dest, const void *__restrict __src, 8768: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern void *memmove (void *__dest, const void *__src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: 8768: extern void *memccpy (void *__restrict __dest, const void *__restrict __src, 8768: int __c, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int memcmp (const void *__s1, const void *__s2, size_t __n) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern "C++" 8768: { 8768: extern void *memchr (void *__s, int __c, size_t __n) 8768: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern const void *memchr (const void *__s, int __c, size_t __n) 8768: throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void * 8768: memchr (void *__s, int __c, size_t __n) throw () 8768: { 8768: return __builtin_memchr (__s, __c, __n); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void * 8768: memchr (const void *__s, int __c, size_t __n) throw () 8768: { 8768: return __builtin_memchr (__s, __c, __n); 8768: } 8768: 8768: } 8768: # 98 "/usr/include/string.h" 3 4 8768: extern "C++" void *rawmemchr (void *__s, int __c) 8768: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern "C++" const void *rawmemchr (const void *__s, int __c) 8768: throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" void *memrchr (void *__s, int __c, size_t __n) 8768: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) 8768: throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: # 121 "/usr/include/string.h" 3 4 8768: extern char *strcpy (char *__restrict __dest, const char *__restrict __src) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern char *strncpy (char *__restrict __dest, 8768: const char *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern char *strcat (char *__restrict __dest, const char *__restrict __src) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern char *strncat (char *__restrict __dest, const char *__restrict __src, 8768: size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int strcmp (const char *__s1, const char *__s2) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern int strncmp (const char *__s1, const char *__s2, size_t __n) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int strcoll (const char *__s1, const char *__s2) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern size_t strxfrm (char *__restrict __dest, 8768: const char *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8768: 8768: 8768: extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, 8768: locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); 8768: 8768: 8768: 8768: 8768: 8768: extern char *strdup (const char *__s) 8768: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern char *strndup (const char *__string, size_t __n) 8768: throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); 8768: # 203 "/usr/include/string.h" 3 4 8768: extern "C++" 8768: { 8768: extern char *strchr (char *__s, int __c) 8768: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern const char *strchr (const char *__s, int __c) 8768: throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8768: strchr (char *__s, int __c) throw () 8768: { 8768: return __builtin_strchr (__s, __c); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8768: strchr (const char *__s, int __c) throw () 8768: { 8768: return __builtin_strchr (__s, __c); 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" 8768: { 8768: extern char *strrchr (char *__s, int __c) 8768: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern const char *strrchr (const char *__s, int __c) 8768: throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8768: strrchr (char *__s, int __c) throw () 8768: { 8768: return __builtin_strrchr (__s, __c); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8768: strrchr (const char *__s, int __c) throw () 8768: { 8768: return __builtin_strrchr (__s, __c); 8768: } 8768: 8768: } 8768: # 260 "/usr/include/string.h" 3 4 8768: extern "C++" char *strchrnul (char *__s, int __c) 8768: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern "C++" const char *strchrnul (const char *__s, int __c) 8768: throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: # 272 "/usr/include/string.h" 3 4 8768: extern size_t strcspn (const char *__s, const char *__reject) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern size_t strspn (const char *__s, const char *__accept) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern "C++" 8768: { 8768: extern char *strpbrk (char *__s, const char *__accept) 8768: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: extern const char *strpbrk (const char *__s, const char *__accept) 8768: throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8768: strpbrk (char *__s, const char *__accept) throw () 8768: { 8768: return __builtin_strpbrk (__s, __accept); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8768: strpbrk (const char *__s, const char *__accept) throw () 8768: { 8768: return __builtin_strpbrk (__s, __accept); 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" 8768: { 8768: extern char *strstr (char *__haystack, const char *__needle) 8768: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: extern const char *strstr (const char *__haystack, const char *__needle) 8768: throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8768: strstr (char *__haystack, const char *__needle) throw () 8768: { 8768: return __builtin_strstr (__haystack, __needle); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8768: strstr (const char *__haystack, const char *__needle) throw () 8768: { 8768: return __builtin_strstr (__haystack, __needle); 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern char *strtok (char *__restrict __s, const char *__restrict __delim) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: 8768: extern char *__strtok_r (char *__restrict __s, 8768: const char *__restrict __delim, 8768: char **__restrict __save_ptr) 8768: throw () __attribute__ ((__nonnull__ (2, 3))); 8768: 8768: extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, 8768: char **__restrict __save_ptr) 8768: throw () __attribute__ ((__nonnull__ (2, 3))); 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" char *strcasestr (char *__haystack, const char *__needle) 8768: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: extern "C++" const char *strcasestr (const char *__haystack, 8768: const char *__needle) 8768: throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: # 368 "/usr/include/string.h" 3 4 8768: extern void *memmem (const void *__haystack, size_t __haystacklen, 8768: const void *__needle, size_t __needlelen) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: 8768: extern void *__mempcpy (void *__restrict __dest, 8768: const void *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: extern void *mempcpy (void *__restrict __dest, 8768: const void *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern size_t strlen (const char *__s) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: extern size_t strnlen (const char *__string, size_t __maxlen) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: extern char *strerror (int __errnum) throw (); 8768: # 420 "/usr/include/string.h" 3 4 8768: extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) 8768: throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern char *strerror_l (int __errnum, locale_t __l) throw (); 8768: 8768: 8768: 8768: # 1 "/usr/include/strings.h" 1 3 4 8768: # 23 "/usr/include/strings.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 24 "/usr/include/strings.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: extern int bcmp (const void *__s1, const void *__s2, size_t __n) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern void bcopy (const void *__src, void *__dest, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern "C++" 8768: { 8768: extern char *index (char *__s, int __c) 8768: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern const char *index (const char *__s, int __c) 8768: throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8768: index (char *__s, int __c) throw () 8768: { 8768: return __builtin_index (__s, __c); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8768: index (const char *__s, int __c) throw () 8768: { 8768: return __builtin_index (__s, __c); 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" 8768: { 8768: extern char *rindex (char *__s, int __c) 8768: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: extern const char *rindex (const char *__s, int __c) 8768: throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * 8768: rindex (char *__s, int __c) throw () 8768: { 8768: return __builtin_rindex (__s, __c); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char * 8768: rindex (const char *__s, int __c) throw () 8768: { 8768: return __builtin_rindex (__s, __c); 8768: } 8768: 8768: } 8768: # 104 "/usr/include/strings.h" 3 4 8768: extern int ffs (int __i) throw () __attribute__ ((__const__)); 8768: 8768: 8768: 8768: 8768: 8768: extern int ffsl (long int __l) throw () __attribute__ ((__const__)); 8768: __extension__ extern int ffsll (long long int __ll) 8768: throw () __attribute__ ((__const__)); 8768: 8768: 8768: 8768: extern int strcasecmp (const char *__s1, const char *__s2) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); 8768: 8768: 8768: 8768: extern int strncasecmp_l (const char *__s1, const char *__s2, 8768: size_t __n, locale_t __loc) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" 1 3 4 8768: # 22 "/usr/include/x86_64-linux-gnu/bits/strings_fortified.h" 3 4 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8768: __attribute__ ((__leaf__)) bcopy (const void *__src, void *__dest, size_t __len) throw () 8768: { 8768: (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8768: __attribute__ ((__leaf__)) bzero (void *__dest, size_t __len) throw () 8768: { 8768: (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); 8768: } 8768: # 145 "/usr/include/strings.h" 2 3 4 8768: # 432 "/usr/include/string.h" 2 3 4 8768: 8768: 8768: 8768: extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern char *strsep (char **__restrict __stringp, 8768: const char *__restrict __delim) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern char *strsignal (int __sig) throw (); 8768: 8768: 8768: extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern char *__stpncpy (char *__restrict __dest, 8768: const char *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: extern char *stpncpy (char *__restrict __dest, 8768: const char *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern int strverscmp (const char *__s1, const char *__s2) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" char *basename (char *__filename) 8768: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8768: extern "C++" const char *basename (const char *__filename) 8768: throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); 8768: # 494 "/usr/include/string.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 1 3 4 8768: # 30 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8768: __attribute__ ((__leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8768: 8768: { 8768: return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8768: __attribute__ ((__leaf__)) memmove (void *__dest, const void *__src, size_t __len) throw () 8768: { 8768: return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8768: __attribute__ ((__leaf__)) mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) throw () 8768: 8768: { 8768: return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); 8768: } 8768: # 58 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * 8768: __attribute__ ((__leaf__)) memset (void *__dest, int __ch, size_t __len) throw () 8768: { 8768: # 71 "/usr/include/x86_64-linux-gnu/bits/string_fortified.h" 3 4 8768: return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); 8768: } 8768: 8768: 8768: 8768: 8768: void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void 8768: __attribute__ ((__leaf__)) explicit_bzero (void *__dest, size_t __len) throw () 8768: { 8768: __explicit_bzero_chk (__dest, __len, __builtin_object_size (__dest, 0)); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8768: __attribute__ ((__leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) throw () 8768: { 8768: return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8768: __attribute__ ((__leaf__)) stpcpy (char *__restrict __dest, const char *__restrict __src) throw () 8768: { 8768: return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8768: } 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8768: __attribute__ ((__leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8768: 8768: { 8768: return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8768: } 8768: 8768: 8768: extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, 8768: size_t __destlen) throw (); 8768: extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) throw () __asm__ ("" "stpncpy") 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8768: __attribute__ ((__leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) throw () 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 8768: && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2 > 1))) 8768: return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); 8768: return __stpncpy_alias (__dest, __src, __n); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8768: __attribute__ ((__leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) throw () 8768: { 8768: return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * 8768: __attribute__ ((__leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) throw () 8768: 8768: { 8768: return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); 8768: } 8768: # 495 "/usr/include/string.h" 2 3 4 8768: 8768: 8768: 8768: } 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 2 3 4 8768: 8768: 8768: 8768: struct __attribute__((visibility("default"))) QArrayData 8768: { 8768: QtPrivate::RefCount ref; 8768: int size; 8768: uint alloc : 31; 8768: uint capacityReserved : 1; 8768: 8768: qptrdiff offset; 8768: 8768: void *data() 8768: { 8768: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8768: ; 8768: return reinterpret_cast(this) + offset; 8768: } 8768: 8768: const void *data() const 8768: { 8768: do { } while ((false) && (size == 0 || offset < 0 || size_t(offset) >= sizeof(QArrayData))) 8768: ; 8768: return reinterpret_cast(this) + offset; 8768: } 8768: 8768: 8768: 8768: 8768: bool isMutable() const 8768: { 8768: return alloc != 0; 8768: } 8768: 8768: enum AllocationOption { 8768: CapacityReserved = 0x1, 8768: 8768: Unsharable = 0x2, 8768: 8768: RawData = 0x4, 8768: Grow = 0x8, 8768: 8768: Default = 0 8768: }; 8768: 8768: typedef QFlags AllocationOptions; 8768: 8768: size_t detachCapacity(size_t newSize) const 8768: { 8768: if (capacityReserved && newSize < alloc) 8768: return alloc; 8768: return newSize; 8768: } 8768: 8768: AllocationOptions detachFlags() const 8768: { 8768: AllocationOptions result; 8768: if (capacityReserved) 8768: result |= CapacityReserved; 8768: return result; 8768: } 8768: 8768: AllocationOptions cloneFlags() const 8768: { 8768: AllocationOptions result; 8768: if (capacityReserved) 8768: result |= CapacityReserved; 8768: return result; 8768: } 8768: 8768: [[nodiscard]] static QArrayData *allocate(size_t objectSize, size_t alignment, 8768: size_t capacity, AllocationOptions options = Default) noexcept; 8768: [[nodiscard]] static QArrayData *reallocateUnaligned(QArrayData *data, size_t objectSize, 8768: size_t newCapacity, AllocationOptions newOptions = Default) noexcept; 8768: static void deallocate(QArrayData *data, size_t objectSize, 8768: size_t alignment) noexcept; 8768: 8768: static const QArrayData shared_null[2]; 8768: static QArrayData *sharedNull() noexcept { return const_cast(shared_null); } 8768: }; 8768: 8768: 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); } 8768: 8768: template 8768: struct QTypedArrayData 8768: : QArrayData 8768: { 8768: 8768: class iterator { 8768: public: 8768: T *i; 8768: typedef std::random_access_iterator_tag iterator_category; 8768: typedef int difference_type; 8768: typedef T value_type; 8768: typedef T *pointer; 8768: typedef T &reference; 8768: 8768: inline iterator() : i(nullptr) {} 8768: inline iterator(T *n) : i(n) {} 8768: inline iterator(const iterator &o): i(o.i){} 8768: inline T &operator*() const { return *i; } 8768: inline T *operator->() const { return i; } 8768: inline T &operator[](int j) const { return *(i + j); } 8768: inline bool operator==(const iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const iterator &o) const { return i != o.i; } 8768: inline bool operator<(const iterator& other) const { return i < other.i; } 8768: inline bool operator<=(const iterator& other) const { return i <= other.i; } 8768: inline bool operator>(const iterator& other) const { return i > other.i; } 8768: inline bool operator>=(const iterator& other) const { return i >= other.i; } 8768: inline iterator &operator++() { ++i; return *this; } 8768: inline iterator operator++(int) { T *n = i; ++i; return n; } 8768: inline iterator &operator--() { i--; return *this; } 8768: inline iterator operator--(int) { T *n = i; i--; return n; } 8768: inline iterator &operator+=(int j) { i+=j; return *this; } 8768: inline iterator &operator-=(int j) { i-=j; return *this; } 8768: inline iterator operator+(int j) const { return iterator(i+j); } 8768: inline iterator operator-(int j) const { return iterator(i-j); } 8768: inline int operator-(iterator j) const { return i - j.i; } 8768: inline operator T*() const { return i; } 8768: }; 8768: friend class iterator; 8768: 8768: class const_iterator { 8768: public: 8768: const T *i; 8768: typedef std::random_access_iterator_tag iterator_category; 8768: typedef int difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: 8768: inline const_iterator() : i(nullptr) {} 8768: inline const_iterator(const T *n) : i(n) {} 8768: inline const_iterator(const const_iterator &o): i(o.i) {} 8768: inline explicit const_iterator(const iterator &o): i(o.i) {} 8768: inline const T &operator*() const { return *i; } 8768: inline const T *operator->() const { return i; } 8768: inline const T &operator[](int j) const { return *(i + j); } 8768: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8768: inline bool operator<(const const_iterator& other) const { return i < other.i; } 8768: inline bool operator<=(const const_iterator& other) const { return i <= other.i; } 8768: inline bool operator>(const const_iterator& other) const { return i > other.i; } 8768: inline bool operator>=(const const_iterator& other) const { return i >= other.i; } 8768: inline const_iterator &operator++() { ++i; return *this; } 8768: inline const_iterator operator++(int) { const T *n = i; ++i; return n; } 8768: inline const_iterator &operator--() { i--; return *this; } 8768: inline const_iterator operator--(int) { const T *n = i; i--; return n; } 8768: inline const_iterator &operator+=(int j) { i+=j; return *this; } 8768: inline const_iterator &operator-=(int j) { i-=j; return *this; } 8768: inline const_iterator operator+(int j) const { return const_iterator(i+j); } 8768: inline const_iterator operator-(int j) const { return const_iterator(i-j); } 8768: inline int operator-(const_iterator j) const { return i - j.i; } 8768: inline operator const T*() const { return i; } 8768: }; 8768: friend class const_iterator; 8768: 8768: 8768: 8768: 8768: 8768: T *data() { return static_cast(QArrayData::data()); } 8768: const T *data() const { return static_cast(QArrayData::data()); } 8768: 8768: iterator begin(iterator = iterator()) { return data(); } 8768: iterator end(iterator = iterator()) { return data() + size; } 8768: const_iterator begin(const_iterator = const_iterator()) const { return data(); } 8768: const_iterator end(const_iterator = const_iterator()) const { return data() + size; } 8768: const_iterator constBegin(const_iterator = const_iterator()) const { return data(); } 8768: const_iterator constEnd(const_iterator = const_iterator()) const { return data() + size; } 8768: 8768: class AlignmentDummy { QArrayData header; T data; }; 8768: 8768: [[nodiscard]] static QTypedArrayData *allocate(size_t capacity, 8768: AllocationOptions options = Default) 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: return static_cast(QArrayData::allocate(sizeof(T), 8768: alignof(AlignmentDummy), capacity, options)); 8768: } 8768: 8768: static QTypedArrayData *reallocateUnaligned(QTypedArrayData *data, size_t capacity, 8768: AllocationOptions options = Default) 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: return static_cast(QArrayData::reallocateUnaligned(data, sizeof(T), 8768: capacity, options)); 8768: } 8768: 8768: static void deallocate(QArrayData *data) 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy)); 8768: } 8768: 8768: static QTypedArrayData *fromRawData(const T *data, size_t n, 8768: AllocationOptions options = Default) 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: QTypedArrayData *result = allocate(0, options | RawData); 8768: if (result) { 8768: do { } while ((false) && (!result->ref.isShared())); 8768: 8768: result->offset = reinterpret_cast(data) 8768: - reinterpret_cast(result); 8768: result->size = int(n); 8768: } 8768: return result; 8768: } 8768: 8768: static QTypedArrayData *sharedNull() noexcept 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: return static_cast(QArrayData::sharedNull()); 8768: } 8768: 8768: static QTypedArrayData *sharedEmpty() 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: return allocate( 0); 8768: } 8768: 8768: 8768: static QTypedArrayData *unsharableEmpty() 8768: { 8768: static_assert(bool(sizeof(QTypedArrayData) == sizeof(QArrayData)), "sizeof(QTypedArrayData) == sizeof(QArrayData)"); 8768: return allocate( 0, Unsharable); 8768: } 8768: 8768: }; 8768: 8768: template 8768: struct QStaticArrayData 8768: { 8768: QArrayData header; 8768: T data[N]; 8768: }; 8768: 8768: 8768: template 8768: struct QArrayDataPointerRef 8768: { 8768: QTypedArrayData *ptr; 8768: }; 8768: # 369 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h" 3 4 8768: namespace QtPrivate { 8768: struct __attribute__((visibility("default"))) QContainerImplHelper 8768: { 8768: enum CutResult { Null, Empty, Full, Subset }; 8768: static CutResult mid(int originalLength, int *position, int *length); 8768: }; 8768: } 8768: 8768: 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: 8768: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8768: # 36 "/usr/include/c++/8/stdlib.h" 3 4 8768: # 1 "/usr/include/c++/8/cstdlib" 1 3 4 8768: # 39 "/usr/include/c++/8/cstdlib" 3 4 8768: 8768: # 40 "/usr/include/c++/8/cstdlib" 3 8768: # 37 "/usr/include/c++/8/stdlib.h" 2 3 4 8768: 8768: using std::abort; 8768: using std::atexit; 8768: using std::exit; 8768: 8768: 8768: using std::at_quick_exit; 8768: 8768: 8768: using std::quick_exit; 8768: 8768: 8768: 8768: 8768: using std::div_t; 8768: using std::ldiv_t; 8768: 8768: using std::abs; 8768: using std::atof; 8768: using std::atoi; 8768: using std::atol; 8768: using std::bsearch; 8768: using std::calloc; 8768: using std::div; 8768: using std::free; 8768: using std::getenv; 8768: using std::labs; 8768: using std::ldiv; 8768: using std::malloc; 8768: 8768: using std::mblen; 8768: using std::mbstowcs; 8768: using std::mbtowc; 8768: 8768: using std::qsort; 8768: using std::rand; 8768: using std::realloc; 8768: using std::srand; 8768: using std::strtod; 8768: using std::strtol; 8768: using std::strtoul; 8768: using std::system; 8768: 8768: using std::wcstombs; 8768: using std::wctomb; 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdarg.h" 1 3 4 8768: # 40 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdarg.h" 3 4 8768: typedef __builtin_va_list __gnuc_va_list; 8768: # 99 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stdarg.h" 3 4 8768: typedef __gnuc_va_list va_list; 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: 8768: # 1 "/usr/include/c++/8/string" 1 3 4 8768: # 36 "/usr/include/c++/8/string" 3 4 8768: 8768: # 37 "/usr/include/c++/8/string" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stringfwd.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/stringfwd.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/stringfwd.h" 3 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct char_traits; 8768: 8768: template<> struct char_traits; 8768: 8768: 8768: template<> struct char_traits; 8768: 8768: 8768: 8768: 8768: template<> struct char_traits; 8768: template<> struct char_traits; 8768: 8768: 8768: namespace __cxx11 { 8768: 8768: template, 8768: typename _Alloc = allocator<_CharT> > 8768: class basic_string; 8768: 8768: 8768: typedef basic_string string; 8768: 8768: 8768: 8768: typedef basic_string wstring; 8768: 8768: 8768: 8768: 8768: 8768: typedef basic_string u16string; 8768: 8768: 8768: typedef basic_string u32string; 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: } 8768: # 40 "/usr/include/c++/8/string" 2 3 8768: # 1 "/usr/include/c++/8/bits/char_traits.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/char_traits.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/char_traits.h" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/postypes.h" 1 3 8768: # 38 "/usr/include/c++/8/bits/postypes.h" 3 8768: 8768: # 39 "/usr/include/c++/8/bits/postypes.h" 3 8768: 8768: # 1 "/usr/include/c++/8/cwchar" 1 3 8768: # 39 "/usr/include/c++/8/cwchar" 3 8768: 8768: # 40 "/usr/include/c++/8/cwchar" 3 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/wchar.h" 1 3 4 8768: # 27 "/usr/include/wchar.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8768: # 28 "/usr/include/wchar.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 36 "/usr/include/wchar.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" 1 3 4 8768: # 20 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" 3 4 8768: typedef unsigned int wint_t; 8768: # 42 "/usr/include/wchar.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" 1 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 8768: # 13 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 3 4 8768: typedef struct 8768: { 8768: int __count; 8768: union 8768: { 8768: unsigned int __wch; 8768: char __wchb[4]; 8768: } __value; 8768: } __mbstate_t; 8768: # 5 "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" 2 3 4 8768: 8768: typedef __mbstate_t mbstate_t; 8768: # 43 "/usr/include/wchar.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" 1 3 4 8768: 8768: 8768: 8768: struct _IO_FILE; 8768: typedef struct _IO_FILE __FILE; 8768: # 44 "/usr/include/wchar.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" 1 3 4 8768: 8768: 8768: 8768: struct _IO_FILE; 8768: 8768: 8768: typedef struct _IO_FILE FILE; 8768: # 47 "/usr/include/wchar.h" 2 3 4 8768: # 79 "/usr/include/wchar.h" 3 4 8768: extern "C" { 8768: 8768: 8768: 8768: struct tm; 8768: 8768: 8768: 8768: extern wchar_t *wcscpy (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern wchar_t *wcsncpy (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern wchar_t *wcscat (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern wchar_t *wcsncat (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, size_t __n) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8768: throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); 8768: 8768: 8768: extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, 8768: size_t __n) throw (); 8768: 8768: 8768: 8768: extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8768: locale_t __loc) throw (); 8768: 8768: extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, 8768: size_t __n, locale_t __loc) throw (); 8768: 8768: 8768: 8768: 8768: extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); 8768: 8768: 8768: 8768: extern size_t wcsxfrm (wchar_t *__restrict __s1, 8768: const wchar_t *__restrict __s2, size_t __n) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, 8768: locale_t __loc) throw (); 8768: 8768: 8768: 8768: 8768: extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, 8768: size_t __n, locale_t __loc) throw (); 8768: 8768: 8768: extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); 8768: 8768: 8768: 8768: 8768: extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) 8768: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8768: extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) 8768: throw () __asm ("wcschr") __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) 8768: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8768: extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) 8768: throw () __asm ("wcsrchr") __attribute__ ((__pure__)); 8768: # 181 "/usr/include/wchar.h" 3 4 8768: extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) 8768: throw () __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) 8768: throw () __attribute__ ((__pure__)); 8768: 8768: 8768: extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) 8768: throw () __attribute__ ((__pure__)); 8768: 8768: 8768: extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) 8768: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8768: extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, 8768: const wchar_t *__accept) 8768: throw () __asm ("wcspbrk") __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) 8768: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8768: extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, 8768: const wchar_t *__needle) 8768: throw () __asm ("wcsstr") __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wchar_t *wcstok (wchar_t *__restrict __s, 8768: const wchar_t *__restrict __delim, 8768: wchar_t **__restrict __ptr) throw (); 8768: 8768: 8768: extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) 8768: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8768: extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, 8768: const wchar_t *__needle) 8768: throw () __asm ("wcswcs") __attribute__ ((__pure__)); 8768: # 240 "/usr/include/wchar.h" 3 4 8768: extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) 8768: throw () __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: 8768: extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) 8768: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8768: extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, 8768: size_t __n) 8768: throw () __asm ("wmemchr") __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) 8768: throw () __attribute__ ((__pure__)); 8768: 8768: 8768: extern wchar_t *wmemcpy (wchar_t *__restrict __s1, 8768: const wchar_t *__restrict __s2, size_t __n) throw (); 8768: 8768: 8768: 8768: extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) 8768: throw (); 8768: 8768: 8768: extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); 8768: 8768: 8768: 8768: 8768: extern wchar_t *wmempcpy (wchar_t *__restrict __s1, 8768: const wchar_t *__restrict __s2, size_t __n) 8768: throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t btowc (int __c) throw (); 8768: 8768: 8768: 8768: extern int wctob (wint_t __c) throw (); 8768: 8768: 8768: 8768: extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); 8768: 8768: 8768: 8768: extern size_t mbrtowc (wchar_t *__restrict __pwc, 8768: const char *__restrict __s, size_t __n, 8768: mbstate_t *__restrict __p) throw (); 8768: 8768: 8768: extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, 8768: mbstate_t *__restrict __ps) throw (); 8768: 8768: 8768: extern size_t __mbrlen (const char *__restrict __s, size_t __n, 8768: mbstate_t *__restrict __ps) throw (); 8768: extern size_t mbrlen (const char *__restrict __s, size_t __n, 8768: mbstate_t *__restrict __ps) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t __btowc_alias (int __c) __asm ("btowc"); 8768: extern __inline __attribute__ ((__gnu_inline__)) wint_t 8768: __attribute__ ((__leaf__)) btowc (int __c) throw () 8768: { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' 8768: ? (wint_t) __c : __btowc_alias (__c)); } 8768: 8768: extern int __wctob_alias (wint_t __c) __asm ("wctob"); 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: __attribute__ ((__leaf__)) wctob (wint_t __wc) throw () 8768: { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' 8768: ? (int) __wc : __wctob_alias (__wc)); } 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) size_t 8768: __attribute__ ((__leaf__)) mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () 8768: 8768: { return (__ps != __null 8768: ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } 8768: 8768: 8768: 8768: 8768: extern size_t mbsrtowcs (wchar_t *__restrict __dst, 8768: const char **__restrict __src, size_t __len, 8768: mbstate_t *__restrict __ps) throw (); 8768: 8768: 8768: 8768: extern size_t wcsrtombs (char *__restrict __dst, 8768: const wchar_t **__restrict __src, size_t __len, 8768: mbstate_t *__restrict __ps) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern size_t mbsnrtowcs (wchar_t *__restrict __dst, 8768: const char **__restrict __src, size_t __nmc, 8768: size_t __len, mbstate_t *__restrict __ps) throw (); 8768: 8768: 8768: 8768: extern size_t wcsnrtombs (char *__restrict __dst, 8768: const wchar_t **__restrict __src, 8768: size_t __nwc, size_t __len, 8768: mbstate_t *__restrict __ps) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int wcwidth (wchar_t __c) throw (); 8768: 8768: 8768: 8768: extern int wcswidth (const wchar_t *__s, size_t __n) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern double wcstod (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr) throw (); 8768: 8768: 8768: 8768: extern float wcstof (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr) throw (); 8768: extern long double wcstold (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr) throw (); 8768: 8768: 8768: 8768: 8768: extern _Float128 wcstof128 (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern long int wcstol (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, int __base) throw (); 8768: 8768: 8768: 8768: extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, int __base) 8768: throw (); 8768: 8768: 8768: 8768: 8768: __extension__ 8768: extern long long int wcstoll (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, int __base) 8768: throw (); 8768: 8768: 8768: 8768: __extension__ 8768: extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: int __base) throw (); 8768: 8768: 8768: 8768: 8768: 8768: __extension__ 8768: extern long long int wcstoq (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, int __base) 8768: throw (); 8768: 8768: 8768: 8768: __extension__ 8768: extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: int __base) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern long int wcstol_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, int __base, 8768: locale_t __loc) throw (); 8768: 8768: extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: int __base, locale_t __loc) throw (); 8768: 8768: __extension__ 8768: extern long long int wcstoll_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: int __base, locale_t __loc) throw (); 8768: 8768: __extension__ 8768: extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: int __base, locale_t __loc) 8768: throw (); 8768: 8768: extern double wcstod_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, locale_t __loc) 8768: throw (); 8768: 8768: extern float wcstof_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, locale_t __loc) 8768: throw (); 8768: 8768: extern long double wcstold_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: locale_t __loc) throw (); 8768: 8768: 8768: extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, 8768: wchar_t **__restrict __endptr, 8768: locale_t __loc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wchar_t *wcpcpy (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src) throw (); 8768: 8768: 8768: 8768: extern wchar_t *wcpncpy (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, size_t __n) 8768: throw (); 8768: # 500 "/usr/include/wchar.h" 3 4 8768: extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int fwide (__FILE *__fp, int __mode) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fwprintf (__FILE *__restrict __stream, 8768: const wchar_t *__restrict __format, ...) 8768: ; 8768: 8768: 8768: 8768: 8768: extern int wprintf (const wchar_t *__restrict __format, ...) 8768: ; 8768: 8768: extern int swprintf (wchar_t *__restrict __s, size_t __n, 8768: const wchar_t *__restrict __format, ...) 8768: throw () ; 8768: 8768: 8768: 8768: 8768: 8768: extern int vfwprintf (__FILE *__restrict __s, 8768: const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: ; 8768: 8768: 8768: 8768: 8768: extern int vwprintf (const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: ; 8768: 8768: 8768: extern int vswprintf (wchar_t *__restrict __s, size_t __n, 8768: const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: throw () ; 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fwscanf (__FILE *__restrict __stream, 8768: const wchar_t *__restrict __format, ...) 8768: ; 8768: 8768: 8768: 8768: 8768: extern int wscanf (const wchar_t *__restrict __format, ...) 8768: ; 8768: 8768: extern int swscanf (const wchar_t *__restrict __s, 8768: const wchar_t *__restrict __format, ...) 8768: throw () ; 8768: # 606 "/usr/include/wchar.h" 3 4 8768: extern int vfwscanf (__FILE *__restrict __s, 8768: const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: ; 8768: 8768: 8768: 8768: 8768: extern int vwscanf (const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: ; 8768: 8768: extern int vswscanf (const wchar_t *__restrict __s, 8768: const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: throw () ; 8768: # 660 "/usr/include/wchar.h" 3 4 8768: extern wint_t fgetwc (__FILE *__stream); 8768: extern wint_t getwc (__FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t getwchar (void); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t fputwc (wchar_t __wc, __FILE *__stream); 8768: extern wint_t putwc (wchar_t __wc, __FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t putwchar (wchar_t __wc); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, 8768: __FILE *__restrict __stream); 8768: 8768: 8768: 8768: 8768: 8768: extern int fputws (const wchar_t *__restrict __ws, 8768: __FILE *__restrict __stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t ungetwc (wint_t __wc, __FILE *__stream); 8768: # 715 "/usr/include/wchar.h" 3 4 8768: extern wint_t getwc_unlocked (__FILE *__stream); 8768: extern wint_t getwchar_unlocked (void); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t fgetwc_unlocked (__FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); 8768: # 741 "/usr/include/wchar.h" 3 4 8768: extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); 8768: extern wint_t putwchar_unlocked (wchar_t __wc); 8768: # 751 "/usr/include/wchar.h" 3 4 8768: extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, 8768: __FILE *__restrict __stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fputws_unlocked (const wchar_t *__restrict __ws, 8768: __FILE *__restrict __stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, 8768: const wchar_t *__restrict __format, 8768: const struct tm *__restrict __tp) throw (); 8768: 8768: 8768: 8768: 8768: extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, 8768: const wchar_t *__restrict __format, 8768: const struct tm *__restrict __tp, 8768: locale_t __loc) throw (); 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 1 3 4 8768: # 24 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 3 4 8768: extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, 8768: const wchar_t *__restrict __s2, size_t __n, 8768: size_t __ns1) throw (); 8768: extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy") 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8768: 8768: { 8768: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n)) 8768: return __wmemcpy_chk (__s1, __s2, __n, 8768: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8768: 8768: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8768: return __wmemcpy_chk_warn (__s1, __s2, __n, 8768: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8768: } 8768: return __wmemcpy_alias (__s1, __s2, __n); 8768: } 8768: 8768: 8768: extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2, 8768: size_t __n, size_t __ns1) throw (); 8768: extern wchar_t *__wmemmove_alias (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove") 8768: 8768: ; 8768: extern wchar_t *__wmemmove_chk_warn (wchar_t *__s1, const wchar_t *__s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") 8768: 8768: 8768: __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) 37: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8737: "Adele" 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8737: "result.value()" 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8737: "QStringLiteral(\"Adele\")" 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: , "/<>/templates/tests/testgenerictypes.cpp", 783)) return;} while (false) 8737: # 783 "/<>/templates/tests/testgenerictypes.cpp" 8737: ; 8737: 8737: delete p; 8737: } 8737: 8737: 8737: # 788 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); app.setAttribute(Qt::AA_Use96Dpi, true); 8737: # 788 "/<>/templates/tests/testgenerictypes.cpp" 8737: TestGenericTypes 8737: # 788 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: tc; QTest::setMainSourcePath("/<>/templates/tests/testgenerictypes.cpp", 8737: # 788 "/<>/templates/tests/testgenerictypes.cpp" 8737: "/<>/obj-x86_64-linux-gnu" 8737: # 788 "/<>/templates/tests/testgenerictypes.cpp" 3 4 8737: ); return QTest::qExec(&tc, argc, argv); } 8737: # 1 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 1 8737: # 19 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 8737: 8737: # 20 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: #pragma GCC diagnostic push 8737: # 20 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 8737: 8737: # 21 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8737: # 21 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 8737: 8737: # 22 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: struct qt_meta_stringdata_TestGenericTypes_t { 8737: QByteArrayData data[14]; 8737: char stringdata0[307]; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: static const qt_meta_stringdata_TestGenericTypes_t qt_meta_stringdata_TestGenericTypes = { 8737: { 8737: 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 16 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 0 - 0 * sizeof(QByteArrayData)) 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 12 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 17 - 1 * sizeof(QByteArrayData)) 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 0 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 30 - 2 * sizeof(QByteArrayData)) 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 20 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 31 - 3 * sizeof(QByteArrayData)) 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 36 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 31 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 52 - 4 * sizeof(QByteArrayData)) 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 32 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 84 - 5 * sizeof(QByteArrayData)) 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 38 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 28 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 117 - 6 * sizeof(QByteArrayData)) 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 39 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 29 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 146 - 7 * sizeof(QByteArrayData)) 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 40 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 17 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 176 - 8 * sizeof(QByteArrayData)) 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 41 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 27 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 194 - 9 * sizeof(QByteArrayData)) 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 42 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 20 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 222 - 10 * sizeof(QByteArrayData)) 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 43 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 24 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 243 - 11 * sizeof(QByteArrayData)) 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 44 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 16 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 268 - 12 * sizeof(QByteArrayData)) 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 45 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 21 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_TestGenericTypes_t 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 285 - 13 * sizeof(QByteArrayData)) 8737: # 46 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: 8737: 8737: # 48 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: }, 8737: "TestGenericTypes\0initTestCase\0\0" 8737: "testGenericClassType\0" 8737: "testSequentialContainer_Variant\0" 8737: "testAssociativeContainer_Variant\0" 8737: "testSequentialContainer_Type\0" 8737: "testAssociativeContainer_Type\0" 8737: "testSharedPointer\0testThirdPartySharedPointer\0" 8737: "testNestedContainers\0testCustomQObjectDerived\0" 8737: "testUnregistered\0testPointerNonQObject" 8737: }; 8737: 8737: 8737: static const uint qt_meta_data_TestGenericTypes[] = { 8737: 8737: 8737: 7, 8737: 0, 8737: 0, 0, 8737: 12, 14, 8737: 0, 0, 8737: 0, 0, 8737: 0, 0, 8737: 0, 8737: 0, 8737: 8737: 8737: 1, 0, 74, 2, 0x08 , 8737: 3, 0, 75, 2, 0x08 , 8737: 4, 0, 76, 2, 0x08 , 8737: 5, 0, 77, 2, 0x08 , 8737: 6, 0, 78, 2, 0x08 , 8737: 7, 0, 79, 2, 0x08 , 8737: 8, 0, 80, 2, 0x08 , 8737: 9, 0, 81, 2, 0x08 , 8737: 10, 0, 82, 2, 0x08 , 8737: 11, 0, 83, 2, 0x08 , 8737: 12, 0, 84, 2, 0x08 , 8737: 13, 0, 85, 2, 0x08 , 8737: 8737: 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: QMetaType::Void, 8737: 8737: 0 8737: }; 8737: 8737: void TestGenericTypes::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: if (_c == QMetaObject::InvokeMetaMethod) { 8737: TestGenericTypes *_t = static_cast(_o); 8737: 8737: # 109 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 109 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _t 8737: # 109 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: 8737: # 110 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: switch (_id) { 8737: case 0: _t->initTestCase(); break; 8737: case 1: _t->testGenericClassType(); break; 8737: case 2: _t->testSequentialContainer_Variant(); break; 8737: case 3: _t->testAssociativeContainer_Variant(); break; 8737: case 4: _t->testSequentialContainer_Type(); break; 8737: case 5: _t->testAssociativeContainer_Type(); break; 8737: case 6: _t->testSharedPointer(); break; 8737: case 7: _t->testThirdPartySharedPointer(); break; 8737: case 8: _t->testNestedContainers(); break; 8737: case 9: _t->testCustomQObjectDerived(); break; 8737: case 10: _t->testUnregistered(); break; 8737: case 11: _t->testPointerNonQObject(); break; 8737: default: ; 8737: } 8737: } 8737: 8737: # 126 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 126 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _a 8737: # 126 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 126 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: } 8737: 8737: const QMetaObject TestGenericTypes::staticMetaObject = { 8737: { &CoverageObject::staticMetaObject, qt_meta_stringdata_TestGenericTypes.data, 8737: qt_meta_data_TestGenericTypes, qt_static_metacall, nullptr, nullptr} 8737: }; 8737: 8737: 8737: const QMetaObject *TestGenericTypes::metaObject() const 8737: { 8737: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8737: } 8737: 8737: void *TestGenericTypes::qt_metacast(const char *_clname) 8737: { 8737: if (!_clname) return nullptr; 8737: if (!strcmp(_clname, qt_meta_stringdata_TestGenericTypes.stringdata0)) 8737: return static_cast(this); 8737: return CoverageObject::qt_metacast(_clname); 8737: } 8737: 8737: int TestGenericTypes::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: _id = CoverageObject::qt_metacall(_c, _id, _a); 8737: if (_id < 0) 8737: return _id; 8737: if (_c == QMetaObject::InvokeMetaMethod) { 8737: if (_id < 12) 8737: qt_static_metacall(this, _c, _id, _a); 8737: _id -= 12; 8737: } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { 8737: if (_id < 12) 8737: *reinterpret_cast(_a[0]) = -1; 8737: _id -= 12; 8737: } 8737: return _id; 8737: } 8737: struct qt_meta_stringdata_PersonObject_t { 8737: QByteArrayData data[3]; 8737: char stringdata0[22]; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: static const qt_meta_stringdata_PersonObject_t qt_meta_stringdata_PersonObject = { 8737: { 8737: 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 12 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_PersonObject_t 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 0 - 0 * sizeof(QByteArrayData)) 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 175 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 4 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_PersonObject_t 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 13 - 1 * sizeof(QByteArrayData)) 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 176 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 3 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_PersonObject_t 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 18 - 2 * sizeof(QByteArrayData)) 8737: # 177 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: 8737: 8737: # 179 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: }, 8737: "PersonObject\0name\0age" 8737: }; 8737: 8737: 8737: static const uint qt_meta_data_PersonObject[] = { 8737: 8737: 8737: 7, 8737: 0, 8737: 0, 0, 8737: 0, 0, 8737: 2, 14, 8737: 0, 0, 8737: 0, 0, 8737: 0, 8737: 0, 8737: 8737: 8737: 1, QMetaType::QString, 0x00095001, 8737: 2, QMetaType::Int, 0x00095001, 8737: 8737: 0 8737: }; 8737: 8737: void PersonObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: 8737: 8737: if (_c == QMetaObject::ReadProperty) { 8737: PersonObject *_t = static_cast(_o); 8737: 8737: # 210 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 210 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _t 8737: # 210 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: 8737: # 211 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: void *_v = _a[0]; 8737: switch (_id) { 8737: case 0: *reinterpret_cast< QString*>(_v) = _t->name(); break; 8737: case 1: *reinterpret_cast< int*>(_v) = _t->age(); break; 8737: default: break; 8737: } 8737: } else if (_c == QMetaObject::WriteProperty) { 8737: } else if (_c == QMetaObject::ResetProperty) { 8737: } 8737: 8737: 8737: # 221 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 221 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _o 8737: # 221 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 221 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: 8737: # 222 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 222 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _id 8737: # 222 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 222 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: 8737: # 223 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 223 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _c 8737: # 223 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 223 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: 8737: # 224 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 224 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _a 8737: # 224 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 224 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: } 8737: 8737: const QMetaObject PersonObject::staticMetaObject = { 8737: { &QObject::staticMetaObject, qt_meta_stringdata_PersonObject.data, 8737: qt_meta_data_PersonObject, qt_static_metacall, nullptr, nullptr} 8737: }; 8737: 8737: 8737: const QMetaObject *PersonObject::metaObject() const 8737: { 8737: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8737: } 8737: 8737: void *PersonObject::qt_metacast(const char *_clname) 8737: { 8737: if (!_clname) return nullptr; 8737: if (!strcmp(_clname, qt_meta_stringdata_PersonObject.stringdata0)) 8737: return static_cast(this); 8737: return QObject::qt_metacast(_clname); 8737: } 8737: 8737: int PersonObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: _id = QObject::qt_metacall(_c, _id, _a); 8737: if (_id < 0) 8737: return _id; 8737: 8737: 8737: if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty 8737: || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) { 8737: qt_static_metacall(this, _c, _id, _a); 8737: _id -= 2; 8737: } else if (_c == QMetaObject::QueryPropertyDesignable) { 8737: _id -= 2; 8737: } else if (_c == QMetaObject::QueryPropertyScriptable) { 8737: _id -= 2; 8737: } else if (_c == QMetaObject::QueryPropertyStored) { 8737: _id -= 2; 8737: } else if (_c == QMetaObject::QueryPropertyEditable) { 8737: _id -= 2; 8737: } else if (_c == QMetaObject::QueryPropertyUser) { 8737: _id -= 2; 8737: } 8737: 8737: return _id; 8737: } 8737: struct qt_meta_stringdata_CustomObject_t { 8737: QByteArrayData data[1]; 8737: char stringdata0[13]; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: static const qt_meta_stringdata_CustomObject_t qt_meta_stringdata_CustomObject = { 8737: { 8737: 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 12 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_CustomObject_t 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 0 - 0 * sizeof(QByteArrayData)) 8737: # 282 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: 8737: 8737: # 284 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: }, 8737: "CustomObject" 8737: }; 8737: 8737: 8737: static const uint qt_meta_data_CustomObject[] = { 8737: 8737: 8737: 7, 8737: 0, 8737: 0, 0, 8737: 0, 0, 8737: 0, 0, 8737: 0, 0, 8737: 0, 0, 8737: 0, 8737: 0, 8737: 8737: 0 8737: }; 8737: 8737: void CustomObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: 8737: # 307 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 307 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _o 8737: # 307 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 307 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: 8737: # 308 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 308 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _id 8737: # 308 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 308 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: 8737: # 309 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 309 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _c 8737: # 309 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 309 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: 8737: # 310 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 310 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _a 8737: # 310 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 310 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: } 8737: 8737: const QMetaObject CustomObject::staticMetaObject = { 8737: { &QObject::staticMetaObject, qt_meta_stringdata_CustomObject.data, 8737: qt_meta_data_CustomObject, qt_static_metacall, nullptr, nullptr} 8737: }; 8737: 8737: 8737: const QMetaObject *CustomObject::metaObject() const 8737: { 8737: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8737: } 8737: 8737: void *CustomObject::qt_metacast(const char *_clname) 8737: { 8737: if (!_clname) return nullptr; 8737: if (!strcmp(_clname, qt_meta_stringdata_CustomObject.stringdata0)) 8737: return static_cast(this); 8737: return QObject::qt_metacast(_clname); 8737: } 8737: 8737: int CustomObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: _id = QObject::qt_metacall(_c, _id, _a); 8737: return _id; 8737: } 8737: struct qt_meta_stringdata_OtherObject_t { 8737: QByteArrayData data[3]; 8737: char stringdata0[33]; 8737: }; 8737: 8737: 8737: 8737: 8737: 8737: static const qt_meta_stringdata_OtherObject_t qt_meta_stringdata_OtherObject = { 8737: { 8737: 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 11 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_OtherObject_t 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 0 - 0 * sizeof(QByteArrayData)) 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 348 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 6 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_OtherObject_t 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 12 - 1 * sizeof(QByteArrayData)) 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: # 349 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: , 8737: 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: { { { -1 } }, 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 13 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 0, 0, 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qptrdiff( 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: __builtin_offsetof ( 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: qt_meta_stringdata_OtherObject_t 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: , 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: stringdata0 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ) 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: + 19 - 2 * sizeof(QByteArrayData)) 8737: # 350 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: } 8737: 8737: 8737: # 352 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: }, 8737: "OtherObject\0custom\0CustomObject*" 8737: }; 8737: 8737: 8737: static const uint qt_meta_data_OtherObject[] = { 8737: 8737: 8737: 7, 8737: 0, 8737: 0, 0, 8737: 0, 0, 8737: 1, 14, 8737: 0, 0, 8737: 0, 0, 8737: 0, 8737: 0, 8737: 8737: 8737: 1, 0x80000000 | 2, 0x00095009, 8737: 8737: 0 8737: }; 8737: 8737: void OtherObject::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: if (_c == QMetaObject::RegisterPropertyMetaType) { 8737: switch (_id) { 8737: default: *reinterpret_cast(_a[0]) = -1; break; 8737: case 0: 8737: *reinterpret_cast(_a[0]) = qRegisterMetaType< CustomObject* >(); break; 8737: } 8737: } 8737: 8737: 8737: else if (_c == QMetaObject::ReadProperty) { 8737: OtherObject *_t = static_cast(_o); 8737: 8737: # 389 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 389 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _t 8737: # 389 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: 8737: # 390 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: void *_v = _a[0]; 8737: switch (_id) { 8737: case 0: *reinterpret_cast< CustomObject**>(_v) = _t->custom(); break; 8737: default: break; 8737: } 8737: } else if (_c == QMetaObject::WriteProperty) { 8737: } else if (_c == QMetaObject::ResetProperty) { 8737: } 8737: 8737: 8737: # 399 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: (void) 8737: # 399 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: _o 8737: # 399 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 3 4 8737: ; 8737: # 399 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: ; 8737: } 8737: 8737: const QMetaObject OtherObject::staticMetaObject = { 8737: { &QObject::staticMetaObject, qt_meta_stringdata_OtherObject.data, 8737: qt_meta_data_OtherObject, qt_static_metacall, nullptr, nullptr} 8737: }; 8737: 8737: 8737: const QMetaObject *OtherObject::metaObject() const 8737: { 8737: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8737: } 8737: 8737: void *OtherObject::qt_metacast(const char *_clname) 8737: { 8737: if (!_clname) return nullptr; 8737: if (!strcmp(_clname, qt_meta_stringdata_OtherObject.stringdata0)) 8737: return static_cast(this); 8737: return QObject::qt_metacast(_clname); 8737: } 8737: 8737: int OtherObject::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8737: { 8737: _id = QObject::qt_metacall(_c, _id, _a); 8737: if (_id < 0) 8737: return _id; 8737: 8737: 8737: if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty 8737: || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) { 8737: qt_static_metacall(this, _c, _id, _a); 8737: _id -= 1; 8737: } else if (_c == QMetaObject::QueryPropertyDesignable) { 8737: _id -= 1; 8737: } else if (_c == QMetaObject::QueryPropertyScriptable) { 8737: _id -= 1; 8737: } else if (_c == QMetaObject::QueryPropertyStored) { 8737: _id -= 1; 8737: } else if (_c == QMetaObject::QueryPropertyEditable) { 8737: _id -= 1; 8737: } else if (_c == QMetaObject::QueryPropertyUser) { 8737: _id -= 1; 8737: } 8737: 8737: return _id; 8737: } 8737: 8737: # 446 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: #pragma GCC diagnostic pop 8737: # 446 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenerictypes_exec_autogen/include/testgenerictypes.moc" 8737: 8737: 8737: # 789 "/<>/templates/tests/testgenerictypes.cpp" 2 wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () 8768: { 8768: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n)) 8768: return __wmemmove_chk (__s1, __s2, __n, 8768: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8768: 8768: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8768: return __wmemmove_chk_warn (__s1, __s2, __n, 8768: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8768: } 8768: return __wmemmove_alias (__s1, __s2, __n); 8768: } 8768: 8768: 8768: 8768: extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, 8768: const wchar_t *__restrict __s2, size_t __n, 8768: size_t __ns1) throw (); 8768: extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy") 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw () 8768: 8768: { 8768: if (__builtin_object_size (__s1, 0) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n)) 8768: return __wmempcpy_chk (__s1, __s2, __n, 8768: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8768: 8768: if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) 8768: return __wmempcpy_chk_warn (__s1, __s2, __n, 8768: __builtin_object_size (__s1, 0) / sizeof (wchar_t)); 8768: } 8768: return __wmempcpy_alias (__s1, __s2, __n); 8768: } 8768: 8768: 8768: 8768: extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, 8768: size_t __ns) throw (); 8768: extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset") 8768: ; 8768: extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") 8768: 8768: 8768: __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw () 8768: { 8768: if (__builtin_object_size (__s, 0) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n)) 8768: return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8768: 8768: if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) 8768: return __wmemset_chk_warn (__s, __c, __n, 8768: __builtin_object_size (__s, 0) / sizeof (wchar_t)); 8768: } 8768: return __wmemset_alias (__s, __c, __n); 8768: } 8768: 8768: 8768: extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, 8768: size_t __n) throw (); 8768: extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy") 8768: 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8768: return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: return __wcscpy_alias (__dest, __src); 8768: } 8768: 8768: 8768: extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, 8768: size_t __destlen) throw (); 8768: extern wchar_t *__wcpcpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcpcpy") 8768: 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8768: return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: return __wcpcpy_alias (__dest, __src); 8768: } 8768: 8768: 8768: extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, size_t __n, 8768: size_t __destlen) throw (); 8768: extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy") 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n)) 8768: return __wcsncpy_chk (__dest, __src, __n, 8768: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8768: return __wcsncpy_chk_warn (__dest, __src, __n, 8768: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: } 8768: return __wcsncpy_alias (__dest, __src, __n); 8768: } 8768: 8768: 8768: extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, size_t __n, 8768: size_t __destlen) throw (); 8768: extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy") 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n)) 8768: return __wcpncpy_chk (__dest, __src, __n, 8768: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) 8768: return __wcpncpy_chk_warn (__dest, __src, __n, 8768: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: } 8768: return __wcpncpy_alias (__dest, __src, __n); 8768: } 8768: 8768: 8768: extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, 8768: size_t __destlen) throw (); 8768: extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat") 8768: 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8768: return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: return __wcscat_alias (__dest, __src); 8768: } 8768: 8768: 8768: extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, 8768: const wchar_t *__restrict __src, 8768: size_t __n, size_t __destlen) throw (); 8768: extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat") 8768: 8768: 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) wchar_t * 8768: __attribute__ ((__leaf__)) wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) 8768: return __wcsncat_chk (__dest, __src, __n, 8768: __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); 8768: return __wcsncat_alias (__dest, __src, __n); 8768: } 8768: 8768: 8768: extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, 8768: int __flag, size_t __s_len, 8768: const wchar_t *__restrict __format, ...) 8768: throw () ; 8768: 8768: extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf") 8768: 8768: 8768: ; 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, ...) throw () 8768: 8768: { 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8768: return __swprintf_chk (__s, __n, 2 - 1, 8768: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8768: __fmt, __builtin_va_arg_pack ()); 8768: return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); 8768: } 8768: # 303 "/usr/include/x86_64-linux-gnu/bits/wchar2.h" 3 4 8768: extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, 8768: int __flag, size_t __s_len, 8768: const wchar_t *__restrict __format, 8768: __gnuc_va_list __arg) 8768: throw () ; 8768: 8768: extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf") 8768: 8768: 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () 8768: 8768: { 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) 8768: return __vswprintf_chk (__s, __n, 2 - 1, 8768: __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); 8768: return __vswprintf_alias (__s, __n, __fmt, __ap); 8768: } 8768: 8768: 8768: 8768: 8768: extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, 8768: const wchar_t *__restrict __format, ...); 8768: extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format, 8768: ...); 8768: extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, 8768: const wchar_t *__restrict __format, 8768: __gnuc_va_list __ap); 8768: extern int __vwprintf_chk (int __flag, === END GCC DUMP === const wchar_t *__restrict __format, 8768: __gnuc_va_list __ap); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: wprintf (const wchar_t *__restrict __fmt, ...) 8768: { 8768: return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...) 8768: { 8768: return __fwprintf_chk (__stream, 2 - 1, __fmt, 8768: __builtin_va_arg_pack ()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8768: { 8768: return __vwprintf_chk (2 - 1, __fmt, __ap); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: vfwprintf (__FILE *__restrict __stream, 8768: const wchar_t *__restrict __fmt, __gnuc_va_list __ap) 8768: { 8768: return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); 8768: } 8768: 8768: 8768: 8768: extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, 8768: __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8768: fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8768: { 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n) || __n <= 0) 8768: return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8768: __n, __stream); 8768: 8768: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8768: return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8768: __n, __stream); 8768: } 8768: return __fgetws_alias (__s, __n, __stream); 8768: } 8768: 8768: 8768: extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, 8768: int __n, __FILE *__restrict __stream) 8768: __attribute__ ((__warn_unused_result__)); 8768: extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") 8768: 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * 8768: fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) 8768: { 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n) || __n <= 0)templates/tests/CMakeFiles/testgenerictypes_exec.dir/build.make:65: recipe for target 'templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o' failed [ 94%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/mediafinder.cpp.o make[3]: *** [templates/tests/CMakeFiles/testgenerictypes_exec.dir/testgenerictypes.cpp.o] Error 1 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' CMakeFiles/Makefile2:1007: 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.... cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 8768: return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8768: __n, __stream); 8768: 8768: if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) 8768: return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), 8768: __n, __stream); 8768: } 8768: return __fgetws_unlocked_alias (__s, __n, __stream); 8768: } 8768: 8768: 8768: 8768: extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, 8768: mbstate_t *__restrict __p, 8768: size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); 8768: extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8768: __attribute__ ((__leaf__)) wcrtomb (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () 8768: 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) 8768: return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); 8768: return __wcrtomb_alias (__s, __wchar, __ps); 8768: } 8768: 8768: 8768: extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, 8768: const char **__restrict __src, 8768: size_t __len, mbstate_t *__restrict __ps, 8768: size_t __dstlen) throw (); 8768: extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs") 8768: 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: 8768: __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8768: __attribute__ ((__leaf__)) mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__len)) 8768: return __mbsrtowcs_chk (__dst, __src, __len, __ps, 8768: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8768: 8768: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8768: return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, 8768: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8768: } 8768: return __mbsrtowcs_alias (__dst, __src, __len, __ps); 8768: } 8768: 8768: 8768: extern size_t __wcsrtombs_chk (char *__restrict __dst, 8768: const wchar_t **__restrict __src, 8768: size_t __len, mbstate_t *__restrict __ps, 8768: size_t __dstlen) throw (); 8768: extern size_t __wcsrtombs_alias (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs") 8768: 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8768: __attribute__ ((__leaf__)) wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__len)) 8768: return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8768: 8768: if (__len > __builtin_object_size (__dst, 2 > 1)) 8768: return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); 8768: } 8768: return __wcsrtombs_alias (__dst, __src, __len, __ps); 8768: } 8768: 8768: 8768: 8768: extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, 8768: const char **__restrict __src, size_t __nmc, 8768: size_t __len, mbstate_t *__restrict __ps, 8768: size_t __dstlen) throw (); 8768: 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") 8768: 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: 8768: __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8768: __attribute__ ((__leaf__)) mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__len)) 8768: return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, 8768: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8768: 8768: if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) 8768: return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, 8768: __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); 8768: } 8768: return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); 8768: } 8768: 8768: 8768: extern size_t __wcsnrtombs_chk (char *__restrict __dst, 8768: const wchar_t **__restrict __src, 8768: size_t __nwc, size_t __len, 8768: mbstate_t *__restrict __ps, size_t __dstlen) 8768: throw (); 8768: 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") 8768: 8768: 8768: 8768: ; 8768: 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") 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t 8768: __attribute__ ((__leaf__)) wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () 8768: 8768: { 8768: if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__len)) 8768: return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, 8768: __builtin_object_size (__dst, 2 > 1)); 8768: 8768: if (__len > __builtin_object_size (__dst, 2 > 1)) 8768: return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, 8768: __builtin_object_size (__dst, 2 > 1)); 8768: } 8768: return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); 8768: } 8768: # 784 "/usr/include/wchar.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: # 45 "/usr/include/c++/8/cwchar" 2 3 8768: # 62 "/usr/include/c++/8/cwchar" 3 8768: namespace std 8768: { 8768: using ::mbstate_t; 8768: } 8768: # 135 "/usr/include/c++/8/cwchar" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: using ::wint_t; 8768: 8768: using ::btowc; 8768: using ::fgetwc; 8768: using ::fgetws; 8768: using ::fputwc; 8768: using ::fputws; 8768: using ::fwide; 8768: using ::fwprintf; 8768: using ::fwscanf; 8768: using ::getwc; 8768: using ::getwchar; 8768: using ::mbrlen; 8768: using ::mbrtowc; 8768: using ::mbsinit; 8768: using ::mbsrtowcs; 8768: using ::putwc; 8768: using ::putwchar; 8768: 8768: using ::swprintf; 8768: 8768: using ::swscanf; 8768: using ::ungetwc; 8768: using ::vfwprintf; 8768: 8768: using ::vfwscanf; 8768: 8768: 8768: using ::vswprintf; 8768: 8768: 8768: using ::vswscanf; 8768: 8768: using ::vwprintf; 8768: 8768: using ::vwscanf; 8768: 8768: using ::wcrtomb; 8768: using ::wcscat; 8768: using ::wcscmp; 8768: using ::wcscoll; 8768: using ::wcscpy; 8768: using ::wcscspn; 8768: using ::wcsftime; 8768: using ::wcslen; 8768: using ::wcsncat; 8768: using ::wcsncmp; 8768: using ::wcsncpy; 8768: using ::wcsrtombs; 8768: using ::wcsspn; 8768: using ::wcstod; 8768: 8768: using ::wcstof; 8768: 8768: using ::wcstok; 8768: using ::wcstol; 8768: using ::wcstoul; 8768: using ::wcsxfrm; 8768: using ::wctob; 8768: using ::wmemcmp; 8768: using ::wmemcpy; 8768: using ::wmemmove; 8768: using ::wmemset; 8768: using ::wprintf; 8768: using ::wscanf; 8768: using ::wcschr; 8768: using ::wcspbrk; 8768: using ::wcsrchr; 8768: using ::wcsstr; 8768: using ::wmemchr; 8768: # 232 "/usr/include/c++/8/cwchar" 3 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace __gnu_cxx 8768: { 8768: 8768: 8768: 8768: 8768: 8768: using ::wcstold; 8768: # 257 "/usr/include/c++/8/cwchar" 3 8768: using ::wcstoll; 8768: using ::wcstoull; 8768: 8768: } 8768: 8768: namespace std 8768: { 8768: using ::__gnu_cxx::wcstold; 8768: using ::__gnu_cxx::wcstoll; 8768: using ::__gnu_cxx::wcstoull; 8768: } 8768: # 277 "/usr/include/c++/8/cwchar" 3 8768: namespace std 8768: { 8768: 8768: using std::wcstof; 8768: 8768: 8768: using std::vfwscanf; 8768: 8768: 8768: using std::vswscanf; 8768: 8768: 8768: using std::vwscanf; 8768: 8768: 8768: 8768: using std::wcstold; 8768: using std::wcstoll; 8768: using std::wcstoull; 8768: 8768: } 8768: # 41 "/usr/include/c++/8/bits/postypes.h" 2 3 8768: # 68 "/usr/include/c++/8/bits/postypes.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 88 "/usr/include/c++/8/bits/postypes.h" 3 8768: typedef long streamoff; 8768: # 98 "/usr/include/c++/8/bits/postypes.h" 3 8768: typedef ptrdiff_t streamsize; 8768: # 111 "/usr/include/c++/8/bits/postypes.h" 3 8768: template 8768: class fpos 8768: { 8768: private: 8768: streamoff _M_off; 8768: _StateT _M_state; 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: fpos() 8768: : _M_off(0), _M_state() { } 8768: # 133 "/usr/include/c++/8/bits/postypes.h" 3 8768: fpos(streamoff __off) 8768: : _M_off(__off), _M_state() { } 8768: 8768: 8768: operator streamoff() const { return _M_off; } 8768: 8768: 8768: void 8768: state(_StateT __st) 8768: { _M_state = __st; } 8768: 8768: 8768: _StateT 8768: state() const 8768: { return _M_state; } 8768: 8768: 8768: 8768: 8768: 8768: fpos& 8768: operator+=(streamoff __off) 8768: { 8768: _M_off += __off; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: fpos& 8768: operator-=(streamoff __off) 8768: { 8768: _M_off -= __off; 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: fpos 8768: operator+(streamoff __off) const 8768: { 8768: fpos __pos(*this); 8768: __pos += __off; 8768: return __pos; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: fpos 8768: operator-(streamoff __off) const 8768: { 8768: fpos __pos(*this); 8768: __pos -= __off; 8768: return __pos; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: streamoff 8768: operator-(const fpos& __other) const 8768: { return _M_off - __other._M_off; } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8768: { return streamoff(__lhs) == streamoff(__rhs); } 8768: 8768: template 8768: inline bool 8768: operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) 8768: { return streamoff(__lhs) != streamoff(__rhs); } 8768: 8768: 8768: 8768: 8768: 8768: typedef fpos streampos; 8768: 8768: typedef fpos wstreampos; 8768: 8768: 8768: 8768: typedef fpos u16streampos; 8768: 8768: typedef fpos u32streampos; 8768: 8768: 8768: 8768: } 8768: # 41 "/usr/include/c++/8/bits/char_traits.h" 2 3 8768: # 1 "/usr/include/c++/8/cwchar" 1 3 8768: # 39 "/usr/include/c++/8/cwchar" 3 8768: 8768: # 40 "/usr/include/c++/8/cwchar" 3 8768: # 42 "/usr/include/c++/8/bits/char_traits.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 61 "/usr/include/c++/8/bits/char_traits.h" 3 8768: template 8768: struct _Char_types 8768: { 8768: typedef unsigned long int_type; 8768: typedef std::streampos pos_type; 8768: typedef std::streamoff off_type; 8768: typedef std::mbstate_t state_type; 8768: }; 8768: # 86 "/usr/include/c++/8/bits/char_traits.h" 3 8768: template 8768: struct char_traits 8768: { 8768: typedef _CharT char_type; 8768: typedef typename _Char_types<_CharT>::int_type int_type; 8768: typedef typename _Char_types<_CharT>::pos_type pos_type; 8768: typedef typename _Char_types<_CharT>::off_type off_type; 8768: typedef typename _Char_types<_CharT>::state_type state_type; 8768: 8768: static void 8768: assign(char_type& __c1, const char_type& __c2) 8768: { __c1 = __c2; } 8768: 8768: static constexpr bool 8768: eq(const char_type& __c1, const char_type& __c2) 8768: { return __c1 == __c2; } 8768: 8768: static constexpr bool 8768: lt(const char_type& __c1, const char_type& __c2) 8768: { return __c1 < __c2; } 8768: 8768: static int 8768: compare(const char_type* __s1, const char_type* __s2, std::size_t __n); 8768: 8768: static std::size_t 8768: length(const char_type* __s); 8768: 8768: static const char_type* 8768: find(const char_type* __s, std::size_t __n, const char_type& __a); 8768: 8768: static char_type* 8768: move(char_type* __s1, const char_type* __s2, std::size_t __n); 8768: 8768: static char_type* 8768: copy(char_type* __s1, const char_type* __s2, std::size_t __n); 8768: 8768: static char_type* 8768: assign(char_type* __s, std::size_t __n, char_type __a); 8768: 8768: static constexpr char_type 8768: to_char_type(const int_type& __c) 8768: { return static_cast(__c); } 8768: 8768: static constexpr int_type 8768: to_int_type(const char_type& __c) 8768: { return static_cast(__c); } 8768: 8768: static constexpr bool 8768: eq_int_type(const int_type& __c1, const int_type& __c2) 8768: { return __c1 == __c2; } 8768: 8768: static constexpr int_type 8768: eof() 8768: { return static_cast(-1); } 8768: 8768: static constexpr int_type 8768: not_eof(const int_type& __c) 8768: { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } 8768: }; 8768: 8768: 8768: 8768: template 8768: int 8768: char_traits<_CharT>:: 8768: compare(const char_type* __s1, const char_type* __s2, std::size_t __n) 8768: { 8768: for (std::size_t __i = 0; __i < __n; ++__i) 8768: if (lt(__s1[__i], __s2[__i])) 8768: return -1; 8768: else if (lt(__s2[__i], __s1[__i])) 8768: return 1; 8768: return 0; 8768: } 8768: 8768: template 8768: std::size_t 8768: char_traits<_CharT>:: 8768: length(const char_type* __p) 8768: { 8768: std::size_t __i = 0; 8768: while (!eq(__p[__i], char_type())) 8768: ++__i; 8768: return __i; 8768: } 8768: 8768: template 8768: const typename char_traits<_CharT>::char_type* 8768: char_traits<_CharT>:: 8768: find(const char_type* __s, std::size_t __n, const char_type& __a) 8768: { 8768: for (std::size_t __i = 0; __i < __n; ++__i) 8768: if (eq(__s[__i], __a)) 8768: return __s + __i; 8768: return 0; 8768: } 8768: 8768: template 8768: typename char_traits<_CharT>::char_type* 8768: char_traits<_CharT>:: 8768: move(char_type* __s1, const char_type* __s2, std::size_t __n) 8768: { 8768: return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, 8768: __n * sizeof(char_type))); 8768: } 8768: 8768: template 8768: typename char_traits<_CharT>::char_type* 8768: char_traits<_CharT>:: 8768: copy(char_type* __s1, const char_type* __s2, std::size_t __n) 8768: { 8768: 8768: std::copy(__s2, __s2 + __n, __s1); 8768: return __s1; 8768: } 8768: 8768: template 8768: typename char_traits<_CharT>::char_type* 8768: char_traits<_CharT>:: 8768: assign(char_type* __s, std::size_t __n, char_type __a) 8768: { 8768: 8768: std::fill_n(__s, __n, __a); 8768: return __s; 8768: } 8768: 8768: 8768: } 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 268 "/usr/include/c++/8/bits/char_traits.h" 3 8768: template 8768: struct char_traits : public __gnu_cxx::char_traits<_CharT> 8768: { }; 8768: 8768: 8768: 8768: template<> 8768: struct char_traits 8768: { 8768: typedef char char_type; 8768: typedef int int_type; 8768: typedef streampos pos_type; 8768: typedef streamoff off_type; 8768: typedef mbstate_t state_type; 8768: 8768: static void 8768: assign(char_type& __c1, const char_type& __c2) noexcept 8768: { __c1 = __c2; } 8768: 8768: static constexpr bool 8768: eq(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr bool 8768: lt(const char_type& __c1, const char_type& __c2) noexcept 8768: { 8768: 8768: return (static_cast(__c1) 8768: < static_cast(__c2)); 8768: } 8768: 8768: static int 8768: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: if (__n == 0) 8768: return 0; 8768: return __builtin_memcmp(__s1, __s2, __n); 8768: } 8768: 8768: static size_t 8768: length(const char_type* __s) 8768: { 8768: 8768: 8768: 8768: 8768: return __builtin_strlen(__s); 8768: } 8768: 8768: static const char_type* 8768: find(const char_type* __s, size_t __n, const char_type& __a) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: if (__n == 0) 8768: return 0; 8768: return static_cast(__builtin_memchr(__s, __a, __n)); 8768: } 8768: 8768: static char_type* 8768: move(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return static_cast(__builtin_memmove(__s1, __s2, __n)); 8768: } 8768: 8768: static char_type* 8768: copy(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return static_cast(__builtin_memcpy(__s1, __s2, __n)); 8768: } 8768: 8768: static char_type* 8768: assign(char_type* __s, size_t __n, char_type __a) 8768: { 8768: if (__n == 0) 8768: return __s; 8768: return static_cast(__builtin_memset(__s, __a, __n)); 8768: } 8768: 8768: static constexpr char_type 8768: to_char_type(const int_type& __c) noexcept 8768: { return static_cast(__c); } 8768: 8768: 8768: 8768: static constexpr int_type 8768: to_int_type(const char_type& __c) noexcept 8768: { return static_cast(static_cast(__c)); } 8768: 8768: static constexpr bool 8768: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr int_type 8768: eof() noexcept 8768: { return static_cast(-1); } 8768: 8768: static constexpr int_type 8768: not_eof(const int_type& __c) noexcept 8768: { return (__c == eof()) ? 0 : __c; } 8768: }; 8768: 8768: 8768: 8768: 8768: template<> 8768: struct char_traits 8768: { 8768: typedef wchar_t char_type; 8768: typedef wint_t int_type; 8768: typedef streamoff off_type; 8768: typedef wstreampos pos_type; 8768: typedef mbstate_t state_type; 8768: 8768: static void 8768: assign(char_type& __c1, const char_type& __c2) noexcept 8768: { __c1 = __c2; } 8768: 8768: static constexpr bool 8768: eq(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr bool 8768: lt(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 < __c2; } 8768: 8768: static int 8768: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: if (__n == 0) 8768: return 0; 8768: else 8768: return wmemcmp(__s1, __s2, __n); 8768: } 8768: 8768: static size_t 8768: length(const char_type* __s) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: return wcslen(__s); 8768: } 8768: 8768: static const char_type* 8768: find(const char_type* __s, size_t __n, const char_type& __a) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: if (__n == 0) 8768: return 0; 8768: else 8768: return wmemchr(__s, __a, __n); 8768: } 8768: 8768: static char_type* 8768: move(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return wmemmove(__s1, __s2, __n); 8768: } 8768: 8768: static char_type* 8768: copy(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return wmemcpy(__s1, __s2, __n); 8768: } 8768: 8768: static char_type* 8768: assign(char_type* __s, size_t __n, char_type __a) 8768: { 8768: if (__n == 0) 8768: return __s; 8768: return wmemset(__s, __a, __n); 8768: } 8768: 8768: static constexpr char_type 8768: to_char_type(const int_type& __c) noexcept 8768: { return char_type(__c); } 8768: 8768: static constexpr int_type 8768: to_int_type(const char_type& __c) noexcept 8768: { return int_type(__c); } 8768: 8768: static constexpr bool 8768: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr int_type 8768: eof() noexcept 8768: { return static_cast((0xffffffffu)); } 8768: 8768: static constexpr int_type 8768: not_eof(const int_type& __c) noexcept 8768: { return eq_int_type(__c, eof()) ? 0 : __c; } 8768: }; 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/cstdint" 1 3 8768: # 32 "/usr/include/c++/8/cstdint" 3 8768: 8768: # 33 "/usr/include/c++/8/cstdint" 3 8768: # 46 "/usr/include/c++/8/cstdint" 3 8768: namespace std 8768: { 8768: using ::int8_t; 8768: using ::int16_t; 8768: using ::int32_t; 8768: using ::int64_t; 8768: 8768: using ::int_fast8_t; 8768: using ::int_fast16_t; 8768: using ::int_fast32_t; 8768: using ::int_fast64_t; 8768: 8768: using ::int_least8_t; 8768: using ::int_least16_t; 8768: using ::int_least32_t; 8768: using ::int_least64_t; 8768: 8768: using ::intmax_t; 8768: using ::intptr_t; 8768: 8768: using ::uint8_t; 8768: using ::uint16_t; 8768: using ::uint32_t; 8768: using ::uint64_t; 8768: 8768: using ::uint_fast8_t; 8768: using ::uint_fast16_t; 8768: using ::uint_fast32_t; 8768: using ::uint_fast64_t; 8768: 8768: using ::uint_least8_t; 8768: using ::uint_least16_t; 8768: using ::uint_least32_t; 8768: using ::uint_least64_t; 8768: 8768: using ::uintmax_t; 8768: using ::uintptr_t; 8768: } 8768: # 502 "/usr/include/c++/8/bits/char_traits.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template<> 8768: struct char_traits 8768: { 8768: typedef char16_t char_type; 8768: typedef uint_least16_t int_type; 8768: typedef streamoff off_type; 8768: typedef u16streampos pos_type; 8768: typedef mbstate_t state_type; 8768: 8768: static void 8768: assign(char_type& __c1, const char_type& __c2) noexcept 8768: { __c1 = __c2; } 8768: 8768: static constexpr bool 8768: eq(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr bool 8768: lt(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 < __c2; } 8768: 8768: static int 8768: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: for (size_t __i = 0; __i < __n; ++__i) 8768: if (lt(__s1[__i], __s2[__i])) 8768: return -1; 8768: else if (lt(__s2[__i], __s1[__i])) 8768: return 1; 8768: return 0; 8768: } 8768: 8768: static size_t 8768: length(const char_type* __s) 8768: { 8768: size_t __i = 0; 8768: while (!eq(__s[__i], char_type())) 8768: ++__i; 8768: return __i; 8768: } 8768: 8768: static const char_type* 8768: find(const char_type* __s, size_t __n, const char_type& __a) 8768: { 8768: for (size_t __i = 0; __i < __n; ++__i) 8768: if (eq(__s[__i], __a)) 8768: return __s + __i; 8768: return 0; 8768: } 8768: 8768: static char_type* 8768: move(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return (static_cast 8768: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8768: } 8768: 8768: static char_type* 8768: copy(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return (static_cast 8768: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8768: } 8768: 8768: static char_type* 8768: assign(char_type* __s, size_t __n, char_type __a) 8768: { 8768: for (size_t __i = 0; __i < __n; ++__i) 8768: assign(__s[__i], __a); 8768: return __s; 8768: } 8768: 8768: static constexpr char_type 8768: to_char_type(const int_type& __c) noexcept 8768: { return char_type(__c); } 8768: 8768: static constexpr int_type 8768: to_int_type(const char_type& __c) noexcept 8768: { return __c == eof() ? int_type(0xfffd) : int_type(__c); } 8768: 8768: static constexpr bool 8768: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr int_type 8768: eof() noexcept 8768: { return static_cast(-1); } 8768: 8768: static constexpr int_type 8768: not_eof(const int_type& __c) noexcept 8768: { return eq_int_type(__c, eof()) ? 0 : __c; } 8768: }; 8768: 8768: template<> 8768: struct char_traits 8768: { 8768: typedef char32_t char_type; 8768: typedef uint_least32_t int_type; 8768: typedef streamoff off_type; 8768: typedef u32streampos pos_type; 8768: typedef mbstate_t state_type; 8768: 8768: static void 8768: assign(char_type& __c1, const char_type& __c2) noexcept 8768: { __c1 = __c2; } 8768: 8768: static constexpr bool 8768: eq(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr bool 8768: lt(const char_type& __c1, const char_type& __c2) noexcept 8768: { return __c1 < __c2; } 8768: 8768: static int 8768: compare(const char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: for (size_t __i = 0; __i < __n; ++__i) 8768: if (lt(__s1[__i], __s2[__i])) 8768: return -1; 8768: else if (lt(__s2[__i], __s1[__i])) 8768: return 1; 8768: return 0; 8768: } 8768: 8768: static size_t 8768: length(const char_type* __s) 8768: { 8768: size_t __i = 0; 8768: while (!eq(__s[__i], char_type())) 8768: ++__i; 8768: return __i; 8768: } 8768: 8768: static const char_type* 8768: find(const char_type* __s, size_t __n, const char_type& __a) 8768: { 8768: for (size_t __i = 0; __i < __n; ++__i) 8768: if (eq(__s[__i], __a)) 8768: return __s + __i; 8768: return 0; 8768: } 8768: 8768: static char_type* 8768: move(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return (static_cast 8768: (__builtin_memmove(__s1, __s2, __n * sizeof(char_type)))); 8768: } 8768: 8768: static char_type* 8768: copy(char_type* __s1, const char_type* __s2, size_t __n) 8768: { 8768: if (__n == 0) 8768: return __s1; 8768: return (static_cast 8768: (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type)))); 8768: } 8768: 8768: static char_type* 8768: assign(char_type* __s, size_t __n, char_type __a) 8768: { 8768: for (size_t __i = 0; __i < __n; ++__i) 8768: assign(__s[__i], __a); 8768: return __s; 8768: } 8768: 8768: static constexpr char_type 8768: to_char_type(const int_type& __c) noexcept 8768: { return char_type(__c); } 8768: 8768: static constexpr int_type 8768: to_int_type(const char_type& __c) noexcept 8768: { return int_type(__c); } 8768: 8768: static constexpr bool 8768: eq_int_type(const int_type& __c1, const int_type& __c2) noexcept 8768: { return __c1 == __c2; } 8768: 8768: static constexpr int_type 8768: eof() noexcept 8768: { return static_cast(-1); } 8768: 8768: static constexpr int_type 8768: not_eof(const int_type& __c) noexcept 8768: { return eq_int_type(__c, eof()) ? 0 : __c; } 8768: }; 8768: 8768: 8768: } 8768: # 41 "/usr/include/c++/8/string" 2 3 8768: # 1 "/usr/include/c++/8/bits/allocator.h" 1 3 8768: # 46 "/usr/include/c++/8/bits/allocator.h" 3 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 1 3 8768: # 33 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 3 8768: # 1 "/usr/include/c++/8/ext/new_allocator.h" 1 3 8768: # 40 "/usr/include/c++/8/ext/new_allocator.h" 3 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: using std::size_t; 8768: using std::ptrdiff_t; 8768: # 57 "/usr/include/c++/8/ext/new_allocator.h" 3 8768: template 8768: class new_allocator 8768: { 8768: public: 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Tp* pointer; 8768: typedef const _Tp* const_pointer; 8768: typedef _Tp& reference; 8768: typedef const _Tp& const_reference; 8768: typedef _Tp value_type; 8768: 8768: template 8768: struct rebind 8768: { typedef new_allocator<_Tp1> other; }; 8768: 8768: 8768: 8768: 8768: typedef std::true_type propagate_on_container_move_assignment; 8768: 8768: 8768: new_allocator() noexcept { } 8768: 8768: new_allocator(const new_allocator&) noexcept { } 8768: 8768: template 8768: new_allocator(const new_allocator<_Tp1>&) noexcept { } 8768: 8768: ~new_allocator() noexcept { } 8768: 8768: pointer 8768: address(reference __x) const noexcept 8768: { return std::__addressof(__x); } 8768: 8768: const_pointer 8768: address(const_reference __x) const noexcept 8768: { return std::__addressof(__x); } 8768: 8768: 8768: 8768: pointer 8768: allocate(size_type __n, const void* = static_cast(0)) 8768: { 8768: if (__n > this->max_size()) 8768: std::__throw_bad_alloc(); 8768: # 111 "/usr/include/c++/8/ext/new_allocator.h" 3 8768: return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); 8768: } 8768: 8768: 8768: void 8768: deallocate(pointer __p, size_type) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ::operator delete(__p); 8768: } 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return size_t(-1) / sizeof(_Tp); } 8768: 8768: 8768: template 8768: void 8768: construct(_Up* __p, _Args&&... __args) 8768: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8768: 8768: template 8768: void 8768: destroy(_Up* __p) { __p->~_Up(); } 8768: # 151 "/usr/include/c++/8/ext/new_allocator.h" 3 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8768: { return true; } 8768: 8768: template 8768: inline bool 8768: operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) 8768: { return false; } 8768: 8768: 8768: } 8768: # 34 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 2 3 8768: 8768: 8768: namespace std 8768: { 8768: # 47 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++allocator.h" 3 8768: template 8768: using __allocator_base = __gnu_cxx::new_allocator<_Tp>; 8768: } 8768: # 47 "/usr/include/c++/8/bits/allocator.h" 2 3 8768: # 57 "/usr/include/c++/8/bits/allocator.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: class allocator 8768: { 8768: public: 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef void* pointer; 8768: typedef const void* const_pointer; 8768: typedef void value_type; 8768: 8768: template 8768: struct rebind 8768: { typedef allocator<_Tp1> other; }; 8768: 8768: 8768: 8768: 8768: typedef true_type propagate_on_container_move_assignment; 8768: 8768: typedef true_type is_always_equal; 8768: 8768: template 8768: void 8768: construct(_Up* __p, _Args&&... __args) 8768: { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } 8768: 8768: template 8768: void 8768: destroy(_Up* __p) { __p->~_Up(); } 8768: 8768: }; 8768: # 107 "/usr/include/c++/8/bits/allocator.h" 3 8768: template 8768: class allocator : public __allocator_base<_Tp> 8768: { 8768: public: 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Tp* pointer; 8768: typedef const _Tp* const_pointer; 8768: typedef _Tp& reference; 8768: typedef const _Tp& const_reference; 8768: typedef _Tp value_type; 8768: 8768: template 8768: struct rebind 8768: { typedef allocator<_Tp1> other; }; 8768: 8768: 8768: 8768: 8768: typedef true_type propagate_on_container_move_assignment; 8768: 8768: typedef true_type is_always_equal; 8768: 8768: 8768: allocator() throw() { } 8768: 8768: allocator(const allocator& __a) throw() 8768: : __allocator_base<_Tp>(__a) { } 8768: 8768: template 8768: allocator(const allocator<_Tp1>&) throw() { } 8768: 8768: ~allocator() throw() { } 8768: 8768: 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const allocator<_T1>&, const allocator<_T2>&) 8768: noexcept 8768: { return true; } 8768: 8768: template 8768: inline bool 8768: operator==(const allocator<_Tp>&, const allocator<_Tp>&) 8768: noexcept 8768: { return true; } 8768: 8768: template 8768: inline bool 8768: operator!=(const allocator<_T1>&, const allocator<_T2>&) 8768: noexcept 8768: { return false; } 8768: 8768: template 8768: inline bool 8768: operator!=(const allocator<_Tp>&, const allocator<_Tp>&) 8768: noexcept 8768: { return false; } 8768: 8768: 8768: 8768: template 8768: class allocator 8768: { 8768: public: 8768: typedef _Tp value_type; 8768: template allocator(const allocator<_Up>&) { } 8768: }; 8768: 8768: template 8768: class allocator 8768: { 8768: public: 8768: typedef _Tp value_type; 8768: template allocator(const allocator<_Up>&) { } 8768: }; 8768: 8768: template 8768: class allocator 8768: { 8768: public: 8768: typedef _Tp value_type; 8768: template allocator(const allocator<_Up>&) { } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern template class allocator; 8768: extern template class allocator; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __alloc_swap 8768: { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } }; 8768: 8768: template 8768: struct __alloc_swap<_Alloc, false> 8768: { 8768: static void 8768: _S_do_it(_Alloc& __one, _Alloc& __two) noexcept 8768: { 8768: 8768: if (__one != __two) 8768: swap(__one, __two); 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct __alloc_neq 8768: { 8768: static bool 8768: _S_do_it(const _Alloc&, const _Alloc&) 8768: { return false; } 8768: }; 8768: 8768: template 8768: struct __alloc_neq<_Alloc, false> 8768: { 8768: static bool 8768: _S_do_it(const _Alloc& __one, const _Alloc& __two) 8768: { return __one != __two; } 8768: }; 8768: 8768: 8768: template, 8768: is_nothrow_move_constructible>::value> 8768: struct __shrink_to_fit_aux 8768: { static bool _S_do_it(_Tp&) noexcept { return false; } }; 8768: 8768: template 8768: struct __shrink_to_fit_aux<_Tp, true> 8768: { 8768: static bool 8768: _S_do_it(_Tp& __c) noexcept 8768: { 8768: 8768: try 8768: { 8768: _Tp(__make_move_if_noexcept_iterator(__c.begin()), 8768: __make_move_if_noexcept_iterator(__c.end()), 8768: __c.get_allocator()).swap(__c); 8768: return true; 8768: } 8768: catch(...) 8768: { return false; } 8768: 8768: 8768: 8768: } 8768: }; 8768: 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/string" 2 3 8768: 8768: # 1 "/usr/include/c++/8/bits/localefwd.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/localefwd.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/localefwd.h" 3 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 1 3 8768: # 39 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 3 8768: 8768: # 40 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 3 8768: 8768: # 1 "/usr/include/c++/8/clocale" 1 3 8768: # 39 "/usr/include/c++/8/clocale" 3 8768: 8768: # 40 "/usr/include/c++/8/clocale" 3 8768: 8768: 8768: # 1 "/usr/include/locale.h" 1 3 4 8768: # 28 "/usr/include/locale.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 29 "/usr/include/locale.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/locale.h" 1 3 4 8768: # 30 "/usr/include/locale.h" 2 3 4 8768: 8768: extern "C" { 8768: # 51 "/usr/include/locale.h" 3 4 8768: struct lconv 8768: { 8768: 8768: 8768: char *decimal_point; 8768: char *thousands_sep; 8768: 8768: 8768: 8768: 8768: 8768: char *grouping; 8768: 8768: 8768: 8768: 8768: 8768: char *int_curr_symbol; 8768: char *currency_symbol; 8768: char *mon_decimal_point; 8768: char *mon_thousands_sep; 8768: char *mon_grouping; 8768: char *positive_sign; 8768: char *negative_sign; 8768: char int_frac_digits; 8768: char frac_digits; 8768: 8768: char p_cs_precedes; 8768: 8768: char p_sep_by_space; 8768: 8768: char n_cs_precedes; 8768: 8768: char n_sep_by_space; 8768: 8768: 8768: 8768: 8768: 8768: 8768: char p_sign_posn; 8768: char n_sign_posn; 8768: 8768: 8768: char int_p_cs_precedes; 8768: 8768: char int_p_sep_by_space; 8768: 8768: char int_n_cs_precedes; 8768: 8768: char int_n_sep_by_space; 8768: 8768: 8768: 8768: 8768: 8768: 8768: char int_p_sign_posn; 8768: char int_n_sign_posn; 8768: # 118 "/usr/include/locale.h" 3 4 8768: }; 8768: 8768: 8768: 8768: extern char *setlocale (int __category, const char *__locale) throw (); 8768: 8768: 8768: extern struct lconv *localeconv (void) throw (); 8768: # 141 "/usr/include/locale.h" 3 4 8768: extern locale_t newlocale (int __category_mask, const char *__locale, 8768: locale_t __base) throw (); 8768: # 176 "/usr/include/locale.h" 3 4 8768: extern locale_t duplocale (locale_t __dataset) throw (); 8768: 8768: 8768: 8768: extern void freelocale (locale_t __dataset) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern locale_t uselocale (locale_t __dataset) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: # 43 "/usr/include/c++/8/clocale" 2 3 8768: # 51 "/usr/include/c++/8/clocale" 3 8768: namespace std 8768: { 8768: using ::lconv; 8768: using ::setlocale; 8768: using ::localeconv; 8768: } 8768: # 42 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: extern "C" __typeof(uselocale) __uselocale; 8768: 8768: 8768: } 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: typedef __locale_t __c_locale; 8768: 8768: 8768: 8768: 8768: 8768: inline int 8768: __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), 8768: char* __out, 8768: const int __size __attribute__ ((__unused__)), 8768: const char* __fmt, ...) 8768: { 8768: 8768: __c_locale __old = __gnu_cxx::__uselocale(__cloc); 8768: # 88 "/usr/include/x86_64-linux-gnu/c++/8/bits/c++locale.h" 3 8768: __builtin_va_list __args; 8768: __builtin_va_start(__args, __fmt); 8768: 8768: 8768: const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); 8768: 8768: 8768: 8768: 8768: __builtin_va_end(__args); 8768: 8768: 8768: __gnu_cxx::__uselocale(__old); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: return __ret; 8768: } 8768: 8768: 8768: } 8768: # 41 "/usr/include/c++/8/bits/localefwd.h" 2 3 8768: # 1 "/usr/include/c++/8/iosfwd" 1 3 8768: # 36 "/usr/include/c++/8/iosfwd" 3 8768: 8768: # 37 "/usr/include/c++/8/iosfwd" 3 8768: 8768: 8768: 8768: [ 94%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/now.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 74 "/usr/include/c++/8/iosfwd" 3 8768: class ios_base; 8768: 8768: template > 8768: class basic_ios; 8768: 8768: template > 8768: class basic_streambuf; 8768: 8768: template > 8768: class basic_istream; 8768: 8768: template > 8768: class basic_ostream; 8768: 8768: template > 8768: class basic_iostream; 8768: 8768: 8768: namespace __cxx11 { 8768: 8768: template, 8768: typename _Alloc = allocator<_CharT> > 8768: class basic_stringbuf; 8768: 8768: template, 8768: typename _Alloc = allocator<_CharT> > 8768: class basic_istringstream; 8768: 8768: template, 8768: typename _Alloc = allocator<_CharT> > 8768: class basic_ostringstream; 8768: 8768: template, 8768: typename _Alloc = allocator<_CharT> > 8768: class basic_stringstream; 8768: 8768: } 8768: 8768: template > 8768: class basic_filebuf; 8768: 8768: template > 8768: class basic_ifstream; 8768: 8768: template > 8768: class basic_ofstream; 8768: 8768: template > 8768: class basic_fstream; 8768: 8768: template > 8768: class istreambuf_iterator; 8768: 8768: template > 8768: class ostreambuf_iterator; 8768: 8768: 8768: 8768: typedef basic_ios ios; 8768: 8768: 8768: typedef basic_streambuf streambuf; 8768: 8768: 8768: typedef basic_istream istream; 8768: 8768: 8768: typedef basic_ostream ostream; 8768: 8768: 8768: typedef basic_iostream iostream; 8768: 8768: 8768: typedef basic_stringbuf stringbuf; 8768: 8768: 8768: typedef basic_istringstream istringstream; 8768: 8768: 8768: typedef basic_ostringstream ostringstream; 8768: 8768: 8768: typedef basic_stringstream stringstream; 8768: 8768: 8768: typedef basic_filebuf filebuf; 8768: 8768: 8768: typedef basic_ifstream ifstream; 8768: 8768: 8768: typedef basic_ofstream ofstream; 8768: 8768: 8768: typedef basic_fstream fstream; 8768: 8768: 8768: 8768: typedef basic_ios wios; 8768: 8768: 8768: typedef basic_streambuf wstreambuf; 8768: 8768: 8768: typedef basic_istream wistream; 8768: 8768: 8768: typedef basic_ostream wostream; 8768: 8768: 8768: typedef basic_iostream wiostream; 8768: 8768: 8768: typedef basic_stringbuf wstringbuf; 8768: 8768: 8768: typedef basic_istringstream wistringstream; 8768: 8768: 8768: typedef basic_ostringstream wostringstream; 8768: 8768: 8768: typedef basic_stringstream wstringstream; 8768: 8768: 8768: typedef basic_filebuf wfilebuf; 8768: 8768: 8768: typedef basic_ifstream wifstream; 8768: 8768: 8768: typedef basic_ofstream wofstream; 8768: 8768: 8768: typedef basic_fstream wfstream; 8768: 8768: 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/bits/localefwd.h" 2 3 8768: # 1 "/usr/include/c++/8/cctype" 1 3 8768: # 39 "/usr/include/c++/8/cctype" 3 8768: 8768: # 40 "/usr/include/c++/8/cctype" 3 8768: 8768: 8768: # 1 "/usr/include/ctype.h" 1 3 4 8768: # 28 "/usr/include/ctype.h" 3 4 8768: extern "C" { 8768: # 46 "/usr/include/ctype.h" 3 4 8768: enum 8768: { 8768: _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 8768: _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 8768: _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 8768: _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 8768: _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 8768: _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 8768: _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 8768: _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 8768: _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 8768: _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 8768: _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 8768: _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 8768: }; 8768: # 79 "/usr/include/ctype.h" 3 4 8768: extern const unsigned short int **__ctype_b_loc (void) 8768: throw () __attribute__ ((__const__)); 8768: extern const __int32_t **__ctype_tolower_loc (void) 8768: throw () __attribute__ ((__const__)); 8768: extern const __int32_t **__ctype_toupper_loc (void) 8768: throw () __attribute__ ((__const__)); 8768: # 108 "/usr/include/ctype.h" 3 4 8768: extern int isalnum (int) throw (); 8768: extern int isalpha (int) throw (); 8768: extern int iscntrl (int) throw (); 8768: extern int isdigit (int) throw (); 8768: extern int islower (int) throw (); 8768: extern int isgraph (int) throw (); 8768: extern int isprint (int) throw (); 8768: extern int ispunct (int) throw (); 8768: extern int isspace (int) throw (); 8768: extern int isupper (int) throw (); 8768: extern int isxdigit (int) throw (); 8768: 8768: 8768: 8768: extern int tolower (int __c) throw (); 8768: 8768: 8768: extern int toupper (int __c) throw (); 8768: 8768: 8768: 8768: 8768: extern int isblank (int) throw (); 8768: 8768: 8768: 8768: 8768: extern int isctype (int __c, int __mask) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int isascii (int __c) throw (); 8768: 8768: 8768: 8768: extern int toascii (int __c) throw (); 8768: 8768: 8768: 8768: extern int _toupper (int) throw (); 8768: extern int _tolower (int) throw (); 8768: # 251 "/usr/include/ctype.h" 3 4 8768: extern int isalnum_l (int, locale_t) throw (); 8768: extern int isalpha_l (int, locale_t) throw (); 8768: extern int iscntrl_l (int, locale_t) throw (); 8768: extern int isdigit_l (int, locale_t) throw (); 8768: extern int islower_l (int, locale_t) throw (); 8768: extern int isgraph_l (int, locale_t) throw (); 8768: extern int isprint_l (int, locale_t) throw (); 8768: extern int ispunct_l (int, locale_t) throw (); 8768: extern int isspace_l (int, locale_t) throw (); 8768: extern int isupper_l (int, locale_t) throw (); 8768: extern int isxdigit_l (int, locale_t) throw (); 8768: 8768: extern int isblank_l (int, locale_t) throw (); 8768: 8768: 8768: 8768: extern int __tolower_l (int __c, locale_t __l) throw (); 8768: extern int tolower_l (int __c, locale_t __l) throw (); 8768: 8768: 8768: extern int __toupper_l (int __c, locale_t __l) throw (); 8768: extern int toupper_l (int __c, locale_t __l) throw (); 8768: # 327 "/usr/include/ctype.h" 3 4 8768: } 8768: # 43 "/usr/include/c++/8/cctype" 2 3 8768: # 62 "/usr/include/c++/8/cctype" 3 8768: namespace std 8768: { 8768: using ::isalnum; 8768: using ::isalpha; 8768: using ::iscntrl; 8768: using ::isdigit; 8768: using ::isgraph; 8768: using ::islower; 8768: using ::isprint; 8768: using ::ispunct; 8768: using ::isspace; 8768: using ::isupper; 8768: using ::isxdigit; 8768: using ::tolower; 8768: using ::toupper; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace std 8768: { 8768: using ::isblank; 8768: } 8768: # 43 "/usr/include/c++/8/bits/localefwd.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 55 "/usr/include/c++/8/bits/localefwd.h" 3 8768: class locale; 8768: 8768: template 8768: bool 8768: has_facet(const locale&) throw(); 8768: 8768: template 8768: const _Facet& 8768: use_facet(const locale&); 8768: 8768: 8768: template 8768: bool 8768: isspace(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isprint(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: iscntrl(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isupper(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: islower(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isalpha(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isdigit(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: ispunct(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isxdigit(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isalnum(_CharT, const locale&); 8768: 8768: template 8768: bool 8768: isgraph(_CharT, const locale&); 8768: 8768: 8768: template 8768: bool 8768: isblank(_CharT, const locale&); 8768: 8768: 8768: template 8768: _CharT 8768: toupper(_CharT, const locale&); 8768: 8768: template 8768: _CharT 8768: tolower(_CharT, const locale&); 8768: 8768: 8768: class ctype_base; 8768: template 8768: class ctype; 8768: template<> class ctype; 8768: 8768: template<> class ctype; 8768: 8768: template 8768: class ctype_byname; 8768: 8768: 8768: class codecvt_base; 8768: template 8768: class codecvt; 8768: template<> class codecvt; 8768: 8768: template<> class codecvt; 8768: 8768: template 8768: class codecvt_byname; 8768: 8768: 8768: 8768: template > 8768: class num_get; 8768: template > 8768: class num_put; 8768: 8768: namespace __cxx11 { 8768: template class numpunct; 8768: template class numpunct_byname; 8768: } 8768: 8768: namespace __cxx11 { 8768: 8768: template 8768: class collate; 8768: template 8768: class collate_byname; 8768: } 8768: 8768: 8768: class time_base; 8768: namespace __cxx11 { 8768: template > 8768: class time_get; 8768: template > 8768: class time_get_byname; 8768: } 8768: template > 8768: class time_put; 8768: template > 8768: class time_put_byname; 8768: 8768: 8768: class money_base; 8768: namespace __cxx11 { 8768: template > 8768: class money_get; 8768: template > 8768: class money_put; 8768: } 8768: namespace __cxx11 { 8768: template 8768: class moneypunct; 8768: template 8768: class moneypunct_byname; 8768: } 8768: 8768: 8768: class messages_base; 8768: namespace __cxx11 { 8768: template 8768: class messages; 8768: template 8768: class messages_byname; 8768: } 8768: 8768: 8768: } 8768: # 44 "/usr/include/c++/8/string" 2 3 8768: # 1 "/usr/include/c++/8/bits/ostream_insert.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/ostream_insert.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/ostream_insert.h" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/cxxabi_forced.h" 1 3 8768: # 34 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8768: 8768: # 35 "/usr/include/c++/8/bits/cxxabi_forced.h" 3 8768: 8768: #pragma GCC visibility push(default) 8768: 8768: 8768: namespace __cxxabiv1 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class __forced_unwind 8768: { 8768: virtual ~__forced_unwind() throw(); 8768: 8768: 8768: virtual void __pure_dummy() = 0; 8768: }; 8768: } 8768: 8768: 8768: #pragma GCC visibility pop 8768: # 37 "/usr/include/c++/8/bits/ostream_insert.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: inline void 8768: __ostream_write(basic_ostream<_CharT, _Traits>& __out, 8768: const _CharT* __s, streamsize __n) 8768: { 8768: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8768: typedef typename __ostream_type::ios_base __ios_base; 8768: 8768: const streamsize __put = __out.rdbuf()->sputn(__s, __n); 8768: if (__put != __n) 8768: __out.setstate(__ios_base::badbit); 8768: } 8768: 8768: template 8768: inline void 8768: __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) 8768: { 8768: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8768: typedef typename __ostream_type::ios_base __ios_base; 8768: 8768: const _CharT __c = __out.fill(); 8768: for (; __n > 0; --__n) 8768: { 8768: const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); 8768: if (_Traits::eq_int_type(__put, _Traits::eof())) 8768: { 8768: __out.setstate(__ios_base::badbit); 8768: break; 8768: } 8768: } 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: __ostream_insert(basic_ostream<_CharT, _Traits>& __out, 8768: const _CharT* __s, streamsize __n) 8768: { 8768: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8768: typedef typename __ostream_type::ios_base __ios_base; 8768: 8768: typename __ostream_type::sentry __cerb(__out); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: const streamsize __w = __out.width(); 8768: if (__w > __n) 8768: { 8768: const bool __left = ((__out.flags() 8768: & __ios_base::adjustfield) 8768: == __ios_base::left); 8768: if (!__left) 8768: __ostream_fill(__out, __w - __n); 8768: if (__out.good()) 8768: __ostream_write(__out, __s, __n); 8768: if (__left && __out.good()) 8768: __ostream_fill(__out, __w - __n); 8768: } 8768: else 8768: __ostream_write(__out, __s, __n); 8768: __out.width(0); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __out._M_setstate(__ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { __out._M_setstate(__ios_base::badbit); } 8768: } 8768: return __out; 8768: } 8768: 8768: 8768: 8768: 8768: extern template ostream& __ostream_insert(ostream&, const char*, streamsize); 8768: 8768: 8768: extern template wostream& __ostream_insert(wostream&, const wchar_t*, 8768: streamsize); 8768: 8768: 8768: 8768: 8768: } 8768: # 45 "/usr/include/c++/8/string" 2 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_function.h" 1 3 8768: # 63 "/usr/include/c++/8/bits/stl_function.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 104 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: struct unary_function 8768: { 8768: 8768: typedef _Arg argument_type; 8768: 8768: 8768: typedef _Result result_type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct binary_function 8768: { 8768: 8768: typedef _Arg1 first_argument_type; 8768: 8768: 8768: typedef _Arg2 second_argument_type; 8768: 8768: 8768: typedef _Result result_type; 8768: }; 8768: # 166 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: struct plus : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x + __y; } 8768: }; 8768: 8768: 8768: template 8768: struct minus : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x - __y; } 8768: }; 8768: 8768: 8768: template 8768: struct multiplies : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x * __y; } 8768: }; 8768: 8768: 8768: template 8768: struct divides : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x / __y; } 8768: }; 8768: 8768: 8768: template 8768: struct modulus : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x % __y; } 8768: }; 8768: 8768: 8768: template 8768: struct negate : public unary_function<_Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x) const 8768: { return -__x; } 8768: }; 8768: # 350 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: struct equal_to : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x == __y; } 8768: }; 8768: 8768: 8768: template 8768: struct not_equal_to : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x != __y; } 8768: }; 8768: 8768: 8768: template 8768: struct greater : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x > __y; } 8768: }; 8768: 8768: 8768: template 8768: struct less : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x < __y; } 8768: }; 8768: 8768: 8768: template 8768: struct greater_equal : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x >= __y; } 8768: }; 8768: 8768: 8768: template 8768: struct less_equal : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x <= __y; } 8768: }; 8768: # 523 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: struct logical_and : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x && __y; } 8768: }; 8768: 8768: 8768: template 8768: struct logical_or : public binary_function<_Tp, _Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x || __y; } 8768: }; 8768: 8768: 8768: template 8768: struct logical_not : public unary_function<_Tp, bool> 8768: { 8768: 8768: bool 8768: operator()(const _Tp& __x) const 8768: { return !__x; } 8768: }; 8768: # 616 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: struct bit_and : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x & __y; } 8768: }; 8768: 8768: template 8768: struct bit_or : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x | __y; } 8768: }; 8768: 8768: template 8768: struct bit_xor : public binary_function<_Tp, _Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x, const _Tp& __y) const 8768: { return __x ^ __y; } 8768: }; 8768: 8768: template 8768: struct bit_not : public unary_function<_Tp, _Tp> 8768: { 8768: 8768: _Tp 8768: operator()(const _Tp& __x) const 8768: { return ~__x; } 8768: }; 8768: # 740 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: class unary_negate 8768: : public unary_function 8768: { 8768: protected: 8768: _Predicate _M_pred; 8768: 8768: public: 8768: 8768: explicit 8768: unary_negate(const _Predicate& __x) : _M_pred(__x) { } 8768: 8768: 8768: bool 8768: operator()(const typename _Predicate::argument_type& __x) const 8768: { return !_M_pred(__x); } 8768: }; 8768: 8768: 8768: template 8768: 8768: inline unary_negate<_Predicate> 8768: not1(const _Predicate& __pred) 8768: { return unary_negate<_Predicate>(__pred); } 8768: 8768: 8768: template 8768: class binary_negate 8768: : public binary_function 8768: { 8768: protected: 8768: _Predicate _M_pred; 8768: 8768: public: 8768: 8768: explicit 8768: binary_negate(const _Predicate& __x) : _M_pred(__x) { } 8768: 8768: 8768: bool 8768: operator()(const typename _Predicate::first_argument_type& __x, 8768: const typename _Predicate::second_argument_type& __y) const 8768: { return !_M_pred(__x, __y); } 8768: }; 8768: 8768: 8768: template 8768: 8768: inline binary_negate<_Predicate> 8768: not2(const _Predicate& __pred) 8768: { return binary_negate<_Predicate>(__pred); } 8768: # 817 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: class pointer_to_unary_function : public unary_function<_Arg, _Result> 8768: { 8768: protected: 8768: _Result (*_M_ptr)(_Arg); 8768: 8768: public: 8768: pointer_to_unary_function() { } 8768: 8768: explicit 8768: pointer_to_unary_function(_Result (*__x)(_Arg)) 8768: : _M_ptr(__x) { } 8768: 8768: _Result 8768: operator()(_Arg __x) const 8768: { return _M_ptr(__x); } 8768: }; 8768: 8768: 8768: template 8768: inline pointer_to_unary_function<_Arg, _Result> 8768: ptr_fun(_Result (*__x)(_Arg)) 8768: { return pointer_to_unary_function<_Arg, _Result>(__x); } 8768: 8768: 8768: template 8768: class pointer_to_binary_function 8768: : public binary_function<_Arg1, _Arg2, _Result> 8768: { 8768: protected: 8768: _Result (*_M_ptr)(_Arg1, _Arg2); 8768: 8768: public: 8768: pointer_to_binary_function() { } 8768: 8768: explicit 8768: pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 8768: : _M_ptr(__x) { } 8768: 8768: _Result 8768: operator()(_Arg1 __x, _Arg2 __y) const 8768: { return _M_ptr(__x, __y); } 8768: }; 8768: 8768: 8768: template 8768: inline pointer_to_binary_function<_Arg1, _Arg2, _Result> 8768: ptr_fun(_Result (*__x)(_Arg1, _Arg2)) 8768: { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } 8768: 8768: 8768: template 8768: struct _Identity 8768: : public unary_function<_Tp, _Tp> 8768: { 8768: _Tp& 8768: operator()(_Tp& __x) const 8768: { return __x; } 8768: 8768: const _Tp& 8768: operator()(const _Tp& __x) const 8768: { return __x; } 8768: }; 8768: 8768: 8768: template struct _Identity : _Identity<_Tp> { }; 8768: 8768: template 8768: struct _Select1st 8768: : public unary_function<_Pair, typename _Pair::first_type> 8768: { 8768: typename _Pair::first_type& 8768: operator()(_Pair& __x) const 8768: { return __x.first; } 8768: 8768: const typename _Pair::first_type& 8768: operator()(const _Pair& __x) const 8768: { return __x.first; } 8768: 8768: 8768: template 8768: typename _Pair2::first_type& 8768: operator()(_Pair2& __x) const 8768: { return __x.first; } 8768: 8768: template 8768: const typename _Pair2::first_type& 8768: operator()(const _Pair2& __x) const 8768: { return __x.first; } 8768: 8768: }; 8768: 8768: template 8768: struct _Select2nd 8768: : public unary_function<_Pair, typename _Pair::second_type> 8768: { 8768: typename _Pair::second_type& 8768: operator()(_Pair& __x) const 8768: { return __x.second; } 8768: 8768: const typename _Pair::second_type& 8768: operator()(const _Pair& __x) const 8768: { return __x.second; } 8768: }; 8768: # 940 "/usr/include/c++/8/bits/stl_function.h" 3 8768: template 8768: class mem_fun_t : public unary_function<_Tp*, _Ret> 8768: { 8768: public: 8768: explicit 8768: mem_fun_t(_Ret (_Tp::*__pf)()) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(_Tp* __p) const 8768: { return (__p->*_M_f)(); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)(); 8768: }; 8768: 8768: 8768: 8768: template 8768: class const_mem_fun_t : public unary_function 8768: { 8768: public: 8768: explicit 8768: const_mem_fun_t(_Ret (_Tp::*__pf)() const) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(const _Tp* __p) const 8768: { return (__p->*_M_f)(); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)() const; 8768: }; 8768: 8768: 8768: 8768: template 8768: class mem_fun_ref_t : public unary_function<_Tp, _Ret> 8768: { 8768: public: 8768: explicit 8768: mem_fun_ref_t(_Ret (_Tp::*__pf)()) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(_Tp& __r) const 8768: { return (__r.*_M_f)(); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)(); 8768: }; 8768: 8768: 8768: 8768: template 8768: class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> 8768: { 8768: public: 8768: explicit 8768: const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(const _Tp& __r) const 8768: { return (__r.*_M_f)(); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)() const; 8768: }; 8768: 8768: 8768: 8768: template 8768: class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> 8768: { 8768: public: 8768: explicit 8768: mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(_Tp* __p, _Arg __x) const 8768: { return (__p->*_M_f)(__x); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)(_Arg); 8768: }; 8768: 8768: 8768: 8768: template 8768: class const_mem_fun1_t : public binary_function 8768: { 8768: public: 8768: explicit 8768: const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(const _Tp* __p, _Arg __x) const 8768: { return (__p->*_M_f)(__x); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)(_Arg) const; 8768: }; 8768: 8768: 8768: 8768: template 8768: class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8768: { 8768: public: 8768: explicit 8768: mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(_Tp& __r, _Arg __x) const 8768: { return (__r.*_M_f)(__x); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)(_Arg); 8768: }; 8768: 8768: 8768: 8768: template 8768: class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> 8768: { 8768: public: 8768: explicit 8768: const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) 8768: : _M_f(__pf) { } 8768: 8768: _Ret 8768: operator()(const _Tp& __r, _Arg __x) const 8768: { return (__r.*_M_f)(__x); } 8768: 8768: private: 8768: _Ret (_Tp::*_M_f)(_Arg) const; 8768: }; 8768: 8768: 8768: 8768: template 8768: inline mem_fun_t<_Ret, _Tp> 8768: mem_fun(_Ret (_Tp::*__f)()) 8768: { return mem_fun_t<_Ret, _Tp>(__f); } 8768: 8768: template 8768: inline const_mem_fun_t<_Ret, _Tp> 8768: mem_fun(_Ret (_Tp::*__f)() const) 8768: { return const_mem_fun_t<_Ret, _Tp>(__f); } 8768: 8768: template 8768: inline mem_fun_ref_t<_Ret, _Tp> 8768: mem_fun_ref(_Ret (_Tp::*__f)()) 8768: { return mem_fun_ref_t<_Ret, _Tp>(__f); } 8768: 8768: template 8768: inline const_mem_fun_ref_t<_Ret, _Tp> 8768: mem_fun_ref(_Ret (_Tp::*__f)() const) 8768: { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } 8768: 8768: template 8768: inline mem_fun1_t<_Ret, _Tp, _Arg> 8768: mem_fun(_Ret (_Tp::*__f)(_Arg)) 8768: { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8768: 8768: template 8768: inline const_mem_fun1_t<_Ret, _Tp, _Arg> 8768: mem_fun(_Ret (_Tp::*__f)(_Arg) const) 8768: { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } 8768: 8768: template 8768: inline mem_fun1_ref_t<_Ret, _Tp, _Arg> 8768: mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) 8768: { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8768: 8768: template 8768: inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> 8768: mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) 8768: { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } 8768: 8768: 8768: 8768: 8768: } 8768: 8768: 8768: # 1 "/usr/include/c++/8/backward/binders.h" 1 3 8768: # 60 "/usr/include/c++/8/backward/binders.h" 3 8768: #pragma GCC diagnostic push 8768: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 107 "/usr/include/c++/8/backward/binders.h" 3 8768: template 8768: class binder1st 8768: : public unary_function 8768: { 8768: protected: 8768: _Operation op; 8768: typename _Operation::first_argument_type value; 8768: 8768: public: 8768: binder1st(const _Operation& __x, 8768: const typename _Operation::first_argument_type& __y) 8768: : op(__x), value(__y) { } 8768: 8768: typename _Operation::result_type 8768: operator()(const typename _Operation::second_argument_type& __x) const 8768: { return op(value, __x); } 8768: 8768: 8768: 8768: typename _Operation::result_type 8768: operator()(typename _Operation::second_argument_type& __x) const 8768: { return op(value, __x); } 8768: } __attribute__ ((__deprecated__)); 8768: 8768: 8768: template 8768: inline binder1st<_Operation> 8768: bind1st(const _Operation& __fn, const _Tp& __x) 8768: { 8768: typedef typename _Operation::first_argument_type _Arg1_type; 8768: return binder1st<_Operation>(__fn, _Arg1_type(__x)); 8768: } 8768: 8768: 8768: template 8768: class binder2nd 8768: : public unary_function 8768: { 8768: protected: 8768: _Operation op; 8768: typename _Operation::second_argument_type value; 8768: 8768: public: 8768: binder2nd(const _Operation& __x, 8768: const typename _Operation::second_argument_type& __y) 8768: : op(__x), value(__y) { } 8768: 8768: typename _Operation::result_type 8768: operator()(const typename _Operation::first_argument_type& __x) const 8768: { return op(__x, value); } 8768: 8768: 8768: 8768: typename _Operation::result_type 8768: operator()(typename _Operation::first_argument_type& __x) const 8768: { return op(__x, value); } 8768: } __attribute__ ((__deprecated__)); 8768: 8768: 8768: template 8768: inline binder2nd<_Operation> 8768: bind2nd(const _Operation& __fn, const _Tp& __x) 8768: { 8768: typedef typename _Operation::second_argument_type _Arg2_type; 8768: return binder2nd<_Operation>(__fn, _Arg2_type(__x)); 8768: } 8768: 8768: 8768: 8768: } 8768: 8768: #pragma GCC diagnostic pop 8768: # 1131 "/usr/include/c++/8/bits/stl_function.h" 2 3 8768: # 49 "/usr/include/c++/8/string" 2 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/range_access.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/range_access.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/range_access.h" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline auto 8768: begin(_Container& __cont) -> decltype(__cont.begin()) 8768: { return __cont.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline auto 8768: begin(const _Container& __cont) -> decltype(__cont.begin()) 8768: { return __cont.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline auto 8768: end(_Container& __cont) -> decltype(__cont.end()) 8768: { return __cont.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline auto 8768: end(const _Container& __cont) -> decltype(__cont.end()) 8768: { return __cont.end(); } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline _Tp* 8768: begin(_Tp (&__arr)[_Nm]) 8768: { return __arr; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline _Tp* 8768: end(_Tp (&__arr)[_Nm]) 8768: { return __arr + _Nm; } 8768: # 323 "/usr/include/c++/8/bits/range_access.h" 3 8768: 8768: } 8768: # 52 "/usr/include/c++/8/string" 2 3 8768: # 1 "/usr/include/c++/8/bits/basic_string.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/basic_string.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/basic_string.h" 3 8768: 8768: # 1 "/usr/include/c++/8/ext/atomicity.h" 1 3 8768: # 32 "/usr/include/c++/8/ext/atomicity.h" 3 8768: 8768: # 33 "/usr/include/c++/8/ext/atomicity.h" 3 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 1 3 8768: # 30 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 3 8768: #pragma GCC visibility push(default) 8768: # 148 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 3 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 1 3 8768: # 35 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: # 1 "/usr/include/pthread.h" 1 3 4 8768: # 23 "/usr/include/pthread.h" 3 4 8768: # 1 "/usr/include/sched.h" 1 3 4 8768: # 29 "/usr/include/sched.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 30 "/usr/include/sched.h" 2 3 4 8768: # 43 "/usr/include/sched.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/sched.h" 1 3 4 8768: # 75 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4 8768: struct sched_param 8768: { 8768: int sched_priority; 8768: }; 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: extern int clone (int (*__fn) (void *__arg), void *__child_stack, 8768: int __flags, void *__arg, ...) throw (); 8768: 8768: 8768: extern int unshare (int __flags) throw (); 8768: 8768: 8768: extern int sched_getcpu (void) throw (); 8768: 8768: 8768: extern int setns (int __fd, int __nstype) throw (); 8768: 8768: 8768: } 8768: # 44 "/usr/include/sched.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 1 3 4 8768: # 32 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 3 4 8768: typedef unsigned long int __cpu_mask; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef struct 8768: { 8768: __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; 8768: } cpu_set_t; 8768: # 115 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 3 4 8768: extern "C" { 8768: 8768: extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) 8768: throw (); 8768: extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); 8768: extern void __sched_cpufree (cpu_set_t *__set) throw (); 8768: 8768: } 8768: # 45 "/usr/include/sched.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern "C" { 8768: 8768: 8768: extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) 8768: throw (); 8768: 8768: 8768: extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); 8768: 8768: 8768: extern int sched_setscheduler (__pid_t __pid, int __policy, 8768: const struct sched_param *__param) throw (); 8768: 8768: 8768: extern int sched_getscheduler (__pid_t __pid) throw (); 8768: 8768: 8768: extern int sched_yield (void) throw (); 8768: 8768: 8768: extern int sched_get_priority_max (int __algorithm) throw (); 8768: 8768: 8768: extern int sched_get_priority_min (int __algorithm) throw (); 8768: 8768: 8768: extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); 8768: # 121 "/usr/include/sched.h" 3 4 8768: extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, 8768: const cpu_set_t *__cpuset) throw (); 8768: 8768: 8768: extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, 8768: cpu_set_t *__cpuset) throw (); 8768: 8768: 8768: } 8768: # 24 "/usr/include/pthread.h" 2 3 4 8768: # 1 "/usr/include/time.h" 1 3 4 8768: # 29 "/usr/include/time.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 30 "/usr/include/time.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 8768: # 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 8768: # 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 8768: struct timex 8768: { 8768: unsigned int modes; 8768: __syscall_slong_t offset; 8768: __syscall_slong_t freq; 8768: __syscall_slong_t maxerror; 8768: __syscall_slong_t esterror; 8768: int status; 8768: __syscall_slong_t constant; 8768: __syscall_slong_t precision; 8768: __syscall_slong_t tolerance; 8768: struct timeval time; 8768: __syscall_slong_t tick; 8768: __syscall_slong_t ppsfreq; 8768: __syscall_slong_t jitter; 8768: int shift; 8768: __syscall_slong_t stabil; 8768: __syscall_slong_t jitcnt; 8768: __syscall_slong_t calcnt; 8768: __syscall_slong_t errcnt; 8768: __syscall_slong_t stbcnt; 8768: 8768: int tai; 8768: 8768: 8768: int :32; int :32; int :32; int :32; 8768: int :32; int :32; int :32; int :32; 8768: int :32; int :32; int :32; 8768: }; 8768: # 74 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 8768: 8768: extern "C" { 8768: 8768: 8768: extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); 8768: 8768: } 8768: # 34 "/usr/include/time.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct tm 8768: { 8768: int tm_sec; 8768: int tm_min; 8768: int tm_hour; 8768: int tm_mday; 8768: int tm_mon; 8768: int tm_year; 8768: int tm_wday; 8768: int tm_yday; 8768: int tm_isdst; 8768: 8768: 8768: long int tm_gmtoff; 8768: const char *tm_zone; 8768: 8768: 8768: 8768: 8768: }; 8768: # 40 "/usr/include/time.h" 2 3 4 8768: # 48 "/usr/include/time.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct itimerspec 8768: { 8768: struct timespec it_interval; 8768: struct timespec it_value; 8768: }; 8768: # 49 "/usr/include/time.h" 2 3 4 8768: struct sigevent; 8768: # 68 "/usr/include/time.h" 3 4 8768: extern "C" { 8768: 8768: 8768: 8768: extern clock_t clock (void) throw (); 8768: 8768: 8768: extern time_t time (time_t *__timer) throw (); 8768: 8768: 8768: extern double difftime (time_t __time1, time_t __time0) 8768: throw () __attribute__ ((__const__)); 8768: 8768: 8768: extern time_t mktime (struct tm *__tp) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern size_t strftime (char *__restrict __s, size_t __maxsize, 8768: const char *__restrict __format, 8768: const struct tm *__restrict __tp) throw (); 8768: 8768: 8768: 8768: 8768: extern char *strptime (const char *__restrict __s, 8768: const char *__restrict __fmt, struct tm *__tp) 8768: throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern size_t strftime_l (char *__restrict __s, size_t __maxsize, 8768: const char *__restrict __format, 8768: const struct tm *__restrict __tp, 8768: locale_t __loc) throw (); 8768: 8768: 8768: 8768: extern char *strptime_l (const char *__restrict __s, 8768: const char *__restrict __fmt, struct tm *__tp, 8768: locale_t __loc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern struct tm *gmtime (const time_t *__timer) throw (); 8768: 8768: 8768: 8768: extern struct tm *localtime (const time_t *__timer) throw (); 8768: 8768: 8768: 8768: 8768: extern struct tm *gmtime_r (const time_t *__restrict __timer, 8768: struct tm *__restrict __tp) throw (); 8768: 8768: 8768: 8768: extern struct tm *localtime_r (const time_t *__restrict __timer, 8768: struct tm *__restrict __tp) throw (); 8768: 8768: 8768: 8768: 8768: extern char *asctime (const struct tm *__tp) throw (); 8768: 8768: 8768: extern char *ctime (const time_t *__timer) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern char *asctime_r (const struct tm *__restrict __tp, 8768: char *__restrict __buf) throw (); 8768: 8768: 8768: extern char *ctime_r (const time_t *__restrict __timer, 8768: char *__restrict __buf) throw (); 8768: 8768: 8768: 8768: 8768: extern char *__tzname[2]; 8768: extern int __daylight; 8768: extern long int __timezone; 8768: 8768: 8768: 8768: 8768: extern char *tzname[2]; 8768: 8768: 8768: 8768: extern void tzset (void) throw (); 8768: 8768: 8768: 8768: extern int daylight; 8768: extern long int timezone; 8768: 8768: 8768: 8768: 8768: 8768: extern int stime (const time_t *__when) throw (); 8768: # 196 "/usr/include/time.h" 3 4 8768: extern time_t timegm (struct tm *__tp) throw (); 8768: 8768: 8768: extern time_t timelocal (struct tm *__tp) throw (); 8768: 8768: 8768: extern int dysize (int __year) throw () __attribute__ ((__const__)); 8768: # 211 "/usr/include/time.h" 3 4 8768: extern int nanosleep (const struct timespec *__requested_time, 8768: struct timespec *__remaining); 8768: 8768: 8768: 8768: extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); 8768: 8768: 8768: extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); 8768: 8768: 8768: extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) 8768: throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int clock_nanosleep (clockid_t __clock_id, int __flags, 8768: const struct timespec *__req, 8768: struct timespec *__rem); 8768: 8768: 8768: extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); 8768: 8768: 8768: 8768: 8768: extern int timer_create (clockid_t __clock_id, 8768: struct sigevent *__restrict __evp, 8768: timer_t *__restrict __timerid) throw (); 8768: 8768: 8768: extern int timer_delete (timer_t __timerid) throw (); 8768: 8768: 8768: extern int timer_settime (timer_t __timerid, int __flags, 8768: const struct itimerspec *__restrict __value, 8768: struct itimerspec *__restrict __ovalue) throw (); 8768: 8768: 8768: extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) 8768: throw (); 8768: 8768: 8768: extern int timer_getoverrun (timer_t __timerid) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int timespec_get (struct timespec *__ts, int __base) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: # 280 "/usr/include/time.h" 3 4 8768: extern int getdate_err; 8768: # 289 "/usr/include/time.h" 3 4 8768: extern struct tm *getdate (const char *__string); 8768: # 303 "/usr/include/time.h" 3 4 8768: extern int getdate_r (const char *__restrict __string, 8768: struct tm *__restrict __resbufp); 8768: 8768: 8768: } 8768: # 25 "/usr/include/pthread.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4 8768: # 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4 8768: 8768: 8768: 8768: 8768: typedef long int __jmp_buf[8]; 8768: # 28 "/usr/include/pthread.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 8768: # 29 "/usr/include/pthread.h" 2 3 4 8768: 8768: 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_CREATE_JOINABLE, 8768: 8768: PTHREAD_CREATE_DETACHED 8768: 8768: }; 8768: 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_MUTEX_TIMED_NP, 8768: PTHREAD_MUTEX_RECURSIVE_NP, 8768: PTHREAD_MUTEX_ERRORCHECK_NP, 8768: PTHREAD_MUTEX_ADAPTIVE_NP 8768: 8768: , 8768: PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 8768: PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 8768: PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 8768: PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 8768: 8768: 8768: 8768: , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_MUTEX_STALLED, 8768: PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 8768: PTHREAD_MUTEX_ROBUST, 8768: PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_PRIO_NONE, 8768: PTHREAD_PRIO_INHERIT, 8768: PTHREAD_PRIO_PROTECT 8768: }; 8768: # 115 "/usr/include/pthread.h" 3 4 8768: enum 8768: { 8768: PTHREAD_RWLOCK_PREFER_READER_NP, 8768: PTHREAD_RWLOCK_PREFER_WRITER_NP, 8768: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 8768: PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 8768: }; 8768: # 156 "/usr/include/pthread.h" 3 4 8768: enum 8768: { 8768: PTHREAD_INHERIT_SCHED, 8768: 8768: PTHREAD_EXPLICIT_SCHED 8768: 8768: }; 8768: 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_SCOPE_SYSTEM, 8768: 8768: PTHREAD_SCOPE_PROCESS 8768: 8768: }; 8768: 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_PROCESS_PRIVATE, 8768: 8768: PTHREAD_PROCESS_SHARED 8768: 8768: }; 8768: # 191 "/usr/include/pthread.h" 3 4 8768: struct _pthread_cleanup_buffer 8768: { 8768: void (*__routine) (void *); 8768: void *__arg; 8768: int __canceltype; 8768: struct _pthread_cleanup_buffer *__prev; 8768: }; 8768: 8768: 8768: enum 8768: { 8768: PTHREAD_CANCEL_ENABLE, 8768: 8768: PTHREAD_CANCEL_DISABLE 8768: 8768: }; 8768: enum 8768: { 8768: PTHREAD_CANCEL_DEFERRED, 8768: 8768: PTHREAD_CANCEL_ASYNCHRONOUS 8768: 8768: }; 8768: # 229 "/usr/include/pthread.h" 3 4 8768: extern "C" { 8768: 8768: 8768: 8768: 8768: extern int pthread_create (pthread_t *__restrict __newthread, 8768: const pthread_attr_t *__restrict __attr, 8768: void *(*__start_routine) (void *), 8768: void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: 8768: 8768: 8768: extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_join (pthread_t __th, void **__thread_return); 8768: 8768: 8768: 8768: 8768: extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, 8768: const struct timespec *__abstime); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_detach (pthread_t __th) throw (); 8768: 8768: 8768: 8768: extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); 8768: 8768: 8768: extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) 8768: throw () __attribute__ ((__const__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_attr_destroy (pthread_attr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, 8768: int *__detachstate) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, 8768: int __detachstate) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, 8768: size_t *__guardsize) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_setguardsize (pthread_attr_t *__attr, 8768: size_t __guardsize) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, 8768: struct sched_param *__restrict __param) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, 8768: const struct sched_param *__restrict 8768: __param) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict 8768: __attr, int *__restrict __policy) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict 8768: __attr, int *__restrict __inherit) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, 8768: int __inherit) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, 8768: int *__restrict __scope) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict 8768: __attr, void **__restrict __stackaddr) 8768: throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, 8768: void *__stackaddr) 8768: throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); 8768: 8768: 8768: extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict 8768: __attr, size_t *__restrict __stacksize) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern int pthread_attr_setstacksize (pthread_attr_t *__attr, 8768: size_t __stacksize) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, 8768: void **__restrict __stackaddr, 8768: size_t *__restrict __stacksize) 8768: throw () __attribute__ ((__nonnull__ (1, 2, 3))); 8768: 8768: 8768: 8768: 8768: extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, 8768: size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, 8768: size_t __cpusetsize, 8768: const cpu_set_t *__cpuset) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: 8768: extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, 8768: size_t __cpusetsize, 8768: cpu_set_t *__cpuset) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: extern int pthread_getattr_default_np (pthread_attr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_setattr_default_np (const pthread_attr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_setschedparam (pthread_t __target_thread, int __policy, 8768: const struct sched_param *__param) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: 8768: 8768: extern int pthread_getschedparam (pthread_t __target_thread, 8768: int *__restrict __policy, 8768: struct sched_param *__restrict __param) 8768: throw () __attribute__ ((__nonnull__ (2, 3))); 8768: 8768: 8768: extern int pthread_setschedprio (pthread_t __target_thread, int __prio) 8768: throw (); 8768: 8768: 8768: 8768: 8768: extern int pthread_getname_np (pthread_t __target_thread, char *__buf, 8768: size_t __buflen) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: extern int pthread_setname_np (pthread_t __target_thread, const char *__name) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_getconcurrency (void) throw (); 8768: 8768: 8768: extern int pthread_setconcurrency (int __level) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_yield (void) throw (); 8768: 8768: 8768: 8768: 8768: extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, 8768: const cpu_set_t *__cpuset) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: 8768: 8768: extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, 8768: cpu_set_t *__cpuset) 8768: throw () __attribute__ ((__nonnull__ (3))); 8768: # 495 "/usr/include/pthread.h" 3 4 8768: extern int pthread_once (pthread_once_t *__once_control, 8768: void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); 8768: # 507 "/usr/include/pthread.h" 3 4 8768: extern int pthread_setcancelstate (int __state, int *__oldstate); 8768: 8768: 8768: 8768: extern int pthread_setcanceltype (int __type, int *__oldtype); 8768: 8768: 8768: extern int pthread_cancel (pthread_t __th); 8768: 8768: 8768: 8768: 8768: extern void pthread_testcancel (void); 8768: 8768: 8768: 8768: 8768: typedef struct 8768: { 8768: struct 8768: { 8768: __jmp_buf __cancel_jmp_buf; 8768: int __mask_was_saved; 8768: } __cancel_jmp_buf[1]; 8768: void *__pad[4]; 8768: } __pthread_unwind_buf_t __attribute__ ((__aligned__)); 8768: # 541 "/usr/include/pthread.h" 3 4 8768: struct __pthread_cleanup_frame 8768: { 8768: void (*__cancel_routine) (void *); 8768: void *__cancel_arg; 8768: int __do_it; 8768: int __cancel_type; 8768: }; 8768: 8768: 8768: 8768: 8768: class __pthread_cleanup_class 8768: { 8768: void (*__cancel_routine) (void *); 8768: void *__cancel_arg; 8768: int __do_it; 8768: int __cancel_type; 8768: 8768: public: 8768: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) 8768: : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } 8768: ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } 8768: void __setdoit (int __newval) { __do_it = __newval; } 8768: void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, 8768: &__cancel_type); } 8768: void __restore () const { pthread_setcanceltype (__cancel_type, 0); } 8768: }; 8768: # 743 "/usr/include/pthread.h" 3 4 8768: struct __jmp_buf_tag; 8768: extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_mutex_init (pthread_mutex_t *__mutex, 8768: const pthread_mutexattr_t *__mutexattr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_mutex_lock (pthread_mutex_t *__mutex) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, 8768: const struct timespec *__restrict 8768: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_mutex_getprioceiling (const pthread_mutex_t * 8768: __restrict __mutex, 8768: int *__restrict __prioceiling) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, 8768: int __prioceiling, 8768: int *__restrict __old_ceiling) 8768: throw () __attribute__ ((__nonnull__ (1, 3))); 8768: 8768: 8768: 8768: 8768: extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: # 807 "/usr/include/pthread.h" 3 4 8768: extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * 8768: __restrict __attr, 8768: int *__restrict __pshared) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, 8768: int __pshared) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict 8768: __attr, int *__restrict __kind) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: 8768: extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * 8768: __restrict __attr, 8768: int *__restrict __protocol) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, 8768: int __protocol) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * 8768: __restrict __attr, 8768: int *__restrict __prioceiling) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, 8768: int __prioceiling) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, 8768: int *__robustness) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, 8768: int *__robustness) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, 8768: int __robustness) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, 8768: int __robustness) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: # 889 "/usr/include/pthread.h" 3 4 8768: extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, 8768: const pthread_rwlockattr_t *__restrict 8768: __attr) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, 8768: const struct timespec *__restrict 8768: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, 8768: const struct timespec *__restrict 8768: __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: 8768: extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * 8768: __restrict __attr, 8768: int *__restrict __pshared) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, 8768: int __pshared) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * 8768: __restrict __attr, 8768: int *__restrict __pref) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, 8768: int __pref) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_cond_init (pthread_cond_t *__restrict __cond, 8768: const pthread_condattr_t *__restrict __cond_attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_cond_destroy (pthread_cond_t *__cond) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_cond_signal (pthread_cond_t *__cond) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_cond_broadcast (pthread_cond_t *__cond) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, 8768: pthread_mutex_t *__restrict __mutex) 8768: __attribute__ ((__nonnull__ (1, 2))); 8768: # 1001 "/usr/include/pthread.h" 3 4 8768: extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, 8768: pthread_mutex_t *__restrict __mutex, 8768: const struct timespec *__restrict __abstime) 8768: __attribute__ ((__nonnull__ (1, 2, 3))); 8768: 8768: 8768: 8768: 8768: extern int pthread_condattr_init (pthread_condattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_condattr_destroy (pthread_condattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_condattr_getpshared (const pthread_condattr_t * 8768: __restrict __attr, 8768: int *__restrict __pshared) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, 8768: int __pshared) throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_condattr_getclock (const pthread_condattr_t * 8768: __restrict __attr, 8768: __clockid_t *__restrict __clock_id) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_condattr_setclock (pthread_condattr_t *__attr, 8768: __clockid_t __clock_id) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: # 1045 "/usr/include/pthread.h" 3 4 8768: extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_spin_destroy (pthread_spinlock_t *__lock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_spin_lock (pthread_spinlock_t *__lock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_spin_trylock (pthread_spinlock_t *__lock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_spin_unlock (pthread_spinlock_t *__lock) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 8768: const pthread_barrierattr_t *__restrict 8768: __attr, unsigned int __count) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: 8768: extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * 8768: __restrict __attr, 8768: int *__restrict __pshared) 8768: throw () __attribute__ ((__nonnull__ (1, 2))); 8768: 8768: 8768: extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, 8768: int __pshared) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: # 1112 "/usr/include/pthread.h" 3 4 8768: extern int pthread_key_create (pthread_key_t *__key, 8768: void (*__destr_function) (void *)) 8768: throw () __attribute__ ((__nonnull__ (1))); 8768: 8768: 8768: extern int pthread_key_delete (pthread_key_t __key) throw (); 8768: 8768: 8768: extern void *pthread_getspecific (pthread_key_t __key) throw (); 8768: 8768: 8768: extern int pthread_setspecific (pthread_key_t __key, 8768: const void *__pointer) throw () ; 8768: 8768: 8768: 8768: 8768: extern int pthread_getcpuclockid (pthread_t __thread_id, 8768: __clockid_t *__clock_id) 8768: throw () __attribute__ ((__nonnull__ (2))); 8768: # 1146 "/usr/include/pthread.h" 3 4 8768: extern int pthread_atfork (void (*__prepare) (void), 8768: void (*__parent) (void), 8768: void (*__child) (void)) throw (); 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: __attribute__ ((__leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () 8768: { 8768: return __thread1 == __thread2; 8768: } 8768: 8768: 8768: } 8768: # 36 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 2 3 8768: # 47 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: typedef pthread_t __gthread_t; 8768: typedef pthread_key_t __gthread_key_t; 8768: typedef pthread_once_t __gthread_once_t; 8768: typedef pthread_mutex_t __gthread_mutex_t; 8768: typedef pthread_mutex_t __gthread_recursive_mutex_t; 8768: typedef pthread_cond_t __gthread_cond_t; 8768: typedef struct timespec __gthread_time_t; 8768: # 101 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); 8768: static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); 8768: static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); 8768: 8768: static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); 8768: static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join"))); 8768: static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal"))); 8768: static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self"))); 8768: static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach"))); 8768: 8768: static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); 8768: 8768: static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield"))); 8768: 8768: static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); 8768: static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); 8768: 8768: static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock"))); 8768: 8768: static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); 8768: static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); 8768: static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy"))); 8768: 8768: static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init"))); 8768: static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); 8768: static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal"))); 8768: static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); 8768: static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait"))); 8768: static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy"))); 8768: 8768: static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); 8768: static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); 8768: static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); 8768: static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); 8768: static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); 8768: # 236 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create"))); 8768: # 246 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: static inline int 8768: __gthread_active_p (void) 8768: { 8768: static void *const __gthread_active_ptr 8768: = __extension__ (void *) &__gthrw___pthread_key_create; 8768: return __gthread_active_ptr != 0; 8768: } 8768: # 658 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: static inline int 8768: __gthread_create (__gthread_t *__threadid, void *(*__func) (void*), 8768: void *__args) 8768: { 8768: return __gthrw_pthread_create (__threadid, __null, __func, __args); 8768: } 8768: 8768: static inline int 8768: __gthread_join (__gthread_t __threadid, void **__value_ptr) 8768: { 8768: return __gthrw_pthread_join (__threadid, __value_ptr); 8768: } 8768: 8768: static inline int 8768: __gthread_detach (__gthread_t __threadid) 8768: { 8768: return __gthrw_pthread_detach (__threadid); 8768: } 8768: 8768: static inline int 8768: __gthread_equal (__gthread_t __t1, __gthread_t __t2) 8768: { 8768: return __gthrw_pthread_equal (__t1, __t2); 8768: } 8768: 8768: static inline __gthread_t 8768: __gthread_self (void) 8768: { 8768: return __gthrw_pthread_self (); 8768: } 8768: 8768: static inline int 8768: __gthread_yield (void) 8768: { 8768: return __gthrw_sched_yield (); 8768: } 8768: 8768: static inline int 8768: __gthread_once (__gthread_once_t *__once, void (*__func) (void)) 8768: { 8768: if (__gthread_active_p ()) 8768: return __gthrw_pthread_once (__once, __func); 8768: else 8768: return -1; 8768: } 8768: 8768: static inline int 8768: __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) 8768: { 8768: return __gthrw_pthread_key_create (__key, __dtor); 8768: } 8768: 8768: static inline int 8768: __gthread_key_delete (__gthread_key_t __key) 8768: { 8768: return __gthrw_pthread_key_delete (__key); 8768: } 8768: 8768: static inline void * 8768: __gthread_getspecific (__gthread_key_t __key) 8768: { 8768: return __gthrw_pthread_getspecific (__key); 8768: } 8768: 8768: static inline int 8768: __gthread_setspecific (__gthread_key_t __key, const void *__ptr) 8768: { 8768: return __gthrw_pthread_setspecific (__key, __ptr); 8768: } 8768: 8768: static inline void 8768: __gthread_mutex_init_function (__gthread_mutex_t *__mutex) 8768: { 8768: if (__gthread_active_p ()) 8768: __gthrw_pthread_mutex_init (__mutex, __null); 8768: } 8768: 8768: static inline int 8768: __gthread_mutex_destroy (__gthread_mutex_t *__mutex) 8768: { 8768: if (__gthread_active_p ()) 8768: return __gthrw_pthread_mutex_destroy (__mutex); 8768: else 8768: return 0; 8768: } 8768: 8768: static inline int 8768: __gthread_mutex_lock (__gthread_mutex_t *__mutex) 8768: { 8768: if (__gthread_active_p ()) 8768: return __gthrw_pthread_mutex_lock (__mutex); 8768: else 8768: return 0; 8768: } 8768: 8768: static inline int 8768: __gthread_mutex_trylock (__gthread_mutex_t *__mutex) 8768: { 8768: if (__gthread_active_p ()) 8768: return __gthrw_pthread_mutex_trylock (__mutex); 8768: else 8768: return 0; 8768: } 8768: 8768: 8768: static inline int 8768: __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, 8768: const __gthread_time_t *__abs_timeout) 8768: { 8768: if (__gthread_active_p ()) 8768: return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout); 8768: else 8768: return 0; 8768: } 8768: 8768: 8768: static inline int 8768: __gthread_mutex_unlock (__gthread_mutex_t *__mutex) 8768: { 8768: if (__gthread_active_p ()) 8768: return __gthrw_pthread_mutex_unlock (__mutex); 8768: else 8768: return 0; 8768: } 8768: # 807 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: static inline int 8768: __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) 8768: { 8768: return __gthread_mutex_lock (__mutex); 8768: } 8768: 8768: static inline int 8768: __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) 8768: { 8768: return __gthread_mutex_trylock (__mutex); 8768: } 8768: 8768: 8768: static inline int 8768: __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, 8768: const __gthread_time_t *__abs_timeout) 8768: { 8768: return __gthread_mutex_timedlock (__mutex, __abs_timeout); 8768: } 8768: 8768: 8768: static inline int 8768: __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) 8768: { 8768: return __gthread_mutex_unlock (__mutex); 8768: } 8768: 8768: static inline int 8768: __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) 8768: { 8768: return __gthread_mutex_destroy (__mutex); 8768: } 8768: # 849 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h" 3 8768: static inline int 8768: __gthread_cond_broadcast (__gthread_cond_t *__cond) 8768: { 8768: return __gthrw_pthread_cond_broadcast (__cond); 8768: } 8768: 8768: static inline int 8768: __gthread_cond_signal (__gthread_cond_t *__cond) 8768: { 8768: return __gthrw_pthread_cond_signal (__cond); 8768: } 8768: 8768: static inline int 8768: __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) 8768: { 8768: return __gthrw_pthread_cond_wait (__cond, __mutex); 8768: } 8768: 8768: static inline int 8768: __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, 8768: const __gthread_time_t *__abs_timeout) 8768: { 8768: return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout); 8768: } 8768: 8768: static inline int 8768: __gthread_cond_wait_recursive (__gthread_cond_t *__cond, 8768: __gthread_recursive_mutex_t *__mutex) 8768: { 8768: return __gthread_cond_wait (__cond, __mutex); 8768: } 8768: 8768: static inline int 8768: __gthread_cond_destroy (__gthread_cond_t* __cond) 8768: { 8768: return __gthrw_pthread_cond_destroy (__cond); 8768: } 8768: # 149 "/usr/include/x86_64-linux-gnu/c++/8/bits/gthr.h" 2 3 8768: 8768: 8768: #pragma GCC visibility pop 8768: # 36 "/usr/include/c++/8/ext/atomicity.h" 2 3 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/atomic_word.h" 1 3 8768: # 32 "/usr/include/x86_64-linux-gnu/c++/8/bits/atomic_word.h" 3 8768: typedef int _Atomic_word; 8768: # 37 "/usr/include/c++/8/ext/atomicity.h" 2 3 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: static inline _Atomic_word 8768: __exchange_and_add(volatile _Atomic_word* __mem, int __val) 8768: { return __atomic_fetch_add(__mem, __val, 4); } 8768: 8768: static inline void 8768: __atomic_add(volatile _Atomic_word* __mem, int __val) 8768: { __atomic_fetch_add(__mem, __val, 4); } 8768: # 64 "/usr/include/c++/8/ext/atomicity.h" 3 8768: static inline _Atomic_word 8768: __exchange_and_add_single(_Atomic_word* __mem, int __val) 8768: { 8768: _Atomic_word __result = *__mem; 8768: *__mem += __val; 8768: return __result; 8768: } 8768: 8768: static inline void 8768: __atomic_add_single(_Atomic_word* __mem, int __val) 8768: { *__mem += __val; } 8768: 8768: static inline _Atomic_word 8768: __attribute__ ((__unused__)) 8768: __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) 8768: { 8768: 8768: if (__gthread_active_p()) 8768: return __exchange_and_add(__mem, __val); 8768: else 8768: return __exchange_and_add_single(__mem, __val); 8768: 8768: 8768: 8768: } 8768: 8768: static inline void 8768: __attribute__ ((__unused__)) 8768: __atomic_add_dispatch(_Atomic_word* __mem, int __val) 8768: { 8768: 8768: if (__gthread_active_p()) 8768: __atomic_add(__mem, __val); 8768: else 8768: __atomic_add_single(__mem, __val); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: } 8768: # 40 "/usr/include/c++/8/bits/basic_string.h" 2 3 8768: # 52 "/usr/include/c++/8/bits/basic_string.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: namespace __cxx11 { 8768: # 76 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: class basic_string 8768: { 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_CharT>::other _Char_alloc_type; 8768: typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits; 8768: 8768: 8768: public: 8768: typedef _Traits traits_type; 8768: typedef typename _Traits::char_type value_type; 8768: typedef _Char_alloc_type allocator_type; 8768: typedef typename _Alloc_traits::size_type size_type; 8768: typedef typename _Alloc_traits::difference_type difference_type; 8768: typedef typename _Alloc_traits::reference reference; 8768: typedef typename _Alloc_traits::const_reference const_reference; 8768: typedef typename _Alloc_traits::pointer pointer; 8768: typedef typename _Alloc_traits::const_pointer const_pointer; 8768: typedef __gnu_cxx::__normal_iterator iterator; 8768: typedef __gnu_cxx::__normal_iterator 8768: const_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: 8768: 8768: static const size_type npos = static_cast(-1); 8768: 8768: private: 8768: 8768: 8768: 8768: 8768: typedef const_iterator __const_iterator; 8768: # 139 "/usr/include/c++/8/bits/basic_string.h" 3 8768: struct _Alloc_hider : allocator_type 8768: { 8768: 8768: 8768: 8768: 8768: _Alloc_hider(pointer __dat, const _Alloc& __a) 8768: : allocator_type(__a), _M_p(__dat) { } 8768: 8768: _Alloc_hider(pointer __dat, _Alloc&& __a = _Alloc()) 8768: : allocator_type(std::move(__a)), _M_p(__dat) { } 8768: 8768: 8768: pointer _M_p; 8768: }; 8768: 8768: _Alloc_hider _M_dataplus; 8768: size_type _M_string_length; 8768: 8768: enum { _S_local_capacity = 15 / sizeof(_CharT) }; 8768: 8768: union 8768: { 8768: _CharT _M_local_buf[_S_local_capacity + 1]; 8768: size_type _M_allocated_capacity; 8768: }; 8768: 8768: void 8768: _M_data(pointer __p) 8768: { _M_dataplus._M_p = __p; } 8768: 8768: void 8768: _M_length(size_type __length) 8768: { _M_string_length = __length; } 8768: 8768: pointer 8768: _M_data() const 8768: { return _M_dataplus._M_p; } 8768: 8768: pointer 8768: _M_local_data() 8768: { 8768: 8768: return std::pointer_traits::pointer_to(*_M_local_buf); 8768: 8768: 8768: 8768: } 8768: 8768: const_pointer 8768: _M_local_data() const 8768: { 8768: 8768: return std::pointer_traits::pointer_to(*_M_local_buf); 8768: 8768: 8768: 8768: } 8768: 8768: void 8768: _M_capacity(size_type __capacity) 8768: { _M_allocated_capacity = __capacity; } 8768: 8768: void 8768: _M_set_length(size_type __n) 8768: { 8768: _M_length(__n); 8768: traits_type::assign(_M_data()[__n], _CharT()); 8768: } 8768: 8768: bool 8768: _M_is_local() const 8768: { return _M_data() == _M_local_data(); } 8768: 8768: 8768: pointer 8768: _M_create(size_type&, size_type); 8768: 8768: void 8768: _M_dispose() 8768: { 8768: if (!_M_is_local()) 8768: _M_destroy(_M_allocated_capacity); 8768: } 8768: 8768: void 8768: _M_destroy(size_type __size) throw() 8768: { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); } 8768: 8768: 8768: 8768: template 8768: void 8768: _M_construct_aux(_InIterator __beg, _InIterator __end, 8768: std::__false_type) 8768: { 8768: typedef typename iterator_traits<_InIterator>::iterator_category _Tag; 8768: _M_construct(__beg, __end, _Tag()); 8768: } 8768: 8768: 8768: 8768: template 8768: void 8768: _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type) 8768: { _M_construct_aux_2(static_cast(__beg), __end); } 8768: 8768: void 8768: _M_construct_aux_2(size_type __req, _CharT __c) 8768: { _M_construct(__req, __c); } 8768: 8768: template 8768: void 8768: _M_construct(_InIterator __beg, _InIterator __end) 8768: { 8768: typedef typename std::__is_integer<_InIterator>::__type _Integral; 8768: _M_construct_aux(__beg, __end, _Integral()); 8768: } 8768: 8768: 8768: template 8768: void 8768: _M_construct(_InIterator __beg, _InIterator __end, 8768: std::input_iterator_tag); 8768: 8768: 8768: 8768: template 8768: void 8768: _M_construct(_FwdIterator __beg, _FwdIterator __end, 8768: std::forward_iterator_tag); 8768: 8768: void 8768: _M_construct(size_type __req, _CharT __c); 8768: 8768: allocator_type& 8768: _M_get_allocator() 8768: { return _M_dataplus; } 8768: 8768: const allocator_type& 8768: _M_get_allocator() const 8768: { return _M_dataplus; } 8768: 8768: private: 8768: # 298 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: _M_check(size_type __pos, const char* __s) const 8768: { 8768: if (__pos > this->size()) 8768: __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)") 8768: , 8768: __s, __pos, this->size()); 8768: return __pos; 8768: } 8768: 8768: void 8768: _M_check_length(size_type __n1, size_type __n2, const char* __s) const 8768: { 8768: if (this->max_size() - (this->size() - __n1) < __n2) 8768: __throw_length_error((__s)); 8768: } 8768: 8768: 8768: 8768: size_type 8768: _M_limit(size_type __pos, size_type __off) const noexcept 8768: { 8768: const bool __testoff = __off < this->size() - __pos; 8768: return __testoff ? __off : this->size() - __pos; 8768: } 8768: 8768: 8768: bool 8768: _M_disjunct(const _CharT* __s) const noexcept 8768: { 8768: return (less()(__s, _M_data()) 8768: || less()(_M_data() + this->size(), __s)); 8768: } 8768: 8768: 8768: 8768: static void 8768: _S_copy(_CharT* __d, const _CharT* __s, size_type __n) 8768: { 8768: if (__n == 1) 8768: traits_type::assign(*__d, *__s); 8768: else 8768: traits_type::copy(__d, __s, __n); 8768: } 8768: 8768: static void 8768: _S_move(_CharT* __d, const _CharT* __s, size_type __n) 8768: { 8768: if (__n == 1) 8768: traits_type::assign(*__d, *__s); 8768: else 8768: traits_type::move(__d, __s, __n); 8768: } 8768: 8768: static void 8768: _S_assign(_CharT* __d, size_type __n, _CharT __c) 8768: { 8768: if (__n == 1) 8768: traits_type::assign(*__d, __c); 8768: else 8768: traits_type::assign(__d, __n, __c); 8768: } 8768: 8768: 8768: 8768: template 8768: static void 8768: _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) 8768: { 8768: for (; __k1 != __k2; ++__k1, (void)++__p) 8768: traits_type::assign(*__p, *__k1); 8768: } 8768: 8768: static void 8768: _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept 8768: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8768: 8768: static void 8768: _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) 8768: noexcept 8768: { _S_copy_chars(__p, __k1.base(), __k2.base()); } 8768: 8768: static void 8768: _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept 8768: { _S_copy(__p, __k1, __k2 - __k1); } 8768: 8768: static void 8768: _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) 8768: noexcept 8768: { _S_copy(__p, __k1, __k2 - __k1); } 8768: 8768: static int 8768: _S_compare(size_type __n1, size_type __n2) noexcept 8768: { 8768: const difference_type __d = difference_type(__n1 - __n2); 8768: 8768: if (__d > __gnu_cxx::__numeric_traits::__max) 8768: return __gnu_cxx::__numeric_traits::__max; 8768: else if (__d < __gnu_cxx::__numeric_traits::__min) 8768: return __gnu_cxx::__numeric_traits::__min; 8768: else 8768: return int(__d); 8768: } 8768: 8768: void 8768: _M_assign(const basic_string&); 8768: 8768: void 8768: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8768: size_type __len2); 8768: 8768: void 8768: _M_erase(size_type __pos, size_type __n); 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string() 8768: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8768: : _M_dataplus(_M_local_data()) 8768: { _M_set_length(0); } 8768: 8768: 8768: 8768: 8768: explicit 8768: basic_string(const _Alloc& __a) noexcept 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_set_length(0); } 8768: 8768: 8768: 8768: 8768: 8768: basic_string(const basic_string& __str) 8768: : _M_dataplus(_M_local_data(), 8768: _Alloc_traits::_S_select_on_copy(__str._M_get_allocator())) 8768: { _M_construct(__str._M_data(), __str._M_data() + __str.length()); } 8768: # 450 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string(const basic_string& __str, size_type __pos, 8768: const _Alloc& __a = _Alloc()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { 8768: const _CharT* __start = __str._M_data() 8768: + __str._M_check(__pos, "basic_string::basic_string"); 8768: _M_construct(__start, __start + __str._M_limit(__pos, npos)); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string(const basic_string& __str, size_type __pos, 8768: size_type __n) 8768: : _M_dataplus(_M_local_data()) 8768: { 8768: const _CharT* __start = __str._M_data() 8768: + __str._M_check(__pos, "basic_string::basic_string"); 8768: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8768: } 8768: # 481 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string(const basic_string& __str, size_type __pos, 8768: size_type __n, const _Alloc& __a) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { 8768: const _CharT* __start 8768: = __str._M_data() + __str._M_check(__pos, "string::string"); 8768: _M_construct(__start, __start + __str._M_limit(__pos, __n)); 8768: } 8768: # 499 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string(const _CharT* __s, size_type __n, 8768: const _Alloc& __a = _Alloc()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_construct(__s, __s + __n); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_construct(__n, __c); } 8768: # 531 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string(basic_string&& __str) noexcept 8768: : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator())) 8768: { 8768: if (__str._M_is_local()) 8768: { 8768: traits_type::copy(_M_local_buf, __str._M_local_buf, 8768: _S_local_capacity + 1); 8768: } 8768: else 8768: { 8768: _M_data(__str._M_data()); 8768: _M_capacity(__str._M_allocated_capacity); 8768: } 8768: 8768: 8768: 8768: 8768: _M_length(__str.length()); 8768: __str._M_data(__str._M_local_data()); 8768: __str._M_set_length(0); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_construct(__l.begin(), __l.end()); } 8768: 8768: basic_string(const basic_string& __str, const _Alloc& __a) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_construct(__str.begin(), __str.end()); } 8768: 8768: basic_string(basic_string&& __str, const _Alloc& __a) 8768: noexcept(_Alloc_traits::_S_always_equal()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { 8768: if (__str._M_is_local()) 8768: { 8768: traits_type::copy(_M_local_buf, __str._M_local_buf, 8768: _S_local_capacity + 1); 8768: _M_length(__str.length()); 8768: __str._M_set_length(0); 8768: } 8768: else if (_Alloc_traits::_S_always_equal() 8768: || __str.get_allocator() == __a) 8768: { 8768: _M_data(__str._M_data()); 8768: _M_length(__str.length()); 8768: _M_capacity(__str._M_allocated_capacity); 8768: __str._M_data(__str._M_local_buf); 8768: __str._M_set_length(0); 8768: } 8768: else 8768: _M_construct(__str.begin(), __str.end()); 8768: } 8768: # 599 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template> 8768: 8768: 8768: 8768: basic_string(_InputIterator __beg, _InputIterator __end, 8768: const _Alloc& __a = _Alloc()) 8768: : _M_dataplus(_M_local_data(), __a) 8768: { _M_construct(__beg, __end); } 8768: # 646 "/usr/include/c++/8/bits/basic_string.h" 3 8768: ~basic_string() 8768: { _M_dispose(); } 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: operator=(const basic_string& __str) 8768: { 8768: 8768: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8768: { 8768: if (!_Alloc_traits::_S_always_equal() && !_M_is_local() 8768: && _M_get_allocator() != __str._M_get_allocator()) 8768: { 8768: 8768: 8768: if (__str.size() <= _S_local_capacity) 8768: { 8768: _M_destroy(_M_allocated_capacity); 8768: _M_data(_M_local_data()); 8768: _M_set_length(0); 8768: } 8768: else 8768: { 8768: const auto __len = __str.size(); 8768: auto __alloc = __str._M_get_allocator(); 8768: 8768: auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1); 8768: _M_destroy(_M_allocated_capacity); 8768: _M_data(__ptr); 8768: _M_capacity(__len); 8768: _M_set_length(__len); 8768: } 8768: } 8768: std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator()); 8768: } 8768: 8768: return this->assign(__str); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: operator=(const _CharT* __s) 8768: { return this->assign(__s); } 8768: # 703 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: operator=(_CharT __c) 8768: { 8768: this->assign(1, __c); 8768: return *this; 8768: } 8768: # 721 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: operator=(basic_string&& __str) 8768: noexcept(_Alloc_traits::_S_nothrow_move()) 8768: { 8768: if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign() 8768: && !_Alloc_traits::_S_always_equal() 8768: && _M_get_allocator() != __str._M_get_allocator()) 8768: { 8768: 8768: _M_destroy(_M_allocated_capacity); 8768: _M_data(_M_local_data()); 8768: _M_set_length(0); 8768: } 8768: 8768: std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator()); 8768: 8768: if (!__str._M_is_local() 8768: && (_Alloc_traits::_S_propagate_on_move_assign() 8768: || _Alloc_traits::_S_always_equal())) 8768: { 8768: pointer __data = nullptr; 8768: size_type __capacity; 8768: if (!_M_is_local()) 8768: { 8768: if (_Alloc_traits::_S_always_equal()) 8768: { 8768: __data = _M_data(); 8768: __capacity = _M_allocated_capacity; 8768: } 8768: else 8768: _M_destroy(_M_allocated_capacity); 8768: } 8768: 8768: _M_data(__str._M_data()); 8768: _M_length(__str.length()); 8768: _M_capacity(__str._M_allocated_capacity); 8768: if (__data) 8768: { 8768: __str._M_data(__data); 8768: __str._M_capacity(__capacity); 8768: } 8768: else 8768: __str._M_data(__str._M_local_buf); 8768: } 8768: else 8768: assign(__str); 8768: __str.clear(); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: operator=(initializer_list<_CharT> __l) 8768: { 8768: this->assign(__l.begin(), __l.size()); 8768: return *this; 8768: } 8768: # 806 "/usr/include/c++/8/bits/basic_string.h" 3 8768: iterator 8768: begin() noexcept 8768: { return iterator(_M_data()); } 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return const_iterator(_M_data()); } 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() noexcept 8768: { return iterator(_M_data() + this->size()); } 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return const_iterator(_M_data() + this->size()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return reverse_iterator(this->end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return const_reverse_iterator(this->end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return reverse_iterator(this->begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return const_reverse_iterator(this->begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return const_iterator(this->_M_data()); } 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return const_iterator(this->_M_data() + this->size()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return const_reverse_iterator(this->end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return const_reverse_iterator(this->begin()); } 8768: 8768: 8768: public: 8768: 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_string_length; } 8768: 8768: 8768: 8768: size_type 8768: length() const noexcept 8768: { return _M_string_length; } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; } 8768: # 935 "/usr/include/c++/8/bits/basic_string.h" 3 8768: void 8768: resize(size_type __n, _CharT __c); 8768: # 948 "/usr/include/c++/8/bits/basic_string.h" 3 8768: void 8768: resize(size_type __n) 8768: { this->resize(__n, _CharT()); } 8768: 8768: 8768: 8768: void 8768: shrink_to_fit() noexcept 8768: { 8768: 8768: if (capacity() > size()) 8768: { 8768: try 8768: { reserve(0); } 8768: catch(...) 8768: { } 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: size_type 8768: capacity() const noexcept 8768: { 8768: return _M_is_local() ? size_type(_S_local_capacity) 8768: : _M_allocated_capacity; 8768: } 8768: # 997 "/usr/include/c++/8/bits/basic_string.h" 3 8768: void 8768: reserve(size_type __res_arg = 0); 8768: 8768: 8768: 8768: 8768: void 8768: clear() noexcept 8768: { _M_set_length(0); } 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return this->size() == 0; } 8768: # 1026 "/usr/include/c++/8/bits/basic_string.h" 3 8768: const_reference 8768: operator[] (size_type __pos) const noexcept 8768: { 8768: ; 8768: return _M_data()[__pos]; 8768: } 8768: # 1043 "/usr/include/c++/8/bits/basic_string.h" 3 8768: reference 8768: operator[](size_type __pos) 8768: { 8768: 8768: 8768: ; 8768: 8768: ; 8768: return _M_data()[__pos]; 8768: } 8768: # 1064 "/usr/include/c++/8/bits/basic_string.h" 3 8768: const_reference 8768: at(size_type __n) const 8768: { 8768: if (__n >= this->size()) 8768: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8768: 8768: , 8768: __n, this->size()); 8768: return _M_data()[__n]; 8768: } 8768: # 1085 "/usr/include/c++/8/bits/basic_string.h" 3 8768: reference 8768: at(size_type __n) 8768: { 8768: if (__n >= size()) 8768: __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8768: 8768: , 8768: __n, this->size()); 8768: return _M_data()[__n]; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reference 8768: front() noexcept 8768: { 8768: ; 8768: return operator[](0); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const_reference 8768: front() const noexcept 8768: { 8768: ; 8768: return operator[](0); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: reference 8768: back() noexcept 8768: { 8768: ; 8768: return operator[](this->size() - 1); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const_reference 8768: back() const noexcept 8768: { 8768: ; 8768: return operator[](this->size() - 1); 8768: } 8768: # 1148 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: operator+=(const basic_string& __str) 8768: { return this->append(__str); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: operator+=(const _CharT* __s) 8768: { return this->append(__s); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: operator+=(_CharT __c) 8768: { 8768: this->push_back(__c); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: operator+=(initializer_list<_CharT> __l) 8768: { return this->append(__l.begin(), __l.size()); } 8768: # 1201 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: append(const basic_string& __str) 8768: { return _M_append(__str._M_data(), __str.size()); } 8768: # 1218 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: append(const basic_string& __str, size_type __pos, size_type __n) 8768: { return _M_append(__str._M_data() 8768: + __str._M_check(__pos, "basic_string::append"), 8768: __str._M_limit(__pos, __n)); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: append(const _CharT* __s, size_type __n) 8768: { 8768: ; 8768: _M_check_length(size_type(0), __n, "basic_string::append"); 8768: return _M_append(__s, __n); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: append(const _CharT* __s) 8768: { 8768: ; 8768: const size_type __n = traits_type::length(__s); 8768: _M_check_length(size_type(0), __n, "basic_string::append"); 8768: return _M_append(__s, __n); 8768: } 8768: # 1260 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: append(size_type __n, _CharT __c) 8768: { return _M_replace_aux(this->size(), size_type(0), __n, __c); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: append(initializer_list<_CharT> __l) 8768: { return this->append(__l.begin(), __l.size()); } 8768: # 1284 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template> 8768: 8768: 8768: 8768: basic_string& 8768: append(_InputIterator __first, _InputIterator __last) 8768: { return this->replace(end(), end(), __first, __last); } 8768: # 1329 "/usr/include/c++/8/bits/basic_string.h" 3 8768: void 8768: push_back(_CharT __c) 8768: { 8768: const size_type __size = this->size(); 8768: if (__size + 1 > this->capacity()) 8768: this->_M_mutate(__size, size_type(0), 0, size_type(1)); 8768: traits_type::assign(this->_M_data()[__size], __c); 8768: this->_M_set_length(__size + 1); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: assign(const basic_string& __str) 8768: { 8768: this->_M_assign(__str); 8768: return *this; 8768: } 8768: # 1360 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: assign(basic_string&& __str) 8768: noexcept(_Alloc_traits::_S_nothrow_move()) 8768: { 8768: 8768: 8768: return *this = std::move(__str); 8768: } 8768: # 1383 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: assign(const basic_string& __str, size_type __pos, size_type __n) 8768: { return _M_replace(size_type(0), this->size(), __str._M_data() 8768: + __str._M_check(__pos, "basic_string::assign"), 8768: __str._M_limit(__pos, __n)); } 8768: # 1399 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: assign(const _CharT* __s, size_type __n) 8768: { 8768: ; 8768: return _M_replace(size_type(0), this->size(), __s, __n); 8768: } 8768: # 1415 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: assign(const _CharT* __s) 8768: { 8768: ; 8768: return _M_replace(size_type(0), this->size(), __s, 8768: traits_type::length(__s)); 8768: } 8768: # 1432 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: assign(size_type __n, _CharT __c) 8768: { return _M_replace_aux(size_type(0), this->size(), __n, __c); } 8768: # 1445 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template> 8768: 8768: 8768: 8768: basic_string& 8768: assign(_InputIterator __first, _InputIterator __last) 8768: { return this->replace(begin(), end(), __first, __last); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_string& 8768: assign(initializer_list<_CharT> __l) 8768: { return this->assign(__l.begin(), __l.size()); } 8768: # 1513 "/usr/include/c++/8/bits/basic_string.h" 3 8768: iterator 8768: insert(const_iterator __p, size_type __n, _CharT __c) 8768: { 8768: ; 8768: const size_type __pos = __p - begin(); 8768: this->replace(__p, __p, __n, __c); 8768: return iterator(this->_M_data() + __pos); 8768: } 8768: # 1555 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template> 8768: iterator 8768: insert(const_iterator __p, _InputIterator __beg, _InputIterator __end) 8768: { 8768: ; 8768: const size_type __pos = __p - begin(); 8768: this->replace(__p, __p, __beg, __end); 8768: return iterator(this->_M_data() + __pos); 8768: } 8768: # 1591 "/usr/include/c++/8/bits/basic_string.h" 3 8768: void 8768: insert(iterator __p, initializer_list<_CharT> __l) 8768: { 8768: ; 8768: this->insert(__p - begin(), __l.begin(), __l.size()); 8768: } 8768: # 1611 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: insert(size_type __pos1, const basic_string& __str) 8768: { return this->replace(__pos1, size_type(0), 8768: __str._M_data(), __str.size()); } 8768: # 1634 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: insert(size_type __pos1, const basic_string& __str, 8768: size_type __pos2, size_type __n) 8768: { return this->replace(__pos1, size_type(0), __str._M_data() 8768: + __str._M_check(__pos2, "basic_string::insert"), 8768: __str._M_limit(__pos2, __n)); } 8768: # 1657 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: insert(size_type __pos, const _CharT* __s, size_type __n) 8768: { return this->replace(__pos, size_type(0), __s, __n); } 8768: # 1676 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: insert(size_type __pos, const _CharT* __s) 8768: { 8768: ; 8768: return this->replace(__pos, size_type(0), __s, 8768: traits_type::length(__s)); 8768: } 8768: # 1700 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: insert(size_type __pos, size_type __n, _CharT __c) 8768: { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), 8768: size_type(0), __n, __c); } 8768: # 1718 "/usr/include/c++/8/bits/basic_string.h" 3 8768: iterator 8768: insert(__const_iterator __p, _CharT __c) 8768: { 8768: ; 8768: const size_type __pos = __p - begin(); 8768: _M_replace_aux(__pos, size_type(0), size_type(1), __c); 8768: return iterator(_M_data() + __pos); 8768: } 8768: # 1778 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: erase(size_type __pos = 0, size_type __n = npos) 8768: { 8768: _M_check(__pos, "basic_string::erase"); 8768: if (__n == npos) 8768: this->_M_set_length(__pos); 8768: else if (__n != 0) 8768: this->_M_erase(__pos, _M_limit(__pos, __n)); 8768: return *this; 8768: } 8768: # 1797 "/usr/include/c++/8/bits/basic_string.h" 3 8768: iterator 8768: erase(__const_iterator __position) 8768: { 8768: 8768: ; 8768: const size_type __pos = __position - begin(); 8768: this->_M_erase(__pos, size_type(1)); 8768: return iterator(_M_data() + __pos); 8768: } 8768: # 1816 "/usr/include/c++/8/bits/basic_string.h" 3 8768: iterator 8768: erase(__const_iterator __first, __const_iterator __last) 8768: { 8768: 8768: ; 8768: const size_type __pos = __first - begin(); 8768: if (__last == end()) 8768: this->_M_set_length(__pos); 8768: else 8768: this->_M_erase(__pos, __last - __first); 8768: return iterator(this->_M_data() + __pos); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: pop_back() noexcept 8768: { 8768: ; 8768: _M_erase(size() - 1, 1); 8768: } 8768: # 1860 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(size_type __pos, size_type __n, const basic_string& __str) 8768: { return this->replace(__pos, __n, __str._M_data(), __str.size()); } 8768: # 1882 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(size_type __pos1, size_type __n1, const basic_string& __str, 8768: size_type __pos2, size_type __n2) 8768: { return this->replace(__pos1, __n1, __str._M_data() 8768: + __str._M_check(__pos2, "basic_string::replace"), 8768: __str._M_limit(__pos2, __n2)); } 8768: # 1907 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(size_type __pos, size_type __n1, const _CharT* __s, 8768: size_type __n2) 8768: { 8768: ; 8768: return _M_replace(_M_check(__pos, "basic_string::replace"), 8768: _M_limit(__pos, __n1), __s, __n2); 8768: } 8768: # 1932 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(size_type __pos, size_type __n1, const _CharT* __s) 8768: { 8768: ; 8768: return this->replace(__pos, __n1, __s, traits_type::length(__s)); 8768: } 8768: # 1956 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) 8768: { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), 8768: _M_limit(__pos, __n1), __n2, __c); } 8768: # 1974 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, 8768: const basic_string& __str) 8768: { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } 8768: # 1994 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, 8768: const _CharT* __s, size_type __n) 8768: { 8768: 8768: ; 8768: return this->replace(__i1 - begin(), __i2 - __i1, __s, __n); 8768: } 8768: # 2016 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s) 8768: { 8768: ; 8768: return this->replace(__i1, __i2, __s, traits_type::length(__s)); 8768: } 8768: # 2037 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, size_type __n, 8768: _CharT __c) 8768: { 8768: 8768: ; 8768: return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c); 8768: } 8768: # 2062 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template> 8768: basic_string& 8768: replace(const_iterator __i1, const_iterator __i2, 8768: _InputIterator __k1, _InputIterator __k2) 8768: { 8768: 8768: ; 8768: ; 8768: return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, 8768: std::__false_type()); 8768: } 8768: # 2094 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, 8768: _CharT* __k1, _CharT* __k2) 8768: { 8768: 8768: ; 8768: ; 8768: return this->replace(__i1 - begin(), __i2 - __i1, 8768: __k1, __k2 - __k1); 8768: } 8768: 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, 8768: const _CharT* __k1, const _CharT* __k2) 8768: { 8768: 8768: ; 8768: ; 8768: return this->replace(__i1 - begin(), __i2 - __i1, 8768: __k1, __k2 - __k1); 8768: } 8768: 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, 8768: iterator __k1, iterator __k2) 8768: { 8768: 8768: ; 8768: ; 8768: return this->replace(__i1 - begin(), __i2 - __i1, 8768: __k1.base(), __k2 - __k1); 8768: } 8768: 8768: basic_string& 8768: replace(__const_iterator __i1, __const_iterator __i2, 8768: const_iterator __k1, const_iterator __k2) 8768: { 8768: 8768: ; 8768: ; 8768: return this->replace(__i1 - begin(), __i2 - __i1, 8768: __k1.base(), __k2 - __k1); 8768: } 8768: # 2153 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string& replace(const_iterator __i1, const_iterator __i2, 8768: initializer_list<_CharT> __l) 8768: { return this->replace(__i1, __i2, __l.begin(), __l.size()); } 8768: # 2212 "/usr/include/c++/8/bits/basic_string.h" 3 8768: private: 8768: template 8768: basic_string& 8768: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8768: _Integer __n, _Integer __val, __true_type) 8768: { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); } 8768: 8768: template 8768: basic_string& 8768: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8768: _InputIterator __k1, _InputIterator __k2, 8768: __false_type); 8768: 8768: basic_string& 8768: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8768: _CharT __c); 8768: 8768: basic_string& 8768: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8768: const size_type __len2); 8768: 8768: basic_string& 8768: _M_append(const _CharT* __s, size_type __n); 8768: 8768: public: 8768: # 2250 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: copy(_CharT* __s, size_type __n, size_type __pos = 0) const; 8768: # 2260 "/usr/include/c++/8/bits/basic_string.h" 3 8768: void 8768: swap(basic_string& __s) noexcept; 8768: # 2270 "/usr/include/c++/8/bits/basic_string.h" 3 8768: const _CharT* 8768: c_str() const noexcept 8768: { return _M_data(); } 8768: # 2282 "/usr/include/c++/8/bits/basic_string.h" 3 8768: const _CharT* 8768: data() const noexcept 8768: { return _M_data(); } 8768: # 2301 "/usr/include/c++/8/bits/basic_string.h" 3 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return _M_get_allocator(); } 8768: # 2317 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept; 8768: # 2331 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find(const basic_string& __str, size_type __pos = 0) const 8768: noexcept 8768: { return this->find(__str.data(), __pos, __str.size()); } 8768: # 2363 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find(const _CharT* __s, size_type __pos = 0) const noexcept 8768: { 8768: ; 8768: return this->find(__s, __pos, traits_type::length(__s)); 8768: } 8768: # 2380 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find(_CharT __c, size_type __pos = 0) const noexcept; 8768: # 2393 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: rfind(const basic_string& __str, size_type __pos = npos) const 8768: noexcept 8768: { return this->rfind(__str.data(), __pos, __str.size()); } 8768: # 2427 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept; 8768: # 2441 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: rfind(const _CharT* __s, size_type __pos = npos) const 8768: { 8768: ; 8768: return this->rfind(__s, __pos, traits_type::length(__s)); 8768: } 8768: # 2458 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: rfind(_CharT __c, size_type __pos = npos) const noexcept; 8768: # 2472 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_of(const basic_string& __str, size_type __pos = 0) const 8768: noexcept 8768: { return this->find_first_of(__str.data(), __pos, __str.size()); } 8768: # 2507 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept; 8768: # 2521 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_of(const _CharT* __s, size_type __pos = 0) const 8768: noexcept 8768: { 8768: ; 8768: return this->find_first_of(__s, __pos, traits_type::length(__s)); 8768: } 8768: # 2541 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_of(_CharT __c, size_type __pos = 0) const noexcept 8768: { return this->find(__c, __pos); } 8768: # 2556 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_of(const basic_string& __str, size_type __pos = npos) const 8768: noexcept 8768: { return this->find_last_of(__str.data(), __pos, __str.size()); } 8768: # 2591 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept; 8768: # 2605 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_of(const _CharT* __s, size_type __pos = npos) const 8768: noexcept 8768: { 8768: ; 8768: return this->find_last_of(__s, __pos, traits_type::length(__s)); 8768: } 8768: # 2625 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_of(_CharT __c, size_type __pos = npos) const noexcept 8768: { return this->rfind(__c, __pos); } 8768: # 2639 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_not_of(const basic_string& __str, size_type __pos = 0) const 8768: noexcept 8768: { return this->find_first_not_of(__str.data(), __pos, __str.size()); } 8768: # 2674 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_not_of(const _CharT* __s, size_type __pos, 8768: size_type __n) const noexcept; 8768: # 2688 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_not_of(const _CharT* __s, size_type __pos = 0) const 8768: noexcept 8768: { 8768: ; 8768: return this->find_first_not_of(__s, __pos, traits_type::length(__s)); 8768: } 8768: # 2706 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_first_not_of(_CharT __c, size_type __pos = 0) const 8768: noexcept; 8768: # 2721 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_not_of(const basic_string& __str, size_type __pos = npos) const 8768: noexcept 8768: { return this->find_last_not_of(__str.data(), __pos, __str.size()); } 8768: # 2756 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_not_of(const _CharT* __s, size_type __pos, 8768: size_type __n) const noexcept; 8768: # 2770 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_not_of(const _CharT* __s, size_type __pos = npos) const 8768: noexcept 8768: { 8768: ; 8768: return this->find_last_not_of(__s, __pos, traits_type::length(__s)); 8768: } 8768: # 2788 "/usr/include/c++/8/bits/basic_string.h" 3 8768: size_type 8768: find_last_not_of(_CharT __c, size_type __pos = npos) const 8768: noexcept; 8768: # 2804 "/usr/include/c++/8/bits/basic_string.h" 3 8768: basic_string 8768: substr(size_type __pos = 0, size_type __n = npos) const 8768: { return basic_string(*this, 8768: _M_check(__pos, "basic_string::substr"), __n); } 8768: # 2823 "/usr/include/c++/8/bits/basic_string.h" 3 8768: int 8768: compare(const basic_string& __str) const 8768: { 8768: const size_type __size = this->size(); 8768: const size_type __osize = __str.size(); 8768: const size_type __len = std::min(__size, __osize); 8768: 8768: int __r = traits_type::compare(_M_data(), __str.data(), __len); 8768: if (!__r) 8768: __r = _S_compare(__size, __osize); 8768: return __r; 8768: } 8768: # 2916 "/usr/include/c++/8/bits/basic_string.h" 3 8768: int 8768: compare(size_type __pos, size_type __n, const basic_string& __str) const; 8768: # 2942 "/usr/include/c++/8/bits/basic_string.h" 3 8768: int 8768: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8768: size_type __pos2, size_type __n2) const; 8768: # 2960 "/usr/include/c++/8/bits/basic_string.h" 3 8768: int 8768: compare(const _CharT* __s) const noexcept; 8768: # 2984 "/usr/include/c++/8/bits/basic_string.h" 3 8768: int 8768: compare(size_type __pos, size_type __n1, const _CharT* __s) const; 8768: # 3011 "/usr/include/c++/8/bits/basic_string.h" 3 8768: int 8768: compare(size_type __pos, size_type __n1, const _CharT* __s, 8768: size_type __n2) const; 8768: 8768: 8768: template friend class basic_stringbuf; 8768: }; 8768: } 8768: # 5886 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: basic_string<_CharT, _Traits, _Alloc> 8768: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { 8768: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8768: __str.append(__rhs); 8768: return __str; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: basic_string<_CharT,_Traits,_Alloc> 8768: operator+(const _CharT* __lhs, 8768: const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: basic_string<_CharT,_Traits,_Alloc> 8768: operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { 8768: basic_string<_CharT, _Traits, _Alloc> __str(__lhs); 8768: __str.append(__rhs); 8768: return __str; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) 8768: { 8768: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8768: typedef typename __string_type::size_type __size_type; 8768: __string_type __str(__lhs); 8768: __str.append(__size_type(1), __rhs); 8768: return __str; 8768: } 8768: 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return std::move(__lhs.append(__rhs)); } 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8768: { return std::move(__rhs.insert(0, __lhs)); } 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8768: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8768: { 8768: const auto __size = __lhs.size() + __rhs.size(); 8768: const bool __cond = (__size > __lhs.capacity() 8768: && __size <= __rhs.capacity()); 8768: return __cond ? std::move(__rhs.insert(0, __lhs)) 8768: : std::move(__lhs.append(__rhs)); 8768: } 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(const _CharT* __lhs, 8768: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8768: { return std::move(__rhs.insert(0, __lhs)); } 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(_CharT __lhs, 8768: basic_string<_CharT, _Traits, _Alloc>&& __rhs) 8768: { return std::move(__rhs.insert(0, 1, __lhs)); } 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8768: const _CharT* __rhs) 8768: { return std::move(__lhs.append(__rhs)); } 8768: 8768: template 8768: inline basic_string<_CharT, _Traits, _Alloc> 8768: operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs, 8768: _CharT __rhs) 8768: { return std::move(__lhs.append(1, __rhs)); } 8768: # 6007 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline bool 8768: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept 8768: { return __lhs.compare(__rhs) == 0; } 8768: 8768: template 8768: inline 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type 8768: operator==(const basic_string<_CharT>& __lhs, 8768: const basic_string<_CharT>& __rhs) noexcept 8768: { return (__lhs.size() == __rhs.size() 8768: && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), 8768: __lhs.size())); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return __rhs.compare(__lhs) == 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { return __lhs.compare(__rhs) == 0; } 8768: # 6054 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline bool 8768: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept 8768: { return !(__lhs == __rhs); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return !(__lhs == __rhs); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { return !(__lhs == __rhs); } 8768: # 6092 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline bool 8768: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept 8768: { return __lhs.compare(__rhs) < 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { return __lhs.compare(__rhs) < 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator<(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return __rhs.compare(__lhs) > 0; } 8768: # 6130 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline bool 8768: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept 8768: { return __lhs.compare(__rhs) > 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { return __lhs.compare(__rhs) > 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return __rhs.compare(__lhs) < 0; } 8768: # 6168 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline bool 8768: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept 8768: { return __lhs.compare(__rhs) <= 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { return __lhs.compare(__rhs) <= 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return __rhs.compare(__lhs) >= 0; } 8768: # 6206 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline bool 8768: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept 8768: { return __lhs.compare(__rhs) >= 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: const _CharT* __rhs) 8768: { return __lhs.compare(__rhs) >= 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { return __rhs.compare(__lhs) <= 0; } 8768: # 6244 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline void 8768: swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, 8768: basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: noexcept(noexcept(__lhs.swap(__rhs))) 8768: { __lhs.swap(__rhs); } 8768: # 6264 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: operator>>(basic_istream<_CharT, _Traits>& __is, 8768: basic_string<_CharT, _Traits, _Alloc>& __str); 8768: 8768: template<> 8768: basic_istream& 8768: operator>>(basic_istream& __is, basic_string& __str); 8768: # 6282 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: operator<<(basic_ostream<_CharT, _Traits>& __os, 8768: const basic_string<_CharT, _Traits, _Alloc>& __str) 8768: { 8768: 8768: 8768: return __ostream_insert(__os, __str.data(), __str.size()); 8768: } 8768: # 6305 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: getline(basic_istream<_CharT, _Traits>& __is, 8768: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); 8768: # 6322 "/usr/include/c++/8/bits/basic_string.h" 3 8768: template 8768: inline basic_istream<_CharT, _Traits>& 8768: getline(basic_istream<_CharT, _Traits>& __is, 8768: basic_string<_CharT, _Traits, _Alloc>& __str) 8768: { return std::getline(__is, __str, __is.widen('\n')); } 8768: 8768: 8768: 8768: template 8768: inline basic_istream<_CharT, _Traits>& 8768: getline(basic_istream<_CharT, _Traits>&& __is, 8768: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8768: { return std::getline(__is, __str, __delim); } 8768: 8768: 8768: template 8768: inline basic_istream<_CharT, _Traits>& 8768: getline(basic_istream<_CharT, _Traits>&& __is, 8768: basic_string<_CharT, _Traits, _Alloc>& __str) 8768: { return std::getline(__is, __str); } 8768: 8768: 8768: template<> 8768: basic_istream& 8768: getline(basic_istream& __in, basic_string& __str, 8768: char __delim); 8768: 8768: 8768: template<> 8768: basic_istream& 8768: getline(basic_istream& __in, basic_string& __str, 8768: wchar_t __delim); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/ext/string_conversions.h" 1 3 8768: # 32 "/usr/include/c++/8/ext/string_conversions.h" 3 8768: 8768: # 33 "/usr/include/c++/8/ext/string_conversions.h" 3 8768: # 41 "/usr/include/c++/8/ext/string_conversions.h" 3 8768: # 1 "/usr/include/c++/8/cstdlib" 1 3 8768: # 39 "/usr/include/c++/8/cstdlib" 3 8768: 8768: # 40 "/usr/include/c++/8/cstdlib" 3 8768: # 42 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8768: # 1 "/usr/include/c++/8/cwchar" 1 3 8768: # 39 "/usr/include/c++/8/cwchar" 3 8768: 8768: # 40 "/usr/include/c++/8/cwchar" 3 8768: # 43 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8768: # 1 "/usr/include/c++/8/cstdio" 1 3 8768: # 39 "/usr/include/c++/8/cstdio" 3 8768: 8768: # 40 "/usr/include/c++/8/cstdio" 3 8768: 8768: 8768: # 1 "/usr/include/stdio.h" 1 3 4 8768: # 27 "/usr/include/stdio.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8768: # 28 "/usr/include/stdio.h" 2 3 4 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 34 "/usr/include/stdio.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/libio.h" 1 3 4 8768: # 31 "/usr/include/libio.h" 3 4 8768: # 1 "/usr/include/_G_config.h" 1 3 4 8768: # 15 "/usr/include/_G_config.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include/stddef.h" 1 3 4 8768: # 16 "/usr/include/_G_config.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef struct 8768: { 8768: __off_t __pos; 8768: __mbstate_t __state; 8768: } _G_fpos_t; 8768: typedef struct 8768: { 8768: __off64_t __pos; 8768: __mbstate_t __state; 8768: } _G_fpos64_t; 8768: # 32 "/usr/include/libio.h" 2 3 4 8768: # 145 "/usr/include/libio.h" 3 4 8768: struct _IO_jump_t; struct _IO_FILE; 8768: 8768: 8768: 8768: 8768: typedef void _IO_lock_t; 8768: 8768: 8768: 8768: 8768: 8768: struct _IO_marker { 8768: struct _IO_marker *_next; 8768: struct _IO_FILE *_sbuf; 8768: 8768: 8768: 8768: int _pos; 8768: # 173 "/usr/include/libio.h" 3 4 8768: }; 8768: 8768: 8768: enum __codecvt_result 8768: { 8768: __codecvt_ok, 8768: __codecvt_partial, 8768: __codecvt_error, 8768: __codecvt_noconv 8768: }; 8768: # 241 "/usr/include/libio.h" 3 4 8768: struct _IO_FILE { 8768: int _flags; 8768: 8768: 8768: 8768: 8768: char* _IO_read_ptr; 8768: char* _IO_read_end; 8768: char* _IO_read_base; 8768: char* _IO_write_base; 8768: char* _IO_write_ptr; 8768: char* _IO_write_end; 8768: char* _IO_buf_base; 8768: char* _IO_buf_end; 8768: 8768: char *_IO_save_base; 8768: char *_IO_backup_base; 8768: char *_IO_save_end; 8768: 8768: struct _IO_marker *_markers; 8768: 8768: struct _IO_FILE *_chain; 8768: 8768: int _fileno; 8768: 8768: 8768: 8768: int _flags2; 8768: 8768: __off_t _old_offset; 8768: 8768: 8768: 8768: unsigned short _cur_column; 8768: signed char _vtable_offset; 8768: char _shortbuf[1]; 8768: 8768: 8768: 8768: _IO_lock_t *_lock; 8768: # 289 "/usr/include/libio.h" 3 4 8768: __off64_t _offset; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void *__pad1; 8768: void *__pad2; 8768: void *__pad3; 8768: void *__pad4; 8768: 8768: size_t __pad5; 8768: int _mode; 8768: 8768: char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: struct _IO_FILE_plus; 8768: 8768: extern struct _IO_FILE_plus _IO_2_1_stdin_; 8768: extern struct _IO_FILE_plus _IO_2_1_stdout_; 8768: extern struct _IO_FILE_plus _IO_2_1_stderr_; 8768: # 333 "/usr/include/libio.h" 3 4 8768: typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, 8768: size_t __n); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); 8768: 8768: 8768: typedef int __io_close_fn (void *__cookie); 8768: 8768: 8768: 8768: 8768: typedef __io_read_fn cookie_read_function_t; 8768: typedef __io_write_fn cookie_write_function_t; 8768: typedef __io_seek_fn cookie_seek_function_t; 8768: typedef __io_close_fn cookie_close_function_t; 8768: 8768: 8768: typedef struct 8768: { 8768: __io_read_fn *read; 8768: __io_write_fn *write; 8768: __io_seek_fn *seek; 8768: __io_close_fn *close; 8768: } _IO_cookie_io_functions_t; 8768: typedef _IO_cookie_io_functions_t cookie_io_functions_t; 8768: 8768: struct _IO_cookie_file; 8768: 8768: 8768: extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, 8768: void *__cookie, _IO_cookie_io_functions_t __fns); 8768: 8768: 8768: 8768: 8768: extern "C" { 8768: 8768: 8768: extern int __underflow (_IO_FILE *); 8768: extern int __uflow (_IO_FILE *); 8768: extern int __overflow (_IO_FILE *, int); 8768: # 429 "/usr/include/libio.h" 3 4 8768: extern int _IO_getc (_IO_FILE *__fp); 8768: extern int _IO_putc (int __c, _IO_FILE *__fp); 8768: extern int _IO_feof (_IO_FILE *__fp) throw (); 8768: extern int _IO_ferror (_IO_FILE *__fp) throw (); 8768: 8768: extern int _IO_peekc_locked (_IO_FILE *__fp); 8768: 8768: 8768: 8768: 8768: 8768: extern void _IO_flockfile (_IO_FILE *) throw (); 8768: extern void _IO_funlockfile (_IO_FILE *) throw (); 8768: extern int _IO_ftrylockfile (_IO_FILE *) throw (); 8768: # 458 "/usr/include/libio.h" 3 4 8768: extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, 8768: __gnuc_va_list, int *__restrict); 8768: extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, 8768: __gnuc_va_list); 8768: extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); 8768: extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); 8768: 8768: extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); 8768: extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); 8768: 8768: extern void _IO_free_backup_area (_IO_FILE *) throw (); 8768: # 520 "/usr/include/libio.h" 3 4 8768: } 8768: # 42 "/usr/include/stdio.h" 2 3 4 8768: # 78 "/usr/include/stdio.h" 3 4 8768: typedef _G_fpos_t fpos_t; 8768: 8768: 8768: 8768: 8768: typedef _G_fpos64_t fpos64_t; 8768: # 131 "/usr/include/stdio.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 8768: # 132 "/usr/include/stdio.h" 2 3 4 8768: 8768: 8768: 8768: extern struct _IO_FILE *stdin; 8768: extern struct _IO_FILE *stdout; 8768: extern struct _IO_FILE *stderr; 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int remove (const char *__filename) throw (); 8768: 8768: extern int rename (const char *__old, const char *__new) throw (); 8768: 8768: 8768: 8768: extern int renameat (int __oldfd, const char *__old, int __newfd, 8768: const char *__new) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); 8768: # 169 "/usr/include/stdio.h" 3 4 8768: extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); 8768: # 190 "/usr/include/stdio.h" 3 4 8768: extern char *tempnam (const char *__dir, const char *__pfx) 8768: throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fclose (FILE *__stream); 8768: 8768: 8768: 8768: 8768: extern int fflush (FILE *__stream); 8768: # 213 "/usr/include/stdio.h" 3 4 8768: extern int fflush_unlocked (FILE *__stream); 8768: # 223 "/usr/include/stdio.h" 3 4 8768: extern int fcloseall (void); 8768: # 232 "/usr/include/stdio.h" 3 4 8768: extern FILE *fopen (const char *__restrict __filename, 8768: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern FILE *freopen (const char *__restrict __filename, 8768: const char *__restrict __modes, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: # 256 "/usr/include/stdio.h" 3 4 8768: extern FILE *fopen64 (const char *__restrict __filename, 8768: const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); 8768: extern FILE *freopen64 (const char *__restrict __filename, 8768: const char *__restrict __modes, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern FILE *fdopen (int __fd, const char *__modes) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern FILE *fopencookie (void *__restrict __magic_cookie, 8768: const char *__restrict __modes, 8768: _IO_cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) 8768: throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); 8768: 8768: 8768: 8768: extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, 8768: int __modes, size_t __n) throw (); 8768: 8768: 8768: 8768: 8768: extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, 8768: size_t __size) throw (); 8768: 8768: 8768: extern void setlinebuf (FILE *__stream) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fprintf (FILE *__restrict __stream, 8768: const char *__restrict __format, ...); 8768: 8768: 8768: 8768: 8768: extern int printf (const char *__restrict __format, ...); 8768: 8768: extern int sprintf (char *__restrict __s, 8768: const char *__restrict __format, ...) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, 8768: __gnuc_va_list __arg); 8768: 8768: 8768: 8768: 8768: extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); 8768: 8768: extern int vsprintf (char *__restrict __s, const char *__restrict __format, 8768: __gnuc_va_list __arg) throw (); 8768: 8768: 8768: 8768: extern int snprintf (char *__restrict __s, size_t __maxlen, 8768: const char *__restrict __format, ...) 8768: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8768: 8768: extern int vsnprintf (char *__restrict __s, size_t __maxlen, 8768: const char *__restrict __format, __gnuc_va_list __arg) 8768: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8768: 8768: 8768: 8768: 8768: 8768: extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, 8768: __gnuc_va_list __arg) 8768: throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8768: extern int __asprintf (char **__restrict __ptr, 8768: const char *__restrict __fmt, ...) 8768: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8768: extern int asprintf (char **__restrict __ptr, 8768: const char *__restrict __fmt, ...) 8768: throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern int vdprintf (int __fd, const char *__restrict __fmt, 8768: __gnuc_va_list __arg) 8768: __attribute__ ((__format__ (__printf__, 2, 0))); 8768: extern int dprintf (int __fd, const char *__restrict __fmt, ...) 8768: __attribute__ ((__format__ (__printf__, 2, 3))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fscanf (FILE *__restrict __stream, 8768: const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); 8768: 8768: extern int sscanf (const char *__restrict __s, 8768: const char *__restrict __format, ...) throw (); 8768: # 420 "/usr/include/stdio.h" 3 4 8768: extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, 8768: __gnuc_va_list __arg) 8768: __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) 8768: __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: extern int vsscanf (const char *__restrict __s, 8768: const char *__restrict __format, __gnuc_va_list __arg) 8768: throw () __attribute__ ((__format__ (__scanf__, 2, 0))); 8768: # 477 "/usr/include/stdio.h" 3 4 8768: extern int fgetc (FILE *__stream); 8768: extern int getc (FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: extern int getchar (void); 8768: # 495 "/usr/include/stdio.h" 3 4 8768: extern int getc_unlocked (FILE *__stream); 8768: extern int getchar_unlocked (void); 8768: # 506 "/usr/include/stdio.h" 3 4 8768: extern int fgetc_unlocked (FILE *__stream); 8768: # 517 "/usr/include/stdio.h" 3 4 8768: extern int fputc (int __c, FILE *__stream); 8768: extern int putc (int __c, FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: extern int putchar (int __c); 8768: # 537 "/usr/include/stdio.h" 3 4 8768: extern int fputc_unlocked (int __c, FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int putc_unlocked (int __c, FILE *__stream); 8768: extern int putchar_unlocked (int __c); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int getw (FILE *__stream); 8768: 8768: 8768: extern int putw (int __w, FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8768: __attribute__ ((__warn_unused_result__)); 8768: # 577 "/usr/include/stdio.h" 3 4 8768: extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)) __attribute__ ((__deprecated__)); 8768: # 587 "/usr/include/stdio.h" 3 4 8768: extern char *fgets_unlocked (char *__restrict __s, int __n, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: # 603 "/usr/include/stdio.h" 3 4 8768: extern __ssize_t __getdelim (char **__restrict __lineptr, 8768: size_t *__restrict __n, int __delimiter, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern __ssize_t getdelim (char **__restrict __lineptr, 8768: size_t *__restrict __n, int __delimiter, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern __ssize_t getline (char **__restrict __lineptr, 8768: size_t *__restrict __n, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fputs (const char *__restrict __s, FILE *__restrict __stream); 8768: 8768: 8768: 8768: 8768: 8768: extern int puts (const char *__s); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int ungetc (int __c, FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern size_t fread (void *__restrict __ptr, size_t __size, 8768: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern size_t fwrite (const void *__restrict __ptr, size_t __size, 8768: size_t __n, FILE *__restrict __s); 8768: # 662 "/usr/include/stdio.h" 3 4 8768: extern int fputs_unlocked (const char *__restrict __s, 8768: FILE *__restrict __stream); 8768: # 673 "/usr/include/stdio.h" 3 4 8768: extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, 8768: size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, 8768: size_t __n, FILE *__restrict __stream); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int fseek (FILE *__stream, long int __off, int __whence); 8768: 8768: 8768: 8768: 8768: extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern void rewind (FILE *__stream); 8768: # 707 "/usr/include/stdio.h" 3 4 8768: extern int fseeko (FILE *__stream, __off_t __off, int __whence); 8768: 8768: 8768: 8768: 8768: extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8768: # 731 "/usr/include/stdio.h" 3 4 8768: extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); 8768: 8768: 8768: 8768: 8768: extern int fsetpos (FILE *__stream, const fpos_t *__pos); 8768: # 750 "/usr/include/stdio.h" 3 4 8768: extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); 8768: extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); 8768: extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); 8768: extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); 8768: 8768: 8768: 8768: extern void clearerr (FILE *__stream) throw (); 8768: 8768: extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: extern void clearerr_unlocked (FILE *__stream) throw (); 8768: extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern void perror (const char *__s); 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 8768: # 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 8768: extern int sys_nerr; 8768: extern const char *const sys_errlist[]; 8768: 8768: 8768: extern int _sys_nerr; 8768: extern const char *const _sys_errlist[]; 8768: # 782 "/usr/include/stdio.h" 2 3 4 8768: 8768: 8768: 8768: 8768: extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: # 800 "/usr/include/stdio.h" 3 4 8768: extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: 8768: 8768: 8768: extern int pclose (FILE *__stream); 8768: 8768: 8768: 8768: 8768: 8768: extern char *ctermid (char *__s) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern char *cuserid (char *__s); 8768: 8768: 8768: 8768: 8768: struct obstack; 8768: 8768: 8768: extern int obstack_printf (struct obstack *__restrict __obstack, 8768: const char *__restrict __format, ...) 8768: throw () __attribute__ ((__format__ (__printf__, 2, 3))); 8768: extern int obstack_vprintf (struct obstack *__restrict __obstack, 8768: const char *__restrict __format, 8768: __gnuc_va_list __args) 8768: throw () __attribute__ ((__format__ (__printf__, 2, 0))); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern void flockfile (FILE *__stream) throw (); 8768: 8768: 8768: 8768: extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); 8768: 8768: 8768: extern void funlockfile (FILE *__stream) throw (); 8768: # 859 "/usr/include/stdio.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 3 4 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: getchar (void) 8768: { 8768: return _IO_getc (stdin); 8768: } 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: fgetc_unlocked (FILE *__fp) 8768: { 8768: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: getc_unlocked (FILE *__fp) 8768: { 8768: return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: getchar_unlocked (void) 8768: { 8768: return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 8768: } 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: putchar (int __c) 8768: { 8768: return _IO_putc (__c, stdout); 8768: } 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: fputc_unlocked (int __c, FILE *__stream) 8768: { 8768: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: putc_unlocked (int __c, FILE *__stream) 8768: { 8768: return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: putchar_unlocked (int __c) 8768: { 8768: return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) __ssize_t 8768: getline (char **__lineptr, size_t *__n, FILE *__stream) 8768: { 8768: return __getdelim (__lineptr, __n, '\n', __stream); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: __attribute__ ((__leaf__)) feof_unlocked (FILE *__stream) throw () 8768: { 8768: return (((__stream)->_flags & 0x10) != 0); 8768: } 8768: 8768: 8768: extern __inline __attribute__ ((__gnu_inline__)) int 8768: __attribute__ ((__leaf__)) ferror_unlocked (FILE *__stream) throw () 8768: { 8768: return (((__stream)->_flags & 0x20) != 0); 8768: } 8768: # 860 "/usr/include/stdio.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 1 3 4 8768: # 23 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 8768: extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8768: const char *__restrict __format, ...) throw (); 8768: extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, 8768: const char *__restrict __format, 8768: __gnuc_va_list __ap) throw (); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) throw () 8768: { 8768: return __builtin___sprintf_chk (__s, 2 - 1, 8768: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8768: 8768: { 8768: return __builtin___vsprintf_chk (__s, 2 - 1, 8768: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8768: } 8768: 8768: 8768: 8768: extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, 8768: size_t __slen, const char *__restrict __format, 8768: ...) throw (); 8768: extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, 8768: size_t __slen, const char *__restrict __format, 8768: __gnuc_va_list __ap) throw (); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) throw () 8768: 8768: { 8768: return __builtin___snprintf_chk (__s, __n, 2 - 1, 8768: __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8768: 8768: { 8768: return __builtin___vsnprintf_chk (__s, __n, 2 - 1, 8768: __builtin_object_size (__s, 2 > 1), __fmt, __ap); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: extern int __fprintf_chk (FILE *__restrict __stream, int __flag, 8768: const char *__restrict __format, ...); 8768: extern int __printf_chk (int __flag, const char *__restrict __format, ...); 8768: extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, 8768: const char *__restrict __format, __gnuc_va_list __ap); 8768: extern int __vprintf_chk (int __flag, const char *__restrict __format, 8768: __gnuc_va_list __ap); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) 8768: { 8768: return __fprintf_chk (__stream, 2 - 1, __fmt, 8768: __builtin_va_arg_pack ()); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: printf (const char *__restrict __fmt, ...) 8768: { 8768: return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) 8768: { 8768: 8768: return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); 8768: 8768: 8768: 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: vfprintf (FILE *__restrict __stream, 8768: const char *__restrict __fmt, __gnuc_va_list __ap) 8768: { 8768: return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); 8768: } 8768: 8768: 8768: extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, 8768: ...) __attribute__ ((__format__ (__printf__, 3, 4))); 8768: extern int __vdprintf_chk (int __fd, int __flag, 8768: const char *__restrict __fmt, __gnuc_va_list __arg) 8768: __attribute__ ((__format__ (__printf__, 3, 0))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: dprintf (int __fd, const char *__restrict __fmt, ...) 8768: { 8768: return __dprintf_chk (__fd, 2 - 1, __fmt, 8768: __builtin_va_arg_pack ()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) 8768: { 8768: return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); 8768: } 8768: 8768: 8768: 8768: 8768: extern int __asprintf_chk (char **__restrict __ptr, int __flag, 8768: const char *__restrict __fmt, ...) 8768: throw () __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); 8768: extern int __vasprintf_chk (char **__restrict __ptr, int __flag, 8768: const char *__restrict __fmt, __gnuc_va_list __arg) 8768: throw () __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); 8768: extern int __obstack_printf_chk (struct obstack *__restrict __obstack, 8768: int __flag, const char *__restrict __format, 8768: ...) 8768: throw () __attribute__ ((__format__ (__printf__, 3, 4))); 8768: extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, 8768: int __flag, 8768: const char *__restrict __format, 8768: __gnuc_va_list __args) 8768: throw () __attribute__ ((__format__ (__printf__, 3, 0))); 8768: 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8768: { 8768: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8768: __builtin_va_arg_pack ()); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () 8768: 8768: { 8768: return __asprintf_chk (__ptr, 2 - 1, __fmt, 8768: __builtin_va_arg_pack ()); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __fmt, ...) throw () 8768: 8768: { 8768: return __obstack_printf_chk (__obstack, 2 - 1, __fmt, 8768: __builtin_va_arg_pack ()); 8768: } 8768: # 206 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) vasprintf (char **__restrict __ptr, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8768: 8768: { 8768: return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); 8768: } 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int 8768: __attribute__ ((__leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __fmt, __gnuc_va_list __ap) throw () 8768: 8768: { 8768: return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, 8768: __ap); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); 8768: extern char *__gets_warn (char *__str) __asm__ ("" "gets") 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8768: gets (char *__str) 8768: { 8768: if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) 8768: return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); 8768: return __gets_warn (__str); 8768: } 8768: 8768: 8768: extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8768: fgets (char *__restrict __s, int __n, FILE *__restrict __stream) 8768: { 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n) || __n <= 0) 8768: return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8768: 8768: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8768: return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8768: } 8768: return __fgets_alias (__s, __n, __stream); 8768: } 8768: 8768: extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, 8768: size_t __size, size_t __n, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") 8768: 8768: 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8768: fread (void *__restrict __ptr, size_t __size, size_t __n, 8768: FILE *__restrict __stream) 8768: { 8768: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__size) 8768: || !__builtin_constant_p (__n) 8768: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8768: return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8768: 8768: if (__size * __n > __builtin_object_size (__ptr, 0)) 8768: return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); 8768: } 8768: return __fread_alias (__ptr, __size, __n, __stream); 8768: } 8768: 8768: 8768: extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, 8768: int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * 8768: fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) 8768: { 8768: if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__n) || __n <= 0) 8768: return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8768: 8768: if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) 8768: return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); 8768: } 8768: return __fgets_unlocked_alias (__s, __n, __stream); 8768: } 8768: 8768: 8768: 8768: 8768: extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, 8768: size_t __size, size_t __n, 8768: FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 8768: extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)); 8768: 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") 8768: 8768: 8768: 8768: 8768: __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) 8768: ; 8768: 8768: extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t 8768: fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, 8768: FILE *__restrict __stream) 8768: { 8768: if (__builtin_object_size (__ptr, 0) != (size_t) -1) 8768: { 8768: if (!__builtin_constant_p (__size) 8768: || !__builtin_constant_p (__n) 8768: || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) 8768: return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8768: __stream); 8768: 8768: if (__size * __n > __builtin_object_size (__ptr, 0)) 8768: return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, 8768: __stream); 8768: } 8768: 8768: 8768: if (__builtin_constant_p (__size) 8768: && __builtin_constant_p (__n) 8768: && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) 8768: && __size * __n <= 8) 8768: { 8768: size_t __cnt = __size * __n; 8768: char *__cptr = (char *) __ptr; 8768: if (__cnt == 0) 8768: return 0; 8768: 8768: for (; __cnt > 0; --__cnt) 8768: { 8768: int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 8768: if (__c == (-1)) 8768: break; 8768: *__cptr++ = __c; 8768: } 8768: return (__cptr - (char *) __ptr) / __size; 8768: } 8768: 8768: return __fread_unlocked_alias (__ptr, __size, __n, __stream); 8768: } 8768: # 863 "/usr/include/stdio.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: } 8768: # 43 "/usr/include/c++/8/cstdio" 2 3 8768: # 96 "/usr/include/c++/8/cstdio" 3 8768: namespace std 8768: { 8768: using ::FILE; 8768: using ::fpos_t; 8768: 8768: using ::clearerr; 8768: using ::fclose; 8768: using ::feof; 8768: using ::ferror; 8768: using ::fflush; 8768: using ::fgetc; 8768: using ::fgetpos; 8768: using ::fgets; 8768: using ::fopen; 8768: using ::fprintf; 8768: using ::fputc; 8768: using ::fputs; 8768: using ::fread; 8768: using ::freopen; 8768: using ::fscanf; 8768: using ::fseek; 8768: using ::fsetpos; 8768: using ::ftell; 8768: using ::fwrite; 8768: using ::getc; 8768: using ::getchar; 8768: 8768: 8768: using ::gets; 8768: 8768: using ::perror; 8768: using ::printf; 8768: using ::putc; 8768: using ::putchar; 8768: using ::puts; 8768: using ::remove; 8768: using ::rename; 8768: using ::rewind; 8768: using ::scanf; 8768: using ::setbuf; 8768: using ::setvbuf; 8768: using ::sprintf; 8768: using ::sscanf; 8768: using ::tmpfile; 8768: 8768: using ::tmpnam; 8768: 8768: using ::ungetc; 8768: using ::vfprintf; 8768: using ::vprintf; 8768: using ::vsprintf; 8768: } 8768: # 157 "/usr/include/c++/8/cstdio" 3 8768: namespace __gnu_cxx 8768: { 8768: # 175 "/usr/include/c++/8/cstdio" 3 8768: using ::snprintf; 8768: using ::vfscanf; 8768: using ::vscanf; 8768: using ::vsnprintf; 8768: using ::vsscanf; 8768: 8768: } 8768: 8768: namespace std 8768: { 8768: using ::__gnu_cxx::snprintf; 8768: using ::__gnu_cxx::vfscanf; 8768: using ::__gnu_cxx::vscanf; 8768: using ::__gnu_cxx::vsnprintf; 8768: using ::__gnu_cxx::vsscanf; 8768: } 8768: # 44 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8768: # 1 "/usr/include/c++/8/cerrno" 1 3 8768: # 39 "/usr/include/c++/8/cerrno" 3 8768: 8768: # 40 "/usr/include/c++/8/cerrno" 3 8768: 8768: 8768: # 1 "/usr/include/errno.h" 1 3 4 8768: # 28 "/usr/include/errno.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/errno.h" 1 3 4 8768: # 26 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4 8768: # 1 "/usr/include/linux/errno.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 1 3 4 8768: # 1 "/usr/include/asm-generic/errno.h" 1 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 8768: # 5 "/usr/include/asm-generic/errno.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 2 3 4 8768: # 1 "/usr/include/linux/errno.h" 2 3 4 8768: # 27 "/usr/include/x86_64-linux-gnu/bits/errno.h" 2 3 4 8768: # 29 "/usr/include/errno.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: extern "C" { 8768: 8768: 8768: extern int *__errno_location (void) throw () __attribute__ ((__const__)); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern char *program_invocation_name; 8768: extern char *program_invocation_short_name; 8768: 8768: 8768: 8768: 8768: 8768: typedef int error_t; 8768: 8768: 8768: 8768: 8768: } 8768: # 43 "/usr/include/c++/8/cerrno" 2 3 8768: # 45 "/usr/include/c++/8/ext/string_conversions.h" 2 3 8768: 8768: namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: _Ret 8768: __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...), 8768: const char* __name, const _CharT* __str, std::size_t* __idx, 8768: _Base... __base) 8768: { 8768: _Ret __ret; 8768: 8768: _CharT* __endptr; 8768: 8768: struct _Save_errno { 8768: _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; } 8768: ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; } 8768: int _M_errno; 8768: } const __save_errno; 8768: 8768: struct _Range_chk { 8768: static bool 8768: _S_chk(_TRet, std::false_type) { return false; } 8768: 8768: static bool 8768: _S_chk(_TRet __val, std::true_type) 8768: { 8768: return __val < _TRet(__numeric_traits::__min) 8768: || __val > _TRet(__numeric_traits::__max); 8768: } 8768: }; 8768: 8768: const _TRet __tmp = __convf(__str, &__endptr, __base...); 8768: 8768: if (__endptr == __str) 8768: std::__throw_invalid_argument(__name); 8768: else if ((*__errno_location ()) == 34 8768: || _Range_chk::_S_chk(__tmp, std::is_same<_Ret, int>{})) 8768: std::__throw_out_of_range(__name); 8768: else 8768: __ret = __tmp; 8768: 8768: if (__idx) 8768: *__idx = __endptr - __str; 8768: 8768: return __ret; 8768: } 8768: 8768: 8768: template 8768: _String 8768: __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*, 8768: __builtin_va_list), std::size_t __n, 8768: const _CharT* __fmt, ...) 8768: { 8768: 8768: 8768: _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __n)); 8768: 8768: __builtin_va_list __args; 8768: __builtin_va_start(__args, __fmt); 8768: 8768: const int __len = __convf(__s, __n, __fmt, __args); 8768: 8768: __builtin_va_end(__args); 8768: 8768: return _String(__s, __s + __len); 8768: } 8768: 8768: 8768: } 8768: # 6362 "/usr/include/c++/8/bits/basic_string.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: namespace __cxx11 { 8768: 8768: 8768: 8768: inline int 8768: stoi(const string& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline long 8768: stol(const string& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline unsigned long 8768: stoul(const string& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline long long 8768: stoll(const string& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline unsigned long long 8768: stoull(const string& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(), 8768: __idx, __base); } 8768: 8768: 8768: inline float 8768: stof(const string& __str, size_t* __idx = 0) 8768: { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); } 8768: 8768: inline double 8768: stod(const string& __str, size_t* __idx = 0) 8768: { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); } 8768: 8768: inline long double 8768: stold(const string& __str, size_t* __idx = 0) 8768: { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline string 8768: to_string(int __val) 8768: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(int), 8768: "%d", __val); } 8768: 8768: inline string 8768: to_string(unsigned __val) 8768: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8768: 4 * sizeof(unsigned), 8768: "%u", __val); } 8768: 8768: inline string 8768: to_string(long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 4 * sizeof(long), 8768: "%ld", __val); } 8768: 8768: inline string 8768: to_string(unsigned long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8768: 4 * sizeof(unsigned long), 8768: "%lu", __val); } 8768: 8768: inline string 8768: to_string(long long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8768: 4 * sizeof(long long), 8768: "%lld", __val); } 8768: 8768: inline string 8768: to_string(unsigned long long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vsnprintf, 8768: 4 * sizeof(unsigned long long), 8768: "%llu", __val); } 8768: 8768: inline string 8768: to_string(float __val) 8768: { 8768: const int __n = 8768: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8768: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8768: "%f", __val); 8768: } 8768: 8768: inline string 8768: to_string(double __val) 8768: { 8768: const int __n = 8768: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8768: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8768: "%f", __val); 8768: } 8768: 8768: inline string 8768: to_string(long double __val) 8768: { 8768: const int __n = 8768: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8768: return __gnu_cxx::__to_xstring(&std::vsnprintf, __n, 8768: "%Lf", __val); 8768: } 8768: 8768: 8768: 8768: inline int 8768: stoi(const wstring& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::wcstol, "stoi", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline long 8768: stol(const wstring& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline unsigned long 8768: stoul(const wstring& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline long long 8768: stoll(const wstring& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(), 8768: __idx, __base); } 8768: 8768: inline unsigned long long 8768: stoull(const wstring& __str, size_t* __idx = 0, int __base = 10) 8768: { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(), 8768: __idx, __base); } 8768: 8768: 8768: inline float 8768: stof(const wstring& __str, size_t* __idx = 0) 8768: { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); } 8768: 8768: inline double 8768: stod(const wstring& __str, size_t* __idx = 0) 8768: { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); } 8768: 8768: inline long double 8768: stold(const wstring& __str, size_t* __idx = 0) 8768: { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); } 8768: 8768: 8768: 8768: inline wstring 8768: to_wstring(int __val) 8768: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(int), 8768: L"%d", __val); } 8768: 8768: inline wstring 8768: to_wstring(unsigned __val) 8768: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8768: 4 * sizeof(unsigned), 8768: L"%u", __val); } 8768: 8768: inline wstring 8768: to_wstring(long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vswprintf, 4 * sizeof(long), 8768: L"%ld", __val); } 8768: 8768: inline wstring 8768: to_wstring(unsigned long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8768: 4 * sizeof(unsigned long), 8768: L"%lu", __val); } 8768: 8768: inline wstring 8768: to_wstring(long long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8768: 4 * sizeof(long long), 8768: L"%lld", __val); } 8768: 8768: inline wstring 8768: to_wstring(unsigned long long __val) 8768: { return __gnu_cxx::__to_xstring(&std::vswprintf, 8768: 4 * sizeof(unsigned long long), 8768: L"%llu", __val); } 8768: 8768: inline wstring 8768: to_wstring(float __val) 8768: { 8768: const int __n = 8768: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8768: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8768: L"%f", __val); 8768: } 8768: 8768: inline wstring 8768: to_wstring(double __val) 8768: { 8768: const int __n = 8768: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8768: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8768: L"%f", __val); 8768: } 8768: 8768: inline wstring 8768: to_wstring(long double __val) 8768: { 8768: const int __n = 8768: __gnu_cxx::__numeric_traits::__max_exponent10 + 20; 8768: return __gnu_cxx::__to_xstring(&std::vswprintf, __n, 8768: L"%Lf", __val); 8768: } 8768: 8768: 8768: 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/functional_hash.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/functional_hash.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/functional_hash.h" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 49 "/usr/include/c++/8/bits/functional_hash.h" 3 8768: template 8768: struct __hash_base 8768: { 8768: typedef _Result result_type ; 8768: typedef _Arg argument_type ; 8768: }; 8768: 8768: 8768: template 8768: struct hash; 8768: 8768: template 8768: struct __poison_hash 8768: { 8768: static constexpr bool __enable_hash_call = false; 8768: private: 8768: 8768: __poison_hash(__poison_hash&&); 8768: ~__poison_hash(); 8768: }; 8768: 8768: template 8768: struct __poison_hash<_Tp, __void_t()(declval<_Tp>()))>> 8768: { 8768: static constexpr bool __enable_hash_call = true; 8768: }; 8768: 8768: 8768: template::value> 8768: struct __hash_enum 8768: { 8768: private: 8768: 8768: __hash_enum(__hash_enum&&); 8768: ~__hash_enum(); 8768: }; 8768: 8768: 8768: template 8768: struct __hash_enum<_Tp, true> : public __hash_base 8768: { 8768: size_t 8768: operator()(_Tp __val) const noexcept 8768: { 8768: using __type = typename underlying_type<_Tp>::type; 8768: return hash<__type>{}(static_cast<__type>(__val)); 8768: } 8768: }; 8768: 8768: 8768: 8768: template 8768: struct hash : __hash_enum<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct hash<_Tp*> : public __hash_base 8768: { 8768: size_t 8768: operator()(_Tp* __p) const noexcept 8768: { return reinterpret_cast(__p); } 8768: }; 8768: # 124 "/usr/include/c++/8/bits/functional_hash.h" 3 8768: template<> struct hash : public __hash_base { size_t operator()(bool __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(char __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(signed char __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(unsigned char __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(wchar_t __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(char16_t __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(char32_t __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(short __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(int __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(long __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(long long __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(unsigned short __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(unsigned int __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(unsigned long __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash : public __hash_base { size_t operator()(unsigned long long __val) const noexcept { return static_cast(__val); } }; 8768: 8768: 8768: template<> struct hash<__int128> : public __hash_base { size_t operator()(__int128 __val) const noexcept { return static_cast(__val); } }; 8768: template<> struct hash<__int128 unsigned> : public __hash_base { size_t operator()(__int128 unsigned __val) const noexcept { return static_cast(__val); } }; 8768: # 187 "/usr/include/c++/8/bits/functional_hash.h" 3 8768: struct _Hash_impl 8768: { 8768: static size_t 8768: hash(const void* __ptr, size_t __clength, 8768: size_t __seed = static_cast(0xc70f6907UL)) 8768: { return _Hash_bytes(__ptr, __clength, __seed); } 8768: 8768: template 8768: static size_t 8768: hash(const _Tp& __val) 8768: { return hash(&__val, sizeof(__val)); } 8768: 8768: template 8768: static size_t 8768: __hash_combine(const _Tp& __val, size_t __hash) 8768: { return hash(&__val, sizeof(__val), __hash); } 8768: }; 8768: 8768: 8768: struct _Fnv_hash_impl 8768: { 8768: static size_t 8768: hash(const void* __ptr, size_t __clength, 8768: size_t __seed = static_cast(2166136261UL)) 8768: { return _Fnv_hash_bytes(__ptr, __clength, __seed); } 8768: 8768: template 8768: static size_t 8768: hash(const _Tp& __val) 8768: { return hash(&__val, sizeof(__val)); } 8768: 8768: template 8768: static size_t 8768: __hash_combine(const _Tp& __val, size_t __hash) 8768: { return hash(&__val, sizeof(__val), __hash); } 8768: }; 8768: 8768: 8768: template<> 8768: struct hash : public __hash_base 8768: { 8768: size_t 8768: operator()(float __val) const noexcept 8768: { 8768: 8768: return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0; 8768: } 8768: }; 8768: 8768: 8768: template<> 8768: struct hash : public __hash_base 8768: { 8768: size_t 8768: operator()(double __val) const noexcept 8768: { 8768: 8768: return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0; 8768: } 8768: }; 8768: 8768: 8768: template<> 8768: struct hash 8768: : public __hash_base 8768: { 8768: __attribute__ ((__pure__)) size_t 8768: operator()(long double __val) const noexcept; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_fast_hash : public std::true_type 8768: { }; 8768: 8768: template<> 8768: struct __is_fast_hash> : public std::false_type 8768: { }; 8768: 8768: 8768: } 8768: # 6588 "/usr/include/c++/8/bits/basic_string.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: struct hash 8768: : public __hash_base 8768: { 8768: size_t 8768: operator()(const string& __s) const noexcept 8768: { return std::_Hash_impl::hash(__s.data(), __s.length()); } 8768: }; 8768: 8768: template<> 8768: struct __is_fast_hash> : std::false_type 8768: { }; 8768: 8768: 8768: 8768: template<> 8768: struct hash 8768: : public __hash_base 8768: { 8768: size_t 8768: operator()(const wstring& __s) const noexcept 8768: { return std::_Hash_impl::hash(__s.data(), 8768: __s.length() * sizeof(wchar_t)); } 8768: }; 8768: 8768: template<> 8768: struct __is_fast_hash> : std::false_type 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: struct hash 8768: : public __hash_base 8768: { 8768: size_t 8768: operator()(const u16string& __s) const noexcept 8768: { return std::_Hash_impl::hash(__s.data(), 8768: __s.length() * sizeof(char16_t)); } 8768: }; 8768: 8768: template<> 8768: struct __is_fast_hash> : std::false_type 8768: { }; 8768: 8768: 8768: template<> 8768: struct hash 8768: : public __hash_base 8768: { 8768: size_t 8768: operator()(const u32string& __s) const noexcept 8768: { return std::_Hash_impl::hash(__s.data(), 8768: __s.length() * sizeof(char32_t)); } 8768: }; 8768: 8768: template<> 8768: struct __is_fast_hash> : std::false_type 8768: { }; 8768: # 6700 "/usr/include/c++/8/bits/basic_string.h" 3 8768: 8768: } 8768: # 53 "/usr/include/c++/8/string" 2 3 8768: # 1 "/usr/include/c++/8/bits/basic_string.tcc" 1 3 8768: # 42 "/usr/include/c++/8/bits/basic_string.tcc" 3 8768: 8768: # 43 "/usr/include/c++/8/bits/basic_string.tcc" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: const typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>::npos; 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: swap(basic_string& __s) noexcept 8768: { 8768: if (this == &__s) 8768: return; 8768: 8768: _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator()); 8768: 8768: if (_M_is_local()) 8768: if (__s._M_is_local()) 8768: { 8768: if (length() && __s.length()) 8768: { 8768: _CharT __tmp_data[_S_local_capacity + 1]; 8768: traits_type::copy(__tmp_data, __s._M_local_buf, 8768: _S_local_capacity + 1); 8768: traits_type::copy(__s._M_local_buf, _M_local_buf, 8768: _S_local_capacity + 1); 8768: traits_type::copy(_M_local_buf, __tmp_data, 8768: _S_local_capacity + 1); 8768: } 8768: else if (__s.length()) 8768: { 8768: traits_type::copy(_M_local_buf, __s._M_local_buf, 8768: _S_local_capacity + 1); 8768: _M_length(__s.length()); 8768: __s._M_set_length(0); 8768: return; 8768: } 8768: else if (length()) 8768: { 8768: traits_type::copy(__s._M_local_buf, _M_local_buf, 8768: _S_local_capacity + 1); 8768: __s._M_length(length()); 8768: _M_set_length(0); 8768: return; 8768: } 8768: } 8768: else 8768: { 8768: const size_type __tmp_capacity = __s._M_allocated_capacity; 8768: traits_type::copy(__s._M_local_buf, _M_local_buf, 8768: _S_local_capacity + 1); 8768: _M_data(__s._M_data()); 8768: __s._M_data(__s._M_local_buf); 8768: _M_capacity(__tmp_capacity); 8768: } 8768: else 8768: { 8768: const size_type __tmp_capacity = _M_allocated_capacity; 8768: if (__s._M_is_local()) 8768: { 8768: traits_type::copy(_M_local_buf, __s._M_local_buf, 8768: _S_local_capacity + 1); 8768: __s._M_data(_M_data()); 8768: _M_data(_M_local_buf); 8768: } 8768: else 8768: { 8768: pointer __tmp_ptr = _M_data(); 8768: _M_data(__s._M_data()); 8768: __s._M_data(__tmp_ptr); 8768: _M_capacity(__s._M_allocated_capacity); 8768: } 8768: __s._M_capacity(__tmp_capacity); 8768: } 8768: 8768: const size_type __tmp_length = length(); 8768: _M_length(__s.length()); 8768: __s._M_length(__tmp_length); 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::pointer 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_create(size_type& __capacity, size_type __old_capacity) 8768: { 8768: 8768: 8768: if (__capacity > max_size()) 8768: std::__throw_length_error(("basic_string::_M_create")); 8768: 8768: 8768: 8768: 8768: if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) 8768: { 8768: __capacity = 2 * __old_capacity; 8768: 8768: if (__capacity > max_size()) 8768: __capacity = max_size(); 8768: } 8768: 8768: 8768: 8768: return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_construct(_InIterator __beg, _InIterator __end, 8768: std::input_iterator_tag) 8768: { 8768: size_type __len = 0; 8768: size_type __capacity = size_type(_S_local_capacity); 8768: 8768: while (__beg != __end && __len < __capacity) 8768: { 8768: _M_data()[__len++] = *__beg; 8768: ++__beg; 8768: } 8768: 8768: try 8768: { 8768: while (__beg != __end) 8768: { 8768: if (__len == __capacity) 8768: { 8768: 8768: __capacity = __len + 1; 8768: pointer __another = _M_create(__capacity, __len); 8768: this->_S_copy(__another, _M_data(), __len); 8768: _M_dispose(); 8768: _M_data(__another); 8768: _M_capacity(__capacity); 8768: } 8768: _M_data()[__len++] = *__beg; 8768: ++__beg; 8768: } 8768: } 8768: catch(...) 8768: { 8768: _M_dispose(); 8768: throw; 8768: } 8768: 8768: _M_set_length(__len); 8768: } 8768: 8768: template 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_construct(_InIterator __beg, _InIterator __end, 8768: std::forward_iterator_tag) 8768: { 8768: 8768: if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end) 8768: std::__throw_logic_error(("basic_string::" "_M_construct null not valid") 8768: ); 8768: 8768: size_type __dnew = static_cast(std::distance(__beg, __end)); 8768: 8768: if (__dnew > size_type(_S_local_capacity)) 8768: { 8768: _M_data(_M_create(__dnew, size_type(0))); 8768: _M_capacity(__dnew); 8768: } 8768: 8768: 8768: try 8768: { this->_S_copy_chars(_M_data(), __beg, __end); } 8768: catch(...) 8768: { 8768: _M_dispose(); 8768: throw; 8768: } 8768: 8768: _M_set_length(__dnew); 8768: } 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_construct(size_type __n, _CharT __c) 8768: { 8768: if (__n > size_type(_S_local_capacity)) 8768: { 8768: _M_data(_M_create(__n, size_type(0))); 8768: _M_capacity(__n); 8768: } 8768: 8768: if (__n) 8768: this->_S_assign(_M_data(), __n, __c); 8768: 8768: _M_set_length(__n); 8768: } 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_assign(const basic_string& __str) 8768: { 8768: if (this != &__str) 8768: { 8768: const size_type __rsize = __str.length(); 8768: const size_type __capacity = capacity(); 8768: 8768: if (__rsize > __capacity) 8768: { 8768: size_type __new_capacity = __rsize; 8768: pointer __tmp = _M_create(__new_capacity, __capacity); 8768: _M_dispose(); 8768: _M_data(__tmp); 8768: _M_capacity(__new_capacity); 8768: } 8768: 8768: if (__rsize) 8768: this->_S_copy(_M_data(), __str._M_data(), __rsize); 8768: 8768: _M_set_length(__rsize); 8768: } 8768: } 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: reserve(size_type __res) 8768: { 8768: 8768: if (__res < length()) 8768: __res = length(); 8768: 8768: const size_type __capacity = capacity(); 8768: if (__res != __capacity) 8768: { 8768: if (__res > __capacity 8768: || __res > size_type(_S_local_capacity)) 8768: { 8768: pointer __tmp = _M_create(__res, __capacity); 8768: this->_S_copy(__tmp, _M_data(), length() + 1); 8768: _M_dispose(); 8768: _M_data(__tmp); 8768: _M_capacity(__res); 8768: } 8768: else if (!_M_is_local()) 8768: { 8768: this->_S_copy(_M_local_data(), _M_data(), length() + 1); 8768: _M_destroy(__capacity); 8768: _M_data(_M_local_data()); 8768: } 8768: } 8768: } 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_mutate(size_type __pos, size_type __len1, const _CharT* __s, 8768: size_type __len2) 8768: { 8768: const size_type __how_much = length() - __pos - __len1; 8768: 8768: size_type __new_capacity = length() + __len2 - __len1; 8768: pointer __r = _M_create(__new_capacity, capacity()); 8768: 8768: if (__pos) 8768: this->_S_copy(__r, _M_data(), __pos); 8768: if (__s && __len2) 8768: this->_S_copy(__r + __pos, __s, __len2); 8768: if (__how_much) 8768: this->_S_copy(__r + __pos + __len2, 8768: _M_data() + __pos + __len1, __how_much); 8768: 8768: _M_dispose(); 8768: _M_data(__r); 8768: _M_capacity(__new_capacity); 8768: } 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_erase(size_type __pos, size_type __n) 8768: { 8768: const size_type __how_much = length() - __pos - __n; 8768: 8768: if (__how_much && __n) 8768: this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much); 8768: 8768: _M_set_length(length() - __n); 8768: } 8768: 8768: template 8768: void 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: resize(size_type __n, _CharT __c) 8768: { 8768: const size_type __size = this->size(); 8768: if (__size < __n) 8768: this->append(__n - __size, __c); 8768: else if (__n < __size) 8768: this->_M_set_length(__n); 8768: } 8768: 8768: template 8768: basic_string<_CharT, _Traits, _Alloc>& 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_append(const _CharT* __s, size_type __n) 8768: { 8768: const size_type __len = __n + this->size(); 8768: 8768: if (__len <= this->capacity()) 8768: { 8768: if (__n) 8768: this->_S_copy(this->_M_data() + this->size(), __s, __n); 8768: } 8768: else 8768: this->_M_mutate(this->size(), size_type(0), __s, __n); 8768: 8768: this->_M_set_length(__len); 8768: return *this; 8768: } 8768: 8768: template 8768: template 8768: basic_string<_CharT, _Traits, _Alloc>& 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_replace_dispatch(const_iterator __i1, const_iterator __i2, 8768: _InputIterator __k1, _InputIterator __k2, 8768: std::__false_type) 8768: { 8768: const basic_string __s(__k1, __k2); 8768: const size_type __n1 = __i2 - __i1; 8768: return _M_replace(__i1 - begin(), __n1, __s._M_data(), 8768: __s.size()); 8768: } 8768: 8768: template 8768: basic_string<_CharT, _Traits, _Alloc>& 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, 8768: _CharT __c) 8768: { 8768: _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); 8768: 8768: const size_type __old_size = this->size(); 8768: const size_type __new_size = __old_size + __n2 - __n1; 8768: 8768: if (__new_size <= this->capacity()) 8768: { 8768: pointer __p = this->_M_data() + __pos1; 8768: 8768: const size_type __how_much = __old_size - __pos1 - __n1; 8768: if (__how_much && __n1 != __n2) 8768: this->_S_move(__p + __n2, __p + __n1, __how_much); 8768: } 8768: else 8768: this->_M_mutate(__pos1, __n1, 0, __n2); 8768: 8768: if (__n2) 8768: this->_S_assign(this->_M_data() + __pos1, __n2, __c); 8768: 8768: this->_M_set_length(__new_size); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_string<_CharT, _Traits, _Alloc>& 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: _M_replace(size_type __pos, size_type __len1, const _CharT* __s, 8768: const size_type __len2) 8768: { 8768: _M_check_length(__len1, __len2, "basic_string::_M_replace"); 8768: 8768: const size_type __old_size = this->size(); 8768: const size_type __new_size = __old_size + __len2 - __len1; 8768: 8768: if (__new_size <= this->capacity()) 8768: { 8768: pointer __p = this->_M_data() + __pos; 8768: 8768: const size_type __how_much = __old_size - __pos - __len1; 8768: if (_M_disjunct(__s)) 8768: { 8768: if (__how_much && __len1 != __len2) 8768: this->_S_move(__p + __len2, __p + __len1, __how_much); 8768: if (__len2) 8768: this->_S_copy(__p, __s, __len2); 8768: } 8768: else 8768: { 8768: 8768: if (__len2 && __len2 <= __len1) 8768: this->_S_move(__p, __s, __len2); 8768: if (__how_much && __len1 != __len2) 8768: this->_S_move(__p + __len2, __p + __len1, __how_much); 8768: if (__len2 > __len1) 8768: { 8768: if (__s + __len2 <= __p + __len1) 8768: this->_S_move(__p, __s, __len2); 8768: else if (__s >= __p + __len1) 8768: this->_S_copy(__p, __s + __len2 - __len1, __len2); 8768: else 8768: { 8768: const size_type __nleft = (__p + __len1) - __s; 8768: this->_S_move(__p, __s, __nleft); 8768: this->_S_copy(__p + __nleft, __p + __len2, 8768: __len2 - __nleft); 8768: } 8768: } 8768: } 8768: } 8768: else 8768: this->_M_mutate(__pos, __len1, __s, __len2); 8768: 8768: this->_M_set_length(__new_size); 8768: return *this; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: copy(_CharT* __s, size_type __n, size_type __pos) const 8768: { 8768: _M_check(__pos, "basic_string::copy"); 8768: __n = _M_limit(__pos, __n); 8768: ; 8768: if (__n) 8768: _S_copy(__s, _M_data() + __pos, __n); 8768: 8768: return __n; 8768: } 8768: # 1155 "/usr/include/c++/8/bits/basic_string.tcc" 3 8768: template 8768: basic_string<_CharT, _Traits, _Alloc> 8768: operator+(const _CharT* __lhs, 8768: const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { 8768: ; 8768: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8768: typedef typename __string_type::size_type __size_type; 8768: const __size_type __len = _Traits::length(__lhs); 8768: __string_type __str; 8768: __str.reserve(__len + __rhs.size()); 8768: __str.append(__lhs, __len); 8768: __str.append(__rhs); 8768: return __str; 8768: } 8768: 8768: template 8768: basic_string<_CharT, _Traits, _Alloc> 8768: operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) 8768: { 8768: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8768: typedef typename __string_type::size_type __size_type; 8768: __string_type __str; 8768: const __size_type __len = __rhs.size(); 8768: __str.reserve(__len + 1); 8768: __str.append(__size_type(1), __lhs); 8768: __str.append(__rhs); 8768: return __str; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept 8768: { 8768: ; 8768: const size_type __size = this->size(); 8768: 8768: if (__n == 0) 8768: return __pos <= __size ? __pos : npos; 8768: if (__pos >= __size) 8768: return npos; 8768: 8768: const _CharT __elem0 = __s[0]; 8768: const _CharT* const __data = data(); 8768: const _CharT* __first = __data + __pos; 8768: const _CharT* const __last = __data + __size; 8768: size_type __len = __size - __pos; 8768: 8768: while (__len >= __n) 8768: { 8768: 8768: __first = traits_type::find(__first, __len - __n + 1, __elem0); 8768: if (!__first) 8768: return npos; 8768: 8768: 8768: 8768: if (traits_type::compare(__first, __s, __n) == 0) 8768: return __first - __data; 8768: __len = __last - ++__first; 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find(_CharT __c, size_type __pos) const noexcept 8768: { 8768: size_type __ret = npos; 8768: const size_type __size = this->size(); 8768: if (__pos < __size) 8768: { 8768: const _CharT* __data = _M_data(); 8768: const size_type __n = __size - __pos; 8768: const _CharT* __p = traits_type::find(__data + __pos, __n, __c); 8768: if (__p) 8768: __ret = __p - __data; 8768: } 8768: return __ret; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: rfind(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept 8768: { 8768: ; 8768: const size_type __size = this->size(); 8768: if (__n <= __size) 8768: { 8768: __pos = std::min(size_type(__size - __n), __pos); 8768: const _CharT* __data = _M_data(); 8768: do 8768: { 8768: if (traits_type::compare(__data + __pos, __s, __n) == 0) 8768: return __pos; 8768: } 8768: while (__pos-- > 0); 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: rfind(_CharT __c, size_type __pos) const noexcept 8768: { 8768: size_type __size = this->size(); 8768: if (__size) 8768: { 8768: if (--__size > __pos) 8768: __size = __pos; 8768: for (++__size; __size-- > 0; ) 8768: if (traits_type::eq(_M_data()[__size], __c)) 8768: return __size; 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find_first_of(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept 8768: { 8768: ; 8768: for (; __n && __pos < this->size(); ++__pos) 8768: { 8768: const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); 8768: if (__p) 8768: return __pos; 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find_last_of(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept 8768: { 8768: ; 8768: size_type __size = this->size(); 8768: if (__size && __n) 8768: { 8768: if (--__size > __pos) 8768: __size = __pos; 8768: do 8768: { 8768: if (traits_type::find(__s, __n, _M_data()[__size])) 8768: return __size; 8768: } 8768: while (__size-- != 0); 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept 8768: { 8768: ; 8768: for (; __pos < this->size(); ++__pos) 8768: if (!traits_type::find(__s, __n, _M_data()[__pos])) 8768: return __pos; 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find_first_not_of(_CharT __c, size_type __pos) const noexcept 8768: { 8768: for (; __pos < this->size(); ++__pos) 8768: if (!traits_type::eq(_M_data()[__pos], __c)) 8768: return __pos; 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const 8768: noexcept 8768: { 8768: ; 8768: size_type __size = this->size(); 8768: if (__size) 8768: { 8768: if (--__size > __pos) 8768: __size = __pos; 8768: do 8768: { 8768: if (!traits_type::find(__s, __n, _M_data()[__size])) 8768: return __size; 8768: } 8768: while (__size--); 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: typename basic_string<_CharT, _Traits, _Alloc>::size_type 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: find_last_not_of(_CharT __c, size_type __pos) const noexcept 8768: { 8768: size_type __size = this->size(); 8768: if (__size) 8768: { 8768: if (--__size > __pos) 8768: __size = __pos; 8768: do 8768: { 8768: if (!traits_type::eq(_M_data()[__size], __c)) 8768: return __size; 8768: } 8768: while (__size--); 8768: } 8768: return npos; 8768: } 8768: 8768: template 8768: int 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: compare(size_type __pos, size_type __n, const basic_string& __str) const 8768: { 8768: _M_check(__pos, "basic_string::compare"); 8768: __n = _M_limit(__pos, __n); 8768: const size_type __osize = __str.size(); 8768: const size_type __len = std::min(__n, __osize); 8768: int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); 8768: if (!__r) 8768: __r = _S_compare(__n, __osize); 8768: return __r; 8768: } 8768: 8768: template 8768: int 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: compare(size_type __pos1, size_type __n1, const basic_string& __str, 8768: size_type __pos2, size_type __n2) const 8768: { 8768: _M_check(__pos1, "basic_string::compare"); 8768: __str._M_check(__pos2, "basic_string::compare"); 8768: __n1 = _M_limit(__pos1, __n1); 8768: __n2 = __str._M_limit(__pos2, __n2); 8768: const size_type __len = std::min(__n1, __n2); 8768: int __r = traits_type::compare(_M_data() + __pos1, 8768: __str.data() + __pos2, __len); 8768: if (!__r) 8768: __r = _S_compare(__n1, __n2); 8768: return __r; 8768: } 8768: 8768: template 8768: int 8768: basic_string<_CharT, _Traits, _Alloc>:: 8768: compare(const _CharT* __s) const noexcept 8768: { 8768: ; 8768: const size_type __size = this->size(); 8768: const size_type __osize = traits_type::length(__s); 8768: const size_type __len = std::min(__size, __osize); 8768: int __r = traits_type::compare(_M_data(), __s, __len); 8768: if (!__r) 8768: __r = _S_compare(__size, __osize); 8768: return __r; 8768: } 8768: 8768: template 8768: int 8768: basic_string <_CharT, _Traits, _Alloc>:: 8768: compare(size_type __pos, size_type __n1, const _CharT* __s) const 8768: { 8768: ; 8768: _M_check(__pos, "basic_string::compare"); 8768: __n1 = _M_limit(__pos, __n1); 8768: const size_type __osize = traits_type::length(__s); 8768: const size_type __len = std::min(__n1, __osize); 8768: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8768: if (!__r) 8768: __r = _S_compare(__n1, __osize); 8768: return __r; 8768: } 8768: 8768: template 8768: int 8768: basic_string <_CharT, _Traits, _Alloc>:: 8768: compare(size_type __pos, size_type __n1, const _CharT* __s, 8768: size_type __n2) const 8768: { 8768: ; 8768: _M_check(__pos, "basic_string::compare"); 8768: __n1 = _M_limit(__pos, __n1); 8768: const size_type __len = std::min(__n1, __n2); 8768: int __r = traits_type::compare(_M_data() + __pos, __s, __len); 8768: if (!__r) 8768: __r = _S_compare(__n1, __n2); 8768: return __r; 8768: } 8768: 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: operator>>(basic_istream<_CharT, _Traits>& __in, 8768: basic_string<_CharT, _Traits, _Alloc>& __str) 8768: { 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8768: typedef typename __istream_type::ios_base __ios_base; 8768: typedef typename __istream_type::int_type __int_type; 8768: typedef typename __string_type::size_type __size_type; 8768: typedef ctype<_CharT> __ctype_type; 8768: typedef typename __ctype_type::ctype_base __ctype_base; 8768: 8768: __size_type __extracted = 0; 8768: typename __ios_base::iostate __err = __ios_base::goodbit; 8768: typename __istream_type::sentry __cerb(__in, false); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: 8768: __str.erase(); 8768: _CharT __buf[128]; 8768: __size_type __len = 0; 8768: const streamsize __w = __in.width(); 8768: const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) 8768: : __str.max_size(); 8768: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8768: const __int_type __eof = _Traits::eof(); 8768: __int_type __c = __in.rdbuf()->sgetc(); 8768: 8768: while (__extracted < __n 8768: && !_Traits::eq_int_type(__c, __eof) 8768: && !__ct.is(__ctype_base::space, 8768: _Traits::to_char_type(__c))) 8768: { 8768: if (__len == sizeof(__buf) / sizeof(_CharT)) 8768: { 8768: __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); 8768: __len = 0; 8768: } 8768: __buf[__len++] = _Traits::to_char_type(__c); 8768: ++__extracted; 8768: __c = __in.rdbuf()->snextc(); 8768: } 8768: __str.append(__buf, __len); 8768: 8768: if (_Traits::eq_int_type(__c, __eof)) 8768: __err |= __ios_base::eofbit; 8768: __in.width(0); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __in._M_setstate(__ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { 8768: 8768: 8768: 8768: __in._M_setstate(__ios_base::badbit); 8768: } 8768: } 8768: 8768: if (!__extracted) 8768: __err |= __ios_base::failbit; 8768: if (__err) 8768: __in.setstate(__err); 8768: return __in; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: getline(basic_istream<_CharT, _Traits>& __in, 8768: basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) 8768: { 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef basic_string<_CharT, _Traits, _Alloc> __string_type; 8768: typedef typename __istream_type::ios_base __ios_base; 8768: typedef typename __istream_type::int_type __int_type; 8768: typedef typename __string_type::size_type __size_type; 8768: 8768: __size_type __extracted = 0; 8768: const __size_type __n = __str.max_size(); 8768: typename __ios_base::iostate __err = __ios_base::goodbit; 8768: typename __istream_type::sentry __cerb(__in, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: __str.erase(); 8768: const __int_type __idelim = _Traits::to_int_type(__delim); 8768: const __int_type __eof = _Traits::eof(); 8768: __int_type __c = __in.rdbuf()->sgetc(); 8768: 8768: while (__extracted < __n 8768: && !_Traits::eq_int_type(__c, __eof) 8768: && !_Traits::eq_int_type(__c, __idelim)) 8768: { 8768: __str += _Traits::to_char_type(__c); 8768: ++__extracted; 8768: __c = __in.rdbuf()->snextc(); 8768: } 8768: 8768: if (_Traits::eq_int_type(__c, __eof)) 8768: __err |= __ios_base::eofbit; 8768: else if (_Traits::eq_int_type(__c, __idelim)) 8768: { 8768: ++__extracted; 8768: __in.rdbuf()->sbumpc(); 8768: } 8768: else 8768: __err |= __ios_base::failbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __in._M_setstate(__ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { 8768: 8768: 8768: 8768: __in._M_setstate(__ios_base::badbit); 8768: } 8768: } 8768: if (!__extracted) 8768: __err |= __ios_base::failbit; 8768: if (__err) 8768: __in.setstate(__err); 8768: return __in; 8768: } 8768: 8768: 8768: 8768: 8768: extern template class basic_string; 8768: extern template 8768: basic_istream& 8768: operator>>(basic_istream&, string&); 8768: extern template 8768: basic_ostream& 8768: operator<<(basic_ostream&, const string&); 8768: extern template 8768: basic_istream& 8768: getline(basic_istream&, string&, char); 8768: extern template 8768: basic_istream& 8768: getline(basic_istream&, string&); 8768: 8768: 8768: extern template class basic_string; 8768: extern template 8768: basic_istream& 8768: operator>>(basic_istream&, wstring&); 8768: extern template 8768: basic_ostream& 8768: operator<<(basic_ostream&, const wstring&); 8768: extern template 8768: basic_istream& 8768: getline(basic_istream&, wstring&, wchar_t); 8768: extern template 8768: basic_istream& 8768: getline(basic_istream&, wstring&); 8768: 8768: 8768: 8768: 8768: } 8768: # 54 "/usr/include/c++/8/string" 2 3 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: # 1 "/usr/include/c++/8/iterator" 1 3 4 8768: # 58 "/usr/include/c++/8/iterator" 3 4 8768: 8768: # 59 "/usr/include/c++/8/iterator" 3 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/ostream" 1 3 8768: # 36 "/usr/include/c++/8/ostream" 3 8768: 8768: # 37 "/usr/include/c++/8/ostream" 3 8768: 8768: # 1 "/usr/include/c++/8/ios" 1 3 8768: # 36 "/usr/include/c++/8/ios" 3 8768: 8768: # 37 "/usr/include/c++/8/ios" 3 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/ios_base.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/ios_base.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/ios_base.h" 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/locale_classes.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 62 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: class locale 8768: { 8768: public: 8768: 8768: 8768: typedef int category; 8768: 8768: 8768: class facet; 8768: class id; 8768: class _Impl; 8768: 8768: friend class facet; 8768: friend class _Impl; 8768: 8768: template 8768: friend bool 8768: has_facet(const locale&) throw(); 8768: 8768: template 8768: friend const _Facet& 8768: use_facet(const locale&); 8768: 8768: template 8768: friend struct __use_cache; 8768: # 98 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: static const category none = 0; 8768: static const category ctype = 1L << 0; 8768: static const category numeric = 1L << 1; 8768: static const category collate = 1L << 2; 8768: static const category time = 1L << 3; 8768: static const category monetary = 1L << 4; 8768: static const category messages = 1L << 5; 8768: static const category all = (ctype | numeric | collate | 8768: time | monetary | messages); 8768: # 117 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: locale() throw(); 8768: # 126 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: locale(const locale& __other) throw(); 8768: # 136 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: explicit 8768: locale(const char* __s); 8768: # 151 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: locale(const locale& __base, const char* __s, category __cat); 8768: # 162 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: explicit 8768: locale(const std::string& __s) : locale(__s.c_str()) { } 8768: # 177 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: locale(const locale& __base, const std::string& __s, category __cat) 8768: : locale(__base, __s.c_str(), __cat) { } 8768: # 192 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: locale(const locale& __base, const locale& __add, category __cat); 8768: # 205 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: template 8768: locale(const locale& __other, _Facet* __f); 8768: 8768: 8768: ~locale() throw(); 8768: # 219 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: const locale& 8768: operator=(const locale& __other) throw(); 8768: # 234 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: template 8768: locale 8768: combine(const locale& __other) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: string 8768: name() const; 8768: # 254 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: bool 8768: operator==(const locale& __other) const throw(); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: operator!=(const locale& __other) const throw() 8768: { return !(this->operator==(__other)); } 8768: # 282 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: template 8768: bool 8768: operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, 8768: const basic_string<_Char, _Traits, _Alloc>& __s2) const; 8768: # 298 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: static locale 8768: global(const locale& __loc); 8768: 8768: 8768: 8768: 8768: static const locale& 8768: classic(); 8768: 8768: private: 8768: 8768: _Impl* _M_impl; 8768: 8768: 8768: static _Impl* _S_classic; 8768: 8768: 8768: static _Impl* _S_global; 8768: 8768: 8768: 8768: 8768: 8768: static const char* const* const _S_categories; 8768: # 333 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: enum { _S_categories_size = 6 + 6 }; 8768: 8768: 8768: static __gthread_once_t _S_once; 8768: 8768: 8768: explicit 8768: locale(_Impl*) throw(); 8768: 8768: static void 8768: _S_initialize(); 8768: 8768: static void 8768: _S_initialize_once() throw(); 8768: 8768: static category 8768: _S_normalize_category(category); 8768: 8768: void 8768: _M_coalesce(const locale& __base, const locale& __add, category __cat); 8768: 8768: 8768: static const id* const _S_twinned_facets[]; 8768: 8768: }; 8768: # 371 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: class locale::facet 8768: { 8768: private: 8768: friend class locale; 8768: friend class locale::_Impl; 8768: 8768: mutable _Atomic_word _M_refcount; 8768: 8768: 8768: static __c_locale _S_c_locale; 8768: 8768: 8768: static const char _S_c_name[2]; 8768: 8768: 8768: static __gthread_once_t _S_once; 8768: 8768: 8768: static void 8768: _S_initialize_once(); 8768: 8768: protected: 8768: # 402 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: explicit 8768: facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) 8768: { } 8768: 8768: 8768: virtual 8768: ~facet(); 8768: 8768: static void 8768: _S_create_c_locale(__c_locale& __cloc, const char* __s, 8768: __c_locale __old = 0); 8768: 8768: static __c_locale 8768: _S_clone_c_locale(__c_locale& __cloc) throw(); 8768: 8768: static void 8768: _S_destroy_c_locale(__c_locale& __cloc); 8768: 8768: static __c_locale 8768: _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s); 8768: 8768: 8768: 8768: static __c_locale 8768: _S_get_c_locale(); 8768: 8768: __attribute__ ((__const__)) static const char* 8768: _S_get_c_name() throw(); 8768: # 438 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: facet(const facet&) = delete; 8768: 8768: facet& 8768: operator=(const facet&) = delete; 8768: 8768: 8768: private: 8768: void 8768: _M_add_reference() const throw() 8768: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8768: 8768: void 8768: _M_remove_reference() const throw() 8768: { 8768: 8768: ; 8768: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8768: { 8768: ; 8768: try 8768: { delete this; } 8768: catch(...) 8768: { } 8768: } 8768: } 8768: 8768: const facet* _M_sso_shim(const id*) const; 8768: const facet* _M_cow_shim(const id*) const; 8768: 8768: protected: 8768: class __shim; 8768: }; 8768: # 483 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: class locale::id 8768: { 8768: private: 8768: friend class locale; 8768: friend class locale::_Impl; 8768: 8768: template 8768: friend const _Facet& 8768: use_facet(const locale&); 8768: 8768: template 8768: friend bool 8768: has_facet(const locale&) throw(); 8768: 8768: 8768: 8768: 8768: mutable size_t _M_index; 8768: 8768: 8768: static _Atomic_word _S_refcount; 8768: 8768: void 8768: operator=(const id&); 8768: 8768: id(const id&); 8768: 8768: public: 8768: 8768: 8768: 8768: id() { } 8768: 8768: size_t 8768: _M_id() const throw(); 8768: }; 8768: 8768: 8768: 8768: class locale::_Impl 8768: { 8768: public: 8768: 8768: friend class locale; 8768: friend class locale::facet; 8768: 8768: template 8768: friend bool 8768: has_facet(const locale&) throw(); 8768: 8768: template 8768: friend const _Facet& 8768: use_facet(const locale&); 8768: 8768: template 8768: friend struct __use_cache; 8768: 8768: private: 8768: 8768: _Atomic_word _M_refcount; 8768: const facet** _M_facets; 8768: size_t _M_facets_size; 8768: const facet** _M_caches; 8768: char** _M_names; 8768: static const locale::id* const _S_id_ctype[]; 8768: static const locale::id* const _S_id_numeric[]; 8768: static const locale::id* const _S_id_collate[]; 8768: static const locale::id* const _S_id_time[]; 8768: static const locale::id* const _S_id_monetary[]; 8768: static const locale::id* const _S_id_messages[]; 8768: static const locale::id* const* const _S_facet_categories[]; 8768: 8768: void 8768: _M_add_reference() throw() 8768: { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8768: 8768: void 8768: _M_remove_reference() throw() 8768: { 8768: 8768: ; 8768: if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) 8768: { 8768: ; 8768: try 8768: { delete this; } 8768: catch(...) 8768: { } 8768: } 8768: } 8768: 8768: _Impl(const _Impl&, size_t); 8768: _Impl(const char*, size_t); 8768: _Impl(size_t) throw(); 8768: 8768: ~_Impl() throw(); 8768: 8768: _Impl(const _Impl&); 8768: 8768: void 8768: operator=(const _Impl&); 8768: 8768: bool 8768: _M_check_same_name() 8768: { 8768: bool __ret = true; 8768: if (_M_names[1]) 8768: 8768: for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) 8768: __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; 8768: return __ret; 8768: } 8768: 8768: void 8768: _M_replace_categories(const _Impl*, category); 8768: 8768: void 8768: _M_replace_category(const _Impl*, const locale::id* const*); 8768: 8768: void 8768: _M_replace_facet(const _Impl*, const locale::id*); 8768: 8768: void 8768: _M_install_facet(const locale::id*, const facet*); 8768: 8768: template 8768: void 8768: _M_init_facet(_Facet* __facet) 8768: { _M_install_facet(&_Facet::id, __facet); } 8768: 8768: template 8768: void 8768: _M_init_facet_unchecked(_Facet* __facet) 8768: { 8768: __facet->_M_add_reference(); 8768: _M_facets[_Facet::id._M_id()] = __facet; 8768: } 8768: 8768: void 8768: _M_install_cache(const facet*, size_t); 8768: 8768: void _M_init_extra(facet**); 8768: void _M_init_extra(void*, void*, const char*, const char*); 8768: }; 8768: # 641 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: template 8768: class __cxx11:: collate : public locale::facet 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef basic_string<_CharT> string_type; 8768: 8768: 8768: protected: 8768: 8768: 8768: __c_locale _M_c_locale_collate; 8768: 8768: public: 8768: 8768: static locale::id id; 8768: # 668 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: explicit 8768: collate(size_t __refs = 0) 8768: : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) 8768: { } 8768: # 682 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: explicit 8768: collate(__c_locale __cloc, size_t __refs = 0) 8768: : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) 8768: { } 8768: # 699 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: int 8768: compare(const _CharT* __lo1, const _CharT* __hi1, 8768: const _CharT* __lo2, const _CharT* __hi2) const 8768: { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } 8768: # 718 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: string_type 8768: transform(const _CharT* __lo, const _CharT* __hi) const 8768: { return this->do_transform(__lo, __hi); } 8768: # 732 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: long 8768: hash(const _CharT* __lo, const _CharT* __hi) const 8768: { return this->do_hash(__lo, __hi); } 8768: 8768: 8768: int 8768: _M_compare(const _CharT*, const _CharT*) const throw(); 8768: 8768: size_t 8768: _M_transform(_CharT*, const _CharT*, size_t) const throw(); 8768: 8768: protected: 8768: 8768: virtual 8768: ~collate() 8768: { _S_destroy_c_locale(_M_c_locale_collate); } 8768: # 761 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: virtual int 8768: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8768: const _CharT* __lo2, const _CharT* __hi2) const; 8768: # 775 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: virtual string_type 8768: do_transform(const _CharT* __lo, const _CharT* __hi) const; 8768: # 788 "/usr/include/c++/8/bits/locale_classes.h" 3 8768: virtual long 8768: do_hash(const _CharT* __lo, const _CharT* __hi) const; 8768: }; 8768: 8768: template 8768: locale::id collate<_CharT>::id; 8768: 8768: 8768: template<> 8768: int 8768: collate::_M_compare(const char*, const char*) const throw(); 8768: 8768: template<> 8768: size_t 8768: collate::_M_transform(char*, const char*, size_t) const throw(); 8768: 8768: 8768: template<> 8768: int 8768: collate::_M_compare(const wchar_t*, const wchar_t*) const throw(); 8768: 8768: template<> 8768: size_t 8768: collate::_M_transform(wchar_t*, const wchar_t*, size_t) const throw(); 8768: 8768: 8768: 8768: template 8768: class __cxx11:: collate_byname : public collate<_CharT> 8768: { 8768: public: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef basic_string<_CharT> string_type; 8768: 8768: 8768: explicit 8768: collate_byname(const char* __s, size_t __refs = 0) 8768: : collate<_CharT>(__refs) 8768: { 8768: if (__builtin_strcmp(__s, "C") != 0 8768: && __builtin_strcmp(__s, "POSIX") != 0) 8768: { 8768: this->_S_destroy_c_locale(this->_M_c_locale_collate); 8768: this->_S_create_c_locale(this->_M_c_locale_collate, __s); 8768: } 8768: } 8768: 8768: 8768: explicit 8768: collate_byname(const string& __s, size_t __refs = 0) 8768: : collate_byname(__s.c_str(), __refs) { } 8768: 8768: 8768: protected: 8768: virtual 8768: ~collate_byname() { } 8768: }; 8768: 8768: 8768: } 8768: 8768: # 1 "/usr/include/c++/8/bits/locale_classes.tcc" 1 3 8768: # 37 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: locale:: 8768: locale(const locale& __other, _Facet* __f) 8768: { 8768: _M_impl = new _Impl(*__other._M_impl, 1); 8768: 8768: try 8768: { _M_impl->_M_install_facet(&_Facet::id, __f); } 8768: catch(...) 8768: { 8768: _M_impl->_M_remove_reference(); 8768: throw; 8768: } 8768: delete [] _M_impl->_M_names[0]; 8768: _M_impl->_M_names[0] = 0; 8768: } 8768: 8768: template 8768: locale 8768: locale:: 8768: combine(const locale& __other) const 8768: { 8768: _Impl* __tmp = new _Impl(*_M_impl, 1); 8768: try 8768: { 8768: __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); 8768: } 8768: catch(...) 8768: { 8768: __tmp->_M_remove_reference(); 8768: throw; 8768: } 8768: return locale(__tmp); 8768: } 8768: 8768: template 8768: bool 8768: locale:: 8768: operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, 8768: const basic_string<_CharT, _Traits, _Alloc>& __s2) const 8768: { 8768: typedef std::collate<_CharT> __collate_type; 8768: const __collate_type& __collate = use_facet<__collate_type>(*this); 8768: return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), 8768: __s2.data(), __s2.data() + __s2.length()) < 0); 8768: } 8768: # 102 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8768: template 8768: bool 8768: has_facet(const locale& __loc) throw() 8768: { 8768: const size_t __i = _Facet::id._M_id(); 8768: const locale::facet** __facets = __loc._M_impl->_M_facets; 8768: return (__i < __loc._M_impl->_M_facets_size 8768: 8768: && dynamic_cast(__facets[__i])); 8768: 8768: 8768: 8768: } 8768: # 130 "/usr/include/c++/8/bits/locale_classes.tcc" 3 8768: template 8768: const _Facet& 8768: use_facet(const locale& __loc) 8768: { 8768: const size_t __i = _Facet::id._M_id(); 8768: const locale::facet** __facets = __loc._M_impl->_M_facets; 8768: if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) 8768: __throw_bad_cast(); 8768: 8768: return dynamic_cast(*__facets[__i]); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: template 8768: int 8768: collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw () 8768: { return 0; } 8768: 8768: 8768: template 8768: size_t 8768: collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw () 8768: { return 0; } 8768: 8768: template 8768: int 8768: collate<_CharT>:: 8768: do_compare(const _CharT* __lo1, const _CharT* __hi1, 8768: const _CharT* __lo2, const _CharT* __hi2) const 8768: { 8768: 8768: 8768: const string_type __one(__lo1, __hi1); 8768: const string_type __two(__lo2, __hi2); 8768: 8768: const _CharT* __p = __one.c_str(); 8768: const _CharT* __pend = __one.data() + __one.length(); 8768: const _CharT* __q = __two.c_str(); 8768: const _CharT* __qend = __two.data() + __two.length(); 8768: 8768: 8768: 8768: 8768: for (;;) 8768: { 8768: const int __res = _M_compare(__p, __q); 8768: if (__res) 8768: return __res; 8768: 8768: __p += char_traits<_CharT>::length(__p); 8768: __q += char_traits<_CharT>::length(__q); 8768: if (__p == __pend && __q == __qend) 8768: return 0; 8768: else if (__p == __pend) 8768: return -1; 8768: else if (__q == __qend) 8768: return 1; 8768: 8768: __p++; 8768: __q++; 8768: } 8768: } 8768: 8768: template 8768: typename collate<_CharT>::string_type 8768: collate<_CharT>:: 8768: do_transform(const _CharT* __lo, const _CharT* __hi) const 8768: { 8768: string_type __ret; 8768: 8768: 8768: const string_type __str(__lo, __hi); 8768: 8768: const _CharT* __p = __str.c_str(); 8768: const _CharT* __pend = __str.data() + __str.length(); 8768: 8768: size_t __len = (__hi - __lo) * 2; 8768: 8768: _CharT* __c = new _CharT[__len]; 8768: 8768: try 8768: { 8768: 8768: 8768: 8768: for (;;) 8768: { 8768: 8768: size_t __res = _M_transform(__c, __p, __len); 8768: 8768: 8768: if (__res >= __len) 8768: { 8768: __len = __res + 1; 8768: delete [] __c, __c = 0; 8768: __c = new _CharT[__len]; 8768: __res = _M_transform(__c, __p, __len); 8768: } 8768: 8768: __ret.append(__c, __res); 8768: __p += char_traits<_CharT>::length(__p); 8768: if (__p == __pend) 8768: break; 8768: 8768: __p++; 8768: __ret.push_back(_CharT()); 8768: } 8768: } 8768: catch(...) 8768: { 8768: delete [] __c; 8768: throw; 8768: } 8768: 8768: delete [] __c; 8768: 8768: return __ret; 8768: } 8768: 8768: template 8768: long 8768: collate<_CharT>:: 8768: do_hash(const _CharT* __lo, const _CharT* __hi) const 8768: { 8768: unsigned long __val = 0; 8768: for (; __lo < __hi; ++__lo) 8768: __val = 8768: *__lo + ((__val << 7) 8768: | (__val >> (__gnu_cxx::__numeric_traits:: 8768: __digits - 7))); 8768: return static_cast(__val); 8768: } 8768: 8768: 8768: 8768: 8768: extern template class collate; 8768: extern template class collate_byname; 8768: 8768: extern template 8768: const collate& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: 8768: extern template class collate; 8768: extern template class collate_byname; 8768: 8768: extern template 8768: const collate& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: 8768: 8768: 8768: } 8768: # 852 "/usr/include/c++/8/bits/locale_classes.h" 2 3 8768: # 42 "/usr/include/c++/8/bits/ios_base.h" 2 3 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/system_error" 1 3 8768: # 32 "/usr/include/c++/8/system_error" 3 8768: 8768: # 33 "/usr/include/c++/8/system_error" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/error_constants.h" 1 3 8768: # 34 "/usr/include/x86_64-linux-gnu/c++/8/bits/error_constants.h" 3 8768: # 1 "/usr/include/c++/8/cerrno" 1 3 8768: # 39 "/usr/include/c++/8/cerrno" 3 8768: 8768: # 40 "/usr/include/c++/8/cerrno" 3 8768: # 35 "/usr/include/x86_64-linux-gnu/c++/8/bits/error_constants.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: enum class errc 8768: { 8768: address_family_not_supported = 97, 8768: address_in_use = 98, 8768: address_not_available = 99, 8768: already_connected = 106, 8768: argument_list_too_long = 7, 8768: argument_out_of_domain = 33, 8768: bad_address = 14, 8768: bad_file_descriptor = 9, 8768: 8768: 8768: bad_message = 74, 8768: 8768: 8768: broken_pipe = 32, 8768: connection_aborted = 103, 8768: connection_already_in_progress = 114, 8768: connection_refused = 111, 8768: connection_reset = 104, 8768: cross_device_link = 18, 8768: destination_address_required = 89, 8768: device_or_resource_busy = 16, 8768: directory_not_empty = 39, 8768: executable_format_error = 8, 8768: file_exists = 17, 8768: file_too_large = 27, 8768: filename_too_long = 36, 8768: function_not_supported = 38, 8768: host_unreachable = 113, 8768: 8768: 8768: identifier_removed = 43, 8768: 8768: 8768: illegal_byte_sequence = 84, 8768: inappropriate_io_control_operation = 25, 8768: interrupted = 4, 8768: invalid_argument = 22, 8768: invalid_seek = 29, 8768: io_error = 5, 8768: is_a_directory = 21, 8768: message_size = 90, 8768: network_down = 100, 8768: network_reset = 102, 8768: network_unreachable = 101, 8768: no_buffer_space = 105, 8768: no_child_process = 10, 8768: 8768: 8768: no_link = 67, 8768: 8768: 8768: no_lock_available = 37, 8768: 8768: 8768: no_message_available = 61, 8768: 8768: 8768: no_message = 42, 8768: no_protocol_option = 92, 8768: no_space_on_device = 28, 8768: 8768: 8768: no_stream_resources = 63, 8768: 8768: 8768: no_such_device_or_address = 6, 8768: no_such_device = 19, 8768: no_such_file_or_directory = 2, 8768: no_such_process = 3, 8768: not_a_directory = 20, 8768: not_a_socket = 88, 8768: 8768: 8768: not_a_stream = 60, 8768: 8768: 8768: not_connected = 107, 8768: not_enough_memory = 12, 8768: 8768: 8768: not_supported = 95, 8768: 8768: 8768: 8768: operation_canceled = 125, 8768: 8768: 8768: operation_in_progress = 115, 8768: operation_not_permitted = 1, 8768: operation_not_supported = 95, 8768: operation_would_block = 11, 8768: 8768: 8768: owner_dead = 130, 8768: 8768: 8768: permission_denied = 13, 8768: 8768: 8768: protocol_error = 71, 8768: 8768: 8768: protocol_not_supported = 93, 8768: read_only_file_system = 30, 8768: resource_deadlock_would_occur = 35, 8768: resource_unavailable_try_again = 11, 8768: result_out_of_range = 34, 8768: 8768: 8768: state_not_recoverable = 131, 8768: 8768: 8768: 8768: stream_timeout = 62, 8768: 8768: 8768: 8768: text_file_busy = 26, 8768: 8768: 8768: timed_out = 110, 8768: too_many_files_open_in_system = 23, 8768: too_many_files_open = 24, 8768: too_many_links = 31, 8768: too_many_symbolic_link_levels = 40, 8768: 8768: 8768: value_too_large = 75, 8768: 8768: 8768: wrong_protocol_type = 91 8768: }; 8768: 8768: 8768: } 8768: # 40 "/usr/include/c++/8/system_error" 2 3 8768: 8768: # 1 "/usr/include/c++/8/stdexcept" 1 3 8768: # 36 "/usr/include/c++/8/stdexcept" 3 8768: 8768: # 37 "/usr/include/c++/8/stdexcept" 3 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: struct __cow_string 8768: { 8768: union { 8768: const char* _M_p; 8768: char _M_bytes[sizeof(const char*)]; 8768: }; 8768: 8768: __cow_string(); 8768: __cow_string(const std::string&); 8768: __cow_string(const char*, size_t); 8768: __cow_string(const __cow_string&) noexcept; 8768: __cow_string& operator=(const __cow_string&) noexcept; 8768: ~__cow_string(); 8768: 8768: __cow_string(__cow_string&&) noexcept; 8768: __cow_string& operator=(__cow_string&&) noexcept; 8768: 8768: }; 8768: 8768: typedef basic_string __sso_string; 8768: # 113 "/usr/include/c++/8/stdexcept" 3 8768: class logic_error : public exception 8768: { 8768: __cow_string _M_msg; 8768: 8768: public: 8768: 8768: explicit 8768: logic_error(const string& __arg) ; 8768: 8768: 8768: explicit 8768: logic_error(const char*) ; 8768: 8768: 8768: 8768: logic_error(const logic_error&) noexcept; 8768: logic_error& operator=(const logic_error&) noexcept; 8768: 8768: 8768: virtual ~logic_error() noexcept; 8768: 8768: 8768: 8768: virtual const char* 8768: what() const noexcept; 8768: 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: 8768: class domain_error : public logic_error 8768: { 8768: public: 8768: explicit domain_error(const string& __arg) ; 8768: 8768: explicit domain_error(const char*) ; 8768: 8768: virtual ~domain_error() noexcept; 8768: }; 8768: 8768: 8768: class invalid_argument : public logic_error 8768: { 8768: public: 8768: explicit invalid_argument(const string& __arg) ; 8768: 8768: explicit invalid_argument(const char*) ; 8768: 8768: virtual ~invalid_argument() noexcept; 8768: }; 8768: 8768: 8768: 8768: class length_error : public logic_error 8768: { 8768: public: 8768: explicit length_error(const string& __arg) ; 8768: 8768: explicit length_error(const char*) ; 8768: 8768: virtual ~length_error() noexcept; 8768: }; 8768: 8768: 8768: 8768: class out_of_range : public logic_error 8768: { 8768: public: 8768: explicit out_of_range(const string& __arg) ; 8768: 8768: explicit out_of_range(const char*) ; 8768: 8768: virtual ~out_of_range() noexcept; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: class runtime_error : public exception 8768: { 8768: __cow_string _M_msg; 8768: 8768: public: 8768: 8768: explicit 8768: runtime_error(const string& __arg) ; 8768: 8768: 8768: explicit 8768: runtime_error(const char*) ; 8768: 8768: 8768: 8768: runtime_error(const runtime_error&) noexcept; 8768: runtime_error& operator=(const runtime_error&) noexcept; 8768: 8768: 8768: virtual ~runtime_error() noexcept; 8768: 8768: 8768: 8768: virtual const char* 8768: what() const noexcept; 8768: 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: class range_error : public runtime_error 8768: { 8768: public: 8768: explicit range_error(const string& __arg) ; 8768: 8768: explicit range_error(const char*) ; 8768: 8768: virtual ~range_error() noexcept; 8768: }; 8768: 8768: 8768: class overflow_error : public runtime_error 8768: { 8768: public: 8768: explicit overflow_error(const string& __arg) ; 8768: 8768: explicit overflow_error(const char*) ; 8768: 8768: virtual ~overflow_error() noexcept; 8768: }; 8768: 8768: 8768: class underflow_error : public runtime_error 8768: { 8768: public: 8768: explicit underflow_error(const string& __arg) ; 8768: 8768: explicit underflow_error(const char*) ; 8768: 8768: virtual ~underflow_error() noexcept; 8768: }; 8768: 8768: 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/system_error" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: class error_code; 8768: class error_condition; 8768: class system_error; 8768: 8768: 8768: template 8768: struct is_error_code_enum : public false_type { }; 8768: 8768: 8768: template 8768: struct is_error_condition_enum : public false_type { }; 8768: 8768: template<> 8768: struct is_error_condition_enum 8768: : public true_type { }; 8768: # 71 "/usr/include/c++/8/system_error" 3 8768: inline namespace _V2 { 8768: 8768: 8768: class error_category 8768: { 8768: public: 8768: constexpr error_category() noexcept = default; 8768: 8768: virtual ~error_category(); 8768: 8768: error_category(const error_category&) = delete; 8768: error_category& operator=(const error_category&) = delete; 8768: 8768: virtual const char* 8768: name() const noexcept = 0; 8768: 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: virtual __cow_string 8768: _M_message(int) const; 8768: 8768: public: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: virtual string 8768: message(int) const = 0; 8768: # 110 "/usr/include/c++/8/system_error" 3 8768: public: 8768: virtual error_condition 8768: default_error_condition(int __i) const noexcept; 8768: 8768: virtual bool 8768: equivalent(int __i, const error_condition& __cond) const noexcept; 8768: 8768: virtual bool 8768: equivalent(const error_code& __code, int __i) const noexcept; 8768: 8768: bool 8768: operator<(const error_category& __other) const noexcept 8768: { return less()(this, &__other); } 8768: 8768: bool 8768: operator==(const error_category& __other) const noexcept 8768: { return this == &__other; } 8768: 8768: bool 8768: operator!=(const error_category& __other) const noexcept 8768: { return this != &__other; } 8768: }; 8768: 8768: 8768: __attribute__ ((__const__)) const error_category& system_category() noexcept; 8768: __attribute__ ((__const__)) const error_category& generic_category() noexcept; 8768: 8768: } 8768: 8768: error_code make_error_code(errc) noexcept; 8768: 8768: template 8768: struct hash; 8768: 8768: 8768: 8768: struct error_code 8768: { 8768: error_code() noexcept 8768: : _M_value(0), _M_cat(&system_category()) { } 8768: 8768: error_code(int __v, const error_category& __cat) noexcept 8768: : _M_value(__v), _M_cat(&__cat) { } 8768: 8768: template::value>::type> 8768: error_code(_ErrorCodeEnum __e) noexcept 8768: { *this = make_error_code(__e); } 8768: 8768: void 8768: assign(int __v, const error_category& __cat) noexcept 8768: { 8768: _M_value = __v; 8768: _M_cat = &__cat; 8768: } 8768: 8768: void 8768: clear() noexcept 8768: { assign(0, system_category()); } 8768: 8768: 8768: template 8768: typename enable_if::value, 8768: error_code&>::type 8768: operator=(_ErrorCodeEnum __e) noexcept 8768: { return *this = make_error_code(__e); } 8768: 8768: int 8768: value() const noexcept { return _M_value; } 8768: 8768: const error_category& 8768: category() const noexcept { return *_M_cat; } 8768: 8768: error_condition 8768: default_error_condition() const noexcept; 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: string 8768: message() const 8768: { return category().message(value()); } 8768: 8768: explicit operator bool() const noexcept 8768: { return _M_value != 0; } 8768: 8768: 8768: private: 8768: friend class hash; 8768: 8768: int _M_value; 8768: const error_category* _M_cat; 8768: }; 8768: 8768: 8768: inline error_code 8768: make_error_code(errc __e) noexcept 8768: { return error_code(static_cast(__e), generic_category()); } 8768: 8768: inline bool 8768: operator<(const error_code& __lhs, const error_code& __rhs) noexcept 8768: { 8768: return (__lhs.category() < __rhs.category() 8768: || (__lhs.category() == __rhs.category() 8768: && __lhs.value() < __rhs.value())); 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __e) 8768: { return (__os << __e.category().name() << ':' << __e.value()); } 8768: 8768: error_condition make_error_condition(errc) noexcept; 8768: 8768: 8768: 8768: struct error_condition 8768: { 8768: error_condition() noexcept 8768: : _M_value(0), _M_cat(&generic_category()) { } 8768: 8768: error_condition(int __v, const error_category& __cat) noexcept 8768: : _M_value(__v), _M_cat(&__cat) { } 8768: 8768: template::value>::type> 8768: error_condition(_ErrorConditionEnum __e) noexcept 8768: { *this = make_error_condition(__e); } 8768: 8768: void 8768: assign(int __v, const error_category& __cat) noexcept 8768: { 8768: _M_value = __v; 8768: _M_cat = &__cat; 8768: } 8768: 8768: 8768: template 8768: typename enable_if::value, error_condition&>::type 8768: operator=(_ErrorConditionEnum __e) noexcept 8768: { return *this = make_error_condition(__e); } 8768: 8768: void 8768: clear() noexcept 8768: { assign(0, generic_category()); } 8768: 8768: 8768: int 8768: value() const noexcept { return _M_value; } 8768: 8768: const error_category& 8768: category() const noexcept { return *_M_cat; } 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: string 8768: message() const 8768: { return category().message(value()); } 8768: 8768: explicit operator bool() const noexcept 8768: { return _M_value != 0; } 8768: 8768: 8768: private: 8768: int _M_value; 8768: const error_category* _M_cat; 8768: }; 8768: 8768: 8768: inline error_condition 8768: make_error_condition(errc __e) noexcept 8768: { return error_condition(static_cast(__e), generic_category()); } 8768: 8768: inline bool 8768: operator<(const error_condition& __lhs, 8768: const error_condition& __rhs) noexcept 8768: { 8768: return (__lhs.category() < __rhs.category() 8768: || (__lhs.category() == __rhs.category() 8768: && __lhs.value() < __rhs.value())); 8768: } 8768: 8768: 8768: inline bool 8768: operator==(const error_code& __lhs, const error_code& __rhs) noexcept 8768: { return (__lhs.category() == __rhs.category() 8768: && __lhs.value() == __rhs.value()); } 8768: 8768: inline bool 8768: operator==(const error_code& __lhs, const error_condition& __rhs) noexcept 8768: { 8768: return (__lhs.category().equivalent(__lhs.value(), __rhs) 8768: || __rhs.category().equivalent(__lhs, __rhs.value())); 8768: } 8768: 8768: inline bool 8768: operator==(const error_condition& __lhs, const error_code& __rhs) noexcept 8768: { 8768: return (__rhs.category().equivalent(__rhs.value(), __lhs) 8768: || __lhs.category().equivalent(__rhs, __lhs.value())); 8768: } 8768: 8768: inline bool 8768: operator==(const error_condition& __lhs, 8768: const error_condition& __rhs) noexcept 8768: { 8768: return (__lhs.category() == __rhs.category() 8768: && __lhs.value() == __rhs.value()); 8768: } 8768: 8768: inline bool 8768: operator!=(const error_code& __lhs, const error_code& __rhs) noexcept 8768: { return !(__lhs == __rhs); } 8768: 8768: inline bool 8768: operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept 8768: { return !(__lhs == __rhs); } 8768: 8768: inline bool 8768: operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept 8768: { return !(__lhs == __rhs); } 8768: 8768: inline bool 8768: operator!=(const error_condition& __lhs, 8768: const error_condition& __rhs) noexcept 8768: { return !(__lhs == __rhs); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class system_error : public std::runtime_error 8768: { 8768: private: 8768: error_code _M_code; 8768: 8768: public: 8768: system_error(error_code __ec = error_code()) 8768: : runtime_error(__ec.message()), _M_code(__ec) { } 8768: 8768: system_error(error_code __ec, const string& __what) 8768: : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { } 8768: 8768: system_error(error_code __ec, const char* __what) 8768: : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { } 8768: 8768: system_error(int __v, const error_category& __ecat, const char* __what) 8768: : system_error(error_code(__v, __ecat), __what) { } 8768: 8768: system_error(int __v, const error_category& __ecat) 8768: : runtime_error(error_code(__v, __ecat).message()), 8768: _M_code(__v, __ecat) { } 8768: 8768: system_error(int __v, const error_category& __ecat, const string& __what) 8768: : runtime_error(__what + ": " + error_code(__v, __ecat).message()), 8768: _M_code(__v, __ecat) { } 8768: 8768: virtual ~system_error() noexcept; 8768: 8768: const error_code& 8768: code() const noexcept { return _M_code; } 8768: }; 8768: 8768: 8768: } 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: template<> 8768: struct hash 8768: : public __hash_base 8768: { 8768: size_t 8768: operator()(const error_code& __e) const noexcept 8768: { 8768: const size_t __tmp = std::_Hash_impl::hash(__e._M_value); 8768: return std::_Hash_impl::__hash_combine(__e._M_cat, __tmp); 8768: } 8768: }; 8768: # 414 "/usr/include/c++/8/system_error" 3 8768: 8768: } 8768: # 47 "/usr/include/c++/8/bits/ios_base.h" 2 3 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: enum _Ios_Fmtflags 8768: { 8768: _S_boolalpha = 1L << 0, 8768: _S_dec = 1L << 1, 8768: _S_fixed = 1L << 2, 8768: _S_hex = 1L << 3, 8768: _S_internal = 1L << 4, 8768: _S_left = 1L << 5, 8768: _S_oct = 1L << 6, 8768: _S_right = 1L << 7, 8768: _S_scientific = 1L << 8, 8768: _S_showbase = 1L << 9, 8768: _S_showpoint = 1L << 10, 8768: _S_showpos = 1L << 11, 8768: _S_skipws = 1L << 12, 8768: _S_unitbuf = 1L << 13, 8768: _S_uppercase = 1L << 14, 8768: _S_adjustfield = _S_left | _S_right | _S_internal, 8768: _S_basefield = _S_dec | _S_oct | _S_hex, 8768: _S_floatfield = _S_scientific | _S_fixed, 8768: _S_ios_fmtflags_end = 1L << 16, 8768: _S_ios_fmtflags_max = 0x7fffffff, 8768: _S_ios_fmtflags_min = ~0x7fffffff 8768: }; 8768: 8768: inline constexpr _Ios_Fmtflags 8768: operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8768: { return _Ios_Fmtflags(static_cast(__a) & static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Fmtflags 8768: operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8768: { return _Ios_Fmtflags(static_cast(__a) | static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Fmtflags 8768: operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) 8768: { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Fmtflags 8768: operator~(_Ios_Fmtflags __a) 8768: { return _Ios_Fmtflags(~static_cast(__a)); } 8768: 8768: inline const _Ios_Fmtflags& 8768: operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8768: { return __a = __a | __b; } 8768: 8768: inline const _Ios_Fmtflags& 8768: operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8768: { return __a = __a & __b; } 8768: 8768: inline const _Ios_Fmtflags& 8768: operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) 8768: { return __a = __a ^ __b; } 8768: 8768: 8768: enum _Ios_Openmode 8768: { 8768: _S_app = 1L << 0, 8768: _S_ate = 1L << 1, 8768: _S_bin = 1L << 2, 8768: _S_in = 1L << 3, 8768: _S_out = 1L << 4, 8768: _S_trunc = 1L << 5, 8768: _S_ios_openmode_end = 1L << 16, 8768: _S_ios_openmode_max = 0x7fffffff, 8768: _S_ios_openmode_min = ~0x7fffffff 8768: }; 8768: 8768: inline constexpr _Ios_Openmode 8768: operator&(_Ios_Openmode __a, _Ios_Openmode __b) 8768: { return _Ios_Openmode(static_cast(__a) & static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Openmode 8768: operator|(_Ios_Openmode __a, _Ios_Openmode __b) 8768: { return _Ios_Openmode(static_cast(__a) | static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Openmode 8768: operator^(_Ios_Openmode __a, _Ios_Openmode __b) 8768: { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Openmode 8768: operator~(_Ios_Openmode __a) 8768: { return _Ios_Openmode(~static_cast(__a)); } 8768: 8768: inline const _Ios_Openmode& 8768: operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) 8768: { return __a = __a | __b; } 8768: 8768: inline const _Ios_Openmode& 8768: operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) 8768: { return __a = __a & __b; } 8768: 8768: inline const _Ios_Openmode& 8768: operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) 8768: { return __a = __a ^ __b; } 8768: 8768: 8768: enum _Ios_Iostate 8768: { 8768: _S_goodbit = 0, 8768: _S_badbit = 1L << 0, 8768: _S_eofbit = 1L << 1, 8768: _S_failbit = 1L << 2, 8768: _S_ios_iostate_end = 1L << 16, 8768: _S_ios_iostate_max = 0x7fffffff, 8768: _S_ios_iostate_min = ~0x7fffffff 8768: }; 8768: 8768: inline constexpr _Ios_Iostate 8768: operator&(_Ios_Iostate __a, _Ios_Iostate __b) 8768: { return _Ios_Iostate(static_cast(__a) & static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Iostate 8768: operator|(_Ios_Iostate __a, _Ios_Iostate __b) 8768: { return _Ios_Iostate(static_cast(__a) | static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Iostate 8768: operator^(_Ios_Iostate __a, _Ios_Iostate __b) 8768: { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } 8768: 8768: inline constexpr _Ios_Iostate 8768: operator~(_Ios_Iostate __a) 8768: { return _Ios_Iostate(~static_cast(__a)); } 8768: 8768: inline const _Ios_Iostate& 8768: operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) 8768: { return __a = __a | __b; } 8768: 8768: inline const _Ios_Iostate& 8768: operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) 8768: { return __a = __a & __b; } 8768: 8768: inline const _Ios_Iostate& 8768: operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) 8768: { return __a = __a ^ __b; } 8768: 8768: 8768: enum _Ios_Seekdir 8768: { 8768: _S_beg = 0, 8768: _S_cur = 1, 8768: _S_end = 2, 8768: _S_ios_seekdir_end = 1L << 16 8768: }; 8768: 8768: 8768: 8768: enum class io_errc { stream = 1 }; 8768: 8768: template <> struct is_error_code_enum : public true_type { }; 8768: 8768: const error_category& iostream_category() noexcept; 8768: 8768: inline error_code 8768: make_error_code(io_errc __e) noexcept 8768: { return error_code(static_cast(__e), iostream_category()); } 8768: 8768: inline error_condition 8768: make_error_condition(io_errc __e) noexcept 8768: { return error_condition(static_cast(__e), iostream_category()); } 8768: # 228 "/usr/include/c++/8/bits/ios_base.h" 3 8768: class ios_base 8768: { 8768: # 246 "/usr/include/c++/8/bits/ios_base.h" 3 8768: public: 8768: # 255 "/usr/include/c++/8/bits/ios_base.h" 3 8768: class __attribute ((__abi_tag__ ("cxx11"))) failure : public system_error 8768: { 8768: public: 8768: explicit 8768: failure(const string& __str); 8768: 8768: 8768: explicit 8768: failure(const string&, const error_code&); 8768: 8768: explicit 8768: failure(const char*, const error_code& = io_errc::stream); 8768: 8768: 8768: virtual 8768: ~failure() throw(); 8768: 8768: virtual const char* 8768: what() const throw(); 8768: }; 8768: # 323 "/usr/include/c++/8/bits/ios_base.h" 3 8768: typedef _Ios_Fmtflags fmtflags; 8768: 8768: 8768: static const fmtflags boolalpha = _S_boolalpha; 8768: 8768: 8768: static const fmtflags dec = _S_dec; 8768: 8768: 8768: static const fmtflags fixed = _S_fixed; 8768: 8768: 8768: static const fmtflags hex = _S_hex; 8768: 8768: 8768: 8768: 8768: static const fmtflags internal = _S_internal; 8768: 8768: 8768: 8768: static const fmtflags left = _S_left; 8768: 8768: 8768: static const fmtflags oct = _S_oct; 8768: 8768: 8768: 8768: static const fmtflags right = _S_right; 8768: 8768: 8768: static const fmtflags scientific = _S_scientific; 8768: 8768: 8768: 8768: static const fmtflags showbase = _S_showbase; 8768: 8768: 8768: 8768: static const fmtflags showpoint = _S_showpoint; 8768: 8768: 8768: static const fmtflags showpos = _S_showpos; 8768: 8768: 8768: static const fmtflags skipws = _S_skipws; 8768: 8768: 8768: static const fmtflags unitbuf = _S_unitbuf; 8768: 8768: 8768: 8768: static const fmtflags uppercase = _S_uppercase; 8768: 8768: 8768: static const fmtflags adjustfield = _S_adjustfield; 8768: 8768: 8768: static const fmtflags basefield = _S_basefield; 8768: 8768: 8768: static const fmtflags floatfield = _S_floatfield; 8768: # 398 "/usr/include/c++/8/bits/ios_base.h" 3 8768: typedef _Ios_Iostate iostate; 8768: 8768: 8768: 8768: static const iostate badbit = _S_badbit; 8768: 8768: 8768: static const iostate eofbit = _S_eofbit; 8768: 8768: 8768: 8768: 8768: static const iostate failbit = _S_failbit; 8768: 8768: 8768: static const iostate goodbit = _S_goodbit; 8768: # 429 "/usr/include/c++/8/bits/ios_base.h" 3 8768: typedef _Ios_Openmode openmode; 8768: 8768: 8768: static const openmode app = _S_app; 8768: 8768: 8768: static const openmode ate = _S_ate; 8768: 8768: 8768: 8768: 8768: static const openmode binary = _S_bin; 8768: 8768: 8768: static const openmode in = _S_in; 8768: 8768: 8768: static const openmode out = _S_out; 8768: 8768: 8768: static const openmode trunc = _S_trunc; 8768: # 461 "/usr/include/c++/8/bits/ios_base.h" 3 8768: typedef _Ios_Seekdir seekdir; 8768: 8768: 8768: static const seekdir beg = _S_beg; 8768: 8768: 8768: static const seekdir cur = _S_cur; 8768: 8768: 8768: static const seekdir end = _S_end; 8768: 8768: 8768: 8768: typedef int io_state; 8768: typedef int open_mode; 8768: typedef int seek_dir; 8768: 8768: typedef std::streampos streampos; 8768: typedef std::streamoff streamoff; 8768: # 489 "/usr/include/c++/8/bits/ios_base.h" 3 8768: enum event 8768: { 8768: erase_event, 8768: imbue_event, 8768: copyfmt_event 8768: }; 8768: # 506 "/usr/include/c++/8/bits/ios_base.h" 3 8768: typedef void (*event_callback) (event __e, ios_base& __b, int __i); 8768: # 518 "/usr/include/c++/8/bits/ios_base.h" 3 8768: void 8768: register_callback(event_callback __fn, int __index); 8768: 8768: protected: 8768: streamsize _M_precision; 8768: streamsize _M_width; 8768: fmtflags _M_flags; 8768: iostate _M_exception; 8768: iostate _M_streambuf_state; 8768: 8768: 8768: 8768: struct _Callback_list 8768: { 8768: 8768: _Callback_list* _M_next; 8768: ios_base::event_callback _M_fn; 8768: int _M_index; 8768: _Atomic_word _M_refcount; 8768: 8768: _Callback_list(ios_base::event_callback __fn, int __index, 8768: _Callback_list* __cb) 8768: : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } 8768: 8768: void 8768: _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } 8768: 8768: 8768: int 8768: _M_remove_reference() 8768: { 8768: 8768: ; 8768: int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); 8768: if (__res == 0) 8768: { 8768: ; 8768: } 8768: return __res; 8768: } 8768: }; 8768: 8768: _Callback_list* _M_callbacks; 8768: 8768: void 8768: _M_call_callbacks(event __ev) throw(); 8768: 8768: void 8768: _M_dispose_callbacks(void) throw(); 8768: 8768: 8768: struct _Words 8768: { 8768: void* _M_pword; 8768: long _M_iword; 8768: _Words() : _M_pword(0), _M_iword(0) { } 8768: }; 8768: 8768: 8768: _Words _M_word_zero; 8768: 8768: 8768: 8768: enum { _S_local_word_size = 8 }; 8768: _Words _M_local_word[_S_local_word_size]; 8768: 8768: 8768: int _M_word_size; 8768: _Words* _M_word; 8768: 8768: _Words& 8768: _M_grow_words(int __index, bool __iword); 8768: 8768: 8768: locale _M_ios_locale; 8768: 8768: void 8768: _M_init() throw(); 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: class Init 8768: { 8768: friend class ios_base; 8768: public: 8768: Init(); 8768: ~Init(); 8768: 8768: private: 8768: static _Atomic_word _S_refcount; 8768: static bool _S_synced_with_stdio; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: fmtflags 8768: flags() const 8768: { return _M_flags; } 8768: # 631 "/usr/include/c++/8/bits/ios_base.h" 3 8768: fmtflags 8768: flags(fmtflags __fmtfl) 8768: { 8768: fmtflags __old = _M_flags; 8768: _M_flags = __fmtfl; 8768: return __old; 8768: } 8768: # 647 "/usr/include/c++/8/bits/ios_base.h" 3 8768: fmtflags 8768: setf(fmtflags __fmtfl) 8768: { 8768: fmtflags __old = _M_flags; 8768: _M_flags |= __fmtfl; 8768: return __old; 8768: } 8768: # 664 "/usr/include/c++/8/bits/ios_base.h" 3 8768: fmtflags 8768: setf(fmtflags __fmtfl, fmtflags __mask) 8768: { 8768: fmtflags __old = _M_flags; 8768: _M_flags &= ~__mask; 8768: _M_flags |= (__fmtfl & __mask); 8768: return __old; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: unsetf(fmtflags __mask) 8768: { _M_flags &= ~__mask; } 8768: # 690 "/usr/include/c++/8/bits/ios_base.h" 3 8768: streamsize 8768: precision() const 8768: { return _M_precision; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: streamsize 8768: precision(streamsize __prec) 8768: { 8768: streamsize __old = _M_precision; 8768: _M_precision = __prec; 8768: return __old; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: streamsize 8768: width() const 8768: { return _M_width; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: streamsize 8768: width(streamsize __wide) 8768: { 8768: streamsize __old = _M_width; 8768: _M_width = __wide; 8768: return __old; 8768: } 8768: # 741 "/usr/include/c++/8/bits/ios_base.h" 3 8768: static bool 8768: sync_with_stdio(bool __sync = true); 8768: # 753 "/usr/include/c++/8/bits/ios_base.h" 3 8768: locale 8768: imbue(const locale& __loc) throw(); 8768: # 764 "/usr/include/c++/8/bits/ios_base.h" 3 8768: locale 8768: getloc() const 8768: { return _M_ios_locale; } 8768: # 775 "/usr/include/c++/8/bits/ios_base.h" 3 8768: const locale& 8768: _M_getloc() const 8768: { return _M_ios_locale; } 8768: # 794 "/usr/include/c++/8/bits/ios_base.h" 3 8768: static int 8768: xalloc() throw(); 8768: # 810 "/usr/include/c++/8/bits/ios_base.h" 3 8768: long& 8768: iword(int __ix) 8768: { 8768: _Words& __word = (__ix < _M_word_size) 8768: ? _M_word[__ix] : _M_grow_words(__ix, true); 8768: return __word._M_iword; 8768: } 8768: # 831 "/usr/include/c++/8/bits/ios_base.h" 3 8768: void*& 8768: pword(int __ix) 8768: { 8768: _Words& __word = (__ix < _M_word_size) 8768: ? _M_word[__ix] : _M_grow_words(__ix, false); 8768: return __word._M_pword; 8768: } 8768: # 848 "/usr/include/c++/8/bits/ios_base.h" 3 8768: virtual ~ios_base(); 8768: 8768: protected: 8768: ios_base() throw (); 8768: # 862 "/usr/include/c++/8/bits/ios_base.h" 3 8768: public: 8768: ios_base(const ios_base&) = delete; 8768: 8768: ios_base& 8768: operator=(const ios_base&) = delete; 8768: 8768: protected: 8768: void 8768: _M_move(ios_base&) noexcept; 8768: 8768: void 8768: _M_swap(ios_base& __rhs) noexcept; 8768: 8768: }; 8768: 8768: 8768: 8768: inline ios_base& 8768: boolalpha(ios_base& __base) 8768: { 8768: __base.setf(ios_base::boolalpha); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: noboolalpha(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::boolalpha); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: showbase(ios_base& __base) 8768: { 8768: __base.setf(ios_base::showbase); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: noshowbase(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::showbase); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: showpoint(ios_base& __base) 8768: { 8768: __base.setf(ios_base::showpoint); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: noshowpoint(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::showpoint); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: showpos(ios_base& __base) 8768: { 8768: __base.setf(ios_base::showpos); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: noshowpos(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::showpos); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: skipws(ios_base& __base) 8768: { 8768: __base.setf(ios_base::skipws); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: noskipws(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::skipws); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: uppercase(ios_base& __base) 8768: { 8768: __base.setf(ios_base::uppercase); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: nouppercase(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::uppercase); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: unitbuf(ios_base& __base) 8768: { 8768: __base.setf(ios_base::unitbuf); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: nounitbuf(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::unitbuf); 8768: return __base; 8768: } 8768: 8768: 8768: 8768: inline ios_base& 8768: internal(ios_base& __base) 8768: { 8768: __base.setf(ios_base::internal, ios_base::adjustfield); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: left(ios_base& __base) 8768: { 8768: __base.setf(ios_base::left, ios_base::adjustfield); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: right(ios_base& __base) 8768: { 8768: __base.setf(ios_base::right, ios_base::adjustfield); 8768: return __base; 8768: } 8768: 8768: 8768: 8768: inline ios_base& 8768: dec(ios_base& __base) 8768: { 8768: __base.setf(ios_base::dec, ios_base::basefield); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: hex(ios_base& __base) 8768: { 8768: __base.setf(ios_base::hex, ios_base::basefield); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: oct(ios_base& __base) 8768: { 8768: __base.setf(ios_base::oct, ios_base::basefield); 8768: return __base; 8768: } 8768: 8768: 8768: 8768: inline ios_base& 8768: fixed(ios_base& __base) 8768: { 8768: __base.setf(ios_base::fixed, ios_base::floatfield); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: scientific(ios_base& __base) 8768: { 8768: __base.setf(ios_base::scientific, ios_base::floatfield); 8768: return __base; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline ios_base& 8768: hexfloat(ios_base& __base) 8768: { 8768: __base.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); 8768: return __base; 8768: } 8768: 8768: 8768: inline ios_base& 8768: defaultfloat(ios_base& __base) 8768: { 8768: __base.unsetf(ios_base::floatfield); 8768: return __base; 8768: } 8768: 8768: 8768: 8768: } 8768: # 43 "/usr/include/c++/8/ios" 2 3 8768: # 1 "/usr/include/c++/8/streambuf" 1 3 8768: # 36 "/usr/include/c++/8/streambuf" 3 8768: 8768: # 37 "/usr/include/c++/8/streambuf" 3 8768: # 45 "/usr/include/c++/8/streambuf" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: streamsize 8768: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, 8768: basic_streambuf<_CharT, _Traits>*, bool&); 8768: # 121 "/usr/include/c++/8/streambuf" 3 8768: template 8768: class basic_streambuf 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef _Traits traits_type; 8768: typedef typename traits_type::int_type int_type; 8768: typedef typename traits_type::pos_type pos_type; 8768: typedef typename traits_type::off_type off_type; 8768: 8768: 8768: 8768: 8768: typedef basic_streambuf __streambuf_type; 8768: 8768: 8768: friend class basic_ios; 8768: friend class basic_istream; 8768: friend class basic_ostream; 8768: friend class istreambuf_iterator; 8768: friend class ostreambuf_iterator; 8768: 8768: friend streamsize 8768: __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&); 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: _CharT2*>::__type 8768: __copy_move_a2(istreambuf_iterator<_CharT2>, 8768: istreambuf_iterator<_CharT2>, _CharT2*); 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: istreambuf_iterator<_CharT2> >::__type 8768: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8768: const _CharT2&); 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: void>::__type 8768: advance(istreambuf_iterator<_CharT2>&, _Distance); 8768: 8768: template 8768: friend basic_istream<_CharT2, _Traits2>& 8768: operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); 8768: 8768: template 8768: friend basic_istream<_CharT2, _Traits2>& 8768: operator>>(basic_istream<_CharT2, _Traits2>&, 8768: basic_string<_CharT2, _Traits2, _Alloc>&); 8768: 8768: template 8768: friend basic_istream<_CharT2, _Traits2>& 8768: getline(basic_istream<_CharT2, _Traits2>&, 8768: basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: char_type* _M_in_beg; 8768: char_type* _M_in_cur; 8768: char_type* _M_in_end; 8768: char_type* _M_out_beg; 8768: char_type* _M_out_cur; 8768: char_type* _M_out_end; 8768: 8768: 8768: locale _M_buf_locale; 8768: 8768: public: 8768: 8768: virtual 8768: ~basic_streambuf() 8768: { } 8768: # 215 "/usr/include/c++/8/streambuf" 3 8768: locale 8768: pubimbue(const locale& __loc) 8768: { 8768: locale __tmp(this->getloc()); 8768: this->imbue(__loc); 8768: _M_buf_locale = __loc; 8768: return __tmp; 8768: } 8768: # 232 "/usr/include/c++/8/streambuf" 3 8768: locale 8768: getloc() const 8768: { return _M_buf_locale; } 8768: # 245 "/usr/include/c++/8/streambuf" 3 8768: basic_streambuf* 8768: pubsetbuf(char_type* __s, streamsize __n) 8768: { return this->setbuf(__s, __n); } 8768: # 257 "/usr/include/c++/8/streambuf" 3 8768: pos_type 8768: pubseekoff(off_type __off, ios_base::seekdir __way, 8768: ios_base::openmode __mode = ios_base::in | ios_base::out) 8768: { return this->seekoff(__off, __way, __mode); } 8768: # 269 "/usr/include/c++/8/streambuf" 3 8768: pos_type 8768: pubseekpos(pos_type __sp, 8768: ios_base::openmode __mode = ios_base::in | ios_base::out) 8768: { return this->seekpos(__sp, __mode); } 8768: 8768: 8768: 8768: 8768: int 8768: pubsync() { return this->sync(); } 8768: # 290 "/usr/include/c++/8/streambuf" 3 8768: streamsize 8768: in_avail() 8768: { 8768: const streamsize __ret = this->egptr() - this->gptr(); 8768: return __ret ? __ret : this->showmanyc(); 8768: } 8768: # 304 "/usr/include/c++/8/streambuf" 3 8768: int_type 8768: snextc() 8768: { 8768: int_type __ret = traits_type::eof(); 8768: if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), 8768: __ret), true)) 8768: __ret = this->sgetc(); 8768: return __ret; 8768: } 8768: # 322 "/usr/include/c++/8/streambuf" 3 8768: int_type 8768: sbumpc() 8768: { 8768: int_type __ret; 8768: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8768: { 8768: __ret = traits_type::to_int_type(*this->gptr()); 8768: this->gbump(1); 8768: } 8768: else 8768: __ret = this->uflow(); 8768: return __ret; 8768: } 8768: # 344 "/usr/include/c++/8/streambuf" 3 8768: int_type 8768: sgetc() 8768: { 8768: int_type __ret; 8768: if (__builtin_expect(this->gptr() < this->egptr(), true)) 8768: __ret = traits_type::to_int_type(*this->gptr()); 8768: else 8768: __ret = this->underflow(); 8768: return __ret; 8768: } 8768: # 363 "/usr/include/c++/8/streambuf" 3 8768: streamsize 8768: sgetn(char_type* __s, streamsize __n) 8768: { return this->xsgetn(__s, __n); } 8768: # 378 "/usr/include/c++/8/streambuf" 3 8768: int_type 8768: sputbackc(char_type __c) 8768: { 8768: int_type __ret; 8768: const bool __testpos = this->eback() < this->gptr(); 8768: if (__builtin_expect(!__testpos || 8768: !traits_type::eq(__c, this->gptr()[-1]), false)) 8768: __ret = this->pbackfail(traits_type::to_int_type(__c)); 8768: else 8768: { 8768: this->gbump(-1); 8768: __ret = traits_type::to_int_type(*this->gptr()); 8768: } 8768: return __ret; 8768: } 8768: # 403 "/usr/include/c++/8/streambuf" 3 8768: int_type 8768: sungetc() 8768: { 8768: int_type __ret; 8768: if (__builtin_expect(this->eback() < this->gptr(), true)) 8768: { 8768: this->gbump(-1); 8768: __ret = traits_type::to_int_type(*this->gptr()); 8768: } 8768: else 8768: __ret = this->pbackfail(); 8768: return __ret; 8768: } 8768: # 430 "/usr/include/c++/8/streambuf" 3 8768: int_type 8768: sputc(char_type __c) 8768: { 8768: int_type __ret; 8768: if (__builtin_expect(this->pptr() < this->epptr(), true)) 8768: { 8768: *this->pptr() = __c; 8768: this->pbump(1); 8768: __ret = traits_type::to_int_type(__c); 8768: } 8768: else 8768: __ret = this->overflow(traits_type::to_int_type(__c)); 8768: return __ret; 8768: } 8768: # 456 "/usr/include/c++/8/streambuf" 3 8768: streamsize 8768: sputn(const char_type* __s, streamsize __n) 8768: { return this->xsputn(__s, __n); } 8768: 8768: protected: 8768: # 470 "/usr/include/c++/8/streambuf" 3 8768: basic_streambuf() 8768: : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), 8768: _M_out_beg(0), _M_out_cur(0), _M_out_end(0), 8768: _M_buf_locale(locale()) 8768: { } 8768: # 488 "/usr/include/c++/8/streambuf" 3 8768: char_type* 8768: eback() const { return _M_in_beg; } 8768: 8768: char_type* 8768: gptr() const { return _M_in_cur; } 8768: 8768: char_type* 8768: egptr() const { return _M_in_end; } 8768: # 504 "/usr/include/c++/8/streambuf" 3 8768: void 8768: gbump(int __n) { _M_in_cur += __n; } 8768: # 515 "/usr/include/c++/8/streambuf" 3 8768: void 8768: setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) 8768: { 8768: _M_in_beg = __gbeg; 8768: _M_in_cur = __gnext; 8768: _M_in_end = __gend; 8768: } 8768: # 535 "/usr/include/c++/8/streambuf" 3 8768: char_type* 8768: pbase() const { return _M_out_beg; } 8768: 8768: char_type* 8768: pptr() const { return _M_out_cur; } 8768: 8768: char_type* 8768: epptr() const { return _M_out_end; } 8768: # 551 "/usr/include/c++/8/streambuf" 3 8768: void 8768: pbump(int __n) { _M_out_cur += __n; } 8768: # 561 "/usr/include/c++/8/streambuf" 3 8768: void 8768: setp(char_type* __pbeg, char_type* __pend) 8768: { 8768: _M_out_beg = _M_out_cur = __pbeg; 8768: _M_out_end = __pend; 8768: } 8768: # 582 "/usr/include/c++/8/streambuf" 3 8768: virtual void 8768: imbue(const locale& __loc __attribute__ ((__unused__))) 8768: { } 8768: # 597 "/usr/include/c++/8/streambuf" 3 8768: virtual basic_streambuf* 8768: setbuf(char_type*, streamsize) 8768: { return this; } 8768: # 608 "/usr/include/c++/8/streambuf" 3 8768: virtual pos_type 8768: seekoff(off_type, ios_base::seekdir, 8768: ios_base::openmode = ios_base::in | ios_base::out) 8768: { return pos_type(off_type(-1)); } 8768: # 620 "/usr/include/c++/8/streambuf" 3 8768: virtual pos_type 8768: seekpos(pos_type, 8768: ios_base::openmode = ios_base::in | ios_base::out) 8768: { return pos_type(off_type(-1)); } 8768: # 633 "/usr/include/c++/8/streambuf" 3 8768: virtual int 8768: sync() { return 0; } 8768: # 655 "/usr/include/c++/8/streambuf" 3 8768: virtual streamsize 8768: showmanyc() { return 0; } 8768: # 671 "/usr/include/c++/8/streambuf" 3 8768: virtual streamsize 8768: xsgetn(char_type* __s, streamsize __n); 8768: # 693 "/usr/include/c++/8/streambuf" 3 8768: virtual int_type 8768: underflow() 8768: { return traits_type::eof(); } 8768: # 706 "/usr/include/c++/8/streambuf" 3 8768: virtual int_type 8768: uflow() 8768: { 8768: int_type __ret = traits_type::eof(); 8768: const bool __testeof = traits_type::eq_int_type(this->underflow(), 8768: __ret); 8768: if (!__testeof) 8768: { 8768: __ret = traits_type::to_int_type(*this->gptr()); 8768: this->gbump(1); 8768: } 8768: return __ret; 8768: } 8768: # 730 "/usr/include/c++/8/streambuf" 3 8768: virtual int_type 8768: pbackfail(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8768: { return traits_type::eof(); } 8768: # 748 "/usr/include/c++/8/streambuf" 3 8768: virtual streamsize 8768: xsputn(const char_type* __s, streamsize __n); 8768: # 774 "/usr/include/c++/8/streambuf" 3 8768: virtual int_type 8768: overflow(int_type __c __attribute__ ((__unused__)) = traits_type::eof()) 8768: { return traits_type::eof(); } 8768: 8768: 8768: 8768: public: 8768: # 790 "/usr/include/c++/8/streambuf" 3 8768: [[__deprecated__("stossc is deprecated, use sbumpc instead")]] 8768: 8768: void 8768: stossc() 8768: { 8768: if (this->gptr() < this->egptr()) 8768: this->gbump(1); 8768: else 8768: this->uflow(); 8768: } 8768: 8768: 8768: 8768: void 8768: __safe_gbump(streamsize __n) { _M_in_cur += __n; } 8768: 8768: void 8768: __safe_pbump(streamsize __n) { _M_out_cur += __n; } 8768: 8768: 8768: 8768: 8768: protected: 8768: 8768: basic_streambuf(const basic_streambuf&); 8768: 8768: basic_streambuf& 8768: operator=(const basic_streambuf&); 8768: 8768: 8768: void 8768: swap(basic_streambuf& __sb) 8768: { 8768: std::swap(_M_in_beg, __sb._M_in_beg); 8768: std::swap(_M_in_cur, __sb._M_in_cur); 8768: std::swap(_M_in_end, __sb._M_in_end); 8768: std::swap(_M_out_beg, __sb._M_out_beg); 8768: std::swap(_M_out_cur, __sb._M_out_cur); 8768: std::swap(_M_out_end, __sb._M_out_end); 8768: std::swap(_M_buf_locale, __sb._M_buf_locale); 8768: } 8768: 8768: }; 8768: 8768: 8768: template 8768: std::basic_streambuf<_CharT, _Traits>:: 8768: basic_streambuf(const basic_streambuf&) = default; 8768: 8768: template 8768: std::basic_streambuf<_CharT, _Traits>& 8768: std::basic_streambuf<_CharT, _Traits>:: 8768: operator=(const basic_streambuf&) = default; 8768: 8768: 8768: 8768: template<> 8768: streamsize 8768: __copy_streambufs_eof(basic_streambuf* __sbin, 8768: basic_streambuf* __sbout, bool& __ineof); 8768: 8768: template<> 8768: streamsize 8768: __copy_streambufs_eof(basic_streambuf* __sbin, 8768: basic_streambuf* __sbout, bool& __ineof); 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: # 1 "/usr/include/c++/8/bits/streambuf.tcc" 1 3 8768: # 37 "/usr/include/c++/8/bits/streambuf.tcc" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/streambuf.tcc" 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: streamsize 8768: basic_streambuf<_CharT, _Traits>:: 8768: xsgetn(char_type* __s, streamsize __n) 8768: { 8768: streamsize __ret = 0; 8768: while (__ret < __n) 8768: { 8768: const streamsize __buf_len = this->egptr() - this->gptr(); 8768: if (__buf_len) 8768: { 8768: const streamsize __remaining = __n - __ret; 8768: const streamsize __len = std::min(__buf_len, __remaining); 8768: traits_type::copy(__s, this->gptr(), __len); 8768: __ret += __len; 8768: __s += __len; 8768: this->__safe_gbump(__len); 8768: } 8768: 8768: if (__ret < __n) 8768: { 8768: const int_type __c = this->uflow(); 8768: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8768: { 8768: traits_type::assign(*__s++, traits_type::to_char_type(__c)); 8768: ++__ret; 8768: } 8768: else 8768: break; 8768: } 8768: } 8768: return __ret; 8768: } 8768: 8768: template 8768: streamsize 8768: basic_streambuf<_CharT, _Traits>:: 8768: xsputn(const char_type* __s, streamsize __n) 8768: { 8768: streamsize __ret = 0; 8768: while (__ret < __n) 8768: { 8768: const streamsize __buf_len = this->epptr() - this->pptr(); 8768: if (__buf_len) 8768: { 8768: const streamsize __remaining = __n - __ret; 8768: const streamsize __len = std::min(__buf_len, __remaining); 8768: traits_type::copy(this->pptr(), __s, __len); 8768: __ret += __len; 8768: __s += __len; 8768: this->__safe_pbump(__len); 8768: } 8768: 8768: if (__ret < __n) 8768: { 8768: int_type __c = this->overflow(traits_type::to_int_type(*__s)); 8768: if (!traits_type::eq_int_type(__c, traits_type::eof())) 8768: { 8768: ++__ret; 8768: ++__s; 8768: } 8768: else 8768: break; 8768: } 8768: } 8768: return __ret; 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: streamsize 8768: __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, 8768: basic_streambuf<_CharT, _Traits>* __sbout, 8768: bool& __ineof) 8768: { 8768: streamsize __ret = 0; 8768: __ineof = true; 8768: typename _Traits::int_type __c = __sbin->sgetc(); 8768: while (!_Traits::eq_int_type(__c, _Traits::eof())) 8768: { 8768: __c = __sbout->sputc(_Traits::to_char_type(__c)); 8768: if (_Traits::eq_int_type(__c, _Traits::eof())) 8768: { 8768: __ineof = false; 8768: break; 8768: } 8768: ++__ret; 8768: __c = __sbin->snextc(); 8768: } 8768: return __ret; 8768: } 8768: 8768: template 8768: inline streamsize 8768: __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, 8768: basic_streambuf<_CharT, _Traits>* __sbout) 8768: { 8768: bool __ineof; 8768: return __copy_streambufs_eof(__sbin, __sbout, __ineof); 8768: } 8768: 8768: 8768: 8768: 8768: extern template class basic_streambuf; 8768: extern template 8768: streamsize 8768: __copy_streambufs(basic_streambuf*, 8768: basic_streambuf*); 8768: extern template 8768: streamsize 8768: __copy_streambufs_eof(basic_streambuf*, 8768: basic_streambuf*, bool&); 8768: 8768: 8768: extern template class basic_streambuf; 8768: extern template 8768: streamsize 8768: __copy_streambufs(basic_streambuf*, 8768: basic_streambuf*); 8768: extern template 8768: streamsize 8768: __copy_streambufs_eof(basic_streambuf*, 8768: basic_streambuf*, bool&); 8768: 8768: 8768: 8768: 8768: } 8768: # 863 "/usr/include/c++/8/streambuf" 2 3 8768: # 44 "/usr/include/c++/8/ios" 2 3 8768: # 1 "/usr/include/c++/8/bits/basic_ios.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/locale_facets.h" 1 3 8768: # 37 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: 8768: # 1 "/usr/include/c++/8/cwctype" 1 3 8768: # 39 "/usr/include/c++/8/cwctype" 3 8768: 8768: # 40 "/usr/include/c++/8/cwctype" 3 8768: # 50 "/usr/include/c++/8/cwctype" 3 8768: # 1 "/usr/include/wctype.h" 1 3 4 8768: # 38 "/usr/include/wctype.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 1 3 4 8768: # 38 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 8768: typedef unsigned long int wctype_t; 8768: # 56 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 8768: enum 8768: { 8768: __ISwupper = 0, 8768: __ISwlower = 1, 8768: __ISwalpha = 2, 8768: __ISwdigit = 3, 8768: __ISwxdigit = 4, 8768: __ISwspace = 5, 8768: __ISwprint = 6, 8768: __ISwgraph = 7, 8768: __ISwblank = 8, 8768: __ISwcntrl = 9, 8768: __ISwpunct = 10, 8768: __ISwalnum = 11, 8768: 8768: _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), 8768: _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), 8768: _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), 8768: _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), 8768: _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), 8768: _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), 8768: _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), 8768: _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), 8768: _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), 8768: _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), 8768: _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), 8768: _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) 8768: }; 8768: 8768: 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int iswalnum (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int iswalpha (wint_t __wc) throw (); 8768: 8768: 8768: extern int iswcntrl (wint_t __wc) throw (); 8768: 8768: 8768: 8768: extern int iswdigit (wint_t __wc) throw (); 8768: 8768: 8768: 8768: extern int iswgraph (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswlower (wint_t __wc) throw (); 8768: 8768: 8768: extern int iswprint (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswpunct (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswspace (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswupper (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswxdigit (wint_t __wc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int iswblank (wint_t __wc) throw (); 8768: # 155 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 8768: extern wctype_t wctype (const char *__property) throw (); 8768: 8768: 8768: 8768: extern int iswctype (wint_t __wc, wctype_t __desc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t towlower (wint_t __wc) throw (); 8768: 8768: 8768: extern wint_t towupper (wint_t __wc) throw (); 8768: 8768: } 8768: # 39 "/usr/include/wctype.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: extern "C" { 8768: 8768: 8768: 8768: typedef const __int32_t *wctrans_t; 8768: 8768: 8768: 8768: extern wctrans_t wctrans (const char *__property) throw (); 8768: 8768: 8768: extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: 8768: extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: 8768: extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: extern wctype_t wctype_l (const char *__property, locale_t __locale) 8768: throw (); 8768: 8768: 8768: 8768: extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) 8768: throw (); 8768: 8768: 8768: 8768: 8768: 8768: 8768: extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); 8768: 8768: 8768: 8768: extern wctrans_t wctrans_l (const char *__property, locale_t __locale) 8768: throw (); 8768: 8768: 8768: extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, 8768: locale_t __locale) throw (); 8768: 8768: 8768: 8768: } 8768: # 51 "/usr/include/c++/8/cwctype" 2 3 8768: # 80 "/usr/include/c++/8/cwctype" 3 8768: namespace std 8768: { 8768: using ::wctrans_t; 8768: using ::wctype_t; 8768: using ::wint_t; 8768: 8768: using ::iswalnum; 8768: using ::iswalpha; 8768: 8768: using ::iswblank; 8768: 8768: using ::iswcntrl; 8768: using ::iswctype; 8768: using ::iswdigit; 8768: using ::iswgraph; 8768: using ::iswlower; 8768: using ::iswprint; 8768: using ::iswpunct; 8768: using ::iswspace; 8768: using ::iswupper; 8768: using ::iswxdigit; 8768: using ::towctrans; 8768: using ::towlower; 8768: using ::towupper; 8768: using ::wctrans; 8768: using ::wctype; 8768: } 8768: # 40 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8768: # 1 "/usr/include/c++/8/cctype" 1 3 8768: # 39 "/usr/include/c++/8/cctype" 3 8768: 8768: # 40 "/usr/include/c++/8/cctype" 3 8768: # 41 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_base.h" 1 3 8768: # 36 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_base.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: struct ctype_base 8768: { 8768: 8768: typedef const int* __to_type; 8768: 8768: 8768: 8768: typedef unsigned short mask; 8768: static const mask upper = _ISupper; 8768: static const mask lower = _ISlower; 8768: static const mask alpha = _ISalpha; 8768: static const mask digit = _ISdigit; 8768: static const mask xdigit = _ISxdigit; 8768: static const mask space = _ISspace; 8768: static const mask print = _ISprint; 8768: static const mask graph = _ISalpha | _ISdigit | _ISpunct; 8768: static const mask cntrl = _IScntrl; 8768: static const mask punct = _ISpunct; 8768: static const mask alnum = _ISalpha | _ISdigit; 8768: 8768: static const mask blank = _ISblank; 8768: 8768: }; 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/streambuf_iterator.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 49 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8768: template 8768: class istreambuf_iterator 8768: : public iterator 8768: 8768: 8768: 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef _Traits traits_type; 8768: typedef typename _Traits::int_type int_type; 8768: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8768: typedef basic_istream<_CharT, _Traits> istream_type; 8768: 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: ostreambuf_iterator<_CharT2> >::__type 8768: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8768: ostreambuf_iterator<_CharT2>); 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: _CharT2*>::__type 8768: __copy_move_a2(istreambuf_iterator<_CharT2>, 8768: istreambuf_iterator<_CharT2>, _CharT2*); 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: istreambuf_iterator<_CharT2> >::__type 8768: find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8768: const _CharT2&); 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: void>::__type 8768: advance(istreambuf_iterator<_CharT2>&, _Distance); 8768: 8768: private: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: mutable streambuf_type* _M_sbuf; 8768: int_type _M_c; 8768: 8768: public: 8768: 8768: constexpr istreambuf_iterator() noexcept 8768: : _M_sbuf(0), _M_c(traits_type::eof()) { } 8768: 8768: 8768: istreambuf_iterator(const istreambuf_iterator&) noexcept = default; 8768: 8768: ~istreambuf_iterator() = default; 8768: 8768: 8768: 8768: istreambuf_iterator(istream_type& __s) noexcept 8768: : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } 8768: 8768: 8768: istreambuf_iterator(streambuf_type* __s) noexcept 8768: : _M_sbuf(__s), _M_c(traits_type::eof()) { } 8768: 8768: 8768: 8768: 8768: char_type 8768: operator*() const 8768: { 8768: int_type __c = _M_get(); 8768: # 139 "/usr/include/c++/8/bits/streambuf_iterator.h" 3 8768: return traits_type::to_char_type(__c); 8768: } 8768: 8768: 8768: istreambuf_iterator& 8768: operator++() 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: _M_sbuf->sbumpc(); 8768: _M_c = traits_type::eof(); 8768: return *this; 8768: } 8768: 8768: 8768: istreambuf_iterator 8768: operator++(int) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: istreambuf_iterator __old = *this; 8768: __old._M_c = _M_sbuf->sbumpc(); 8768: _M_c = traits_type::eof(); 8768: return __old; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: equal(const istreambuf_iterator& __b) const 8768: { return _M_at_eof() == __b._M_at_eof(); } 8768: 8768: private: 8768: int_type 8768: _M_get() const 8768: { 8768: int_type __ret = _M_c; 8768: if (_M_sbuf && _S_is_eof(__ret) && _S_is_eof(__ret = _M_sbuf->sgetc())) 8768: _M_sbuf = 0; 8768: return __ret; 8768: } 8768: 8768: bool 8768: _M_at_eof() const 8768: { return _S_is_eof(_M_get()); } 8768: 8768: static bool 8768: _S_is_eof(int_type __c) 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: return traits_type::eq_int_type(__c, __eof); 8768: } 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const istreambuf_iterator<_CharT, _Traits>& __a, 8768: const istreambuf_iterator<_CharT, _Traits>& __b) 8768: { return __a.equal(__b); } 8768: 8768: template 8768: inline bool 8768: operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, 8768: const istreambuf_iterator<_CharT, _Traits>& __b) 8768: { return !__a.equal(__b); } 8768: 8768: 8768: template 8768: class ostreambuf_iterator 8768: : public iterator 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef _Traits traits_type; 8768: typedef basic_streambuf<_CharT, _Traits> streambuf_type; 8768: typedef basic_ostream<_CharT, _Traits> ostream_type; 8768: 8768: 8768: template 8768: friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, 8768: ostreambuf_iterator<_CharT2> >::__type 8768: copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, 8768: ostreambuf_iterator<_CharT2>); 8768: 8768: private: 8768: streambuf_type* _M_sbuf; 8768: bool _M_failed; 8768: 8768: public: 8768: 8768: ostreambuf_iterator(ostream_type& __s) noexcept 8768: : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } 8768: 8768: 8768: ostreambuf_iterator(streambuf_type* __s) noexcept 8768: : _M_sbuf(__s), _M_failed(!_M_sbuf) { } 8768: 8768: 8768: ostreambuf_iterator& 8768: operator=(_CharT __c) 8768: { 8768: if (!_M_failed && 8768: _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) 8768: _M_failed = true; 8768: return *this; 8768: } 8768: 8768: 8768: ostreambuf_iterator& 8768: operator*() 8768: { return *this; } 8768: 8768: 8768: ostreambuf_iterator& 8768: operator++(int) 8768: { return *this; } 8768: 8768: 8768: ostreambuf_iterator& 8768: operator++() 8768: { return *this; } 8768: 8768: 8768: bool 8768: failed() const noexcept 8768: { return _M_failed; } 8768: 8768: ostreambuf_iterator& 8768: _M_put(const _CharT* __ws, streamsize __len) 8768: { 8768: if (__builtin_expect(!_M_failed, true) 8768: && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, 8768: false)) 8768: _M_failed = true; 8768: return *this; 8768: } 8768: }; 8768: 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: ostreambuf_iterator<_CharT> >::__type 8768: copy(istreambuf_iterator<_CharT> __first, 8768: istreambuf_iterator<_CharT> __last, 8768: ostreambuf_iterator<_CharT> __result) 8768: { 8768: if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) 8768: { 8768: bool __ineof; 8768: __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); 8768: if (!__ineof) 8768: __result._M_failed = true; 8768: } 8768: return __result; 8768: } 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: ostreambuf_iterator<_CharT> >::__type 8768: __copy_move_a2(_CharT* __first, _CharT* __last, 8768: ostreambuf_iterator<_CharT> __result) 8768: { 8768: const streamsize __num = __last - __first; 8768: if (__num > 0) 8768: __result._M_put(__first, __num); 8768: return __result; 8768: } 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: ostreambuf_iterator<_CharT> >::__type 8768: __copy_move_a2(const _CharT* __first, const _CharT* __last, 8768: ostreambuf_iterator<_CharT> __result) 8768: { 8768: const streamsize __num = __last - __first; 8768: if (__num > 0) 8768: __result._M_put(__first, __num); 8768: return __result; 8768: } 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: _CharT*>::__type 8768: __copy_move_a2(istreambuf_iterator<_CharT> __first, 8768: istreambuf_iterator<_CharT> __last, _CharT* __result) 8768: { 8768: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8768: typedef typename __is_iterator_type::traits_type traits_type; 8768: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8768: typedef typename traits_type::int_type int_type; 8768: 8768: if (__first._M_sbuf && !__last._M_sbuf) 8768: { 8768: streambuf_type* __sb = __first._M_sbuf; 8768: int_type __c = __sb->sgetc(); 8768: while (!traits_type::eq_int_type(__c, traits_type::eof())) 8768: { 8768: const streamsize __n = __sb->egptr() - __sb->gptr(); 8768: if (__n > 1) 8768: { 8768: traits_type::copy(__result, __sb->gptr(), __n); 8768: __sb->__safe_gbump(__n); 8768: __result += __n; 8768: __c = __sb->underflow(); 8768: } 8768: else 8768: { 8768: *__result++ = traits_type::to_char_type(__c); 8768: __c = __sb->snextc(); 8768: } 8768: } 8768: } 8768: return __result; 8768: } 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: istreambuf_iterator<_CharT> >::__type 8768: find(istreambuf_iterator<_CharT> __first, 8768: istreambuf_iterator<_CharT> __last, const _CharT& __val) 8768: { 8768: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8768: typedef typename __is_iterator_type::traits_type traits_type; 8768: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8768: typedef typename traits_type::int_type int_type; 8768: const int_type __eof = traits_type::eof(); 8768: 8768: if (__first._M_sbuf && !__last._M_sbuf) 8768: { 8768: const int_type __ival = traits_type::to_int_type(__val); 8768: streambuf_type* __sb = __first._M_sbuf; 8768: int_type __c = __sb->sgetc(); 8768: while (!traits_type::eq_int_type(__c, __eof) 8768: && !traits_type::eq_int_type(__c, __ival)) 8768: { 8768: streamsize __n = __sb->egptr() - __sb->gptr(); 8768: if (__n > 1) 8768: { 8768: const _CharT* __p = traits_type::find(__sb->gptr(), 8768: __n, __val); 8768: if (__p) 8768: __n = __p - __sb->gptr(); 8768: __sb->__safe_gbump(__n); 8768: __c = __sb->sgetc(); 8768: } 8768: else 8768: __c = __sb->snextc(); 8768: } 8768: 8768: __first._M_c = __eof; 8768: } 8768: 8768: return __first; 8768: } 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 8768: void>::__type 8768: advance(istreambuf_iterator<_CharT>& __i, _Distance __n) 8768: { 8768: if (__n == 0) 8768: return; 8768: 8768: ; 8768: 8768: 8768: ; 8768: 8768: typedef istreambuf_iterator<_CharT> __is_iterator_type; 8768: typedef typename __is_iterator_type::traits_type traits_type; 8768: typedef typename __is_iterator_type::streambuf_type streambuf_type; 8768: typedef typename traits_type::int_type int_type; 8768: const int_type __eof = traits_type::eof(); 8768: 8768: streambuf_type* __sb = __i._M_sbuf; 8768: while (__n > 0) 8768: { 8768: streamsize __size = __sb->egptr() - __sb->gptr(); 8768: if (__size > __n) 8768: { 8768: __sb->__safe_gbump(__n); 8768: break; 8768: } 8768: 8768: __sb->__safe_gbump(__size); 8768: __n -= __size; 8768: if (traits_type::eq_int_type(__sb->underflow(), __eof)) 8768: { 8768: 8768: 8768: ; 8768: break; 8768: } 8768: } 8768: 8768: __i._M_c = __eof; 8768: } 8768: 8768: 8768: 8768: 8768: } 8768: # 49 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 71 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template 8768: void 8768: __convert_to_v(const char*, _Tp&, ios_base::iostate&, 8768: const __c_locale&) throw(); 8768: 8768: 8768: template<> 8768: void 8768: __convert_to_v(const char*, float&, ios_base::iostate&, 8768: const __c_locale&) throw(); 8768: 8768: template<> 8768: void 8768: __convert_to_v(const char*, double&, ios_base::iostate&, 8768: const __c_locale&) throw(); 8768: 8768: template<> 8768: void 8768: __convert_to_v(const char*, long double&, ios_base::iostate&, 8768: const __c_locale&) throw(); 8768: 8768: 8768: 8768: template 8768: struct __pad 8768: { 8768: static void 8768: _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, 8768: const _CharT* __olds, streamsize __newlen, streamsize __oldlen); 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _CharT* 8768: __add_grouping(_CharT* __s, _CharT __sep, 8768: const char* __gbeg, size_t __gsize, 8768: const _CharT* __first, const _CharT* __last); 8768: 8768: 8768: 8768: 8768: template 8768: inline 8768: ostreambuf_iterator<_CharT> 8768: __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) 8768: { 8768: __s._M_put(__ws, __len); 8768: return __s; 8768: } 8768: 8768: 8768: template 8768: inline 8768: _OutIter 8768: __write(_OutIter __s, const _CharT* __ws, int __len) 8768: { 8768: for (int __j = 0; __j < __len; __j++, ++__s) 8768: *__s = __ws[__j]; 8768: return __s; 8768: } 8768: # 149 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template 8768: class __ctype_abstract_base : public locale::facet, public ctype_base 8768: { 8768: public: 8768: 8768: 8768: typedef _CharT char_type; 8768: # 168 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: bool 8768: is(mask __m, char_type __c) const 8768: { return this->do_is(__m, __c); } 8768: # 185 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: is(const char_type *__lo, const char_type *__hi, mask *__vec) const 8768: { return this->do_is(__lo, __hi, __vec); } 8768: # 201 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: scan_is(mask __m, const char_type* __lo, const char_type* __hi) const 8768: { return this->do_scan_is(__m, __lo, __hi); } 8768: # 217 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: scan_not(mask __m, const char_type* __lo, const char_type* __hi) const 8768: { return this->do_scan_not(__m, __lo, __hi); } 8768: # 231 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: toupper(char_type __c) const 8768: { return this->do_toupper(__c); } 8768: # 246 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: toupper(char_type *__lo, const char_type* __hi) const 8768: { return this->do_toupper(__lo, __hi); } 8768: # 260 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: tolower(char_type __c) const 8768: { return this->do_tolower(__c); } 8768: # 275 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: tolower(char_type* __lo, const char_type* __hi) const 8768: { return this->do_tolower(__lo, __hi); } 8768: # 292 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: widen(char __c) const 8768: { return this->do_widen(__c); } 8768: # 311 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char* 8768: widen(const char* __lo, const char* __hi, char_type* __to) const 8768: { return this->do_widen(__lo, __hi, __to); } 8768: # 330 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char 8768: narrow(char_type __c, char __dfault) const 8768: { return this->do_narrow(__c, __dfault); } 8768: # 352 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: narrow(const char_type* __lo, const char_type* __hi, 8768: char __dfault, char* __to) const 8768: { return this->do_narrow(__lo, __hi, __dfault, __to); } 8768: 8768: protected: 8768: explicit 8768: __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } 8768: 8768: virtual 8768: ~__ctype_abstract_base() { } 8768: # 377 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual bool 8768: do_is(mask __m, char_type __c) const = 0; 8768: # 396 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_is(const char_type* __lo, const char_type* __hi, 8768: mask* __vec) const = 0; 8768: # 415 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_scan_is(mask __m, const char_type* __lo, 8768: const char_type* __hi) const = 0; 8768: # 434 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_scan_not(mask __m, const char_type* __lo, 8768: const char_type* __hi) const = 0; 8768: # 452 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_toupper(char_type __c) const = 0; 8768: # 469 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_toupper(char_type* __lo, const char_type* __hi) const = 0; 8768: # 485 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_tolower(char_type __c) const = 0; 8768: # 502 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_tolower(char_type* __lo, const char_type* __hi) const = 0; 8768: # 521 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_widen(char __c) const = 0; 8768: # 542 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char* 8768: do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0; 8768: # 563 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char 8768: do_narrow(char_type __c, char __dfault) const = 0; 8768: # 588 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_narrow(const char_type* __lo, const char_type* __hi, 8768: char __dfault, char* __to) const = 0; 8768: }; 8768: # 611 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template 8768: class ctype : public __ctype_abstract_base<_CharT> 8768: { 8768: public: 8768: 8768: typedef _CharT char_type; 8768: typedef typename __ctype_abstract_base<_CharT>::mask mask; 8768: 8768: 8768: static locale::id id; 8768: 8768: explicit 8768: ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } 8768: 8768: protected: 8768: virtual 8768: ~ctype(); 8768: 8768: virtual bool 8768: do_is(mask __m, char_type __c) const; 8768: 8768: virtual const char_type* 8768: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8768: 8768: virtual const char_type* 8768: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8768: 8768: virtual const char_type* 8768: do_scan_not(mask __m, const char_type* __lo, 8768: const char_type* __hi) const; 8768: 8768: virtual char_type 8768: do_toupper(char_type __c) const; 8768: 8768: virtual const char_type* 8768: do_toupper(char_type* __lo, const char_type* __hi) const; 8768: 8768: virtual char_type 8768: do_tolower(char_type __c) const; 8768: 8768: virtual const char_type* 8768: do_tolower(char_type* __lo, const char_type* __hi) const; 8768: 8768: virtual char_type 8768: do_widen(char __c) const; 8768: 8768: virtual const char* 8768: do_widen(const char* __lo, const char* __hi, char_type* __dest) const; 8768: 8768: virtual char 8768: do_narrow(char_type, char __dfault) const; 8768: 8768: virtual const char_type* 8768: do_narrow(const char_type* __lo, const char_type* __hi, 8768: char __dfault, char* __to) const; 8768: }; 8768: 8768: template 8768: locale::id ctype<_CharT>::id; 8768: # 680 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template<> 8768: class ctype : public locale::facet, public ctype_base 8768: { 8768: public: 8768: 8768: 8768: typedef char char_type; 8768: 8768: protected: 8768: 8768: __c_locale _M_c_locale_ctype; 8768: bool _M_del; 8768: __to_type _M_toupper; 8768: __to_type _M_tolower; 8768: const mask* _M_table; 8768: mutable char _M_widen_ok; 8768: mutable char _M_widen[1 + static_cast(-1)]; 8768: mutable char _M_narrow[1 + static_cast(-1)]; 8768: mutable char _M_narrow_ok; 8768: 8768: 8768: public: 8768: 8768: static locale::id id; 8768: 8768: static const size_t table_size = 1 + static_cast(-1); 8768: # 717 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); 8768: # 730 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, 8768: size_t __refs = 0); 8768: # 743 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: inline bool 8768: is(mask __m, char __c) const; 8768: # 758 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: inline const char* 8768: is(const char* __lo, const char* __hi, mask* __vec) const; 8768: # 772 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: inline const char* 8768: scan_is(mask __m, const char* __lo, const char* __hi) const; 8768: # 786 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: inline const char* 8768: scan_not(mask __m, const char* __lo, const char* __hi) const; 8768: # 801 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: toupper(char_type __c) const 8768: { return this->do_toupper(__c); } 8768: # 818 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: toupper(char_type *__lo, const char_type* __hi) const 8768: { return this->do_toupper(__lo, __hi); } 8768: # 834 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: tolower(char_type __c) const 8768: { return this->do_tolower(__c); } 8768: # 851 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: tolower(char_type* __lo, const char_type* __hi) const 8768: { return this->do_tolower(__lo, __hi); } 8768: # 871 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: widen(char __c) const 8768: { 8768: if (_M_widen_ok) 8768: return _M_widen[static_cast(__c)]; 8768: this->_M_widen_init(); 8768: return this->do_widen(__c); 8768: } 8768: # 898 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char* 8768: widen(const char* __lo, const char* __hi, char_type* __to) const 8768: { 8768: if (_M_widen_ok == 1) 8768: { 8768: __builtin_memcpy(__to, __lo, __hi - __lo); 8768: return __hi; 8768: } 8768: if (!_M_widen_ok) 8768: _M_widen_init(); 8768: return this->do_widen(__lo, __hi, __to); 8768: } 8768: # 929 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char 8768: narrow(char_type __c, char __dfault) const 8768: { 8768: if (_M_narrow[static_cast(__c)]) 8768: return _M_narrow[static_cast(__c)]; 8768: const char __t = do_narrow(__c, __dfault); 8768: if (__t != __dfault) 8768: _M_narrow[static_cast(__c)] = __t; 8768: return __t; 8768: } 8768: # 962 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: const char_type* 8768: narrow(const char_type* __lo, const char_type* __hi, 8768: char __dfault, char* __to) const 8768: { 8768: if (__builtin_expect(_M_narrow_ok == 1, true)) 8768: { 8768: __builtin_memcpy(__to, __lo, __hi - __lo); 8768: return __hi; 8768: } 8768: if (!_M_narrow_ok) 8768: _M_narrow_init(); 8768: return this->do_narrow(__lo, __hi, __dfault, __to); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const mask* 8768: table() const throw() 8768: { return _M_table; } 8768: 8768: 8768: static const mask* 8768: classic_table() throw(); 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual 8768: ~ctype(); 8768: # 1011 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_toupper(char_type __c) const; 8768: # 1028 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_toupper(char_type* __lo, const char_type* __hi) const; 8768: # 1044 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_tolower(char_type __c) const; 8768: # 1061 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_tolower(char_type* __lo, const char_type* __hi) const; 8768: # 1081 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_widen(char __c) const 8768: { return __c; } 8768: # 1104 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char* 8768: do_widen(const char* __lo, const char* __hi, char_type* __to) const 8768: { 8768: __builtin_memcpy(__to, __lo, __hi - __lo); 8768: return __hi; 8768: } 8768: # 1130 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char 8768: do_narrow(char_type __c, char __dfault __attribute__((__unused__))) const 8768: { return __c; } 8768: # 1156 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_narrow(const char_type* __lo, const char_type* __hi, 8768: char __dfault __attribute__((__unused__)), char* __to) const 8768: { 8768: __builtin_memcpy(__to, __lo, __hi - __lo); 8768: return __hi; 8768: } 8768: 8768: private: 8768: void _M_narrow_init() const; 8768: void _M_widen_init() const; 8768: }; 8768: # 1181 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template<> 8768: class ctype : public __ctype_abstract_base 8768: { 8768: public: 8768: 8768: 8768: typedef wchar_t char_type; 8768: typedef wctype_t __wmask_type; 8768: 8768: protected: 8768: __c_locale _M_c_locale_ctype; 8768: 8768: 8768: bool _M_narrow_ok; 8768: char _M_narrow[128]; 8768: wint_t _M_widen[1 + static_cast(-1)]; 8768: 8768: 8768: mask _M_bit[16]; 8768: __wmask_type _M_wmask[16]; 8768: 8768: public: 8768: 8768: 8768: static locale::id id; 8768: # 1214 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: ctype(size_t __refs = 0); 8768: # 1225 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: ctype(__c_locale __cloc, size_t __refs = 0); 8768: 8768: protected: 8768: __wmask_type 8768: _M_convert_to_wmask(const mask __m) const throw(); 8768: 8768: 8768: virtual 8768: ~ctype(); 8768: # 1249 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual bool 8768: do_is(mask __m, char_type __c) const; 8768: # 1268 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; 8768: # 1286 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; 8768: # 1304 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_scan_not(mask __m, const char_type* __lo, 8768: const char_type* __hi) const; 8768: # 1321 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_toupper(char_type __c) const; 8768: # 1338 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_toupper(char_type* __lo, const char_type* __hi) const; 8768: # 1354 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_tolower(char_type __c) const; 8768: # 1371 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_tolower(char_type* __lo, const char_type* __hi) const; 8768: # 1391 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_widen(char __c) const; 8768: # 1413 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char* 8768: do_widen(const char* __lo, const char* __hi, char_type* __to) const; 8768: # 1436 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char 8768: do_narrow(char_type __c, char __dfault) const; 8768: # 1462 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual const char_type* 8768: do_narrow(const char_type* __lo, const char_type* __hi, 8768: char __dfault, char* __to) const; 8768: 8768: 8768: void 8768: _M_initialize_ctype() throw(); 8768: }; 8768: 8768: 8768: 8768: template 8768: class ctype_byname : public ctype<_CharT> 8768: { 8768: public: 8768: typedef typename ctype<_CharT>::mask mask; 8768: 8768: explicit 8768: ctype_byname(const char* __s, size_t __refs = 0); 8768: 8768: 8768: explicit 8768: ctype_byname(const string& __s, size_t __refs = 0) 8768: : ctype_byname(__s.c_str(), __refs) { } 8768: 8768: 8768: protected: 8768: virtual 8768: ~ctype_byname() { } 8768: }; 8768: 8768: 8768: template<> 8768: class ctype_byname : public ctype 8768: { 8768: public: 8768: explicit 8768: ctype_byname(const char* __s, size_t __refs = 0); 8768: 8768: 8768: explicit 8768: ctype_byname(const string& __s, size_t __refs = 0); 8768: 8768: 8768: protected: 8768: virtual 8768: ~ctype_byname(); 8768: }; 8768: 8768: 8768: template<> 8768: class ctype_byname : public ctype 8768: { 8768: public: 8768: explicit 8768: ctype_byname(const char* __s, size_t __refs = 0); 8768: 8768: 8768: explicit 8768: ctype_byname(const string& __s, size_t __refs = 0); 8768: 8768: 8768: protected: 8768: virtual 8768: ~ctype_byname(); 8768: }; 8768: 8768: 8768: 8768: } 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_inline.h" 1 3 8768: # 37 "/usr/include/x86_64-linux-gnu/c++/8/bits/ctype_inline.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: bool 8768: ctype:: 8768: is(mask __m, char __c) const 8768: { return _M_table[static_cast(__c)] & __m; } 8768: 8768: const char* 8768: ctype:: 8768: is(const char* __low, const char* __high, mask* __vec) const 8768: { 8768: while (__low < __high) 8768: *__vec++ = _M_table[static_cast(*__low++)]; 8768: return __high; 8768: } 8768: 8768: const char* 8768: ctype:: 8768: scan_is(mask __m, const char* __low, const char* __high) const 8768: { 8768: while (__low < __high 8768: && !(_M_table[static_cast(*__low)] & __m)) 8768: ++__low; 8768: return __low; 8768: } 8768: 8768: const char* 8768: ctype:: 8768: scan_not(mask __m, const char* __low, const char* __high) const 8768: { 8768: while (__low < __high 8768: && (_M_table[static_cast(*__low)] & __m) != 0) 8768: ++__low; 8768: return __low; 8768: } 8768: 8768: 8768: } 8768: # 1535 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: class __num_base 8768: { 8768: public: 8768: 8768: 8768: enum 8768: { 8768: _S_ominus, 8768: _S_oplus, 8768: _S_ox, 8768: _S_oX, 8768: _S_odigits, 8768: _S_odigits_end = _S_odigits + 16, 8768: _S_oudigits = _S_odigits_end, 8768: _S_oudigits_end = _S_oudigits + 16, 8768: _S_oe = _S_odigits + 14, 8768: _S_oE = _S_oudigits + 14, 8768: _S_oend = _S_oudigits_end 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: static const char* _S_atoms_out; 8768: 8768: 8768: 8768: static const char* _S_atoms_in; 8768: 8768: enum 8768: { 8768: _S_iminus, 8768: _S_iplus, 8768: _S_ix, 8768: _S_iX, 8768: _S_izero, 8768: _S_ie = _S_izero + 14, 8768: _S_iE = _S_izero + 20, 8768: _S_iend = 26 8768: }; 8768: 8768: 8768: 8768: static void 8768: _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw(); 8768: }; 8768: 8768: template 8768: struct __numpunct_cache : public locale::facet 8768: { 8768: const char* _M_grouping; 8768: size_t _M_grouping_size; 8768: bool _M_use_grouping; 8768: const _CharT* _M_truename; 8768: size_t _M_truename_size; 8768: const _CharT* _M_falsename; 8768: size_t _M_falsename_size; 8768: _CharT _M_decimal_point; 8768: _CharT _M_thousands_sep; 8768: 8768: 8768: 8768: 8768: 8768: _CharT _M_atoms_out[__num_base::_S_oend]; 8768: 8768: 8768: 8768: 8768: 8768: _CharT _M_atoms_in[__num_base::_S_iend]; 8768: 8768: bool _M_allocated; 8768: 8768: __numpunct_cache(size_t __refs = 0) 8768: : facet(__refs), _M_grouping(0), _M_grouping_size(0), 8768: _M_use_grouping(false), 8768: _M_truename(0), _M_truename_size(0), _M_falsename(0), 8768: _M_falsename_size(0), _M_decimal_point(_CharT()), 8768: _M_thousands_sep(_CharT()), _M_allocated(false) 8768: { } 8768: 8768: ~__numpunct_cache(); 8768: 8768: void 8768: _M_cache(const locale& __loc); 8768: 8768: private: 8768: __numpunct_cache& 8768: operator=(const __numpunct_cache&); 8768: 8768: explicit 8768: __numpunct_cache(const __numpunct_cache&); 8768: }; 8768: 8768: template 8768: __numpunct_cache<_CharT>::~__numpunct_cache() 8768: { 8768: if (_M_allocated) 8768: { 8768: delete [] _M_grouping; 8768: delete [] _M_truename; 8768: delete [] _M_falsename; 8768: } 8768: } 8768: 8768: namespace __cxx11 { 8768: # 1665 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template 8768: class numpunct : public locale::facet 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef basic_string<_CharT> string_type; 8768: 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: 8768: protected: 8768: __cache_type* _M_data; 8768: 8768: public: 8768: 8768: static locale::id id; 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: numpunct(size_t __refs = 0) 8768: : facet(__refs), _M_data(0) 8768: { _M_initialize_numpunct(); } 8768: # 1703 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: numpunct(__cache_type* __cache, size_t __refs = 0) 8768: : facet(__refs), _M_data(__cache) 8768: { _M_initialize_numpunct(); } 8768: # 1717 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: numpunct(__c_locale __cloc, size_t __refs = 0) 8768: : facet(__refs), _M_data(0) 8768: { _M_initialize_numpunct(__cloc); } 8768: # 1731 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: decimal_point() const 8768: { return this->do_decimal_point(); } 8768: # 1744 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: char_type 8768: thousands_sep() const 8768: { return this->do_thousands_sep(); } 8768: # 1775 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: string 8768: grouping() const 8768: { return this->do_grouping(); } 8768: # 1788 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: string_type 8768: truename() const 8768: { return this->do_truename(); } 8768: # 1801 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: string_type 8768: falsename() const 8768: { return this->do_falsename(); } 8768: 8768: protected: 8768: 8768: virtual 8768: ~numpunct(); 8768: # 1818 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_decimal_point() const 8768: { return _M_data->_M_decimal_point; } 8768: # 1830 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual char_type 8768: do_thousands_sep() const 8768: { return _M_data->_M_thousands_sep; } 8768: # 1843 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual string 8768: do_grouping() const 8768: { return _M_data->_M_grouping; } 8768: # 1856 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual string_type 8768: do_truename() const 8768: { return _M_data->_M_truename; } 8768: # 1869 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual string_type 8768: do_falsename() const 8768: { return _M_data->_M_falsename; } 8768: 8768: 8768: void 8768: _M_initialize_numpunct(__c_locale __cloc = 0); 8768: }; 8768: 8768: template 8768: locale::id numpunct<_CharT>::id; 8768: 8768: template<> 8768: numpunct::~numpunct(); 8768: 8768: template<> 8768: void 8768: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8768: 8768: 8768: template<> 8768: numpunct::~numpunct(); 8768: 8768: template<> 8768: void 8768: numpunct::_M_initialize_numpunct(__c_locale __cloc); 8768: 8768: 8768: 8768: template 8768: class numpunct_byname : public numpunct<_CharT> 8768: { 8768: public: 8768: typedef _CharT char_type; 8768: typedef basic_string<_CharT> string_type; 8768: 8768: explicit 8768: numpunct_byname(const char* __s, size_t __refs = 0) 8768: : numpunct<_CharT>(__refs) 8768: { 8768: if (__builtin_strcmp(__s, "C") != 0 8768: && __builtin_strcmp(__s, "POSIX") != 0) 8768: { 8768: __c_locale __tmp; 8768: this->_S_create_c_locale(__tmp, __s); 8768: this->_M_initialize_numpunct(__tmp); 8768: this->_S_destroy_c_locale(__tmp); 8768: } 8768: } 8768: 8768: 8768: explicit 8768: numpunct_byname(const string& __s, size_t __refs = 0) 8768: : numpunct_byname(__s.c_str(), __refs) { } 8768: 8768: 8768: protected: 8768: virtual 8768: ~numpunct_byname() { } 8768: }; 8768: 8768: } 8768: 8768: 8768: # 1947 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template 8768: class num_get : public locale::facet 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef _InIter iter_type; 8768: 8768: 8768: 8768: static locale::id id; 8768: # 1968 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: num_get(size_t __refs = 0) : facet(__refs) { } 8768: # 1994 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, bool& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: # 2031 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, long& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned short& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned int& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned long& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, long long& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned long long& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: # 2091 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, float& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, double& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, long double& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: # 2134 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: get(iter_type __in, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, void*& __v) const 8768: { return this->do_get(__in, __end, __io, __err, __v); } 8768: 8768: protected: 8768: 8768: virtual ~num_get() { } 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iter_type 8768: _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, 8768: string&) const; 8768: 8768: template 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iter_type 8768: _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, 8768: _ValueT&) const; 8768: 8768: template 8768: typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type 8768: _M_find(const _CharT2*, size_t __len, _CharT2 __c) const 8768: { 8768: int __ret = -1; 8768: if (__len <= 10) 8768: { 8768: if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) 8768: __ret = __c - _CharT2('0'); 8768: } 8768: else 8768: { 8768: if (__c >= _CharT2('0') && __c <= _CharT2('9')) 8768: __ret = __c - _CharT2('0'); 8768: else if (__c >= _CharT2('a') && __c <= _CharT2('f')) 8768: __ret = 10 + (__c - _CharT2('a')); 8768: else if (__c >= _CharT2('A') && __c <= _CharT2('F')) 8768: __ret = 10 + (__c - _CharT2('A')); 8768: } 8768: return __ret; 8768: } 8768: 8768: template 8768: typename __gnu_cxx::__enable_if::__value, 8768: int>::__type 8768: _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const 8768: { 8768: int __ret = -1; 8768: const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); 8768: if (__q) 8768: { 8768: __ret = __q - __zero; 8768: if (__ret > 15) 8768: __ret -= 6; 8768: } 8768: return __ret; 8768: } 8768: # 2207 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual iter_type 8768: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; 8768: 8768: virtual iter_type 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, long& __v) const 8768: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8768: 8768: virtual iter_type 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned short& __v) const 8768: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8768: 8768: virtual iter_type 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned int& __v) const 8768: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8768: 8768: virtual iter_type 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned long& __v) const 8768: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8768: 8768: 8768: virtual iter_type 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, long long& __v) const 8768: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8768: 8768: virtual iter_type 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, unsigned long long& __v) const 8768: { return _M_extract_int(__beg, __end, __io, __err, __v); } 8768: 8768: 8768: virtual iter_type 8768: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const; 8768: 8768: virtual iter_type 8768: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8768: double&) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual iter_type 8768: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, 8768: long double&) const; 8768: 8768: 8768: virtual iter_type 8768: do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; 8768: # 2270 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: }; 8768: 8768: template 8768: locale::id num_get<_CharT, _InIter>::id; 8768: # 2288 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: template 8768: class num_put : public locale::facet 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef _OutIter iter_type; 8768: 8768: 8768: 8768: static locale::id id; 8768: # 2309 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: explicit 8768: num_put(size_t __refs = 0) : facet(__refs) { } 8768: # 2327 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: # 2369 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, 8768: unsigned long __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: 8768: 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, 8768: unsigned long long __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: # 2432 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, 8768: long double __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: # 2457 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: iter_type 8768: put(iter_type __s, ios_base& __io, char_type __fill, 8768: const void* __v) const 8768: { return this->do_put(__s, __io, __fill, __v); } 8768: 8768: protected: 8768: template 8768: iter_type 8768: _M_insert_float(iter_type, ios_base& __io, char_type __fill, 8768: char __mod, _ValueT __v) const; 8768: 8768: void 8768: _M_group_float(const char* __grouping, size_t __grouping_size, 8768: char_type __sep, const char_type* __p, char_type* __new, 8768: char_type* __cs, int& __len) const; 8768: 8768: template 8768: iter_type 8768: _M_insert_int(iter_type, ios_base& __io, char_type __fill, 8768: _ValueT __v) const; 8768: 8768: void 8768: _M_group_int(const char* __grouping, size_t __grouping_size, 8768: char_type __sep, ios_base& __io, char_type* __new, 8768: char_type* __cs, int& __len) const; 8768: 8768: void 8768: _M_pad(char_type __fill, streamsize __w, ios_base& __io, 8768: char_type* __new, const char_type* __cs, int& __len) const; 8768: 8768: 8768: virtual 8768: ~num_put() { } 8768: # 2505 "/usr/include/c++/8/bits/locale_facets.h" 3 8768: virtual iter_type 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const; 8768: 8768: virtual iter_type 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const 8768: { return _M_insert_int(__s, __io, __fill, __v); } 8768: 8768: virtual iter_type 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, 8768: unsigned long __v) const 8768: { return _M_insert_int(__s, __io, __fill, __v); } 8768: 8768: 8768: virtual iter_type 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, 8768: long long __v) const 8768: { return _M_insert_int(__s, __io, __fill, __v); } 8768: 8768: virtual iter_type 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, 8768: unsigned long long __v) const 8768: { return _M_insert_int(__s, __io, __fill, __v); } 8768: 8768: 8768: virtual iter_type 8768: do_put(iter_type, ios_base&, char_type, double) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual iter_type 8768: do_put(iter_type, ios_base&, char_type, long double) const; 8768: 8768: 8768: virtual iter_type 8768: do_put(iter_type, ios_base&, char_type, const void*) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: template 8768: locale::id num_put<_CharT, _OutIter>::id; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline bool 8768: isspace(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::space, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isprint(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::print, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: iscntrl(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::cntrl, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isupper(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::upper, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: islower(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::lower, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isalpha(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::alpha, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isdigit(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::digit, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: ispunct(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::punct, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isxdigit(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::xdigit, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isalnum(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::alnum, __c); } 8768: 8768: 8768: template 8768: inline bool 8768: isgraph(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::graph, __c); } 8768: 8768: 8768: 8768: template 8768: inline bool 8768: isblank(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).is(ctype_base::blank, __c); } 8768: 8768: 8768: 8768: template 8768: inline _CharT 8768: toupper(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).toupper(__c); } 8768: 8768: 8768: template 8768: inline _CharT 8768: tolower(_CharT __c, const locale& __loc) 8768: { return use_facet >(__loc).tolower(__c); } 8768: 8768: 8768: } 8768: 8768: # 1 "/usr/include/c++/8/bits/locale_facets.tcc" 1 3 8768: # 33 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: struct __use_cache 8768: { 8768: const _Facet* 8768: operator() (const locale& __loc) const; 8768: }; 8768: 8768: 8768: template 8768: struct __use_cache<__numpunct_cache<_CharT> > 8768: { 8768: const __numpunct_cache<_CharT>* 8768: operator() (const locale& __loc) const 8768: { 8768: const size_t __i = numpunct<_CharT>::id._M_id(); 8768: const locale::facet** __caches = __loc._M_impl->_M_caches; 8768: if (!__caches[__i]) 8768: { 8768: __numpunct_cache<_CharT>* __tmp = 0; 8768: try 8768: { 8768: __tmp = new __numpunct_cache<_CharT>; 8768: __tmp->_M_cache(__loc); 8768: } 8768: catch(...) 8768: { 8768: delete __tmp; 8768: throw; 8768: } 8768: __loc._M_impl->_M_install_cache(__tmp, __i); 8768: } 8768: return static_cast*>(__caches[__i]); 8768: } 8768: }; 8768: 8768: template 8768: void 8768: __numpunct_cache<_CharT>::_M_cache(const locale& __loc) 8768: { 8768: const numpunct<_CharT>& __np = use_facet >(__loc); 8768: 8768: char* __grouping = 0; 8768: _CharT* __truename = 0; 8768: _CharT* __falsename = 0; 8768: try 8768: { 8768: const string& __g = __np.grouping(); 8768: _M_grouping_size = __g.size(); 8768: __grouping = new char[_M_grouping_size]; 8768: __g.copy(__grouping, _M_grouping_size); 8768: _M_use_grouping = (_M_grouping_size 8768: && static_cast(__grouping[0]) > 0 8768: && (__grouping[0] 8768: != __gnu_cxx::__numeric_traits::__max)); 8768: 8768: const basic_string<_CharT>& __tn = __np.truename(); 8768: _M_truename_size = __tn.size(); 8768: __truename = new _CharT[_M_truename_size]; 8768: __tn.copy(__truename, _M_truename_size); 8768: 8768: const basic_string<_CharT>& __fn = __np.falsename(); 8768: _M_falsename_size = __fn.size(); 8768: __falsename = new _CharT[_M_falsename_size]; 8768: __fn.copy(__falsename, _M_falsename_size); 8768: 8768: _M_decimal_point = __np.decimal_point(); 8768: _M_thousands_sep = __np.thousands_sep(); 8768: 8768: const ctype<_CharT>& __ct = use_facet >(__loc); 8768: __ct.widen(__num_base::_S_atoms_out, 8768: __num_base::_S_atoms_out 8768: + __num_base::_S_oend, _M_atoms_out); 8768: __ct.widen(__num_base::_S_atoms_in, 8768: __num_base::_S_atoms_in 8768: + __num_base::_S_iend, _M_atoms_in); 8768: 8768: _M_grouping = __grouping; 8768: _M_truename = __truename; 8768: _M_falsename = __falsename; 8768: _M_allocated = true; 8768: } 8768: catch(...) 8768: { 8768: delete [] __grouping; 8768: delete [] __truename; 8768: delete [] __falsename; 8768: throw; 8768: } 8768: } 8768: # 139 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: __attribute__ ((__pure__)) bool 8768: __verify_grouping(const char* __grouping, size_t __grouping_size, 8768: const string& __grouping_tmp) throw (); 8768: 8768: 8768: 8768: template 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, 8768: ios_base::iostate& __err, string& __xtrc) const 8768: { 8768: typedef char_traits<_CharT> __traits_type; 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: __use_cache<__cache_type> __uc; 8768: const locale& __loc = __io._M_getloc(); 8768: const __cache_type* __lc = __uc(__loc); 8768: const _CharT* __lit = __lc->_M_atoms_in; 8768: char_type __c = char_type(); 8768: 8768: 8768: bool __testeof = __beg == __end; 8768: 8768: 8768: if (!__testeof) 8768: { 8768: __c = *__beg; 8768: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8768: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8768: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8768: && !(__c == __lc->_M_decimal_point)) 8768: { 8768: __xtrc += __plus ? '+' : '-'; 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: } 8768: 8768: 8768: bool __found_mantissa = false; 8768: int __sep_pos = 0; 8768: while (!__testeof) 8768: { 8768: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8768: || __c == __lc->_M_decimal_point) 8768: break; 8768: else if (__c == __lit[__num_base::_S_izero]) 8768: { 8768: if (!__found_mantissa) 8768: { 8768: __xtrc += '0'; 8768: __found_mantissa = true; 8768: } 8768: ++__sep_pos; 8768: 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: else 8768: break; 8768: } 8768: 8768: 8768: bool __found_dec = false; 8768: bool __found_sci = false; 8768: string __found_grouping; 8768: if (__lc->_M_use_grouping) 8768: __found_grouping.reserve(32); 8768: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8768: 8768: if (!__lc->_M_allocated) 8768: 8768: while (!__testeof) 8768: { 8768: const int __digit = _M_find(__lit_zero, 10, __c); 8768: if (__digit != -1) 8768: { 8768: __xtrc += '0' + __digit; 8768: __found_mantissa = true; 8768: } 8768: else if (__c == __lc->_M_decimal_point 8768: && !__found_dec && !__found_sci) 8768: { 8768: __xtrc += '.'; 8768: __found_dec = true; 8768: } 8768: else if ((__c == __lit[__num_base::_S_ie] 8768: || __c == __lit[__num_base::_S_iE]) 8768: && !__found_sci && __found_mantissa) 8768: { 8768: 8768: __xtrc += 'e'; 8768: __found_sci = true; 8768: 8768: 8768: if (++__beg != __end) 8768: { 8768: __c = *__beg; 8768: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8768: if (__plus || __c == __lit[__num_base::_S_iminus]) 8768: __xtrc += __plus ? '+' : '-'; 8768: else 8768: continue; 8768: } 8768: else 8768: { 8768: __testeof = true; 8768: break; 8768: } 8768: } 8768: else 8768: break; 8768: 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: else 8768: while (!__testeof) 8768: { 8768: 8768: 8768: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8768: { 8768: if (!__found_dec && !__found_sci) 8768: { 8768: 8768: 8768: if (__sep_pos) 8768: { 8768: __found_grouping += static_cast(__sep_pos); 8768: __sep_pos = 0; 8768: } 8768: else 8768: { 8768: 8768: 8768: __xtrc.clear(); 8768: break; 8768: } 8768: } 8768: else 8768: break; 8768: } 8768: else if (__c == __lc->_M_decimal_point) 8768: { 8768: if (!__found_dec && !__found_sci) 8768: { 8768: 8768: 8768: 8768: if (__found_grouping.size()) 8768: __found_grouping += static_cast(__sep_pos); 8768: __xtrc += '.'; 8768: __found_dec = true; 8768: } 8768: else 8768: break; 8768: } 8768: else 8768: { 8768: const char_type* __q = 8768: __traits_type::find(__lit_zero, 10, __c); 8768: if (__q) 8768: { 8768: __xtrc += '0' + (__q - __lit_zero); 8768: __found_mantissa = true; 8768: ++__sep_pos; 8768: } 8768: else if ((__c == __lit[__num_base::_S_ie] 8768: || __c == __lit[__num_base::_S_iE]) 8768: && !__found_sci && __found_mantissa) 8768: { 8768: 8768: if (__found_grouping.size() && !__found_dec) 8768: __found_grouping += static_cast(__sep_pos); 8768: __xtrc += 'e'; 8768: __found_sci = true; 8768: 8768: 8768: if (++__beg != __end) 8768: { 8768: __c = *__beg; 8768: const bool __plus = __c == __lit[__num_base::_S_iplus]; 8768: if ((__plus || __c == __lit[__num_base::_S_iminus]) 8768: && !(__lc->_M_use_grouping 8768: && __c == __lc->_M_thousands_sep) 8768: && !(__c == __lc->_M_decimal_point)) 8768: __xtrc += __plus ? '+' : '-'; 8768: else 8768: continue; 8768: } 8768: else 8768: { 8768: __testeof = true; 8768: break; 8768: } 8768: } 8768: else 8768: break; 8768: } 8768: 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: 8768: 8768: 8768: if (__found_grouping.size()) 8768: { 8768: 8768: if (!__found_dec && !__found_sci) 8768: __found_grouping += static_cast(__sep_pos); 8768: 8768: if (!std::__verify_grouping(__lc->_M_grouping, 8768: __lc->_M_grouping_size, 8768: __found_grouping)) 8768: __err = ios_base::failbit; 8768: } 8768: 8768: return __beg; 8768: } 8768: 8768: template 8768: template 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, 8768: ios_base::iostate& __err, _ValueT& __v) const 8768: { 8768: typedef char_traits<_CharT> __traits_type; 8768: using __gnu_cxx::__add_unsigned; 8768: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: __use_cache<__cache_type> __uc; 8768: const locale& __loc = __io._M_getloc(); 8768: const __cache_type* __lc = __uc(__loc); 8768: const _CharT* __lit = __lc->_M_atoms_in; 8768: char_type __c = char_type(); 8768: 8768: 8768: const ios_base::fmtflags __basefield = __io.flags() 8768: & ios_base::basefield; 8768: const bool __oct = __basefield == ios_base::oct; 8768: int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); 8768: 8768: 8768: bool __testeof = __beg == __end; 8768: 8768: 8768: bool __negative = false; 8768: if (!__testeof) 8768: { 8768: __c = *__beg; 8768: __negative = __c == __lit[__num_base::_S_iminus]; 8768: if ((__negative || __c == __lit[__num_base::_S_iplus]) 8768: && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8768: && !(__c == __lc->_M_decimal_point)) 8768: { 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: } 8768: 8768: 8768: 8768: bool __found_zero = false; 8768: int __sep_pos = 0; 8768: while (!__testeof) 8768: { 8768: if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8768: || __c == __lc->_M_decimal_point) 8768: break; 8768: else if (__c == __lit[__num_base::_S_izero] 8768: && (!__found_zero || __base == 10)) 8768: { 8768: __found_zero = true; 8768: ++__sep_pos; 8768: if (__basefield == 0) 8768: __base = 8; 8768: if (__base == 8) 8768: __sep_pos = 0; 8768: } 8768: else if (__found_zero 8768: && (__c == __lit[__num_base::_S_ix] 8768: || __c == __lit[__num_base::_S_iX])) 8768: { 8768: if (__basefield == 0) 8768: __base = 16; 8768: if (__base == 16) 8768: { 8768: __found_zero = false; 8768: __sep_pos = 0; 8768: } 8768: else 8768: break; 8768: } 8768: else 8768: break; 8768: 8768: if (++__beg != __end) 8768: { 8768: __c = *__beg; 8768: if (!__found_zero) 8768: break; 8768: } 8768: else 8768: __testeof = true; 8768: } 8768: 8768: 8768: 8768: const size_t __len = (__base == 16 ? __num_base::_S_iend 8768: - __num_base::_S_izero : __base); 8768: 8768: 8768: typedef __gnu_cxx::__numeric_traits<_ValueT> __num_traits; 8768: string __found_grouping; 8768: if (__lc->_M_use_grouping) 8768: __found_grouping.reserve(32); 8768: bool __testfail = false; 8768: bool __testoverflow = false; 8768: const __unsigned_type __max = 8768: (__negative && __num_traits::__is_signed) 8768: ? -static_cast<__unsigned_type>(__num_traits::__min) 8768: : __num_traits::__max; 8768: const __unsigned_type __smax = __max / __base; 8768: __unsigned_type __result = 0; 8768: int __digit = 0; 8768: const char_type* __lit_zero = __lit + __num_base::_S_izero; 8768: 8768: if (!__lc->_M_allocated) 8768: 8768: while (!__testeof) 8768: { 8768: __digit = _M_find(__lit_zero, __len, __c); 8768: if (__digit == -1) 8768: break; 8768: 8768: if (__result > __smax) 8768: __testoverflow = true; 8768: else 8768: { 8768: __result *= __base; 8768: __testoverflow |= __result > __max - __digit; 8768: __result += __digit; 8768: ++__sep_pos; 8768: } 8768: 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: else 8768: while (!__testeof) 8768: { 8768: 8768: 8768: if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) 8768: { 8768: 8768: 8768: if (__sep_pos) 8768: { 8768: __found_grouping += static_cast(__sep_pos); 8768: __sep_pos = 0; 8768: } 8768: else 8768: { 8768: __testfail = true; 8768: break; 8768: } 8768: } 8768: else if (__c == __lc->_M_decimal_point) 8768: break; 8768: else 8768: { 8768: const char_type* __q = 8768: __traits_type::find(__lit_zero, __len, __c); 8768: if (!__q) 8768: break; 8768: 8768: __digit = __q - __lit_zero; 8768: if (__digit > 15) 8768: __digit -= 6; 8768: if (__result > __smax) 8768: __testoverflow = true; 8768: else 8768: { 8768: __result *= __base; 8768: __testoverflow |= __result > __max - __digit; 8768: __result += __digit; 8768: ++__sep_pos; 8768: } 8768: } 8768: 8768: if (++__beg != __end) 8768: __c = *__beg; 8768: else 8768: __testeof = true; 8768: } 8768: 8768: 8768: 8768: if (__found_grouping.size()) 8768: { 8768: 8768: __found_grouping += static_cast(__sep_pos); 8768: 8768: if (!std::__verify_grouping(__lc->_M_grouping, 8768: __lc->_M_grouping_size, 8768: __found_grouping)) 8768: __err = ios_base::failbit; 8768: } 8768: 8768: 8768: 8768: if ((!__sep_pos && !__found_zero && !__found_grouping.size()) 8768: || __testfail) 8768: { 8768: __v = 0; 8768: __err = ios_base::failbit; 8768: } 8768: else if (__testoverflow) 8768: { 8768: if (__negative && __num_traits::__is_signed) 8768: __v = __num_traits::__min; 8768: else 8768: __v = __num_traits::__max; 8768: __err = ios_base::failbit; 8768: } 8768: else 8768: __v = __negative ? -__result : __result; 8768: 8768: if (__testeof) 8768: __err |= ios_base::eofbit; 8768: return __beg; 8768: } 8768: 8768: 8768: 8768: template 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, bool& __v) const 8768: { 8768: if (!(__io.flags() & ios_base::boolalpha)) 8768: { 8768: 8768: 8768: 8768: long __l = -1; 8768: __beg = _M_extract_int(__beg, __end, __io, __err, __l); 8768: if (__l == 0 || __l == 1) 8768: __v = bool(__l); 8768: else 8768: { 8768: 8768: 8768: __v = true; 8768: __err = ios_base::failbit; 8768: if (__beg == __end) 8768: __err |= ios_base::eofbit; 8768: } 8768: } 8768: else 8768: { 8768: 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: __use_cache<__cache_type> __uc; 8768: const locale& __loc = __io._M_getloc(); 8768: const __cache_type* __lc = __uc(__loc); 8768: 8768: bool __testf = true; 8768: bool __testt = true; 8768: bool __donef = __lc->_M_falsename_size == 0; 8768: bool __donet = __lc->_M_truename_size == 0; 8768: bool __testeof = false; 8768: size_t __n = 0; 8768: while (!__donef || !__donet) 8768: { 8768: if (__beg == __end) 8768: { 8768: __testeof = true; 8768: break; 8768: } 8768: 8768: const char_type __c = *__beg; 8768: 8768: if (!__donef) 8768: __testf = __c == __lc->_M_falsename[__n]; 8768: 8768: if (!__testf && __donet) 8768: break; 8768: 8768: if (!__donet) 8768: __testt = __c == __lc->_M_truename[__n]; 8768: 8768: if (!__testt && __donef) 8768: break; 8768: 8768: if (!__testt && !__testf) 8768: break; 8768: 8768: ++__n; 8768: ++__beg; 8768: 8768: __donef = !__testf || __n >= __lc->_M_falsename_size; 8768: __donet = !__testt || __n >= __lc->_M_truename_size; 8768: } 8768: if (__testf && __n == __lc->_M_falsename_size && __n) 8768: { 8768: __v = false; 8768: if (__testt && __n == __lc->_M_truename_size) 8768: __err = ios_base::failbit; 8768: else 8768: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8768: } 8768: else if (__testt && __n == __lc->_M_truename_size && __n) 8768: { 8768: __v = true; 8768: __err = __testeof ? ios_base::eofbit : ios_base::goodbit; 8768: } 8768: else 8768: { 8768: 8768: 8768: __v = false; 8768: __err = ios_base::failbit; 8768: if (__testeof) 8768: __err |= ios_base::eofbit; 8768: } 8768: } 8768: return __beg; 8768: } 8768: 8768: template 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, float& __v) const 8768: { 8768: string __xtrc; 8768: __xtrc.reserve(32); 8768: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8768: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8768: if (__beg == __end) 8768: __err |= ios_base::eofbit; 8768: return __beg; 8768: } 8768: 8768: template 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, double& __v) const 8768: { 8768: string __xtrc; 8768: __xtrc.reserve(32); 8768: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8768: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8768: if (__beg == __end) 8768: __err |= ios_base::eofbit; 8768: return __beg; 8768: } 8768: # 735 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: template 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, long double& __v) const 8768: { 8768: string __xtrc; 8768: __xtrc.reserve(32); 8768: __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); 8768: std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); 8768: if (__beg == __end) 8768: __err |= ios_base::eofbit; 8768: return __beg; 8768: } 8768: 8768: template 8768: _InIter 8768: num_get<_CharT, _InIter>:: 8768: do_get(iter_type __beg, iter_type __end, ios_base& __io, 8768: ios_base::iostate& __err, void*& __v) const 8768: { 8768: 8768: typedef ios_base::fmtflags fmtflags; 8768: const fmtflags __fmt = __io.flags(); 8768: __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); 8768: 8768: typedef __gnu_cxx::__conditional_type<(sizeof(void*) 8768: <= sizeof(unsigned long)), 8768: unsigned long, unsigned long long>::__type _UIntPtrType; 8768: 8768: _UIntPtrType __ul; 8768: __beg = _M_extract_int(__beg, __end, __io, __err, __ul); 8768: 8768: 8768: __io.flags(__fmt); 8768: 8768: __v = reinterpret_cast(__ul); 8768: return __beg; 8768: } 8768: 8768: 8768: 8768: template 8768: void 8768: num_put<_CharT, _OutIter>:: 8768: _M_pad(_CharT __fill, streamsize __w, ios_base& __io, 8768: _CharT* __new, const _CharT* __cs, int& __len) const 8768: { 8768: 8768: 8768: __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, 8768: __cs, __w, __len); 8768: __len = static_cast(__w); 8768: } 8768: 8768: 8768: 8768: template 8768: int 8768: __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, 8768: ios_base::fmtflags __flags, bool __dec) 8768: { 8768: _CharT* __buf = __bufend; 8768: if (__builtin_expect(__dec, true)) 8768: { 8768: 8768: do 8768: { 8768: *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; 8768: __v /= 10; 8768: } 8768: while (__v != 0); 8768: } 8768: else if ((__flags & ios_base::basefield) == ios_base::oct) 8768: { 8768: 8768: do 8768: { 8768: *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; 8768: __v >>= 3; 8768: } 8768: while (__v != 0); 8768: } 8768: else 8768: { 8768: 8768: const bool __uppercase = __flags & ios_base::uppercase; 8768: const int __case_offset = __uppercase ? __num_base::_S_oudigits 8768: : __num_base::_S_odigits; 8768: do 8768: { 8768: *--__buf = __lit[(__v & 0xf) + __case_offset]; 8768: __v >>= 4; 8768: } 8768: while (__v != 0); 8768: } 8768: return __bufend - __buf; 8768: } 8768: 8768: 8768: 8768: template 8768: void 8768: num_put<_CharT, _OutIter>:: 8768: _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, 8768: ios_base&, _CharT* __new, _CharT* __cs, int& __len) const 8768: { 8768: _CharT* __p = std::__add_grouping(__new, __sep, __grouping, 8768: __grouping_size, __cs, __cs + __len); 8768: __len = __p - __new; 8768: } 8768: 8768: template 8768: template 8768: _OutIter 8768: num_put<_CharT, _OutIter>:: 8768: _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, 8768: _ValueT __v) const 8768: { 8768: using __gnu_cxx::__add_unsigned; 8768: typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: __use_cache<__cache_type> __uc; 8768: const locale& __loc = __io._M_getloc(); 8768: const __cache_type* __lc = __uc(__loc); 8768: const _CharT* __lit = __lc->_M_atoms_out; 8768: const ios_base::fmtflags __flags = __io.flags(); 8768: 8768: 8768: const int __ilen = 5 * sizeof(_ValueT); 8768: _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __ilen)); 8768: 8768: 8768: 8768: const ios_base::fmtflags __basefield = __flags & ios_base::basefield; 8768: const bool __dec = (__basefield != ios_base::oct 8768: && __basefield != ios_base::hex); 8768: const __unsigned_type __u = ((__v > 0 || !__dec) 8768: ? __unsigned_type(__v) 8768: : -__unsigned_type(__v)); 8768: int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); 8768: __cs += __ilen - __len; 8768: 8768: 8768: if (__lc->_M_use_grouping) 8768: { 8768: 8768: 8768: _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * (__len + 1) 8768: * 2)); 8768: _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, 8768: __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); 8768: __cs = __cs2 + 2; 8768: } 8768: 8768: 8768: if (__builtin_expect(__dec, true)) 8768: { 8768: 8768: if (__v >= 0) 8768: { 8768: if (bool(__flags & ios_base::showpos) 8768: && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) 8768: *--__cs = __lit[__num_base::_S_oplus], ++__len; 8768: } 8768: else 8768: *--__cs = __lit[__num_base::_S_ominus], ++__len; 8768: } 8768: else if (bool(__flags & ios_base::showbase) && __v) 8768: { 8768: if (__basefield == ios_base::oct) 8768: *--__cs = __lit[__num_base::_S_odigits], ++__len; 8768: else 8768: { 8768: 8768: const bool __uppercase = __flags & ios_base::uppercase; 8768: *--__cs = __lit[__num_base::_S_ox + __uppercase]; 8768: 8768: *--__cs = __lit[__num_base::_S_odigits]; 8768: __len += 2; 8768: } 8768: } 8768: 8768: 8768: const streamsize __w = __io.width(); 8768: if (__w > static_cast(__len)) 8768: { 8768: _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __w)); 8768: _M_pad(__fill, __w, __io, __cs3, __cs, __len); 8768: __cs = __cs3; 8768: } 8768: __io.width(0); 8768: 8768: 8768: 8768: return std::__write(__s, __cs, __len); 8768: } 8768: 8768: template 8768: void 8768: num_put<_CharT, _OutIter>:: 8768: _M_group_float(const char* __grouping, size_t __grouping_size, 8768: _CharT __sep, const _CharT* __p, _CharT* __new, 8768: _CharT* __cs, int& __len) const 8768: { 8768: 8768: 8768: 8768: const int __declen = __p ? __p - __cs : __len; 8768: _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, 8768: __grouping_size, 8768: __cs, __cs + __declen); 8768: 8768: 8768: int __newlen = __p2 - __new; 8768: if (__p) 8768: { 8768: char_traits<_CharT>::copy(__p2, __p, __len - __declen); 8768: __newlen += __len - __declen; 8768: } 8768: __len = __newlen; 8768: } 8768: # 971 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: template 8768: template 8768: _OutIter 8768: num_put<_CharT, _OutIter>:: 8768: _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, 8768: _ValueT __v) const 8768: { 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: __use_cache<__cache_type> __uc; 8768: const locale& __loc = __io._M_getloc(); 8768: const __cache_type* __lc = __uc(__loc); 8768: 8768: 8768: const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); 8768: 8768: const int __max_digits = 8768: __gnu_cxx::__numeric_traits<_ValueT>::__digits10; 8768: 8768: 8768: int __len; 8768: 8768: char __fbuf[16]; 8768: __num_base::_S_format_float(__io, __fbuf, __mod); 8768: 8768: 8768: 8768: const bool __use_prec = 8768: (__io.flags() & ios_base::floatfield) != ios_base::floatfield; 8768: 8768: 8768: 8768: int __cs_size = __max_digits * 3; 8768: char* __cs = static_cast(__builtin_alloca(__cs_size)); 8768: if (__use_prec) 8768: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8768: __fbuf, __prec, __v); 8768: else 8768: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8768: __fbuf, __v); 8768: 8768: 8768: if (__len >= __cs_size) 8768: { 8768: __cs_size = __len + 1; 8768: __cs = static_cast(__builtin_alloca(__cs_size)); 8768: if (__use_prec) 8768: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8768: __fbuf, __prec, __v); 8768: else 8768: __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, 8768: __fbuf, __v); 8768: } 8768: # 1044 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: const ctype<_CharT>& __ctype = use_facet >(__loc); 8768: 8768: _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __len)); 8768: __ctype.widen(__cs, __cs + __len, __ws); 8768: 8768: 8768: _CharT* __wp = 0; 8768: const char* __p = char_traits::find(__cs, __len, '.'); 8768: if (__p) 8768: { 8768: __wp = __ws + (__p - __cs); 8768: *__wp = __lc->_M_decimal_point; 8768: } 8768: 8768: 8768: 8768: 8768: if (__lc->_M_use_grouping 8768: && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' 8768: && __cs[1] >= '0' && __cs[2] >= '0'))) 8768: { 8768: 8768: 8768: _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __len * 2)); 8768: 8768: streamsize __off = 0; 8768: if (__cs[0] == '-' || __cs[0] == '+') 8768: { 8768: __off = 1; 8768: __ws2[0] = __ws[0]; 8768: __len -= 1; 8768: } 8768: 8768: _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, 8768: __lc->_M_thousands_sep, __wp, __ws2 + __off, 8768: __ws + __off, __len); 8768: __len += __off; 8768: 8768: __ws = __ws2; 8768: } 8768: 8768: 8768: const streamsize __w = __io.width(); 8768: if (__w > static_cast(__len)) 8768: { 8768: _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __w)); 8768: _M_pad(__fill, __w, __io, __ws3, __ws, __len); 8768: __ws = __ws3; 8768: } 8768: __io.width(0); 8768: 8768: 8768: 8768: return std::__write(__s, __ws, __len); 8768: } 8768: 8768: template 8768: _OutIter 8768: num_put<_CharT, _OutIter>:: 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const 8768: { 8768: const ios_base::fmtflags __flags = __io.flags(); 8768: if ((__flags & ios_base::boolalpha) == 0) 8768: { 8768: const long __l = __v; 8768: __s = _M_insert_int(__s, __io, __fill, __l); 8768: } 8768: else 8768: { 8768: typedef __numpunct_cache<_CharT> __cache_type; 8768: __use_cache<__cache_type> __uc; 8768: const locale& __loc = __io._M_getloc(); 8768: const __cache_type* __lc = __uc(__loc); 8768: 8768: const _CharT* __name = __v ? __lc->_M_truename 8768: : __lc->_M_falsename; 8768: int __len = __v ? __lc->_M_truename_size 8768: : __lc->_M_falsename_size; 8768: 8768: const streamsize __w = __io.width(); 8768: if (__w > static_cast(__len)) 8768: { 8768: const streamsize __plen = __w - __len; 8768: _CharT* __ps 8768: = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) 8768: * __plen)); 8768: 8768: char_traits<_CharT>::assign(__ps, __plen, __fill); 8768: __io.width(0); 8768: 8768: if ((__flags & ios_base::adjustfield) == ios_base::left) 8768: { 8768: __s = std::__write(__s, __name, __len); 8768: __s = std::__write(__s, __ps, __plen); 8768: } 8768: else 8768: { 8768: __s = std::__write(__s, __ps, __plen); 8768: __s = std::__write(__s, __name, __len); 8768: } 8768: return __s; 8768: } 8768: __io.width(0); 8768: __s = std::__write(__s, __name, __len); 8768: } 8768: return __s; 8768: } 8768: 8768: template 8768: _OutIter 8768: num_put<_CharT, _OutIter>:: 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const 8768: { return _M_insert_float(__s, __io, __fill, char(), __v); } 8768: # 1169 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: template 8768: _OutIter 8768: num_put<_CharT, _OutIter>:: 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, 8768: long double __v) const 8768: { return _M_insert_float(__s, __io, __fill, 'L', __v); } 8768: 8768: template 8768: _OutIter 8768: num_put<_CharT, _OutIter>:: 8768: do_put(iter_type __s, ios_base& __io, char_type __fill, 8768: const void* __v) const 8768: { 8768: const ios_base::fmtflags __flags = __io.flags(); 8768: const ios_base::fmtflags __fmt = ~(ios_base::basefield 8768: | ios_base::uppercase); 8768: __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); 8768: 8768: typedef __gnu_cxx::__conditional_type<(sizeof(const void*) 8768: <= sizeof(unsigned long)), 8768: unsigned long, unsigned long long>::__type _UIntPtrType; 8768: 8768: __s = _M_insert_int(__s, __io, __fill, 8768: reinterpret_cast<_UIntPtrType>(__v)); 8768: __io.flags(__flags); 8768: return __s; 8768: } 8768: 8768: 8768: # 1206 "/usr/include/c++/8/bits/locale_facets.tcc" 3 8768: template 8768: void 8768: __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, 8768: _CharT* __news, const _CharT* __olds, 8768: streamsize __newlen, streamsize __oldlen) 8768: { 8768: const size_t __plen = static_cast(__newlen - __oldlen); 8768: const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; 8768: 8768: 8768: if (__adjust == ios_base::left) 8768: { 8768: _Traits::copy(__news, __olds, __oldlen); 8768: _Traits::assign(__news + __oldlen, __plen, __fill); 8768: return; 8768: } 8768: 8768: size_t __mod = 0; 8768: if (__adjust == ios_base::internal) 8768: { 8768: 8768: 8768: 8768: const locale& __loc = __io._M_getloc(); 8768: const ctype<_CharT>& __ctype = use_facet >(__loc); 8768: 8768: if (__ctype.widen('-') == __olds[0] 8768: || __ctype.widen('+') == __olds[0]) 8768: { 8768: __news[0] = __olds[0]; 8768: __mod = 1; 8768: ++__news; 8768: } 8768: else if (__ctype.widen('0') == __olds[0] 8768: && __oldlen > 1 8768: && (__ctype.widen('x') == __olds[1] 8768: || __ctype.widen('X') == __olds[1])) 8768: { 8768: __news[0] = __olds[0]; 8768: __news[1] = __olds[1]; 8768: __mod = 2; 8768: __news += 2; 8768: } 8768: 8768: } 8768: _Traits::assign(__news, __plen, __fill); 8768: _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); 8768: } 8768: 8768: template 8768: _CharT* 8768: __add_grouping(_CharT* __s, _CharT __sep, 8768: const char* __gbeg, size_t __gsize, 8768: const _CharT* __first, const _CharT* __last) 8768: { 8768: size_t __idx = 0; 8768: size_t __ctr = 0; 8768: 8768: while (__last - __first > __gbeg[__idx] 8768: && static_cast(__gbeg[__idx]) > 0 8768: && __gbeg[__idx] != __gnu_cxx::__numeric_traits::__max) 8768: { 8768: __last -= __gbeg[__idx]; 8768: __idx < __gsize - 1 ? ++__idx : ++__ctr; 8768: } 8768: 8768: while (__first != __last) 8768: *__s++ = *__first++; 8768: 8768: while (__ctr--) 8768: { 8768: *__s++ = __sep; 8768: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8768: *__s++ = *__first++; 8768: } 8768: 8768: while (__idx--) 8768: { 8768: *__s++ = __sep; 8768: for (char __i = __gbeg[__idx]; __i > 0; --__i) 8768: *__s++ = *__first++; 8768: } 8768: 8768: return __s; 8768: } 8768: 8768: 8768: 8768: 8768: extern template class __cxx11:: numpunct; 8768: extern template class __cxx11:: numpunct_byname; 8768: extern template class num_get; 8768: extern template class num_put; 8768: extern template class ctype_byname; 8768: 8768: extern template 8768: const ctype& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: const numpunct& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: const num_put& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: const num_get& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: 8768: extern template class __cxx11:: numpunct; 8768: extern template class __cxx11:: numpunct_byname; 8768: extern template class num_get; 8768: extern template class num_put; 8768: extern template class ctype_byname; 8768: 8768: extern template 8768: const ctype& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: const numpunct& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: const num_put& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: const num_get& 8768: use_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: extern template 8768: bool 8768: has_facet >(const locale&); 8768: 8768: 8768: 8768: 8768: } 8768: # 2652 "/usr/include/c++/8/bits/locale_facets.h" 2 3 8768: # 38 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: inline const _Facet& 8768: __check_facet(const _Facet* __f) 8768: { 8768: if (!__f) 8768: __throw_bad_cast(); 8768: return *__f; 8768: } 8768: # 66 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: template 8768: class basic_ios : public ios_base 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef typename _Traits::int_type int_type; 8768: typedef typename _Traits::pos_type pos_type; 8768: typedef typename _Traits::off_type off_type; 8768: typedef _Traits traits_type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef ctype<_CharT> __ctype_type; 8768: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8768: __num_put_type; 8768: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8768: __num_get_type; 8768: 8768: 8768: 8768: protected: 8768: basic_ostream<_CharT, _Traits>* _M_tie; 8768: mutable char_type _M_fill; 8768: mutable bool _M_fill_init; 8768: basic_streambuf<_CharT, _Traits>* _M_streambuf; 8768: 8768: 8768: const __ctype_type* _M_ctype; 8768: 8768: const __num_put_type* _M_num_put; 8768: 8768: const __num_get_type* _M_num_get; 8768: 8768: public: 8768: # 117 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: explicit operator bool() const 8768: { return !this->fail(); } 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: operator!() const 8768: { return this->fail(); } 8768: # 136 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: iostate 8768: rdstate() const 8768: { return _M_streambuf_state; } 8768: # 147 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: void 8768: clear(iostate __state = goodbit); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: setstate(iostate __state) 8768: { this->clear(this->rdstate() | __state); } 8768: 8768: 8768: 8768: 8768: void 8768: _M_setstate(iostate __state) 8768: { 8768: 8768: 8768: _M_streambuf_state |= __state; 8768: if (this->exceptions() & __state) 8768: throw; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: good() const 8768: { return this->rdstate() == 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: eof() const 8768: { return (this->rdstate() & eofbit) != 0; } 8768: # 200 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: bool 8768: fail() const 8768: { return (this->rdstate() & (badbit | failbit)) != 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: bad() const 8768: { return (this->rdstate() & badbit) != 0; } 8768: # 221 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: iostate 8768: exceptions() const 8768: { return _M_exception; } 8768: # 256 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: void 8768: exceptions(iostate __except) 8768: { 8768: _M_exception = __except; 8768: this->clear(_M_streambuf_state); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: basic_ios(basic_streambuf<_CharT, _Traits>* __sb) 8768: : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), 8768: _M_ctype(0), _M_num_put(0), _M_num_get(0) 8768: { this->init(__sb); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual 8768: ~basic_ios() { } 8768: # 294 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: basic_ostream<_CharT, _Traits>* 8768: tie() const 8768: { return _M_tie; } 8768: # 306 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: basic_ostream<_CharT, _Traits>* 8768: tie(basic_ostream<_CharT, _Traits>* __tiestr) 8768: { 8768: basic_ostream<_CharT, _Traits>* __old = _M_tie; 8768: _M_tie = __tiestr; 8768: return __old; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_streambuf<_CharT, _Traits>* 8768: rdbuf() const 8768: { return _M_streambuf; } 8768: # 346 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: basic_streambuf<_CharT, _Traits>* 8768: rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 8768: # 360 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: basic_ios& 8768: copyfmt(const basic_ios& __rhs); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: char_type 8768: fill() const 8768: { 8768: if (!_M_fill_init) 8768: { 8768: _M_fill = this->widen(' '); 8768: _M_fill_init = true; 8768: } 8768: return _M_fill; 8768: } 8768: # 389 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: char_type 8768: fill(char_type __ch) 8768: { 8768: char_type __old = this->fill(); 8768: _M_fill = __ch; 8768: return __old; 8768: } 8768: # 409 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: locale 8768: imbue(const locale& __loc); 8768: # 429 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: char 8768: narrow(char_type __c, char __dfault) const 8768: { return __check_facet(_M_ctype).narrow(__c, __dfault); } 8768: # 448 "/usr/include/c++/8/bits/basic_ios.h" 3 8768: char_type 8768: widen(char __c) const 8768: { return __check_facet(_M_ctype).widen(__c); } 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: basic_ios() 8768: : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), 8768: _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) 8768: { } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: init(basic_streambuf<_CharT, _Traits>* __sb); 8768: 8768: 8768: basic_ios(const basic_ios&) = delete; 8768: basic_ios& operator=(const basic_ios&) = delete; 8768: 8768: void 8768: move(basic_ios& __rhs) 8768: { 8768: ios_base::_M_move(__rhs); 8768: _M_cache_locale(_M_ios_locale); 8768: this->tie(__rhs.tie(nullptr)); 8768: _M_fill = __rhs._M_fill; 8768: _M_fill_init = __rhs._M_fill_init; 8768: _M_streambuf = nullptr; 8768: } 8768: 8768: void 8768: move(basic_ios&& __rhs) 8768: { this->move(__rhs); } 8768: 8768: void 8768: swap(basic_ios& __rhs) noexcept 8768: { 8768: ios_base::_M_swap(__rhs); 8768: _M_cache_locale(_M_ios_locale); 8768: __rhs._M_cache_locale(__rhs._M_ios_locale); 8768: std::swap(_M_tie, __rhs._M_tie); 8768: std::swap(_M_fill, __rhs._M_fill); 8768: std::swap(_M_fill_init, __rhs._M_fill_init); 8768: } 8768: 8768: void 8768: set_rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8768: { _M_streambuf = __sb; } 8768: 8768: 8768: void 8768: _M_cache_locale(const locale& __loc); 8768: }; 8768: 8768: 8768: } 8768: 8768: # 1 "/usr/include/c++/8/bits/basic_ios.tcc" 1 3 8768: # 33 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: void 8768: basic_ios<_CharT, _Traits>::clear(iostate __state) 8768: { 8768: if (this->rdbuf()) 8768: _M_streambuf_state = __state; 8768: else 8768: _M_streambuf_state = __state | badbit; 8768: if (this->exceptions() & this->rdstate()) 8768: __throw_ios_failure(("basic_ios::clear")); 8768: } 8768: 8768: template 8768: basic_streambuf<_CharT, _Traits>* 8768: basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) 8768: { 8768: basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; 8768: _M_streambuf = __sb; 8768: this->clear(); 8768: return __old; 8768: } 8768: 8768: template 8768: basic_ios<_CharT, _Traits>& 8768: basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) 8768: { 8768: 8768: 8768: if (this != &__rhs) 8768: { 8768: 8768: 8768: 8768: 8768: _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? 8768: _M_local_word : new _Words[__rhs._M_word_size]; 8768: 8768: 8768: _Callback_list* __cb = __rhs._M_callbacks; 8768: if (__cb) 8768: __cb->_M_add_reference(); 8768: _M_call_callbacks(erase_event); 8768: if (_M_word != _M_local_word) 8768: { 8768: delete [] _M_word; 8768: _M_word = 0; 8768: } 8768: _M_dispose_callbacks(); 8768: 8768: 8768: _M_callbacks = __cb; 8768: for (int __i = 0; __i < __rhs._M_word_size; ++__i) 8768: __words[__i] = __rhs._M_word[__i]; 8768: _M_word = __words; 8768: _M_word_size = __rhs._M_word_size; 8768: 8768: this->flags(__rhs.flags()); 8768: this->width(__rhs.width()); 8768: this->precision(__rhs.precision()); 8768: this->tie(__rhs.tie()); 8768: this->fill(__rhs.fill()); 8768: _M_ios_locale = __rhs.getloc(); 8768: _M_cache_locale(_M_ios_locale); 8768: 8768: _M_call_callbacks(copyfmt_event); 8768: 8768: 8768: this->exceptions(__rhs.exceptions()); 8768: } 8768: return *this; 8768: } 8768: 8768: 8768: template 8768: locale 8768: basic_ios<_CharT, _Traits>::imbue(const locale& __loc) 8768: { 8768: locale __old(this->getloc()); 8768: ios_base::imbue(__loc); 8768: _M_cache_locale(__loc); 8768: if (this->rdbuf() != 0) 8768: this->rdbuf()->pubimbue(__loc); 8768: return __old; 8768: } 8768: 8768: template 8768: void 8768: basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) 8768: { 8768: 8768: ios_base::_M_init(); 8768: 8768: 8768: _M_cache_locale(_M_ios_locale); 8768: # 146 "/usr/include/c++/8/bits/basic_ios.tcc" 3 8768: _M_fill = _CharT(); 8768: _M_fill_init = false; 8768: 8768: _M_tie = 0; 8768: _M_exception = goodbit; 8768: _M_streambuf = __sb; 8768: _M_streambuf_state = __sb ? goodbit : badbit; 8768: } 8768: 8768: template 8768: void 8768: basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) 8768: { 8768: if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) 8768: _M_ctype = std::__addressof(use_facet<__ctype_type>(__loc)); 8768: else 8768: _M_ctype = 0; 8768: 8768: if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) 8768: _M_num_put = std::__addressof(use_facet<__num_put_type>(__loc)); 8768: else 8768: _M_num_put = 0; 8768: 8768: if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) 8768: _M_num_get = std::__addressof(use_facet<__num_get_type>(__loc)); 8768: else 8768: _M_num_get = 0; 8768: } 8768: 8768: 8768: 8768: 8768: extern template class basic_ios; 8768: 8768: 8768: extern template class basic_ios; 8768: 8768: 8768: 8768: 8768: } 8768: # 517 "/usr/include/c++/8/bits/basic_ios.h" 2 3 8768: # 45 "/usr/include/c++/8/ios" 2 3 8768: # 39 "/usr/include/c++/8/ostream" 2 3 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 57 "/usr/include/c++/8/ostream" 3 8768: template 8768: class basic_ostream : virtual public basic_ios<_CharT, _Traits> 8768: { 8768: public: 8768: 8768: typedef _CharT char_type; 8768: typedef typename _Traits::int_type int_type; 8768: typedef typename _Traits::pos_type pos_type; 8768: typedef typename _Traits::off_type off_type; 8768: typedef _Traits traits_type; 8768: 8768: 8768: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8768: typedef basic_ios<_CharT, _Traits> __ios_type; 8768: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8768: typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > 8768: __num_put_type; 8768: typedef ctype<_CharT> __ctype_type; 8768: # 83 "/usr/include/c++/8/ostream" 3 8768: explicit 8768: basic_ostream(__streambuf_type* __sb) 8768: { this->init(__sb); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual 8768: ~basic_ostream() { } 8768: 8768: 8768: class sentry; 8768: friend class sentry; 8768: # 107 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: operator<<(__ostream_type& (*__pf)(__ostream_type&)) 8768: { 8768: 8768: 8768: 8768: return __pf(*this); 8768: } 8768: 8768: __ostream_type& 8768: operator<<(__ios_type& (*__pf)(__ios_type&)) 8768: { 8768: 8768: 8768: 8768: __pf(*this); 8768: return *this; 8768: } 8768: 8768: __ostream_type& 8768: operator<<(ios_base& (*__pf) (ios_base&)) 8768: { 8768: 8768: 8768: 8768: __pf(*this); 8768: return *this; 8768: } 8768: # 165 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: operator<<(long __n) 8768: { return _M_insert(__n); } 8768: 8768: __ostream_type& 8768: operator<<(unsigned long __n) 8768: { return _M_insert(__n); } 8768: 8768: __ostream_type& 8768: operator<<(bool __n) 8768: { return _M_insert(__n); } 8768: 8768: __ostream_type& 8768: operator<<(short __n); 8768: 8768: __ostream_type& 8768: operator<<(unsigned short __n) 8768: { 8768: 8768: 8768: return _M_insert(static_cast(__n)); 8768: } 8768: 8768: __ostream_type& 8768: operator<<(int __n); 8768: 8768: __ostream_type& 8768: operator<<(unsigned int __n) 8768: { 8768: 8768: 8768: return _M_insert(static_cast(__n)); 8768: } 8768: 8768: 8768: __ostream_type& 8768: operator<<(long long __n) 8768: { return _M_insert(__n); } 8768: 8768: __ostream_type& 8768: operator<<(unsigned long long __n) 8768: { return _M_insert(__n); } 8768: # 219 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: operator<<(double __f) 8768: { return _M_insert(__f); } 8768: 8768: __ostream_type& 8768: operator<<(float __f) 8768: { 8768: 8768: 8768: return _M_insert(static_cast(__f)); 8768: } 8768: 8768: __ostream_type& 8768: operator<<(long double __f) 8768: { return _M_insert(__f); } 8768: # 244 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: operator<<(const void* __p) 8768: { return _M_insert(__p); } 8768: # 269 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: operator<<(__streambuf_type* __sb); 8768: # 302 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: put(char_type __c); 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: _M_write(const char_type* __s, streamsize __n) 8768: { 8768: const streamsize __put = this->rdbuf()->sputn(__s, __n); 8768: if (__put != __n) 8768: this->setstate(ios_base::badbit); 8768: } 8768: # 334 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: write(const char_type* __s, streamsize __n); 8768: # 347 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: flush(); 8768: # 357 "/usr/include/c++/8/ostream" 3 8768: pos_type 8768: tellp(); 8768: # 368 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: seekp(pos_type); 8768: # 380 "/usr/include/c++/8/ostream" 3 8768: __ostream_type& 8768: seekp(off_type, ios_base::seekdir); 8768: 8768: protected: 8768: basic_ostream() 8768: { this->init(0); } 8768: 8768: 8768: 8768: basic_ostream(basic_iostream<_CharT, _Traits>&) { } 8768: 8768: basic_ostream(const basic_ostream&) = delete; 8768: 8768: basic_ostream(basic_ostream&& __rhs) 8768: : __ios_type() 8768: { __ios_type::move(__rhs); } 8768: 8768: 8768: 8768: basic_ostream& operator=(const basic_ostream&) = delete; 8768: 8768: basic_ostream& 8768: operator=(basic_ostream&& __rhs) 8768: { 8768: swap(__rhs); 8768: return *this; 8768: } 8768: 8768: void 8768: swap(basic_ostream& __rhs) 8768: { __ios_type::swap(__rhs); } 8768: 8768: 8768: template 8768: __ostream_type& 8768: _M_insert(_ValueT __v); 8768: }; 8768: # 425 "/usr/include/c++/8/ostream" 3 8768: template 8768: class basic_ostream<_CharT, _Traits>::sentry 8768: { 8768: 8768: bool _M_ok; 8768: basic_ostream<_CharT, _Traits>& _M_os; 8768: 8768: public: 8768: # 444 "/usr/include/c++/8/ostream" 3 8768: explicit 8768: sentry(basic_ostream<_CharT, _Traits>& __os); 8768: # 454 "/usr/include/c++/8/ostream" 3 8768: ~sentry() 8768: { 8768: 8768: if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 8768: { 8768: 8768: if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) 8768: _M_os.setstate(ios_base::badbit); 8768: } 8768: } 8768: # 473 "/usr/include/c++/8/ostream" 3 8768: explicit 8768: 8768: operator bool() const 8768: { return _M_ok; } 8768: }; 8768: # 495 "/usr/include/c++/8/ostream" 3 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) 8768: { return __ostream_insert(__out, &__c, 1); } 8768: 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) 8768: { return (__out << __out.widen(__c)); } 8768: 8768: 8768: template 8768: inline basic_ostream& 8768: operator<<(basic_ostream& __out, char __c) 8768: { return __ostream_insert(__out, &__c, 1); } 8768: 8768: 8768: template 8768: inline basic_ostream& 8768: operator<<(basic_ostream& __out, signed char __c) 8768: { return (__out << static_cast(__c)); } 8768: 8768: template 8768: inline basic_ostream& 8768: operator<<(basic_ostream& __out, unsigned char __c) 8768: { return (__out << static_cast(__c)); } 8768: # 537 "/usr/include/c++/8/ostream" 3 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) 8768: { 8768: if (!__s) 8768: __out.setstate(ios_base::badbit); 8768: else 8768: __ostream_insert(__out, __s, 8768: static_cast(_Traits::length(__s))); 8768: return __out; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits> & 8768: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); 8768: 8768: 8768: template 8768: inline basic_ostream& 8768: operator<<(basic_ostream& __out, const char* __s) 8768: { 8768: if (!__s) 8768: __out.setstate(ios_base::badbit); 8768: else 8768: __ostream_insert(__out, __s, 8768: static_cast(_Traits::length(__s))); 8768: return __out; 8768: } 8768: 8768: 8768: template 8768: inline basic_ostream& 8768: operator<<(basic_ostream& __out, const signed char* __s) 8768: { return (__out << reinterpret_cast(__s)); } 8768: 8768: template 8768: inline basic_ostream & 8768: operator<<(basic_ostream& __out, const unsigned char* __s) 8768: { return (__out << reinterpret_cast(__s)); } 8768: # 588 "/usr/include/c++/8/ostream" 3 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: endl(basic_ostream<_CharT, _Traits>& __os) 8768: { return flush(__os.put(__os.widen('\n'))); } 8768: # 600 "/usr/include/c++/8/ostream" 3 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: ends(basic_ostream<_CharT, _Traits>& __os) 8768: { return __os.put(_CharT()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline basic_ostream<_CharT, _Traits>& 8768: flush(basic_ostream<_CharT, _Traits>& __os) 8768: { return __os.flush(); } 8768: 8768: 8768: template 8768: basic_ostream<_Ch, _Up>& 8768: __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); 8768: 8768: template 8768: struct __is_convertible_to_basic_ostream_impl 8768: { 8768: using __ostream_type = void; 8768: }; 8768: 8768: template 8768: using __do_is_convertible_to_basic_ostream_impl = 8768: decltype(__is_convertible_to_basic_ostream_test 8768: (declval::type*>())); 8768: 8768: template 8768: struct __is_convertible_to_basic_ostream_impl 8768: <_Tp, 8768: __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> 8768: { 8768: using __ostream_type = 8768: __do_is_convertible_to_basic_ostream_impl<_Tp>; 8768: }; 8768: 8768: template 8768: struct __is_convertible_to_basic_ostream 8768: : __is_convertible_to_basic_ostream_impl<_Tp> 8768: { 8768: public: 8768: using type = __not_::__ostream_type>>; 8768: constexpr static bool value = type::value; 8768: }; 8768: 8768: template 8768: struct __is_insertable : false_type {}; 8768: 8768: template 8768: struct __is_insertable<_Ostream, _Tp, 8768: __void_t() 8768: << declval())>> 8768: : true_type {}; 8768: 8768: template 8768: using __rvalue_ostream_type = 8768: typename __is_convertible_to_basic_ostream< 8768: _Ostream>::__ostream_type; 8768: # 674 "/usr/include/c++/8/ostream" 3 8768: template 8768: inline 8768: typename enable_if<__and_<__not_>, 8768: __is_convertible_to_basic_ostream<_Ostream>, 8768: __is_insertable< 8768: __rvalue_ostream_type<_Ostream>, 8768: const _Tp&>>::value, 8768: __rvalue_ostream_type<_Ostream>>::type 8768: operator<<(_Ostream&& __os, const _Tp& __x) 8768: { 8768: __rvalue_ostream_type<_Ostream> __ret_os = __os; 8768: __ret_os << __x; 8768: return __ret_os; 8768: } 8768: 8768: 8768: 8768: } 8768: 8768: # 1 "/usr/include/c++/8/bits/ostream.tcc" 1 3 8768: # 37 "/usr/include/c++/8/bits/ostream.tcc" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/ostream.tcc" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>::sentry:: 8768: sentry(basic_ostream<_CharT, _Traits>& __os) 8768: : _M_ok(false), _M_os(__os) 8768: { 8768: 8768: if (__os.tie() && __os.good()) 8768: __os.tie()->flush(); 8768: 8768: if (__os.good()) 8768: _M_ok = true; 8768: else 8768: __os.setstate(ios_base::failbit); 8768: } 8768: 8768: template 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: _M_insert(_ValueT __v) 8768: { 8768: sentry __cerb(*this); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const __num_put_type& __np = __check_facet(this->_M_num_put); 8768: if (__np.put(*this, *this, this->fill(), __v).failed()) 8768: __err |= ios_base::badbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: operator<<(short __n) 8768: { 8768: 8768: 8768: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8768: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8768: return _M_insert(static_cast(static_cast(__n))); 8768: else 8768: return _M_insert(static_cast(__n)); 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: operator<<(int __n) 8768: { 8768: 8768: 8768: const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; 8768: if (__fmt == ios_base::oct || __fmt == ios_base::hex) 8768: return _M_insert(static_cast(static_cast(__n))); 8768: else 8768: return _M_insert(static_cast(__n)); 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: operator<<(__streambuf_type* __sbin) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this); 8768: if (__cerb && __sbin) 8768: { 8768: try 8768: { 8768: if (!__copy_streambufs(__sbin, this->rdbuf())) 8768: __err |= ios_base::failbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::failbit); } 8768: } 8768: else if (!__sbin) 8768: __err |= ios_base::badbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: put(char_type __c) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: sentry __cerb(*this); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const int_type __put = this->rdbuf()->sputc(__c); 8768: if (traits_type::eq_int_type(__put, traits_type::eof())) 8768: __err |= ios_base::badbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: write(const _CharT* __s, streamsize __n) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: sentry __cerb(*this); 8768: if (__cerb) 8768: { 8768: try 8768: { _M_write(__s, __n); } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: flush() 8768: { 8768: 8768: 8768: 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: if (this->rdbuf() && this->rdbuf()->pubsync() == -1) 8768: __err |= ios_base::badbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: typename basic_ostream<_CharT, _Traits>::pos_type 8768: basic_ostream<_CharT, _Traits>:: 8768: tellp() 8768: { 8768: pos_type __ret = pos_type(-1); 8768: try 8768: { 8768: if (!this->fail()) 8768: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: return __ret; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: seekp(pos_type __pos) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: if (!this->fail()) 8768: { 8768: 8768: 8768: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8768: ios_base::out); 8768: 8768: 8768: if (__p == pos_type(off_type(-1))) 8768: __err |= ios_base::failbit; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: basic_ostream<_CharT, _Traits>:: 8768: seekp(off_type __off, ios_base::seekdir __dir) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: if (!this->fail()) 8768: { 8768: 8768: 8768: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8768: ios_base::out); 8768: 8768: 8768: if (__p == pos_type(off_type(-1))) 8768: __err |= ios_base::failbit; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_ostream<_CharT, _Traits>& 8768: operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) 8768: { 8768: if (!__s) 8768: __out.setstate(ios_base::badbit); 8768: else 8768: { 8768: 8768: 8768: const size_t __clen = char_traits::length(__s); 8768: try 8768: { 8768: struct __ptr_guard 8768: { 8768: _CharT *__p; 8768: __ptr_guard (_CharT *__ip): __p(__ip) { } 8768: ~__ptr_guard() { delete[] __p; } 8768: _CharT* __get() { return __p; } 8768: } __pg (new _CharT[__clen]); 8768: 8768: _CharT *__ws = __pg.__get(); 8768: for (size_t __i = 0; __i < __clen; ++__i) 8768: __ws[__i] = __out.widen(__s[__i]); 8768: __ostream_insert(__out, __ws, __clen); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __out._M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { __out._M_setstate(ios_base::badbit); } 8768: } 8768: return __out; 8768: } 8768: 8768: 8768: 8768: 8768: extern template class basic_ostream; 8768: extern template ostream& endl(ostream&); 8768: extern template ostream& ends(ostream&); 8768: extern template ostream& flush(ostream&); 8768: extern template ostream& operator<<(ostream&, char); 8768: extern template ostream& operator<<(ostream&, unsigned char); 8768: extern template ostream& operator<<(ostream&, signed char); 8768: extern template ostream& operator<<(ostream&, const char*); 8768: extern template ostream& operator<<(ostream&, const unsigned char*); 8768: extern template ostream& operator<<(ostream&, const signed char*); 8768: 8768: extern template ostream& ostream::_M_insert(long); 8768: extern template ostream& ostream::_M_insert(unsigned long); 8768: extern template ostream& ostream::_M_insert(bool); 8768: 8768: extern template ostream& ostream::_M_insert(long long); 8768: extern template ostream& ostream::_M_insert(unsigned long long); 8768: 8768: extern template ostream& ostream::_M_insert(double); 8768: extern template ostream& ostream::_M_insert(long double); 8768: extern template ostream& ostream::_M_insert(const void*); 8768: 8768: 8768: extern template class basic_ostream; 8768: extern template wostream& endl(wostream&); 8768: extern template wostream& ends(wostream&); 8768: extern template wostream& flush(wostream&); 8768: extern template wostream& operator<<(wostream&, wchar_t); 8768: extern template wostream& operator<<(wostream&, char); 8768: extern template wostream& operator<<(wostream&, const wchar_t*); 8768: extern template wostream& operator<<(wostream&, const char*); 8768: 8768: extern template wostream& wostream::_M_insert(long); 8768: extern template wostream& wostream::_M_insert(unsigned long); 8768: extern template wostream& wostream::_M_insert(bool); 8768: 8768: extern template wostream& wostream::_M_insert(long long); 8768: extern template wostream& wostream::_M_insert(unsigned long long); 8768: 8768: extern template wostream& wostream::_M_insert(double); 8768: extern template wostream& wostream::_M_insert(long double); 8768: extern template wostream& wostream::_M_insert(const void*); 8768: 8768: 8768: 8768: 8768: } 8768: # 694 "/usr/include/c++/8/ostream" 2 3 8768: # 65 "/usr/include/c++/8/iterator" 2 3 8768: # 1 "/usr/include/c++/8/istream" 1 3 8768: # 36 "/usr/include/c++/8/istream" 3 8768: 8768: # 37 "/usr/include/c++/8/istream" 3 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 57 "/usr/include/c++/8/istream" 3 8768: template 8768: class basic_istream : virtual public basic_ios<_CharT, _Traits> 8768: { 8768: public: 8768: 8768: typedef _CharT char_type; 8768: typedef typename _Traits::int_type int_type; 8768: typedef typename _Traits::pos_type pos_type; 8768: typedef typename _Traits::off_type off_type; 8768: typedef _Traits traits_type; 8768: 8768: 8768: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8768: typedef basic_ios<_CharT, _Traits> __ios_type; 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > 8768: __num_get_type; 8768: typedef ctype<_CharT> __ctype_type; 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: streamsize _M_gcount; 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: basic_istream(__streambuf_type* __sb) 8768: : _M_gcount(streamsize(0)) 8768: { this->init(__sb); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual 8768: ~basic_istream() 8768: { _M_gcount = streamsize(0); } 8768: 8768: 8768: class sentry; 8768: friend class sentry; 8768: # 119 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: operator>>(__istream_type& (*__pf)(__istream_type&)) 8768: { return __pf(*this); } 8768: 8768: __istream_type& 8768: operator>>(__ios_type& (*__pf)(__ios_type&)) 8768: { 8768: __pf(*this); 8768: return *this; 8768: } 8768: 8768: __istream_type& 8768: operator>>(ios_base& (*__pf)(ios_base&)) 8768: { 8768: __pf(*this); 8768: return *this; 8768: } 8768: # 167 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: operator>>(bool& __n) 8768: { return _M_extract(__n); } 8768: 8768: __istream_type& 8768: operator>>(short& __n); 8768: 8768: __istream_type& 8768: operator>>(unsigned short& __n) 8768: { return _M_extract(__n); } 8768: 8768: __istream_type& 8768: operator>>(int& __n); 8768: 8768: __istream_type& 8768: operator>>(unsigned int& __n) 8768: { return _M_extract(__n); } 8768: 8768: __istream_type& 8768: operator>>(long& __n) 8768: { return _M_extract(__n); } 8768: 8768: __istream_type& 8768: operator>>(unsigned long& __n) 8768: { return _M_extract(__n); } 8768: 8768: 8768: __istream_type& 8768: operator>>(long long& __n) 8768: { return _M_extract(__n); } 8768: 8768: __istream_type& 8768: operator>>(unsigned long long& __n) 8768: { return _M_extract(__n); } 8768: # 213 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: operator>>(float& __f) 8768: { return _M_extract(__f); } 8768: 8768: __istream_type& 8768: operator>>(double& __f) 8768: { return _M_extract(__f); } 8768: 8768: __istream_type& 8768: operator>>(long double& __f) 8768: { return _M_extract(__f); } 8768: # 234 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: operator>>(void*& __p) 8768: { return _M_extract(__p); } 8768: # 258 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: operator>>(__streambuf_type* __sb); 8768: # 268 "/usr/include/c++/8/istream" 3 8768: streamsize 8768: gcount() const 8768: { return _M_gcount; } 8768: # 301 "/usr/include/c++/8/istream" 3 8768: int_type 8768: get(); 8768: # 315 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: get(char_type& __c); 8768: # 342 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: get(char_type* __s, streamsize __n, char_type __delim); 8768: # 353 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: get(char_type* __s, streamsize __n) 8768: { return this->get(__s, __n, this->widen('\n')); } 8768: # 376 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: get(__streambuf_type& __sb, char_type __delim); 8768: # 386 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: get(__streambuf_type& __sb) 8768: { return this->get(__sb, this->widen('\n')); } 8768: # 415 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: getline(char_type* __s, streamsize __n, char_type __delim); 8768: # 426 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: getline(char_type* __s, streamsize __n) 8768: { return this->getline(__s, __n, this->widen('\n')); } 8768: # 450 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: ignore(streamsize __n, int_type __delim); 8768: 8768: __istream_type& 8768: ignore(streamsize __n); 8768: 8768: __istream_type& 8768: ignore(); 8768: # 467 "/usr/include/c++/8/istream" 3 8768: int_type 8768: peek(); 8768: # 485 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: read(char_type* __s, streamsize __n); 8768: # 504 "/usr/include/c++/8/istream" 3 8768: streamsize 8768: readsome(char_type* __s, streamsize __n); 8768: # 521 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: putback(char_type __c); 8768: # 537 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: unget(); 8768: # 555 "/usr/include/c++/8/istream" 3 8768: int 8768: sync(); 8768: # 570 "/usr/include/c++/8/istream" 3 8768: pos_type 8768: tellg(); 8768: # 585 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: seekg(pos_type); 8768: # 601 "/usr/include/c++/8/istream" 3 8768: __istream_type& 8768: seekg(off_type, ios_base::seekdir); 8768: 8768: 8768: protected: 8768: basic_istream() 8768: : _M_gcount(streamsize(0)) 8768: { this->init(0); } 8768: 8768: 8768: basic_istream(const basic_istream&) = delete; 8768: 8768: basic_istream(basic_istream&& __rhs) 8768: : __ios_type(), _M_gcount(__rhs._M_gcount) 8768: { 8768: __ios_type::move(__rhs); 8768: __rhs._M_gcount = 0; 8768: } 8768: 8768: 8768: 8768: basic_istream& operator=(const basic_istream&) = delete; 8768: 8768: basic_istream& 8768: operator=(basic_istream&& __rhs) 8768: { 8768: swap(__rhs); 8768: return *this; 8768: } 8768: 8768: void 8768: swap(basic_istream& __rhs) 8768: { 8768: __ios_type::swap(__rhs); 8768: std::swap(_M_gcount, __rhs._M_gcount); 8768: } 8768: 8768: 8768: template 8768: __istream_type& 8768: _M_extract(_ValueT& __v); 8768: }; 8768: 8768: 8768: template<> 8768: basic_istream& 8768: basic_istream:: 8768: getline(char_type* __s, streamsize __n, char_type __delim); 8768: 8768: template<> 8768: basic_istream& 8768: basic_istream:: 8768: ignore(streamsize __n); 8768: 8768: template<> 8768: basic_istream& 8768: basic_istream:: 8768: ignore(streamsize __n, int_type __delim); 8768: 8768: 8768: template<> 8768: basic_istream& 8768: basic_istream:: 8768: getline(char_type* __s, streamsize __n, char_type __delim); 8768: 8768: template<> 8768: basic_istream& 8768: basic_istream:: 8768: ignore(streamsize __n); 8768: 8768: template<> 8768: basic_istream& 8768: basic_istream:: 8768: ignore(streamsize __n, int_type __delim); 8768: # 685 "/usr/include/c++/8/istream" 3 8768: template 8768: class basic_istream<_CharT, _Traits>::sentry 8768: { 8768: 8768: bool _M_ok; 8768: 8768: public: 8768: 8768: typedef _Traits traits_type; 8768: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef typename __istream_type::__ctype_type __ctype_type; 8768: typedef typename _Traits::int_type __int_type; 8768: # 721 "/usr/include/c++/8/istream" 3 8768: explicit 8768: sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); 8768: # 732 "/usr/include/c++/8/istream" 3 8768: explicit 8768: 8768: operator bool() const 8768: { return _M_ok; } 8768: }; 8768: # 750 "/usr/include/c++/8/istream" 3 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); 8768: 8768: template 8768: inline basic_istream& 8768: operator>>(basic_istream& __in, unsigned char& __c) 8768: { return (__in >> reinterpret_cast(__c)); } 8768: 8768: template 8768: inline basic_istream& 8768: operator>>(basic_istream& __in, signed char& __c) 8768: { return (__in >> reinterpret_cast(__c)); } 8768: # 792 "/usr/include/c++/8/istream" 3 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); 8768: 8768: 8768: template<> 8768: basic_istream& 8768: operator>>(basic_istream& __in, char* __s); 8768: 8768: template 8768: inline basic_istream& 8768: operator>>(basic_istream& __in, unsigned char* __s) 8768: { return (__in >> reinterpret_cast(__s)); } 8768: 8768: template 8768: inline basic_istream& 8768: operator>>(basic_istream& __in, signed char* __s) 8768: { return (__in >> reinterpret_cast(__s)); } 8768: # 823 "/usr/include/c++/8/istream" 3 8768: template 8768: class basic_iostream 8768: : public basic_istream<_CharT, _Traits>, 8768: public basic_ostream<_CharT, _Traits> 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef typename _Traits::int_type int_type; 8768: typedef typename _Traits::pos_type pos_type; 8768: typedef typename _Traits::off_type off_type; 8768: typedef _Traits traits_type; 8768: 8768: 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef basic_ostream<_CharT, _Traits> __ostream_type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) 8768: : __istream_type(__sb), __ostream_type(__sb) { } 8768: 8768: 8768: 8768: 8768: virtual 8768: ~basic_iostream() { } 8768: 8768: protected: 8768: basic_iostream() 8768: : __istream_type(), __ostream_type() { } 8768: 8768: 8768: basic_iostream(const basic_iostream&) = delete; 8768: 8768: basic_iostream(basic_iostream&& __rhs) 8768: : __istream_type(std::move(__rhs)), __ostream_type(*this) 8768: { } 8768: 8768: 8768: 8768: basic_iostream& operator=(const basic_iostream&) = delete; 8768: 8768: basic_iostream& 8768: operator=(basic_iostream&& __rhs) 8768: { 8768: swap(__rhs); 8768: return *this; 8768: } 8768: 8768: void 8768: swap(basic_iostream& __rhs) 8768: { __istream_type::swap(__rhs); } 8768: 8768: }; 8768: # 906 "/usr/include/c++/8/istream" 3 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: ws(basic_istream<_CharT, _Traits>& __is); 8768: 8768: 8768: template 8768: basic_istream<_Ch, _Up>& 8768: __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); 8768: 8768: template 8768: struct __is_convertible_to_basic_istream_impl 8768: { 8768: using __istream_type = void; 8768: }; 8768: 8768: template 8768: using __do_is_convertible_to_basic_istream_impl = 8768: decltype(__is_convertible_to_basic_istream_test 8768: (declval::type*>())); 8768: 8768: template 8768: struct __is_convertible_to_basic_istream_impl 8768: <_Tp, 8768: __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> 8768: { 8768: using __istream_type = 8768: __do_is_convertible_to_basic_istream_impl<_Tp>; 8768: }; 8768: 8768: template 8768: struct __is_convertible_to_basic_istream 8768: : __is_convertible_to_basic_istream_impl<_Tp> 8768: { 8768: public: 8768: using type = __not_::__istream_type>>; 8768: constexpr static bool value = type::value; 8768: }; 8768: 8768: template 8768: struct __is_extractable : false_type {}; 8768: 8768: template 8768: struct __is_extractable<_Istream, _Tp, 8768: __void_t() 8768: >> declval<_Tp>())>> 8768: : true_type {}; 8768: 8768: template 8768: using __rvalue_istream_type = 8768: typename __is_convertible_to_basic_istream< 8768: _Istream>::__istream_type; 8768: # 972 "/usr/include/c++/8/istream" 3 8768: template 8768: inline 8768: typename enable_if<__and_<__not_>, 8768: __is_convertible_to_basic_istream<_Istream>, 8768: __is_extractable< 8768: __rvalue_istream_type<_Istream>, 8768: _Tp&&>>::value, 8768: __rvalue_istream_type<_Istream>>::type 8768: operator>>(_Istream&& __is, _Tp&& __x) 8768: { 8768: __rvalue_istream_type<_Istream> __ret_is = __is; 8768: __ret_is >> std::forward<_Tp>(__x); 8768: return __ret_is; 8768: } 8768: 8768: 8768: 8768: } 8768: 8768: # 1 "/usr/include/c++/8/bits/istream.tcc" 1 3 8768: # 37 "/usr/include/c++/8/bits/istream.tcc" 3 8768: 8768: # 38 "/usr/include/c++/8/bits/istream.tcc" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: basic_istream<_CharT, _Traits>::sentry:: 8768: sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: if (__in.good()) 8768: try 8768: { 8768: if (__in.tie()) 8768: __in.tie()->flush(); 8768: if (!__noskip && bool(__in.flags() & ios_base::skipws)) 8768: { 8768: const __int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = __in.rdbuf(); 8768: __int_type __c = __sb->sgetc(); 8768: 8768: const __ctype_type& __ct = __check_facet(__in._M_ctype); 8768: while (!traits_type::eq_int_type(__c, __eof) 8768: && __ct.is(ctype_base::space, 8768: traits_type::to_char_type(__c))) 8768: __c = __sb->snextc(); 8768: 8768: 8768: 8768: 8768: if (traits_type::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __in._M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { __in._M_setstate(ios_base::badbit); } 8768: 8768: if (__in.good() && __err == ios_base::goodbit) 8768: _M_ok = true; 8768: else 8768: { 8768: __err |= ios_base::failbit; 8768: __in.setstate(__err); 8768: } 8768: } 8768: 8768: template 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: _M_extract(_ValueT& __v) 8768: { 8768: sentry __cerb(*this, false); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8768: __ng.get(*this, 0, *this, __err, __v); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: operator>>(short& __n) 8768: { 8768: 8768: 8768: sentry __cerb(*this, false); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: long __l; 8768: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8768: __ng.get(*this, 0, *this, __err, __l); 8768: 8768: 8768: 8768: if (__l < __gnu_cxx::__numeric_traits::__min) 8768: { 8768: __err |= ios_base::failbit; 8768: __n = __gnu_cxx::__numeric_traits::__min; 8768: } 8768: else if (__l > __gnu_cxx::__numeric_traits::__max) 8768: { 8768: __err |= ios_base::failbit; 8768: __n = __gnu_cxx::__numeric_traits::__max; 8768: } 8768: else 8768: __n = short(__l); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: operator>>(int& __n) 8768: { 8768: 8768: 8768: sentry __cerb(*this, false); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: long __l; 8768: const __num_get_type& __ng = __check_facet(this->_M_num_get); 8768: __ng.get(*this, 0, *this, __err, __l); 8768: 8768: 8768: 8768: if (__l < __gnu_cxx::__numeric_traits::__min) 8768: { 8768: __err |= ios_base::failbit; 8768: __n = __gnu_cxx::__numeric_traits::__min; 8768: } 8768: else if (__l > __gnu_cxx::__numeric_traits::__max) 8768: { 8768: __err |= ios_base::failbit; 8768: __n = __gnu_cxx::__numeric_traits::__max; 8768: } 8768: else 8768: __n = int(__l); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: operator>>(__streambuf_type* __sbout) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this, false); 8768: if (__cerb && __sbout) 8768: { 8768: try 8768: { 8768: bool __ineof; 8768: if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) 8768: __err |= ios_base::failbit; 8768: if (__ineof) 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::failbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::failbit); } 8768: } 8768: else if (!__sbout) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: typename basic_istream<_CharT, _Traits>::int_type 8768: basic_istream<_CharT, _Traits>:: 8768: get(void) 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: int_type __c = __eof; 8768: _M_gcount = 0; 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: __c = this->rdbuf()->sbumpc(); 8768: 8768: if (!traits_type::eq_int_type(__c, __eof)) 8768: _M_gcount = 1; 8768: else 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: if (!_M_gcount) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return __c; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: get(char_type& __c) 8768: { 8768: _M_gcount = 0; 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: const int_type __cb = this->rdbuf()->sbumpc(); 8768: 8768: if (!traits_type::eq_int_type(__cb, traits_type::eof())) 8768: { 8768: _M_gcount = 1; 8768: __c = traits_type::to_char_type(__cb); 8768: } 8768: else 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: if (!_M_gcount) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: get(char_type* __s, streamsize __n, char_type __delim) 8768: { 8768: _M_gcount = 0; 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: const int_type __idelim = traits_type::to_int_type(__delim); 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: int_type __c = __sb->sgetc(); 8768: 8768: while (_M_gcount + 1 < __n 8768: && !traits_type::eq_int_type(__c, __eof) 8768: && !traits_type::eq_int_type(__c, __idelim)) 8768: { 8768: *__s++ = traits_type::to_char_type(__c); 8768: ++_M_gcount; 8768: __c = __sb->snextc(); 8768: } 8768: if (traits_type::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: 8768: 8768: if (__n > 0) 8768: *__s = char_type(); 8768: if (!_M_gcount) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: get(__streambuf_type& __sb, char_type __delim) 8768: { 8768: _M_gcount = 0; 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: const int_type __idelim = traits_type::to_int_type(__delim); 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __this_sb = this->rdbuf(); 8768: int_type __c = __this_sb->sgetc(); 8768: char_type __c2 = traits_type::to_char_type(__c); 8768: 8768: while (!traits_type::eq_int_type(__c, __eof) 8768: && !traits_type::eq_int_type(__c, __idelim) 8768: && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) 8768: { 8768: ++_M_gcount; 8768: __c = __this_sb->snextc(); 8768: __c2 = traits_type::to_char_type(__c); 8768: } 8768: if (traits_type::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: if (!_M_gcount) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: getline(char_type* __s, streamsize __n, char_type __delim) 8768: { 8768: _M_gcount = 0; 8768: ios_base::iostate __err = ios_base::goodbit; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: const int_type __idelim = traits_type::to_int_type(__delim); 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: int_type __c = __sb->sgetc(); 8768: 8768: while (_M_gcount + 1 < __n 8768: && !traits_type::eq_int_type(__c, __eof) 8768: && !traits_type::eq_int_type(__c, __idelim)) 8768: { 8768: *__s++ = traits_type::to_char_type(__c); 8768: __c = __sb->snextc(); 8768: ++_M_gcount; 8768: } 8768: if (traits_type::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: else 8768: { 8768: if (traits_type::eq_int_type(__c, __idelim)) 8768: { 8768: __sb->sbumpc(); 8768: ++_M_gcount; 8768: } 8768: else 8768: __err |= ios_base::failbit; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: 8768: 8768: if (__n > 0) 8768: *__s = char_type(); 8768: if (!_M_gcount) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: this->setstate(__err); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: ignore(void) 8768: { 8768: _M_gcount = 0; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: 8768: if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) 8768: __err |= ios_base::eofbit; 8768: else 8768: _M_gcount = 1; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: ignore(streamsize __n) 8768: { 8768: _M_gcount = 0; 8768: sentry __cerb(*this, true); 8768: if (__cerb && __n > 0) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: int_type __c = __sb->sgetc(); 8768: # 521 "/usr/include/c++/8/bits/istream.tcc" 3 8768: bool __large_ignore = false; 8768: while (true) 8768: { 8768: while (_M_gcount < __n 8768: && !traits_type::eq_int_type(__c, __eof)) 8768: { 8768: ++_M_gcount; 8768: __c = __sb->snextc(); 8768: } 8768: if (__n == __gnu_cxx::__numeric_traits::__max 8768: && !traits_type::eq_int_type(__c, __eof)) 8768: { 8768: _M_gcount = 8768: __gnu_cxx::__numeric_traits::__min; 8768: __large_ignore = true; 8768: } 8768: else 8768: break; 8768: } 8768: 8768: if (__large_ignore) 8768: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8768: 8768: if (traits_type::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: ignore(streamsize __n, int_type __delim) 8768: { 8768: _M_gcount = 0; 8768: sentry __cerb(*this, true); 8768: if (__cerb && __n > 0) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: int_type __c = __sb->sgetc(); 8768: 8768: 8768: bool __large_ignore = false; 8768: while (true) 8768: { 8768: while (_M_gcount < __n 8768: && !traits_type::eq_int_type(__c, __eof) 8768: && !traits_type::eq_int_type(__c, __delim)) 8768: { 8768: ++_M_gcount; 8768: __c = __sb->snextc(); 8768: } 8768: if (__n == __gnu_cxx::__numeric_traits::__max 8768: && !traits_type::eq_int_type(__c, __eof) 8768: && !traits_type::eq_int_type(__c, __delim)) 8768: { 8768: _M_gcount = 8768: __gnu_cxx::__numeric_traits::__min; 8768: __large_ignore = true; 8768: } 8768: else 8768: break; 8768: } 8768: 8768: if (__large_ignore) 8768: _M_gcount = __gnu_cxx::__numeric_traits::__max; 8768: 8768: if (traits_type::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: else if (traits_type::eq_int_type(__c, __delim)) 8768: { 8768: if (_M_gcount 8768: < __gnu_cxx::__numeric_traits::__max) 8768: ++_M_gcount; 8768: __sb->sbumpc(); 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: typename basic_istream<_CharT, _Traits>::int_type 8768: basic_istream<_CharT, _Traits>:: 8768: peek(void) 8768: { 8768: int_type __c = traits_type::eof(); 8768: _M_gcount = 0; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: __c = this->rdbuf()->sgetc(); 8768: if (traits_type::eq_int_type(__c, traits_type::eof())) 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return __c; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: read(char_type* __s, streamsize __n) 8768: { 8768: _M_gcount = 0; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: _M_gcount = this->rdbuf()->sgetn(__s, __n); 8768: if (_M_gcount != __n) 8768: __err |= (ios_base::eofbit | ios_base::failbit); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: streamsize 8768: basic_istream<_CharT, _Traits>:: 8768: readsome(char_type* __s, streamsize __n) 8768: { 8768: _M_gcount = 0; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: 8768: const streamsize __num = this->rdbuf()->in_avail(); 8768: if (__num > 0) 8768: _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); 8768: else if (__num == -1) 8768: __err |= ios_base::eofbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return _M_gcount; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: putback(char_type __c) 8768: { 8768: 8768: 8768: _M_gcount = 0; 8768: 8768: this->clear(this->rdstate() & ~ios_base::eofbit); 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: if (!__sb 8768: || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) 8768: __err |= ios_base::badbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: unget(void) 8768: { 8768: 8768: 8768: _M_gcount = 0; 8768: 8768: this->clear(this->rdstate() & ~ios_base::eofbit); 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const int_type __eof = traits_type::eof(); 8768: __streambuf_type* __sb = this->rdbuf(); 8768: if (!__sb 8768: || traits_type::eq_int_type(__sb->sungetc(), __eof)) 8768: __err |= ios_base::badbit; 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: int 8768: basic_istream<_CharT, _Traits>:: 8768: sync(void) 8768: { 8768: 8768: 8768: int __ret = -1; 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: __streambuf_type* __sb = this->rdbuf(); 8768: if (__sb) 8768: { 8768: if (__sb->pubsync() == -1) 8768: __err |= ios_base::badbit; 8768: else 8768: __ret = 0; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return __ret; 8768: } 8768: 8768: template 8768: typename basic_istream<_CharT, _Traits>::pos_type 8768: basic_istream<_CharT, _Traits>:: 8768: tellg(void) 8768: { 8768: 8768: 8768: pos_type __ret = pos_type(-1); 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: if (!this->fail()) 8768: __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, 8768: ios_base::in); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: } 8768: return __ret; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: seekg(pos_type __pos) 8768: { 8768: 8768: 8768: 8768: this->clear(this->rdstate() & ~ios_base::eofbit); 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: if (!this->fail()) 8768: { 8768: 8768: const pos_type __p = this->rdbuf()->pubseekpos(__pos, 8768: ios_base::in); 8768: 8768: 8768: if (__p == pos_type(off_type(-1))) 8768: __err |= ios_base::failbit; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: basic_istream<_CharT, _Traits>:: 8768: seekg(off_type __off, ios_base::seekdir __dir) 8768: { 8768: 8768: 8768: 8768: this->clear(this->rdstate() & ~ios_base::eofbit); 8768: sentry __cerb(*this, true); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: if (!this->fail()) 8768: { 8768: 8768: const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, 8768: ios_base::in); 8768: 8768: 8768: if (__p == pos_type(off_type(-1))) 8768: __err |= ios_base::failbit; 8768: } 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: this->_M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { this->_M_setstate(ios_base::badbit); } 8768: if (__err) 8768: this->setstate(__err); 8768: } 8768: return *this; 8768: } 8768: 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 8768: { 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef typename __istream_type::int_type __int_type; 8768: 8768: typename __istream_type::sentry __cerb(__in, false); 8768: if (__cerb) 8768: { 8768: ios_base::iostate __err = ios_base::goodbit; 8768: try 8768: { 8768: const __int_type __cb = __in.rdbuf()->sbumpc(); 8768: if (!_Traits::eq_int_type(__cb, _Traits::eof())) 8768: __c = _Traits::to_char_type(__cb); 8768: else 8768: __err |= (ios_base::eofbit | ios_base::failbit); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __in._M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { __in._M_setstate(ios_base::badbit); } 8768: if (__err) 8768: __in.setstate(__err); 8768: } 8768: return __in; 8768: } 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) 8768: { 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8768: typedef typename _Traits::int_type int_type; 8768: typedef _CharT char_type; 8768: typedef ctype<_CharT> __ctype_type; 8768: 8768: streamsize __extracted = 0; 8768: ios_base::iostate __err = ios_base::goodbit; 8768: typename __istream_type::sentry __cerb(__in, false); 8768: if (__cerb) 8768: { 8768: try 8768: { 8768: 8768: streamsize __num = __in.width(); 8768: if (__num <= 0) 8768: __num = __gnu_cxx::__numeric_traits::__max; 8768: 8768: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8768: 8768: const int_type __eof = _Traits::eof(); 8768: __streambuf_type* __sb = __in.rdbuf(); 8768: int_type __c = __sb->sgetc(); 8768: 8768: while (__extracted < __num - 1 8768: && !_Traits::eq_int_type(__c, __eof) 8768: && !__ct.is(ctype_base::space, 8768: _Traits::to_char_type(__c))) 8768: { 8768: *__s++ = _Traits::to_char_type(__c); 8768: ++__extracted; 8768: __c = __sb->snextc(); 8768: } 8768: if (_Traits::eq_int_type(__c, __eof)) 8768: __err |= ios_base::eofbit; 8768: 8768: 8768: 8768: *__s = char_type(); 8768: __in.width(0); 8768: } 8768: catch(__cxxabiv1::__forced_unwind&) 8768: { 8768: __in._M_setstate(ios_base::badbit); 8768: throw; 8768: } 8768: catch(...) 8768: { __in._M_setstate(ios_base::badbit); } 8768: } 8768: if (!__extracted) 8768: __err |= ios_base::failbit; 8768: if (__err) 8768: __in.setstate(__err); 8768: return __in; 8768: } 8768: 8768: 8768: template 8768: basic_istream<_CharT, _Traits>& 8768: ws(basic_istream<_CharT, _Traits>& __in) 8768: { 8768: typedef basic_istream<_CharT, _Traits> __istream_type; 8768: typedef basic_streambuf<_CharT, _Traits> __streambuf_type; 8768: typedef typename __istream_type::int_type __int_type; 8768: typedef ctype<_CharT> __ctype_type; 8768: 8768: const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); 8768: const __int_type __eof = _Traits::eof(); 8768: __streambuf_type* __sb = __in.rdbuf(); 8768: __int_type __c = __sb->sgetc(); 8768: 8768: while (!_Traits::eq_int_type(__c, __eof) 8768: && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) 8768: __c = __sb->snextc(); 8768: 8768: if (_Traits::eq_int_type(__c, __eof)) 8768: __in.setstate(ios_base::eofbit); 8768: return __in; 8768: } 8768: 8768: 8768: 8768: 8768: extern template class basic_istream; 8768: extern template istream& ws(istream&); 8768: extern template istream& operator>>(istream&, char&); 8768: extern template istream& operator>>(istream&, char*); 8768: extern template istream& operator>>(istream&, unsigned char&); 8768: extern template istream& operator>>(istream&, signed char&); 8768: extern template istream& operator>>(istream&, unsigned char*); 8768: extern template istream& operator>>(istream&, signed char*); 8768: 8768: extern template istream& istream::_M_extract(unsigned short&); 8768: extern template istream& istream::_M_extract(unsigned int&); 8768: extern template istream& istream::_M_extract(long&); 8768: extern template istream& istream::_M_extract(unsigned long&); 8768: extern template istream& istream::_M_extract(bool&); 8768: 8768: extern template istream& istream::_M_extract(long long&); 8768: extern template istream& istream::_M_extract(unsigned long long&); 8768: 8768: extern template istream& istream::_M_extract(float&); 8768: extern template istream& istream::_M_extract(double&); 8768: extern template istream& istream::_M_extract(long double&); 8768: extern template istream& istream::_M_extract(void*&); 8768: 8768: extern template class basic_iostream; 8768: 8768: 8768: extern template class basic_istream; 8768: extern template wistream& ws(wistream&); 8768: extern template wistream& operator>>(wistream&, wchar_t&); 8768: extern template wistream& operator>>(wistream&, wchar_t*); 8768: 8768: extern template wistream& wistream::_M_extract(unsigned short&); 8768: extern template wistream& wistream::_M_extract(unsigned int&); 8768: extern template wistream& wistream::_M_extract(long&); 8768: extern template wistream& wistream::_M_extract(unsigned long&); 8768: extern template wistream& wistream::_M_extract(bool&); 8768: 8768: extern template wistream& wistream::_M_extract(long long&); 8768: extern template wistream& wistream::_M_extract(unsigned long long&); 8768: 8768: extern template wistream& wistream::_M_extract(float&); 8768: extern template wistream& wistream::_M_extract(double&); 8768: extern template wistream& wistream::_M_extract(long double&); 8768: extern template wistream& wistream::_M_extract(void*&); 8768: 8768: extern template class basic_iostream; 8768: 8768: 8768: 8768: 8768: } 8768: # 992 "/usr/include/c++/8/istream" 2 3 8768: # 66 "/usr/include/c++/8/iterator" 2 3 8768: # 1 "/usr/include/c++/8/bits/stream_iterator.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/stream_iterator.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/stream_iterator.h" 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template, typename _Dist = ptrdiff_t> 8768: class istream_iterator 8768: : public iterator 8768: { 8768: public: 8768: typedef _CharT char_type; 8768: typedef _Traits traits_type; 8768: typedef basic_istream<_CharT, _Traits> istream_type; 8768: 8768: private: 8768: istream_type* _M_stream; 8768: _Tp _M_value; 8768: bool _M_ok; 8768: 8768: public: 8768: 8768: constexpr istream_iterator() 8768: : _M_stream(0), _M_value(), _M_ok(false) {} 8768: 8768: 8768: istream_iterator(istream_type& __s) 8768: : _M_stream(std::__addressof(__s)) 8768: { _M_read(); } 8768: 8768: istream_iterator(const istream_iterator& __obj) 8768: : _M_stream(__obj._M_stream), _M_value(__obj._M_value), 8768: _M_ok(__obj._M_ok) 8768: { } 8768: 8768: const _Tp& 8768: operator*() const 8768: { 8768: 8768: 8768: ; 8768: return _M_value; 8768: } 8768: 8768: const _Tp* 8768: operator->() const { return std::__addressof((operator*())); } 8768: 8768: istream_iterator& 8768: operator++() 8768: { 8768: 8768: 8768: ; 8768: _M_read(); 8768: return *this; 8768: } 8768: 8768: istream_iterator 8768: operator++(int) 8768: { 8768: 8768: 8768: ; 8768: istream_iterator __tmp = *this; 8768: _M_read(); 8768: return __tmp; 8768: } 8768: 8768: bool 8768: _M_equal(const istream_iterator& __x) const 8768: { return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); } 8768: 8768: private: 8768: void 8768: _M_read() 8768: { 8768: _M_ok = (_M_stream && *_M_stream) ? true : false; 8768: if (_M_ok) 8768: { 8768: *_M_stream >> _M_value; 8768: _M_ok = *_M_stream ? true : false; 8768: } 8768: } 8768: }; 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8768: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8768: { return __x._M_equal(__y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x, 8768: const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y) 8768: { return !__x._M_equal(__y); } 8768: # 152 "/usr/include/c++/8/bits/stream_iterator.h" 3 8768: template > 8768: class ostream_iterator 8768: : public iterator 8768: { 8768: public: 8768: 8768: 8768: typedef _CharT char_type; 8768: typedef _Traits traits_type; 8768: typedef basic_ostream<_CharT, _Traits> ostream_type; 8768: 8768: 8768: private: 8768: ostream_type* _M_stream; 8768: const _CharT* _M_string; 8768: 8768: public: 8768: 8768: ostream_iterator(ostream_type& __s) 8768: : _M_stream(std::__addressof(__s)), _M_string(0) {} 8768: # 184 "/usr/include/c++/8/bits/stream_iterator.h" 3 8768: ostream_iterator(ostream_type& __s, const _CharT* __c) 8768: : _M_stream(&__s), _M_string(__c) { } 8768: 8768: 8768: ostream_iterator(const ostream_iterator& __obj) 8768: : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { } 8768: 8768: 8768: 8768: ostream_iterator& 8768: operator=(const _Tp& __value) 8768: { 8768: 8768: 8768: ; 8768: *_M_stream << __value; 8768: if (_M_string) *_M_stream << _M_string; 8768: return *this; 8768: } 8768: 8768: ostream_iterator& 8768: operator*() 8768: { return *this; } 8768: 8768: ostream_iterator& 8768: operator++() 8768: { return *this; } 8768: 8768: ostream_iterator& 8768: operator++(int) 8768: { return *this; } 8768: }; 8768: 8768: 8768: 8768: 8768: } 8768: # 67 "/usr/include/c++/8/iterator" 2 3 8768: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) char *qstrdup(const char *); 8768: 8768: inline uint qstrlen(const char *str) 8768: { return str ? uint(strlen(str)) : 0; } 8768: 8768: inline uint qstrnlen(const char *str, uint maxlen) 8768: { 8768: uint length = 0; 8768: if (str) { 8768: while (length < maxlen && *str++) 8768: length++; 8768: } 8768: return length; 8768: } 8768: 8768: __attribute__((visibility("default"))) char *qstrcpy(char *dst, const char *src); 8768: __attribute__((visibility("default"))) char *qstrncpy(char *dst, const char *src, uint len); 8768: 8768: __attribute__((visibility("default"))) int qstrcmp(const char *str1, const char *str2); 8768: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const QByteArray &str2); 8768: __attribute__((visibility("default"))) int qstrcmp(const QByteArray &str1, const char *str2); 8768: static inline int qstrcmp(const char *str1, const QByteArray &str2) 8768: { return -qstrcmp(str2, str1); } 8768: 8768: inline int qstrncmp(const char *str1, const char *str2, uint len) 8768: { 8768: return (str1 && str2) ? strncmp(str1, str2, len) 8768: : (str1 ? 1 : (str2 ? -1 : 0)); 8768: } 8768: __attribute__((visibility("default"))) int qstricmp(const char *, const char *); 8768: __attribute__((visibility("default"))) int qstrnicmp(const char *, const char *, uint len); 8768: 8768: 8768: __attribute__((visibility("default"))) int qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); 8768: __attribute__((visibility("default"))) int qsnprintf(char *str, size_t n, const char *fmt, ...); 8768: 8768: 8768: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len); 8768: __attribute__((visibility("default"))) quint16 qChecksum(const char *s, uint len, Qt::ChecksumType standard); 8768: 8768: class QByteRef; 8768: class QString; 8768: class QDataStream; 8768: template class QList; 8768: 8768: typedef QArrayData QByteArrayData; 8768: 8768: template struct QStaticByteArrayData 8768: { 8768: QByteArrayData ba; 8768: char data[N + 1]; 8768: 8768: QByteArrayData *data_ptr() const 8768: { 8768: do { } while ((false) && (ba.ref.isStatic())); 8768: return const_cast(&ba); 8768: } 8768: }; 8768: 8768: struct QByteArrayDataPtr 8768: { 8768: QByteArrayData *ptr; 8768: }; 8768: # 155 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: class __attribute__((visibility("default"))) QByteArray 8768: { 8768: private: 8768: typedef QTypedArrayData Data; 8768: 8768: public: 8768: enum Base64Option { 8768: Base64Encoding = 0, 8768: Base64UrlEncoding = 1, 8768: 8768: KeepTrailingEquals = 0, 8768: OmitTrailingEquals = 2 8768: }; 8768: typedef QFlags Base64Options; 8768: 8768: inline QByteArray() noexcept; 8768: QByteArray(const char *, int size = -1); 8768: QByteArray(int size, char c); 8768: QByteArray(int size, Qt::Initialization); 8768: inline QByteArray(const QByteArray &) noexcept; 8768: inline ~QByteArray(); 8768: 8768: QByteArray &operator=(const QByteArray &) noexcept; 8768: QByteArray &operator=(const char *str); 8768: 8768: inline QByteArray(QByteArray && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8768: inline QByteArray &operator=(QByteArray &&other) noexcept 8768: { qSwap(d, other.d); return *this; } 8768: 8768: 8768: inline void swap(QByteArray &other) noexcept 8768: { qSwap(d, other.d); } 8768: 8768: inline int size() const; 8768: bool isEmpty() const; 8768: void resize(int size); 8768: 8768: QByteArray &fill(char c, int size = -1); 8768: 8768: int capacity() const; 8768: void reserve(int size); 8768: void squeeze(); 8768: 8768: 8768: 8768: 8768: 8768: char *data(); 8768: const char *data() const; 8768: inline const char *constData() const; 8768: inline void detach(); 8768: bool isDetached() const; 8768: inline bool isSharedWith(const QByteArray &other) const { return d == other.d; } 8768: void clear(); 8768: 8768: char at(int i) const; 8768: char operator[](int i) const; 8768: char operator[](uint i) const; 8768: QByteRef operator[](int i); 8768: QByteRef operator[](uint i); 8768: 8768: int indexOf(char c, int from = 0) const; 8768: int indexOf(const char *c, int from = 0) const; 8768: int indexOf(const QByteArray &a, int from = 0) const; 8768: int lastIndexOf(char c, int from = -1) const; 8768: int lastIndexOf(const char *c, int from = -1) const; 8768: int lastIndexOf(const QByteArray &a, int from = -1) const; 8768: 8768: bool contains(char c) const; 8768: bool contains(const char *a) const; 8768: bool contains(const QByteArray &a) const; 8768: int count(char c) const; 8768: int count(const char *a) const; 8768: int count(const QByteArray &a) const; 8768: 8768: [[nodiscard]] QByteArray left(int len) const; 8768: [[nodiscard]] QByteArray right(int len) const; 8768: [[nodiscard]] QByteArray mid(int index, int len = -1) const; 8768: 8768: bool startsWith(const QByteArray &a) const; 8768: bool startsWith(char c) const; 8768: bool startsWith(const char *c) const; 8768: 8768: bool endsWith(const QByteArray &a) const; 8768: bool endsWith(char c) const; 8768: bool endsWith(const char *c) const; 8768: 8768: void truncate(int pos); 8768: void chop(int n); 8768: # 253 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() const & 8768: { return toLower_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toLower() && 8768: { return toLower_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() const & 8768: { return toUpper_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray toUpper() && 8768: { return toUpper_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() const & 8768: { return trimmed_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray trimmed() && 8768: { return trimmed_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() const & 8768: { return simplified_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QByteArray simplified() && 8768: { return simplified_helper(*this); } 8768: # 279 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: [[nodiscard]] QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; 8768: [[nodiscard]] QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; 8768: 8768: QByteArray &prepend(char c); 8768: QByteArray &prepend(int count, char c); 8768: QByteArray &prepend(const char *s); 8768: QByteArray &prepend(const char *s, int len); 8768: QByteArray &prepend(const QByteArray &a); 8768: QByteArray &append(char c); 8768: QByteArray &append(int count, char c); 8768: QByteArray &append(const char *s); 8768: QByteArray &append(const char *s, int len); 8768: QByteArray &append(const QByteArray &a); 8768: QByteArray &insert(int i, char c); 8768: QByteArray &insert(int i, int count, char c); 8768: QByteArray &insert(int i, const char *s); 8768: QByteArray &insert(int i, const char *s, int len); 8768: QByteArray &insert(int i, const QByteArray &a); 8768: QByteArray &remove(int index, int len); 8768: QByteArray &replace(int index, int len, const char *s); 8768: QByteArray &replace(int index, int len, const char *s, int alen); 8768: QByteArray &replace(int index, int len, const QByteArray &s); 8768: QByteArray &replace(char before, const char *after); 8768: QByteArray &replace(char before, const QByteArray &after); 8768: QByteArray &replace(const char *before, const char *after); 8768: QByteArray &replace(const char *before, int bsize, const char *after, int asize); 8768: QByteArray &replace(const QByteArray &before, const QByteArray &after); 8768: QByteArray &replace(const QByteArray &before, const char *after); 8768: QByteArray &replace(const char *before, const QByteArray &after); 8768: QByteArray &replace(char before, char after); 8768: QByteArray &operator+=(char c); 8768: QByteArray &operator+=(const char *s); 8768: QByteArray &operator+=(const QByteArray &a); 8768: 8768: QList split(char sep) const; 8768: 8768: [[nodiscard]] QByteArray repeated(int times) const; 8768: # 337 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: short toShort(bool *ok = nullptr, int base = 10) const; 8768: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8768: int toInt(bool *ok = nullptr, int base = 10) const; 8768: uint toUInt(bool *ok = nullptr, int base = 10) const; 8768: long toLong(bool *ok = nullptr, int base = 10) const; 8768: ulong toULong(bool *ok = nullptr, int base = 10) const; 8768: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8768: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8768: float toFloat(bool *ok = nullptr) const; 8768: double toDouble(bool *ok = nullptr) const; 8768: QByteArray toBase64(Base64Options options) const; 8768: QByteArray toBase64() const; 8768: QByteArray toHex() const; 8768: QByteArray toHex(char separator) const; 8768: QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), 8768: const QByteArray &include = QByteArray(), 8768: char percent = '%') const; 8768: 8768: QByteArray &setNum(short, int base = 10); 8768: QByteArray &setNum(ushort, int base = 10); 8768: QByteArray &setNum(int, int base = 10); 8768: QByteArray &setNum(uint, int base = 10); 8768: QByteArray &setNum(qlonglong, int base = 10); 8768: QByteArray &setNum(qulonglong, int base = 10); 8768: QByteArray &setNum(float, char f = 'g', int prec = 6); 8768: QByteArray &setNum(double, char f = 'g', int prec = 6); 8768: QByteArray &setRawData(const char *a, uint n); 8768: 8768: [[nodiscard]] static QByteArray number(int, int base = 10); 8768: [[nodiscard]] static QByteArray number(uint, int base = 10); 8768: [[nodiscard]] static QByteArray number(qlonglong, int base = 10); 8768: [[nodiscard]] static QByteArray number(qulonglong, int base = 10); 8768: [[nodiscard]] static QByteArray number(double, char f = 'g', int prec = 6); 8768: [[nodiscard]] static QByteArray fromRawData(const char *, int size); 8768: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64, Base64Options options); 8768: [[nodiscard]] static QByteArray fromBase64(const QByteArray &base64); 8768: [[nodiscard]] static QByteArray fromHex(const QByteArray &hexEncoded); 8768: [[nodiscard]] static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent = '%'); 8768: # 387 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: typedef char *iterator; 8768: typedef const char *const_iterator; 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: inline iterator begin(); 8768: inline const_iterator begin() const; 8768: inline const_iterator cbegin() const; 8768: inline const_iterator constBegin() const; 8768: inline iterator end(); 8768: inline const_iterator end() const; 8768: inline const_iterator cend() const; 8768: inline const_iterator constEnd() const; 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8768: 8768: 8768: typedef int size_type; 8768: typedef qptrdiff difference_type; 8768: typedef const char & const_reference; 8768: typedef char & reference; 8768: typedef char *pointer; 8768: typedef const char *const_pointer; 8768: typedef char value_type; 8768: void push_back(char c); 8768: void push_back(const char *c); 8768: void push_back(const QByteArray &a); 8768: void push_front(char c); 8768: void push_front(const char *c); 8768: void push_front(const QByteArray &a); 8768: 8768: static inline QByteArray fromStdString(const std::string &s); 8768: inline std::string toStdString() const; 8768: 8768: inline int count() const { return d->size; } 8768: int length() const { return d->size; } 8768: bool isNull() const; 8768: 8768: inline QByteArray(QByteArrayDataPtr dd) 8768: : d(static_cast(dd.ptr)) 8768: { 8768: } 8768: 8768: private: 8768: operator QNoImplicitBoolCast() const; 8768: Data *d; 8768: void reallocData(uint alloc, Data::AllocationOptions options); 8768: void expand(int i); 8768: QByteArray nulTerminated() const; 8768: 8768: static QByteArray toLower_helper(const QByteArray &a); 8768: static QByteArray toLower_helper(QByteArray &a); 8768: static QByteArray toUpper_helper(const QByteArray &a); 8768: static QByteArray toUpper_helper(QByteArray &a); 8768: static QByteArray trimmed_helper(const QByteArray &a); 8768: static QByteArray trimmed_helper(QByteArray &a); 8768: static QByteArray simplified_helper(const QByteArray &a); 8768: static QByteArray simplified_helper(QByteArray &a); 8768: 8768: friend class QByteRef; 8768: friend class QString; 8768: friend __attribute__((visibility("default"))) QByteArray qUncompress(const uchar *data, int nbytes); 8768: public: 8768: typedef Data * DataPtr; 8768: inline DataPtr &data_ptr() { return d; } 8768: }; 8768: 8768: 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); } 8768: 8768: inline QByteArray::QByteArray() noexcept : d(Data::sharedNull()) { } 8768: inline QByteArray::~QByteArray() { if (!d->ref.deref()) Data::deallocate(d); } 8768: inline int QByteArray::size() const 8768: { return d->size; } 8768: 8768: inline char QByteArray::at(int i) const 8768: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8768: inline char QByteArray::operator[](int i) const 8768: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8768: inline char QByteArray::operator[](uint i) const 8768: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8768: 8768: inline bool QByteArray::isEmpty() const 8768: { return d->size == 0; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline char *QByteArray::data() 8768: { detach(); return d->data(); } 8768: inline const char *QByteArray::data() const 8768: { return d->data(); } 8768: inline const char *QByteArray::constData() const 8768: { return d->data(); } 8768: inline void QByteArray::detach() 8768: { if (d->ref.isShared() || (d->offset != sizeof(QByteArrayData))) reallocData(uint(d->size) + 1u, d->detachFlags()); } 8768: inline bool QByteArray::isDetached() const 8768: { return !d->ref.isShared(); } 8768: inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d) 8768: { d->ref.ref(); } 8768: 8768: inline int QByteArray::capacity() const 8768: { return d->alloc ? d->alloc - 1 : 0; } 8768: 8768: inline void QByteArray::reserve(int asize) 8768: { 8768: if (d->ref.isShared() || uint(asize) + 1u > d->alloc) { 8768: reallocData(qMax(uint(size()), uint(asize)) + 1u, d->detachFlags() | Data::CapacityReserved); 8768: } else { 8768: 8768: 8768: d->capacityReserved = true; 8768: } 8768: } 8768: 8768: inline void QByteArray::squeeze() 8768: { 8768: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) { 8768: reallocData(uint(d->size) + 1u, d->detachFlags() & ~Data::CapacityReserved); 8768: } else { 8768: 8768: 8768: d->capacityReserved = false; 8768: } 8768: } 8768: 8768: class __attribute__((visibility("default"))) QByteRef { 8768: QByteArray &a; 8768: int i; 8768: inline QByteRef(QByteArray &array, int idx) 8768: : a(array),i(idx) {} 8768: friend class QByteArray; 8768: public: 8768: inline operator char() const 8768: { return i < a.d->size ? a.d->data()[i] : char(0); } 8768: inline QByteRef &operator=(char c) 8768: { if (i >= a.d->size) a.expand(i); else a.detach(); 8768: a.d->data()[i] = c; return *this; } 8768: inline QByteRef &operator=(const QByteRef &c) 8768: { if (i >= a.d->size) a.expand(i); else a.detach(); 8768: a.d->data()[i] = c.a.d->data()[c.i]; return *this; } 8768: inline bool operator==(char c) const 8768: { return a.d->data()[i] == c; } 8768: inline bool operator!=(char c) const 8768: { return a.d->data()[i] != c; } 8768: inline bool operator>(char c) const 8768: { return a.d->data()[i] > c; } 8768: inline bool operator>=(char c) const 8768: { return a.d->data()[i] >= c; } 8768: inline bool operator<(char c) const 8768: { return a.d->data()[i] < c; } 8768: inline bool operator<=(char c) const 8768: { return a.d->data()[i] <= c; } 8768: }; 8768: 8768: inline QByteRef QByteArray::operator[](int i) 8768: { do { } while ((false) && (i >= 0)); return QByteRef(*this, i); } 8768: inline QByteRef QByteArray::operator[](uint i) 8768: { return QByteRef(*this, i); } 8768: inline QByteArray::iterator QByteArray::begin() 8768: { detach(); return d->data(); } 8768: inline QByteArray::const_iterator QByteArray::begin() const 8768: { return d->data(); } 8768: inline QByteArray::const_iterator QByteArray::cbegin() const 8768: { return d->data(); } 8768: inline QByteArray::const_iterator QByteArray::constBegin() const 8768: { return d->data(); } 8768: inline QByteArray::iterator QByteArray::end() 8768: { detach(); return d->data() + d->size; } 8768: inline QByteArray::const_iterator QByteArray::end() const 8768: { return d->data() + d->size; } 8768: inline QByteArray::const_iterator QByteArray::cend() const 8768: { return d->data() + d->size; } 8768: inline QByteArray::const_iterator QByteArray::constEnd() const 8768: { return d->data() + d->size; } 8768: inline QByteArray &QByteArray::append(int n, char ch) 8768: { return insert(d->size, n, ch); } 8768: inline QByteArray &QByteArray::prepend(int n, char ch) 8768: { return insert(0, n, ch); } 8768: inline QByteArray &QByteArray::operator+=(char c) 8768: { return append(c); } 8768: inline QByteArray &QByteArray::operator+=(const char *s) 8768: { return append(s); } 8768: inline QByteArray &QByteArray::operator+=(const QByteArray &a) 8768: { return append(a); } 8768: inline void QByteArray::push_back(char c) 8768: { append(c); } 8768: inline void QByteArray::push_back(const char *c) 8768: { append(c); } 8768: inline void QByteArray::push_back(const QByteArray &a) 8768: { append(a); } 8768: inline void QByteArray::push_front(char c) 8768: { prepend(c); } 8768: inline void QByteArray::push_front(const char *c) 8768: { prepend(c); } 8768: inline void QByteArray::push_front(const QByteArray &a) 8768: { prepend(a); } 8768: inline bool QByteArray::contains(const QByteArray &a) const 8768: { return indexOf(a) != -1; } 8768: inline bool QByteArray::contains(char c) const 8768: { return indexOf(c) != -1; } 8768: inline bool operator==(const QByteArray &a1, const QByteArray &a2) noexcept 8768: { return (a1.size() == a2.size()) && (memcmp(a1.constData(), a2.constData(), a1.size())==0); } 8768: inline bool operator==(const QByteArray &a1, const char *a2) noexcept 8768: { return a2 ? qstrcmp(a1,a2) == 0 : a1.isEmpty(); } 8768: inline bool operator==(const char *a1, const QByteArray &a2) noexcept 8768: { return a1 ? qstrcmp(a1,a2) == 0 : a2.isEmpty(); } 8768: inline bool operator!=(const QByteArray &a1, const QByteArray &a2) noexcept 8768: { return !(a1==a2); } 8768: inline bool operator!=(const QByteArray &a1, const char *a2) noexcept 8768: { return a2 ? qstrcmp(a1,a2) != 0 : !a1.isEmpty(); } 8768: inline bool operator!=(const char *a1, const QByteArray &a2) noexcept 8768: { return a1 ? qstrcmp(a1,a2) != 0 : !a2.isEmpty(); } 8768: inline bool operator<(const QByteArray &a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) < 0; } 8768: inline bool operator<(const QByteArray &a1, const char *a2) noexcept 8768: { return qstrcmp(a1, a2) < 0; } 8768: inline bool operator<(const char *a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) < 0; } 8768: inline bool operator<=(const QByteArray &a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) <= 0; } 8768: inline bool operator<=(const QByteArray &a1, const char *a2) noexcept 8768: { return qstrcmp(a1, a2) <= 0; } 8768: inline bool operator<=(const char *a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) <= 0; } 8768: inline bool operator>(const QByteArray &a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) > 0; } 8768: inline bool operator>(const QByteArray &a1, const char *a2) noexcept 8768: { return qstrcmp(a1, a2) > 0; } 8768: inline bool operator>(const char *a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) > 0; } 8768: inline bool operator>=(const QByteArray &a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) >= 0; } 8768: inline bool operator>=(const QByteArray &a1, const char *a2) noexcept 8768: { return qstrcmp(a1, a2) >= 0; } 8768: inline bool operator>=(const char *a1, const QByteArray &a2) noexcept 8768: { return qstrcmp(a1, a2) >= 0; } 8768: # 642 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 3 4 8768: inline bool QByteArray::contains(const char *c) const 8768: { return indexOf(c) != -1; } 8768: inline QByteArray &QByteArray::replace(char before, const char *c) 8768: { return replace(&before, 1, c, qstrlen(c)); } 8768: inline QByteArray &QByteArray::replace(const QByteArray &before, const char *c) 8768: { return replace(before.constData(), before.size(), c, qstrlen(c)); } 8768: inline QByteArray &QByteArray::replace(const char *before, const char *after) 8768: { return replace(before, qstrlen(before), after, qstrlen(after)); } 8768: 8768: inline QByteArray &QByteArray::setNum(short n, int base) 8768: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(ushort(n)), base); } 8768: inline QByteArray &QByteArray::setNum(ushort n, int base) 8768: { return setNum(qulonglong(n), base); } 8768: inline QByteArray &QByteArray::setNum(int n, int base) 8768: { return base == 10 ? setNum(qlonglong(n), base) : setNum(qulonglong(uint(n)), base); } 8768: inline QByteArray &QByteArray::setNum(uint n, int base) 8768: { return setNum(qulonglong(n), base); } 8768: inline QByteArray &QByteArray::setNum(float n, char f, int prec) 8768: { return setNum(double(n),f,prec); } 8768: 8768: inline std::string QByteArray::toStdString() const 8768: { return std::string(constData(), length()); } 8768: 8768: inline QByteArray QByteArray::fromStdString(const std::string &s) 8768: { return QByteArray(s.data(), int(s.size())); } 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QByteArray &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QByteArray &); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QByteArray qCompress(const uchar* data, int nbytes, int compressionLevel = -1); 8768: __attribute__((visibility("default"))) QByteArray qUncompress(const uchar* data, int nbytes); 8768: inline QByteArray qCompress(const QByteArray& data, int compressionLevel = -1) 8768: { return qCompress(reinterpret_cast(data.constData()), data.size(), compressionLevel); } 8768: inline QByteArray qUncompress(const QByteArray& data) 8768: { return qUncompress(reinterpret_cast(data.constData()), data.size()); } 8768: 8768: 8768: 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); } 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 1 3 4 8768: # 688 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearray.h" 2 3 4 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 2 3 4 8768: # 76 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: 8768: 8768: class QCharRef; 8768: class QRegExp; 8768: class QRegularExpression; 8768: class QRegularExpressionMatch; 8768: class QString; 8768: class QStringList; 8768: class QTextCodec; 8768: class QStringRef; 8768: template class QVector; 8768: 8768: class QLatin1String 8768: { 8768: public: 8768: constexpr inline QLatin1String() noexcept : m_size(0), m_data(nullptr) {} 8768: constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? int(strlen(s)) : 0), m_data(s) {} 8768: constexpr inline explicit QLatin1String(const char *s, int sz) noexcept : m_size(sz), m_data(s) {} 8768: inline explicit QLatin1String(const QByteArray &s) noexcept : m_size(int(qstrnlen(s.constData(), s.size()))), m_data(s.constData()) {} 8768: 8768: constexpr const char *latin1() const noexcept { return m_data; } 8768: constexpr int size() const noexcept { return m_size; } 8768: constexpr const char *data() const noexcept { return m_data; } 8768: 8768: constexpr QLatin1Char at(int i) const { return QLatin1Char(m_data[i]); } 8768: constexpr QLatin1Char operator[](int i) const { return at(i); } 8768: 8768: constexpr QLatin1String mid(int pos) const 8768: { return QLatin1String(m_data + pos, m_size - pos); } 8768: constexpr QLatin1String mid(int pos, int n) const 8768: { return QLatin1String(m_data + pos, n); } 8768: constexpr QLatin1String left(int n) const 8768: { return QLatin1String(m_data, n); } 8768: constexpr QLatin1String right(int n) const 8768: { return QLatin1String(m_data + m_size - n, n); } 8768: 8768: inline bool operator==(const QString &s) const noexcept; 8768: inline bool operator!=(const QString &s) const noexcept; 8768: inline bool operator>(const QString &s) const noexcept; 8768: inline bool operator<(const QString &s) const noexcept; 8768: inline bool operator>=(const QString &s) const noexcept; 8768: inline bool operator<=(const QString &s) const noexcept; 8768: # 135 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: private: 8768: int m_size; 8768: const char *m_data; 8768: }; 8768: 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"; } }; 8768: 8768: 8768: typedef QLatin1String QLatin1Literal; 8768: 8768: 8768: typedef QTypedArrayData QStringData; 8768: # 166 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: typedef char16_t qunicodechar; 8768: 8768: 8768: 8768: static_assert(bool(sizeof(qunicodechar) == 2), "qunicodechar must typedef an integral type of size 2") 8768: ; 8768: # 194 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: template 8768: struct QStaticStringData 8768: { 8768: QArrayData str; 8768: qunicodechar data[N + 1]; 8768: 8768: QStringData *data_ptr() const 8768: { 8768: do { } while ((false) && (str.ref.isStatic())); 8768: return const_cast(static_cast(&str)); 8768: } 8768: }; 8768: 8768: struct QStringDataPtr 8768: { 8768: QStringData *ptr; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QString 8768: { 8768: public: 8768: typedef QStringData Data; 8768: 8768: inline QString() noexcept; 8768: explicit QString(const QChar *unicode, int size = -1); 8768: QString(QChar c); 8768: QString(int size, QChar c); 8768: inline QString(QLatin1String latin1); 8768: inline QString(const QString &) noexcept; 8768: inline ~QString(); 8768: QString &operator=(QChar c); 8768: QString &operator=(const QString &) noexcept; 8768: QString &operator=(QLatin1String latin1); 8768: 8768: inline QString(QString && other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8768: inline QString &operator=(QString &&other) noexcept 8768: { qSwap(d, other.d); return *this; } 8768: 8768: inline void swap(QString &other) noexcept { qSwap(d, other.d); } 8768: inline int size() const { return d->size; } 8768: inline int count() const { return d->size; } 8768: inline int length() const; 8768: inline bool isEmpty() const; 8768: void resize(int size); 8768: void resize(int size, QChar fillChar); 8768: 8768: QString &fill(QChar c, int size = -1); 8768: void truncate(int pos); 8768: void chop(int n); 8768: 8768: int capacity() const; 8768: inline void reserve(int size); 8768: inline void squeeze(); 8768: 8768: inline const QChar *unicode() const; 8768: inline QChar *data(); 8768: inline const QChar *data() const; 8768: inline const QChar *constData() const; 8768: 8768: inline void detach(); 8768: inline bool isDetached() const; 8768: inline bool isSharedWith(const QString &other) const { return d == other.d; } 8768: void clear(); 8768: 8768: inline const QChar at(int i) const; 8768: const QChar operator[](int i) const; 8768: QCharRef operator[](int i); 8768: const QChar operator[](uint i) const; 8768: QCharRef operator[](uint i); 8768: 8768: [[nodiscard]] QString arg(qlonglong a, int fieldwidth=0, int base=10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(qulonglong a, int fieldwidth=0, int base=10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(long a, int fieldwidth=0, int base=10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(ulong a, int fieldwidth=0, int base=10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(int a, int fieldWidth = 0, int base = 10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(uint a, int fieldWidth = 0, int base = 10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(short a, int fieldWidth = 0, int base = 10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(ushort a, int fieldWidth = 0, int base = 10, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(char a, int fieldWidth = 0, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(QChar a, int fieldWidth = 0, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(const QString &a, int fieldWidth = 0, 8768: QChar fillChar = QLatin1Char(' ')) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6, 8768: const QString &a7) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6, 8768: const QString &a7, const QString &a8) const; 8768: [[nodiscard]] QString arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6, 8768: const QString &a7, const QString &a8, const QString &a9) const; 8768: 8768: QString &vsprintf(const char *format, va_list ap) __attribute__((format(printf, (2), (0)))); 8768: QString &sprintf(const char *format, ...) __attribute__((format(printf, (2), (3)))); 8768: static QString vasprintf(const char *format, va_list ap) __attribute__((format(printf, (1), (0)))); 8768: static QString asprintf(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8768: 8768: int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int indexOf(QLatin1String s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int indexOf(const QStringRef &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(const QString &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(QLatin1String s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(const QStringRef &s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: inline bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline bool contains(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: 8768: int indexOf(const QRegExp &, int from = 0) const; 8768: int lastIndexOf(const QRegExp &, int from = -1) const; 8768: inline bool contains(const QRegExp &rx) const { return indexOf(rx) != -1; } 8768: int count(const QRegExp &) const; 8768: 8768: int indexOf(QRegExp &, int from = 0) const; 8768: int lastIndexOf(QRegExp &, int from = -1) const; 8768: inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; } 8768: 8768: 8768: 8768: int indexOf(const QRegularExpression &re, int from = 0) const; 8768: int indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8768: int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8768: int lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; 8768: bool contains(const QRegularExpression &re) const; 8768: bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; 8768: int count(const QRegularExpression &re) const; 8768: 8768: 8768: enum SectionFlag { 8768: SectionDefault = 0x00, 8768: SectionSkipEmpty = 0x01, 8768: SectionIncludeLeadingSep = 0x02, 8768: SectionIncludeTrailingSep = 0x04, 8768: SectionCaseInsensitiveSeps = 0x08 8768: }; 8768: typedef QFlags SectionFlags; 8768: 8768: QString section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8768: QString section(const QString &in_sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8768: 8768: QString section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8768: 8768: 8768: QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const; 8768: 8768: [[nodiscard]] QString left(int n) const; 8768: [[nodiscard]] QString right(int n) const; 8768: [[nodiscard]] QString mid(int position, int n = -1) const; 8768: [[nodiscard]] QStringRef leftRef(int n) const; 8768: [[nodiscard]] QStringRef rightRef(int n) const; 8768: [[nodiscard]] QStringRef midRef(int position, int n = -1) const; 8768: 8768: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: [[nodiscard]] QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8768: [[nodiscard]] QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const; 8768: # 393 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() const & 8768: { return toLower_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString toLower() && 8768: { return toLower_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() const & 8768: { return toUpper_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString toUpper() && 8768: { return toUpper_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() const & 8768: { return toCaseFolded_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString toCaseFolded() && 8768: { return toCaseFolded_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() const & 8768: { return trimmed_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString trimmed() && 8768: { return trimmed_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() const & 8768: { return simplified_helper(*this); } 8768: [[nodiscard]] inline __attribute__((always_inline)) QString simplified() && 8768: { return simplified_helper(*this); } 8768: # 423 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: [[nodiscard]] QString toHtmlEscaped() const; 8768: 8768: QString &insert(int i, QChar c); 8768: QString &insert(int i, const QChar *uc, int len); 8768: inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); } 8768: inline QString &insert(int i, const QStringRef &s); 8768: QString &insert(int i, QLatin1String s); 8768: QString &append(QChar c); 8768: QString &append(const QChar *uc, int len); 8768: QString &append(const QString &s); 8768: QString &append(const QStringRef &s); 8768: QString &append(QLatin1String s); 8768: inline QString &prepend(QChar c) { return insert(0, c); } 8768: inline QString &prepend(const QChar *uc, int len) { return insert(0, uc, len); } 8768: inline QString &prepend(const QString &s) { return insert(0, s); } 8768: inline QString &prepend(const QStringRef &s) { return insert(0, s); } 8768: inline QString &prepend(QLatin1String s) { return insert(0, s); } 8768: 8768: inline QString &operator+=(QChar c) { 8768: if (d->ref.isShared() || uint(d->size) + 2u > d->alloc) 8768: reallocData(uint(d->size) + 2u, true); 8768: d->data()[d->size++] = c.unicode(); 8768: d->data()[d->size] = '\0'; 8768: return *this; 8768: } 8768: 8768: inline QString &operator+=(QChar::SpecialCharacter c) { return append(QChar(c)); } 8768: inline QString &operator+=(const QString &s) { return append(s); } 8768: inline QString &operator+=(const QStringRef &s) { return append(s); } 8768: inline QString &operator+=(QLatin1String s) { return append(s); } 8768: 8768: QString &remove(int i, int len); 8768: QString &remove(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &remove(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(int i, int len, QChar after); 8768: QString &replace(int i, int len, const QChar *s, int slen); 8768: QString &replace(int i, int len, const QString &after); 8768: QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(const QString &before, const QString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(QChar c, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: 8768: QString &replace(const QRegExp &rx, const QString &after); 8768: inline QString &remove(const QRegExp &rx) 8768: { return replace(rx, QString()); } 8768: 8768: 8768: QString &replace(const QRegularExpression &re, const QString &after); 8768: inline QString &remove(const QRegularExpression &re) 8768: { return replace(re, QString()); } 8768: 8768: 8768: enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; 8768: 8768: [[nodiscard]] QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: [[nodiscard]] QVector splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: [[nodiscard]] QStringList split(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: [[nodiscard]] QVector splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: [[nodiscard]] QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8768: [[nodiscard]] QVector splitRef(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; 8768: 8768: 8768: [[nodiscard]] QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8768: [[nodiscard]] QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; 8768: 8768: enum NormalizationForm { 8768: NormalizationForm_D, 8768: NormalizationForm_C, 8768: NormalizationForm_KD, 8768: NormalizationForm_KC 8768: }; 8768: [[nodiscard]] QString normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const; 8768: 8768: [[nodiscard]] QString repeated(int times) const; 8768: 8768: const ushort *utf16() const; 8768: 8768: 8768: [[nodiscard]] QByteArray toLatin1() const & 8768: { return toLatin1_helper(*this); } 8768: [[nodiscard]] QByteArray toLatin1() && 8768: { return toLatin1_helper_inplace(*this); } 8768: [[nodiscard]] QByteArray toUtf8() const & 8768: { return toUtf8_helper(*this); } 8768: [[nodiscard]] QByteArray toUtf8() && 8768: { return toUtf8_helper(*this); } 8768: [[nodiscard]] QByteArray toLocal8Bit() const & 8768: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8768: [[nodiscard]] QByteArray toLocal8Bit() && 8768: { return toLocal8Bit_helper(isNull() ? nullptr : constData(), size()); } 8768: 8768: 8768: 8768: 8768: 8768: [[nodiscard]] QVector toUcs4() const; 8768: 8768: 8768: static inline QString fromLatin1(const char *str, int size = -1) 8768: { 8768: QStringDataPtr dataPtr = { fromLatin1_helper(str, (str && size == -1) ? int(strlen(str)) : size) }; 8768: return QString(dataPtr); 8768: } 8768: static inline QString fromUtf8(const char *str, int size = -1) 8768: { 8768: return fromUtf8_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8768: } 8768: static inline QString fromLocal8Bit(const char *str, int size = -1) 8768: { 8768: return fromLocal8Bit_helper(str, (str && size == -1) ? int(strlen(str)) : size); 8768: } 8768: static inline QString fromLatin1(const QByteArray &str) 8768: { return str.isNull() ? QString() : fromLatin1(str.data(), qstrnlen(str.constData(), str.size())); } 8768: static inline QString fromUtf8(const QByteArray &str) 8768: { return str.isNull() ? QString() : fromUtf8(str.data(), qstrnlen(str.constData(), str.size())); } 8768: static inline QString fromLocal8Bit(const QByteArray &str) 8768: { return str.isNull() ? QString() : fromLocal8Bit(str.data(), qstrnlen(str.constData(), str.size())); } 8768: static QString fromUtf16(const ushort *, int size = -1); 8768: static QString fromUcs4(const uint *, int size = -1); 8768: static QString fromRawData(const QChar *, int size); 8768: 8768: 8768: static QString fromUtf16(const char16_t *str, int size = -1) 8768: { return fromUtf16(reinterpret_cast(str), size); } 8768: static QString fromUcs4(const char32_t *str, int size = -1) 8768: { return fromUcs4(reinterpret_cast(str), size); } 8768: # 570 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: inline int toWCharArray(wchar_t *array) const; 8768: [[nodiscard]] static inline QString fromWCharArray(const wchar_t *string, int size = -1); 8768: 8768: QString &setRawData(const QChar *unicode, int size); 8768: QString &setUnicode(const QChar *unicode, int size); 8768: inline QString &setUtf16(const ushort *utf16, int size); 8768: 8768: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8768: int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8768: 8768: static inline int compare(const QString &s1, const QString &s2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8768: { return s1.compare(s2, cs); } 8768: 8768: static inline int compare(const QString &s1, QLatin1String s2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8768: { return s1.compare(s2, cs); } 8768: static inline int compare(QLatin1String s1, const QString &s2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept 8768: { return -s2.compare(s1, cs); } 8768: 8768: inline int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8768: static int compare(const QString &s1, const QStringRef &s2, 8768: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8768: 8768: int localeAwareCompare(const QString& s) const; 8768: static int localeAwareCompare(const QString& s1, const QString& s2) 8768: { return s1.localeAwareCompare(s2); } 8768: 8768: int localeAwareCompare(const QStringRef &s) const; 8768: static int localeAwareCompare(const QString& s1, const QStringRef& s2); 8768: 8768: 8768: short toShort(bool *ok=nullptr, int base=10) const; 8768: ushort toUShort(bool *ok=nullptr, int base=10) const; 8768: int toInt(bool *ok=nullptr, int base=10) const; 8768: uint toUInt(bool *ok=nullptr, int base=10) const; 8768: long toLong(bool *ok=nullptr, int base=10) const; 8768: ulong toULong(bool *ok=nullptr, int base=10) const; 8768: qlonglong toLongLong(bool *ok=nullptr, int base=10) const; 8768: qulonglong toULongLong(bool *ok=nullptr, int base=10) const; 8768: float toFloat(bool *ok=nullptr) const; 8768: double toDouble(bool *ok=nullptr) const; 8768: 8768: QString &setNum(short, int base=10); 8768: QString &setNum(ushort, int base=10); 8768: QString &setNum(int, int base=10); 8768: QString &setNum(uint, int base=10); 8768: QString &setNum(long, int base=10); 8768: QString &setNum(ulong, int base=10); 8768: QString &setNum(qlonglong, int base=10); 8768: QString &setNum(qulonglong, int base=10); 8768: QString &setNum(float, char f='g', int prec=6); 8768: QString &setNum(double, char f='g', int prec=6); 8768: 8768: static QString number(int, int base=10); 8768: static QString number(uint, int base=10); 8768: static QString number(long, int base=10); 8768: static QString number(ulong, int base=10); 8768: static QString number(qlonglong, int base=10); 8768: static QString number(qulonglong, int base=10); 8768: static QString number(double, char f='g', int prec=6); 8768: 8768: friend __attribute__((visibility("default"))) bool operator==(const QString &s1, const QString &s2) noexcept; 8768: friend __attribute__((visibility("default"))) bool operator<(const QString &s1, const QString &s2) noexcept; 8768: friend inline bool operator>(const QString &s1, const QString &s2) noexcept { return s2 < s1; } 8768: friend inline bool operator!=(const QString &s1, const QString &s2) noexcept { return !(s1 == s2); } 8768: friend inline bool operator<=(const QString &s1, const QString &s2) noexcept { return !(s1 > s2); } 8768: friend inline bool operator>=(const QString &s1, const QString &s2) noexcept { return !(s1 < s2); } 8768: 8768: bool operator==(QLatin1String s) const noexcept; 8768: bool operator<(QLatin1String s) const noexcept; 8768: bool operator>(QLatin1String s) const noexcept; 8768: inline bool operator!=(QLatin1String s) const noexcept { return !operator==(s); } 8768: inline bool operator<=(QLatin1String s) const noexcept { return !operator>(s); } 8768: inline bool operator>=(QLatin1String s) const noexcept { return !operator<(s); } 8768: # 720 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: typedef QChar *iterator; 8768: typedef const QChar *const_iterator; 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: inline iterator begin(); 8768: inline const_iterator begin() const; 8768: inline const_iterator cbegin() const; 8768: inline const_iterator constBegin() const; 8768: inline iterator end(); 8768: inline const_iterator end() const; 8768: inline const_iterator cend() const; 8768: inline const_iterator constEnd() const; 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8768: 8768: 8768: typedef int size_type; 8768: typedef qptrdiff difference_type; 8768: typedef const QChar & const_reference; 8768: typedef QChar & reference; 8768: typedef QChar *pointer; 8768: typedef const QChar *const_pointer; 8768: typedef QChar value_type; 8768: inline void push_back(QChar c) { append(c); } 8768: inline void push_back(const QString &s) { append(s); } 8768: inline void push_front(QChar c) { prepend(c); } 8768: inline void push_front(const QString &s) { prepend(s); } 8768: 8768: static inline QString fromStdString(const std::string &s); 8768: inline std::string toStdString() const; 8768: static inline QString fromStdWString(const std::wstring &s); 8768: inline std::wstring toStdWString() const; 8768: 8768: 8768: static inline QString fromStdU16String(const std::u16string &s); 8768: inline std::u16string toStdU16String() const; 8768: static inline QString fromStdU32String(const std::u32string &s); 8768: inline std::u32string toStdU32String() const; 8768: # 774 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: struct Null { }; 8768: 8768: static const Null null; 8768: inline QString(const Null &): d(Data::sharedNull()) {} 8768: inline QString &operator=(const Null &) { *this = QString(); return *this; } 8768: 8768: inline bool isNull() const { return d == Data::sharedNull(); } 8768: 8768: 8768: bool isSimpleText() const; 8768: bool isRightToLeft() const; 8768: 8768: QString(int size, Qt::Initialization); 8768: constexpr inline QString(QStringDataPtr dd) : d(dd.ptr) {} 8768: 8768: private: 8768: 8768: QString &operator+=(const char *s); 8768: QString &operator+=(const QByteArray &s); 8768: QString(const char *ch); 8768: QString(const QByteArray &a); 8768: QString &operator=(const char *ch); 8768: QString &operator=(const QByteArray &a); 8768: 8768: 8768: Data *d; 8768: 8768: friend inline bool operator==(QChar, const QString &) noexcept; 8768: friend inline bool operator< (QChar, const QString &) noexcept; 8768: friend inline bool operator> (QChar, const QString &) noexcept; 8768: friend inline bool operator==(QChar, const QStringRef &) noexcept; 8768: friend inline bool operator< (QChar, const QStringRef &) noexcept; 8768: friend inline bool operator> (QChar, const QStringRef &) noexcept; 8768: friend inline bool operator==(QChar, QLatin1String) noexcept; 8768: friend inline bool operator< (QChar, QLatin1String) noexcept; 8768: friend inline bool operator> (QChar, QLatin1String) noexcept; 8768: 8768: void reallocData(uint alloc, bool grow = false); 8768: 8768: void expand(int i); 8768: 8768: QString multiArg(int numArgs, const QString **args) const; 8768: static int compare_helper(const QChar *data1, int length1, 8768: const QChar *data2, int length2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8768: static int compare_helper(const QChar *data1, int length1, 8768: const char *data2, int length2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: static int compare_helper(const QChar *data1, int length1, 8768: QLatin1String s2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8768: static int localeAwareCompare_helper(const QChar *data1, int length1, 8768: const QChar *data2, int length2); 8768: static QString toLower_helper(const QString &str); 8768: static QString toLower_helper(QString &str); 8768: static QString toUpper_helper(const QString &str); 8768: static QString toUpper_helper(QString &str); 8768: static QString toCaseFolded_helper(const QString &str); 8768: static QString toCaseFolded_helper(QString &str); 8768: static QString trimmed_helper(const QString &str); 8768: static QString trimmed_helper(QString &str); 8768: static QString simplified_helper(const QString &str); 8768: static QString simplified_helper(QString &str); 8768: static Data *fromLatin1_helper(const char *str, int size = -1); 8768: static Data *fromAscii_helper(const char *str, int size = -1); 8768: static QString fromUtf8_helper(const char *str, int size); 8768: static QString fromLocal8Bit_helper(const char *, int size); 8768: static QByteArray toLatin1_helper(const QString &); 8768: static QByteArray toLatin1_helper(const QChar *data, int size); 8768: static QByteArray toLatin1_helper_inplace(QString &); 8768: static QByteArray toUtf8_helper(const QString &); 8768: static QByteArray toLocal8Bit_helper(const QChar *data, int size); 8768: static int toUcs4_helper(const ushort *uc, int length, uint *out); 8768: static qlonglong toIntegral_helper(const QChar *data, int len, bool *ok, int base); 8768: static qulonglong toIntegral_helper(const QChar *data, uint len, bool *ok, int base); 8768: void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); 8768: friend class QCharRef; 8768: friend class QTextCodec; 8768: friend class QStringRef; 8768: friend class QByteArray; 8768: friend class QCollator; 8768: friend struct QAbstractConcatenable; 8768: 8768: template static 8768: T toIntegral_helper(const QChar *data, int len, bool *ok, int base) 8768: { 8768: 8768: const bool isUnsigned = T(0) < T(-1); 8768: typedef typename QtPrivate::QConditional::Type Int64; 8768: typedef typename QtPrivate::QConditional::Type Int32; 8768: 8768: 8768: Int64 val = toIntegral_helper(data, Int32(len), ok, base); 8768: if (T(val) != val) { 8768: if (ok) 8768: *ok = false; 8768: val = 0; 8768: } 8768: return T(val); 8768: } 8768: 8768: public: 8768: typedef Data * DataPtr; 8768: inline DataPtr &data_ptr() { return d; } 8768: }; 8768: 8768: inline QString::QString(QLatin1String aLatin1) : d(fromLatin1_helper(aLatin1.latin1(), aLatin1.size())) 8768: { } 8768: inline int QString::length() const 8768: { return d->size; } 8768: inline const QChar QString::at(int i) const 8768: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8768: inline const QChar QString::operator[](int i) const 8768: { do { } while ((false) && (uint(i) < uint(size()))); return d->data()[i]; } 8768: inline const QChar QString::operator[](uint i) const 8768: { do { } while ((false) && (i < uint(size()))); return d->data()[i]; } 8768: inline bool QString::isEmpty() const 8768: { return d->size == 0; } 8768: inline const QChar *QString::unicode() const 8768: { return reinterpret_cast(d->data()); } 8768: inline const QChar *QString::data() const 8768: { return reinterpret_cast(d->data()); } 8768: inline QChar *QString::data() 8768: { detach(); return reinterpret_cast(d->data()); } 8768: inline const QChar *QString::constData() const 8768: { return reinterpret_cast(d->data()); } 8768: inline void QString::detach() 8768: { if (d->ref.isShared() || (d->offset != sizeof(QStringData))) reallocData(uint(d->size) + 1u); } 8768: inline bool QString::isDetached() const 8768: { return !d->ref.isShared(); } 8768: inline void QString::clear() 8768: { if (!isNull()) *this = QString(); } 8768: inline QString::QString(const QString &other) noexcept : d(other.d) 8768: { do { } while ((false) && (&other != this)); d->ref.ref(); } 8768: inline int QString::capacity() const 8768: { return d->alloc ? d->alloc - 1 : 0; } 8768: inline QString &QString::setNum(short n, int base) 8768: { return setNum(qlonglong(n), base); } 8768: inline QString &QString::setNum(ushort n, int base) 8768: { return setNum(qulonglong(n), base); } 8768: inline QString &QString::setNum(int n, int base) 8768: { return setNum(qlonglong(n), base); } 8768: inline QString &QString::setNum(uint n, int base) 8768: { return setNum(qulonglong(n), base); } 8768: inline QString &QString::setNum(long n, int base) 8768: { return setNum(qlonglong(n), base); } 8768: inline QString &QString::setNum(ulong n, int base) 8768: { return setNum(qulonglong(n), base); } 8768: inline QString &QString::setNum(float n, char f, int prec) 8768: { return setNum(double(n),f,prec); } 8768: inline QString QString::arg(int a, int fieldWidth, int base, QChar fillChar) const 8768: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8768: inline QString QString::arg(uint a, int fieldWidth, int base, QChar fillChar) const 8768: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8768: inline QString QString::arg(long a, int fieldWidth, int base, QChar fillChar) const 8768: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8768: inline QString QString::arg(ulong a, int fieldWidth, int base, QChar fillChar) const 8768: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8768: inline QString QString::arg(short a, int fieldWidth, int base, QChar fillChar) const 8768: { return arg(qlonglong(a), fieldWidth, base, fillChar); } 8768: inline QString QString::arg(ushort a, int fieldWidth, int base, QChar fillChar) const 8768: { return arg(qulonglong(a), fieldWidth, base, fillChar); } 8768: inline QString QString::arg(const QString &a1, const QString &a2) const 8768: { const QString *args[2] = { &a1, &a2 }; return multiArg(2, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const 8768: { const QString *args[3] = { &a1, &a2, &a3 }; return multiArg(3, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4) const 8768: { const QString *args[4] = { &a1, &a2, &a3, &a4 }; return multiArg(4, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5) const 8768: { const QString *args[5] = { &a1, &a2, &a3, &a4, &a5 }; return multiArg(5, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6) const 8768: { const QString *args[6] = { &a1, &a2, &a3, &a4, &a5, &a6 }; return multiArg(6, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6, 8768: const QString &a7) const 8768: { const QString *args[7] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7 }; return multiArg(7, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6, 8768: const QString &a7, const QString &a8) const 8768: { const QString *args[8] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8 }; return multiArg(8, args); } 8768: inline QString QString::arg(const QString &a1, const QString &a2, const QString &a3, 8768: const QString &a4, const QString &a5, const QString &a6, 8768: const QString &a7, const QString &a8, const QString &a9) const 8768: { const QString *args[9] = { &a1, &a2, &a3, &a4, &a5, &a6, &a7, &a8, &a9 }; return multiArg(9, args); } 8768: 8768: inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const 8768: { return section(QString(asep), astart, aend, aflags); } 8768: 8768: 8768: # 965 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 965 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: 8768: 8768: 8768: 8768: inline int QString::toWCharArray(wchar_t *array) const 8768: { 8768: if (sizeof(wchar_t) == sizeof(QChar)) { 8768: memcpy(array, d->data(), sizeof(QChar) * size()); 8768: return size(); 8768: } else { 8768: return toUcs4_helper(d->data(), size(), reinterpret_cast(array)); 8768: } 8768: } 8768: 8768: 8768: # 979 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 979 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: 8768: 8768: inline QString QString::fromWCharArray(const wchar_t *string, int size) 8768: { 8768: return sizeof(wchar_t) == sizeof(QChar) ? fromUtf16(reinterpret_cast(string), size) 8768: : fromUcs4(reinterpret_cast(string), size); 8768: } 8768: 8768: 8768: class __attribute__((visibility("default"))) QCharRef { 8768: QString &s; 8768: int i; 8768: inline QCharRef(QString &str, int idx) 8768: : s(str),i(idx) {} 8768: friend class QString; 8768: public: 8768: 8768: 8768: 8768: 8768: inline operator QChar() const 8768: { return i < s.d->size ? s.d->data()[i] : 0; } 8768: inline QCharRef &operator=(QChar c) 8768: { if (i >= s.d->size) s.resize(i + 1, QLatin1Char(' ')); else s.detach(); 8768: s.d->data()[i] = c.unicode(); return *this; } 8768: # 1012 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); } 8768: inline QCharRef &operator=(ushort rc) { return operator=(QChar(rc)); } 8768: inline QCharRef &operator=(short rc) { return operator=(QChar(rc)); } 8768: inline QCharRef &operator=(uint rc) { return operator=(QChar(rc)); } 8768: inline QCharRef &operator=(int rc) { return operator=(QChar(rc)); } 8768: 8768: 8768: inline bool isNull() const { return QChar(*this).isNull(); } 8768: inline bool isPrint() const { return QChar(*this).isPrint(); } 8768: inline bool isPunct() const { return QChar(*this).isPunct(); } 8768: inline bool isSpace() const { return QChar(*this).isSpace(); } 8768: inline bool isMark() const { return QChar(*this).isMark(); } 8768: inline bool isLetter() const { return QChar(*this).isLetter(); } 8768: inline bool isNumber() const { return QChar(*this).isNumber(); } 8768: inline bool isLetterOrNumber() { return QChar(*this).isLetterOrNumber(); } 8768: inline bool isDigit() const { return QChar(*this).isDigit(); } 8768: inline bool isLower() const { return QChar(*this).isLower(); } 8768: inline bool isUpper() const { return QChar(*this).isUpper(); } 8768: inline bool isTitleCase() const { return QChar(*this).isTitleCase(); } 8768: 8768: inline int digitValue() const { return QChar(*this).digitValue(); } 8768: QChar toLower() const { return QChar(*this).toLower(); } 8768: QChar toUpper() const { return QChar(*this).toUpper(); } 8768: QChar toTitleCase () const { return QChar(*this).toTitleCase(); } 8768: 8768: QChar::Category category() const { return QChar(*this).category(); } 8768: QChar::Direction direction() const { return QChar(*this).direction(); } 8768: QChar::JoiningType joiningType() const { return QChar(*this).joiningType(); } 8768: 8768: QChar::Joining joining() const 8768: { 8768: switch (QChar(*this).joiningType()) { 8768: case QChar::Joining_Causing: return QChar::Center; 8768: case QChar::Joining_Dual: return QChar::Dual; 8768: case QChar::Joining_Right: return QChar::Right; 8768: case QChar::Joining_None: 8768: case QChar::Joining_Left: 8768: case QChar::Joining_Transparent: 8768: default: return QChar::OtherJoining; 8768: } 8768: } 8768: 8768: bool hasMirrored() const { return QChar(*this).hasMirrored(); } 8768: QChar mirroredChar() const { return QChar(*this).mirroredChar(); } 8768: QString decomposition() const { return QChar(*this).decomposition(); } 8768: QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); } 8768: uchar combiningClass() const { return QChar(*this).combiningClass(); } 8768: 8768: inline QChar::Script script() const { return QChar(*this).script(); } 8768: 8768: QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); } 8768: 8768: inline uchar cell() const { return QChar(*this).cell(); } 8768: inline uchar row() const { return QChar(*this).row(); } 8768: inline void setCell(uchar cell); 8768: inline void setRow(uchar row); 8768: 8768: 8768: 8768: 8768: char toLatin1() const { return QChar(*this).toLatin1(); } 8768: ushort unicode() const { return QChar(*this).unicode(); } 8768: ushort& unicode() { return s.data()[i].unicode(); } 8768: 8768: }; 8768: 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"; } }; 8768: 8768: inline void QCharRef::setRow(uchar arow) { QChar(*this).setRow(arow); } 8768: inline void QCharRef::setCell(uchar acell) { QChar(*this).setCell(acell); } 8768: 8768: 8768: inline QString::QString() noexcept : d(Data::sharedNull()) {} 8768: inline QString::~QString() { if (!d->ref.deref()) Data::deallocate(d); } 8768: 8768: inline void QString::reserve(int asize) 8768: { 8768: if (d->ref.isShared() || uint(asize) >= d->alloc) 8768: reallocData(qMax(asize, d->size) + 1u); 8768: 8768: if (!d->capacityReserved) { 8768: 8768: d->capacityReserved = true; 8768: } 8768: } 8768: 8768: inline void QString::squeeze() 8768: { 8768: if (d->ref.isShared() || uint(d->size) + 1u < d->alloc) 8768: reallocData(uint(d->size) + 1u); 8768: 8768: if (d->capacityReserved) { 8768: 8768: 8768: d->capacityReserved = false; 8768: } 8768: } 8768: 8768: inline QString &QString::setUtf16(const ushort *autf16, int asize) 8768: { return setUnicode(reinterpret_cast(autf16), asize); } 8768: inline QCharRef QString::operator[](int i) 8768: { do { } while ((false) && (i >= 0)); return QCharRef(*this, i); } 8768: inline QCharRef QString::operator[](uint i) 8768: { return QCharRef(*this, i); } 8768: inline QString::iterator QString::begin() 8768: { detach(); return reinterpret_cast(d->data()); } 8768: inline QString::const_iterator QString::begin() const 8768: { return reinterpret_cast(d->data()); } 8768: inline QString::const_iterator QString::cbegin() const 8768: { return reinterpret_cast(d->data()); } 8768: inline QString::const_iterator QString::constBegin() const 8768: { return reinterpret_cast(d->data()); } 8768: inline QString::iterator QString::end() 8768: { detach(); return reinterpret_cast(d->data() + d->size); } 8768: inline QString::const_iterator QString::end() const 8768: { return reinterpret_cast(d->data() + d->size); } 8768: inline QString::const_iterator QString::cend() const 8768: { return reinterpret_cast(d->data() + d->size); } 8768: inline QString::const_iterator QString::constEnd() const 8768: { return reinterpret_cast(d->data() + d->size); } 8768: inline bool QString::contains(const QString &s, Qt::CaseSensitivity cs) const 8768: { return indexOf(s, 0, cs) != -1; } 8768: inline bool QString::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8768: { return indexOf(s, 0, cs) != -1; } 8768: inline bool QString::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8768: { return indexOf(s, 0, cs) != -1; } 8768: inline bool QString::contains(QChar c, Qt::CaseSensitivity cs) const 8768: { return indexOf(c, 0, cs) != -1; } 8768: 8768: 8768: inline bool operator==(QString::Null, QString::Null) { return true; } 8768: 8768: inline bool operator==(QString::Null, const QString &s) { return s.isNull(); } 8768: 8768: inline bool operator==(const QString &s, QString::Null) { return s.isNull(); } 8768: inline bool operator!=(QString::Null, QString::Null) { return false; } 8768: 8768: inline bool operator!=(QString::Null, const QString &s) { return !s.isNull(); } 8768: 8768: inline bool operator!=(const QString &s, QString::Null) { return !s.isNull(); } 8768: 8768: 8768: inline bool operator==(QLatin1String s1, QLatin1String s2) noexcept 8768: { return s1.size() == s2.size() && (!s1.size() || !memcmp(s1.latin1(), s2.latin1(), s1.size())); } 8768: inline bool operator!=(QLatin1String s1, QLatin1String s2) noexcept 8768: { return !operator==(s1, s2); } 8768: inline bool operator<(QLatin1String s1, QLatin1String s2) noexcept 8768: { 8768: const int len = qMin(s1.size(), s2.size()); 8768: const int r = len ? memcmp(s1.latin1(), s2.latin1(), len) : 0; 8768: return r < 0 || (r == 0 && s1.size() < s2.size()); 8768: } 8768: inline bool operator>(QLatin1String s1, QLatin1String s2) noexcept 8768: { return operator<(s2, s1); } 8768: inline bool operator<=(QLatin1String s1, QLatin1String s2) noexcept 8768: { return !operator>(s1, s2); } 8768: inline bool operator>=(QLatin1String s1, QLatin1String s2) noexcept 8768: { return !operator<(s1, s2); } 8768: 8768: inline bool QLatin1String::operator==(const QString &s) const noexcept 8768: { return s == *this; } 8768: inline bool QLatin1String::operator!=(const QString &s) const noexcept 8768: { return s != *this; } 8768: inline bool QLatin1String::operator>(const QString &s) const noexcept 8768: { return s < *this; } 8768: inline bool QLatin1String::operator<(const QString &s) const noexcept 8768: { return s > *this; } 8768: inline bool QLatin1String::operator>=(const QString &s) const noexcept 8768: { return s <= *this; } 8768: inline bool QLatin1String::operator<=(const QString &s) const noexcept 8768: { return s >= *this; } 8768: # 1318 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: inline std::string QString::toStdString() const 8768: { return toUtf8().toStdString(); } 8768: 8768: inline QString QString::fromStdString(const std::string &s) 8768: { return fromUtf8(s.data(), int(s.size())); } 8768: 8768: inline std::wstring QString::toStdWString() const 8768: { 8768: std::wstring str; 8768: str.resize(length()); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: str.resize(toWCharArray(&(*str.begin()))); 8768: return str; 8768: } 8768: 8768: inline QString QString::fromStdWString(const std::wstring &s) 8768: { return fromWCharArray(s.data(), int(s.size())); } 8768: 8768: 8768: inline QString QString::fromStdU16String(const std::u16string &s) 8768: { return fromUtf16(s.data(), int(s.size())); } 8768: 8768: inline std::u16string QString::toStdU16String() const 8768: { return std::u16string(reinterpret_cast(utf16()), length()); } 8768: 8768: inline QString QString::fromStdU32String(const std::u32string &s) 8768: { return fromUcs4(s.data(), int(s.size())); } 8768: 8768: inline std::u32string QString::toStdU32String() const 8768: { 8768: std::u32string u32str(length(), char32_t(0)); 8768: int len = toUcs4_helper(d->data(), length(), reinterpret_cast(&u32str[0])); 8768: u32str.resize(len); 8768: return u32str; 8768: } 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QString &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QString &); 8768: 8768: 8768: 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); } 8768: 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); } 8768: 8768: 8768: class __attribute__((visibility("default"))) QStringRef { 8768: const QString *m_string; 8768: int m_position; 8768: int m_size; 8768: public: 8768: typedef QString::size_type size_type; 8768: typedef QString::value_type value_type; 8768: typedef const QChar *const_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: typedef QString::const_pointer const_pointer; 8768: typedef QString::const_reference const_reference; 8768: 8768: 8768: inline QStringRef() : m_string(nullptr), m_position(0), m_size(0) {} 8768: inline QStringRef(const QString *string, int position, int size); 8768: inline QStringRef(const QString *string); 8768: 8768: 8768: 8768: QStringRef(const QStringRef &other) noexcept 8768: :m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) 8768: {} 8768: 8768: QStringRef(QStringRef &&other) noexcept : m_string(other.m_string), m_position(other.m_position), m_size(other.m_size) {} 8768: QStringRef &operator=(QStringRef &&other) noexcept { return *this = other; } 8768: 8768: QStringRef &operator=(const QStringRef &other) noexcept 8768: { 8768: m_string = other.m_string; m_position = other.m_position; 8768: m_size = other.m_size; return *this; 8768: } 8768: inline ~QStringRef(){} 8768: 8768: 8768: inline const QString *string() const { return m_string; } 8768: inline int position() const { return m_position; } 8768: inline int size() const { return m_size; } 8768: inline int count() const { return m_size; } 8768: inline int length() const { return m_size; } 8768: 8768: int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline bool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: int count(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: [[nodiscard]] QVector split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: [[nodiscard]] QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: [[nodiscard]] QStringRef left(int n) const; 8768: [[nodiscard]] QStringRef right(int n) const; 8768: [[nodiscard]] QStringRef mid(int pos, int n = -1) const; 8768: 8768: void truncate(int pos) noexcept { m_size = qBound(0, pos, m_size); } 8768: void chop(int n) noexcept 8768: { 8768: if (n >= m_size) 8768: m_size = 0; 8768: else if (n > 0) 8768: m_size -= n; 8768: } 8768: 8768: bool isRightToLeft() const; 8768: 8768: bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool startsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: bool endsWith(const QStringRef &c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: inline QStringRef &operator=(const QString *string); 8768: 8768: inline const QChar *unicode() const 8768: { 8768: if (!m_string) 8768: return reinterpret_cast(QString::Data::sharedNull()->data()); 8768: return m_string->unicode() + m_position; 8768: } 8768: inline const QChar *data() const { return unicode(); } 8768: inline const QChar *constData() const { return unicode(); } 8768: 8768: inline const_iterator begin() const { return unicode(); } 8768: inline const_iterator cbegin() const { return unicode(); } 8768: inline const_iterator constBegin() const { return unicode(); } 8768: inline const_iterator end() const { return unicode() + size(); } 8768: inline const_iterator cend() const { return unicode() + size(); } 8768: inline const_iterator constEnd() const { return unicode() + size(); } 8768: inline const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8768: inline const_reverse_iterator crbegin() const { return rbegin(); } 8768: inline const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8768: inline const_reverse_iterator crend() const { return rend(); } 8768: 8768: 8768: 8768: 8768: 8768: [[nodiscard]] QByteArray toLatin1() const; 8768: [[nodiscard]] QByteArray toUtf8() const; 8768: [[nodiscard]] QByteArray toLocal8Bit() const; 8768: [[nodiscard]] QVector toUcs4() const; 8768: 8768: inline void clear() { m_string = nullptr; m_position = m_size = 0; } 8768: QString toString() const; 8768: inline bool isEmpty() const { return m_size == 0; } 8768: inline bool isNull() const { return m_string == nullptr || m_string->isNull(); } 8768: 8768: QStringRef appendTo(QString *string) const; 8768: 8768: inline const QChar at(int i) const 8768: { do { } while ((false) && (uint(i) < uint(size()))); return m_string->at(i + m_position); } 8768: QChar operator[](int i) const { return at(i); } 8768: # 1510 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8768: int compare(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8768: int compare(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const noexcept; 8768: 8768: 8768: 8768: 8768: static int compare(const QStringRef &s1, const QString &s2, 8768: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8768: static int compare(const QStringRef &s1, const QStringRef &s2, 8768: Qt::CaseSensitivity = Qt::CaseSensitive) noexcept; 8768: static int compare(const QStringRef &s1, QLatin1String s2, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; 8768: 8768: int localeAwareCompare(const QString &s) const; 8768: int localeAwareCompare(const QStringRef &s) const; 8768: static int localeAwareCompare(const QStringRef &s1, const QString &s2); 8768: static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); 8768: 8768: [[nodiscard]] QStringRef trimmed() const; 8768: short toShort(bool *ok = nullptr, int base = 10) const; 8768: ushort toUShort(bool *ok = nullptr, int base = 10) const; 8768: int toInt(bool *ok = nullptr, int base = 10) const; 8768: uint toUInt(bool *ok = nullptr, int base = 10) const; 8768: long toLong(bool *ok = nullptr, int base = 10) const; 8768: ulong toULong(bool *ok = nullptr, int base = 10) const; 8768: qlonglong toLongLong(bool *ok = nullptr, int base = 10) const; 8768: qulonglong toULongLong(bool *ok = nullptr, int base = 10) const; 8768: float toFloat(bool *ok = nullptr) const; 8768: double toDouble(bool *ok = nullptr) const; 8768: }; 8768: 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"; } }; 8768: 8768: inline QStringRef &QStringRef::operator=(const QString *aString) 8768: { m_string = aString; m_position = 0; m_size = aString?aString->size():0; return *this; } 8768: 8768: inline QStringRef::QStringRef(const QString *aString, int aPosition, int aSize) 8768: :m_string(aString), m_position(aPosition), m_size(aSize){} 8768: 8768: inline QStringRef::QStringRef(const QString *aString) 8768: :m_string(aString), m_position(0), m_size(aString?aString->size() : 0){} 8768: 8768: 8768: __attribute__((visibility("default"))) bool operator==(const QStringRef &s1, const QStringRef &s2) noexcept; 8768: inline bool operator!=(const QStringRef &s1, const QStringRef &s2) noexcept 8768: { return !(s1 == s2); } 8768: __attribute__((visibility("default"))) bool operator<(const QStringRef &s1, const QStringRef &s2) noexcept; 8768: inline bool operator>(const QStringRef &s1, const QStringRef &s2) noexcept 8768: { return s2 < s1; } 8768: inline bool operator<=(const QStringRef &s1, const QStringRef &s2) noexcept 8768: { return !(s1 > s2); } 8768: inline bool operator>=(const QStringRef &s1, const QStringRef &s2) noexcept 8768: { return !(s1 < s2); } 8768: 8768: 8768: __attribute__((visibility("default"))) bool operator==(const QString &lhs, const QStringRef &rhs) noexcept; 8768: inline bool operator!=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) != 0; } 8768: inline bool operator< (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) < 0; } 8768: inline bool operator> (const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) > 0; } 8768: inline bool operator<=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) <= 0; } 8768: inline bool operator>=(const QString &lhs, const QStringRef &rhs) noexcept { return lhs.compare(rhs) >= 0; } 8768: 8768: inline bool operator==(const QStringRef &lhs, const QString &rhs) noexcept { return rhs == lhs; } 8768: inline bool operator!=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs != lhs; } 8768: inline bool operator< (const QStringRef &lhs, const QString &rhs) noexcept { return rhs > lhs; } 8768: inline bool operator> (const QStringRef &lhs, const QString &rhs) noexcept { return rhs < lhs; } 8768: inline bool operator<=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs >= lhs; } 8768: inline bool operator>=(const QStringRef &lhs, const QString &rhs) noexcept { return rhs <= lhs; } 8768: 8768: inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8768: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8768: inline int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8768: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8768: inline int QStringRef::compare(const QString &s, Qt::CaseSensitivity cs) const noexcept 8768: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8768: inline int QStringRef::compare(const QStringRef &s, Qt::CaseSensitivity cs) const noexcept 8768: { return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); } 8768: inline int QStringRef::compare(QLatin1String s, Qt::CaseSensitivity cs) const noexcept 8768: { return QString::compare_helper(constData(), length(), s, cs); } 8768: inline int QStringRef::compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs) noexcept 8768: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8768: inline int QStringRef::compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs) noexcept 8768: { return QString::compare_helper(s1.constData(), s1.length(), s2.constData(), s2.length(), cs); } 8768: inline int QStringRef::compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs) noexcept 8768: { return QString::compare_helper(s1.constData(), s1.length(), s2, cs); } 8768: 8768: 8768: __attribute__((visibility("default"))) bool operator==(QLatin1String lhs, const QStringRef &rhs) noexcept; 8768: inline bool operator!=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) != 0; } 8768: inline bool operator< (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) > 0; } 8768: inline bool operator> (QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) < 0; } 8768: inline bool operator<=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) >= 0; } 8768: inline bool operator>=(QLatin1String lhs, const QStringRef &rhs) noexcept { return rhs.compare(lhs) <= 0; } 8768: 8768: inline bool operator==(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs == lhs; } 8768: inline bool operator!=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs != lhs; } 8768: inline bool operator< (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs > lhs; } 8768: inline bool operator> (const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs < lhs; } 8768: inline bool operator<=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs >= lhs; } 8768: inline bool operator>=(const QStringRef &lhs, QLatin1String rhs) noexcept { return rhs <= lhs; } 8768: 8768: 8768: inline bool operator==(QChar lhs, const QString &rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8768: inline bool operator< (QChar lhs, const QString &rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8768: inline bool operator> (QChar lhs, const QString &rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8768: 8768: inline bool operator!=(QChar lhs, const QString &rhs) noexcept { return !(lhs == rhs); } 8768: inline bool operator<=(QChar lhs, const QString &rhs) noexcept { return !(lhs > rhs); } 8768: inline bool operator>=(QChar lhs, const QString &rhs) noexcept { return !(lhs < rhs); } 8768: 8768: inline bool operator==(const QString &lhs, QChar rhs) noexcept { return rhs == lhs; } 8768: inline bool operator!=(const QString &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8768: inline bool operator< (const QString &lhs, QChar rhs) noexcept { return rhs > lhs; } 8768: inline bool operator> (const QString &lhs, QChar rhs) noexcept { return rhs < lhs; } 8768: inline bool operator<=(const QString &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8768: inline bool operator>=(const QString &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8768: 8768: 8768: inline bool operator==(QChar lhs, const QStringRef &rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) == 0; } 8768: inline bool operator< (QChar lhs, const QStringRef &rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) < 0; } 8768: inline bool operator> (QChar lhs, const QStringRef &rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs.data(), rhs.size()) > 0; } 8768: 8768: inline bool operator!=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs == rhs); } 8768: inline bool operator<=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs > rhs); } 8768: inline bool operator>=(QChar lhs, const QStringRef &rhs) noexcept { return !(lhs < rhs); } 8768: 8768: inline bool operator==(const QStringRef &lhs, QChar rhs) noexcept { return rhs == lhs; } 8768: inline bool operator!=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8768: inline bool operator< (const QStringRef &lhs, QChar rhs) noexcept { return rhs > lhs; } 8768: inline bool operator> (const QStringRef &lhs, QChar rhs) noexcept { return rhs < lhs; } 8768: inline bool operator<=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8768: inline bool operator>=(const QStringRef &lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8768: 8768: 8768: inline bool operator==(QChar lhs, QLatin1String rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs) == 0; } 8768: inline bool operator< (QChar lhs, QLatin1String rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs) < 0; } 8768: inline bool operator> (QChar lhs, QLatin1String rhs) noexcept 8768: { return QString::compare_helper(&lhs, 1, rhs) > 0; } 8768: 8768: inline bool operator!=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs == rhs); } 8768: inline bool operator<=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs > rhs); } 8768: inline bool operator>=(QChar lhs, QLatin1String rhs) noexcept { return !(lhs < rhs); } 8768: 8768: inline bool operator==(QLatin1String lhs, QChar rhs) noexcept { return rhs == lhs; } 8768: inline bool operator!=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs == lhs); } 8768: inline bool operator< (QLatin1String lhs, QChar rhs) noexcept { return rhs > lhs; } 8768: inline bool operator> (QLatin1String lhs, QChar rhs) noexcept { return rhs < lhs; } 8768: inline bool operator<=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs < lhs); } 8768: inline bool operator>=(QLatin1String lhs, QChar rhs) noexcept { return !(rhs > lhs); } 8768: # 1712 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: inline int QString::localeAwareCompare(const QStringRef &s) const 8768: { return localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8768: inline int QString::localeAwareCompare(const QString& s1, const QStringRef& s2) 8768: { return localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8768: inline int QStringRef::localeAwareCompare(const QString &s) const 8768: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8768: inline int QStringRef::localeAwareCompare(const QStringRef &s) const 8768: { return QString::localeAwareCompare_helper(constData(), length(), s.constData(), s.length()); } 8768: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QString &s2) 8768: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8768: inline int QStringRef::localeAwareCompare(const QStringRef &s1, const QStringRef &s2) 8768: { return QString::localeAwareCompare_helper(s1.constData(), s1.length(), s2.constData(), s2.length()); } 8768: 8768: inline bool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const 8768: { return indexOf(s, 0, cs) != -1; } 8768: inline bool QStringRef::contains(QLatin1String s, Qt::CaseSensitivity cs) const 8768: { return indexOf(s, 0, cs) != -1; } 8768: inline bool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const 8768: { return indexOf(c, 0, cs) != -1; } 8768: inline bool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const 8768: { return indexOf(s, 0, cs) != -1; } 8768: 8768: inline QString &QString::insert(int i, const QStringRef &s) 8768: { return insert(i, s.constData(), s.length()); } 8768: # 1754 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 3 4 8768: namespace Qt { 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h" 1 3 4 8768: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8768: 8768: 8768: 8768: struct __attribute__((visibility("default"))) QAbstractConcatenable 8768: { 8768: protected: 8768: static void convertFromAscii(const char *a, int len, QChar *&out) noexcept; 8768: static inline void convertFromAscii(char a, QChar *&out) noexcept 8768: { 8768: *out++ = QLatin1Char(a); 8768: } 8768: static void appendLatin1To(const char *a, int len, QChar *out) noexcept; 8768: }; 8768: 8768: template struct QConcatenable {}; 8768: 8768: namespace QtStringBuilder { 8768: template struct ConvertToTypeHelper 8768: { typedef A ConvertTo; }; 8768: template struct ConvertToTypeHelper 8768: { typedef QString ConvertTo; }; 8768: } 8768: 8768: template 8768: struct QStringBuilderCommon 8768: { 8768: T toUpper() const { return resolved().toUpper(); } 8768: T toLower() const { return resolved().toLower(); } 8768: 8768: protected: 8768: T resolved() const { return *static_cast(this); } 8768: }; 8768: 8768: template 8768: struct QStringBuilderBase : public QStringBuilderCommon 8768: { 8768: }; 8768: 8768: template 8768: struct QStringBuilderBase : public QStringBuilderCommon 8768: { 8768: QByteArray toLatin1() const { return this->resolved().toLatin1(); } 8768: QByteArray toUtf8() const { return this->resolved().toUtf8(); } 8768: QByteArray toLocal8Bit() const { return this->resolved().toLocal8Bit(); } 8768: }; 8768: 8768: template 8768: class QStringBuilder : public QStringBuilderBase, typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo> 8768: { 8768: public: 8768: QStringBuilder(const A &a_, const B &b_) : a(a_), b(b_) {} 8768: private: 8768: friend class QByteArray; 8768: friend class QString; 8768: template T convertTo() const 8768: { 8768: const uint len = QConcatenable< QStringBuilder >::size(*this); 8768: T s(len, Qt::Uninitialized); 8768: 8768: 8768: 8768: typename T::iterator d = const_cast(s.constData()); 8768: typename T::const_iterator const start = d; 8768: QConcatenable< QStringBuilder >::appendTo(*this, d); 8768: 8768: if (!QConcatenable< QStringBuilder >::ExactSize && int(len) != d - start) { 8768: 8768: 8768: s.resize(d - start); 8768: } 8768: return s; 8768: } 8768: 8768: typedef QConcatenable > Concatenable; 8768: typedef typename Concatenable::ConvertTo ConvertTo; 8768: public: 8768: operator ConvertTo() const { return convertTo(); } 8768: 8768: int size() const { return Concatenable::size(*this); } 8768: 8768: const A &a; 8768: const B &b; 8768: }; 8768: 8768: template <> 8768: class QStringBuilder : public QStringBuilderBase, QString> 8768: { 8768: public: 8768: QStringBuilder(const QString &a_, const QString &b_) : a(a_), b(b_) {} 8768: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8768: 8768: operator QString() const 8768: { QString r(a); r += b; return r; } 8768: 8768: const QString &a; 8768: const QString &b; 8768: 8768: private: 8768: QStringBuilder &operator=(const QStringBuilder &) = delete; 8768: }; 8768: 8768: template <> 8768: class QStringBuilder : public QStringBuilderBase, QByteArray> 8768: { 8768: public: 8768: QStringBuilder(const QByteArray &a_, const QByteArray &b_) : a(a_), b(b_) {} 8768: QStringBuilder(const QStringBuilder &other) : a(other.a), b(other.b) {} 8768: 8768: operator QByteArray() const 8768: { QByteArray r(a); r += b; return r; } 8768: 8768: const QByteArray &a; 8768: const QByteArray &b; 8768: 8768: private: 8768: QStringBuilder &operator=(const QStringBuilder &) = delete; 8768: }; 8768: 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef char type; 8768: typedef QByteArray ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const char) { return 1; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: static inline void appendTo(const char c, char *&out) 8768: { *out++ = c; } 8768: }; 8768: 8768: template <> struct QConcatenable 8768: { 8768: typedef QLatin1Char type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const QLatin1Char) { return 1; } 8768: static inline void appendTo(const QLatin1Char c, QChar *&out) 8768: { *out++ = c; } 8768: static inline void appendTo(const QLatin1Char c, char *&out) 8768: { *out++ = c.toLatin1(); } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QChar type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const QChar) { return 1; } 8768: static inline void appendTo(const QChar c, QChar *&out) 8768: { *out++ = c; } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QChar::SpecialCharacter type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const QChar::SpecialCharacter) { return 1; } 8768: static inline void appendTo(const QChar::SpecialCharacter c, QChar *&out) 8768: { *out++ = c; } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QCharRef type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(QCharRef) { return 1; } 8768: static inline void appendTo(QCharRef c, QChar *&out) 8768: { *out++ = QChar(c); } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QLatin1String type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const QLatin1String a) { return a.size(); } 8768: static inline void appendTo(const QLatin1String a, QChar *&out) 8768: { 8768: appendLatin1To(a.latin1(), a.size(), out); 8768: out += a.size(); 8768: } 8768: static inline void appendTo(const QLatin1String a, char *&out) 8768: { 8768: if (const char *data = a.data()) { 8768: memcpy(out, data, a.size()); 8768: out += a.size(); 8768: } 8768: } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QString type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const QString &a) { return a.size(); } 8768: static inline void appendTo(const QString &a, QChar *&out) 8768: { 8768: const int n = a.size(); 8768: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8768: out += n; 8768: } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QStringRef type; 8768: typedef QString ConvertTo; 8768: enum { ExactSize = true }; 8768: static int size(const QStringRef &a) { return a.size(); } 8768: static inline void appendTo(const QStringRef &a, QChar *&out) 8768: { 8768: const int n = a.size(); 8768: memcpy(out, reinterpret_cast(a.constData()), sizeof(QChar) * n); 8768: out += n; 8768: } 8768: }; 8768: 8768: template struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef const char type[N]; 8768: typedef QByteArray ConvertTo; 8768: enum { ExactSize = false }; 8768: static int size(const char[N]) { return N - 1; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: static inline void appendTo(const char a[N], char *&out) 8768: { 8768: while (*a) 8768: *out++ = *a++; 8768: } 8768: }; 8768: 8768: template struct QConcatenable : QConcatenable 8768: { 8768: typedef char type[N]; 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef char const *type; 8768: typedef QByteArray ConvertTo; 8768: enum { ExactSize = false }; 8768: static int size(const char *a) { return qstrlen(a); } 8768: 8768: 8768: 8768: 8768: static inline void appendTo(const char *a, char *&out) 8768: { 8768: if (!a) 8768: return; 8768: while (*a) 8768: *out++ = *a++; 8768: } 8768: }; 8768: 8768: template <> struct QConcatenable : private QAbstractConcatenable 8768: { 8768: typedef QByteArray type; 8768: typedef QByteArray ConvertTo; 8768: enum { ExactSize = false }; 8768: static int size(const QByteArray &ba) { return ba.size(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: static inline void appendTo(const QByteArray &ba, char *&out) 8768: { 8768: const char *a = ba.constData(); 8768: const char * const end = ba.end(); 8768: while (a != end) 8768: *out++ = *a++; 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct QConcatenable< QStringBuilder > 8768: { 8768: typedef QStringBuilder type; 8768: typedef typename QtStringBuilder::ConvertToTypeHelper::ConvertTo, typename QConcatenable::ConvertTo>::ConvertTo ConvertTo; 8768: enum { ExactSize = QConcatenable::ExactSize && QConcatenable::ExactSize }; 8768: static int size(const type &p) 8768: { 8768: return QConcatenable::size(p.a) + QConcatenable::size(p.b); 8768: } 8768: template static inline void appendTo(const type &p, T *&out) 8768: { 8768: QConcatenable::appendTo(p.a, out); 8768: QConcatenable::appendTo(p.b, out); 8768: } 8768: }; 8768: 8768: template 8768: QStringBuilder::type, typename QConcatenable::type> 8768: operator%(const A &a, const B &b) 8768: { 8768: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: QStringBuilder::type, typename QConcatenable::type> 8768: operator+(const A &a, const B &b) 8768: { 8768: return QStringBuilder::type, typename QConcatenable::type>(a, b); 8768: } 8768: 8768: 8768: namespace QtStringBuilder { 8768: template 8768: QByteArray &appendToByteArray(QByteArray &a, const QStringBuilder &b, char) 8768: { 8768: 8768: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8768: a.reserve(len); 8768: char *it = a.data() + a.size(); 8768: QConcatenable< QStringBuilder >::appendTo(b, it); 8768: a.resize(len); 8768: return a; 8768: } 8768: # 400 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h" 3 4 8768: } 8768: 8768: template 8768: QByteArray &operator+=(QByteArray &a, const QStringBuilder &b) 8768: { 8768: return QtStringBuilder::appendToByteArray(a, b, 8768: typename QConcatenable< QStringBuilder >::ConvertTo::value_type()); 8768: } 8768: 8768: template 8768: QString &operator+=(QString &a, const QStringBuilder &b) 8768: { 8768: int len = a.size() + QConcatenable< QStringBuilder >::size(b); 8768: a.reserve(len); 8768: QChar *it = a.data() + a.size(); 8768: QConcatenable< QStringBuilder >::appendTo(b, it); 8768: a.resize(int(it - a.constData())); 8768: return a; 8768: } 8768: 8768: 8768: 8768: # 1766 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QString" 2 3 4 8768: # 27 "/<>/templates/lib/exception.h" 2 8768: 8768: 8768: 8768: 8768: # 30 "/<>/templates/lib/exception.h" 8768: namespace Grantlee 8768: { 8768: 8768: 8768: 8768: 8768: enum Error { 8768: NoError, 8768: EmptyVariableError, 8768: EmptyBlockTagError, 8768: InvalidBlockTagError, 8768: UnclosedBlockTagError, 8768: UnknownFilterError, 8768: TagSyntaxError, 8768: 8768: 8768: VariableNotInContext, 8768: ObjectReturnTypeInvalid, 8768: CompileFunctionError 8768: }; 8768: # 82 "/<>/templates/lib/exception.h" 8768: class __attribute__((visibility("default"))) Exception 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: Exception(Error errorCode, const QString &what) 8768: : m_errorCode(errorCode), m_what(what) 8768: { 8768: } 8768: 8768: virtual ~Exception() throw() {} 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: const QString what() const throw() { return m_what; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: Error errorCode() const { return m_errorCode; } 8768: 8768: 8768: private: 8768: Error m_errorCode; 8768: QString m_what; 8768: }; 8768: } 8768: # 25 "/<>/templates/lib/template.h" 2 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 26 "/<>/templates/lib/template.h" 2 8768: # 1 "/<>/templates/lib/node.h" 1 8768: # 26 "/<>/templates/lib/node.h" 8768: # 1 "/<>/templates/lib/context.h" 1 8768: # 24 "/<>/templates/lib/context.h" 8768: # 1 "/<>/templates/lib/abstractlocalizer.h" 1 8768: # 24 "/<>/templates/lib/abstractlocalizer.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/abstractlocalizer.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLocale" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 1 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: 8768: 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: 8768: 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: namespace QAlgorithmsPrivate { 8768: 8768: 8768: template 8768: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8768: template 8768: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy); 8768: 8768: template 8768: void qStableSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan); 8768: template 8768: inline void qStableSortHelper(RandomAccessIterator, RandomAccessIterator, const T &); 8768: 8768: template 8768: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8768: template 8768: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8768: template 8768: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan); 8768: 8768: 8768: } 8768: 8768: 8768: template 8768: inline OutputIterator qCopy(InputIterator begin, InputIterator end, OutputIterator dest) 8768: { 8768: while (begin != end) 8768: *dest++ = *begin++; 8768: return dest; 8768: } 8768: 8768: template 8768: inline BiIterator2 qCopyBackward(BiIterator1 begin, BiIterator1 end, BiIterator2 dest) 8768: { 8768: while (begin != end) 8768: *--dest = *--end; 8768: return dest; 8768: } 8768: 8768: template 8768: inline bool qEqual(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) 8768: { 8768: for (; first1 != last1; ++first1, ++first2) 8768: if (!(*first1 == *first2)) 8768: return false; 8768: return true; 8768: } 8768: 8768: template 8768: inline void qFill(ForwardIterator first, ForwardIterator last, const T &val) 8768: { 8768: for (; first != last; ++first) 8768: *first = val; 8768: } 8768: 8768: template 8768: inline void qFill(Container &container, const T &val) 8768: { 8768: qFill(container.begin(), container.end(), val); 8768: } 8768: 8768: template 8768: inline InputIterator qFind(InputIterator first, InputIterator last, const T &val) 8768: { 8768: while (first != last && !(*first == val)) 8768: ++first; 8768: return first; 8768: } 8768: 8768: template 8768: inline typename Container::const_iterator qFind(const Container &container, const T &val) 8768: { 8768: return qFind(container.constBegin(), container.constEnd(), val); 8768: } 8768: 8768: template 8768: inline void qCount(InputIterator first, InputIterator last, const T &value, Size &n) 8768: { 8768: for (; first != last; ++first) 8768: if (*first == value) 8768: ++n; 8768: } 8768: 8768: template 8768: inline void qCount(const Container &container, const T &value, Size &n) 8768: { 8768: qCount(container.constBegin(), container.constEnd(), value, n); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class qLess 8768: { 8768: public: 8768: inline bool operator()(const T &t1, const T &t2) const 8768: { 8768: return (t1 < t2); 8768: } 8768: }; 8768: 8768: template 8768: class qGreater 8768: { 8768: public: 8768: inline bool operator()(const T &t1, const T &t2) const 8768: { 8768: return (t2 < t1); 8768: } 8768: }; 8768: 8768: 8768: template 8768: inline void qSort(RandomAccessIterator start, RandomAccessIterator end) 8768: { 8768: if (start != end) 8768: QAlgorithmsPrivate::qSortHelper(start, end, *start); 8768: } 8768: 8768: template 8768: inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8768: { 8768: if (start != end) 8768: QAlgorithmsPrivate::qSortHelper(start, end, *start, lessThan); 8768: } 8768: 8768: template 8768: inline void qSort(Container &c) 8768: { 8768: 8768: 8768: 8768: 8768: if (!c.empty()) 8768: QAlgorithmsPrivate::qSortHelper(c.begin(), c.end(), *c.begin()); 8768: } 8768: 8768: template 8768: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end) 8768: { 8768: if (start != end) 8768: QAlgorithmsPrivate::qStableSortHelper(start, end, *start); 8768: } 8768: 8768: template 8768: inline void qStableSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) 8768: { 8768: if (start != end) 8768: QAlgorithmsPrivate::qStableSortHelper(start, end, *start, lessThan); 8768: } 8768: 8768: template 8768: inline void qStableSort(Container &c) 8768: { 8768: 8768: 8768: 8768: 8768: if (!c.empty()) 8768: QAlgorithmsPrivate::qStableSortHelper(c.begin(), c.end(), *c.begin()); 8768: } 8768: 8768: template 8768: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8768: { 8768: 8768: 8768: 8768: RandomAccessIterator middle; 8768: int n = end - begin; 8768: int half; 8768: 8768: while (n > 0) { 8768: half = n >> 1; 8768: middle = begin + half; 8768: if (*middle < value) { 8768: begin = middle + 1; 8768: n -= half + 1; 8768: } else { 8768: n = half; 8768: } 8768: } 8768: return begin; 8768: } 8768: 8768: template 8768: RandomAccessIterator qLowerBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8768: { 8768: return QAlgorithmsPrivate::qLowerBoundHelper(begin, end, value, lessThan); 8768: } 8768: 8768: template 8768: typename Container::const_iterator qLowerBound(const Container &container, const T &value) 8768: { 8768: return QAlgorithmsPrivate::qLowerBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8768: } 8768: 8768: template 8768: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8768: { 8768: 8768: RandomAccessIterator middle; 8768: int n = end - begin; 8768: int half; 8768: 8768: while (n > 0) { 8768: half = n >> 1; 8768: middle = begin + half; 8768: if (value < *middle) { 8768: n = half; 8768: } else { 8768: begin = middle + 1; 8768: n -= half + 1; 8768: } 8768: } 8768: return begin; 8768: } 8768: 8768: template 8768: RandomAccessIterator qUpperBound(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8768: { 8768: return QAlgorithmsPrivate::qUpperBoundHelper(begin, end, value, lessThan); 8768: } 8768: 8768: template 8768: typename Container::const_iterator qUpperBound(const Container &container, const T &value) 8768: { 8768: return QAlgorithmsPrivate::qUpperBoundHelper(container.constBegin(), container.constEnd(), value, qLess()); 8768: } 8768: 8768: template 8768: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value) 8768: { 8768: 8768: RandomAccessIterator it = qLowerBound(begin, end, value); 8768: 8768: if (it == end || value < *it) 8768: return end; 8768: 8768: return it; 8768: } 8768: 8768: template 8768: RandomAccessIterator qBinaryFind(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8768: { 8768: return QAlgorithmsPrivate::qBinaryFindHelper(begin, end, value, lessThan); 8768: } 8768: 8768: template 8768: typename Container::const_iterator qBinaryFind(const Container &container, const T &value) 8768: { 8768: return QAlgorithmsPrivate::qBinaryFindHelper(container.constBegin(), container.constEnd(), value, qLess()); 8768: } 8768: 8768: 8768: template 8768: void qDeleteAll(ForwardIterator begin, ForwardIterator end) 8768: { 8768: while (begin != end) { 8768: delete *begin; 8768: ++begin; 8768: } 8768: } 8768: 8768: template 8768: inline void qDeleteAll(const Container &c) 8768: { 8768: qDeleteAll(c.begin(), c.end()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: namespace QAlgorithmsPrivate { 8768: 8768: 8768: 8768: template 8768: void qSortHelper(RandomAccessIterator start, RandomAccessIterator end, const T &t, LessThan lessThan) 8768: { 8768: top: 8768: int span = int(end - start); 8768: if (span < 2) 8768: return; 8768: 8768: --end; 8768: RandomAccessIterator low = start, high = end - 1; 8768: RandomAccessIterator pivot = start + span / 2; 8768: 8768: if (lessThan(*end, *start)) 8768: qSwap(*end, *start); 8768: if (span == 2) 8768: return; 8768: 8768: if (lessThan(*pivot, *start)) 8768: qSwap(*pivot, *start); 8768: if (lessThan(*end, *pivot)) 8768: qSwap(*end, *pivot); 8768: if (span == 3) 8768: return; 8768: 8768: qSwap(*pivot, *end); 8768: 8768: while (low < high) { 8768: while (low < high && lessThan(*low, *end)) 8768: ++low; 8768: 8768: while (high > low && lessThan(*end, *high)) 8768: --high; 8768: 8768: if (low < high) { 8768: qSwap(*low, *high); 8768: ++low; 8768: --high; 8768: } else { 8768: break; 8768: } 8768: } 8768: 8768: if (lessThan(*low, *end)) 8768: ++low; 8768: 8768: qSwap(*end, *low); 8768: qSortHelper(start, low, t, lessThan); 8768: 8768: start = low + 1; 8768: ++end; 8768: goto top; 8768: } 8768: 8768: template 8768: inline void qSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8768: { 8768: qSortHelper(begin, end, dummy, qLess()); 8768: } 8768: 8768: template 8768: void qReverse(RandomAccessIterator begin, RandomAccessIterator end) 8768: { 8768: --end; 8768: while (begin < end) 8768: qSwap(*begin++, *end--); 8768: } 8768: 8768: template 8768: void qRotate(RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end) 8768: { 8768: qReverse(begin, middle); 8768: qReverse(middle, end); 8768: qReverse(begin, end); 8768: } 8768: 8768: template 8768: void qMerge(RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &t, LessThan lessThan) 8768: { 8768: const int len1 = pivot - begin; 8768: const int len2 = end - pivot; 8768: 8768: if (len1 == 0 || len2 == 0) 8768: return; 8768: 8768: if (len1 + len2 == 2) { 8768: if (lessThan(*(begin + 1), *(begin))) 8768: qSwap(*begin, *(begin + 1)); 8768: return; 8768: } 8768: 8768: RandomAccessIterator firstCut; 8768: RandomAccessIterator secondCut; 8768: int len2Half; 8768: if (len1 > len2) { 8768: const int len1Half = len1 / 2; 8768: firstCut = begin + len1Half; 8768: secondCut = qLowerBound(pivot, end, *firstCut, lessThan); 8768: len2Half = secondCut - pivot; 8768: } else { 8768: len2Half = len2 / 2; 8768: secondCut = pivot + len2Half; 8768: firstCut = qUpperBound(begin, pivot, *secondCut, lessThan); 8768: } 8768: 8768: qRotate(firstCut, pivot, secondCut); 8768: const RandomAccessIterator newPivot = firstCut + len2Half; 8768: qMerge(begin, firstCut, newPivot, t, lessThan); 8768: qMerge(newPivot, secondCut, end, t, lessThan); 8768: } 8768: 8768: template 8768: void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &t, LessThan lessThan) 8768: { 8768: const int span = end - begin; 8768: if (span < 2) 8768: return; 8768: 8768: const RandomAccessIterator middle = begin + span / 2; 8768: qStableSortHelper(begin, middle, t, lessThan); 8768: qStableSortHelper(middle, end, t, lessThan); 8768: qMerge(begin, middle, end, t, lessThan); 8768: } 8768: 8768: template 8768: inline void qStableSortHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &dummy) 8768: { 8768: qStableSortHelper(begin, end, dummy, qLess()); 8768: } 8768: 8768: template 8768: RandomAccessIterator qLowerBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8768: { 8768: RandomAccessIterator middle; 8768: int n = int(end - begin); 8768: int half; 8768: 8768: while (n > 0) { 8768: half = n >> 1; 8768: middle = begin + half; 8768: if (lessThan(*middle, value)) { 8768: begin = middle + 1; 8768: n -= half + 1; 8768: } else { 8768: n = half; 8768: } 8768: } 8768: return begin; 8768: } 8768: 8768: 8768: template 8768: RandomAccessIterator qUpperBoundHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8768: { 8768: RandomAccessIterator middle; 8768: int n = end - begin; 8768: int half; 8768: 8768: while (n > 0) { 8768: half = n >> 1; 8768: middle = begin + half; 8768: if (lessThan(value, *middle)) { 8768: n = half; 8768: } else { 8768: begin = middle + 1; 8768: n -= half + 1; 8768: } 8768: } 8768: return begin; 8768: } 8768: 8768: template 8768: RandomAccessIterator qBinaryFindHelper(RandomAccessIterator begin, RandomAccessIterator end, const T &value, LessThan lessThan) 8768: { 8768: RandomAccessIterator it = qLowerBoundHelper(begin, end, value, lessThan); 8768: 8768: if (it == end || lessThan(value, *it)) 8768: return end; 8768: 8768: return it; 8768: } 8768: # 536 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzs(quint16 v) noexcept 8768: { 8768: 8768: 8768: 8768: return __builtin_ctz(v); 8768: 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzs(quint16 v) noexcept 8768: { 8768: 8768: 8768: 8768: return __builtin_clz(v) - 16U; 8768: 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctz(quint32 v) noexcept 8768: { 8768: return __builtin_ctz(v); 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_clz(quint32 v) noexcept 8768: { 8768: return __builtin_clz(v); 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_ctzll(quint64 v) noexcept 8768: { 8768: return __builtin_ctzll(v); 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_clzll(quint64 v) noexcept 8768: { 8768: return __builtin_clzll(v); 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint32 v) noexcept 8768: { 8768: return __builtin_popcount(v); 8768: } 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint8 v) noexcept 8768: { 8768: return __builtin_popcount(v); 8768: } 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcount(quint16 v) noexcept 8768: { 8768: return __builtin_popcount(v); 8768: } 8768: 8768: constexpr inline __attribute__((always_inline)) uint qt_builtin_popcountll(quint64 v) noexcept 8768: { 8768: return __builtin_popcountll(v); 8768: } 8768: # 681 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: __attribute__((const)) constexpr inline uint qPopulationCount(quint32 v) noexcept 8768: { 8768: 8768: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: __attribute__((const)) constexpr inline uint qPopulationCount(quint8 v) noexcept 8768: { 8768: 8768: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8768: 8768: 8768: 8768: 8768: } 8768: 8768: __attribute__((const)) constexpr inline uint qPopulationCount(quint16 v) noexcept 8768: { 8768: 8768: return QAlgorithmsPrivate::qt_builtin_popcount(v); 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: __attribute__((const)) constexpr inline uint qPopulationCount(quint64 v) noexcept 8768: { 8768: 8768: return QAlgorithmsPrivate::qt_builtin_popcountll(v); 8768: # 730 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: __attribute__((const)) constexpr inline uint qPopulationCount(long unsigned int v) noexcept 8768: { 8768: return qPopulationCount(static_cast(v)); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: inline uint qCountTrailingZeroBits(quint32 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 32U; 8768: # 758 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: inline uint qCountTrailingZeroBits(quint8 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_ctz(v) : 8U; 8768: # 773 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: inline uint qCountTrailingZeroBits(quint16 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_ctzs(v) : 16U; 8768: # 789 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: inline uint qCountTrailingZeroBits(quint64 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_ctzll(v) : 64; 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: inline uint qCountTrailingZeroBits(unsigned long v) noexcept 8768: { 8768: return qCountTrailingZeroBits(QIntegerForSizeof::Unsigned(v)); 8768: } 8768: 8768: inline uint qCountLeadingZeroBits(quint32 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_clz(v) : 32U; 8768: # 820 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: inline uint qCountLeadingZeroBits(quint8 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U; 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: inline uint qCountLeadingZeroBits(quint16 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: inline uint qCountLeadingZeroBits(quint64 v) noexcept 8768: { 8768: 8768: return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U; 8768: # 860 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: } 8768: 8768: inline uint qCountLeadingZeroBits(unsigned long v) noexcept 8768: { 8768: return qCountLeadingZeroBits(QIntegerForSizeof::Unsigned(v)); 8768: } 8768: 8768: 8768: # 867 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 867 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h" 3 4 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h" 3 4 8768: 8768: # 182 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h" 3 4 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpair.h" 3 4 8768: 8768: 8768: 8768: template 8768: struct QPair 8768: { 8768: typedef T1 first_type; 8768: typedef T2 second_type; 8768: 8768: constexpr QPair() 8768: noexcept((std::is_nothrow_default_constructible::value && std::is_nothrow_default_constructible::value)) 8768: 8768: : first(), second() {} 8768: constexpr QPair(const T1 &t1, const T2 &t2) 8768: noexcept((std::is_nothrow_copy_constructible::value && std::is_nothrow_copy_constructible::value)) 8768: 8768: : first(t1), second(t2) {} 8768: 8768: 8768: template 8768: constexpr QPair(const QPair &p) 8768: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8768: 8768: : first(p.first), second(p.second) {} 8768: template 8768: QPair &operator=(const QPair &p) 8768: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8768: 8768: { first = p.first; second = p.second; return *this; } 8768: 8768: template 8768: constexpr QPair(QPair &&p) 8768: noexcept((std::is_nothrow_constructible::value && std::is_nothrow_constructible::value)) 8768: 8768: 8768: : first(static_cast(p.first)), second(static_cast(p.second)) {} 8768: template 8768: QPair &operator=(QPair &&p) 8768: noexcept((std::is_nothrow_assignable::value && std::is_nothrow_assignable::value)) 8768: 8768: { first = std::move(p.first); second = std::move(p.second); return *this; } 8768: 8768: 8768: void swap(QPair &other) 8768: noexcept(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second))) 8768: { 8768: 8768: qSwap(first, other.first); 8768: qSwap(second, other.second); 8768: } 8768: 8768: T1 first; 8768: T2 second; 8768: }; 8768: 8768: template 8768: void swap(QPair &lhs, QPair &rhs) noexcept(noexcept(lhs.swap(rhs))) 8768: { lhs.swap(rhs); } 8768: 8768: 8768: 8768: template 8768: class QTypeInfo > : public QTypeInfoMerger, T1, T2> {}; 8768: 8768: template 8768: constexpr inline bool operator==(const QPair &p1, const QPair &p2) 8768: noexcept(noexcept(p1.first == p2.first && p1.second == p2.second)) 8768: { return p1.first == p2.first && p1.second == p2.second; } 8768: 8768: template 8768: constexpr inline bool operator!=(const QPair &p1, const QPair &p2) 8768: noexcept(noexcept(!(p1 == p2))) 8768: { return !(p1 == p2); } 8768: 8768: template 8768: constexpr inline bool operator<(const QPair &p1, const QPair &p2) 8768: noexcept(noexcept(p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second))) 8768: { 8768: return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); 8768: } 8768: 8768: template 8768: constexpr inline bool operator>(const QPair &p1, const QPair &p2) 8768: noexcept(noexcept(p2 < p1)) 8768: { 8768: return p2 < p1; 8768: } 8768: 8768: template 8768: constexpr inline bool operator<=(const QPair &p1, const QPair &p2) 8768: noexcept(noexcept(!(p2 < p1))) 8768: { 8768: return !(p2 < p1); 8768: } 8768: 8768: template 8768: constexpr inline bool operator>=(const QPair &p1, const QPair &p2) 8768: noexcept(noexcept(!(p1 < p2))) 8768: { 8768: return !(p1 < p2); 8768: } 8768: 8768: template 8768: constexpr QPair qMakePair(const T1 &x, const T2 &y) 8768: noexcept(noexcept(QPair(x, y))) 8768: { 8768: return QPair(x, y); 8768: } 8768: 8768: 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 2 3 4 8768: 8768: # 1 "/usr/include/c++/8/numeric" 1 3 4 8768: # 58 "/usr/include/c++/8/numeric" 3 4 8768: 8768: # 59 "/usr/include/c++/8/numeric" 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_numeric.h" 1 3 8768: # 65 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 80 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: void 8768: iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: { 8768: *__first = __value; 8768: ++__value; 8768: } 8768: } 8768: 8768: 8768: } 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 118 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: inline _Tp 8768: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) 8768: { 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: __init = __init + *__first; 8768: return __init; 8768: } 8768: # 144 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: inline _Tp 8768: accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, 8768: _BinaryOperation __binary_op) 8768: { 8768: 8768: 8768: ; 8768: 8768: for (; __first != __last; ++__first) 8768: __init = __binary_op(__init, *__first); 8768: return __init; 8768: } 8768: # 172 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: inline _Tp 8768: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _Tp __init) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1, (void)++__first2) 8768: __init = __init + (*__first1 * *__first2); 8768: return __init; 8768: } 8768: # 203 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: inline _Tp 8768: inner_product(_InputIterator1 __first1, _InputIterator1 __last1, 8768: _InputIterator2 __first2, _Tp __init, 8768: _BinaryOperation1 __binary_op1, 8768: _BinaryOperation2 __binary_op2) 8768: { 8768: 8768: 8768: 8768: ; 8768: 8768: for (; __first1 != __last1; ++__first1, (void)++__first2) 8768: __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); 8768: return __init; 8768: } 8768: # 235 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: _OutputIterator 8768: partial_sum(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result) 8768: { 8768: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return __result; 8768: _ValueType __value = *__first; 8768: *__result = __value; 8768: while (++__first != __last) 8768: { 8768: __value = __value + *__first; 8768: *++__result = __value; 8768: } 8768: return ++__result; 8768: } 8768: # 275 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: _OutputIterator 8768: partial_sum(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _BinaryOperation __binary_op) 8768: { 8768: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return __result; 8768: _ValueType __value = *__first; 8768: *__result = __value; 8768: while (++__first != __last) 8768: { 8768: __value = __binary_op(__value, *__first); 8768: *++__result = __value; 8768: } 8768: return ++__result; 8768: } 8768: # 315 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: _OutputIterator 8768: adjacent_difference(_InputIterator __first, 8768: _InputIterator __last, _OutputIterator __result) 8768: { 8768: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return __result; 8768: _ValueType __value = *__first; 8768: *__result = __value; 8768: while (++__first != __last) 8768: { 8768: _ValueType __tmp = *__first; 8768: *++__result = __tmp - __value; 8768: __value = std::move(__tmp); 8768: } 8768: return ++__result; 8768: } 8768: # 357 "/usr/include/c++/8/bits/stl_numeric.h" 3 8768: template 8768: _OutputIterator 8768: adjacent_difference(_InputIterator __first, _InputIterator __last, 8768: _OutputIterator __result, _BinaryOperation __binary_op) 8768: { 8768: typedef typename iterator_traits<_InputIterator>::value_type _ValueType; 8768: 8768: 8768: 8768: 8768: 8768: ; 8768: 8768: if (__first == __last) 8768: return __result; 8768: _ValueType __value = *__first; 8768: *__result = __value; 8768: while (++__first != __last) 8768: { 8768: _ValueType __tmp = *__first; 8768: *++__result = __binary_op(__tmp, __value); 8768: __value = std::move(__tmp); 8768: } 8768: return ++__result; 8768: } 8768: 8768: 8768: } 8768: # 63 "/usr/include/c++/8/numeric" 2 3 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 2 3 4 8768: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhashfunctions.h" 3 4 8768: 8768: 8768: class QBitArray; 8768: class QByteArray; 8768: class QString; 8768: class QStringRef; 8768: class QLatin1String; 8768: 8768: __attribute__((visibility("default"))) int qGlobalQHashSeed(); 8768: __attribute__((visibility("default"))) void qSetGlobalQHashSeed(int newSeed); 8768: 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qHashBits(const void *p, size_t size, uint seed = 0) noexcept; 8768: 8768: __attribute__((const)) constexpr inline uint qHash(char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(uchar key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(signed char key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(ushort key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(short key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(uint key, uint seed = 0) noexcept { return key ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(int key, uint seed = 0) noexcept { return uint(key) ^ seed; } 8768: __attribute__((const)) constexpr inline uint qHash(ulong key, uint seed = 0) noexcept 8768: { 8768: return (sizeof(ulong) > sizeof(uint)) 8768: ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed) 8768: : (uint(key & (~0U)) ^ seed); 8768: } 8768: __attribute__((const)) constexpr inline uint qHash(long key, uint seed = 0) noexcept { return qHash(ulong(key), seed); } 8768: __attribute__((const)) constexpr inline uint qHash(quint64 key, uint seed = 0) noexcept 8768: { 8768: return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed; 8768: } 8768: __attribute__((const)) constexpr inline uint qHash(qint64 key, uint seed = 0) noexcept { return qHash(quint64(key), seed); } 8768: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(float key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(double key, uint seed = 0) noexcept; 8768: 8768: __attribute__((visibility("default"))) __attribute__((const)) uint qHash(long double key, uint seed = 0) noexcept; 8768: 8768: __attribute__((const)) constexpr inline uint qHash(const QChar key, uint seed = 0) noexcept { return qHash(key.unicode(), seed); } 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QByteArray &key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QString &key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QStringRef &key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(const QBitArray &key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qHash(QLatin1String key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QString &key) noexcept; 8768: __attribute__((visibility("default"))) __attribute__((pure)) uint qt_hash(const QStringRef &key) noexcept; 8768: 8768: template inline uint qHash(const T *key, uint seed = 0) noexcept 8768: { 8768: return qHash(reinterpret_cast(key), seed); 8768: } 8768: template inline uint qHash(const T &t, uint seed) 8768: noexcept(noexcept(qHash(t))) 8768: { return qHash(t) ^ seed; } 8768: 8768: namespace QtPrivate { 8768: 8768: struct QHashCombine { 8768: typedef uint result_type; 8768: template 8768: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8768: 8768: { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; } 8768: }; 8768: 8768: struct QHashCombineCommutative { 8768: 8768: 8768: 8768: 8768: 8768: typedef uint result_type; 8768: template 8768: constexpr result_type operator()(uint seed, const T &t) const noexcept(noexcept(qHash(t))) 8768: { return seed + qHash(t); } 8768: }; 8768: 8768: } 8768: 8768: template 8768: inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0) 8768: noexcept(noexcept(qHash(*first))) 8768: { 8768: return std::accumulate(first, last, seed, QtPrivate::QHashCombine()); 8768: } 8768: 8768: template 8768: inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0) 8768: noexcept(noexcept(qHash(*first))) 8768: { 8768: return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative()); 8768: } 8768: 8768: template inline uint qHash(const QPair &key, uint seed = 0) 8768: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8768: { 8768: uint h1 = qHash(key.first, seed); 8768: uint h2 = qHash(key.second, seed); 8768: return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed; 8768: } 8768: 8768: template inline uint qHash(const std::pair &key, uint seed = 0) 8768: noexcept(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed))) 8768: { 8768: QtPrivate::QHashCombine hash; 8768: seed = hash(seed, key.first); 8768: seed = hash(seed, key.second); 8768: return seed; 8768: } 8768: 8768: 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/c++/8/list" 1 3 4 8768: # 58 "/usr/include/c++/8/list" 3 4 8768: 8768: # 59 "/usr/include/c++/8/list" 3 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_list.h" 1 3 8768: # 63 "/usr/include/c++/8/bits/stl_list.h" 3 8768: # 1 "/usr/include/c++/8/bits/allocated_ptr.h" 1 3 8768: # 40 "/usr/include/c++/8/bits/allocated_ptr.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: struct __allocated_ptr 8768: { 8768: using pointer = typename allocator_traits<_Alloc>::pointer; 8768: using value_type = typename allocator_traits<_Alloc>::value_type; 8768: 8768: 8768: __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept 8768: : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr) 8768: { } 8768: 8768: 8768: template>> 8768: __allocated_ptr(_Alloc& __a, _Ptr __ptr) 8768: : _M_alloc(std::__addressof(__a)), 8768: _M_ptr(pointer_traits::pointer_to(*__ptr)) 8768: { } 8768: 8768: 8768: __allocated_ptr(__allocated_ptr&& __gd) noexcept 8768: : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr) 8768: { __gd._M_ptr = nullptr; } 8768: 8768: 8768: ~__allocated_ptr() 8768: { 8768: if (_M_ptr != nullptr) 8768: std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1); 8768: } 8768: 8768: 8768: __allocated_ptr& 8768: operator=(std::nullptr_t) noexcept 8768: { 8768: _M_ptr = nullptr; 8768: return *this; 8768: } 8768: 8768: 8768: value_type* get() { return std::__to_address(_M_ptr); } 8768: 8768: private: 8768: _Alloc* _M_alloc; 8768: pointer _M_ptr; 8768: }; 8768: 8768: 8768: template 8768: __allocated_ptr<_Alloc> 8768: __allocate_guarded(_Alloc& __a) 8768: { 8768: return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) }; 8768: } 8768: 8768: 8768: } 8768: # 64 "/usr/include/c++/8/bits/stl_list.h" 2 3 8768: # 1 "/usr/include/c++/8/ext/aligned_buffer.h" 1 3 8768: # 32 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8768: 8768: # 33 "/usr/include/c++/8/ext/aligned_buffer.h" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace __gnu_cxx 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: struct __aligned_membuf 8768: { 8768: 8768: 8768: 8768: struct _Tp2 { _Tp _M_t; }; 8768: 8768: alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)]; 8768: 8768: __aligned_membuf() = default; 8768: 8768: 8768: __aligned_membuf(std::nullptr_t) { } 8768: 8768: void* 8768: _M_addr() noexcept 8768: { return static_cast(&_M_storage); } 8768: 8768: const void* 8768: _M_addr() const noexcept 8768: { return static_cast(&_M_storage); } 8768: 8768: _Tp* 8768: _M_ptr() noexcept 8768: { return static_cast<_Tp*>(_M_addr()); } 8768: 8768: const _Tp* 8768: _M_ptr() const noexcept 8768: { return static_cast(_M_addr()); } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __aligned_buffer 8768: : std::aligned_storage::value> 8768: { 8768: typename 8768: std::aligned_storage::value>::type 8768: _M_storage; 8768: 8768: __aligned_buffer() = default; 8768: 8768: 8768: __aligned_buffer(std::nullptr_t) { } 8768: 8768: void* 8768: _M_addr() noexcept 8768: { 8768: return static_cast(&_M_storage); 8768: } 8768: 8768: const void* 8768: _M_addr() const noexcept 8768: { 8768: return static_cast(&_M_storage); 8768: } 8768: 8768: _Tp* 8768: _M_ptr() noexcept 8768: { return static_cast<_Tp*>(_M_addr()); } 8768: 8768: const _Tp* 8768: _M_ptr() const noexcept 8768: { return static_cast(_M_addr()); } 8768: }; 8768: 8768: } 8768: # 65 "/usr/include/c++/8/bits/stl_list.h" 2 3 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace __detail 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct _List_node_base 8768: { 8768: _List_node_base* _M_next; 8768: _List_node_base* _M_prev; 8768: 8768: static void 8768: swap(_List_node_base& __x, _List_node_base& __y) noexcept; 8768: 8768: void 8768: _M_transfer(_List_node_base* const __first, 8768: _List_node_base* const __last) noexcept; 8768: 8768: void 8768: _M_reverse() noexcept; 8768: 8768: void 8768: _M_hook(_List_node_base* const __position) noexcept; 8768: 8768: void 8768: _M_unhook() noexcept; 8768: }; 8768: 8768: 8768: struct _List_node_header : public _List_node_base 8768: { 8768: 8768: std::size_t _M_size; 8768: 8768: 8768: _List_node_header() noexcept 8768: { _M_init(); } 8768: 8768: 8768: _List_node_header(_List_node_header&& __x) noexcept 8768: : _List_node_base{ __x._M_next, __x._M_prev } 8768: 8768: , _M_size(__x._M_size) 8768: 8768: { 8768: if (__x._M_base()->_M_next == __x._M_base()) 8768: this->_M_next = this->_M_prev = this; 8768: else 8768: { 8768: this->_M_next->_M_prev = this->_M_prev->_M_next = this->_M_base(); 8768: __x._M_init(); 8768: } 8768: } 8768: 8768: void 8768: _M_move_nodes(_List_node_header&& __x) 8768: { 8768: _List_node_base* const __xnode = __x._M_base(); 8768: if (__xnode->_M_next == __xnode) 8768: _M_init(); 8768: else 8768: { 8768: _List_node_base* const __node = this->_M_base(); 8768: __node->_M_next = __xnode->_M_next; 8768: __node->_M_prev = __xnode->_M_prev; 8768: __node->_M_next->_M_prev = __node->_M_prev->_M_next = __node; 8768: 8768: _M_size = __x._M_size; 8768: 8768: __x._M_init(); 8768: } 8768: } 8768: 8768: 8768: void 8768: _M_init() noexcept 8768: { 8768: this->_M_next = this->_M_prev = this; 8768: 8768: this->_M_size = 0; 8768: 8768: } 8768: 8768: private: 8768: _List_node_base* _M_base() { return this; } 8768: }; 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: struct _List_node : public __detail::_List_node_base 8768: { 8768: 8768: __gnu_cxx::__aligned_membuf<_Tp> _M_storage; 8768: _Tp* _M_valptr() { return _M_storage._M_ptr(); } 8768: _Tp const* _M_valptr() const { return _M_storage._M_ptr(); } 8768: 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _List_iterator 8768: { 8768: typedef _List_iterator<_Tp> _Self; 8768: typedef _List_node<_Tp> _Node; 8768: 8768: typedef ptrdiff_t difference_type; 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef _Tp value_type; 8768: typedef _Tp* pointer; 8768: typedef _Tp& reference; 8768: 8768: _List_iterator() noexcept 8768: : _M_node() { } 8768: 8768: explicit 8768: _List_iterator(__detail::_List_node_base* __x) noexcept 8768: : _M_node(__x) { } 8768: 8768: _Self 8768: _M_const_cast() const noexcept 8768: { return *this; } 8768: 8768: 8768: reference 8768: operator*() const noexcept 8768: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8768: 8768: pointer 8768: operator->() const noexcept 8768: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8768: 8768: _Self& 8768: operator++() noexcept 8768: { 8768: _M_node = _M_node->_M_next; 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator++(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _M_node->_M_next; 8768: return __tmp; 8768: } 8768: 8768: _Self& 8768: operator--() noexcept 8768: { 8768: _M_node = _M_node->_M_prev; 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator--(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _M_node->_M_prev; 8768: return __tmp; 8768: } 8768: 8768: bool 8768: operator==(const _Self& __x) const noexcept 8768: { return _M_node == __x._M_node; } 8768: 8768: bool 8768: operator!=(const _Self& __x) const noexcept 8768: { return _M_node != __x._M_node; } 8768: 8768: 8768: __detail::_List_node_base* _M_node; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _List_const_iterator 8768: { 8768: typedef _List_const_iterator<_Tp> _Self; 8768: typedef const _List_node<_Tp> _Node; 8768: typedef _List_iterator<_Tp> iterator; 8768: 8768: typedef ptrdiff_t difference_type; 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef _Tp value_type; 8768: typedef const _Tp* pointer; 8768: typedef const _Tp& reference; 8768: 8768: _List_const_iterator() noexcept 8768: : _M_node() { } 8768: 8768: explicit 8768: _List_const_iterator(const __detail::_List_node_base* __x) 8768: noexcept 8768: : _M_node(__x) { } 8768: 8768: _List_const_iterator(const iterator& __x) noexcept 8768: : _M_node(__x._M_node) { } 8768: 8768: iterator 8768: _M_const_cast() const noexcept 8768: { return iterator(const_cast<__detail::_List_node_base*>(_M_node)); } 8768: 8768: 8768: reference 8768: operator*() const noexcept 8768: { return *static_cast<_Node*>(_M_node)->_M_valptr(); } 8768: 8768: pointer 8768: operator->() const noexcept 8768: { return static_cast<_Node*>(_M_node)->_M_valptr(); } 8768: 8768: _Self& 8768: operator++() noexcept 8768: { 8768: _M_node = _M_node->_M_next; 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator++(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _M_node->_M_next; 8768: return __tmp; 8768: } 8768: 8768: _Self& 8768: operator--() noexcept 8768: { 8768: _M_node = _M_node->_M_prev; 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator--(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _M_node->_M_prev; 8768: return __tmp; 8768: } 8768: 8768: bool 8768: operator==(const _Self& __x) const noexcept 8768: { return _M_node == __x._M_node; } 8768: 8768: bool 8768: operator!=(const _Self& __x) const noexcept 8768: { return _M_node != __x._M_node; } 8768: 8768: 8768: const __detail::_List_node_base* _M_node; 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const _List_iterator<_Val>& __x, 8768: const _List_const_iterator<_Val>& __y) noexcept 8768: { return __x._M_node == __y._M_node; } 8768: 8768: template 8768: inline bool 8768: operator!=(const _List_iterator<_Val>& __x, 8768: const _List_const_iterator<_Val>& __y) noexcept 8768: { return __x._M_node != __y._M_node; } 8768: 8768: namespace __cxx11 { 8768: 8768: template 8768: class _List_base 8768: { 8768: protected: 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_Tp>::other _Tp_alloc_type; 8768: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tp_alloc_traits; 8768: typedef typename _Tp_alloc_traits::template 8768: rebind<_List_node<_Tp> >::other _Node_alloc_type; 8768: typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits; 8768: 8768: 8768: static size_t 8768: _S_distance(const __detail::_List_node_base* __first, 8768: const __detail::_List_node_base* __last) 8768: { 8768: size_t __n = 0; 8768: while (__first != __last) 8768: { 8768: __first = __first->_M_next; 8768: ++__n; 8768: } 8768: return __n; 8768: } 8768: 8768: 8768: struct _List_impl 8768: : public _Node_alloc_type 8768: { 8768: __detail::_List_node_header _M_node; 8768: 8768: _List_impl() noexcept(noexcept(_Node_alloc_type())) 8768: : _Node_alloc_type() 8768: { } 8768: 8768: _List_impl(const _Node_alloc_type& __a) noexcept 8768: : _Node_alloc_type(__a) 8768: { } 8768: 8768: 8768: _List_impl(_List_impl&&) = default; 8768: 8768: _List_impl(_Node_alloc_type&& __a, _List_impl&& __x) 8768: : _Node_alloc_type(std::move(__a)), _M_node(std::move(__x._M_node)) 8768: { } 8768: 8768: _List_impl(_Node_alloc_type&& __a) noexcept 8768: : _Node_alloc_type(std::move(__a)) 8768: { } 8768: 8768: }; 8768: 8768: _List_impl _M_impl; 8768: 8768: 8768: size_t _M_get_size() const { return _M_impl._M_node._M_size; } 8768: 8768: void _M_set_size(size_t __n) { _M_impl._M_node._M_size = __n; } 8768: 8768: void _M_inc_size(size_t __n) { _M_impl._M_node._M_size += __n; } 8768: 8768: void _M_dec_size(size_t __n) { _M_impl._M_node._M_size -= __n; } 8768: 8768: 8768: size_t 8768: _M_distance(const __detail::_List_node_base* __first, 8768: const __detail::_List_node_base* __last) const 8768: { return _S_distance(__first, __last); } 8768: 8768: 8768: size_t _M_node_count() const { return _M_get_size(); } 8768: # 447 "/usr/include/c++/8/bits/stl_list.h" 3 8768: typename _Node_alloc_traits::pointer 8768: _M_get_node() 8768: { return _Node_alloc_traits::allocate(_M_impl, 1); } 8768: 8768: void 8768: _M_put_node(typename _Node_alloc_traits::pointer __p) noexcept 8768: { _Node_alloc_traits::deallocate(_M_impl, __p, 1); } 8768: 8768: public: 8768: typedef _Alloc allocator_type; 8768: 8768: _Node_alloc_type& 8768: _M_get_Node_allocator() noexcept 8768: { return _M_impl; } 8768: 8768: const _Node_alloc_type& 8768: _M_get_Node_allocator() const noexcept 8768: { return _M_impl; } 8768: 8768: 8768: _List_base() = default; 8768: 8768: 8768: 8768: 8768: _List_base(const _Node_alloc_type& __a) noexcept 8768: : _M_impl(__a) 8768: { } 8768: 8768: 8768: _List_base(_List_base&&) = default; 8768: 8768: 8768: _List_base(_List_base&& __x, _Node_alloc_type&& __a) 8768: : _M_impl(std::move(__a)) 8768: { 8768: if (__x._M_get_Node_allocator() == _M_get_Node_allocator()) 8768: _M_move_nodes(std::move(__x)); 8768: 8768: } 8768: 8768: 8768: 8768: _List_base(_Node_alloc_type&& __a, _List_base&& __x) 8768: : _M_impl(std::move(__a), std::move(__x._M_impl)) 8768: { } 8768: 8768: 8768: _List_base(_Node_alloc_type&& __a) 8768: : _M_impl(std::move(__a)) 8768: { } 8768: 8768: void 8768: _M_move_nodes(_List_base&& __x) 8768: { _M_impl._M_node._M_move_nodes(std::move(__x._M_impl._M_node)); } 8768: 8768: 8768: 8768: ~_List_base() noexcept 8768: { _M_clear(); } 8768: 8768: void 8768: _M_clear() noexcept; 8768: 8768: void 8768: _M_init() noexcept 8768: { this->_M_impl._M_node._M_init(); } 8768: }; 8768: # 562 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template > 8768: class list : protected _List_base<_Tp, _Alloc> 8768: { 8768: # 575 "/usr/include/c++/8/bits/stl_list.h" 3 8768: static_assert(is_same::type, _Tp>::value, 8768: "std::list must have a non-const, non-volatile value_type"); 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef _List_base<_Tp, _Alloc> _Base; 8768: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8768: typedef typename _Base::_Tp_alloc_traits _Tp_alloc_traits; 8768: typedef typename _Base::_Node_alloc_type _Node_alloc_type; 8768: typedef typename _Base::_Node_alloc_traits _Node_alloc_traits; 8768: 8768: public: 8768: typedef _Tp value_type; 8768: typedef typename _Tp_alloc_traits::pointer pointer; 8768: typedef typename _Tp_alloc_traits::const_pointer const_pointer; 8768: typedef typename _Tp_alloc_traits::reference reference; 8768: typedef typename _Tp_alloc_traits::const_reference const_reference; 8768: typedef _List_iterator<_Tp> iterator; 8768: typedef _List_const_iterator<_Tp> const_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Alloc allocator_type; 8768: 8768: protected: 8768: 8768: 8768: typedef _List_node<_Tp> _Node; 8768: 8768: using _Base::_M_impl; 8768: using _Base::_M_put_node; 8768: using _Base::_M_get_node; 8768: using _Base::_M_get_Node_allocator; 8768: # 637 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: _Node* 8768: _M_create_node(_Args&&... __args) 8768: { 8768: auto __p = this->_M_get_node(); 8768: auto& __alloc = _M_get_Node_allocator(); 8768: __allocated_ptr<_Node_alloc_type> __guard{__alloc, __p}; 8768: _Node_alloc_traits::construct(__alloc, __p->_M_valptr(), 8768: std::forward<_Args>(__args)...); 8768: __guard = nullptr; 8768: return __p; 8768: } 8768: 8768: 8768: 8768: static size_t 8768: _S_distance(const_iterator __first, const_iterator __last) 8768: { return std::distance(__first, __last); } 8768: 8768: 8768: size_t 8768: _M_node_count() const 8768: { return this->_M_get_size(); } 8768: # 672 "/usr/include/c++/8/bits/stl_list.h" 3 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: list() = default; 8768: # 689 "/usr/include/c++/8/bits/stl_list.h" 3 8768: explicit 8768: list(const allocator_type& __a) noexcept 8768: : _Base(_Node_alloc_type(__a)) { } 8768: # 702 "/usr/include/c++/8/bits/stl_list.h" 3 8768: explicit 8768: list(size_type __n, const allocator_type& __a = allocator_type()) 8768: : _Base(_Node_alloc_type(__a)) 8768: { _M_default_initialize(__n); } 8768: # 715 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list(size_type __n, const value_type& __value, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(_Node_alloc_type(__a)) 8768: { _M_fill_initialize(__n, __value); } 8768: # 742 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list(const list& __x) 8768: : _Base(_Node_alloc_traits:: 8768: _S_select_on_copy(__x._M_get_Node_allocator())) 8768: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8768: # 755 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list(list&&) = default; 8768: # 765 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list(initializer_list __l, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(_Node_alloc_type(__a)) 8768: { _M_initialize_dispatch(__l.begin(), __l.end(), __false_type()); } 8768: 8768: list(const list& __x, const allocator_type& __a) 8768: : _Base(_Node_alloc_type(__a)) 8768: { _M_initialize_dispatch(__x.begin(), __x.end(), __false_type()); } 8768: 8768: private: 8768: list(list&& __x, const allocator_type& __a, true_type) noexcept 8768: : _Base(_Node_alloc_type(__a), std::move(__x)) 8768: { } 8768: 8768: list(list&& __x, const allocator_type& __a, false_type) 8768: : _Base(_Node_alloc_type(__a)) 8768: { 8768: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8768: this->_M_move_nodes(std::move(__x)); 8768: else 8768: insert(begin(), std::__make_move_if_noexcept_iterator(__x.begin()), 8768: std::__make_move_if_noexcept_iterator(__x.end())); 8768: } 8768: 8768: public: 8768: list(list&& __x, const allocator_type& __a) 8768: noexcept(_Node_alloc_traits::_S_always_equal()) 8768: : list(std::move(__x), __a, 8768: typename _Node_alloc_traits::is_always_equal{}) 8768: { } 8768: # 808 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template> 8768: list(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(_Node_alloc_type(__a)) 8768: { _M_initialize_dispatch(__first, __last, __false_type()); } 8768: # 834 "/usr/include/c++/8/bits/stl_list.h" 3 8768: ~list() = default; 8768: # 845 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list& 8768: operator=(const list& __x); 8768: # 859 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list& 8768: operator=(list&& __x) 8768: noexcept(_Node_alloc_traits::_S_nothrow_move()) 8768: { 8768: constexpr bool __move_storage = 8768: _Node_alloc_traits::_S_propagate_on_move_assign() 8768: || _Node_alloc_traits::_S_always_equal(); 8768: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8768: return *this; 8768: } 8768: # 877 "/usr/include/c++/8/bits/stl_list.h" 3 8768: list& 8768: operator=(initializer_list __l) 8768: { 8768: this->assign(__l.begin(), __l.end()); 8768: return *this; 8768: } 8768: # 895 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: assign(size_type __n, const value_type& __val) 8768: { _M_fill_assign(__n, __val); } 8768: # 912 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template> 8768: void 8768: assign(_InputIterator __first, _InputIterator __last) 8768: { _M_assign_dispatch(__first, __last, __false_type()); } 8768: # 936 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: assign(initializer_list __l) 8768: { this->_M_assign_dispatch(__l.begin(), __l.end(), __false_type()); } 8768: 8768: 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_Base::_M_get_Node_allocator()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: begin() noexcept 8768: { return iterator(this->_M_impl._M_node._M_next); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return const_iterator(this->_M_impl._M_node._M_next); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() noexcept 8768: { return iterator(&this->_M_impl._M_node); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return const_iterator(&this->_M_impl._M_node); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return reverse_iterator(end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return reverse_iterator(begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return const_iterator(this->_M_impl._M_node._M_next); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return const_iterator(&this->_M_impl._M_node); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_node_count(); } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _Node_alloc_traits::max_size(_M_get_Node_allocator()); } 8768: # 1085 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: resize(size_type __new_size); 8768: # 1098 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: resize(size_type __new_size, const value_type& __x); 8768: # 1120 "/usr/include/c++/8/bits/stl_list.h" 3 8768: reference 8768: front() noexcept 8768: { return *begin(); } 8768: 8768: 8768: 8768: 8768: 8768: const_reference 8768: front() const noexcept 8768: { return *begin(); } 8768: 8768: 8768: 8768: 8768: 8768: reference 8768: back() noexcept 8768: { 8768: iterator __tmp = end(); 8768: --__tmp; 8768: return *__tmp; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const_reference 8768: back() const noexcept 8768: { 8768: const_iterator __tmp = end(); 8768: --__tmp; 8768: return *__tmp; 8768: } 8768: # 1167 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: push_front(const value_type& __x) 8768: { this->_M_insert(begin(), __x); } 8768: 8768: 8768: void 8768: push_front(value_type&& __x) 8768: { this->_M_insert(begin(), std::move(__x)); } 8768: 8768: template 8768: 8768: 8768: 8768: void 8768: 8768: emplace_front(_Args&&... __args) 8768: { 8768: this->_M_insert(begin(), std::forward<_Args>(__args)...); 8768: 8768: 8768: 8768: } 8768: # 1203 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: pop_front() noexcept 8768: { this->_M_erase(begin()); } 8768: # 1217 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: push_back(const value_type& __x) 8768: { this->_M_insert(end(), __x); } 8768: 8768: 8768: void 8768: push_back(value_type&& __x) 8768: { this->_M_insert(end(), std::move(__x)); } 8768: 8768: template 8768: 8768: 8768: 8768: void 8768: 8768: emplace_back(_Args&&... __args) 8768: { 8768: this->_M_insert(end(), std::forward<_Args>(__args)...); 8768: 8768: 8768: 8768: } 8768: # 1252 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: pop_back() noexcept 8768: { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } 8768: # 1269 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: iterator 8768: emplace(const_iterator __position, _Args&&... __args); 8768: # 1284 "/usr/include/c++/8/bits/stl_list.h" 3 8768: iterator 8768: insert(const_iterator __position, const value_type& __x); 8768: # 1314 "/usr/include/c++/8/bits/stl_list.h" 3 8768: iterator 8768: insert(const_iterator __position, value_type&& __x) 8768: { return emplace(__position, std::move(__x)); } 8768: # 1333 "/usr/include/c++/8/bits/stl_list.h" 3 8768: iterator 8768: insert(const_iterator __p, initializer_list __l) 8768: { return this->insert(__p, __l.begin(), __l.end()); } 8768: # 1353 "/usr/include/c++/8/bits/stl_list.h" 3 8768: iterator 8768: insert(const_iterator __position, size_type __n, const value_type& __x); 8768: # 1392 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template> 8768: iterator 8768: insert(const_iterator __position, _InputIterator __first, 8768: _InputIterator __last); 8768: # 1436 "/usr/include/c++/8/bits/stl_list.h" 3 8768: iterator 8768: 8768: erase(const_iterator __position) noexcept; 8768: # 1461 "/usr/include/c++/8/bits/stl_list.h" 3 8768: iterator 8768: 8768: erase(const_iterator __first, const_iterator __last) noexcept 8768: 8768: 8768: 8768: { 8768: while (__first != __last) 8768: __first = erase(__first); 8768: return __last._M_const_cast(); 8768: } 8768: # 1484 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: swap(list& __x) noexcept 8768: { 8768: __detail::_List_node_base::swap(this->_M_impl._M_node, 8768: __x._M_impl._M_node); 8768: 8768: size_t __xsize = __x._M_get_size(); 8768: __x._M_set_size(this->_M_get_size()); 8768: this->_M_set_size(__xsize); 8768: 8768: _Node_alloc_traits::_S_on_swap(this->_M_get_Node_allocator(), 8768: __x._M_get_Node_allocator()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: clear() noexcept 8768: { 8768: _Base::_M_clear(); 8768: _Base::_M_init(); 8768: } 8768: # 1523 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: 8768: splice(const_iterator __position, list&& __x) noexcept 8768: 8768: 8768: 8768: { 8768: if (!__x.empty()) 8768: { 8768: _M_check_equal_allocators(__x); 8768: 8768: this->_M_transfer(__position._M_const_cast(), 8768: __x.begin(), __x.end()); 8768: 8768: this->_M_inc_size(__x._M_get_size()); 8768: __x._M_set_size(0); 8768: } 8768: } 8768: 8768: 8768: void 8768: splice(const_iterator __position, list& __x) noexcept 8768: { splice(__position, std::move(__x)); } 8768: # 1559 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: splice(const_iterator __position, list&& __x, const_iterator __i) noexcept 8768: # 1574 "/usr/include/c++/8/bits/stl_list.h" 3 8768: { 8768: iterator __j = __i._M_const_cast(); 8768: ++__j; 8768: if (__position == __i || __position == __j) 8768: return; 8768: 8768: if (this != std::__addressof(__x)) 8768: _M_check_equal_allocators(__x); 8768: 8768: this->_M_transfer(__position._M_const_cast(), 8768: __i._M_const_cast(), __j); 8768: 8768: this->_M_inc_size(1); 8768: __x._M_dec_size(1); 8768: } 8768: # 1601 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: splice(const_iterator __position, list& __x, const_iterator __i) noexcept 8768: { splice(__position, std::move(__x), __i); } 8768: # 1620 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: splice(const_iterator __position, list&& __x, const_iterator __first, 8768: const_iterator __last) noexcept 8768: # 1640 "/usr/include/c++/8/bits/stl_list.h" 3 8768: { 8768: if (__first != __last) 8768: { 8768: if (this != std::__addressof(__x)) 8768: _M_check_equal_allocators(__x); 8768: 8768: size_t __n = _S_distance(__first, __last); 8768: this->_M_inc_size(__n); 8768: __x._M_dec_size(__n); 8768: 8768: this->_M_transfer(__position._M_const_cast(), 8768: __first._M_const_cast(), 8768: __last._M_const_cast()); 8768: } 8768: } 8768: # 1670 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: splice(const_iterator __position, list& __x, const_iterator __first, 8768: const_iterator __last) noexcept 8768: { splice(__position, std::move(__x), __first, __last); } 8768: # 1687 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: remove(const _Tp& __value); 8768: # 1701 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: void 8768: remove_if(_Predicate); 8768: # 1715 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: unique(); 8768: # 1730 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: void 8768: unique(_BinaryPredicate); 8768: # 1744 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: merge(list&& __x); 8768: 8768: void 8768: merge(list& __x) 8768: { merge(std::move(__x)); } 8768: # 1769 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: void 8768: merge(list&& __x, _StrictWeakOrdering __comp); 8768: 8768: template 8768: void 8768: merge(list& __x, _StrictWeakOrdering __comp) 8768: { merge(std::move(__x), __comp); } 8768: # 1788 "/usr/include/c++/8/bits/stl_list.h" 3 8768: void 8768: reverse() noexcept 8768: { this->_M_impl._M_node._M_reverse(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: sort(); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: sort(_StrictWeakOrdering); 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8768: { _M_fill_initialize(static_cast(__n), __x); } 8768: 8768: 8768: template 8768: void 8768: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8768: __false_type) 8768: { 8768: for (; __first != __last; ++__first) 8768: 8768: emplace_back(*__first); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: void 8768: _M_fill_initialize(size_type __n, const value_type& __x) 8768: { 8768: for (; __n; --__n) 8768: push_back(__x); 8768: } 8768: 8768: 8768: 8768: void 8768: _M_default_initialize(size_type __n) 8768: { 8768: for (; __n; --__n) 8768: emplace_back(); 8768: } 8768: 8768: 8768: void 8768: _M_default_append(size_type __n); 8768: # 1866 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: void 8768: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8768: { _M_fill_assign(__n, __val); } 8768: 8768: 8768: template 8768: void 8768: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8768: __false_type); 8768: 8768: 8768: 8768: void 8768: _M_fill_assign(size_type __n, const value_type& __val); 8768: 8768: 8768: 8768: void 8768: _M_transfer(iterator __position, iterator __first, iterator __last) 8768: { __position._M_node->_M_transfer(__first._M_node, __last._M_node); } 8768: # 1898 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: void 8768: _M_insert(iterator __position, _Args&&... __args) 8768: { 8768: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8768: __tmp->_M_hook(__position._M_node); 8768: this->_M_inc_size(1); 8768: } 8768: 8768: 8768: 8768: void 8768: _M_erase(iterator __position) noexcept 8768: { 8768: this->_M_dec_size(1); 8768: __position._M_node->_M_unhook(); 8768: _Node* __n = static_cast<_Node*>(__position._M_node); 8768: 8768: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __n->_M_valptr()); 8768: 8768: 8768: 8768: 8768: _M_put_node(__n); 8768: } 8768: 8768: 8768: void 8768: _M_check_equal_allocators(list& __x) noexcept 8768: { 8768: if (std::__alloc_neq:: 8768: _S_do_it(_M_get_Node_allocator(), __x._M_get_Node_allocator())) 8768: __builtin_abort(); 8768: } 8768: 8768: 8768: const_iterator 8768: _M_resize_pos(size_type& __new_size) const; 8768: 8768: 8768: void 8768: _M_move_assign(list&& __x, true_type) noexcept 8768: { 8768: this->_M_clear(); 8768: this->_M_move_nodes(std::move(__x)); 8768: std::__alloc_on_move(this->_M_get_Node_allocator(), 8768: __x._M_get_Node_allocator()); 8768: } 8768: 8768: void 8768: _M_move_assign(list&& __x, false_type) 8768: { 8768: if (__x._M_get_Node_allocator() == this->_M_get_Node_allocator()) 8768: _M_move_assign(std::move(__x), true_type{}); 8768: else 8768: 8768: 8768: _M_assign_dispatch(std::__make_move_if_noexcept_iterator(__x.begin()), 8768: std::__make_move_if_noexcept_iterator(__x.end()), 8768: __false_type{}); 8768: } 8768: 8768: }; 8768: # 1972 "/usr/include/c++/8/bits/stl_list.h" 3 8768: } 8768: # 1984 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: inline bool 8768: operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8768: { 8768: 8768: if (__x.size() != __y.size()) 8768: return false; 8768: 8768: 8768: typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; 8768: const_iterator __end1 = __x.end(); 8768: const_iterator __end2 = __y.end(); 8768: 8768: const_iterator __i1 = __x.begin(); 8768: const_iterator __i2 = __y.begin(); 8768: while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) 8768: { 8768: ++__i1; 8768: ++__i2; 8768: } 8768: return __i1 == __end1 && __i2 == __end2; 8768: } 8768: # 2018 "/usr/include/c++/8/bits/stl_list.h" 3 8768: template 8768: inline bool 8768: operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8768: { return std::lexicographical_compare(__x.begin(), __x.end(), 8768: __y.begin(), __y.end()); } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline void 8768: swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline ptrdiff_t 8768: __distance(std::_List_iterator<_Tp> __first, 8768: std::_List_iterator<_Tp> __last, 8768: input_iterator_tag __tag) 8768: { 8768: typedef std::_List_const_iterator<_Tp> _CIter; 8768: return std::__distance(_CIter(__first), _CIter(__last), __tag); 8768: } 8768: 8768: template 8768: inline ptrdiff_t 8768: __distance(std::_List_const_iterator<_Tp> __first, 8768: std::_List_const_iterator<_Tp> __last, 8768: input_iterator_tag) 8768: { 8768: typedef __detail::_List_node_header _Sentinel; 8768: std::_List_const_iterator<_Tp> __beyond = __last; 8768: ++__beyond; 8768: const bool __whole = __first == __beyond; 8768: if (__builtin_constant_p (__whole) && __whole) 8768: return static_cast(__last._M_node)->_M_size; 8768: 8768: ptrdiff_t __n = 0; 8768: while (__first != __last) 8768: { 8768: ++__first; 8768: ++__n; 8768: } 8768: return __n; 8768: } 8768: 8768: 8768: 8768: } 8768: # 64 "/usr/include/c++/8/list" 2 3 8768: # 1 "/usr/include/c++/8/bits/list.tcc" 1 3 8768: # 59 "/usr/include/c++/8/bits/list.tcc" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: void 8768: _List_base<_Tp, _Alloc>:: 8768: _M_clear() noexcept 8768: { 8768: typedef _List_node<_Tp> _Node; 8768: __detail::_List_node_base* __cur = _M_impl._M_node._M_next; 8768: while (__cur != &_M_impl._M_node) 8768: { 8768: _Node* __tmp = static_cast<_Node*>(__cur); 8768: __cur = __tmp->_M_next; 8768: _Tp* __val = __tmp->_M_valptr(); 8768: 8768: _Node_alloc_traits::destroy(_M_get_Node_allocator(), __val); 8768: 8768: 8768: 8768: _M_put_node(__tmp); 8768: } 8768: } 8768: 8768: 8768: template 8768: template 8768: typename list<_Tp, _Alloc>::iterator 8768: list<_Tp, _Alloc>:: 8768: emplace(const_iterator __position, _Args&&... __args) 8768: { 8768: _Node* __tmp = _M_create_node(std::forward<_Args>(__args)...); 8768: __tmp->_M_hook(__position._M_const_cast()._M_node); 8768: this->_M_inc_size(1); 8768: return iterator(__tmp); 8768: } 8768: 8768: 8768: template 8768: typename list<_Tp, _Alloc>::iterator 8768: list<_Tp, _Alloc>:: 8768: 8768: insert(const_iterator __position, const value_type& __x) 8768: 8768: 8768: 8768: { 8768: _Node* __tmp = _M_create_node(__x); 8768: __tmp->_M_hook(__position._M_const_cast()._M_node); 8768: this->_M_inc_size(1); 8768: return iterator(__tmp); 8768: } 8768: 8768: 8768: template 8768: typename list<_Tp, _Alloc>::iterator 8768: list<_Tp, _Alloc>:: 8768: insert(const_iterator __position, size_type __n, const value_type& __x) 8768: { 8768: if (__n) 8768: { 8768: list __tmp(__n, __x, get_allocator()); 8768: iterator __it = __tmp.begin(); 8768: splice(__position, __tmp); 8768: return __it; 8768: } 8768: return __position._M_const_cast(); 8768: } 8768: 8768: template 8768: template 8768: typename list<_Tp, _Alloc>::iterator 8768: list<_Tp, _Alloc>:: 8768: insert(const_iterator __position, _InputIterator __first, 8768: _InputIterator __last) 8768: { 8768: list __tmp(__first, __last, get_allocator()); 8768: if (!__tmp.empty()) 8768: { 8768: iterator __it = __tmp.begin(); 8768: splice(__position, __tmp); 8768: return __it; 8768: } 8768: return __position._M_const_cast(); 8768: } 8768: 8768: 8768: template 8768: typename list<_Tp, _Alloc>::iterator 8768: list<_Tp, _Alloc>:: 8768: 8768: erase(const_iterator __position) noexcept 8768: 8768: 8768: 8768: { 8768: iterator __ret = iterator(__position._M_node->_M_next); 8768: _M_erase(__position._M_const_cast()); 8768: return __ret; 8768: } 8768: # 173 "/usr/include/c++/8/bits/list.tcc" 3 8768: template 8768: typename list<_Tp, _Alloc>::const_iterator 8768: list<_Tp, _Alloc>:: 8768: _M_resize_pos(size_type& __new_size) const 8768: { 8768: const_iterator __i; 8768: 8768: const size_type __len = size(); 8768: if (__new_size < __len) 8768: { 8768: if (__new_size <= __len / 2) 8768: { 8768: __i = begin(); 8768: std::advance(__i, __new_size); 8768: } 8768: else 8768: { 8768: __i = end(); 8768: ptrdiff_t __num_erase = __len - __new_size; 8768: std::advance(__i, -__num_erase); 8768: } 8768: __new_size = 0; 8768: return __i; 8768: } 8768: else 8768: __i = end(); 8768: 8768: 8768: 8768: 8768: 8768: __new_size -= __len; 8768: return __i; 8768: } 8768: 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: _M_default_append(size_type __n) 8768: { 8768: size_type __i = 0; 8768: try 8768: { 8768: for (; __i < __n; ++__i) 8768: emplace_back(); 8768: } 8768: catch(...) 8768: { 8768: for (; __i; --__i) 8768: pop_back(); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: resize(size_type __new_size) 8768: { 8768: const_iterator __i = _M_resize_pos(__new_size); 8768: if (__new_size) 8768: _M_default_append(__new_size); 8768: else 8768: erase(__i, end()); 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: resize(size_type __new_size, const value_type& __x) 8768: { 8768: const_iterator __i = _M_resize_pos(__new_size); 8768: if (__new_size) 8768: insert(end(), __new_size, __x); 8768: else 8768: erase(__i, end()); 8768: } 8768: # 265 "/usr/include/c++/8/bits/list.tcc" 3 8768: template 8768: list<_Tp, _Alloc>& 8768: list<_Tp, _Alloc>:: 8768: operator=(const list& __x) 8768: { 8768: if (this != std::__addressof(__x)) 8768: { 8768: 8768: if (_Node_alloc_traits::_S_propagate_on_copy_assign()) 8768: { 8768: auto& __this_alloc = this->_M_get_Node_allocator(); 8768: auto& __that_alloc = __x._M_get_Node_allocator(); 8768: if (!_Node_alloc_traits::_S_always_equal() 8768: && __this_alloc != __that_alloc) 8768: { 8768: 8768: clear(); 8768: } 8768: std::__alloc_on_copy(__this_alloc, __that_alloc); 8768: } 8768: 8768: _M_assign_dispatch(__x.begin(), __x.end(), __false_type()); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: _M_fill_assign(size_type __n, const value_type& __val) 8768: { 8768: iterator __i = begin(); 8768: for (; __i != end() && __n > 0; ++__i, --__n) 8768: *__i = __val; 8768: if (__n > 0) 8768: insert(end(), __n, __val); 8768: else 8768: erase(__i, end()); 8768: } 8768: 8768: template 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, 8768: __false_type) 8768: { 8768: iterator __first1 = begin(); 8768: iterator __last1 = end(); 8768: for (; __first1 != __last1 && __first2 != __last2; 8768: ++__first1, ++__first2) 8768: *__first1 = *__first2; 8768: if (__first2 == __last2) 8768: erase(__first1, __last1); 8768: else 8768: insert(__last1, __first2, __last2); 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: remove(const value_type& __value) 8768: { 8768: iterator __first = begin(); 8768: iterator __last = end(); 8768: iterator __extra = __last; 8768: while (__first != __last) 8768: { 8768: iterator __next = __first; 8768: ++__next; 8768: if (*__first == __value) 8768: { 8768: 8768: 8768: 8768: if (std::__addressof(*__first) != std::__addressof(__value)) 8768: _M_erase(__first); 8768: else 8768: __extra = __first; 8768: } 8768: __first = __next; 8768: } 8768: if (__extra != __last) 8768: _M_erase(__extra); 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: unique() 8768: { 8768: iterator __first = begin(); 8768: iterator __last = end(); 8768: if (__first == __last) 8768: return; 8768: iterator __next = __first; 8768: while (++__next != __last) 8768: { 8768: if (*__first == *__next) 8768: _M_erase(__next); 8768: else 8768: __first = __next; 8768: __next = __first; 8768: } 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: 8768: merge(list&& __x) 8768: 8768: 8768: 8768: { 8768: 8768: 8768: if (this != std::__addressof(__x)) 8768: { 8768: _M_check_equal_allocators(__x); 8768: 8768: iterator __first1 = begin(); 8768: iterator __last1 = end(); 8768: iterator __first2 = __x.begin(); 8768: iterator __last2 = __x.end(); 8768: const size_t __orig_size = __x.size(); 8768: try { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: if (*__first2 < *__first1) 8768: { 8768: iterator __next = __first2; 8768: _M_transfer(__first1, __first2, ++__next); 8768: __first2 = __next; 8768: } 8768: else 8768: ++__first1; 8768: if (__first2 != __last2) 8768: _M_transfer(__last1, __first2, __last2); 8768: 8768: this->_M_inc_size(__x._M_get_size()); 8768: __x._M_set_size(0); 8768: } 8768: catch(...) 8768: { 8768: const size_t __dist = std::distance(__first2, __last2); 8768: this->_M_inc_size(__orig_size - __dist); 8768: __x._M_set_size(__dist); 8768: throw; 8768: } 8768: } 8768: } 8768: 8768: template 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: 8768: merge(list&& __x, _StrictWeakOrdering __comp) 8768: 8768: 8768: 8768: { 8768: 8768: 8768: if (this != std::__addressof(__x)) 8768: { 8768: _M_check_equal_allocators(__x); 8768: 8768: iterator __first1 = begin(); 8768: iterator __last1 = end(); 8768: iterator __first2 = __x.begin(); 8768: iterator __last2 = __x.end(); 8768: const size_t __orig_size = __x.size(); 8768: try 8768: { 8768: while (__first1 != __last1 && __first2 != __last2) 8768: if (__comp(*__first2, *__first1)) 8768: { 8768: iterator __next = __first2; 8768: _M_transfer(__first1, __first2, ++__next); 8768: __first2 = __next; 8768: } 8768: else 8768: ++__first1; 8768: if (__first2 != __last2) 8768: _M_transfer(__last1, __first2, __last2); 8768: 8768: this->_M_inc_size(__x._M_get_size()); 8768: __x._M_set_size(0); 8768: } 8768: catch(...) 8768: { 8768: const size_t __dist = std::distance(__first2, __last2); 8768: this->_M_inc_size(__orig_size - __dist); 8768: __x._M_set_size(__dist); 8768: throw; 8768: } 8768: } 8768: } 8768: 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: sort() 8768: { 8768: 8768: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8768: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8768: { 8768: list __carry; 8768: list __tmp[64]; 8768: list * __fill = __tmp; 8768: list * __counter; 8768: try 8768: { 8768: do 8768: { 8768: __carry.splice(__carry.begin(), *this, begin()); 8768: 8768: for(__counter = __tmp; 8768: __counter != __fill && !__counter->empty(); 8768: ++__counter) 8768: { 8768: __counter->merge(__carry); 8768: __carry.swap(*__counter); 8768: } 8768: __carry.swap(*__counter); 8768: if (__counter == __fill) 8768: ++__fill; 8768: } 8768: while ( !empty() ); 8768: 8768: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8768: __counter->merge(*(__counter - 1)); 8768: swap( *(__fill - 1) ); 8768: } 8768: catch(...) 8768: { 8768: this->splice(this->end(), __carry); 8768: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8768: this->splice(this->end(), __tmp[__i]); 8768: throw; 8768: } 8768: } 8768: } 8768: 8768: template 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: remove_if(_Predicate __pred) 8768: { 8768: iterator __first = begin(); 8768: iterator __last = end(); 8768: while (__first != __last) 8768: { 8768: iterator __next = __first; 8768: ++__next; 8768: if (__pred(*__first)) 8768: _M_erase(__first); 8768: __first = __next; 8768: } 8768: } 8768: 8768: template 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: unique(_BinaryPredicate __binary_pred) 8768: { 8768: iterator __first = begin(); 8768: iterator __last = end(); 8768: if (__first == __last) 8768: return; 8768: iterator __next = __first; 8768: while (++__next != __last) 8768: { 8768: if (__binary_pred(*__first, *__next)) 8768: _M_erase(__next); 8768: else 8768: __first = __next; 8768: __next = __first; 8768: } 8768: } 8768: 8768: template 8768: template 8768: void 8768: list<_Tp, _Alloc>:: 8768: sort(_StrictWeakOrdering __comp) 8768: { 8768: 8768: if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node 8768: && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) 8768: { 8768: list __carry; 8768: list __tmp[64]; 8768: list * __fill = __tmp; 8768: list * __counter; 8768: try 8768: { 8768: do 8768: { 8768: __carry.splice(__carry.begin(), *this, begin()); 8768: 8768: for(__counter = __tmp; 8768: __counter != __fill && !__counter->empty(); 8768: ++__counter) 8768: { 8768: __counter->merge(__carry, __comp); 8768: __carry.swap(*__counter); 8768: } 8768: __carry.swap(*__counter); 8768: if (__counter == __fill) 8768: ++__fill; 8768: } 8768: while ( !empty() ); 8768: 8768: for (__counter = __tmp + 1; __counter != __fill; ++__counter) 8768: __counter->merge(*(__counter - 1), __comp); 8768: swap(*(__fill - 1)); 8768: } 8768: catch(...) 8768: { 8768: this->splice(this->end(), __carry); 8768: for (int __i = 0; __i < sizeof(__tmp)/sizeof(__tmp[0]); ++__i) 8768: this->splice(this->end(), __tmp[__i]); 8768: throw; 8768: } 8768: } 8768: } 8768: 8768: 8768: 8768: } 8768: # 65 "/usr/include/c++/8/list" 2 3 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8768: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 1 3 4 8768: # 34 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 3 4 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/syslimits.h" 1 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 1 3 4 8768: # 194 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 3 4 8768: # 1 "/usr/include/limits.h" 1 3 4 8768: # 26 "/usr/include/limits.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 8768: # 27 "/usr/include/limits.h" 2 3 4 8768: # 183 "/usr/include/limits.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 8768: # 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 8768: # 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 8768: # 1 "/usr/include/linux/limits.h" 1 3 4 8768: # 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 8768: # 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 8768: # 184 "/usr/include/limits.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 8768: # 188 "/usr/include/limits.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 8768: # 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 8768: # 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 8768: # 192 "/usr/include/limits.h" 2 3 4 8768: # 195 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 2 3 4 8768: # 8 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/syslimits.h" 2 3 4 8768: # 35 "/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed/limits.h" 2 3 4 8768: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template class QVector; 8768: template class QSet; 8768: 8768: template struct QListSpecialMethods 8768: { 8768: protected: 8768: ~QListSpecialMethods() {} 8768: }; 8768: template <> struct QListSpecialMethods; 8768: template <> struct QListSpecialMethods; 8768: 8768: struct __attribute__((visibility("default"))) QListData { 8768: 8768: 8768: struct NotArrayCompatibleLayout {}; 8768: struct NotIndirectLayout {}; 8768: struct ArrayCompatibleLayout : NotIndirectLayout {}; 8768: struct InlineWithPaddingLayout : NotArrayCompatibleLayout, NotIndirectLayout {}; 8768: struct IndirectLayout : NotArrayCompatibleLayout {}; 8768: 8768: struct Data { 8768: QtPrivate::RefCount ref; 8768: int alloc, begin, end; 8768: void *array[1]; 8768: }; 8768: enum { DataHeaderSize = sizeof(Data) - sizeof(void *) }; 8768: 8768: Data *detach(int alloc); 8768: Data *detach_grow(int *i, int n); 8768: void realloc(int alloc); 8768: void realloc_grow(int growth); 8768: inline void dispose() { dispose(d); } 8768: static void dispose(Data *d); 8768: static const Data shared_null; 8768: Data *d; 8768: void **erase(void **xi); 8768: void **append(int n); 8768: void **append(); 8768: void **append(const QListData &l); 8768: void **prepend(); 8768: void **insert(int i); 8768: void remove(int i); 8768: void remove(int i, int n); 8768: void move(int from, int to); 8768: inline int size() const noexcept { return d->end - d->begin; } 8768: inline bool isEmpty() const noexcept { return d->end == d->begin; } 8768: inline void **at(int i) const noexcept { return d->array + d->begin + i; } 8768: inline void **begin() const noexcept { return d->array + d->begin; } 8768: inline void **end() const noexcept { return d->array + d->end; } 8768: }; 8768: 8768: template 8768: class QList 8768: 8768: : public QListSpecialMethods 8768: 8768: { 8768: public: 8768: struct MemoryLayout 8768: : std::conditional< 8768: 8768: QTypeInfo::isStatic || QTypeInfo::isLarge, 8768: QListData::IndirectLayout, 8768: typename std::conditional< 8768: sizeof(T) == sizeof(void*), 8768: QListData::ArrayCompatibleLayout, 8768: QListData::InlineWithPaddingLayout 8768: >::type>::type {}; 8768: private: 8768: struct Node { void *v; 8768: 8768: 8768: 8768: inline T &t() 8768: { return *reinterpret_cast(QTypeInfo::isLarge || QTypeInfo::isStatic 8768: ? v : this); } 8768: 8768: }; 8768: 8768: union { QListData p; QListData::Data *d; }; 8768: 8768: public: 8768: inline QList() noexcept : d(const_cast(&QListData::shared_null)) { } 8768: QList(const QList &l); 8768: ~QList(); 8768: QList &operator=(const QList &l); 8768: 8768: inline QList(QList &&other) noexcept 8768: : d(other.d) { other.d = const_cast(&QListData::shared_null); } 8768: inline QList &operator=(QList &&other) noexcept 8768: { QList moved(std::move(other)); swap(moved); return *this; } 8768: 8768: inline void swap(QList &other) noexcept { qSwap(d, other.d); } 8768: 8768: inline QList(std::initializer_list args) 8768: : d(const_cast(&QListData::shared_null)) 8768: { reserve(int(args.size())); std::copy(args.begin(), args.end(), std::back_inserter(*this)); } 8768: 8768: bool operator==(const QList &l) const; 8768: inline bool operator!=(const QList &l) const { return !(*this == l); } 8768: 8768: inline int size() const noexcept { return p.size(); } 8768: 8768: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8768: 8768: inline void detachShared() 8768: { 8768: 8768: if (d->ref.isShared() && this->d != &QListData::shared_null) 8768: detach_helper(); 8768: } 8768: 8768: inline bool isDetached() const { return !d->ref.isShared(); } 8768: 8768: inline void setSharable(bool sharable) 8768: { 8768: if (sharable == d->ref.isSharable()) 8768: return; 8768: if (!sharable) 8768: detach(); 8768: if (d != &QListData::shared_null) 8768: d->ref.setSharable(sharable); 8768: } 8768: 8768: inline bool isSharedWith(const QList &other) const noexcept { return d == other.d; } 8768: 8768: inline bool isEmpty() const noexcept { return p.isEmpty(); } 8768: 8768: void clear(); 8768: 8768: const T &at(int i) const; 8768: const T &operator[](int i) const; 8768: T &operator[](int i); 8768: 8768: void reserve(int size); 8768: void append(const T &t); 8768: void append(const QList &t); 8768: void prepend(const T &t); 8768: void insert(int i, const T &t); 8768: void replace(int i, const T &t); 8768: void removeAt(int i); 8768: int removeAll(const T &t); 8768: bool removeOne(const T &t); 8768: T takeAt(int i); 8768: T takeFirst(); 8768: T takeLast(); 8768: void move(int from, int to); 8768: void swap(int i, int j); 8768: int indexOf(const T &t, int from = 0) const; 8768: int lastIndexOf(const T &t, int from = -1) const; 8768: bool contains(const T &t) const; 8768: int count(const T &t) const; 8768: 8768: class const_iterator; 8768: 8768: class iterator { 8768: public: 8768: Node *i; 8768: typedef std::random_access_iterator_tag iterator_category; 8768: 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef T *pointer; 8768: typedef T &reference; 8768: 8768: inline iterator() noexcept : i(nullptr) {} 8768: inline iterator(Node *n) noexcept : i(n) {} 8768: 8768: 8768: 8768: inline iterator(const iterator &o) noexcept : i(o.i){} 8768: 8768: inline T &operator*() const { return i->t(); } 8768: inline T *operator->() const { return &i->t(); } 8768: inline T &operator[](difference_type j) const { return i[j].t(); } 8768: inline bool operator==(const iterator &o) const noexcept { return i == o.i; } 8768: inline bool operator!=(const iterator &o) const noexcept { return i != o.i; } 8768: inline bool operator<(const iterator& other) const noexcept { return i < other.i; } 8768: inline bool operator<=(const iterator& other) const noexcept { return i <= other.i; } 8768: inline bool operator>(const iterator& other) const noexcept { return i > other.i; } 8768: inline bool operator>=(const iterator& other) const noexcept { return i >= other.i; } 8768: # 264 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 3 4 8768: inline iterator &operator++() { ++i; return *this; } 8768: inline iterator operator++(int) { Node *n = i; ++i; return n; } 8768: inline iterator &operator--() { i--; return *this; } 8768: inline iterator operator--(int) { Node *n = i; i--; return n; } 8768: inline iterator &operator+=(difference_type j) { i+=j; return *this; } 8768: inline iterator &operator-=(difference_type j) { i-=j; return *this; } 8768: inline iterator operator+(difference_type j) const { return iterator(i+j); } 8768: inline iterator operator-(difference_type j) const { return iterator(i-j); } 8768: inline int operator-(iterator j) const { return int(i - j.i); } 8768: }; 8768: friend class iterator; 8768: 8768: class const_iterator { 8768: public: 8768: Node *i; 8768: typedef std::random_access_iterator_tag iterator_category; 8768: 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: 8768: inline const_iterator() noexcept : i(nullptr) {} 8768: inline const_iterator(Node *n) noexcept : i(n) {} 8768: 8768: 8768: 8768: inline const_iterator(const const_iterator &o) noexcept : i(o.i) {} 8768: 8768: 8768: inline explicit const_iterator(const iterator &o) noexcept : i(o.i) {} 8768: 8768: 8768: 8768: inline const T &operator*() const { return i->t(); } 8768: inline const T *operator->() const { return &i->t(); } 8768: inline const T &operator[](difference_type j) const { return i[j].t(); } 8768: inline bool operator==(const const_iterator &o) const noexcept { return i == o.i; } 8768: inline bool operator!=(const const_iterator &o) const noexcept { return i != o.i; } 8768: inline bool operator<(const const_iterator& other) const noexcept { return i < other.i; } 8768: inline bool operator<=(const const_iterator& other) const noexcept { return i <= other.i; } 8768: inline bool operator>(const const_iterator& other) const noexcept { return i > other.i; } 8768: inline bool operator>=(const const_iterator& other) const noexcept { return i >= other.i; } 8768: inline const_iterator &operator++() { ++i; return *this; } 8768: inline const_iterator operator++(int) { Node *n = i; ++i; return n; } 8768: inline const_iterator &operator--() { i--; return *this; } 8768: inline const_iterator operator--(int) { Node *n = i; i--; return n; } 8768: inline const_iterator &operator+=(difference_type j) { i+=j; return *this; } 8768: inline const_iterator &operator-=(difference_type j) { i-=j; return *this; } 8768: inline const_iterator operator+(difference_type j) const { return const_iterator(i+j); } 8768: inline const_iterator operator-(difference_type j) const { return const_iterator(i-j); } 8768: inline int operator-(const_iterator j) const { return int(i - j.i); } 8768: }; 8768: friend class const_iterator; 8768: 8768: 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: inline iterator begin() { detach(); return reinterpret_cast(p.begin()); } 8768: inline const_iterator begin() const noexcept { return reinterpret_cast(p.begin()); } 8768: inline const_iterator cbegin() const noexcept { return reinterpret_cast(p.begin()); } 8768: inline const_iterator constBegin() const noexcept { return reinterpret_cast(p.begin()); } 8768: inline iterator end() { detach(); return reinterpret_cast(p.end()); } 8768: inline const_iterator end() const noexcept { return reinterpret_cast(p.end()); } 8768: inline const_iterator cend() const noexcept { return reinterpret_cast(p.end()); } 8768: inline const_iterator constEnd() const noexcept { return reinterpret_cast(p.end()); } 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8768: iterator insert(iterator before, const T &t); 8768: iterator erase(iterator pos); 8768: iterator erase(iterator first, iterator last); 8768: 8768: 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: inline int count() const { return p.size(); } 8768: inline int length() const { return p.size(); } 8768: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline const T& constFirst() const { return first(); } 8768: inline const T& first() const { do { } while ((false) && (!isEmpty())); return at(0); } 8768: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8768: const T& last() const { do { } while ((false) && (!isEmpty())); return at(count() - 1); } 8768: inline const T& constLast() const { return last(); } 8768: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8768: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8768: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8768: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8768: QList mid(int pos, int length = -1) const; 8768: 8768: T value(int i) const; 8768: T value(int i, const T &defaultValue) const; 8768: 8768: 8768: inline void push_back(const T &t) { append(t); } 8768: inline void push_front(const T &t) { prepend(t); } 8768: inline T& front() { return first(); } 8768: inline const T& front() const { return first(); } 8768: inline T& back() { return last(); } 8768: inline const T& back() const { return last(); } 8768: inline void pop_front() { removeFirst(); } 8768: inline void pop_back() { removeLast(); } 8768: inline bool empty() const { return isEmpty(); } 8768: typedef int size_type; 8768: typedef T value_type; 8768: typedef value_type *pointer; 8768: typedef const value_type *const_pointer; 8768: typedef value_type &reference; 8768: typedef const value_type &const_reference; 8768: 8768: typedef qptrdiff difference_type; 8768: 8768: 8768: QList &operator+=(const QList &l); 8768: inline QList operator+(const QList &l) const 8768: { QList n = *this; n += l; return n; } 8768: inline QList &operator+=(const T &t) 8768: { append(t); return *this; } 8768: inline QList &operator<< (const T &t) 8768: { append(t); return *this; } 8768: inline QList &operator<<(const QList &l) 8768: { *this += l; return *this; } 8768: 8768: QVector toVector() const; 8768: QSet toSet() const; 8768: 8768: static QList fromVector(const QVector &vector); 8768: static QList fromSet(const QSet &set); 8768: 8768: static inline QList fromStdList(const std::list &list) 8768: { QList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8768: inline std::list toStdList() const 8768: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8768: 8768: private: 8768: Node *detach_helper_grow(int i, int n); 8768: void detach_helper(int alloc); 8768: void detach_helper(); 8768: void dealloc(QListData::Data *d); 8768: 8768: void node_construct(Node *n, const T &t); 8768: void node_destruct(Node *n); 8768: void node_copy(Node *from, Node *to, Node *src); 8768: void node_destruct(Node *from, Node *to); 8768: 8768: bool isValidIterator(const iterator &i) const noexcept 8768: { 8768: return (constBegin().i <= i.i) && (i.i <= constEnd().i); 8768: } 8768: 8768: private: 8768: inline bool op_eq_impl(const QList &other, QListData::NotArrayCompatibleLayout) const; 8768: inline bool op_eq_impl(const QList &other, QListData::ArrayCompatibleLayout) const; 8768: inline bool contains_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8768: inline bool contains_impl(const T &, QListData::ArrayCompatibleLayout) const; 8768: inline int count_impl(const T &, QListData::NotArrayCompatibleLayout) const; 8768: inline int count_impl(const T &, QListData::ArrayCompatibleLayout) const; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline void QList::node_construct(Node *n, const T &t) 8768: { 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) n->v = new T(t); 8768: else if (QTypeInfo::isComplex) new (n) T(t); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: else ::memcpy(n, static_cast(&t), sizeof(T)); 8768: 8768: } 8768: 8768: template 8768: inline void QList::node_destruct(Node *n) 8768: { 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) delete reinterpret_cast(n->v); 8768: else if (QTypeInfo::isComplex) reinterpret_cast(n)->~T(); 8768: } 8768: 8768: template 8768: inline void QList::node_copy(Node *from, Node *to, Node *src) 8768: { 8768: Node *current = from; 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8768: try { 8768: while(current != to) { 8768: current->v = new T(*reinterpret_cast(src->v)); 8768: ++current; 8768: ++src; 8768: } 8768: } catch (...) { 8768: while (current-- != from) 8768: delete reinterpret_cast(current->v); 8768: throw; 8768: } 8768: 8768: } else if (QTypeInfo::isComplex) { 8768: try { 8768: while(current != to) { 8768: new (current) T(*reinterpret_cast(src)); 8768: ++current; 8768: ++src; 8768: } 8768: } catch (...) { 8768: while (current-- != from) 8768: (reinterpret_cast(current))->~T(); 8768: throw; 8768: } 8768: } else { 8768: if (src != from && to - from > 0) 8768: memcpy(from, src, (to - from) * sizeof(Node)); 8768: } 8768: } 8768: 8768: template 8768: inline void QList::node_destruct(Node *from, Node *to) 8768: { 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) 8768: while(from != to) --to, delete reinterpret_cast(to->v); 8768: else if (QTypeInfo::isComplex) 8768: while (from != to) --to, reinterpret_cast(to)->~T(); 8768: } 8768: 8768: template 8768: inline QList &QList::operator=(const QList &l) 8768: { 8768: if (d != l.d) { 8768: QList tmp(l); 8768: tmp.swap(*this); 8768: } 8768: return *this; 8768: } 8768: template 8768: inline typename QList::iterator QList::insert(iterator before, const T &t) 8768: { 8768: do { } while ((false) && (isValidIterator(before))); 8768: 8768: int iBefore = int(before.i - reinterpret_cast(p.begin())); 8768: Node *n = 0; 8768: if (d->ref.isShared()) 8768: n = detach_helper_grow(iBefore, 1); 8768: else 8768: n = reinterpret_cast(p.insert(iBefore)); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: p.remove(iBefore); 8768: throw; 8768: } 8768: return n; 8768: } 8768: template 8768: inline typename QList::iterator QList::erase(iterator it) 8768: { 8768: do { } while ((false) && (isValidIterator(it))); 8768: if (d->ref.isShared()) { 8768: int offset = int(it.i - reinterpret_cast(p.begin())); 8768: it = begin(); 8768: it += offset; 8768: } 8768: node_destruct(it.i); 8768: return reinterpret_cast(p.erase(reinterpret_cast(it.i))); 8768: } 8768: template 8768: inline const T &QList::at(int i) const 8768: { do { } while ((false) && (i >= 0 && i < p.size())); 8768: return reinterpret_cast(p.at(i))->t(); } 8768: template 8768: inline const T &QList::operator[](int i) const 8768: { do { } while ((false) && (i >= 0 && i < p.size())); 8768: return reinterpret_cast(p.at(i))->t(); } 8768: template 8768: inline T &QList::operator[](int i) 8768: { do { } while ((false) && (i >= 0 && i < p.size())); 8768: detach(); return reinterpret_cast(p.at(i))->t(); } 8768: template 8768: inline void QList::removeAt(int i) 8768: { if(i >= 0 && i < p.size()) { detach(); 8768: node_destruct(reinterpret_cast(p.at(i))); p.remove(i); } } 8768: template 8768: inline T QList::takeAt(int i) 8768: { do { } while ((false) && (i >= 0 && i < p.size())); 8768: detach(); Node *n = reinterpret_cast(p.at(i)); T t = n->t(); node_destruct(n); 8768: p.remove(i); return t; } 8768: template 8768: inline T QList::takeFirst() 8768: { T t = first(); removeFirst(); return t; } 8768: template 8768: inline T QList::takeLast() 8768: { T t = last(); removeLast(); return t; } 8768: 8768: template 8768: void QList::reserve(int alloc) 8768: { 8768: if (d->alloc < alloc) { 8768: if (d->ref.isShared()) 8768: detach_helper(alloc); 8768: else 8768: p.realloc(alloc); 8768: } 8768: } 8768: 8768: template 8768: void QList::append(const T &t) 8768: { 8768: if (d->ref.isShared()) { 8768: Node *n = detach_helper_grow(0x7fffffff, 1); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: --d->end; 8768: throw; 8768: } 8768: } else { 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8768: Node *n = reinterpret_cast(p.append()); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: --d->end; 8768: throw; 8768: } 8768: } else { 8768: Node *n, copy; 8768: node_construct(©, t); 8768: try { 8768: n = reinterpret_cast(p.append());; 8768: } catch (...) { 8768: node_destruct(©); 8768: throw; 8768: } 8768: *n = copy; 8768: } 8768: } 8768: } 8768: 8768: template 8768: inline void QList::prepend(const T &t) 8768: { 8768: if (d->ref.isShared()) { 8768: Node *n = detach_helper_grow(0, 1); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: ++d->begin; 8768: throw; 8768: } 8768: } else { 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8768: Node *n = reinterpret_cast(p.prepend()); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: ++d->begin; 8768: throw; 8768: } 8768: } else { 8768: Node *n, copy; 8768: node_construct(©, t); 8768: try { 8768: n = reinterpret_cast(p.prepend());; 8768: } catch (...) { 8768: node_destruct(©); 8768: throw; 8768: } 8768: *n = copy; 8768: } 8768: } 8768: } 8768: 8768: template 8768: inline void QList::insert(int i, const T &t) 8768: { 8768: if (d->ref.isShared()) { 8768: Node *n = detach_helper_grow(i, 1); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: p.remove(i); 8768: throw; 8768: } 8768: } else { 8768: if (QTypeInfo::isLarge || QTypeInfo::isStatic) { 8768: Node *n = reinterpret_cast(p.insert(i)); 8768: try { 8768: node_construct(n, t); 8768: } catch (...) { 8768: p.remove(i); 8768: throw; 8768: } 8768: } else { 8768: Node *n, copy; 8768: node_construct(©, t); 8768: try { 8768: n = reinterpret_cast(p.insert(i));; 8768: } catch (...) { 8768: node_destruct(©); 8768: throw; 8768: } 8768: *n = copy; 8768: } 8768: } 8768: } 8768: 8768: template 8768: inline void QList::replace(int i, const T &t) 8768: { 8768: do { } while ((false) && (i >= 0 && i < p.size())); 8768: detach(); 8768: reinterpret_cast(p.at(i))->t() = t; 8768: } 8768: 8768: template 8768: inline void QList::swap(int i, int j) 8768: { 8768: do { } while ((false) && (i >= 0 && i < p.size() && j >= 0 && j < p.size())) 8768: ; 8768: detach(); 8768: std::swap(d->array[d->begin + i], d->array[d->begin + j]); 8768: } 8768: 8768: template 8768: inline void QList::move(int from, int to) 8768: { 8768: do { } while ((false) && (from >= 0 && from < p.size() && to >= 0 && to < p.size())) 8768: ; 8768: detach(); 8768: p.move(from, to); 8768: } 8768: 8768: template 8768: QList QList::mid(int pos, int alength) const 8768: { 8768: using namespace QtPrivate; 8768: switch (QContainerImplHelper::mid(size(), &pos, &alength)) { 8768: case QContainerImplHelper::Null: 8768: case QContainerImplHelper::Empty: 8768: return QList(); 8768: case QContainerImplHelper::Full: 8768: return *this; 8768: case QContainerImplHelper::Subset: 8768: break; 8768: } 8768: 8768: QList cpy; 8768: if (alength <= 0) 8768: return cpy; 8768: cpy.reserve(alength); 8768: cpy.d->end = alength; 8768: try { 8768: cpy.node_copy(reinterpret_cast(cpy.p.begin()), 8768: reinterpret_cast(cpy.p.end()), 8768: reinterpret_cast(p.begin() + pos)); 8768: } catch (...) { 8768: 8768: cpy.d->end = 0; 8768: throw; 8768: } 8768: return cpy; 8768: } 8768: 8768: template 8768: T QList::value(int i) const 8768: { 8768: if (i < 0 || i >= p.size()) { 8768: return T(); 8768: } 8768: return reinterpret_cast(p.at(i))->t(); 8768: } 8768: 8768: template 8768: T QList::value(int i, const T& defaultValue) const 8768: { 8768: return ((i < 0 || i >= p.size()) ? defaultValue : reinterpret_cast(p.at(i))->t()); 8768: } 8768: 8768: template 8768: typename QList::Node *QList::detach_helper_grow(int i, int c) 8768: { 8768: Node *n = reinterpret_cast(p.begin()); 8768: QListData::Data *x = p.detach_grow(&i, c); 8768: try { 8768: node_copy(reinterpret_cast(p.begin()), 8768: reinterpret_cast(p.begin() + i), n); 8768: } catch (...) { 8768: p.dispose(); 8768: d = x; 8768: throw; 8768: } 8768: try { 8768: node_copy(reinterpret_cast(p.begin() + i + c), 8768: reinterpret_cast(p.end()), n + i); 8768: } catch (...) { 8768: node_destruct(reinterpret_cast(p.begin()), 8768: reinterpret_cast(p.begin() + i)); 8768: p.dispose(); 8768: d = x; 8768: throw; 8768: } 8768: 8768: if (!x->ref.deref()) 8768: dealloc(x); 8768: 8768: return reinterpret_cast(p.begin() + i); 8768: } 8768: 8768: template 8768: void QList::detach_helper(int alloc) 8768: { 8768: Node *n = reinterpret_cast(p.begin()); 8768: QListData::Data *x = p.detach(alloc); 8768: try { 8768: node_copy(reinterpret_cast(p.begin()), reinterpret_cast(p.end()), n); 8768: } catch (...) { 8768: p.dispose(); 8768: d = x; 8768: throw; 8768: } 8768: 8768: if (!x->ref.deref()) 8768: dealloc(x); 8768: } 8768: 8768: template 8768: void QList::detach_helper() 8768: { 8768: detach_helper(d->alloc); 8768: } 8768: 8768: template 8768: QList::QList(const QList &l) 8768: : QListSpecialMethods(l), d(l.d) 8768: { 8768: if (!d->ref.ref()) { 8768: p.detach(d->alloc); 8768: 8768: try { 8768: node_copy(reinterpret_cast(p.begin()), 8768: reinterpret_cast(p.end()), 8768: reinterpret_cast(l.p.begin())); 8768: } catch (...) { 8768: QListData::dispose(d); 8768: throw; 8768: } 8768: } 8768: } 8768: 8768: template 8768: QList::~QList() 8768: { 8768: if (!d->ref.deref()) 8768: dealloc(d); 8768: } 8768: 8768: template 8768: bool QList::operator==(const QList &l) const 8768: { 8768: if (d == l.d) 8768: return true; 8768: if (p.size() != l.p.size()) 8768: return false; 8768: return this->op_eq_impl(l, MemoryLayout()); 8768: } 8768: 8768: template 8768: inline bool QList::op_eq_impl(const QList &l, QListData::NotArrayCompatibleLayout) const 8768: { 8768: Node *i = reinterpret_cast(p.begin()); 8768: Node *e = reinterpret_cast(p.end()); 8768: Node *li = reinterpret_cast(l.p.begin()); 8768: for (; i != e; ++i, ++li) { 8768: if (!(i->t() == li->t())) 8768: return false; 8768: } 8768: return true; 8768: } 8768: 8768: template 8768: inline bool QList::op_eq_impl(const QList &l, QListData::ArrayCompatibleLayout) const 8768: { 8768: const T *lb = reinterpret_cast(l.p.begin()); 8768: const T *b = reinterpret_cast(p.begin()); 8768: const T *e = reinterpret_cast(p.end()); 8768: return std::equal(b, e, (lb)); 8768: } 8768: 8768: template 8768: void QList::dealloc(QListData::Data *data) 8768: { 8768: node_destruct(reinterpret_cast(data->array + data->begin), 8768: reinterpret_cast(data->array + data->end)); 8768: QListData::dispose(data); 8768: } 8768: 8768: 8768: template 8768: void QList::clear() 8768: { 8768: *this = QList(); 8768: } 8768: 8768: template 8768: int QList::removeAll(const T &_t) 8768: { 8768: int index = indexOf(_t); 8768: if (index == -1) 8768: return 0; 8768: 8768: const T t = _t; 8768: detach(); 8768: 8768: Node *i = reinterpret_cast(p.at(index)); 8768: Node *e = reinterpret_cast(p.end()); 8768: Node *n = i; 8768: node_destruct(i); 8768: while (++i != e) { 8768: if (i->t() == t) 8768: node_destruct(i); 8768: else 8768: *n++ = *i; 8768: } 8768: 8768: int removedCount = int(e - n); 8768: d->end -= removedCount; 8768: return removedCount; 8768: } 8768: 8768: template 8768: bool QList::removeOne(const T &_t) 8768: { 8768: int index = indexOf(_t); 8768: if (index != -1) { 8768: removeAt(index); 8768: return true; 8768: } 8768: return false; 8768: } 8768: 8768: template 8768: typename QList::iterator QList::erase(typename QList::iterator afirst, 8768: typename QList::iterator alast) 8768: { 8768: do { } while ((false) && (isValidIterator(afirst))); 8768: do { } while ((false) && (isValidIterator(alast))); 8768: 8768: if (d->ref.isShared()) { 8768: 8768: int offsetfirst = int(afirst.i - reinterpret_cast(p.begin())); 8768: int offsetlast = int(alast.i - reinterpret_cast(p.begin())); 8768: afirst = begin(); 8768: alast = afirst; 8768: afirst += offsetfirst; 8768: alast += offsetlast; 8768: } 8768: 8768: for (Node *n = afirst.i; n < alast.i; ++n) 8768: node_destruct(n); 8768: int idx = afirst - begin(); 8768: p.remove(idx, alast - afirst); 8768: return begin() + idx; 8768: } 8768: 8768: template 8768: QList &QList::operator+=(const QList &l) 8768: { 8768: if (!l.isEmpty()) { 8768: if (d == &QListData::shared_null) { 8768: *this = l; 8768: } else { 8768: Node *n = (d->ref.isShared()) 8768: ? detach_helper_grow(0x7fffffff, l.size()) 8768: : reinterpret_cast(p.append(l.p)); 8768: try { 8768: node_copy(n, reinterpret_cast(p.end()), 8768: reinterpret_cast(l.p.begin())); 8768: } catch (...) { 8768: 8768: d->end -= int(reinterpret_cast(p.end()) - n); 8768: throw; 8768: } 8768: } 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: inline void QList::append(const QList &t) 8768: { 8768: *this += t; 8768: } 8768: 8768: template 8768: int QList::indexOf(const T &t, int from) const 8768: { 8768: if (from < 0) 8768: from = qMax(from + p.size(), 0); 8768: if (from < p.size()) { 8768: Node *n = reinterpret_cast(p.at(from -1)); 8768: Node *e = reinterpret_cast(p.end()); 8768: while (++n != e) 8768: if (n->t() == t) 8768: return int(n - reinterpret_cast(p.begin())); 8768: } 8768: return -1; 8768: } 8768: 8768: template 8768: int QList::lastIndexOf(const T &t, int from) const 8768: { 8768: if (from < 0) 8768: from += p.size(); 8768: else if (from >= p.size()) 8768: from = p.size()-1; 8768: if (from >= 0) { 8768: Node *b = reinterpret_cast(p.begin()); 8768: Node *n = reinterpret_cast(p.at(from + 1)); 8768: while (n-- != b) { 8768: if (n->t() == t) 8768: return n - b; 8768: } 8768: } 8768: return -1; 8768: } 8768: 8768: template 8768: bool QList::contains(const T &t) const 8768: { 8768: return contains_impl(t, MemoryLayout()); 8768: } 8768: 8768: template 8768: inline bool QList::contains_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8768: { 8768: Node *e = reinterpret_cast(p.end()); 8768: Node *i = reinterpret_cast(p.begin()); 8768: for (; i != e; ++i) 8768: if (i->t() == t) 8768: return true; 8768: return false; 8768: } 8768: 8768: template 8768: inline bool QList::contains_impl(const T &t, QListData::ArrayCompatibleLayout) const 8768: { 8768: const T *b = reinterpret_cast(p.begin()); 8768: const T *e = reinterpret_cast(p.end()); 8768: return std::find(b, e, t) != e; 8768: } 8768: 8768: template 8768: int QList::count(const T &t) const 8768: { 8768: return this->count_impl(t, MemoryLayout()); 8768: } 8768: 8768: template 8768: inline int QList::count_impl(const T &t, QListData::NotArrayCompatibleLayout) const 8768: { 8768: int c = 0; 8768: Node *e = reinterpret_cast(p.end()); 8768: Node *i = reinterpret_cast(p.begin()); 8768: for (; i != e; ++i) 8768: if (i->t() == t) 8768: ++c; 8768: return c; 8768: } 8768: 8768: template 8768: inline int QList::count_impl(const T &t, QListData::ArrayCompatibleLayout) const 8768: { 8768: return int(std::count(reinterpret_cast(p.begin()), 8768: reinterpret_cast(p.end()), 8768: t)); 8768: } 8768: 8768: 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; } }; 8768: 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; } }; 8768: 8768: template 8768: uint qHash(const QList &key, uint seed = 0) 8768: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8768: { 8768: return qHashRange(key.cbegin(), key.cend(), seed); 8768: } 8768: 8768: template 8768: bool operator<(const QList &lhs, const QList &rhs) 8768: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8768: 8768: { 8768: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8768: rhs.begin(), rhs.end()); 8768: } 8768: 8768: template 8768: inline bool operator>(const QList &lhs, const QList &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return rhs < lhs; 8768: } 8768: 8768: template 8768: inline bool operator<=(const QList &lhs, const QList &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return !(lhs > rhs); 8768: } 8768: 8768: template 8768: inline bool operator>=(const QList &lhs, const QList &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return !(lhs < rhs); 8768: } 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 1 3 4 8768: # 42 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef QListIterator QByteArrayListIterator; 8768: typedef QMutableListIterator QMutableByteArrayListIterator; 8768: 8768: typedef QList QByteArrayList; 8768: 8768: namespace QtPrivate { 8768: QByteArray __attribute__((visibility("default"))) QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template <> struct QListSpecialMethods 8768: 8768: { 8768: 8768: protected: 8768: ~QListSpecialMethods() {} 8768: 8768: public: 8768: inline QByteArray join() const 8768: { return QtPrivate::QByteArrayList_join(self(), nullptr, 0); } 8768: inline QByteArray join(const QByteArray &sep) const 8768: { return QtPrivate::QByteArrayList_join(self(), sep.constData(), sep.size()); } 8768: inline QByteArray join(char sep) const 8768: { return QtPrivate::QByteArrayList_join(self(), &sep, 1); } 8768: 8768: private: 8768: typedef QList Self; 8768: Self *self() { return static_cast(this); } 8768: const Self *self() const { return static_cast(this); } 8768: }; 8768: 8768: 8768: # 1094 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qregexp.h" 1 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qregexp.h" 3 4 8768: 8768: 8768: 8768: struct QRegExpPrivate; 8768: class QStringList; 8768: class QRegExp; 8768: 8768: __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed = 0) noexcept; 8768: 8768: class __attribute__((visibility("default"))) QRegExp 8768: { 8768: public: 8768: enum PatternSyntax { 8768: RegExp, 8768: Wildcard, 8768: FixedString, 8768: RegExp2, 8768: WildcardUnix, 8768: W3CXmlSchema11 }; 8768: enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; 8768: 8768: QRegExp(); 8768: explicit QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, 8768: PatternSyntax syntax = RegExp); 8768: QRegExp(const QRegExp &rx); 8768: ~QRegExp(); 8768: QRegExp &operator=(const QRegExp &rx); 8768: 8768: QRegExp &operator=(QRegExp &&other) noexcept { swap(other); return *this; } 8768: 8768: void swap(QRegExp &other) noexcept { qSwap(priv, other.priv); } 8768: 8768: bool operator==(const QRegExp &rx) const; 8768: inline bool operator!=(const QRegExp &rx) const { return !operator==(rx); } 8768: 8768: bool isEmpty() const; 8768: bool isValid() const; 8768: QString pattern() const; 8768: void setPattern(const QString &pattern); 8768: Qt::CaseSensitivity caseSensitivity() const; 8768: void setCaseSensitivity(Qt::CaseSensitivity cs); 8768: PatternSyntax patternSyntax() const; 8768: void setPatternSyntax(PatternSyntax syntax); 8768: 8768: bool isMinimal() const; 8768: void setMinimal(bool minimal); 8768: 8768: bool exactMatch(const QString &str) const; 8768: 8768: int indexIn(const QString &str, int offset = 0, CaretMode caretMode = CaretAtZero) const; 8768: int lastIndexIn(const QString &str, int offset = -1, CaretMode caretMode = CaretAtZero) const; 8768: int matchedLength() const; 8768: 8768: int captureCount() const; 8768: QStringList capturedTexts() const; 8768: QStringList capturedTexts(); 8768: QString cap(int nth = 0) const; 8768: QString cap(int nth = 0); 8768: int pos(int nth = 0) const; 8768: int pos(int nth = 0); 8768: QString errorString() const; 8768: QString errorString(); 8768: 8768: 8768: static QString escape(const QString &str); 8768: 8768: friend __attribute__((visibility("default"))) uint qHash(const QRegExp &key, uint seed) noexcept; 8768: 8768: private: 8768: QRegExpPrivate *priv; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &in, QRegExp ®Exp); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRegExp &); 8768: 8768: 8768: 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringmatcher.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringmatcher.h" 3 4 8768: 8768: 8768: 8768: class QStringMatcherPrivate; 8768: 8768: class __attribute__((visibility("default"))) QStringMatcher 8768: { 8768: public: 8768: QStringMatcher(); 8768: explicit QStringMatcher(const QString &pattern, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QStringMatcher(const QChar *uc, int len, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: QStringMatcher(const QStringMatcher &other); 8768: ~QStringMatcher(); 8768: 8768: QStringMatcher &operator=(const QStringMatcher &other); 8768: 8768: void setPattern(const QString &pattern); 8768: void setCaseSensitivity(Qt::CaseSensitivity cs); 8768: 8768: int indexIn(const QString &str, int from = 0) const; 8768: int indexIn(const QChar *str, int length, int from = 0) const; 8768: QString pattern() const; 8768: inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; } 8768: 8768: private: 8768: QStringMatcherPrivate *d_ptr; 8768: QString q_pattern; 8768: Qt::CaseSensitivity q_cs; 8768: struct Data { 8768: uchar q_skiptable[256]; 8768: const QChar *uc; 8768: int len; 8768: }; 8768: union { 8768: uint q_data[256]; 8768: Data p; 8768: }; 8768: }; 8768: 8768: 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 2 3 4 8768: 8768: 8768: 8768: class QRegExp; 8768: class QRegularExpression; 8768: 8768: typedef QListIterator QStringListIterator; 8768: typedef QMutableListIterator QMutableStringListIterator; 8768: 8768: class QStringList; 8768: 8768: 8768: 8768: 8768: template <> struct QListSpecialMethods 8768: 8768: { 8768: 8768: protected: 8768: ~QListSpecialMethods() {} 8768: 8768: public: 8768: inline void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: inline int removeDuplicates(); 8768: 8768: inline QString join(const QString &sep) const; 8768: inline QString join(QLatin1String sep) const; 8768: inline QString join(QChar sep) const; 8768: 8768: inline QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: inline QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: 8768: 8768: inline QStringList filter(const QRegExp &rx) const; 8768: inline QStringList &replaceInStrings(const QRegExp &rx, const QString &after); 8768: 8768: 8768: 8768: 8768: inline QStringList filter(const QRegularExpression &re) const; 8768: inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after); 8768: 8768: 8768: 8768: 8768: private: 8768: inline QStringList *self(); 8768: inline const QStringList *self() const; 8768: }; 8768: 8768: 8768: class QStringList : public QList 8768: { 8768: 8768: public: 8768: inline QStringList() noexcept { } 8768: inline explicit QStringList(const QString &i) { append(i); } 8768: inline QStringList(const QList &l) : QList(l) { } 8768: 8768: inline QStringList(QList &&l) noexcept : QList(std::move(l)) { } 8768: 8768: 8768: inline QStringList(std::initializer_list args) : QList(args) { } 8768: 8768: 8768: QStringList &operator=(const QList &other) 8768: { QList::operator=(other); return *this; } 8768: 8768: QStringList &operator=(QList &&other) noexcept 8768: { QList::operator=(std::move(other)); return *this; } 8768: 8768: 8768: inline bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: 8768: inline QStringList operator+(const QStringList &other) const 8768: { QStringList n = *this; n += other; return n; } 8768: inline QStringList &operator<<(const QString &str) 8768: { append(str); return *this; } 8768: inline QStringList &operator<<(const QStringList &l) 8768: { *this += l; return *this; } 8768: inline QStringList &operator<<(const QList &l) 8768: { *this += l; return *this; } 8768: 8768: 8768: inline int indexOf(const QRegExp &rx, int from = 0) const; 8768: inline int lastIndexOf(const QRegExp &rx, int from = -1) const; 8768: inline int indexOf(QRegExp &rx, int from = 0) const; 8768: inline int lastIndexOf(QRegExp &rx, int from = -1) const; 8768: 8768: 8768: 8768: 8768: inline int indexOf(const QRegularExpression &re, int from = 0) const; 8768: inline int lastIndexOf(const QRegularExpression &re, int from = -1) const; 8768: 8768: 8768: 8768: using QList::indexOf; 8768: using QList::lastIndexOf; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: inline QStringList *QListSpecialMethods::self() 8768: { return static_cast(this); } 8768: inline const QStringList *QListSpecialMethods::self() const 8768: { return static_cast(this); } 8768: 8768: namespace QtPrivate { 8768: void __attribute__((visibility("default"))) QStringList_sort(QStringList *that, Qt::CaseSensitivity cs); 8768: int __attribute__((visibility("default"))) QStringList_removeDuplicates(QStringList *that); 8768: QString __attribute__((visibility("default"))) QStringList_join(const QStringList *that, const QChar *sep, int seplen); 8768: __attribute__((visibility("default"))) QString QStringList_join(const QStringList &list, QLatin1String sep); 8768: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QString &str, 8768: Qt::CaseSensitivity cs); 8768: 8768: bool __attribute__((visibility("default"))) QStringList_contains(const QStringList *that, const QString &str, Qt::CaseSensitivity cs); 8768: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QString &before, const QString &after, 8768: Qt::CaseSensitivity cs); 8768: 8768: 8768: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegExp &rx, const QString &after); 8768: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegExp &re); 8768: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegExp &rx, int from); 8768: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegExp &rx, int from); 8768: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, QRegExp &rx, int from); 8768: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int from); 8768: 8768: 8768: 8768: 8768: void __attribute__((visibility("default"))) QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after); 8768: QStringList __attribute__((visibility("default"))) QStringList_filter(const QStringList *that, const QRegularExpression &re); 8768: int __attribute__((visibility("default"))) QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from); 8768: int __attribute__((visibility("default"))) QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from); 8768: 8768: 8768: } 8768: 8768: inline void QListSpecialMethods::sort(Qt::CaseSensitivity cs) 8768: { 8768: QtPrivate::QStringList_sort(self(), cs); 8768: } 8768: 8768: inline int QListSpecialMethods::removeDuplicates() 8768: { 8768: return QtPrivate::QStringList_removeDuplicates(self()); 8768: } 8768: 8768: inline QString QListSpecialMethods::join(const QString &sep) const 8768: { 8768: return QtPrivate::QStringList_join(self(), sep.constData(), sep.length()); 8768: } 8768: 8768: QString QListSpecialMethods::join(QLatin1String sep) const 8768: { 8768: return QtPrivate::QStringList_join(*self(), sep); 8768: } 8768: 8768: inline QString QListSpecialMethods::join(QChar sep) const 8768: { 8768: return QtPrivate::QStringList_join(self(), &sep, 1); 8768: } 8768: 8768: inline QStringList QListSpecialMethods::filter(const QString &str, Qt::CaseSensitivity cs) const 8768: { 8768: return QtPrivate::QStringList_filter(self(), str, cs); 8768: } 8768: 8768: inline bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs) const 8768: { 8768: return QtPrivate::QStringList_contains(this, str, cs); 8768: } 8768: 8768: inline QStringList &QListSpecialMethods::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs) 8768: { 8768: QtPrivate::QStringList_replaceInStrings(self(), before, after, cs); 8768: return *self(); 8768: } 8768: 8768: inline QStringList operator+(const QList &one, const QStringList &other) 8768: { 8768: QStringList n = one; 8768: n += other; 8768: return n; 8768: } 8768: 8768: 8768: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegExp &rx, const QString &after) 8768: { 8768: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8768: return *self(); 8768: } 8768: 8768: inline QStringList QListSpecialMethods::filter(const QRegExp &rx) const 8768: { 8768: return QtPrivate::QStringList_filter(self(), rx); 8768: } 8768: 8768: inline int QStringList::indexOf(const QRegExp &rx, int from) const 8768: { 8768: return QtPrivate::QStringList_indexOf(this, rx, from); 8768: } 8768: 8768: inline int QStringList::lastIndexOf(const QRegExp &rx, int from) const 8768: { 8768: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8768: } 8768: 8768: inline int QStringList::indexOf(QRegExp &rx, int from) const 8768: { 8768: return QtPrivate::QStringList_indexOf(this, rx, from); 8768: } 8768: 8768: inline int QStringList::lastIndexOf(QRegExp &rx, int from) const 8768: { 8768: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8768: } 8768: 8768: 8768: 8768: 8768: inline QStringList &QListSpecialMethods::replaceInStrings(const QRegularExpression &rx, const QString &after) 8768: { 8768: QtPrivate::QStringList_replaceInStrings(self(), rx, after); 8768: return *self(); 8768: } 8768: 8768: inline QStringList QListSpecialMethods::filter(const QRegularExpression &rx) const 8768: { 8768: return QtPrivate::QStringList_filter(self(), rx); 8768: } 8768: 8768: inline int QStringList::indexOf(const QRegularExpression &rx, int from) const 8768: { 8768: return QtPrivate::QStringList_indexOf(this, rx, from); 8768: } 8768: 8768: inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) const 8768: { 8768: return QtPrivate::QStringList_lastIndexOf(this, rx, from); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: # 1095 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h" 2 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcontainerfwd.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcontainerfwd.h" 3 4 8768: 8768: 8768: 8768: template class QCache; 8768: template class QHash; 8768: template class QLinkedList; 8768: template class QList; 8768: template class QMap; 8768: template class QMultiHash; 8768: template class QMultiMap; 8768: template struct QPair; 8768: template class QQueue; 8768: template class QSet; 8768: template class QStack; 8768: template class QVarLengthArray; 8768: template class QVector; 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvarlengtharray.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class QPodList; 8768: 8768: 8768: template 8768: class QVarLengthArray 8768: { 8768: public: 8768: inline explicit QVarLengthArray(int size = 0); 8768: 8768: inline QVarLengthArray(const QVarLengthArray &other) 8768: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8768: { 8768: append(other.constData(), other.size()); 8768: } 8768: 8768: 8768: QVarLengthArray(std::initializer_list args) 8768: : a(Prealloc), s(0), ptr(reinterpret_cast(array)) 8768: { 8768: if (args.size()) 8768: append(args.begin(), int(args.size())); 8768: } 8768: 8768: 8768: inline ~QVarLengthArray() { 8768: if (QTypeInfo::isComplex) { 8768: T *i = ptr + s; 8768: while (i-- != ptr) 8768: i->~T(); 8768: } 8768: if (ptr != reinterpret_cast(array)) 8768: free(ptr); 8768: } 8768: inline QVarLengthArray &operator=(const QVarLengthArray &other) 8768: { 8768: if (this != &other) { 8768: clear(); 8768: append(other.constData(), other.size()); 8768: } 8768: return *this; 8768: } 8768: 8768: 8768: QVarLengthArray &operator=(std::initializer_list list) 8768: { 8768: resize(list.size()); 8768: std::copy(list.begin(), list.end(), 8768: (this->begin())); 8768: return *this; 8768: } 8768: 8768: 8768: inline void removeLast() { 8768: do { } while ((false) && (s > 0)); 8768: realloc(s - 1, a); 8768: } 8768: inline int size() const { return s; } 8768: inline int count() const { return s; } 8768: inline int length() const { return s; } 8768: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: T& last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8768: const T& last() const { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8768: inline bool isEmpty() const { return (s == 0); } 8768: inline void resize(int size); 8768: inline void clear() { resize(0); } 8768: inline void squeeze(); 8768: 8768: inline int capacity() const { return a; } 8768: inline void reserve(int size); 8768: 8768: inline int indexOf(const T &t, int from = 0) const; 8768: inline int lastIndexOf(const T &t, int from = -1) const; 8768: inline bool contains(const T &t) const; 8768: 8768: inline T &operator[](int idx) { 8768: do { } while ((false) && (idx >= 0 && idx < s)); 8768: return ptr[idx]; 8768: } 8768: inline const T &operator[](int idx) const { 8768: do { } while ((false) && (idx >= 0 && idx < s)); 8768: return ptr[idx]; 8768: } 8768: inline const T &at(int idx) const { return operator[](idx); } 8768: 8768: T value(int i) const; 8768: T value(int i, const T &defaultValue) const; 8768: 8768: inline void append(const T &t) { 8768: if (s == a) { 8768: T copy(t); 8768: realloc(s, s<<1); 8768: const int idx = s++; 8768: if (QTypeInfo::isComplex) { 8768: new (ptr + idx) T(std::move(copy)); 8768: } else { 8768: ptr[idx] = std::move(copy); 8768: } 8768: } else { 8768: const int idx = s++; 8768: if (QTypeInfo::isComplex) { 8768: new (ptr + idx) T(t); 8768: } else { 8768: ptr[idx] = t; 8768: } 8768: } 8768: } 8768: 8768: void append(T &&t) { 8768: if (s == a) 8768: realloc(s, s << 1); 8768: const int idx = s++; 8768: if (QTypeInfo::isComplex) 8768: new (ptr + idx) T(std::move(t)); 8768: else 8768: ptr[idx] = std::move(t); 8768: } 8768: 8768: void append(const T *buf, int size); 8768: inline QVarLengthArray &operator<<(const T &t) 8768: { append(t); return *this; } 8768: inline QVarLengthArray &operator+=(const T &t) 8768: { append(t); return *this; } 8768: 8768: void prepend(const T &t); 8768: void insert(int i, const T &t); 8768: void insert(int i, int n, const T &t); 8768: void replace(int i, const T &t); 8768: void remove(int i); 8768: void remove(int i, int n); 8768: 8768: 8768: inline T *data() { return ptr; } 8768: inline const T *data() const { return ptr; } 8768: inline const T * constData() const { return ptr; } 8768: typedef int size_type; 8768: typedef T value_type; 8768: typedef value_type *pointer; 8768: typedef const value_type *const_pointer; 8768: typedef value_type &reference; 8768: typedef const value_type &const_reference; 8768: typedef qptrdiff difference_type; 8768: 8768: 8768: typedef T* iterator; 8768: typedef const T* const_iterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: 8768: inline iterator begin() { return ptr; } 8768: inline const_iterator begin() const { return ptr; } 8768: inline const_iterator cbegin() const { return ptr; } 8768: inline const_iterator constBegin() const { return ptr; } 8768: inline iterator end() { return ptr + s; } 8768: inline const_iterator end() const { return ptr + s; } 8768: inline const_iterator cend() const { return ptr + s; } 8768: inline const_iterator constEnd() const { return ptr + s; } 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const { return const_reverse_iterator(begin()); } 8768: iterator insert(const_iterator before, int n, const T &x); 8768: inline iterator insert(const_iterator before, const T &x) { return insert(before, 1, x); } 8768: iterator erase(const_iterator begin, const_iterator end); 8768: inline iterator erase(const_iterator pos) { return erase(pos, pos+1); } 8768: 8768: 8768: inline bool empty() const { return isEmpty(); } 8768: inline void push_back(const T &t) { append(t); } 8768: void push_back(T &&t) { append(std::move(t)); } 8768: inline void pop_back() { removeLast(); } 8768: inline T &front() { return first(); } 8768: inline const T &front() const { return first(); } 8768: inline T &back() { return last(); } 8768: inline const T &back() const { return last(); } 8768: 8768: private: 8768: friend class QPodList; 8768: void realloc(int size, int alloc); 8768: 8768: int a; 8768: int s; 8768: T *ptr; 8768: union { 8768: char array[Prealloc * sizeof(T)]; 8768: qint64 q_for_alignment_1; 8768: double q_for_alignment_2; 8768: }; 8768: 8768: bool isValidIterator(const const_iterator &i) const 8768: { 8768: return (i <= constEnd()) && (constBegin() <= i); 8768: } 8768: }; 8768: 8768: template 8768: inline QVarLengthArray::QVarLengthArray(int asize) 8768: : s(asize) { 8768: static_assert(bool(Prealloc > 0), "QVarLengthArray Prealloc must be greater than 0."); 8768: do { } while ((false) && (s >= 0)); 8768: if (s > Prealloc) { 8768: ptr = reinterpret_cast(malloc(s * sizeof(T))); 8768: do { if (!(ptr)) qBadAlloc(); } while (false); 8768: a = s; 8768: } else { 8768: ptr = reinterpret_cast(array); 8768: a = Prealloc; 8768: } 8768: if (QTypeInfo::isComplex) { 8768: T *i = ptr + s; 8768: while (i != ptr) 8768: new (--i) T; 8768: } 8768: } 8768: 8768: template 8768: inline void QVarLengthArray::resize(int asize) 8768: { realloc(asize, qMax(asize, a)); } 8768: 8768: template 8768: inline void QVarLengthArray::reserve(int asize) 8768: { if (asize > a) realloc(s, asize); } 8768: 8768: template 8768: inline int QVarLengthArray::indexOf(const T &t, int from) const 8768: { 8768: if (from < 0) 8768: from = qMax(from + s, 0); 8768: if (from < s) { 8768: T *n = ptr + from - 1; 8768: T *e = ptr + s; 8768: while (++n != e) 8768: if (*n == t) 8768: return n - ptr; 8768: } 8768: return -1; 8768: } 8768: 8768: template 8768: inline int QVarLengthArray::lastIndexOf(const T &t, int from) const 8768: { 8768: if (from < 0) 8768: from += s; 8768: else if (from >= s) 8768: from = s - 1; 8768: if (from >= 0) { 8768: T *b = ptr; 8768: T *n = ptr + from + 1; 8768: while (n != b) { 8768: if (*--n == t) 8768: return n - b; 8768: } 8768: } 8768: return -1; 8768: } 8768: 8768: template 8768: inline bool QVarLengthArray::contains(const T &t) const 8768: { 8768: T *b = ptr; 8768: T *i = ptr + s; 8768: while (i != b) { 8768: if (*--i == t) 8768: return true; 8768: } 8768: return false; 8768: } 8768: 8768: template 8768: void QVarLengthArray::append(const T *abuf, int increment) 8768: { 8768: do { } while ((false) && (abuf)); 8768: if (increment <= 0) 8768: return; 8768: 8768: const int asize = s + increment; 8768: 8768: if (asize >= a) 8768: realloc(s, qMax(s*2, asize)); 8768: 8768: if (QTypeInfo::isComplex) { 8768: 8768: while (s < asize) 8768: new (ptr+(s++)) T(*abuf++); 8768: } else { 8768: memcpy(&ptr[s], abuf, increment * sizeof(T)); 8768: s = asize; 8768: } 8768: } 8768: 8768: template 8768: inline void QVarLengthArray::squeeze() 8768: { realloc(s, s); } 8768: 8768: template 8768: void QVarLengthArray::realloc(int asize, int aalloc) 8768: { 8768: do { } while ((false) && (aalloc >= asize)); 8768: T *oldPtr = ptr; 8768: int osize = s; 8768: 8768: const int copySize = qMin(asize, osize); 8768: do { const bool valueOfExpression = copySize >= 0; do { } while ((false) && (valueOfExpression)); if (valueOfExpression){} else __builtin_unreachable(); } while (false); 8768: if (aalloc != a) { 8768: if (aalloc > Prealloc) { 8768: T* newPtr = reinterpret_cast(malloc(aalloc * sizeof(T))); 8768: do { if (!(newPtr)) qBadAlloc(); } while (false); 8768: 8768: ptr = newPtr; 8768: a = aalloc; 8768: } else { 8768: ptr = reinterpret_cast(array); 8768: a = Prealloc; 8768: } 8768: s = 0; 8768: if (!QTypeInfoQuery::isRelocatable) { 8768: try { 8768: 8768: while (s < copySize) { 8768: new (ptr+s) T(*(oldPtr+s)); 8768: (oldPtr+s)->~T(); 8768: s++; 8768: } 8768: } catch (...) { 8768: 8768: int sClean = s; 8768: while (sClean < osize) 8768: (oldPtr+(sClean++))->~T(); 8768: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8768: free(oldPtr); 8768: throw; 8768: } 8768: } else { 8768: memcpy(ptr, oldPtr, copySize * sizeof(T)); 8768: } 8768: } 8768: s = copySize; 8768: 8768: if (QTypeInfo::isComplex) { 8768: 8768: while (osize > asize) 8768: (oldPtr+(--osize))->~T(); 8768: } 8768: 8768: if (oldPtr != reinterpret_cast(array) && oldPtr != ptr) 8768: free(oldPtr); 8768: 8768: if (QTypeInfo::isComplex) { 8768: 8768: while (s < asize) 8768: new (ptr+(s++)) T; 8768: } else { 8768: s = asize; 8768: } 8768: } 8768: 8768: template 8768: T QVarLengthArray::value(int i) const 8768: { 8768: if (uint(i) >= uint(size())) { 8768: return T(); 8768: } 8768: return at(i); 8768: } 8768: template 8768: T QVarLengthArray::value(int i, const T &defaultValue) const 8768: { 8768: return (uint(i) >= uint(size())) ? defaultValue : at(i); 8768: } 8768: 8768: template 8768: inline void QVarLengthArray::insert(int i, const T &t) 8768: { do { } while ((false) && (i >= 0 && i <= s)); 8768: insert(begin() + i, 1, t); } 8768: template 8768: inline void QVarLengthArray::insert(int i, int n, const T &t) 8768: { do { } while ((false) && (i >= 0 && i <= s)); 8768: insert(begin() + i, n, t); } 8768: template 8768: inline void QVarLengthArray::remove(int i, int n) 8768: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= s)); 8768: erase(begin() + i, begin() + i + n); } 8768: template 8768: inline void QVarLengthArray::remove(int i) 8768: { do { } while ((false) && (i >= 0 && i < s)); 8768: erase(begin() + i, begin() + i + 1); } 8768: template 8768: inline void QVarLengthArray::prepend(const T &t) 8768: { insert(begin(), 1, t); } 8768: 8768: template 8768: inline void QVarLengthArray::replace(int i, const T &t) 8768: { 8768: do { } while ((false) && (i >= 0 && i < s)); 8768: const T copy(t); 8768: data()[i] = copy; 8768: } 8768: 8768: 8768: template 8768: typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, size_type n, const T &t) 8768: { 8768: do { } while ((false) && (isValidIterator(before))); 8768: 8768: int offset = int(before - ptr); 8768: if (n != 0) { 8768: resize(s + n); 8768: const T copy(t); 8768: if (!QTypeInfoQuery::isRelocatable) { 8768: T *b = ptr + offset; 8768: T *j = ptr + s; 8768: T *i = j - n; 8768: while (i != b) 8768: *--j = *--i; 8768: i = b + n; 8768: while (i != b) 8768: *--i = copy; 8768: } else { 8768: T *b = ptr + offset; 8768: T *i = b + n; 8768: memmove(i, b, (s - offset - n) * sizeof(T)); 8768: while (i != b) 8768: new (--i) T(copy); 8768: } 8768: } 8768: return ptr + offset; 8768: } 8768: 8768: template 8768: typename QVarLengthArray::iterator QVarLengthArray::erase(const_iterator abegin, const_iterator aend) 8768: { 8768: do { } while ((false) && (isValidIterator(abegin))); 8768: do { } while ((false) && (isValidIterator(aend))); 8768: 8768: int f = int(abegin - ptr); 8768: int l = int(aend - ptr); 8768: int n = l - f; 8768: if (QTypeInfo::isComplex) { 8768: std::copy(ptr + l, ptr + s, (ptr + f)); 8768: T *i = ptr + s; 8768: T *b = ptr + s - n; 8768: while (i != b) { 8768: --i; 8768: i->~T(); 8768: } 8768: } else { 8768: memmove(ptr + f, ptr + l, (s - l) * sizeof(T)); 8768: } 8768: s -= n; 8768: return ptr + f; 8768: } 8768: 8768: template 8768: bool operator==(const QVarLengthArray &l, const QVarLengthArray &r) 8768: { 8768: if (l.size() != r.size()) 8768: return false; 8768: const T *rb = r.begin(); 8768: const T *b = l.begin(); 8768: const T *e = l.end(); 8768: return std::equal(b, e, (rb)); 8768: } 8768: 8768: template 8768: bool operator!=(const QVarLengthArray &l, const QVarLengthArray &r) 8768: { 8768: return !(l == r); 8768: } 8768: 8768: template 8768: bool operator<(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8768: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8768: 8768: { 8768: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8768: rhs.begin(), rhs.end()); 8768: } 8768: 8768: template 8768: inline bool operator>(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return rhs < lhs; 8768: } 8768: 8768: template 8768: inline bool operator<=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return !(lhs > rhs); 8768: } 8768: 8768: template 8768: inline bool operator>=(const QVarLengthArray &lhs, const QVarLengthArray &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return !(lhs < rhs); 8768: } 8768: 8768: 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 1 3 4 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 1 3 4 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8768: 8768: 8768: 8768: namespace QtPrivate { 8768: template struct RemoveRef { typedef T Type; }; 8768: template struct RemoveRef { typedef T Type; }; 8768: template struct RemoveConstRef { typedef T Type; }; 8768: template struct RemoveConstRef { typedef T Type; }; 8768: # 69 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8768: template struct List {}; 8768: template struct List { typedef Head Car; typedef List Cdr; }; 8768: template struct List_Append; 8768: template struct List_Append, List> { typedef List Value; }; 8768: template struct List_Left { 8768: typedef typename List_Append,typename List_Left::Value>::Value Value; 8768: }; 8768: template struct List_Left { typedef List<> Value; }; 8768: 8768: template struct List_Select { typedef typename List_Select::Value Value; }; 8768: template struct List_Select { typedef typename L::Car Value; }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct ApplyReturnValue { 8768: void *data; 8768: explicit ApplyReturnValue(void *data_) : data(data_) {} 8768: }; 8768: template 8768: void operator,(T &&value, const ApplyReturnValue &container) { 8768: if (container.data) 8768: *reinterpret_cast(container.data) = std::forward(value); 8768: } 8768: template 8768: void operator,(T, const ApplyReturnValue &) {} 8768: # 117 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8768: template struct IndexesList {}; 8768: template struct IndexesAppend; 8768: template struct IndexesAppend, Right> 8768: { typedef IndexesList Value; }; 8768: template struct Indexes 8768: { typedef typename IndexesAppend::Value, N - 1>::Value Value; }; 8768: template <> struct Indexes<0> { typedef IndexesList<> Value; }; 8768: template struct FunctionPointer { enum {ArgumentCount = -1, IsPointerToMemberFunction = false}; }; 8768: 8768: template struct FunctorCall; 8768: template 8768: struct FunctorCall, List, R, Function> { 8768: static void call(Function &f, void **arg) { 8768: f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8768: } 8768: }; 8768: template 8768: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { 8768: static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) { 8768: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8768: } 8768: }; 8768: template 8768: struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { 8768: static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) { 8768: (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); 8768: } 8768: }; 8768: # 160 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8768: template struct FunctionPointer 8768: { 8768: typedef Obj Object; 8768: typedef List Arguments; 8768: typedef Ret ReturnType; 8768: typedef Ret (Obj::*Function) (Args...); 8768: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8768: template 8768: static void call(Function f, Obj *o, void **arg) { 8768: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8768: } 8768: }; 8768: template struct FunctionPointer 8768: { 8768: typedef Obj Object; 8768: typedef List Arguments; 8768: typedef Ret ReturnType; 8768: typedef Ret (Obj::*Function) (Args...) const; 8768: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = true}; 8768: template 8768: static void call(Function f, Obj *o, void **arg) { 8768: FunctorCall::Value, SignalArgs, R, Function>::call(f, o, arg); 8768: } 8768: }; 8768: 8768: template struct FunctionPointer 8768: { 8768: typedef List Arguments; 8768: typedef Ret ReturnType; 8768: typedef Ret (*Function) (Args...); 8768: enum {ArgumentCount = sizeof...(Args), IsPointerToMemberFunction = false}; 8768: template 8768: static void call(Function f, void *, void **arg) { 8768: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8768: } 8768: }; 8768: # 236 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h" 3 4 8768: template struct Functor 8768: { 8768: template 8768: static void call(Function &f, void *, void **arg) { 8768: FunctorCall::Value, SignalArgs, R, Function>::call(f, arg); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct IsEnumUnderlyingTypeSigned : std::false_type 8768: { 8768: }; 8768: 8768: template 8768: struct IsEnumUnderlyingTypeSigned::value>::type> 8768: : std::integral_constant::type>::value> 8768: { 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct AreArgumentsNarrowedBase : std::false_type 8768: { 8768: }; 8768: 8768: template 8768: struct AreArgumentsNarrowedBase::type> 8768: : std::integral_constant::value && std::is_integral::value) || 8768: (std::is_floating_point::value && std::is_floating_point::value && sizeof(From) > sizeof(To)) || 8768: ((std::is_integral::value || std::is_enum::value) && std::is_floating_point::value) || 8768: (std::is_integral::value && std::is_integral::value 8768: && (sizeof(From) > sizeof(To) 8768: || (std::is_signed::value ? !std::is_signed::value 8768: : (std::is_signed::value && sizeof(From) == sizeof(To))))) || 8768: (std::is_enum::value && std::is_integral::value 8768: && (sizeof(From) > sizeof(To) 8768: || (IsEnumUnderlyingTypeSigned::value ? !std::is_signed::value 8768: : (std::is_signed::value && sizeof(From) == sizeof(To))))) 8768: > 8768: { 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template struct AreArgumentsCompatible { 8768: static int test(const typename RemoveRef::Type&); 8768: static char test(...); 8768: static const typename RemoveRef::Type &dummy(); 8768: enum { value = sizeof(test(dummy())) == sizeof(int) }; 8768: 8768: 8768: 8768: 8768: }; 8768: template struct AreArgumentsCompatible { enum { value = false }; }; 8768: template struct AreArgumentsCompatible { enum { value = true }; }; 8768: 8768: template struct AreArgumentsCompatible { enum { value = true }; }; 8768: template struct AreArgumentsCompatible { enum { value = true }; }; 8768: template<> struct AreArgumentsCompatible { enum { value = true }; }; 8768: 8768: template struct CheckCompatibleArguments { enum { value = false }; }; 8768: template <> struct CheckCompatibleArguments, List<>> { enum { value = true }; }; 8768: template struct CheckCompatibleArguments> { enum { value = true }; }; 8768: template 8768: struct CheckCompatibleArguments, List> 8768: { 8768: enum { value = AreArgumentsCompatible::Type, typename RemoveConstRef::Type>::value 8768: && CheckCompatibleArguments, List>::value }; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template struct ComputeFunctorArgumentCount; 8768: 8768: template struct ComputeFunctorArgumentCountHelper 8768: { enum { Value = -1 }; }; 8768: template 8768: struct ComputeFunctorArgumentCountHelper, false> 8768: : ComputeFunctorArgumentCount, sizeof...(ArgList)>::Value> {}; 8768: 8768: template struct ComputeFunctorArgumentCount> 8768: { 8768: template static D dummy(); 8768: template static auto test(F f) -> decltype(((f.operator()((dummy())...)), int())); 8768: static char test(...); 8768: enum { 8768: Ok = sizeof(test(dummy())) == sizeof(int), 8768: Value = Ok ? int(sizeof...(ArgList)) : int(ComputeFunctorArgumentCountHelper, Ok>::Value) 8768: }; 8768: }; 8768: 8768: 8768: template struct FunctorReturnType; 8768: template struct FunctorReturnType> { 8768: template static D dummy(); 8768: typedef decltype(dummy().operator()((dummy())...)) Value; 8768: }; 8768: } 8768: 8768: 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 2 3 4 8768: 8768: 8768: 8768: 8768: class QByteArray; 8768: struct QArrayData; 8768: typedef QArrayData QByteArrayData; 8768: 8768: class QString; 8768: # 262 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8768: __attribute__((visibility("default"))) const char *qFlagLocation(const char *method); 8768: # 288 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h" 3 4 8768: class QObject; 8768: class QMetaMethod; 8768: class QMetaEnum; 8768: class QMetaProperty; 8768: class QMetaClassInfo; 8768: 8768: 8768: class __attribute__((visibility("default"))) QGenericArgument 8768: { 8768: public: 8768: inline QGenericArgument(const char *aName = nullptr, const void *aData = nullptr) 8768: : _data(aData), _name(aName) {} 8768: inline void *data() const { return const_cast(_data); } 8768: inline const char *name() const { return _name; } 8768: 8768: private: 8768: const void *_data; 8768: const char *_name; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QGenericReturnArgument: public QGenericArgument 8768: { 8768: public: 8768: inline QGenericReturnArgument(const char *aName = nullptr, void *aData = nullptr) 8768: : QGenericArgument(aName, aData) 8768: {} 8768: }; 8768: 8768: template 8768: class QArgument: public QGenericArgument 8768: { 8768: public: 8768: inline QArgument(const char *aName, const T &aData) 8768: : QGenericArgument(aName, static_cast(&aData)) 8768: {} 8768: }; 8768: template 8768: class QArgument: public QGenericArgument 8768: { 8768: public: 8768: inline QArgument(const char *aName, T &aData) 8768: : QGenericArgument(aName, static_cast(&aData)) 8768: {} 8768: }; 8768: 8768: 8768: template 8768: class QReturnArgument: public QGenericReturnArgument 8768: { 8768: public: 8768: inline QReturnArgument(const char *aName, T &aData) 8768: : QGenericReturnArgument(aName, static_cast(&aData)) 8768: {} 8768: }; 8768: 8768: struct __attribute__((visibility("default"))) QMetaObject 8768: { 8768: class Connection; 8768: const char *className() const; 8768: const QMetaObject *superClass() const; 8768: 8768: bool inherits(const QMetaObject *metaObject) const noexcept; 8768: QObject *cast(QObject *obj) const; 8768: const QObject *cast(const QObject *obj) const; 8768: 8768: 8768: QString tr(const char *s, const char *c, int n = -1) const; 8768: 8768: 8768: int methodOffset() const; 8768: int enumeratorOffset() const; 8768: int propertyOffset() const; 8768: int classInfoOffset() const; 8768: 8768: int constructorCount() const; 8768: int methodCount() const; 8768: int enumeratorCount() const; 8768: int propertyCount() const; 8768: int classInfoCount() const; 8768: 8768: int indexOfConstructor(const char *constructor) const; 8768: int indexOfMethod(const char *method) const; 8768: int indexOfSignal(const char *signal) const; 8768: int indexOfSlot(const char *slot) const; 8768: int indexOfEnumerator(const char *name) const; 8768: int indexOfProperty(const char *name) const; 8768: int indexOfClassInfo(const char *name) const; 8768: 8768: QMetaMethod constructor(int index) const; 8768: QMetaMethod method(int index) const; 8768: QMetaEnum enumerator(int index) const; 8768: QMetaProperty property(int index) const; 8768: QMetaClassInfo classInfo(int index) const; 8768: QMetaProperty userProperty() const; 8768: 8768: static bool checkConnectArgs(const char *signal, const char *method); 8768: static bool checkConnectArgs(const QMetaMethod &signal, 8768: const QMetaMethod &method); 8768: static QByteArray normalizedSignature(const char *method); 8768: static QByteArray normalizedType(const char *type); 8768: 8768: 8768: static Connection connect(const QObject *sender, int signal_index, 8768: const QObject *receiver, int method_index, 8768: int type = 0, int *types = nullptr); 8768: 8768: static bool disconnect(const QObject *sender, int signal_index, 8768: const QObject *receiver, int method_index); 8768: static bool disconnectOne(const QObject *sender, int signal_index, 8768: const QObject *receiver, int method_index); 8768: 8768: static void connectSlotsByName(QObject *o); 8768: 8768: 8768: static void activate(QObject *sender, int signal_index, void **argv); 8768: static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); 8768: static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); 8768: 8768: static bool invokeMethod(QObject *obj, const char *member, 8768: Qt::ConnectionType, 8768: QGenericReturnArgument ret, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()); 8768: 8768: static inline bool invokeMethod(QObject *obj, const char *member, 8768: QGenericReturnArgument ret, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) 8768: { 8768: return invokeMethod(obj, member, Qt::AutoConnection, ret, val0, val1, val2, val3, 8768: val4, val5, val6, val7, val8, val9); 8768: } 8768: 8768: static inline bool invokeMethod(QObject *obj, const char *member, 8768: Qt::ConnectionType type, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) 8768: { 8768: return invokeMethod(obj, member, type, QGenericReturnArgument(), val0, val1, val2, 8768: val3, val4, val5, val6, val7, val8, val9); 8768: } 8768: 8768: static inline bool invokeMethod(QObject *obj, const char *member, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) 8768: { 8768: return invokeMethod(obj, member, Qt::AutoConnection, QGenericReturnArgument(), val0, 8768: val1, val2, val3, val4, val5, val6, val7, val8, val9); 8768: } 8768: 8768: QObject *newInstance(QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const; 8768: 8768: enum Call { 8768: InvokeMetaMethod, 8768: ReadProperty, 8768: WriteProperty, 8768: ResetProperty, 8768: QueryPropertyDesignable, 8768: QueryPropertyScriptable, 8768: QueryPropertyStored, 8768: QueryPropertyEditable, 8768: QueryPropertyUser, 8768: CreateInstance, 8768: IndexOfMethod, 8768: RegisterPropertyMetaType, 8768: RegisterMethodArgumentMetaType 8768: }; 8768: 8768: int static_metacall(Call, int, void **) const; 8768: static int metacall(QObject *, Call, int, void **); 8768: 8768: struct { 8768: const QMetaObject *superdata; 8768: const QByteArrayData *stringdata; 8768: const uint *data; 8768: typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **); 8768: StaticMetacallFunction static_metacall; 8768: const QMetaObject * const *relatedMetaObjects; 8768: void *extradata; 8768: } d; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QMetaObject::Connection { 8768: void *d_ptr; 8768: explicit Connection(void *data) : d_ptr(data) { } 8768: friend class QObject; 8768: friend class QObjectPrivate; 8768: friend struct QMetaObject; 8768: bool isConnected_helper() const; 8768: public: 8768: ~Connection(); 8768: Connection(); 8768: Connection(const Connection &other); 8768: Connection &operator=(const Connection &other); 8768: 8768: 8768: 8768: typedef void *Connection::*RestrictedBool; 8768: operator RestrictedBool() const { return d_ptr && isConnected_helper() ? &Connection::d_ptr : nullptr; } 8768: 8768: 8768: 8768: inline Connection(Connection &&o) : d_ptr(o.d_ptr) { o.d_ptr = nullptr; } 8768: inline Connection &operator=(Connection &&other) 8768: { qSwap(d_ptr, other.d_ptr); return *this; } 8768: 8768: }; 8768: 8768: inline const QMetaObject *QMetaObject::superClass() const 8768: { return d.superdata; } 8768: 8768: namespace QtPrivate { 8768: 8768: template struct HasQ_OBJECT_Macro { 8768: template 8768: static char test(int (T::*)(QMetaObject::Call, int, void **)); 8768: static int test(int (Object::*)(QMetaObject::Call, int, void **)); 8768: enum { Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) }; 8768: }; 8768: } 8768: 8768: 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/vector" 1 3 4 8768: # 58 "/usr/include/c++/8/vector" 3 4 8768: 8768: # 59 "/usr/include/c++/8/vector" 3 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_uninitialized.h" 1 3 8768: # 67 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: struct __uninitialized_copy 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_copy(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result) 8768: { 8768: _ForwardIterator __cur = __result; 8768: try 8768: { 8768: for (; __first != __last; ++__first, (void)++__cur) 8768: std::_Construct(std::__addressof(*__cur), *__first); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_copy 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_copy(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result) 8768: { return std::copy(__first, __last, __result); } 8768: }; 8768: # 113 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: template 8768: inline _ForwardIterator 8768: uninitialized_copy(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result) 8768: { 8768: typedef typename iterator_traits<_InputIterator>::value_type 8768: _ValueType1; 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType2; 8768: 8768: 8768: 8768: 8768: typedef typename iterator_traits<_InputIterator>::reference _RefType1; 8768: typedef typename iterator_traits<_ForwardIterator>::reference _RefType2; 8768: const bool __assignable = is_assignable<_RefType2, _RefType1>::value; 8768: 8768: 8768: return std::__uninitialized_copy<__is_trivial(_ValueType1) 8768: && __is_trivial(_ValueType2) 8768: && __assignable>:: 8768: __uninit_copy(__first, __last, __result); 8768: } 8768: 8768: 8768: template 8768: struct __uninitialized_fill 8768: { 8768: template 8768: static void 8768: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __x) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: for (; __cur != __last; ++__cur) 8768: std::_Construct(std::__addressof(*__cur), __x); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_fill 8768: { 8768: template 8768: static void 8768: __uninit_fill(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __x) 8768: { std::fill(__first, __last, __x); } 8768: }; 8768: # 179 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: template 8768: inline void 8768: uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __x) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: 8768: 8768: 8768: const bool __assignable = is_copy_assignable<_ValueType>::value; 8768: 8768: 8768: std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>:: 8768: __uninit_fill(__first, __last, __x); 8768: } 8768: 8768: 8768: template 8768: struct __uninitialized_fill_n 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8768: const _Tp& __x) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: for (; __n > 0; --__n, (void) ++__cur) 8768: std::_Construct(std::__addressof(*__cur), __x); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_fill_n 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_fill_n(_ForwardIterator __first, _Size __n, 8768: const _Tp& __x) 8768: { return std::fill_n(__first, __n, __x); } 8768: }; 8768: # 242 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: template 8768: inline _ForwardIterator 8768: uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: 8768: 8768: 8768: const bool __assignable = is_copy_assignable<_ValueType>::value; 8768: 8768: return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>:: 8768: __uninit_fill_n(__first, __n, __x); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result, _Allocator& __alloc) 8768: { 8768: _ForwardIterator __cur = __result; 8768: try 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8768: for (; __first != __last; ++__first, (void)++__cur) 8768: __traits::construct(__alloc, std::__addressof(*__cur), *__first); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __cur, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result, allocator<_Tp>&) 8768: { return std::uninitialized_copy(__first, __last, __result); } 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_move_a(_InputIterator __first, _InputIterator __last, 8768: _ForwardIterator __result, _Allocator& __alloc) 8768: { 8768: return std::__uninitialized_copy_a(std::make_move_iterator(__first), 8768: std::make_move_iterator(__last), 8768: __result, __alloc); 8768: } 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_move_if_noexcept_a(_InputIterator __first, 8768: _InputIterator __last, 8768: _ForwardIterator __result, 8768: _Allocator& __alloc) 8768: { 8768: return std::__uninitialized_copy_a 8768: (std::__make_move_if_noexcept_iterator(__first), 8768: std::__make_move_if_noexcept_iterator(__last), __result, __alloc); 8768: } 8768: 8768: template 8768: void 8768: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __x, _Allocator& __alloc) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8768: for (; __cur != __last; ++__cur) 8768: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline void 8768: __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, 8768: const _Tp& __x, allocator<_Tp2>&) 8768: { std::uninitialized_fill(__first, __last, __x); } 8768: 8768: template 8768: _ForwardIterator 8768: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8768: const _Tp& __x, _Allocator& __alloc) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8768: for (; __n > 0; --__n, (void) ++__cur) 8768: __traits::construct(__alloc, std::__addressof(*__cur), __x); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, 8768: const _Tp& __x, allocator<_Tp2>&) 8768: { return std::uninitialized_fill_n(__first, __n, __x); } 8768: # 378 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_copy_move(_InputIterator1 __first1, 8768: _InputIterator1 __last1, 8768: _InputIterator2 __first2, 8768: _InputIterator2 __last2, 8768: _ForwardIterator __result, 8768: _Allocator& __alloc) 8768: { 8768: _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, 8768: __result, 8768: __alloc); 8768: try 8768: { 8768: return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __mid, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_move_copy(_InputIterator1 __first1, 8768: _InputIterator1 __last1, 8768: _InputIterator2 __first2, 8768: _InputIterator2 __last2, 8768: _ForwardIterator __result, 8768: _Allocator& __alloc) 8768: { 8768: _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1, 8768: __result, 8768: __alloc); 8768: try 8768: { 8768: return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __mid, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid, 8768: const _Tp& __x, _InputIterator __first, 8768: _InputIterator __last, _Allocator& __alloc) 8768: { 8768: std::__uninitialized_fill_a(__result, __mid, __x, __alloc); 8768: try 8768: { 8768: return std::__uninitialized_move_a(__first, __last, __mid, __alloc); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __mid, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: inline void 8768: __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1, 8768: _ForwardIterator __first2, 8768: _ForwardIterator __last2, const _Tp& __x, 8768: _Allocator& __alloc) 8768: { 8768: _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1, 8768: __first2, 8768: __alloc); 8768: try 8768: { 8768: std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first2, __mid2, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __uninitialized_default_1 8768: { 8768: template 8768: static void 8768: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: for (; __cur != __last; ++__cur) 8768: std::_Construct(std::__addressof(*__cur)); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_default_1 8768: { 8768: template 8768: static void 8768: __uninit_default(_ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: std::fill(__first, __last, _ValueType()); 8768: } 8768: }; 8768: 8768: template 8768: struct __uninitialized_default_n_1 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_default_n(_ForwardIterator __first, _Size __n) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: for (; __n > 0; --__n, (void) ++__cur) 8768: std::_Construct(std::__addressof(*__cur)); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_default_n_1 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_default_n(_ForwardIterator __first, _Size __n) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: return std::fill_n(__first, __n, _ValueType()); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: inline void 8768: __uninitialized_default(_ForwardIterator __first, 8768: _ForwardIterator __last) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: const bool __assignable = is_copy_assignable<_ValueType>::value; 8768: 8768: std::__uninitialized_default_1<__is_trivial(_ValueType) 8768: && __assignable>:: 8768: __uninit_default(__first, __last); 8768: } 8768: 8768: 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_default_n(_ForwardIterator __first, _Size __n) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: const bool __assignable = is_copy_assignable<_ValueType>::value; 8768: 8768: return __uninitialized_default_n_1<__is_trivial(_ValueType) 8768: && __assignable>:: 8768: __uninit_default_n(__first, __n); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: __uninitialized_default_a(_ForwardIterator __first, 8768: _ForwardIterator __last, 8768: _Allocator& __alloc) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8768: for (; __cur != __last; ++__cur) 8768: __traits::construct(__alloc, std::__addressof(*__cur)); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline void 8768: __uninitialized_default_a(_ForwardIterator __first, 8768: _ForwardIterator __last, 8768: allocator<_Tp>&) 8768: { std::__uninitialized_default(__first, __last); } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: _ForwardIterator 8768: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8768: _Allocator& __alloc) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; 8768: for (; __n > 0; --__n, (void) ++__cur) 8768: __traits::construct(__alloc, std::__addressof(*__cur)); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur, __alloc); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_default_n_a(_ForwardIterator __first, _Size __n, 8768: allocator<_Tp>&) 8768: { return std::__uninitialized_default_n(__first, __n); } 8768: 8768: template 8768: struct __uninitialized_default_novalue_1 8768: { 8768: template 8768: static void 8768: __uninit_default_novalue(_ForwardIterator __first, 8768: _ForwardIterator __last) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: for (; __cur != __last; ++__cur) 8768: std::_Construct_novalue(std::__addressof(*__cur)); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_default_novalue_1 8768: { 8768: template 8768: static void 8768: __uninit_default_novalue(_ForwardIterator __first, 8768: _ForwardIterator __last) 8768: { 8768: } 8768: }; 8768: 8768: template 8768: struct __uninitialized_default_novalue_n_1 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8768: { 8768: _ForwardIterator __cur = __first; 8768: try 8768: { 8768: for (; __n > 0; --__n, (void) ++__cur) 8768: std::_Construct_novalue(std::__addressof(*__cur)); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__first, __cur); 8768: throw; 8768: } 8768: } 8768: }; 8768: 8768: template<> 8768: struct __uninitialized_default_novalue_n_1 8768: { 8768: template 8768: static _ForwardIterator 8768: __uninit_default_novalue_n(_ForwardIterator __first, _Size __n) 8768: { return std::next(__first, __n); } 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: inline void 8768: __uninitialized_default_novalue(_ForwardIterator __first, 8768: _ForwardIterator __last) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: std::__uninitialized_default_novalue_1< 8768: is_trivially_default_constructible<_ValueType>::value>:: 8768: __uninit_default_novalue(__first, __last); 8768: } 8768: 8768: 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_default_novalue_n(_ForwardIterator __first, _Size __n) 8768: { 8768: typedef typename iterator_traits<_ForwardIterator>::value_type 8768: _ValueType; 8768: 8768: return __uninitialized_default_novalue_n_1< 8768: is_trivially_default_constructible<_ValueType>::value>:: 8768: __uninit_default_novalue_n(__first, __n); 8768: } 8768: 8768: template 8768: _ForwardIterator 8768: __uninitialized_copy_n(_InputIterator __first, _Size __n, 8768: _ForwardIterator __result, input_iterator_tag) 8768: { 8768: _ForwardIterator __cur = __result; 8768: try 8768: { 8768: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8768: std::_Construct(std::__addressof(*__cur), *__first); 8768: return __cur; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __cur); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline _ForwardIterator 8768: __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n, 8768: _ForwardIterator __result, 8768: random_access_iterator_tag) 8768: { return std::uninitialized_copy(__first, __first + __n, __result); } 8768: 8768: template 8768: pair<_InputIterator, _ForwardIterator> 8768: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8768: _ForwardIterator __result, input_iterator_tag) 8768: { 8768: _ForwardIterator __cur = __result; 8768: try 8768: { 8768: for (; __n > 0; --__n, (void) ++__first, ++__cur) 8768: std::_Construct(std::__addressof(*__cur), *__first); 8768: return {__first, __cur}; 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__result, __cur); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: inline pair<_RandomAccessIterator, _ForwardIterator> 8768: __uninitialized_copy_n_pair(_RandomAccessIterator __first, _Size __n, 8768: _ForwardIterator __result, 8768: random_access_iterator_tag) 8768: { 8768: auto __second_res = uninitialized_copy(__first, __first + __n, __result); 8768: auto __first_res = std::next(__first, __n); 8768: return {__first_res, __second_res}; 8768: } 8768: # 810 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: template 8768: inline _ForwardIterator 8768: uninitialized_copy_n(_InputIterator __first, _Size __n, 8768: _ForwardIterator __result) 8768: { return std::__uninitialized_copy_n(__first, __n, __result, 8768: std::__iterator_category(__first)); } 8768: 8768: template 8768: inline pair<_InputIterator, _ForwardIterator> 8768: __uninitialized_copy_n_pair(_InputIterator __first, _Size __n, 8768: _ForwardIterator __result) 8768: { 8768: return 8768: std::__uninitialized_copy_n_pair(__first, __n, __result, 8768: std::__iterator_category(__first)); 8768: } 8768: # 882 "/usr/include/c++/8/bits/stl_uninitialized.h" 3 8768: 8768: } 8768: # 64 "/usr/include/c++/8/vector" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_vector.h" 1 3 8768: # 74 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: struct _Vector_base 8768: { 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_Tp>::other _Tp_alloc_type; 8768: typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer 8768: pointer; 8768: 8768: struct _Vector_impl 8768: : public _Tp_alloc_type 8768: { 8768: pointer _M_start; 8768: pointer _M_finish; 8768: pointer _M_end_of_storage; 8768: 8768: _Vector_impl() 8768: : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() 8768: { } 8768: 8768: _Vector_impl(_Tp_alloc_type const& __a) noexcept 8768: : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() 8768: { } 8768: 8768: 8768: _Vector_impl(_Tp_alloc_type&& __a) noexcept 8768: : _Tp_alloc_type(std::move(__a)), 8768: _M_start(), _M_finish(), _M_end_of_storage() 8768: { } 8768: 8768: 8768: void _M_swap_data(_Vector_impl& __x) noexcept 8768: { 8768: std::swap(_M_start, __x._M_start); 8768: std::swap(_M_finish, __x._M_finish); 8768: std::swap(_M_end_of_storage, __x._M_end_of_storage); 8768: } 8768: # 231 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: }; 8768: 8768: public: 8768: typedef _Alloc allocator_type; 8768: 8768: _Tp_alloc_type& 8768: _M_get_Tp_allocator() noexcept 8768: { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } 8768: 8768: const _Tp_alloc_type& 8768: _M_get_Tp_allocator() const noexcept 8768: { return *static_cast(&this->_M_impl); } 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_get_Tp_allocator()); } 8768: 8768: _Vector_base() 8768: : _M_impl() { } 8768: 8768: _Vector_base(const allocator_type& __a) noexcept 8768: : _M_impl(__a) { } 8768: 8768: _Vector_base(size_t __n) 8768: : _M_impl() 8768: { _M_create_storage(__n); } 8768: 8768: _Vector_base(size_t __n, const allocator_type& __a) 8768: : _M_impl(__a) 8768: { _M_create_storage(__n); } 8768: 8768: 8768: _Vector_base(_Tp_alloc_type&& __a) noexcept 8768: : _M_impl(std::move(__a)) { } 8768: 8768: _Vector_base(_Vector_base&& __x) noexcept 8768: : _M_impl(std::move(__x._M_get_Tp_allocator())) 8768: { this->_M_impl._M_swap_data(__x._M_impl); } 8768: 8768: _Vector_base(_Vector_base&& __x, const allocator_type& __a) 8768: : _M_impl(__a) 8768: { 8768: if (__x.get_allocator() == __a) 8768: this->_M_impl._M_swap_data(__x._M_impl); 8768: else 8768: { 8768: size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start; 8768: _M_create_storage(__n); 8768: } 8768: } 8768: 8768: 8768: ~_Vector_base() noexcept 8768: { 8768: _M_deallocate(_M_impl._M_start, 8768: _M_impl._M_end_of_storage - _M_impl._M_start); 8768: } 8768: 8768: public: 8768: _Vector_impl _M_impl; 8768: 8768: pointer 8768: _M_allocate(size_t __n) 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8768: return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); 8768: } 8768: 8768: void 8768: _M_deallocate(pointer __p, size_t __n) 8768: { 8768: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; 8768: if (__p) 8768: _Tr::deallocate(_M_impl, __p, __n); 8768: } 8768: 8768: private: 8768: void 8768: _M_create_storage(size_t __n) 8768: { 8768: this->_M_impl._M_start = this->_M_allocate(__n); 8768: this->_M_impl._M_finish = this->_M_impl._M_start; 8768: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8768: } 8768: }; 8768: # 338 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template > 8768: class vector : protected _Vector_base<_Tp, _Alloc> 8768: { 8768: # 351 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: static_assert(is_same::type, _Tp>::value, 8768: "std::vector must have a non-const, non-volatile value_type"); 8768: 8768: 8768: 8768: 8768: 8768: 8768: typedef _Vector_base<_Tp, _Alloc> _Base; 8768: typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; 8768: typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; 8768: 8768: public: 8768: typedef _Tp value_type; 8768: typedef typename _Base::pointer pointer; 8768: typedef typename _Alloc_traits::const_pointer const_pointer; 8768: typedef typename _Alloc_traits::reference reference; 8768: typedef typename _Alloc_traits::const_reference const_reference; 8768: typedef __gnu_cxx::__normal_iterator iterator; 8768: typedef __gnu_cxx::__normal_iterator 8768: const_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Alloc allocator_type; 8768: 8768: protected: 8768: using _Base::_M_allocate; 8768: using _Base::_M_deallocate; 8768: using _Base::_M_impl; 8768: using _Base::_M_get_Tp_allocator; 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: 8768: vector() 8768: 8768: noexcept(is_nothrow_default_constructible<_Alloc>::value) 8768: 8768: : _Base() { } 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: vector(const allocator_type& __a) noexcept 8768: : _Base(__a) { } 8768: # 414 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: explicit 8768: vector(size_type __n, const allocator_type& __a = allocator_type()) 8768: : _Base(__n, __a) 8768: { _M_default_initialize(__n); } 8768: # 427 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector(size_type __n, const value_type& __value, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__n, __a) 8768: { _M_fill_initialize(__n, __value); } 8768: # 458 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector(const vector& __x) 8768: : _Base(__x.size(), 8768: _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator())) 8768: { 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8768: this->_M_impl._M_start, 8768: _M_get_Tp_allocator()); 8768: } 8768: # 476 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector(vector&& __x) noexcept 8768: : _Base(std::move(__x)) { } 8768: 8768: 8768: vector(const vector& __x, const allocator_type& __a) 8768: : _Base(__x.size(), __a) 8768: { 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_copy_a(__x.begin(), __x.end(), 8768: this->_M_impl._M_start, 8768: _M_get_Tp_allocator()); 8768: } 8768: 8768: 8768: vector(vector&& __rv, const allocator_type& __m) 8768: noexcept(_Alloc_traits::_S_always_equal()) 8768: : _Base(std::move(__rv), __m) 8768: { 8768: if (__rv.get_allocator() != __m) 8768: { 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_move_a(__rv.begin(), __rv.end(), 8768: this->_M_impl._M_start, 8768: _M_get_Tp_allocator()); 8768: __rv.clear(); 8768: } 8768: } 8768: # 515 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector(initializer_list __l, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__a) 8768: { 8768: _M_range_initialize(__l.begin(), __l.end(), 8768: random_access_iterator_tag()); 8768: } 8768: # 541 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template> 8768: vector(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__a) 8768: { _M_initialize_dispatch(__first, __last, __false_type()); } 8768: # 565 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: ~vector() noexcept 8768: { 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: ; 8768: } 8768: # 581 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector& 8768: operator=(const vector& __x); 8768: # 595 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector& 8768: operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) 8768: { 8768: constexpr bool __move_storage = 8768: _Alloc_traits::_S_propagate_on_move_assign() 8768: || _Alloc_traits::_S_always_equal(); 8768: _M_move_assign(std::move(__x), __bool_constant<__move_storage>()); 8768: return *this; 8768: } 8768: # 616 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: vector& 8768: operator=(initializer_list __l) 8768: { 8768: this->_M_assign_aux(__l.begin(), __l.end(), 8768: random_access_iterator_tag()); 8768: return *this; 8768: } 8768: # 635 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: assign(size_type __n, const value_type& __val) 8768: { _M_fill_assign(__n, __val); } 8768: # 652 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template> 8768: void 8768: assign(_InputIterator __first, _InputIterator __last) 8768: { _M_assign_dispatch(__first, __last, __false_type()); } 8768: # 680 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: assign(initializer_list __l) 8768: { 8768: this->_M_assign_aux(__l.begin(), __l.end(), 8768: random_access_iterator_tag()); 8768: } 8768: 8768: 8768: 8768: using _Base::get_allocator; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: begin() noexcept 8768: { return iterator(this->_M_impl._M_start); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return const_iterator(this->_M_impl._M_start); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() noexcept 8768: { return iterator(this->_M_impl._M_finish); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return const_iterator(this->_M_impl._M_finish); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return reverse_iterator(end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return reverse_iterator(begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return const_iterator(this->_M_impl._M_start); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return const_iterator(this->_M_impl._M_finish); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _Alloc_traits::max_size(_M_get_Tp_allocator()); } 8768: # 823 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: resize(size_type __new_size) 8768: { 8768: if (__new_size > size()) 8768: _M_default_append(__new_size - size()); 8768: else if (__new_size < size()) 8768: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8768: } 8768: # 843 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: resize(size_type __new_size, const value_type& __x) 8768: { 8768: if (__new_size > size()) 8768: _M_fill_insert(end(), __new_size - size(), __x); 8768: else if (__new_size < size()) 8768: _M_erase_at_end(this->_M_impl._M_start + __new_size); 8768: } 8768: # 875 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: shrink_to_fit() 8768: { _M_shrink_to_fit(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: size_type 8768: capacity() const noexcept 8768: { return size_type(this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); } 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return begin() == end(); } 8768: # 914 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: reserve(size_type __n); 8768: # 929 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: reference 8768: operator[](size_type __n) noexcept 8768: { 8768: ; 8768: return *(this->_M_impl._M_start + __n); 8768: } 8768: # 947 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: const_reference 8768: operator[](size_type __n) const noexcept 8768: { 8768: ; 8768: return *(this->_M_impl._M_start + __n); 8768: } 8768: 8768: protected: 8768: 8768: void 8768: _M_range_check(size_type __n) const 8768: { 8768: if (__n >= this->size()) 8768: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8768: 8768: , 8768: __n, this->size()); 8768: } 8768: 8768: public: 8768: # 978 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: reference 8768: at(size_type __n) 8768: { 8768: _M_range_check(__n); 8768: return (*this)[__n]; 8768: } 8768: # 996 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: const_reference 8768: at(size_type __n) const 8768: { 8768: _M_range_check(__n); 8768: return (*this)[__n]; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: reference 8768: front() noexcept 8768: { 8768: ; 8768: return *begin(); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const_reference 8768: front() const noexcept 8768: { 8768: ; 8768: return *begin(); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: reference 8768: back() noexcept 8768: { 8768: ; 8768: return *(end() - 1); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const_reference 8768: back() const noexcept 8768: { 8768: ; 8768: return *(end() - 1); 8768: } 8768: # 1054 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: _Tp* 8768: data() noexcept 8768: { return _M_data_ptr(this->_M_impl._M_start); } 8768: 8768: const _Tp* 8768: data() const noexcept 8768: { return _M_data_ptr(this->_M_impl._M_start); } 8768: # 1073 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: push_back(const value_type& __x) 8768: { 8768: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8768: { 8768: ; 8768: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8768: __x); 8768: ++this->_M_impl._M_finish; 8768: ; 8768: } 8768: else 8768: _M_realloc_insert(end(), __x); 8768: } 8768: 8768: 8768: void 8768: push_back(value_type&& __x) 8768: { emplace_back(std::move(__x)); } 8768: 8768: template 8768: 8768: 8768: 8768: void 8768: 8768: emplace_back(_Args&&... __args); 8768: # 1111 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: pop_back() noexcept 8768: { 8768: ; 8768: --this->_M_impl._M_finish; 8768: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8768: ; 8768: } 8768: # 1133 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template 8768: iterator 8768: emplace(const_iterator __position, _Args&&... __args) 8768: { return _M_emplace_aux(__position, std::forward<_Args>(__args)...); } 8768: # 1149 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: iterator 8768: insert(const_iterator __position, const value_type& __x); 8768: # 1179 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: iterator 8768: insert(const_iterator __position, value_type&& __x) 8768: { return _M_insert_rval(__position, std::move(__x)); } 8768: # 1196 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: iterator 8768: insert(const_iterator __position, initializer_list __l) 8768: { 8768: auto __offset = __position - cbegin(); 8768: _M_range_insert(begin() + __offset, __l.begin(), __l.end(), 8768: std::random_access_iterator_tag()); 8768: return begin() + __offset; 8768: } 8768: # 1221 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: iterator 8768: insert(const_iterator __position, size_type __n, const value_type& __x) 8768: { 8768: difference_type __offset = __position - cbegin(); 8768: _M_fill_insert(begin() + __offset, __n, __x); 8768: return begin() + __offset; 8768: } 8768: # 1263 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template> 8768: iterator 8768: insert(const_iterator __position, _InputIterator __first, 8768: _InputIterator __last) 8768: { 8768: difference_type __offset = __position - cbegin(); 8768: _M_insert_dispatch(begin() + __offset, 8768: __first, __last, __false_type()); 8768: return begin() + __offset; 8768: } 8768: # 1315 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: iterator 8768: 8768: erase(const_iterator __position) 8768: { return _M_erase(begin() + (__position - cbegin())); } 8768: # 1342 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: iterator 8768: 8768: erase(const_iterator __first, const_iterator __last) 8768: { 8768: const auto __beg = begin(); 8768: const auto __cbeg = cbegin(); 8768: return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg)); 8768: } 8768: # 1366 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: void 8768: swap(vector& __x) noexcept 8768: { 8768: 8768: 8768: ; 8768: 8768: this->_M_impl._M_swap_data(__x._M_impl); 8768: _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(), 8768: __x._M_get_Tp_allocator()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: clear() noexcept 8768: { _M_erase_at_end(this->_M_impl._M_start); } 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: template 8768: pointer 8768: _M_allocate_and_copy(size_type __n, 8768: _ForwardIterator __first, _ForwardIterator __last) 8768: { 8768: pointer __result = this->_M_allocate(__n); 8768: try 8768: { 8768: std::__uninitialized_copy_a(__first, __last, __result, 8768: _M_get_Tp_allocator()); 8768: return __result; 8768: } 8768: catch(...) 8768: { 8768: _M_deallocate(__result, __n); 8768: throw; 8768: } 8768: } 8768: # 1419 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template 8768: void 8768: _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) 8768: { 8768: this->_M_impl._M_start = _M_allocate(static_cast(__n)); 8768: this->_M_impl._M_end_of_storage = 8768: this->_M_impl._M_start + static_cast(__n); 8768: _M_fill_initialize(static_cast(__n), __value); 8768: } 8768: 8768: 8768: template 8768: void 8768: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8768: __false_type) 8768: { 8768: typedef typename std::iterator_traits<_InputIterator>:: 8768: iterator_category _IterCategory; 8768: _M_range_initialize(__first, __last, _IterCategory()); 8768: } 8768: 8768: 8768: template 8768: void 8768: _M_range_initialize(_InputIterator __first, 8768: _InputIterator __last, std::input_iterator_tag) 8768: { 8768: for (; __first != __last; ++__first) 8768: 8768: emplace_back(*__first); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: template 8768: void 8768: _M_range_initialize(_ForwardIterator __first, 8768: _ForwardIterator __last, std::forward_iterator_tag) 8768: { 8768: const size_type __n = std::distance(__first, __last); 8768: this->_M_impl._M_start = this->_M_allocate(__n); 8768: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_copy_a(__first, __last, 8768: this->_M_impl._M_start, 8768: _M_get_Tp_allocator()); 8768: } 8768: 8768: 8768: 8768: void 8768: _M_fill_initialize(size_type __n, const value_type& __value) 8768: { 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, 8768: _M_get_Tp_allocator()); 8768: } 8768: 8768: 8768: 8768: void 8768: _M_default_initialize(size_type __n) 8768: { 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_default_n_a(this->_M_impl._M_start, __n, 8768: _M_get_Tp_allocator()); 8768: } 8768: # 1497 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template 8768: void 8768: _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) 8768: { _M_fill_assign(__n, __val); } 8768: 8768: 8768: template 8768: void 8768: _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 8768: __false_type) 8768: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8768: 8768: 8768: template 8768: void 8768: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8768: std::input_iterator_tag); 8768: 8768: 8768: template 8768: void 8768: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8768: std::forward_iterator_tag); 8768: 8768: 8768: 8768: void 8768: _M_fill_assign(size_type __n, const value_type& __val); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 8768: __true_type) 8768: { _M_fill_insert(__pos, __n, __val); } 8768: 8768: 8768: template 8768: void 8768: _M_insert_dispatch(iterator __pos, _InputIterator __first, 8768: _InputIterator __last, __false_type) 8768: { 8768: _M_range_insert(__pos, __first, __last, 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: 8768: template 8768: void 8768: _M_range_insert(iterator __pos, _InputIterator __first, 8768: _InputIterator __last, std::input_iterator_tag); 8768: 8768: 8768: template 8768: void 8768: _M_range_insert(iterator __pos, _ForwardIterator __first, 8768: _ForwardIterator __last, std::forward_iterator_tag); 8768: 8768: 8768: 8768: void 8768: _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); 8768: 8768: 8768: 8768: void 8768: _M_default_append(size_type __n); 8768: 8768: bool 8768: _M_shrink_to_fit(); 8768: # 1584 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: struct _Temporary_value 8768: { 8768: template 8768: explicit 8768: _Temporary_value(vector* __vec, _Args&&... __args) : _M_this(__vec) 8768: { 8768: _Alloc_traits::construct(_M_this->_M_impl, _M_ptr(), 8768: std::forward<_Args>(__args)...); 8768: } 8768: 8768: ~_Temporary_value() 8768: { _Alloc_traits::destroy(_M_this->_M_impl, _M_ptr()); } 8768: 8768: value_type& 8768: _M_val() { return *reinterpret_cast<_Tp*>(&__buf); } 8768: 8768: private: 8768: pointer 8768: _M_ptr() { return pointer_traits::pointer_to(_M_val()); } 8768: 8768: vector* _M_this; 8768: typename aligned_storage::type __buf; 8768: }; 8768: 8768: 8768: 8768: template 8768: void 8768: _M_insert_aux(iterator __position, _Arg&& __arg); 8768: 8768: template 8768: void 8768: _M_realloc_insert(iterator __position, _Args&&... __args); 8768: 8768: 8768: iterator 8768: _M_insert_rval(const_iterator __position, value_type&& __v); 8768: 8768: 8768: template 8768: iterator 8768: _M_emplace_aux(const_iterator __position, _Args&&... __args); 8768: 8768: 8768: iterator 8768: _M_emplace_aux(const_iterator __position, value_type&& __v) 8768: { return _M_insert_rval(__position, std::move(__v)); } 8768: 8768: 8768: 8768: size_type 8768: _M_check_len(size_type __n, const char* __s) const 8768: { 8768: if (max_size() - size() < __n) 8768: __throw_length_error((__s)); 8768: 8768: const size_type __len = size() + std::max(size(), __n); 8768: return (__len < size() || __len > max_size()) ? max_size() : __len; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: void 8768: _M_erase_at_end(pointer __pos) noexcept 8768: { 8768: if (size_type __n = this->_M_impl._M_finish - __pos) 8768: { 8768: std::_Destroy(__pos, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: this->_M_impl._M_finish = __pos; 8768: ; 8768: } 8768: } 8768: 8768: iterator 8768: _M_erase(iterator __position); 8768: 8768: iterator 8768: _M_erase(iterator __first, iterator __last); 8768: 8768: 8768: private: 8768: 8768: 8768: 8768: void 8768: _M_move_assign(vector&& __x, std::true_type) noexcept 8768: { 8768: vector __tmp(get_allocator()); 8768: this->_M_impl._M_swap_data(__tmp._M_impl); 8768: this->_M_impl._M_swap_data(__x._M_impl); 8768: std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator()); 8768: } 8768: 8768: 8768: 8768: void 8768: _M_move_assign(vector&& __x, std::false_type) 8768: { 8768: if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) 8768: _M_move_assign(std::move(__x), std::true_type()); 8768: else 8768: { 8768: 8768: 8768: this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), 8768: std::__make_move_if_noexcept_iterator(__x.end())); 8768: __x.clear(); 8768: } 8768: } 8768: 8768: 8768: template 8768: _Up* 8768: _M_data_ptr(_Up* __ptr) const noexcept 8768: { return __ptr; } 8768: 8768: 8768: template 8768: typename std::pointer_traits<_Ptr>::element_type* 8768: _M_data_ptr(_Ptr __ptr) const 8768: { return empty() ? nullptr : std::__to_address(__ptr); } 8768: # 1724 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: }; 8768: # 1746 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template 8768: inline bool 8768: operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8768: { return (__x.size() == __y.size() 8768: && std::equal(__x.begin(), __x.end(), __y.begin())); } 8768: # 1763 "/usr/include/c++/8/bits/stl_vector.h" 3 8768: template 8768: inline bool 8768: operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8768: { return std::lexicographical_compare(__x.begin(), __x.end(), 8768: __y.begin(), __y.end()); } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline void 8768: swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: 8768: } 8768: # 65 "/usr/include/c++/8/vector" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_bvector.h" 1 3 8768: # 63 "/usr/include/c++/8/bits/stl_bvector.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: typedef unsigned long _Bit_type; 8768: enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; 8768: 8768: struct _Bit_reference 8768: { 8768: _Bit_type * _M_p; 8768: _Bit_type _M_mask; 8768: 8768: _Bit_reference(_Bit_type * __x, _Bit_type __y) 8768: : _M_p(__x), _M_mask(__y) { } 8768: 8768: _Bit_reference() noexcept : _M_p(0), _M_mask(0) { } 8768: 8768: operator bool() const noexcept 8768: { return !!(*_M_p & _M_mask); } 8768: 8768: _Bit_reference& 8768: operator=(bool __x) noexcept 8768: { 8768: if (__x) 8768: *_M_p |= _M_mask; 8768: else 8768: *_M_p &= ~_M_mask; 8768: return *this; 8768: } 8768: 8768: _Bit_reference& 8768: operator=(const _Bit_reference& __x) noexcept 8768: { return *this = bool(__x); } 8768: 8768: bool 8768: operator==(const _Bit_reference& __x) const 8768: { return bool(*this) == bool(__x); } 8768: 8768: bool 8768: operator<(const _Bit_reference& __x) const 8768: { return !bool(*this) && bool(__x); } 8768: 8768: void 8768: flip() noexcept 8768: { *_M_p ^= _M_mask; } 8768: }; 8768: 8768: 8768: inline void 8768: swap(_Bit_reference __x, _Bit_reference __y) noexcept 8768: { 8768: bool __tmp = __x; 8768: __x = __y; 8768: __y = __tmp; 8768: } 8768: 8768: inline void 8768: swap(_Bit_reference __x, bool& __y) noexcept 8768: { 8768: bool __tmp = __x; 8768: __x = __y; 8768: __y = __tmp; 8768: } 8768: 8768: inline void 8768: swap(bool& __x, _Bit_reference __y) noexcept 8768: { 8768: bool __tmp = __x; 8768: __x = __y; 8768: __y = __tmp; 8768: } 8768: 8768: 8768: struct _Bit_iterator_base 8768: : public std::iterator 8768: { 8768: _Bit_type * _M_p; 8768: unsigned int _M_offset; 8768: 8768: _Bit_iterator_base(_Bit_type * __x, unsigned int __y) 8768: : _M_p(__x), _M_offset(__y) { } 8768: 8768: void 8768: _M_bump_up() 8768: { 8768: if (_M_offset++ == int(_S_word_bit) - 1) 8768: { 8768: _M_offset = 0; 8768: ++_M_p; 8768: } 8768: } 8768: 8768: void 8768: _M_bump_down() 8768: { 8768: if (_M_offset-- == 0) 8768: { 8768: _M_offset = int(_S_word_bit) - 1; 8768: --_M_p; 8768: } 8768: } 8768: 8768: void 8768: _M_incr(ptrdiff_t __i) 8768: { 8768: difference_type __n = __i + _M_offset; 8768: _M_p += __n / int(_S_word_bit); 8768: __n = __n % int(_S_word_bit); 8768: if (__n < 0) 8768: { 8768: __n += int(_S_word_bit); 8768: --_M_p; 8768: } 8768: _M_offset = static_cast(__n); 8768: } 8768: 8768: bool 8768: operator==(const _Bit_iterator_base& __i) const 8768: { return _M_p == __i._M_p && _M_offset == __i._M_offset; } 8768: 8768: bool 8768: operator<(const _Bit_iterator_base& __i) const 8768: { 8768: return _M_p < __i._M_p 8768: || (_M_p == __i._M_p && _M_offset < __i._M_offset); 8768: } 8768: 8768: bool 8768: operator!=(const _Bit_iterator_base& __i) const 8768: { return !(*this == __i); } 8768: 8768: bool 8768: operator>(const _Bit_iterator_base& __i) const 8768: { return __i < *this; } 8768: 8768: bool 8768: operator<=(const _Bit_iterator_base& __i) const 8768: { return !(__i < *this); } 8768: 8768: bool 8768: operator>=(const _Bit_iterator_base& __i) const 8768: { return !(*this < __i); } 8768: }; 8768: 8768: inline ptrdiff_t 8768: operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) 8768: { 8768: return (int(_S_word_bit) * (__x._M_p - __y._M_p) 8768: + __x._M_offset - __y._M_offset); 8768: } 8768: 8768: struct _Bit_iterator : public _Bit_iterator_base 8768: { 8768: typedef _Bit_reference reference; 8768: typedef _Bit_reference* pointer; 8768: typedef _Bit_iterator iterator; 8768: 8768: _Bit_iterator() : _Bit_iterator_base(0, 0) { } 8768: 8768: _Bit_iterator(_Bit_type * __x, unsigned int __y) 8768: : _Bit_iterator_base(__x, __y) { } 8768: 8768: iterator 8768: _M_const_cast() const 8768: { return *this; } 8768: 8768: reference 8768: operator*() const 8768: { return reference(_M_p, 1UL << _M_offset); } 8768: 8768: iterator& 8768: operator++() 8768: { 8768: _M_bump_up(); 8768: return *this; 8768: } 8768: 8768: iterator 8768: operator++(int) 8768: { 8768: iterator __tmp = *this; 8768: _M_bump_up(); 8768: return __tmp; 8768: } 8768: 8768: iterator& 8768: operator--() 8768: { 8768: _M_bump_down(); 8768: return *this; 8768: } 8768: 8768: iterator 8768: operator--(int) 8768: { 8768: iterator __tmp = *this; 8768: _M_bump_down(); 8768: return __tmp; 8768: } 8768: 8768: iterator& 8768: operator+=(difference_type __i) 8768: { 8768: _M_incr(__i); 8768: return *this; 8768: } 8768: 8768: iterator& 8768: operator-=(difference_type __i) 8768: { 8768: *this += -__i; 8768: return *this; 8768: } 8768: 8768: iterator 8768: operator+(difference_type __i) const 8768: { 8768: iterator __tmp = *this; 8768: return __tmp += __i; 8768: } 8768: 8768: iterator 8768: operator-(difference_type __i) const 8768: { 8768: iterator __tmp = *this; 8768: return __tmp -= __i; 8768: } 8768: 8768: reference 8768: operator[](difference_type __i) const 8768: { return *(*this + __i); } 8768: }; 8768: 8768: inline _Bit_iterator 8768: operator+(ptrdiff_t __n, const _Bit_iterator& __x) 8768: { return __x + __n; } 8768: 8768: struct _Bit_const_iterator : public _Bit_iterator_base 8768: { 8768: typedef bool reference; 8768: typedef bool const_reference; 8768: typedef const bool* pointer; 8768: typedef _Bit_const_iterator const_iterator; 8768: 8768: _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } 8768: 8768: _Bit_const_iterator(_Bit_type * __x, unsigned int __y) 8768: : _Bit_iterator_base(__x, __y) { } 8768: 8768: _Bit_const_iterator(const _Bit_iterator& __x) 8768: : _Bit_iterator_base(__x._M_p, __x._M_offset) { } 8768: 8768: _Bit_iterator 8768: _M_const_cast() const 8768: { return _Bit_iterator(_M_p, _M_offset); } 8768: 8768: const_reference 8768: operator*() const 8768: { return _Bit_reference(_M_p, 1UL << _M_offset); } 8768: 8768: const_iterator& 8768: operator++() 8768: { 8768: _M_bump_up(); 8768: return *this; 8768: } 8768: 8768: const_iterator 8768: operator++(int) 8768: { 8768: const_iterator __tmp = *this; 8768: _M_bump_up(); 8768: return __tmp; 8768: } 8768: 8768: const_iterator& 8768: operator--() 8768: { 8768: _M_bump_down(); 8768: return *this; 8768: } 8768: 8768: const_iterator 8768: operator--(int) 8768: { 8768: const_iterator __tmp = *this; 8768: _M_bump_down(); 8768: return __tmp; 8768: } 8768: 8768: const_iterator& 8768: operator+=(difference_type __i) 8768: { 8768: _M_incr(__i); 8768: return *this; 8768: } 8768: 8768: const_iterator& 8768: operator-=(difference_type __i) 8768: { 8768: *this += -__i; 8768: return *this; 8768: } 8768: 8768: const_iterator 8768: operator+(difference_type __i) const 8768: { 8768: const_iterator __tmp = *this; 8768: return __tmp += __i; 8768: } 8768: 8768: const_iterator 8768: operator-(difference_type __i) const 8768: { 8768: const_iterator __tmp = *this; 8768: return __tmp -= __i; 8768: } 8768: 8768: const_reference 8768: operator[](difference_type __i) const 8768: { return *(*this + __i); } 8768: }; 8768: 8768: inline _Bit_const_iterator 8768: operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) 8768: { return __x + __n; } 8768: 8768: inline void 8768: __fill_bvector(_Bit_type * __v, 8768: unsigned int __first, unsigned int __last, bool __x) 8768: { 8768: const _Bit_type __fmask = ~0ul << __first; 8768: const _Bit_type __lmask = ~0ul >> (_S_word_bit - __last); 8768: const _Bit_type __mask = __fmask & __lmask; 8768: 8768: if (__x) 8768: *__v |= __mask; 8768: else 8768: *__v &= ~__mask; 8768: } 8768: 8768: inline void 8768: fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) 8768: { 8768: if (__first._M_p != __last._M_p) 8768: { 8768: _Bit_type* __first_p = __first._M_p; 8768: if (__first._M_offset != 0) 8768: __fill_bvector(__first_p++, __first._M_offset, _S_word_bit, __x); 8768: 8768: __builtin_memset(__first_p, __x ? ~0 : 0, 8768: (__last._M_p - __first_p) * sizeof(_Bit_type)); 8768: 8768: if (__last._M_offset != 0) 8768: __fill_bvector(__last._M_p, 0, __last._M_offset, __x); 8768: } 8768: else if (__first._M_offset != __last._M_offset) 8768: __fill_bvector(__first._M_p, __first._M_offset, __last._M_offset, __x); 8768: } 8768: 8768: template 8768: struct _Bvector_base 8768: { 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_Bit_type>::other _Bit_alloc_type; 8768: typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> 8768: _Bit_alloc_traits; 8768: typedef typename _Bit_alloc_traits::pointer _Bit_pointer; 8768: 8768: struct _Bvector_impl_data 8768: { 8768: _Bit_iterator _M_start; 8768: _Bit_iterator _M_finish; 8768: _Bit_pointer _M_end_of_storage; 8768: 8768: _Bvector_impl_data() noexcept 8768: : _M_start(), _M_finish(), _M_end_of_storage() 8768: { } 8768: 8768: 8768: _Bvector_impl_data(_Bvector_impl_data&& __x) noexcept 8768: : _M_start(__x._M_start), _M_finish(__x._M_finish) 8768: , _M_end_of_storage(__x._M_end_of_storage) 8768: { __x._M_reset(); } 8768: 8768: void 8768: _M_move_data(_Bvector_impl_data&& __x) noexcept 8768: { 8768: this->_M_start = __x._M_start; 8768: this->_M_finish = __x._M_finish; 8768: this->_M_end_of_storage = __x._M_end_of_storage; 8768: __x._M_reset(); 8768: } 8768: 8768: 8768: void 8768: _M_reset() noexcept 8768: { 8768: _M_start = _M_finish = _Bit_iterator(); 8768: _M_end_of_storage = _Bit_pointer(); 8768: } 8768: }; 8768: 8768: struct _Bvector_impl 8768: : public _Bit_alloc_type, public _Bvector_impl_data 8768: { 8768: public: 8768: _Bvector_impl() 8768: noexcept(noexcept(_Bit_alloc_type())) 8768: : _Bit_alloc_type() 8768: { } 8768: 8768: _Bvector_impl(const _Bit_alloc_type& __a) noexcept 8768: : _Bit_alloc_type(__a) 8768: { } 8768: 8768: 8768: _Bvector_impl(_Bvector_impl&&) = default; 8768: 8768: 8768: _Bit_type* 8768: _M_end_addr() const noexcept 8768: { 8768: if (this->_M_end_of_storage) 8768: return std::__addressof(this->_M_end_of_storage[-1]) + 1; 8768: return 0; 8768: } 8768: }; 8768: 8768: public: 8768: typedef _Alloc allocator_type; 8768: 8768: _Bit_alloc_type& 8768: _M_get_Bit_allocator() noexcept 8768: { return this->_M_impl; } 8768: 8768: const _Bit_alloc_type& 8768: _M_get_Bit_allocator() const noexcept 8768: { return this->_M_impl; } 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_get_Bit_allocator()); } 8768: 8768: 8768: _Bvector_base() = default; 8768: 8768: 8768: 8768: 8768: _Bvector_base(const allocator_type& __a) 8768: : _M_impl(__a) { } 8768: 8768: 8768: _Bvector_base(_Bvector_base&&) = default; 8768: 8768: 8768: ~_Bvector_base() 8768: { this->_M_deallocate(); } 8768: 8768: protected: 8768: _Bvector_impl _M_impl; 8768: 8768: _Bit_pointer 8768: _M_allocate(size_t __n) 8768: { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); } 8768: 8768: void 8768: _M_deallocate() 8768: { 8768: if (_M_impl._M_start._M_p) 8768: { 8768: const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p; 8768: _Bit_alloc_traits::deallocate(_M_impl, 8768: _M_impl._M_end_of_storage - __n, 8768: __n); 8768: _M_impl._M_reset(); 8768: } 8768: } 8768: 8768: 8768: void 8768: _M_move_data(_Bvector_base&& __x) noexcept 8768: { _M_impl._M_move_data(std::move(__x._M_impl)); } 8768: 8768: 8768: static size_t 8768: _S_nword(size_t __n) 8768: { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); } 8768: }; 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: # 586 "/usr/include/c++/8/bits/stl_bvector.h" 3 8768: template 8768: class vector : protected _Bvector_base<_Alloc> 8768: { 8768: typedef _Bvector_base<_Alloc> _Base; 8768: typedef typename _Base::_Bit_pointer _Bit_pointer; 8768: typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits; 8768: 8768: 8768: template friend struct hash; 8768: 8768: 8768: public: 8768: typedef bool value_type; 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Bit_reference reference; 8768: typedef bool const_reference; 8768: typedef _Bit_reference* pointer; 8768: typedef const bool* const_pointer; 8768: typedef _Bit_iterator iterator; 8768: typedef _Bit_const_iterator const_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef _Alloc allocator_type; 8768: 8768: allocator_type 8768: get_allocator() const 8768: { return _Base::get_allocator(); } 8768: 8768: protected: 8768: using _Base::_M_allocate; 8768: using _Base::_M_deallocate; 8768: using _Base::_S_nword; 8768: using _Base::_M_get_Bit_allocator; 8768: 8768: public: 8768: 8768: vector() = default; 8768: 8768: 8768: 8768: 8768: explicit 8768: vector(const allocator_type& __a) 8768: : _Base(__a) { } 8768: 8768: 8768: explicit 8768: vector(size_type __n, const allocator_type& __a = allocator_type()) 8768: : vector(__n, false, __a) 8768: { } 8768: 8768: vector(size_type __n, const bool& __value, 8768: const allocator_type& __a = allocator_type()) 8768: 8768: 8768: 8768: 8768: 8768: : _Base(__a) 8768: { 8768: _M_initialize(__n); 8768: _M_initialize_value(__value); 8768: } 8768: 8768: vector(const vector& __x) 8768: : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator())) 8768: { 8768: _M_initialize(__x.size()); 8768: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8768: } 8768: 8768: 8768: vector(vector&&) = default; 8768: 8768: vector(vector&& __x, const allocator_type& __a) 8768: noexcept(_Bit_alloc_traits::_S_always_equal()) 8768: : _Base(__a) 8768: { 8768: if (__x.get_allocator() == __a) 8768: this->_M_move_data(std::move(__x)); 8768: else 8768: { 8768: _M_initialize(__x.size()); 8768: _M_copy_aligned(__x.begin(), __x.end(), begin()); 8768: __x.clear(); 8768: } 8768: } 8768: 8768: vector(const vector& __x, const allocator_type& __a) 8768: : _Base(__a) 8768: { 8768: _M_initialize(__x.size()); 8768: _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start); 8768: } 8768: 8768: vector(initializer_list __l, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__a) 8768: { 8768: _M_initialize_range(__l.begin(), __l.end(), 8768: random_access_iterator_tag()); 8768: } 8768: 8768: 8768: 8768: template> 8768: vector(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__a) 8768: { _M_initialize_dispatch(__first, __last, __false_type()); } 8768: # 709 "/usr/include/c++/8/bits/stl_bvector.h" 3 8768: ~vector() noexcept { } 8768: 8768: vector& 8768: operator=(const vector& __x) 8768: { 8768: if (&__x == this) 8768: return *this; 8768: 8768: if (_Bit_alloc_traits::_S_propagate_on_copy_assign()) 8768: { 8768: if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator()) 8768: { 8768: this->_M_deallocate(); 8768: std::__alloc_on_copy(_M_get_Bit_allocator(), 8768: __x._M_get_Bit_allocator()); 8768: _M_initialize(__x.size()); 8768: } 8768: else 8768: std::__alloc_on_copy(_M_get_Bit_allocator(), 8768: __x._M_get_Bit_allocator()); 8768: } 8768: 8768: if (__x.size() > capacity()) 8768: { 8768: this->_M_deallocate(); 8768: _M_initialize(__x.size()); 8768: } 8768: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8768: begin()); 8768: return *this; 8768: } 8768: 8768: 8768: vector& 8768: operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move()) 8768: { 8768: if (_Bit_alloc_traits::_S_propagate_on_move_assign() 8768: || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator()) 8768: { 8768: this->_M_deallocate(); 8768: this->_M_move_data(std::move(__x)); 8768: std::__alloc_on_move(_M_get_Bit_allocator(), 8768: __x._M_get_Bit_allocator()); 8768: } 8768: else 8768: { 8768: if (__x.size() > capacity()) 8768: { 8768: this->_M_deallocate(); 8768: _M_initialize(__x.size()); 8768: } 8768: this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(), 8768: begin()); 8768: __x.clear(); 8768: } 8768: return *this; 8768: } 8768: 8768: vector& 8768: operator=(initializer_list __l) 8768: { 8768: this->assign (__l.begin(), __l.end()); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: assign(size_type __n, const bool& __x) 8768: { _M_fill_assign(__n, __x); } 8768: 8768: 8768: template> 8768: void 8768: assign(_InputIterator __first, _InputIterator __last) 8768: { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } 8768: # 800 "/usr/include/c++/8/bits/stl_bvector.h" 3 8768: void 8768: assign(initializer_list __l) 8768: { _M_assign_aux(__l.begin(), __l.end(), random_access_iterator_tag()); } 8768: 8768: 8768: iterator 8768: begin() noexcept 8768: { return this->_M_impl._M_start; } 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return this->_M_impl._M_start; } 8768: 8768: iterator 8768: end() noexcept 8768: { return this->_M_impl._M_finish; } 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return this->_M_impl._M_finish; } 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return reverse_iterator(end()); } 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return reverse_iterator(begin()); } 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return this->_M_impl._M_start; } 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return this->_M_impl._M_finish; } 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return size_type(end() - begin()); } 8768: 8768: size_type 8768: max_size() const noexcept 8768: { 8768: const size_type __isize = 8768: __gnu_cxx::__numeric_traits::__max 8768: - int(_S_word_bit) + 1; 8768: const size_type __asize 8768: = _Bit_alloc_traits::max_size(_M_get_Bit_allocator()); 8768: return (__asize <= __isize / int(_S_word_bit) 8768: ? __asize * int(_S_word_bit) : __isize); 8768: } 8768: 8768: size_type 8768: capacity() const noexcept 8768: { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0) 8768: - begin()); } 8768: 8768: bool 8768: empty() const noexcept 8768: { return begin() == end(); } 8768: 8768: reference 8768: operator[](size_type __n) 8768: { 8768: return *iterator(this->_M_impl._M_start._M_p 8768: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8768: } 8768: 8768: const_reference 8768: operator[](size_type __n) const 8768: { 8768: return *const_iterator(this->_M_impl._M_start._M_p 8768: + __n / int(_S_word_bit), __n % int(_S_word_bit)); 8768: } 8768: 8768: protected: 8768: void 8768: _M_range_check(size_type __n) const 8768: { 8768: if (__n >= this->size()) 8768: __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)") 8768: 8768: , 8768: __n, this->size()); 8768: } 8768: 8768: public: 8768: reference 8768: at(size_type __n) 8768: { _M_range_check(__n); return (*this)[__n]; } 8768: 8768: const_reference 8768: at(size_type __n) const 8768: { _M_range_check(__n); return (*this)[__n]; } 8768: 8768: void 8768: reserve(size_type __n) 8768: { 8768: if (__n > max_size()) 8768: __throw_length_error(("vector::reserve")); 8768: if (capacity() < __n) 8768: _M_reallocate(__n); 8768: } 8768: 8768: reference 8768: front() 8768: { return *begin(); } 8768: 8768: const_reference 8768: front() const 8768: { return *begin(); } 8768: 8768: reference 8768: back() 8768: { return *(end() - 1); } 8768: 8768: const_reference 8768: back() const 8768: { return *(end() - 1); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: data() noexcept { } 8768: 8768: void 8768: push_back(bool __x) 8768: { 8768: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8768: *this->_M_impl._M_finish++ = __x; 8768: else 8768: _M_insert_aux(end(), __x); 8768: } 8768: 8768: void 8768: swap(vector& __x) noexcept 8768: { 8768: std::swap(this->_M_impl._M_start, __x._M_impl._M_start); 8768: std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); 8768: std::swap(this->_M_impl._M_end_of_storage, 8768: __x._M_impl._M_end_of_storage); 8768: _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(), 8768: __x._M_get_Bit_allocator()); 8768: } 8768: 8768: 8768: static void 8768: swap(reference __x, reference __y) noexcept 8768: { 8768: bool __tmp = __x; 8768: __x = __y; 8768: __y = __tmp; 8768: } 8768: 8768: iterator 8768: 8768: insert(const_iterator __position, const bool& __x = bool()) 8768: 8768: 8768: 8768: { 8768: const difference_type __n = __position - begin(); 8768: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr() 8768: && __position == end()) 8768: *this->_M_impl._M_finish++ = __x; 8768: else 8768: _M_insert_aux(__position._M_const_cast(), __x); 8768: return begin() + __n; 8768: } 8768: 8768: 8768: template> 8768: iterator 8768: insert(const_iterator __position, 8768: _InputIterator __first, _InputIterator __last) 8768: { 8768: difference_type __offset = __position - cbegin(); 8768: _M_insert_dispatch(__position._M_const_cast(), 8768: __first, __last, __false_type()); 8768: return begin() + __offset; 8768: } 8768: # 1016 "/usr/include/c++/8/bits/stl_bvector.h" 3 8768: iterator 8768: insert(const_iterator __position, size_type __n, const bool& __x) 8768: { 8768: difference_type __offset = __position - cbegin(); 8768: _M_fill_insert(__position._M_const_cast(), __n, __x); 8768: return begin() + __offset; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: insert(const_iterator __p, initializer_list __l) 8768: { return this->insert(__p, __l.begin(), __l.end()); } 8768: 8768: 8768: void 8768: pop_back() 8768: { --this->_M_impl._M_finish; } 8768: 8768: iterator 8768: 8768: erase(const_iterator __position) 8768: 8768: 8768: 8768: { return _M_erase(__position._M_const_cast()); } 8768: 8768: iterator 8768: 8768: erase(const_iterator __first, const_iterator __last) 8768: 8768: 8768: 8768: { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); } 8768: 8768: void 8768: resize(size_type __new_size, bool __x = bool()) 8768: { 8768: if (__new_size < size()) 8768: _M_erase_at_end(begin() + difference_type(__new_size)); 8768: else 8768: insert(end(), __new_size - size(), __x); 8768: } 8768: 8768: 8768: void 8768: shrink_to_fit() 8768: { _M_shrink_to_fit(); } 8768: 8768: 8768: void 8768: flip() noexcept 8768: { 8768: _Bit_type * const __end = this->_M_impl._M_end_addr(); 8768: for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p) 8768: *__p = ~*__p; 8768: } 8768: 8768: void 8768: clear() noexcept 8768: { _M_erase_at_end(begin()); } 8768: 8768: 8768: template 8768: 8768: 8768: 8768: void 8768: 8768: emplace_back(_Args&&... __args) 8768: { 8768: push_back(bool(__args...)); 8768: 8768: 8768: 8768: } 8768: 8768: template 8768: iterator 8768: emplace(const_iterator __pos, _Args&&... __args) 8768: { return insert(__pos, bool(__args...)); } 8768: 8768: 8768: protected: 8768: 8768: iterator 8768: _M_copy_aligned(const_iterator __first, const_iterator __last, 8768: iterator __result) 8768: { 8768: _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p); 8768: return std::copy(const_iterator(__last._M_p, 0), __last, 8768: iterator(__q, 0)); 8768: } 8768: 8768: void 8768: _M_initialize(size_type __n) 8768: { 8768: if (__n) 8768: { 8768: _Bit_pointer __q = this->_M_allocate(__n); 8768: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8768: this->_M_impl._M_start = iterator(std::__addressof(*__q), 0); 8768: } 8768: else 8768: { 8768: this->_M_impl._M_end_of_storage = _Bit_pointer(); 8768: this->_M_impl._M_start = iterator(0, 0); 8768: } 8768: this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); 8768: 8768: } 8768: 8768: void 8768: _M_initialize_value(bool __x) 8768: { 8768: if (_Bit_type* __p = this->_M_impl._M_start._M_p) 8768: __builtin_memset(__p, __x ? ~0 : 0, 8768: (this->_M_impl._M_end_addr() - __p) 8768: * sizeof(_Bit_type)); 8768: } 8768: 8768: void 8768: _M_reallocate(size_type __n); 8768: 8768: 8768: bool 8768: _M_shrink_to_fit(); 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) 8768: { 8768: _M_initialize(static_cast(__n)); 8768: _M_initialize_value(__x); 8768: } 8768: 8768: template 8768: void 8768: _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, 8768: __false_type) 8768: { _M_initialize_range(__first, __last, 8768: std::__iterator_category(__first)); } 8768: 8768: template 8768: void 8768: _M_initialize_range(_InputIterator __first, _InputIterator __last, 8768: std::input_iterator_tag) 8768: { 8768: for (; __first != __last; ++__first) 8768: push_back(*__first); 8768: } 8768: 8768: template 8768: void 8768: _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, 8768: std::forward_iterator_tag) 8768: { 8768: const size_type __n = std::distance(__first, __last); 8768: _M_initialize(__n); 8768: std::copy(__first, __last, this->_M_impl._M_start); 8768: } 8768: # 1202 "/usr/include/c++/8/bits/stl_bvector.h" 3 8768: void 8768: _M_fill_assign(size_t __n, bool __x) 8768: { 8768: if (__n > size()) 8768: { 8768: _M_initialize_value(__x); 8768: insert(end(), __n - size(), __x); 8768: } 8768: else 8768: { 8768: _M_erase_at_end(begin() + __n); 8768: _M_initialize_value(__x); 8768: } 8768: } 8768: 8768: template 8768: void 8768: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8768: std::input_iterator_tag) 8768: { 8768: iterator __cur = begin(); 8768: for (; __first != __last && __cur != end(); ++__cur, ++__first) 8768: *__cur = *__first; 8768: if (__first == __last) 8768: _M_erase_at_end(__cur); 8768: else 8768: insert(end(), __first, __last); 8768: } 8768: 8768: template 8768: void 8768: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8768: std::forward_iterator_tag) 8768: { 8768: const size_type __len = std::distance(__first, __last); 8768: if (__len < size()) 8768: _M_erase_at_end(std::copy(__first, __last, begin())); 8768: else 8768: { 8768: _ForwardIterator __mid = __first; 8768: std::advance(__mid, size()); 8768: std::copy(__first, __mid, begin()); 8768: insert(end(), __mid, __last); 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void 8768: _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, 8768: __true_type) 8768: { _M_fill_insert(__pos, __n, __x); } 8768: 8768: template 8768: void 8768: _M_insert_dispatch(iterator __pos, 8768: _InputIterator __first, _InputIterator __last, 8768: __false_type) 8768: { _M_insert_range(__pos, __first, __last, 8768: std::__iterator_category(__first)); } 8768: 8768: void 8768: _M_fill_insert(iterator __position, size_type __n, bool __x); 8768: 8768: template 8768: void 8768: _M_insert_range(iterator __pos, _InputIterator __first, 8768: _InputIterator __last, std::input_iterator_tag) 8768: { 8768: for (; __first != __last; ++__first) 8768: { 8768: __pos = insert(__pos, *__first); 8768: ++__pos; 8768: } 8768: } 8768: 8768: template 8768: void 8768: _M_insert_range(iterator __position, _ForwardIterator __first, 8768: _ForwardIterator __last, std::forward_iterator_tag); 8768: 8768: void 8768: _M_insert_aux(iterator __position, bool __x); 8768: 8768: size_type 8768: _M_check_len(size_type __n, const char* __s) const 8768: { 8768: if (max_size() - size() < __n) 8768: __throw_length_error((__s)); 8768: 8768: const size_type __len = size() + std::max(size(), __n); 8768: return (__len < size() || __len > max_size()) ? max_size() : __len; 8768: } 8768: 8768: void 8768: _M_erase_at_end(iterator __pos) 8768: { this->_M_impl._M_finish = __pos; } 8768: 8768: iterator 8768: _M_erase(iterator __pos); 8768: 8768: iterator 8768: _M_erase(iterator __first, iterator __last); 8768: }; 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: struct hash> 8768: : public __hash_base> 8768: { 8768: size_t 8768: operator()(const std::vector&) const noexcept; 8768: }; 8768: 8768: 8768: } 8768: # 66 "/usr/include/c++/8/vector" 2 3 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/vector.tcc" 1 3 8768: # 59 "/usr/include/c++/8/bits/vector.tcc" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: reserve(size_type __n) 8768: { 8768: if (__n > this->max_size()) 8768: __throw_length_error(("vector::reserve")); 8768: if (this->capacity() < __n) 8768: { 8768: const size_type __old_size = size(); 8768: pointer __tmp = _M_allocate_and_copy(__n, 8768: std::__make_move_if_noexcept_iterator(this->_M_impl._M_start), 8768: std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish)); 8768: ; 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = __tmp; 8768: this->_M_impl._M_finish = __tmp + __old_size; 8768: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; 8768: } 8768: } 8768: 8768: 8768: template 8768: template 8768: 8768: 8768: 8768: void 8768: 8768: vector<_Tp, _Alloc>:: 8768: emplace_back(_Args&&... __args) 8768: { 8768: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8768: { 8768: ; 8768: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8768: std::forward<_Args>(__args)...); 8768: ++this->_M_impl._M_finish; 8768: ; 8768: } 8768: else 8768: _M_realloc_insert(end(), std::forward<_Args>(__args)...); 8768: 8768: 8768: 8768: } 8768: 8768: 8768: template 8768: typename vector<_Tp, _Alloc>::iterator 8768: vector<_Tp, _Alloc>:: 8768: 8768: insert(const_iterator __position, const value_type& __x) 8768: 8768: 8768: 8768: { 8768: const size_type __n = __position - begin(); 8768: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8768: if (__position == end()) 8768: { 8768: ; 8768: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8768: __x); 8768: ++this->_M_impl._M_finish; 8768: ; 8768: } 8768: else 8768: { 8768: 8768: const auto __pos = begin() + (__position - cbegin()); 8768: 8768: 8768: _Temporary_value __x_copy(this, __x); 8768: _M_insert_aux(__pos, std::move(__x_copy._M_val())); 8768: 8768: 8768: 8768: } 8768: else 8768: 8768: _M_realloc_insert(begin() + (__position - cbegin()), __x); 8768: 8768: 8768: 8768: 8768: return iterator(this->_M_impl._M_start + __n); 8768: } 8768: 8768: template 8768: typename vector<_Tp, _Alloc>::iterator 8768: vector<_Tp, _Alloc>:: 8768: _M_erase(iterator __position) 8768: { 8768: if (__position + 1 != end()) 8768: std::move(__position + 1, end(), __position); 8768: --this->_M_impl._M_finish; 8768: _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish); 8768: ; 8768: return __position; 8768: } 8768: 8768: template 8768: typename vector<_Tp, _Alloc>::iterator 8768: vector<_Tp, _Alloc>:: 8768: _M_erase(iterator __first, iterator __last) 8768: { 8768: if (__first != __last) 8768: { 8768: if (__last != end()) 8768: std::move(__last, end(), __first); 8768: _M_erase_at_end(__first.base() + (end() - __last)); 8768: } 8768: return __first; 8768: } 8768: 8768: template 8768: vector<_Tp, _Alloc>& 8768: vector<_Tp, _Alloc>:: 8768: operator=(const vector<_Tp, _Alloc>& __x) 8768: { 8768: if (&__x != this) 8768: { 8768: ; 8768: 8768: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8768: { 8768: if (!_Alloc_traits::_S_always_equal() 8768: && _M_get_Tp_allocator() != __x._M_get_Tp_allocator()) 8768: { 8768: 8768: this->clear(); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = nullptr; 8768: this->_M_impl._M_finish = nullptr; 8768: this->_M_impl._M_end_of_storage = nullptr; 8768: } 8768: std::__alloc_on_copy(_M_get_Tp_allocator(), 8768: __x._M_get_Tp_allocator()); 8768: } 8768: 8768: const size_type __xlen = __x.size(); 8768: if (__xlen > capacity()) 8768: { 8768: pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), 8768: __x.end()); 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = __tmp; 8768: this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; 8768: } 8768: else if (size() >= __xlen) 8768: { 8768: std::_Destroy(std::copy(__x.begin(), __x.end(), begin()), 8768: end(), _M_get_Tp_allocator()); 8768: } 8768: else 8768: { 8768: std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(), 8768: this->_M_impl._M_start); 8768: std::__uninitialized_copy_a(__x._M_impl._M_start + size(), 8768: __x._M_impl._M_finish, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: } 8768: this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_fill_assign(size_t __n, const value_type& __val) 8768: { 8768: if (__n > capacity()) 8768: { 8768: vector __tmp(__n, __val, _M_get_Tp_allocator()); 8768: __tmp._M_impl._M_swap_data(this->_M_impl); 8768: } 8768: else if (__n > size()) 8768: { 8768: std::fill(begin(), end(), __val); 8768: const size_type __add = __n - size(); 8768: ; 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8768: __add, __val, _M_get_Tp_allocator()); 8768: ; 8768: } 8768: else 8768: _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val)); 8768: } 8768: 8768: template 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_assign_aux(_InputIterator __first, _InputIterator __last, 8768: std::input_iterator_tag) 8768: { 8768: pointer __cur(this->_M_impl._M_start); 8768: for (; __first != __last && __cur != this->_M_impl._M_finish; 8768: ++__cur, ++__first) 8768: *__cur = *__first; 8768: if (__first == __last) 8768: _M_erase_at_end(__cur); 8768: else 8768: _M_range_insert(end(), __first, __last, 8768: std::__iterator_category(__first)); 8768: } 8768: 8768: template 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, 8768: std::forward_iterator_tag) 8768: { 8768: const size_type __len = std::distance(__first, __last); 8768: 8768: if (__len > capacity()) 8768: { 8768: pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); 8768: ; 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = __tmp; 8768: this->_M_impl._M_finish = this->_M_impl._M_start + __len; 8768: this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; 8768: } 8768: else if (size() >= __len) 8768: _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start)); 8768: else 8768: { 8768: _ForwardIterator __mid = __first; 8768: std::advance(__mid, size()); 8768: std::copy(__first, __mid, this->_M_impl._M_start); 8768: const size_type __attribute__((__unused__)) __n = __len - size(); 8768: ; 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_copy_a(__mid, __last, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: ; 8768: } 8768: } 8768: 8768: 8768: template 8768: auto 8768: vector<_Tp, _Alloc>:: 8768: _M_insert_rval(const_iterator __position, value_type&& __v) -> iterator 8768: { 8768: const auto __n = __position - cbegin(); 8768: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8768: if (__position == cend()) 8768: { 8768: ; 8768: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8768: std::move(__v)); 8768: ++this->_M_impl._M_finish; 8768: ; 8768: } 8768: else 8768: _M_insert_aux(begin() + __n, std::move(__v)); 8768: else 8768: _M_realloc_insert(begin() + __n, std::move(__v)); 8768: 8768: return iterator(this->_M_impl._M_start + __n); 8768: } 8768: 8768: template 8768: template 8768: auto 8768: vector<_Tp, _Alloc>:: 8768: _M_emplace_aux(const_iterator __position, _Args&&... __args) 8768: -> iterator 8768: { 8768: const auto __n = __position - cbegin(); 8768: if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) 8768: if (__position == cend()) 8768: { 8768: ; 8768: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8768: std::forward<_Args>(__args)...); 8768: ++this->_M_impl._M_finish; 8768: ; 8768: } 8768: else 8768: { 8768: 8768: 8768: 8768: _Temporary_value __tmp(this, std::forward<_Args>(__args)...); 8768: _M_insert_aux(begin() + __n, std::move(__tmp._M_val())); 8768: } 8768: else 8768: _M_realloc_insert(begin() + __n, std::forward<_Args>(__args)...); 8768: 8768: return iterator(this->_M_impl._M_start + __n); 8768: } 8768: 8768: template 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_insert_aux(iterator __position, _Arg&& __arg) 8768: 8768: 8768: 8768: 8768: 8768: 8768: { 8768: ; 8768: _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, 8768: std::move(*(this->_M_impl._M_finish - 1))); 8768: ++this->_M_impl._M_finish; 8768: ; 8768: 8768: 8768: 8768: std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1) 8768: 8768: ; 8768: 8768: 8768: 8768: *__position = std::forward<_Arg>(__arg); 8768: 8768: } 8768: 8768: 8768: template 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_realloc_insert(iterator __position, _Args&&... __args) 8768: 8768: 8768: 8768: 8768: 8768: 8768: { 8768: const size_type __len = 8768: _M_check_len(size_type(1), "vector::_M_realloc_insert"); 8768: pointer __old_start = this->_M_impl._M_start; 8768: pointer __old_finish = this->_M_impl._M_finish; 8768: const size_type __elems_before = __position - begin(); 8768: pointer __new_start(this->_M_allocate(__len)); 8768: pointer __new_finish(__new_start); 8768: try 8768: { 8768: 8768: 8768: 8768: 8768: 8768: _Alloc_traits::construct(this->_M_impl, 8768: __new_start + __elems_before, 8768: 8768: std::forward<_Args>(__args)...); 8768: 8768: 8768: 8768: __new_finish = pointer(); 8768: 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (__old_start, __position.base(), 8768: __new_start, _M_get_Tp_allocator()); 8768: 8768: ++__new_finish; 8768: 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (__position.base(), __old_finish, 8768: __new_finish, _M_get_Tp_allocator()); 8768: } 8768: catch(...) 8768: { 8768: if (!__new_finish) 8768: _Alloc_traits::destroy(this->_M_impl, 8768: __new_start + __elems_before); 8768: else 8768: std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); 8768: _M_deallocate(__new_start, __len); 8768: throw; 8768: } 8768: ; 8768: std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator()); 8768: _M_deallocate(__old_start, 8768: this->_M_impl._M_end_of_storage - __old_start); 8768: this->_M_impl._M_start = __new_start; 8768: this->_M_impl._M_finish = __new_finish; 8768: this->_M_impl._M_end_of_storage = __new_start + __len; 8768: } 8768: 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_fill_insert(iterator __position, size_type __n, const value_type& __x) 8768: { 8768: if (__n != 0) 8768: { 8768: if (size_type(this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_finish) >= __n) 8768: { 8768: 8768: 8768: 8768: _Temporary_value __tmp(this, __x); 8768: value_type& __x_copy = __tmp._M_val(); 8768: 8768: const size_type __elems_after = end() - __position; 8768: pointer __old_finish(this->_M_impl._M_finish); 8768: if (__elems_after > __n) 8768: { 8768: ; 8768: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8768: this->_M_impl._M_finish, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: this->_M_impl._M_finish += __n; 8768: ; 8768: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8768: ; 8768: std::fill(__position.base(), __position.base() + __n, 8768: __x_copy); 8768: } 8768: else 8768: { 8768: ; 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_fill_n_a(this->_M_impl._M_finish, 8768: __n - __elems_after, 8768: __x_copy, 8768: _M_get_Tp_allocator()); 8768: ; 8768: std::__uninitialized_move_a(__position.base(), __old_finish, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: this->_M_impl._M_finish += __elems_after; 8768: ; 8768: std::fill(__position.base(), __old_finish, __x_copy); 8768: } 8768: } 8768: else 8768: { 8768: const size_type __len = 8768: _M_check_len(__n, "vector::_M_fill_insert"); 8768: const size_type __elems_before = __position - begin(); 8768: pointer __new_start(this->_M_allocate(__len)); 8768: pointer __new_finish(__new_start); 8768: try 8768: { 8768: 8768: std::__uninitialized_fill_n_a(__new_start + __elems_before, 8768: __n, __x, 8768: _M_get_Tp_allocator()); 8768: __new_finish = pointer(); 8768: 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (this->_M_impl._M_start, __position.base(), 8768: __new_start, _M_get_Tp_allocator()); 8768: 8768: __new_finish += __n; 8768: 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (__position.base(), this->_M_impl._M_finish, 8768: __new_finish, _M_get_Tp_allocator()); 8768: } 8768: catch(...) 8768: { 8768: if (!__new_finish) 8768: std::_Destroy(__new_start + __elems_before, 8768: __new_start + __elems_before + __n, 8768: _M_get_Tp_allocator()); 8768: else 8768: std::_Destroy(__new_start, __new_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(__new_start, __len); 8768: throw; 8768: } 8768: ; 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = __new_start; 8768: this->_M_impl._M_finish = __new_finish; 8768: this->_M_impl._M_end_of_storage = __new_start + __len; 8768: } 8768: } 8768: } 8768: 8768: 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_default_append(size_type __n) 8768: { 8768: if (__n != 0) 8768: { 8768: size_type __size = size(); 8768: size_type __navail = size_type(this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_finish); 8768: 8768: if (__size > max_size() || __navail > max_size() - __size) 8768: __builtin_unreachable(); 8768: 8768: if (__navail >= __n) 8768: { 8768: ; 8768: this->_M_impl._M_finish = 8768: std::__uninitialized_default_n_a(this->_M_impl._M_finish, 8768: __n, _M_get_Tp_allocator()); 8768: ; 8768: } 8768: else 8768: { 8768: const size_type __len = 8768: _M_check_len(__n, "vector::_M_default_append"); 8768: const size_type __old_size = __size; 8768: pointer __new_start(this->_M_allocate(__len)); 8768: pointer __new_finish(__new_start); 8768: try 8768: { 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (this->_M_impl._M_start, this->_M_impl._M_finish, 8768: __new_start, _M_get_Tp_allocator()); 8768: __new_finish = 8768: std::__uninitialized_default_n_a(__new_finish, __n, 8768: _M_get_Tp_allocator()); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__new_start, __new_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(__new_start, __len); 8768: throw; 8768: } 8768: ; 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = __new_start; 8768: this->_M_impl._M_finish = __new_finish; 8768: this->_M_impl._M_end_of_storage = __new_start + __len; 8768: } 8768: } 8768: } 8768: 8768: template 8768: bool 8768: vector<_Tp, _Alloc>:: 8768: _M_shrink_to_fit() 8768: { 8768: if (capacity() == size()) 8768: return false; 8768: ; 8768: return std::__shrink_to_fit_aux::_S_do_it(*this); 8768: } 8768: 8768: 8768: template 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_range_insert(iterator __pos, _InputIterator __first, 8768: _InputIterator __last, std::input_iterator_tag) 8768: { 8768: if (__pos == end()) 8768: { 8768: for (; __first != __last; ++__first) 8768: insert(end(), *__first); 8768: } 8768: else if (__first != __last) 8768: { 8768: vector __tmp(__first, __last, _M_get_Tp_allocator()); 8768: insert(__pos, 8768: std::make_move_iterator(__tmp.begin()), 8768: std::make_move_iterator(__tmp.end())); 8768: } 8768: } 8768: 8768: template 8768: template 8768: void 8768: vector<_Tp, _Alloc>:: 8768: _M_range_insert(iterator __position, _ForwardIterator __first, 8768: _ForwardIterator __last, std::forward_iterator_tag) 8768: { 8768: if (__first != __last) 8768: { 8768: const size_type __n = std::distance(__first, __last); 8768: if (size_type(this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_finish) >= __n) 8768: { 8768: const size_type __elems_after = end() - __position; 8768: pointer __old_finish(this->_M_impl._M_finish); 8768: if (__elems_after > __n) 8768: { 8768: ; 8768: std::__uninitialized_move_a(this->_M_impl._M_finish - __n, 8768: this->_M_impl._M_finish, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: this->_M_impl._M_finish += __n; 8768: ; 8768: std::move_backward(__position.base(), __old_finish - __n, __old_finish) 8768: ; 8768: std::copy(__first, __last, __position); 8768: } 8768: else 8768: { 8768: _ForwardIterator __mid = __first; 8768: std::advance(__mid, __elems_after); 8768: ; 8768: std::__uninitialized_copy_a(__mid, __last, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: this->_M_impl._M_finish += __n - __elems_after; 8768: ; 8768: std::__uninitialized_move_a(__position.base(), 8768: __old_finish, 8768: this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: this->_M_impl._M_finish += __elems_after; 8768: ; 8768: std::copy(__first, __mid, __position); 8768: } 8768: } 8768: else 8768: { 8768: const size_type __len = 8768: _M_check_len(__n, "vector::_M_range_insert"); 8768: pointer __new_start(this->_M_allocate(__len)); 8768: pointer __new_finish(__new_start); 8768: try 8768: { 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (this->_M_impl._M_start, __position.base(), 8768: __new_start, _M_get_Tp_allocator()); 8768: __new_finish 8768: = std::__uninitialized_copy_a(__first, __last, 8768: __new_finish, 8768: _M_get_Tp_allocator()); 8768: __new_finish 8768: = std::__uninitialized_move_if_noexcept_a 8768: (__position.base(), this->_M_impl._M_finish, 8768: __new_finish, _M_get_Tp_allocator()); 8768: } 8768: catch(...) 8768: { 8768: std::_Destroy(__new_start, __new_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(__new_start, __len); 8768: throw; 8768: } 8768: ; 8768: std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 8768: _M_get_Tp_allocator()); 8768: _M_deallocate(this->_M_impl._M_start, 8768: this->_M_impl._M_end_of_storage 8768: - this->_M_impl._M_start); 8768: this->_M_impl._M_start = __new_start; 8768: this->_M_impl._M_finish = __new_finish; 8768: this->_M_impl._M_end_of_storage = __new_start + __len; 8768: } 8768: } 8768: } 8768: 8768: 8768: 8768: template 8768: void 8768: vector:: 8768: _M_reallocate(size_type __n) 8768: { 8768: _Bit_pointer __q = this->_M_allocate(__n); 8768: iterator __start(std::__addressof(*__q), 0); 8768: iterator __finish(_M_copy_aligned(begin(), end(), __start)); 8768: this->_M_deallocate(); 8768: this->_M_impl._M_start = __start; 8768: this->_M_impl._M_finish = __finish; 8768: this->_M_impl._M_end_of_storage = __q + _S_nword(__n); 8768: } 8768: 8768: template 8768: void 8768: vector:: 8768: _M_fill_insert(iterator __position, size_type __n, bool __x) 8768: { 8768: if (__n == 0) 8768: return; 8768: if (capacity() - size() >= __n) 8768: { 8768: std::copy_backward(__position, end(), 8768: this->_M_impl._M_finish + difference_type(__n)); 8768: std::fill(__position, __position + difference_type(__n), __x); 8768: this->_M_impl._M_finish += difference_type(__n); 8768: } 8768: else 8768: { 8768: const size_type __len = 8768: _M_check_len(__n, "vector::_M_fill_insert"); 8768: _Bit_pointer __q = this->_M_allocate(__len); 8768: iterator __start(std::__addressof(*__q), 0); 8768: iterator __i = _M_copy_aligned(begin(), __position, __start); 8768: std::fill(__i, __i + difference_type(__n), __x); 8768: iterator __finish = std::copy(__position, end(), 8768: __i + difference_type(__n)); 8768: this->_M_deallocate(); 8768: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8768: this->_M_impl._M_start = __start; 8768: this->_M_impl._M_finish = __finish; 8768: } 8768: } 8768: 8768: template 8768: template 8768: void 8768: vector:: 8768: _M_insert_range(iterator __position, _ForwardIterator __first, 8768: _ForwardIterator __last, std::forward_iterator_tag) 8768: { 8768: if (__first != __last) 8768: { 8768: size_type __n = std::distance(__first, __last); 8768: if (capacity() - size() >= __n) 8768: { 8768: std::copy_backward(__position, end(), 8768: this->_M_impl._M_finish 8768: + difference_type(__n)); 8768: std::copy(__first, __last, __position); 8768: this->_M_impl._M_finish += difference_type(__n); 8768: } 8768: else 8768: { 8768: const size_type __len = 8768: _M_check_len(__n, "vector::_M_insert_range"); 8768: _Bit_pointer __q = this->_M_allocate(__len); 8768: iterator __start(std::__addressof(*__q), 0); 8768: iterator __i = _M_copy_aligned(begin(), __position, __start); 8768: __i = std::copy(__first, __last, __i); 8768: iterator __finish = std::copy(__position, end(), __i); 8768: this->_M_deallocate(); 8768: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8768: this->_M_impl._M_start = __start; 8768: this->_M_impl._M_finish = __finish; 8768: } 8768: } 8768: } 8768: 8768: template 8768: void 8768: vector:: 8768: _M_insert_aux(iterator __position, bool __x) 8768: { 8768: if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()) 8768: { 8768: std::copy_backward(__position, this->_M_impl._M_finish, 8768: this->_M_impl._M_finish + 1); 8768: *__position = __x; 8768: ++this->_M_impl._M_finish; 8768: } 8768: else 8768: { 8768: const size_type __len = 8768: _M_check_len(size_type(1), "vector::_M_insert_aux"); 8768: _Bit_pointer __q = this->_M_allocate(__len); 8768: iterator __start(std::__addressof(*__q), 0); 8768: iterator __i = _M_copy_aligned(begin(), __position, __start); 8768: *__i++ = __x; 8768: iterator __finish = std::copy(__position, end(), __i); 8768: this->_M_deallocate(); 8768: this->_M_impl._M_end_of_storage = __q + _S_nword(__len); 8768: this->_M_impl._M_start = __start; 8768: this->_M_impl._M_finish = __finish; 8768: } 8768: } 8768: 8768: template 8768: typename vector::iterator 8768: vector:: 8768: _M_erase(iterator __position) 8768: { 8768: if (__position + 1 != end()) 8768: std::copy(__position + 1, end(), __position); 8768: --this->_M_impl._M_finish; 8768: return __position; 8768: } 8768: 8768: template 8768: typename vector::iterator 8768: vector:: 8768: _M_erase(iterator __first, iterator __last) 8768: { 8768: if (__first != __last) 8768: _M_erase_at_end(std::copy(__last, end(), __first)); 8768: return __first; 8768: } 8768: 8768: 8768: template 8768: bool 8768: vector:: 8768: _M_shrink_to_fit() 8768: { 8768: if (capacity() - size() < int(_S_word_bit)) 8768: return false; 8768: try 8768: { 8768: _M_reallocate(size()); 8768: return true; 8768: } 8768: catch(...) 8768: { return false; } 8768: } 8768: 8768: 8768: 8768: 8768: } 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: size_t 8768: hash>:: 8768: operator()(const std::vector& __b) const noexcept 8768: { 8768: size_t __hash = 0; 8768: using std::_S_word_bit; 8768: using std::_Bit_type; 8768: 8768: const size_t __words = __b.size() / _S_word_bit; 8768: if (__words) 8768: { 8768: const size_t __clength = __words * sizeof(_Bit_type); 8768: __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength); 8768: } 8768: 8768: const size_t __extrabits = __b.size() % _S_word_bit; 8768: if (__extrabits) 8768: { 8768: _Bit_type __hiword = *__b._M_impl._M_finish._M_p; 8768: __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits); 8768: 8768: const size_t __clength 8768: = (__extrabits + 8 - 1) / 8; 8768: if (__words) 8768: __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash); 8768: else 8768: __hash = std::_Hash_impl::hash(&__hiword, __clength); 8768: } 8768: 8768: return __hash; 8768: } 8768: 8768: 8768: } 8768: # 70 "/usr/include/c++/8/vector" 2 3 8768: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8768: 8768: # 1 "/usr/include/c++/8/map" 1 3 4 8768: # 58 "/usr/include/c++/8/map" 3 4 8768: 8768: # 59 "/usr/include/c++/8/map" 3 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_tree.h" 1 3 8768: # 61 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: 8768: # 62 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: # 75 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 99 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: enum _Rb_tree_color { _S_red = false, _S_black = true }; 8768: 8768: struct _Rb_tree_node_base 8768: { 8768: typedef _Rb_tree_node_base* _Base_ptr; 8768: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8768: 8768: _Rb_tree_color _M_color; 8768: _Base_ptr _M_parent; 8768: _Base_ptr _M_left; 8768: _Base_ptr _M_right; 8768: 8768: static _Base_ptr 8768: _S_minimum(_Base_ptr __x) noexcept 8768: { 8768: while (__x->_M_left != 0) __x = __x->_M_left; 8768: return __x; 8768: } 8768: 8768: static _Const_Base_ptr 8768: _S_minimum(_Const_Base_ptr __x) noexcept 8768: { 8768: while (__x->_M_left != 0) __x = __x->_M_left; 8768: return __x; 8768: } 8768: 8768: static _Base_ptr 8768: _S_maximum(_Base_ptr __x) noexcept 8768: { 8768: while (__x->_M_right != 0) __x = __x->_M_right; 8768: return __x; 8768: } 8768: 8768: static _Const_Base_ptr 8768: _S_maximum(_Const_Base_ptr __x) noexcept 8768: { 8768: while (__x->_M_right != 0) __x = __x->_M_right; 8768: return __x; 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct _Rb_tree_key_compare 8768: { 8768: _Key_compare _M_key_compare; 8768: 8768: _Rb_tree_key_compare() 8768: noexcept(is_nothrow_default_constructible<_Key_compare>::value) 8768: 8768: : _M_key_compare() 8768: { } 8768: 8768: _Rb_tree_key_compare(const _Key_compare& __comp) 8768: : _M_key_compare(__comp) 8768: { } 8768: 8768: 8768: 8768: _Rb_tree_key_compare(const _Rb_tree_key_compare&) = default; 8768: 8768: _Rb_tree_key_compare(_Rb_tree_key_compare&& __x) 8768: noexcept(is_nothrow_copy_constructible<_Key_compare>::value) 8768: : _M_key_compare(__x._M_key_compare) 8768: { } 8768: 8768: }; 8768: 8768: 8768: struct _Rb_tree_header 8768: { 8768: _Rb_tree_node_base _M_header; 8768: size_t _M_node_count; 8768: 8768: _Rb_tree_header() noexcept 8768: { 8768: _M_header._M_color = _S_red; 8768: _M_reset(); 8768: } 8768: 8768: 8768: _Rb_tree_header(_Rb_tree_header&& __x) noexcept 8768: { 8768: if (__x._M_header._M_parent != nullptr) 8768: _M_move_data(__x); 8768: else 8768: { 8768: _M_header._M_color = _S_red; 8768: _M_reset(); 8768: } 8768: } 8768: 8768: 8768: void 8768: _M_move_data(_Rb_tree_header& __from) 8768: { 8768: _M_header._M_color = __from._M_header._M_color; 8768: _M_header._M_parent = __from._M_header._M_parent; 8768: _M_header._M_left = __from._M_header._M_left; 8768: _M_header._M_right = __from._M_header._M_right; 8768: _M_header._M_parent->_M_parent = &_M_header; 8768: _M_node_count = __from._M_node_count; 8768: 8768: __from._M_reset(); 8768: } 8768: 8768: void 8768: _M_reset() 8768: { 8768: _M_header._M_parent = 0; 8768: _M_header._M_left = &_M_header; 8768: _M_header._M_right = &_M_header; 8768: _M_node_count = 0; 8768: } 8768: }; 8768: 8768: template 8768: struct _Rb_tree_node : public _Rb_tree_node_base 8768: { 8768: typedef _Rb_tree_node<_Val>* _Link_type; 8768: # 231 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: __gnu_cxx::__aligned_membuf<_Val> _M_storage; 8768: 8768: _Val* 8768: _M_valptr() 8768: { return _M_storage._M_ptr(); } 8768: 8768: const _Val* 8768: _M_valptr() const 8768: { return _M_storage._M_ptr(); } 8768: 8768: }; 8768: 8768: __attribute__ ((__pure__)) _Rb_tree_node_base* 8768: _Rb_tree_increment(_Rb_tree_node_base* __x) throw (); 8768: 8768: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8768: _Rb_tree_increment(const _Rb_tree_node_base* __x) throw (); 8768: 8768: __attribute__ ((__pure__)) _Rb_tree_node_base* 8768: _Rb_tree_decrement(_Rb_tree_node_base* __x) throw (); 8768: 8768: __attribute__ ((__pure__)) const _Rb_tree_node_base* 8768: _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw (); 8768: 8768: template 8768: struct _Rb_tree_iterator 8768: { 8768: typedef _Tp value_type; 8768: typedef _Tp& reference; 8768: typedef _Tp* pointer; 8768: 8768: typedef bidirectional_iterator_tag iterator_category; 8768: typedef ptrdiff_t difference_type; 8768: 8768: typedef _Rb_tree_iterator<_Tp> _Self; 8768: typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; 8768: typedef _Rb_tree_node<_Tp>* _Link_type; 8768: 8768: _Rb_tree_iterator() noexcept 8768: : _M_node() { } 8768: 8768: explicit 8768: _Rb_tree_iterator(_Base_ptr __x) noexcept 8768: : _M_node(__x) { } 8768: 8768: reference 8768: operator*() const noexcept 8768: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8768: 8768: pointer 8768: operator->() const noexcept 8768: { return static_cast<_Link_type> (_M_node)->_M_valptr(); } 8768: 8768: _Self& 8768: operator++() noexcept 8768: { 8768: _M_node = _Rb_tree_increment(_M_node); 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator++(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _Rb_tree_increment(_M_node); 8768: return __tmp; 8768: } 8768: 8768: _Self& 8768: operator--() noexcept 8768: { 8768: _M_node = _Rb_tree_decrement(_M_node); 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator--(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _Rb_tree_decrement(_M_node); 8768: return __tmp; 8768: } 8768: 8768: bool 8768: operator==(const _Self& __x) const noexcept 8768: { return _M_node == __x._M_node; } 8768: 8768: bool 8768: operator!=(const _Self& __x) const noexcept 8768: { return _M_node != __x._M_node; } 8768: 8768: _Base_ptr _M_node; 8768: }; 8768: 8768: template 8768: struct _Rb_tree_const_iterator 8768: { 8768: typedef _Tp value_type; 8768: typedef const _Tp& reference; 8768: typedef const _Tp* pointer; 8768: 8768: typedef _Rb_tree_iterator<_Tp> iterator; 8768: 8768: typedef bidirectional_iterator_tag iterator_category; 8768: typedef ptrdiff_t difference_type; 8768: 8768: typedef _Rb_tree_const_iterator<_Tp> _Self; 8768: typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; 8768: typedef const _Rb_tree_node<_Tp>* _Link_type; 8768: 8768: _Rb_tree_const_iterator() noexcept 8768: : _M_node() { } 8768: 8768: explicit 8768: _Rb_tree_const_iterator(_Base_ptr __x) noexcept 8768: : _M_node(__x) { } 8768: 8768: _Rb_tree_const_iterator(const iterator& __it) noexcept 8768: : _M_node(__it._M_node) { } 8768: 8768: iterator 8768: _M_const_cast() const noexcept 8768: { return iterator(const_cast(_M_node)); } 8768: 8768: reference 8768: operator*() const noexcept 8768: { return *static_cast<_Link_type>(_M_node)->_M_valptr(); } 8768: 8768: pointer 8768: operator->() const noexcept 8768: { return static_cast<_Link_type>(_M_node)->_M_valptr(); } 8768: 8768: _Self& 8768: operator++() noexcept 8768: { 8768: _M_node = _Rb_tree_increment(_M_node); 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator++(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _Rb_tree_increment(_M_node); 8768: return __tmp; 8768: } 8768: 8768: _Self& 8768: operator--() noexcept 8768: { 8768: _M_node = _Rb_tree_decrement(_M_node); 8768: return *this; 8768: } 8768: 8768: _Self 8768: operator--(int) noexcept 8768: { 8768: _Self __tmp = *this; 8768: _M_node = _Rb_tree_decrement(_M_node); 8768: return __tmp; 8768: } 8768: 8768: bool 8768: operator==(const _Self& __x) const noexcept 8768: { return _M_node == __x._M_node; } 8768: 8768: bool 8768: operator!=(const _Self& __x) const noexcept 8768: { return _M_node != __x._M_node; } 8768: 8768: _Base_ptr _M_node; 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const _Rb_tree_iterator<_Val>& __x, 8768: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8768: { return __x._M_node == __y._M_node; } 8768: 8768: template 8768: inline bool 8768: operator!=(const _Rb_tree_iterator<_Val>& __x, 8768: const _Rb_tree_const_iterator<_Val>& __y) noexcept 8768: { return __x._M_node != __y._M_node; } 8768: 8768: void 8768: _Rb_tree_insert_and_rebalance(const bool __insert_left, 8768: _Rb_tree_node_base* __x, 8768: _Rb_tree_node_base* __p, 8768: _Rb_tree_node_base& __header) throw (); 8768: 8768: _Rb_tree_node_base* 8768: _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, 8768: _Rb_tree_node_base& __header) throw (); 8768: # 442 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: template > 8768: class _Rb_tree 8768: { 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_Rb_tree_node<_Val> >::other _Node_allocator; 8768: 8768: typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits; 8768: 8768: 8768: static_assert(__is_invocable<_Compare&, const _Key&, const _Key&>{}, 8768: "comparison object must be invocable with two arguments of key type"); 8768: # 462 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: protected: 8768: typedef _Rb_tree_node_base* _Base_ptr; 8768: typedef const _Rb_tree_node_base* _Const_Base_ptr; 8768: typedef _Rb_tree_node<_Val>* _Link_type; 8768: typedef const _Rb_tree_node<_Val>* _Const_Link_type; 8768: 8768: private: 8768: 8768: 8768: struct _Reuse_or_alloc_node 8768: { 8768: _Reuse_or_alloc_node(_Rb_tree& __t) 8768: : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t) 8768: { 8768: if (_M_root) 8768: { 8768: _M_root->_M_parent = 0; 8768: 8768: if (_M_nodes->_M_left) 8768: _M_nodes = _M_nodes->_M_left; 8768: } 8768: else 8768: _M_nodes = 0; 8768: } 8768: 8768: 8768: _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete; 8768: 8768: 8768: ~_Reuse_or_alloc_node() 8768: { _M_t._M_erase(static_cast<_Link_type>(_M_root)); } 8768: 8768: template 8768: _Link_type 8768: 8768: 8768: 8768: operator()(_Arg&& __arg) 8768: 8768: { 8768: _Link_type __node = static_cast<_Link_type>(_M_extract()); 8768: if (__node) 8768: { 8768: _M_t._M_destroy_node(__node); 8768: _M_t._M_construct_node(__node, std::forward<_Arg>(__arg)); 8768: return __node; 8768: } 8768: 8768: return _M_t._M_create_node(std::forward<_Arg>(__arg)); 8768: } 8768: 8768: private: 8768: _Base_ptr 8768: _M_extract() 8768: { 8768: if (!_M_nodes) 8768: return _M_nodes; 8768: 8768: _Base_ptr __node = _M_nodes; 8768: _M_nodes = _M_nodes->_M_parent; 8768: if (_M_nodes) 8768: { 8768: if (_M_nodes->_M_right == __node) 8768: { 8768: _M_nodes->_M_right = 0; 8768: 8768: if (_M_nodes->_M_left) 8768: { 8768: _M_nodes = _M_nodes->_M_left; 8768: 8768: while (_M_nodes->_M_right) 8768: _M_nodes = _M_nodes->_M_right; 8768: 8768: if (_M_nodes->_M_left) 8768: _M_nodes = _M_nodes->_M_left; 8768: } 8768: } 8768: else 8768: _M_nodes->_M_left = 0; 8768: } 8768: else 8768: _M_root = 0; 8768: 8768: return __node; 8768: } 8768: 8768: _Base_ptr _M_root; 8768: _Base_ptr _M_nodes; 8768: _Rb_tree& _M_t; 8768: }; 8768: 8768: 8768: 8768: struct _Alloc_node 8768: { 8768: _Alloc_node(_Rb_tree& __t) 8768: : _M_t(__t) { } 8768: 8768: template 8768: _Link_type 8768: 8768: 8768: 8768: operator()(_Arg&& __arg) const 8768: 8768: { return _M_t._M_create_node(std::forward<_Arg>(__arg)); } 8768: 8768: private: 8768: _Rb_tree& _M_t; 8768: }; 8768: 8768: public: 8768: typedef _Key key_type; 8768: typedef _Val value_type; 8768: typedef value_type* pointer; 8768: typedef const value_type* const_pointer; 8768: typedef value_type& reference; 8768: typedef const value_type& const_reference; 8768: typedef size_t size_type; 8768: typedef ptrdiff_t difference_type; 8768: typedef _Alloc allocator_type; 8768: 8768: _Node_allocator& 8768: _M_get_Node_allocator() noexcept 8768: { return this->_M_impl; } 8768: 8768: const _Node_allocator& 8768: _M_get_Node_allocator() const noexcept 8768: { return this->_M_impl; } 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_get_Node_allocator()); } 8768: 8768: protected: 8768: _Link_type 8768: _M_get_node() 8768: { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); } 8768: 8768: void 8768: _M_put_node(_Link_type __p) noexcept 8768: { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); } 8768: # 630 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: template 8768: void 8768: _M_construct_node(_Link_type __node, _Args&&... __args) 8768: { 8768: try 8768: { 8768: ::new(__node) _Rb_tree_node<_Val>; 8768: _Alloc_traits::construct(_M_get_Node_allocator(), 8768: __node->_M_valptr(), 8768: std::forward<_Args>(__args)...); 8768: } 8768: catch(...) 8768: { 8768: __node->~_Rb_tree_node<_Val>(); 8768: _M_put_node(__node); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: _Link_type 8768: _M_create_node(_Args&&... __args) 8768: { 8768: _Link_type __tmp = _M_get_node(); 8768: _M_construct_node(__tmp, std::forward<_Args>(__args)...); 8768: return __tmp; 8768: } 8768: 8768: void 8768: _M_destroy_node(_Link_type __p) noexcept 8768: { 8768: _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr()); 8768: __p->~_Rb_tree_node<_Val>(); 8768: } 8768: 8768: 8768: void 8768: _M_drop_node(_Link_type __p) noexcept 8768: { 8768: _M_destroy_node(__p); 8768: _M_put_node(__p); 8768: } 8768: 8768: template 8768: _Link_type 8768: _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen) 8768: { 8768: _Link_type __tmp = __node_gen(*__x->_M_valptr()); 8768: __tmp->_M_color = __x->_M_color; 8768: __tmp->_M_left = 0; 8768: __tmp->_M_right = 0; 8768: return __tmp; 8768: } 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: template 8768: 8768: struct _Rb_tree_impl 8768: : public _Node_allocator 8768: , public _Rb_tree_key_compare<_Key_compare> 8768: , public _Rb_tree_header 8768: { 8768: typedef _Rb_tree_key_compare<_Key_compare> _Base_key_compare; 8768: 8768: _Rb_tree_impl() 8768: noexcept(is_nothrow_default_constructible<_Node_allocator>::value && is_nothrow_default_constructible<_Base_key_compare>::value) 8768: 8768: 8768: : _Node_allocator() 8768: { } 8768: 8768: _Rb_tree_impl(const _Rb_tree_impl& __x) 8768: : _Node_allocator(_Alloc_traits::_S_select_on_copy(__x)) 8768: , _Base_key_compare(__x._M_key_compare) 8768: { } 8768: 8768: 8768: 8768: 8768: 8768: 8768: _Rb_tree_impl(_Rb_tree_impl&&) = default; 8768: 8768: _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a) 8768: : _Node_allocator(std::move(__a)), _Base_key_compare(__comp) 8768: { } 8768: 8768: }; 8768: 8768: _Rb_tree_impl<_Compare> _M_impl; 8768: 8768: protected: 8768: _Base_ptr& 8768: _M_root() noexcept 8768: { return this->_M_impl._M_header._M_parent; } 8768: 8768: _Const_Base_ptr 8768: _M_root() const noexcept 8768: { return this->_M_impl._M_header._M_parent; } 8768: 8768: _Base_ptr& 8768: _M_leftmost() noexcept 8768: { return this->_M_impl._M_header._M_left; } 8768: 8768: _Const_Base_ptr 8768: _M_leftmost() const noexcept 8768: { return this->_M_impl._M_header._M_left; } 8768: 8768: _Base_ptr& 8768: _M_rightmost() noexcept 8768: { return this->_M_impl._M_header._M_right; } 8768: 8768: _Const_Base_ptr 8768: _M_rightmost() const noexcept 8768: { return this->_M_impl._M_header._M_right; } 8768: 8768: _Link_type 8768: _M_begin() noexcept 8768: { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } 8768: 8768: _Const_Link_type 8768: _M_begin() const noexcept 8768: { 8768: return static_cast<_Const_Link_type> 8768: (this->_M_impl._M_header._M_parent); 8768: } 8768: 8768: _Base_ptr 8768: _M_end() noexcept 8768: { return &this->_M_impl._M_header; } 8768: 8768: _Const_Base_ptr 8768: _M_end() const noexcept 8768: { return &this->_M_impl._M_header; } 8768: 8768: static const_reference 8768: _S_value(_Const_Link_type __x) 8768: { return *__x->_M_valptr(); } 8768: 8768: static const _Key& 8768: _S_key(_Const_Link_type __x) 8768: { return _KeyOfValue()(_S_value(__x)); } 8768: 8768: static _Link_type 8768: _S_left(_Base_ptr __x) noexcept 8768: { return static_cast<_Link_type>(__x->_M_left); } 8768: 8768: static _Const_Link_type 8768: _S_left(_Const_Base_ptr __x) noexcept 8768: { return static_cast<_Const_Link_type>(__x->_M_left); } 8768: 8768: static _Link_type 8768: _S_right(_Base_ptr __x) noexcept 8768: { return static_cast<_Link_type>(__x->_M_right); } 8768: 8768: static _Const_Link_type 8768: _S_right(_Const_Base_ptr __x) noexcept 8768: { return static_cast<_Const_Link_type>(__x->_M_right); } 8768: 8768: static const_reference 8768: _S_value(_Const_Base_ptr __x) 8768: { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); } 8768: 8768: static const _Key& 8768: _S_key(_Const_Base_ptr __x) 8768: { return _KeyOfValue()(_S_value(__x)); } 8768: 8768: static _Base_ptr 8768: _S_minimum(_Base_ptr __x) noexcept 8768: { return _Rb_tree_node_base::_S_minimum(__x); } 8768: 8768: static _Const_Base_ptr 8768: _S_minimum(_Const_Base_ptr __x) noexcept 8768: { return _Rb_tree_node_base::_S_minimum(__x); } 8768: 8768: static _Base_ptr 8768: _S_maximum(_Base_ptr __x) noexcept 8768: { return _Rb_tree_node_base::_S_maximum(__x); } 8768: 8768: static _Const_Base_ptr 8768: _S_maximum(_Const_Base_ptr __x) noexcept 8768: { return _Rb_tree_node_base::_S_maximum(__x); } 8768: 8768: public: 8768: typedef _Rb_tree_iterator iterator; 8768: typedef _Rb_tree_const_iterator const_iterator; 8768: 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: # 832 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: pair<_Base_ptr, _Base_ptr> 8768: _M_get_insert_unique_pos(const key_type& __k); 8768: 8768: pair<_Base_ptr, _Base_ptr> 8768: _M_get_insert_equal_pos(const key_type& __k); 8768: 8768: pair<_Base_ptr, _Base_ptr> 8768: _M_get_insert_hint_unique_pos(const_iterator __pos, 8768: const key_type& __k); 8768: 8768: pair<_Base_ptr, _Base_ptr> 8768: _M_get_insert_hint_equal_pos(const_iterator __pos, 8768: const key_type& __k); 8768: 8768: private: 8768: 8768: template 8768: iterator 8768: _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&); 8768: 8768: iterator 8768: _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z); 8768: 8768: template 8768: iterator 8768: _M_insert_lower(_Base_ptr __y, _Arg&& __v); 8768: 8768: template 8768: iterator 8768: _M_insert_equal_lower(_Arg&& __x); 8768: 8768: iterator 8768: _M_insert_lower_node(_Base_ptr __p, _Link_type __z); 8768: 8768: iterator 8768: _M_insert_equal_lower_node(_Link_type __z); 8768: # 883 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: template 8768: _Link_type 8768: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&); 8768: 8768: template 8768: _Link_type 8768: _M_copy(const _Rb_tree& __x, _NodeGen& __gen) 8768: { 8768: _Link_type __root = _M_copy(__x._M_begin(), _M_end(), __gen); 8768: _M_leftmost() = _S_minimum(__root); 8768: _M_rightmost() = _S_maximum(__root); 8768: _M_impl._M_node_count = __x._M_impl._M_node_count; 8768: return __root; 8768: } 8768: 8768: _Link_type 8768: _M_copy(const _Rb_tree& __x) 8768: { 8768: _Alloc_node __an(*this); 8768: return _M_copy(__x, __an); 8768: } 8768: 8768: void 8768: _M_erase(_Link_type __x); 8768: 8768: iterator 8768: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8768: const _Key& __k); 8768: 8768: const_iterator 8768: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8768: const _Key& __k) const; 8768: 8768: iterator 8768: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8768: const _Key& __k); 8768: 8768: const_iterator 8768: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8768: const _Key& __k) const; 8768: 8768: public: 8768: 8768: 8768: 8768: 8768: _Rb_tree() = default; 8768: 8768: 8768: _Rb_tree(const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_impl(__comp, _Node_allocator(__a)) { } 8768: 8768: _Rb_tree(const _Rb_tree& __x) 8768: : _M_impl(__x._M_impl) 8768: { 8768: if (__x._M_root() != 0) 8768: _M_root() = _M_copy(__x); 8768: } 8768: 8768: 8768: _Rb_tree(const allocator_type& __a) 8768: : _M_impl(_Compare(), _Node_allocator(__a)) 8768: { } 8768: 8768: _Rb_tree(const _Rb_tree& __x, const allocator_type& __a) 8768: : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a)) 8768: { 8768: if (__x._M_root() != nullptr) 8768: _M_root() = _M_copy(__x); 8768: } 8768: 8768: _Rb_tree(_Rb_tree&&) = default; 8768: 8768: _Rb_tree(_Rb_tree&& __x, const allocator_type& __a) 8768: : _Rb_tree(std::move(__x), _Node_allocator(__a)) 8768: { } 8768: 8768: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a); 8768: 8768: 8768: ~_Rb_tree() noexcept 8768: { _M_erase(_M_begin()); } 8768: 8768: _Rb_tree& 8768: operator=(const _Rb_tree& __x); 8768: 8768: 8768: _Compare 8768: key_comp() const 8768: { return _M_impl._M_key_compare; } 8768: 8768: iterator 8768: begin() noexcept 8768: { return iterator(this->_M_impl._M_header._M_left); } 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return const_iterator(this->_M_impl._M_header._M_left); } 8768: 8768: iterator 8768: end() noexcept 8768: { return iterator(&this->_M_impl._M_header); } 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return const_iterator(&this->_M_impl._M_header); } 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return reverse_iterator(end()); } 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return reverse_iterator(begin()); } 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: bool 8768: empty() const noexcept 8768: { return _M_impl._M_node_count == 0; } 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_impl._M_node_count; } 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _Alloc_traits::max_size(_M_get_Node_allocator()); } 8768: 8768: void 8768: swap(_Rb_tree& __t) 8768: noexcept(__is_nothrow_swappable<_Compare>::value); 8768: 8768: 8768: 8768: template 8768: pair 8768: _M_insert_unique(_Arg&& __x); 8768: 8768: template 8768: iterator 8768: _M_insert_equal(_Arg&& __x); 8768: 8768: template 8768: iterator 8768: _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8768: 8768: template 8768: iterator 8768: _M_insert_unique_(const_iterator __pos, _Arg&& __x) 8768: { 8768: _Alloc_node __an(*this); 8768: return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an); 8768: } 8768: 8768: template 8768: iterator 8768: _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&); 8768: 8768: template 8768: iterator 8768: _M_insert_equal_(const_iterator __pos, _Arg&& __x) 8768: { 8768: _Alloc_node __an(*this); 8768: return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an); 8768: } 8768: 8768: template 8768: pair 8768: _M_emplace_unique(_Args&&... __args); 8768: 8768: template 8768: iterator 8768: _M_emplace_equal(_Args&&... __args); 8768: 8768: template 8768: iterator 8768: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args); 8768: 8768: template 8768: iterator 8768: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args); 8768: # 1103 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: template 8768: void 8768: _M_insert_unique(_InputIterator __first, _InputIterator __last); 8768: 8768: template 8768: void 8768: _M_insert_equal(_InputIterator __first, _InputIterator __last); 8768: 8768: private: 8768: void 8768: _M_erase_aux(const_iterator __position); 8768: 8768: void 8768: _M_erase_aux(const_iterator __first, const_iterator __last); 8768: 8768: public: 8768: 8768: 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(const_iterator __position) 8768: { 8768: ; 8768: const_iterator __result = __position; 8768: ++__result; 8768: _M_erase_aux(__position); 8768: return __result._M_const_cast(); 8768: } 8768: 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(iterator __position) 8768: { 8768: ; 8768: iterator __result = __position; 8768: ++__result; 8768: _M_erase_aux(__position); 8768: return __result; 8768: } 8768: # 1159 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: size_type 8768: erase(const key_type& __x); 8768: 8768: 8768: 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(const_iterator __first, const_iterator __last) 8768: { 8768: _M_erase_aux(__first, __last); 8768: return __last._M_const_cast(); 8768: } 8768: # 1181 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: void 8768: erase(const key_type* __first, const key_type* __last); 8768: 8768: void 8768: clear() noexcept 8768: { 8768: _M_erase(_M_begin()); 8768: _M_impl._M_reset(); 8768: } 8768: 8768: 8768: iterator 8768: find(const key_type& __k); 8768: 8768: const_iterator 8768: find(const key_type& __k) const; 8768: 8768: size_type 8768: count(const key_type& __k) const; 8768: 8768: iterator 8768: lower_bound(const key_type& __k) 8768: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8768: 8768: const_iterator 8768: lower_bound(const key_type& __k) const 8768: { return _M_lower_bound(_M_begin(), _M_end(), __k); } 8768: 8768: iterator 8768: upper_bound(const key_type& __k) 8768: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8768: 8768: const_iterator 8768: upper_bound(const key_type& __k) const 8768: { return _M_upper_bound(_M_begin(), _M_end(), __k); } 8768: 8768: pair 8768: equal_range(const key_type& __k); 8768: 8768: pair 8768: equal_range(const key_type& __k) const; 8768: # 1341 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: bool 8768: __rb_verify() const; 8768: 8768: 8768: _Rb_tree& 8768: operator=(_Rb_tree&&) 8768: noexcept(_Alloc_traits::_S_nothrow_move() 8768: && is_nothrow_move_assignable<_Compare>::value); 8768: 8768: template 8768: void 8768: _M_assign_unique(_Iterator, _Iterator); 8768: 8768: template 8768: void 8768: _M_assign_equal(_Iterator, _Iterator); 8768: 8768: private: 8768: 8768: void 8768: _M_move_data(_Rb_tree& __x, std::true_type) 8768: { _M_impl._M_move_data(__x._M_impl); } 8768: 8768: 8768: 8768: void 8768: _M_move_data(_Rb_tree&, std::false_type); 8768: 8768: 8768: void 8768: _M_move_assign(_Rb_tree&, std::true_type); 8768: 8768: 8768: 8768: void 8768: _M_move_assign(_Rb_tree&, std::false_type); 8768: # 1544 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { 8768: return __x.size() == __y.size() 8768: && std::equal(__x.begin(), __x.end(), __y.begin()); 8768: } 8768: 8768: template 8768: inline bool 8768: operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { 8768: return std::lexicographical_compare(__x.begin(), __x.end(), 8768: __y.begin(), __y.end()); 8768: } 8768: 8768: template 8768: inline bool 8768: operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: template 8768: inline bool 8768: operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: template 8768: inline bool 8768: operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: template 8768: inline bool 8768: operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: template 8768: inline void 8768: swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) 8768: { __x.swap(__y); } 8768: 8768: 8768: template 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a) 8768: : _M_impl(__x._M_impl._M_key_compare, std::move(__a)) 8768: { 8768: using __eq = typename _Alloc_traits::is_always_equal; 8768: if (__x._M_root() != nullptr) 8768: _M_move_data(__x, __eq()); 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_move_data(_Rb_tree& __x, std::false_type) 8768: { 8768: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8768: _M_move_data(__x, std::true_type()); 8768: else 8768: { 8768: _Alloc_node __an(*this); 8768: auto __lbd = 8768: [&__an](const value_type& __cval) 8768: { 8768: auto& __val = const_cast(__cval); 8768: return __an(std::move_if_noexcept(__val)); 8768: }; 8768: _M_root() = _M_copy(__x, __lbd); 8768: } 8768: } 8768: 8768: template 8768: inline void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_move_assign(_Rb_tree& __x, true_type) 8768: { 8768: clear(); 8768: if (__x._M_root() != nullptr) 8768: _M_move_data(__x, std::true_type()); 8768: std::__alloc_on_move(_M_get_Node_allocator(), 8768: __x._M_get_Node_allocator()); 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_move_assign(_Rb_tree& __x, false_type) 8768: { 8768: if (_M_get_Node_allocator() == __x._M_get_Node_allocator()) 8768: return _M_move_assign(__x, true_type{}); 8768: 8768: 8768: 8768: _Reuse_or_alloc_node __roan(*this); 8768: _M_impl._M_reset(); 8768: if (__x._M_root() != nullptr) 8768: { 8768: auto __lbd = 8768: [&__roan](const value_type& __cval) 8768: { 8768: auto& __val = const_cast(__cval); 8768: return __roan(std::move_if_noexcept(__val)); 8768: }; 8768: _M_root() = _M_copy(__x, __lbd); 8768: __x.clear(); 8768: } 8768: } 8768: 8768: template 8768: inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: operator=(_Rb_tree&& __x) 8768: noexcept(_Alloc_traits::_S_nothrow_move() 8768: && is_nothrow_move_assignable<_Compare>::value) 8768: { 8768: _M_impl._M_key_compare = std::move(__x._M_impl._M_key_compare); 8768: _M_move_assign(__x, __bool_constant<_Alloc_traits::_S_nothrow_move()>()); 8768: return *this; 8768: } 8768: 8768: template 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_assign_unique(_Iterator __first, _Iterator __last) 8768: { 8768: _Reuse_or_alloc_node __roan(*this); 8768: _M_impl._M_reset(); 8768: for (; __first != __last; ++__first) 8768: _M_insert_unique_(end(), *__first, __roan); 8768: } 8768: 8768: template 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_assign_equal(_Iterator __first, _Iterator __last) 8768: { 8768: _Reuse_or_alloc_node __roan(*this); 8768: _M_impl._M_reset(); 8768: for (; __first != __last; ++__first) 8768: _M_insert_equal_(end(), *__first, __roan); 8768: } 8768: 8768: 8768: template 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: operator=(const _Rb_tree& __x) 8768: { 8768: if (this != &__x) 8768: { 8768: 8768: 8768: if (_Alloc_traits::_S_propagate_on_copy_assign()) 8768: { 8768: auto& __this_alloc = this->_M_get_Node_allocator(); 8768: auto& __that_alloc = __x._M_get_Node_allocator(); 8768: if (!_Alloc_traits::_S_always_equal() 8768: && __this_alloc != __that_alloc) 8768: { 8768: 8768: 8768: clear(); 8768: std::__alloc_on_copy(__this_alloc, __that_alloc); 8768: } 8768: } 8768: 8768: 8768: _Reuse_or_alloc_node __roan(*this); 8768: _M_impl._M_reset(); 8768: _M_impl._M_key_compare = __x._M_impl._M_key_compare; 8768: if (__x._M_root() != 0) 8768: _M_root() = _M_copy(__x, __roan); 8768: } 8768: 8768: return *this; 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: 8768: 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_insert_(_Base_ptr __x, _Base_ptr __p, 8768: 8768: _Arg&& __v, 8768: 8768: 8768: 8768: _NodeGen& __node_gen) 8768: { 8768: bool __insert_left = (__x != 0 || __p == _M_end() 8768: || _M_impl._M_key_compare(_KeyOfValue()(__v), 8768: _S_key(__p))); 8768: 8768: _Link_type __z = __node_gen(std::forward<_Arg>(__v)); 8768: 8768: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8768: this->_M_impl._M_header); 8768: ++_M_impl._M_node_count; 8768: return iterator(__z); 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: 8768: _M_insert_lower(_Base_ptr __p, _Arg&& __v) 8768: 8768: 8768: 8768: { 8768: bool __insert_left = (__p == _M_end() 8768: || !_M_impl._M_key_compare(_S_key(__p), 8768: _KeyOfValue()(__v))); 8768: 8768: _Link_type __z = _M_create_node(std::forward<_Arg>(__v)); 8768: 8768: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8768: this->_M_impl._M_header); 8768: ++_M_impl._M_node_count; 8768: return iterator(__z); 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: 8768: _M_insert_equal_lower(_Arg&& __v) 8768: 8768: 8768: 8768: { 8768: _Link_type __x = _M_begin(); 8768: _Base_ptr __y = _M_end(); 8768: while (__x != 0) 8768: { 8768: __y = __x; 8768: __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ? 8768: _S_left(__x) : _S_right(__x); 8768: } 8768: return _M_insert_lower(__y, std::forward<_Arg>(__v)); 8768: } 8768: 8768: template 8768: template 8768: typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type 8768: _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: 8768: _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen) 8768: { 8768: 8768: _Link_type __top = _M_clone_node(__x, __node_gen); 8768: __top->_M_parent = __p; 8768: 8768: try 8768: { 8768: if (__x->_M_right) 8768: __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen); 8768: __p = __top; 8768: __x = _S_left(__x); 8768: 8768: while (__x != 0) 8768: { 8768: _Link_type __y = _M_clone_node(__x, __node_gen); 8768: __p->_M_left = __y; 8768: __y->_M_parent = __p; 8768: if (__x->_M_right) 8768: __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen); 8768: __p = __y; 8768: __x = _S_left(__x); 8768: } 8768: } 8768: catch(...) 8768: { 8768: _M_erase(__top); 8768: throw; 8768: } 8768: return __top; 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_erase(_Link_type __x) 8768: { 8768: 8768: while (__x != 0) 8768: { 8768: _M_erase(_S_right(__x)); 8768: _Link_type __y = _S_left(__x); 8768: _M_drop_node(__x); 8768: __x = __y; 8768: } 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_lower_bound(_Link_type __x, _Base_ptr __y, 8768: const _Key& __k) 8768: { 8768: while (__x != 0) 8768: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8768: __y = __x, __x = _S_left(__x); 8768: else 8768: __x = _S_right(__x); 8768: return iterator(__y); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::const_iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8768: const _Key& __k) const 8768: { 8768: while (__x != 0) 8768: if (!_M_impl._M_key_compare(_S_key(__x), __k)) 8768: __y = __x, __x = _S_left(__x); 8768: else 8768: __x = _S_right(__x); 8768: return const_iterator(__y); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_upper_bound(_Link_type __x, _Base_ptr __y, 8768: const _Key& __k) 8768: { 8768: while (__x != 0) 8768: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8768: __y = __x, __x = _S_left(__x); 8768: else 8768: __x = _S_right(__x); 8768: return iterator(__y); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::const_iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y, 8768: const _Key& __k) const 8768: { 8768: while (__x != 0) 8768: if (_M_impl._M_key_compare(__k, _S_key(__x))) 8768: __y = __x, __x = _S_left(__x); 8768: else 8768: __x = _S_right(__x); 8768: return const_iterator(__y); 8768: } 8768: 8768: template 8768: pair::iterator, 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::iterator> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: equal_range(const _Key& __k) 8768: { 8768: _Link_type __x = _M_begin(); 8768: _Base_ptr __y = _M_end(); 8768: while (__x != 0) 8768: { 8768: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8768: __x = _S_right(__x); 8768: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8768: __y = __x, __x = _S_left(__x); 8768: else 8768: { 8768: _Link_type __xu(__x); 8768: _Base_ptr __yu(__y); 8768: __y = __x, __x = _S_left(__x); 8768: __xu = _S_right(__xu); 8768: return pair(_M_lower_bound(__x, __y, __k), 8768: _M_upper_bound(__xu, __yu, __k)); 8768: } 8768: } 8768: return pair(iterator(__y), 8768: iterator(__y)); 8768: } 8768: 8768: template 8768: pair::const_iterator, 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::const_iterator> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: equal_range(const _Key& __k) const 8768: { 8768: _Const_Link_type __x = _M_begin(); 8768: _Const_Base_ptr __y = _M_end(); 8768: while (__x != 0) 8768: { 8768: if (_M_impl._M_key_compare(_S_key(__x), __k)) 8768: __x = _S_right(__x); 8768: else if (_M_impl._M_key_compare(__k, _S_key(__x))) 8768: __y = __x, __x = _S_left(__x); 8768: else 8768: { 8768: _Const_Link_type __xu(__x); 8768: _Const_Base_ptr __yu(__y); 8768: __y = __x, __x = _S_left(__x); 8768: __xu = _S_right(__xu); 8768: return pair(_M_lower_bound(__x, __y, __k), 8768: _M_upper_bound(__xu, __yu, __k)); 8768: } 8768: } 8768: return pair(const_iterator(__y), 8768: const_iterator(__y)); 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: swap(_Rb_tree& __t) 8768: noexcept(__is_nothrow_swappable<_Compare>::value) 8768: { 8768: if (_M_root() == 0) 8768: { 8768: if (__t._M_root() != 0) 8768: _M_impl._M_move_data(__t._M_impl); 8768: } 8768: else if (__t._M_root() == 0) 8768: __t._M_impl._M_move_data(_M_impl); 8768: else 8768: { 8768: std::swap(_M_root(),__t._M_root()); 8768: std::swap(_M_leftmost(),__t._M_leftmost()); 8768: std::swap(_M_rightmost(),__t._M_rightmost()); 8768: 8768: _M_root()->_M_parent = _M_end(); 8768: __t._M_root()->_M_parent = __t._M_end(); 8768: std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); 8768: } 8768: 8768: std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); 8768: 8768: _Alloc_traits::_S_on_swap(_M_get_Node_allocator(), 8768: __t._M_get_Node_allocator()); 8768: } 8768: 8768: template 8768: pair::_Base_ptr, 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::_Base_ptr> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_get_insert_unique_pos(const key_type& __k) 8768: { 8768: typedef pair<_Base_ptr, _Base_ptr> _Res; 8768: _Link_type __x = _M_begin(); 8768: _Base_ptr __y = _M_end(); 8768: bool __comp = true; 8768: while (__x != 0) 8768: { 8768: __y = __x; 8768: __comp = _M_impl._M_key_compare(__k, _S_key(__x)); 8768: __x = __comp ? _S_left(__x) : _S_right(__x); 8768: } 8768: iterator __j = iterator(__y); 8768: if (__comp) 8768: { 8768: if (__j == begin()) 8768: return _Res(__x, __y); 8768: else 8768: --__j; 8768: } 8768: if (_M_impl._M_key_compare(_S_key(__j._M_node), __k)) 8768: return _Res(__x, __y); 8768: return _Res(__j._M_node, 0); 8768: } 8768: 8768: template 8768: pair::_Base_ptr, 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::_Base_ptr> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_get_insert_equal_pos(const key_type& __k) 8768: { 8768: typedef pair<_Base_ptr, _Base_ptr> _Res; 8768: _Link_type __x = _M_begin(); 8768: _Base_ptr __y = _M_end(); 8768: while (__x != 0) 8768: { 8768: __y = __x; 8768: __x = _M_impl._M_key_compare(__k, _S_key(__x)) ? 8768: _S_left(__x) : _S_right(__x); 8768: } 8768: return _Res(__x, __y); 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: pair::iterator, bool> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: 8768: _M_insert_unique(_Arg&& __v) 8768: 8768: 8768: 8768: { 8768: typedef pair _Res; 8768: pair<_Base_ptr, _Base_ptr> __res 8768: = _M_get_insert_unique_pos(_KeyOfValue()(__v)); 8768: 8768: if (__res.second) 8768: { 8768: _Alloc_node __an(*this); 8768: return _Res(_M_insert_(__res.first, __res.second, 8768: std::forward<_Arg>(__v), __an), 8768: true); 8768: } 8768: 8768: return _Res(iterator(__res.first), false); 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: 8768: _M_insert_equal(_Arg&& __v) 8768: 8768: 8768: 8768: { 8768: pair<_Base_ptr, _Base_ptr> __res 8768: = _M_get_insert_equal_pos(_KeyOfValue()(__v)); 8768: _Alloc_node __an(*this); 8768: return _M_insert_(__res.first, __res.second, 8768: std::forward<_Arg>(__v), __an); 8768: } 8768: 8768: template 8768: pair::_Base_ptr, 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::_Base_ptr> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_get_insert_hint_unique_pos(const_iterator __position, 8768: const key_type& __k) 8768: { 8768: iterator __pos = __position._M_const_cast(); 8768: typedef pair<_Base_ptr, _Base_ptr> _Res; 8768: 8768: 8768: if (__pos._M_node == _M_end()) 8768: { 8768: if (size() > 0 8768: && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k)) 8768: return _Res(0, _M_rightmost()); 8768: else 8768: return _M_get_insert_unique_pos(__k); 8768: } 8768: else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node))) 8768: { 8768: 8768: iterator __before = __pos; 8768: if (__pos._M_node == _M_leftmost()) 8768: return _Res(_M_leftmost(), _M_leftmost()); 8768: else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k)) 8768: { 8768: if (_S_right(__before._M_node) == 0) 8768: return _Res(0, __before._M_node); 8768: else 8768: return _Res(__pos._M_node, __pos._M_node); 8768: } 8768: else 8768: return _M_get_insert_unique_pos(__k); 8768: } 8768: else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8768: { 8768: 8768: iterator __after = __pos; 8768: if (__pos._M_node == _M_rightmost()) 8768: return _Res(0, _M_rightmost()); 8768: else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node))) 8768: { 8768: if (_S_right(__pos._M_node) == 0) 8768: return _Res(0, __pos._M_node); 8768: else 8768: return _Res(__after._M_node, __after._M_node); 8768: } 8768: else 8768: return _M_get_insert_unique_pos(__k); 8768: } 8768: else 8768: 8768: return _Res(__pos._M_node, 0); 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: 8768: 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_insert_unique_(const_iterator __position, 8768: 8768: _Arg&& __v, 8768: 8768: 8768: 8768: _NodeGen& __node_gen) 8768: { 8768: pair<_Base_ptr, _Base_ptr> __res 8768: = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v)); 8768: 8768: if (__res.second) 8768: return _M_insert_(__res.first, __res.second, 8768: std::forward<_Arg>(__v), 8768: __node_gen); 8768: return iterator(__res.first); 8768: } 8768: 8768: template 8768: pair::_Base_ptr, 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::_Base_ptr> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k) 8768: { 8768: iterator __pos = __position._M_const_cast(); 8768: typedef pair<_Base_ptr, _Base_ptr> _Res; 8768: 8768: 8768: if (__pos._M_node == _M_end()) 8768: { 8768: if (size() > 0 8768: && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost()))) 8768: return _Res(0, _M_rightmost()); 8768: else 8768: return _M_get_insert_equal_pos(__k); 8768: } 8768: else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k)) 8768: { 8768: 8768: iterator __before = __pos; 8768: if (__pos._M_node == _M_leftmost()) 8768: return _Res(_M_leftmost(), _M_leftmost()); 8768: else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node))) 8768: { 8768: if (_S_right(__before._M_node) == 0) 8768: return _Res(0, __before._M_node); 8768: else 8768: return _Res(__pos._M_node, __pos._M_node); 8768: } 8768: else 8768: return _M_get_insert_equal_pos(__k); 8768: } 8768: else 8768: { 8768: 8768: iterator __after = __pos; 8768: if (__pos._M_node == _M_rightmost()) 8768: return _Res(0, _M_rightmost()); 8768: else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k)) 8768: { 8768: if (_S_right(__pos._M_node) == 0) 8768: return _Res(0, __pos._M_node); 8768: else 8768: return _Res(__after._M_node, __after._M_node); 8768: } 8768: else 8768: return _Res(0, 0); 8768: } 8768: } 8768: 8768: template 8768: 8768: template 8768: 8768: 8768: 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_insert_equal_(const_iterator __position, 8768: 8768: _Arg&& __v, 8768: 8768: 8768: 8768: _NodeGen& __node_gen) 8768: { 8768: pair<_Base_ptr, _Base_ptr> __res 8768: = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v)); 8768: 8768: if (__res.second) 8768: return _M_insert_(__res.first, __res.second, 8768: std::forward<_Arg>(__v), 8768: __node_gen); 8768: 8768: return _M_insert_equal_lower(std::forward<_Arg>(__v)); 8768: } 8768: 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z) 8768: { 8768: bool __insert_left = (__x != 0 || __p == _M_end() 8768: || _M_impl._M_key_compare(_S_key(__z), 8768: _S_key(__p))); 8768: 8768: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8768: this->_M_impl._M_header); 8768: ++_M_impl._M_node_count; 8768: return iterator(__z); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_insert_lower_node(_Base_ptr __p, _Link_type __z) 8768: { 8768: bool __insert_left = (__p == _M_end() 8768: || !_M_impl._M_key_compare(_S_key(__p), 8768: _S_key(__z))); 8768: 8768: _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, 8768: this->_M_impl._M_header); 8768: ++_M_impl._M_node_count; 8768: return iterator(__z); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_insert_equal_lower_node(_Link_type __z) 8768: { 8768: _Link_type __x = _M_begin(); 8768: _Base_ptr __y = _M_end(); 8768: while (__x != 0) 8768: { 8768: __y = __x; 8768: __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ? 8768: _S_left(__x) : _S_right(__x); 8768: } 8768: return _M_insert_lower_node(__y, __z); 8768: } 8768: 8768: template 8768: template 8768: pair::iterator, bool> 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_emplace_unique(_Args&&... __args) 8768: { 8768: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8768: 8768: try 8768: { 8768: typedef pair _Res; 8768: auto __res = _M_get_insert_unique_pos(_S_key(__z)); 8768: if (__res.second) 8768: return _Res(_M_insert_node(__res.first, __res.second, __z), true); 8768: 8768: _M_drop_node(__z); 8768: return _Res(iterator(__res.first), false); 8768: } 8768: catch(...) 8768: { 8768: _M_drop_node(__z); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_emplace_equal(_Args&&... __args) 8768: { 8768: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8768: 8768: try 8768: { 8768: auto __res = _M_get_insert_equal_pos(_S_key(__z)); 8768: return _M_insert_node(__res.first, __res.second, __z); 8768: } 8768: catch(...) 8768: { 8768: _M_drop_node(__z); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args) 8768: { 8768: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8768: 8768: try 8768: { 8768: auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z)); 8768: 8768: if (__res.second) 8768: return _M_insert_node(__res.first, __res.second, __z); 8768: 8768: _M_drop_node(__z); 8768: return iterator(__res.first); 8768: } 8768: catch(...) 8768: { 8768: _M_drop_node(__z); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args) 8768: { 8768: _Link_type __z = _M_create_node(std::forward<_Args>(__args)...); 8768: 8768: try 8768: { 8768: auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z)); 8768: 8768: if (__res.second) 8768: return _M_insert_node(__res.first, __res.second, __z); 8768: 8768: return _M_insert_equal_lower_node(__z); 8768: } 8768: catch(...) 8768: { 8768: _M_drop_node(__z); 8768: throw; 8768: } 8768: } 8768: 8768: 8768: template 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8768: _M_insert_unique(_II __first, _II __last) 8768: { 8768: _Alloc_node __an(*this); 8768: for (; __first != __last; ++__first) 8768: _M_insert_unique_(end(), *__first, __an); 8768: } 8768: 8768: template 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: 8768: _M_insert_equal(_II __first, _II __last) 8768: { 8768: _Alloc_node __an(*this); 8768: for (; __first != __last; ++__first) 8768: _M_insert_equal_(end(), *__first, __an); 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_erase_aux(const_iterator __position) 8768: { 8768: _Link_type __y = 8768: static_cast<_Link_type>(_Rb_tree_rebalance_for_erase 8768: (const_cast<_Base_ptr>(__position._M_node), 8768: this->_M_impl._M_header)); 8768: _M_drop_node(__y); 8768: --_M_impl._M_node_count; 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: _M_erase_aux(const_iterator __first, const_iterator __last) 8768: { 8768: if (__first == begin() && __last == end()) 8768: clear(); 8768: else 8768: while (__first != __last) 8768: _M_erase_aux(__first++); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: erase(const _Key& __x) 8768: { 8768: pair __p = equal_range(__x); 8768: const size_type __old_size = size(); 8768: _M_erase_aux(__p.first, __p.second); 8768: return __old_size - size(); 8768: } 8768: 8768: template 8768: void 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: erase(const _Key* __first, const _Key* __last) 8768: { 8768: while (__first != __last) 8768: erase(*__first++); 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: find(const _Key& __k) 8768: { 8768: iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8768: return (__j == end() 8768: || _M_impl._M_key_compare(__k, 8768: _S_key(__j._M_node))) ? end() : __j; 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, 8768: _Compare, _Alloc>::const_iterator 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: find(const _Key& __k) const 8768: { 8768: const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k); 8768: return (__j == end() 8768: || _M_impl._M_key_compare(__k, 8768: _S_key(__j._M_node))) ? end() : __j; 8768: } 8768: 8768: template 8768: typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type 8768: _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: 8768: count(const _Key& __k) const 8768: { 8768: pair __p = equal_range(__k); 8768: const size_type __n = std::distance(__p.first, __p.second); 8768: return __n; 8768: } 8768: 8768: __attribute__ ((__pure__)) unsigned int 8768: _Rb_tree_black_count(const _Rb_tree_node_base* __node, 8768: const _Rb_tree_node_base* __root) throw (); 8768: 8768: template 8768: bool 8768: _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const 8768: { 8768: if (_M_impl._M_node_count == 0 || begin() == end()) 8768: return _M_impl._M_node_count == 0 && begin() == end() 8768: && this->_M_impl._M_header._M_left == _M_end() 8768: && this->_M_impl._M_header._M_right == _M_end(); 8768: 8768: unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); 8768: for (const_iterator __it = begin(); __it != end(); ++__it) 8768: { 8768: _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); 8768: _Const_Link_type __L = _S_left(__x); 8768: _Const_Link_type __R = _S_right(__x); 8768: 8768: if (__x->_M_color == _S_red) 8768: if ((__L && __L->_M_color == _S_red) 8768: || (__R && __R->_M_color == _S_red)) 8768: return false; 8768: 8768: if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) 8768: return false; 8768: if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) 8768: return false; 8768: 8768: if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) 8768: return false; 8768: } 8768: 8768: if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) 8768: return false; 8768: if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) 8768: return false; 8768: return true; 8768: } 8768: # 2627 "/usr/include/c++/8/bits/stl_tree.h" 3 8768: 8768: } 8768: # 61 "/usr/include/c++/8/map" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_map.h" 1 3 8768: # 63 "/usr/include/c++/8/bits/stl_map.h" 3 8768: # 1 "/usr/include/c++/8/tuple" 1 3 8768: # 32 "/usr/include/c++/8/tuple" 3 8768: 8768: # 33 "/usr/include/c++/8/tuple" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/array" 1 3 8768: # 32 "/usr/include/c++/8/array" 3 8768: 8768: # 33 "/usr/include/c++/8/array" 3 8768: # 43 "/usr/include/c++/8/array" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: template 8768: struct __array_traits 8768: { 8768: typedef _Tp _Type[_Nm]; 8768: typedef __is_swappable<_Tp> _Is_swappable; 8768: typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable; 8768: 8768: static constexpr _Tp& 8768: _S_ref(const _Type& __t, std::size_t __n) noexcept 8768: { return const_cast<_Tp&>(__t[__n]); } 8768: 8768: static constexpr _Tp* 8768: _S_ptr(const _Type& __t) noexcept 8768: { return const_cast<_Tp*>(__t); } 8768: }; 8768: 8768: template 8768: struct __array_traits<_Tp, 0> 8768: { 8768: struct _Type { }; 8768: typedef true_type _Is_swappable; 8768: typedef true_type _Is_nothrow_swappable; 8768: 8768: static constexpr _Tp& 8768: _S_ref(const _Type&, std::size_t) noexcept 8768: { return *static_cast<_Tp*>(nullptr); } 8768: 8768: static constexpr _Tp* 8768: _S_ptr(const _Type&) noexcept 8768: { return nullptr; } 8768: }; 8768: # 93 "/usr/include/c++/8/array" 3 8768: template 8768: struct array 8768: { 8768: typedef _Tp value_type; 8768: typedef value_type* pointer; 8768: typedef const value_type* const_pointer; 8768: typedef value_type& reference; 8768: typedef const value_type& const_reference; 8768: typedef value_type* iterator; 8768: typedef const value_type* const_iterator; 8768: typedef std::size_t size_type; 8768: typedef std::ptrdiff_t difference_type; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: 8768: 8768: typedef std::__array_traits<_Tp, _Nm> _AT_Type; 8768: typename _AT_Type::_Type _M_elems; 8768: 8768: 8768: 8768: 8768: void 8768: fill(const value_type& __u) 8768: { std::fill_n(begin(), size(), __u); } 8768: 8768: void 8768: swap(array& __other) 8768: noexcept(_AT_Type::_Is_nothrow_swappable::value) 8768: { std::swap_ranges(begin(), end(), __other.begin()); } 8768: 8768: 8768: iterator 8768: begin() noexcept 8768: { return iterator(data()); } 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return const_iterator(data()); } 8768: 8768: iterator 8768: end() noexcept 8768: { return iterator(data() + _Nm); } 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return const_iterator(data() + _Nm); } 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return reverse_iterator(end()); } 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return reverse_iterator(begin()); } 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return const_iterator(data()); } 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return const_iterator(data() + _Nm); } 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return const_reverse_iterator(end()); } 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: constexpr size_type 8768: size() const noexcept { return _Nm; } 8768: 8768: constexpr size_type 8768: max_size() const noexcept { return _Nm; } 8768: 8768: constexpr bool 8768: empty() const noexcept { return size() == 0; } 8768: 8768: 8768: reference 8768: operator[](size_type __n) noexcept 8768: { return _AT_Type::_S_ref(_M_elems, __n); } 8768: 8768: constexpr const_reference 8768: operator[](size_type __n) const noexcept 8768: { return _AT_Type::_S_ref(_M_elems, __n); } 8768: 8768: reference 8768: at(size_type __n) 8768: { 8768: if (__n >= _Nm) 8768: std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8768: , 8768: __n, _Nm); 8768: return _AT_Type::_S_ref(_M_elems, __n); 8768: } 8768: 8768: constexpr const_reference 8768: at(size_type __n) const 8768: { 8768: 8768: 8768: return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n) 8768: : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)") 8768: , 8768: __n, _Nm), 8768: _AT_Type::_S_ref(_M_elems, 0)); 8768: } 8768: 8768: reference 8768: front() noexcept 8768: { return *begin(); } 8768: 8768: constexpr const_reference 8768: front() const noexcept 8768: { return _AT_Type::_S_ref(_M_elems, 0); } 8768: 8768: reference 8768: back() noexcept 8768: { return _Nm ? *(end() - 1) : *end(); } 8768: 8768: constexpr const_reference 8768: back() const noexcept 8768: { 8768: return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1) 8768: : _AT_Type::_S_ref(_M_elems, 0); 8768: } 8768: 8768: pointer 8768: data() noexcept 8768: { return _AT_Type::_S_ptr(_M_elems); } 8768: 8768: const_pointer 8768: data() const noexcept 8768: { return _AT_Type::_S_ptr(_M_elems); } 8768: }; 8768: # 250 "/usr/include/c++/8/array" 3 8768: template 8768: inline bool 8768: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8768: 8768: template 8768: inline bool 8768: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return !(__one == __two); } 8768: 8768: template 8768: inline bool 8768: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8768: { 8768: return std::lexicographical_compare(__a.begin(), __a.end(), 8768: __b.begin(), __b.end()); 8768: } 8768: 8768: template 8768: inline bool 8768: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return __two < __one; } 8768: 8768: template 8768: inline bool 8768: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return !(__one > __two); } 8768: 8768: template 8768: inline bool 8768: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return !(__one < __two); } 8768: 8768: 8768: template 8768: inline 8768: 8768: 8768: typename enable_if< 8768: std::__array_traits<_Tp, _Nm>::_Is_swappable::value 8768: >::type 8768: 8768: 8768: 8768: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8768: noexcept(noexcept(__one.swap(__two))) 8768: { __one.swap(__two); } 8768: 8768: 8768: template 8768: typename enable_if< 8768: !std::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type 8768: swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete; 8768: 8768: 8768: template 8768: constexpr _Tp& 8768: get(array<_Tp, _Nm>& __arr) noexcept 8768: { 8768: static_assert(_Int < _Nm, "array index is within bounds"); 8768: return std::__array_traits<_Tp, _Nm>:: 8768: _S_ref(__arr._M_elems, _Int); 8768: } 8768: 8768: template 8768: constexpr _Tp&& 8768: get(array<_Tp, _Nm>&& __arr) noexcept 8768: { 8768: static_assert(_Int < _Nm, "array index is within bounds"); 8768: return std::move(std::get<_Int>(__arr)); 8768: } 8768: 8768: template 8768: constexpr const _Tp& 8768: get(const array<_Tp, _Nm>& __arr) noexcept 8768: { 8768: static_assert(_Int < _Nm, "array index is within bounds"); 8768: return std::__array_traits<_Tp, _Nm>:: 8768: _S_ref(__arr._M_elems, _Int); 8768: } 8768: 8768: template 8768: constexpr const _Tp&& 8768: get(const array<_Tp, _Nm>&& __arr) noexcept 8768: { 8768: static_assert(_Int < _Nm, "array index is within bounds"); 8768: return std::move(std::get<_Int>(__arr)); 8768: } 8768: 8768: 8768: } 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct tuple_size; 8768: 8768: 8768: template 8768: struct tuple_size> 8768: : public integral_constant { }; 8768: 8768: 8768: template 8768: struct tuple_element; 8768: 8768: 8768: template 8768: struct tuple_element<_Int, std::array<_Tp, _Nm>> 8768: { 8768: static_assert(_Int < _Nm, "index is out of bounds"); 8768: typedef _Tp type; 8768: }; 8768: 8768: template 8768: struct __is_tuple_like_impl> : true_type 8768: { }; 8768: 8768: 8768: } 8768: # 40 "/usr/include/c++/8/tuple" 2 3 8768: # 1 "/usr/include/c++/8/bits/uses_allocator.h" 1 3 8768: # 35 "/usr/include/c++/8/bits/uses_allocator.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: struct __erased_type { }; 8768: 8768: template 8768: using __is_erased_or_convertible 8768: = __or_, is_convertible<_Alloc, _Tp>>; 8768: 8768: 8768: struct allocator_arg_t { explicit allocator_arg_t() = default; }; 8768: 8768: constexpr allocator_arg_t allocator_arg = 8768: allocator_arg_t(); 8768: 8768: template> 8768: struct __uses_allocator_helper 8768: : false_type { }; 8768: 8768: template 8768: struct __uses_allocator_helper<_Tp, _Alloc, 8768: __void_t> 8768: : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type 8768: { }; 8768: 8768: 8768: template 8768: struct uses_allocator 8768: : __uses_allocator_helper<_Tp, _Alloc>::type 8768: { }; 8768: 8768: struct __uses_alloc_base { }; 8768: 8768: struct __uses_alloc0 : __uses_alloc_base 8768: { 8768: struct _Sink { void operator=(const void*) { } } _M_a; 8768: }; 8768: 8768: template 8768: struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; }; 8768: 8768: template 8768: struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; }; 8768: 8768: template 8768: struct __uses_alloc; 8768: 8768: template 8768: struct __uses_alloc 8768: : conditional< 8768: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value, 8768: __uses_alloc1<_Alloc>, 8768: __uses_alloc2<_Alloc>>::type 8768: { 8768: static_assert(__or_< 8768: is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>, 8768: is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with" 8768: " an allocator must be possible if uses_allocator is true"); 8768: }; 8768: 8768: template 8768: struct __uses_alloc 8768: : __uses_alloc0 { }; 8768: 8768: template 8768: using __uses_alloc_t = 8768: __uses_alloc::value, _Tp, _Alloc, _Args...>; 8768: 8768: template 8768: inline __uses_alloc_t<_Tp, _Alloc, _Args...> 8768: __use_alloc(const _Alloc& __a) 8768: { 8768: __uses_alloc_t<_Tp, _Alloc, _Args...> __ret; 8768: __ret._M_a = std::__addressof(__a); 8768: return __ret; 8768: } 8768: 8768: template 8768: void 8768: __use_alloc(const _Alloc&&) = delete; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template class _Predicate, 8768: typename _Tp, typename _Alloc, typename... _Args> 8768: struct __is_uses_allocator_predicate 8768: : conditional::value, 8768: __or_<_Predicate<_Tp, allocator_arg_t, _Alloc, _Args...>, 8768: _Predicate<_Tp, _Args..., _Alloc>>, 8768: _Predicate<_Tp, _Args...>>::type { }; 8768: 8768: template 8768: struct __is_uses_allocator_constructible 8768: : __is_uses_allocator_predicate 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_nothrow_uses_allocator_constructible 8768: : __is_uses_allocator_predicate 8768: { }; 8768: # 156 "/usr/include/c++/8/bits/uses_allocator.h" 3 8768: template 8768: void __uses_allocator_construct_impl(__uses_alloc0 __a, _Tp* __ptr, 8768: _Args&&... __args) 8768: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)...); } 8768: 8768: template 8768: void __uses_allocator_construct_impl(__uses_alloc1<_Alloc> __a, _Tp* __ptr, 8768: _Args&&... __args) 8768: { 8768: ::new ((void*)__ptr) _Tp(allocator_arg, *__a._M_a, 8768: std::forward<_Args>(__args)...); 8768: } 8768: 8768: template 8768: void __uses_allocator_construct_impl(__uses_alloc2<_Alloc> __a, _Tp* __ptr, 8768: _Args&&... __args) 8768: { ::new ((void*)__ptr) _Tp(std::forward<_Args>(__args)..., *__a._M_a); } 8768: 8768: template 8768: void __uses_allocator_construct(const _Alloc& __a, _Tp* __ptr, 8768: _Args&&... __args) 8768: { 8768: __uses_allocator_construct_impl(__use_alloc<_Tp, _Alloc, _Args...>(__a), 8768: __ptr, std::forward<_Args>(__args)...); 8768: } 8768: 8768: 8768: } 8768: # 41 "/usr/include/c++/8/tuple" 2 3 8768: # 1 "/usr/include/c++/8/bits/invoke.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/invoke.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/invoke.h" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 52 "/usr/include/c++/8/bits/invoke.h" 3 8768: template::type> 8768: constexpr _Up&& 8768: __invfwd(typename remove_reference<_Tp>::type& __t) noexcept 8768: { return static_cast<_Up&&>(__t); } 8768: 8768: template 8768: constexpr _Res 8768: __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args) 8768: { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); } 8768: 8768: template 8768: constexpr _Res 8768: __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t, 8768: _Args&&... __args) 8768: { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); } 8768: 8768: template 8768: constexpr _Res 8768: __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t, 8768: _Args&&... __args) 8768: { 8768: return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...); 8768: } 8768: 8768: template 8768: constexpr _Res 8768: __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t) 8768: { return __invfwd<_Tp>(__t).*__f; } 8768: 8768: template 8768: constexpr _Res 8768: __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t) 8768: { return (*std::forward<_Tp>(__t)).*__f; } 8768: 8768: 8768: template 8768: constexpr typename __invoke_result<_Callable, _Args...>::type 8768: __invoke(_Callable&& __fn, _Args&&... __args) 8768: noexcept(__is_nothrow_invocable<_Callable, _Args...>::value) 8768: { 8768: using __result = __invoke_result<_Callable, _Args...>; 8768: using __type = typename __result::type; 8768: using __tag = typename __result::__invoke_type; 8768: return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn), 8768: std::forward<_Args>(__args)...); 8768: } 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/tuple" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class tuple; 8768: 8768: template 8768: struct __is_empty_non_tuple : is_empty<_Tp> { }; 8768: 8768: 8768: template 8768: struct __is_empty_non_tuple> : false_type { }; 8768: 8768: 8768: template 8768: using __empty_not_final 8768: = typename conditional<__is_final(_Tp), false_type, 8768: __is_empty_non_tuple<_Tp>>::type; 8768: 8768: template::value> 8768: struct _Head_base; 8768: 8768: template 8768: struct _Head_base<_Idx, _Head, true> 8768: : public _Head 8768: { 8768: constexpr _Head_base() 8768: : _Head() { } 8768: 8768: constexpr _Head_base(const _Head& __h) 8768: : _Head(__h) { } 8768: 8768: constexpr _Head_base(const _Head_base&) = default; 8768: constexpr _Head_base(_Head_base&&) = default; 8768: 8768: template 8768: constexpr _Head_base(_UHead&& __h) 8768: : _Head(std::forward<_UHead>(__h)) { } 8768: 8768: _Head_base(allocator_arg_t, __uses_alloc0) 8768: : _Head() { } 8768: 8768: template 8768: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8768: : _Head(allocator_arg, *__a._M_a) { } 8768: 8768: template 8768: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8768: : _Head(*__a._M_a) { } 8768: 8768: template 8768: _Head_base(__uses_alloc0, _UHead&& __uhead) 8768: : _Head(std::forward<_UHead>(__uhead)) { } 8768: 8768: template 8768: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8768: : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { } 8768: 8768: template 8768: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8768: : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { } 8768: 8768: static constexpr _Head& 8768: _M_head(_Head_base& __b) noexcept { return __b; } 8768: 8768: static constexpr const _Head& 8768: _M_head(const _Head_base& __b) noexcept { return __b; } 8768: }; 8768: 8768: template 8768: struct _Head_base<_Idx, _Head, false> 8768: { 8768: constexpr _Head_base() 8768: : _M_head_impl() { } 8768: 8768: constexpr _Head_base(const _Head& __h) 8768: : _M_head_impl(__h) { } 8768: 8768: constexpr _Head_base(const _Head_base&) = default; 8768: constexpr _Head_base(_Head_base&&) = default; 8768: 8768: template 8768: constexpr _Head_base(_UHead&& __h) 8768: : _M_head_impl(std::forward<_UHead>(__h)) { } 8768: 8768: _Head_base(allocator_arg_t, __uses_alloc0) 8768: : _M_head_impl() { } 8768: 8768: template 8768: _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a) 8768: : _M_head_impl(allocator_arg, *__a._M_a) { } 8768: 8768: template 8768: _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a) 8768: : _M_head_impl(*__a._M_a) { } 8768: 8768: template 8768: _Head_base(__uses_alloc0, _UHead&& __uhead) 8768: : _M_head_impl(std::forward<_UHead>(__uhead)) { } 8768: 8768: template 8768: _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead) 8768: : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) 8768: { } 8768: 8768: template 8768: _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead) 8768: : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { } 8768: 8768: static constexpr _Head& 8768: _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; } 8768: 8768: static constexpr const _Head& 8768: _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; } 8768: 8768: _Head _M_head_impl; 8768: }; 8768: # 176 "/usr/include/c++/8/tuple" 3 8768: template 8768: struct _Tuple_impl; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _Tuple_impl<_Idx, _Head, _Tail...> 8768: : public _Tuple_impl<_Idx + 1, _Tail...>, 8768: private _Head_base<_Idx, _Head> 8768: { 8768: template friend class _Tuple_impl; 8768: 8768: typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited; 8768: typedef _Head_base<_Idx, _Head> _Base; 8768: 8768: static constexpr _Head& 8768: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8768: 8768: static constexpr const _Head& 8768: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8768: 8768: static constexpr _Inherited& 8768: _M_tail(_Tuple_impl& __t) noexcept { return __t; } 8768: 8768: static constexpr const _Inherited& 8768: _M_tail(const _Tuple_impl& __t) noexcept { return __t; } 8768: 8768: constexpr _Tuple_impl() 8768: : _Inherited(), _Base() { } 8768: 8768: explicit 8768: constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail) 8768: : _Inherited(__tail...), _Base(__head) { } 8768: 8768: template::type> 8768: explicit 8768: constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail) 8768: : _Inherited(std::forward<_UTail>(__tail)...), 8768: _Base(std::forward<_UHead>(__head)) { } 8768: 8768: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8768: 8768: constexpr 8768: _Tuple_impl(_Tuple_impl&& __in) 8768: noexcept(__and_, 8768: is_nothrow_move_constructible<_Inherited>>::value) 8768: : _Inherited(std::move(_M_tail(__in))), 8768: _Base(std::forward<_Head>(_M_head(__in))) { } 8768: 8768: template 8768: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in) 8768: : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8768: _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8768: 8768: template 8768: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8768: : _Inherited(std::move 8768: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8768: _Base(std::forward<_UHead> 8768: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8768: : _Inherited(__tag, __a), 8768: _Base(__tag, __use_alloc<_Head>(__a)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Head& __head, const _Tail&... __tail) 8768: : _Inherited(__tag, __a, __tail...), 8768: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8768: 8768: template::type> 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: _UHead&& __head, _UTail&&... __tail) 8768: : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...), 8768: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8768: std::forward<_UHead>(__head)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Tuple_impl& __in) 8768: : _Inherited(__tag, __a, _M_tail(__in)), 8768: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: _Tuple_impl&& __in) 8768: : _Inherited(__tag, __a, std::move(_M_tail(__in))), 8768: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8768: std::forward<_Head>(_M_head(__in))) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Tuple_impl<_Idx, _UElements...>& __in) 8768: : _Inherited(__tag, __a, 8768: _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)), 8768: _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8768: _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: _Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8768: : _Inherited(__tag, __a, std::move 8768: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))), 8768: _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8768: std::forward<_UHead> 8768: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { } 8768: 8768: _Tuple_impl& 8768: operator=(const _Tuple_impl& __in) 8768: { 8768: _M_head(*this) = _M_head(__in); 8768: _M_tail(*this) = _M_tail(__in); 8768: return *this; 8768: } 8768: 8768: _Tuple_impl& 8768: operator=(_Tuple_impl&& __in) 8768: noexcept(__and_, 8768: is_nothrow_move_assignable<_Inherited>>::value) 8768: { 8768: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8768: _M_tail(*this) = std::move(_M_tail(__in)); 8768: return *this; 8768: } 8768: 8768: template 8768: _Tuple_impl& 8768: operator=(const _Tuple_impl<_Idx, _UElements...>& __in) 8768: { 8768: _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in); 8768: _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in); 8768: return *this; 8768: } 8768: 8768: template 8768: _Tuple_impl& 8768: operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in) 8768: { 8768: _M_head(*this) = std::forward<_UHead> 8768: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in)); 8768: _M_tail(*this) = std::move 8768: (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in)); 8768: return *this; 8768: } 8768: 8768: protected: 8768: void 8768: _M_swap(_Tuple_impl& __in) 8768: noexcept(__is_nothrow_swappable<_Head>::value 8768: && noexcept(_M_tail(__in)._M_swap(_M_tail(__in)))) 8768: { 8768: using std::swap; 8768: swap(_M_head(*this), _M_head(__in)); 8768: _Inherited::_M_swap(_M_tail(__in)); 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct _Tuple_impl<_Idx, _Head> 8768: : private _Head_base<_Idx, _Head> 8768: { 8768: template friend class _Tuple_impl; 8768: 8768: typedef _Head_base<_Idx, _Head> _Base; 8768: 8768: static constexpr _Head& 8768: _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8768: 8768: static constexpr const _Head& 8768: _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); } 8768: 8768: constexpr _Tuple_impl() 8768: : _Base() { } 8768: 8768: explicit 8768: constexpr _Tuple_impl(const _Head& __head) 8768: : _Base(__head) { } 8768: 8768: template 8768: explicit 8768: constexpr _Tuple_impl(_UHead&& __head) 8768: : _Base(std::forward<_UHead>(__head)) { } 8768: 8768: constexpr _Tuple_impl(const _Tuple_impl&) = default; 8768: 8768: constexpr 8768: _Tuple_impl(_Tuple_impl&& __in) 8768: noexcept(is_nothrow_move_constructible<_Head>::value) 8768: : _Base(std::forward<_Head>(_M_head(__in))) { } 8768: 8768: template 8768: constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in) 8768: : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8768: 8768: template 8768: constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in) 8768: : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8768: { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a) 8768: : _Base(__tag, __use_alloc<_Head>(__a)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Head& __head) 8768: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: _UHead&& __head) 8768: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8768: std::forward<_UHead>(__head)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Tuple_impl& __in) 8768: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: _Tuple_impl&& __in) 8768: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8768: std::forward<_Head>(_M_head(__in))) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Tuple_impl<_Idx, _UHead>& __in) 8768: : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), 8768: _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { } 8768: 8768: template 8768: _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a, 8768: _Tuple_impl<_Idx, _UHead>&& __in) 8768: : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a), 8768: std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in))) 8768: { } 8768: 8768: _Tuple_impl& 8768: operator=(const _Tuple_impl& __in) 8768: { 8768: _M_head(*this) = _M_head(__in); 8768: return *this; 8768: } 8768: 8768: _Tuple_impl& 8768: operator=(_Tuple_impl&& __in) 8768: noexcept(is_nothrow_move_assignable<_Head>::value) 8768: { 8768: _M_head(*this) = std::forward<_Head>(_M_head(__in)); 8768: return *this; 8768: } 8768: 8768: template 8768: _Tuple_impl& 8768: operator=(const _Tuple_impl<_Idx, _UHead>& __in) 8768: { 8768: _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in); 8768: return *this; 8768: } 8768: 8768: template 8768: _Tuple_impl& 8768: operator=(_Tuple_impl<_Idx, _UHead>&& __in) 8768: { 8768: _M_head(*this) 8768: = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)); 8768: return *this; 8768: } 8768: 8768: protected: 8768: void 8768: _M_swap(_Tuple_impl& __in) 8768: noexcept(__is_nothrow_swappable<_Head>::value) 8768: { 8768: using std::swap; 8768: swap(_M_head(*this), _M_head(__in)); 8768: } 8768: }; 8768: 8768: 8768: 8768: template 8768: struct _TC 8768: { 8768: template 8768: static constexpr bool _ConstructibleTuple() 8768: { 8768: return __and_...>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyConvertibleTuple() 8768: { 8768: return __and_...>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _MoveConstructibleTuple() 8768: { 8768: return __and_...>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8768: { 8768: return __and_...>::value; 8768: } 8768: 8768: template 8768: static constexpr bool _NonNestedTuple() 8768: { 8768: return __and_<__not_, 8768: typename remove_cv< 8768: typename remove_reference<_SrcTuple>::type 8768: >::type>>, 8768: __not_>, 8768: __not_> 8768: >::value; 8768: } 8768: template 8768: static constexpr bool _NotSameTuple() 8768: { 8768: return __not_, 8768: typename remove_const< 8768: typename remove_reference<_UElements...>::type 8768: >::type>>::value; 8768: } 8768: }; 8768: 8768: template 8768: struct _TC 8768: { 8768: template 8768: static constexpr bool _ConstructibleTuple() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyConvertibleTuple() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _MoveConstructibleTuple() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _ImplicitlyMoveConvertibleTuple() 8768: { 8768: return false; 8768: } 8768: 8768: template 8768: static constexpr bool _NonNestedTuple() 8768: { 8768: return true; 8768: } 8768: template 8768: static constexpr bool _NotSameTuple() 8768: { 8768: return true; 8768: } 8768: }; 8768: 8768: 8768: template 8768: class tuple : public _Tuple_impl<0, _Elements...> 8768: { 8768: typedef _Tuple_impl<0, _Elements...> _Inherited; 8768: 8768: 8768: 8768: template 8768: struct _TC2 8768: { 8768: static constexpr bool _DefaultConstructibleTuple() 8768: { 8768: return __and_...>::value; 8768: } 8768: static constexpr bool _ImplicitlyDefaultConstructibleTuple() 8768: { 8768: return __and_<__is_implicitly_default_constructible<_Elements>...> 8768: ::value; 8768: } 8768: }; 8768: 8768: public: 8768: template:: 8768: _ImplicitlyDefaultConstructibleTuple(), 8768: bool>::type = true> 8768: constexpr tuple() 8768: : _Inherited() { } 8768: 8768: template:: 8768: _DefaultConstructibleTuple() 8768: && 8768: !_TC2<_Dummy>:: 8768: _ImplicitlyDefaultConstructibleTuple(), 8768: bool>::type = false> 8768: explicit constexpr tuple() 8768: : _Inherited() { } 8768: 8768: 8768: 8768: template using _TCC = 8768: _TC::value, 8768: _Elements...>; 8768: 8768: template::template 8768: _ConstructibleTuple<_Elements...>() 8768: && _TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_Elements...>() 8768: && (sizeof...(_Elements) >= 1), 8768: bool>::type=true> 8768: constexpr tuple(const _Elements&... __elements) 8768: : _Inherited(__elements...) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_Elements...>() 8768: && !_TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_Elements...>() 8768: && (sizeof...(_Elements) >= 1), 8768: bool>::type=false> 8768: explicit constexpr tuple(const _Elements&... __elements) 8768: : _Inherited(__elements...) { } 8768: 8768: 8768: 8768: template using _TMC = 8768: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8768: && (_TC<(sizeof...(_UElements)==1), _Elements...>:: 8768: template _NotSameTuple<_UElements...>()), 8768: _Elements...>; 8768: 8768: 8768: 8768: template using _TMCT = 8768: _TC<(sizeof...(_Elements) == sizeof...(_UElements)) 8768: && !is_same, 8768: tuple<_UElements...>>::value, 8768: _Elements...>; 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && _TMC<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8768: && (sizeof...(_Elements) >= 1), 8768: bool>::type=true> 8768: constexpr tuple(_UElements&&... __elements) 8768: : _Inherited(std::forward<_UElements>(__elements)...) { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && !_TMC<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8768: && (sizeof...(_Elements) >= 1), 8768: bool>::type=false> 8768: explicit constexpr tuple(_UElements&&... __elements) 8768: : _Inherited(std::forward<_UElements>(__elements)...) { } 8768: 8768: constexpr tuple(const tuple&) = default; 8768: 8768: constexpr tuple(tuple&&) = default; 8768: 8768: 8768: 8768: template using _TNTC = 8768: _TC::value && sizeof...(_Elements) == 1, 8768: _Elements...>; 8768: 8768: template::template 8768: _ConstructibleTuple<_UElements...>() 8768: && _TMCT<_UElements...>::template 8768: _ImplicitlyConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&>(), 8768: bool>::type=true> 8768: constexpr tuple(const tuple<_UElements...>& __in) 8768: : _Inherited(static_cast&>(__in)) 8768: { } 8768: 8768: template::template 8768: _ConstructibleTuple<_UElements...>() 8768: && !_TMCT<_UElements...>::template 8768: _ImplicitlyConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&>(), 8768: bool>::type=false> 8768: explicit constexpr tuple(const tuple<_UElements...>& __in) 8768: : _Inherited(static_cast&>(__in)) 8768: { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && _TMCT<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&&>(), 8768: bool>::type=true> 8768: constexpr tuple(tuple<_UElements...>&& __in) 8768: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && !_TMCT<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&&>(), 8768: bool>::type=false> 8768: explicit constexpr tuple(tuple<_UElements...>&& __in) 8768: : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { } 8768: 8768: 8768: 8768: template 8768: tuple(allocator_arg_t __tag, const _Alloc& __a) 8768: : _Inherited(__tag, __a) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_Elements...>() 8768: && _TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_Elements...>(), 8768: bool>::type=true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Elements&... __elements) 8768: : _Inherited(__tag, __a, __elements...) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_Elements...>() 8768: && !_TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_Elements...>(), 8768: bool>::type=false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const _Elements&... __elements) 8768: : _Inherited(__tag, __a, __elements...) { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && _TMC<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8768: bool>::type=true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: _UElements&&... __elements) 8768: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8768: { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && !_TMC<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>(), 8768: bool>::type=false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: _UElements&&... __elements) 8768: : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...) 8768: { } 8768: 8768: template 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8768: : _Inherited(__tag, __a, static_cast(__in)) { } 8768: 8768: template 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8768: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_UElements...>() 8768: && _TMCT<_UElements...>::template 8768: _ImplicitlyConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&&>(), 8768: bool>::type=true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const tuple<_UElements...>& __in) 8768: : _Inherited(__tag, __a, 8768: static_cast&>(__in)) 8768: { } 8768: 8768: template::template 8768: _ConstructibleTuple<_UElements...>() 8768: && !_TMCT<_UElements...>::template 8768: _ImplicitlyConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&&>(), 8768: bool>::type=false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const tuple<_UElements...>& __in) 8768: : _Inherited(__tag, __a, 8768: static_cast&>(__in)) 8768: { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && _TMCT<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&&>(), 8768: bool>::type=true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: tuple<_UElements...>&& __in) 8768: : _Inherited(__tag, __a, 8768: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8768: { } 8768: 8768: template::template 8768: _MoveConstructibleTuple<_UElements...>() 8768: && !_TMCT<_UElements...>::template 8768: _ImplicitlyMoveConvertibleTuple<_UElements...>() 8768: && _TNTC<_Dummy>::template 8768: _NonNestedTuple&&>(), 8768: bool>::type=false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: tuple<_UElements...>&& __in) 8768: : _Inherited(__tag, __a, 8768: static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) 8768: { } 8768: 8768: tuple& 8768: operator=(const tuple& __in) 8768: { 8768: static_cast<_Inherited&>(*this) = __in; 8768: return *this; 8768: } 8768: 8768: tuple& 8768: operator=(tuple&& __in) 8768: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8768: { 8768: static_cast<_Inherited&>(*this) = std::move(__in); 8768: return *this; 8768: } 8768: 8768: template 8768: typename 8768: enable_if::type 8768: operator=(const tuple<_UElements...>& __in) 8768: { 8768: static_cast<_Inherited&>(*this) = __in; 8768: return *this; 8768: } 8768: 8768: template 8768: typename 8768: enable_if::type 8768: operator=(tuple<_UElements...>&& __in) 8768: { 8768: static_cast<_Inherited&>(*this) = std::move(__in); 8768: return *this; 8768: } 8768: 8768: void 8768: swap(tuple& __in) 8768: noexcept(noexcept(__in._M_swap(__in))) 8768: { _Inherited::_M_swap(__in); } 8768: }; 8768: # 889 "/usr/include/c++/8/tuple" 3 8768: template<> 8768: class tuple<> 8768: { 8768: public: 8768: void swap(tuple&) noexcept { } 8768: 8768: 8768: tuple() = default; 8768: 8768: template 8768: tuple(allocator_arg_t, const _Alloc&) { } 8768: template 8768: tuple(allocator_arg_t, const _Alloc&, const tuple&) { } 8768: }; 8768: 8768: 8768: 8768: template 8768: class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 8768: { 8768: typedef _Tuple_impl<0, _T1, _T2> _Inherited; 8768: 8768: public: 8768: template , 8768: __is_implicitly_default_constructible<_U2>> 8768: ::value, bool>::type = true> 8768: 8768: constexpr tuple() 8768: : _Inherited() { } 8768: 8768: template , 8768: is_default_constructible<_U2>, 8768: __not_< 8768: __and_<__is_implicitly_default_constructible<_U1>, 8768: __is_implicitly_default_constructible<_U2>>>> 8768: ::value, bool>::type = false> 8768: 8768: explicit constexpr tuple() 8768: : _Inherited() { } 8768: 8768: 8768: 8768: template using _TCC = 8768: _TC::value, _T1, _T2>; 8768: 8768: template::template 8768: _ConstructibleTuple<_T1, _T2>() 8768: && _TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8768: bool>::type = true> 8768: constexpr tuple(const _T1& __a1, const _T2& __a2) 8768: : _Inherited(__a1, __a2) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_T1, _T2>() 8768: && !_TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8768: bool>::type = false> 8768: explicit constexpr tuple(const _T1& __a1, const _T2& __a2) 8768: : _Inherited(__a1, __a2) { } 8768: 8768: 8768: 8768: using _TMC = _TC; 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8768: && !is_same::type, 8768: allocator_arg_t>::value, 8768: bool>::type = true> 8768: constexpr tuple(_U1&& __a1, _U2&& __a2) 8768: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>() 8768: && !is_same::type, 8768: allocator_arg_t>::value, 8768: bool>::type = false> 8768: explicit constexpr tuple(_U1&& __a1, _U2&& __a2) 8768: : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { } 8768: 8768: constexpr tuple(const tuple&) = default; 8768: 8768: constexpr tuple(tuple&&) = default; 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: constexpr tuple(const tuple<_U1, _U2>& __in) 8768: : _Inherited(static_cast&>(__in)) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit constexpr tuple(const tuple<_U1, _U2>& __in) 8768: : _Inherited(static_cast&>(__in)) { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: constexpr tuple(tuple<_U1, _U2>&& __in) 8768: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit constexpr tuple(tuple<_U1, _U2>&& __in) 8768: : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: constexpr tuple(const pair<_U1, _U2>& __in) 8768: : _Inherited(__in.first, __in.second) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit constexpr tuple(const pair<_U1, _U2>& __in) 8768: : _Inherited(__in.first, __in.second) { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: constexpr tuple(pair<_U1, _U2>&& __in) 8768: : _Inherited(std::forward<_U1>(__in.first), 8768: std::forward<_U2>(__in.second)) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit constexpr tuple(pair<_U1, _U2>&& __in) 8768: : _Inherited(std::forward<_U1>(__in.first), 8768: std::forward<_U2>(__in.second)) { } 8768: 8768: 8768: 8768: template 8768: tuple(allocator_arg_t __tag, const _Alloc& __a) 8768: : _Inherited(__tag, __a) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_T1, _T2>() 8768: && _TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8768: bool>::type=true> 8768: 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const _T1& __a1, const _T2& __a2) 8768: : _Inherited(__tag, __a, __a1, __a2) { } 8768: 8768: template::template 8768: _ConstructibleTuple<_T1, _T2>() 8768: && !_TCC<_Dummy>::template 8768: _ImplicitlyConvertibleTuple<_T1, _T2>(), 8768: bool>::type=false> 8768: 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const _T1& __a1, const _T2& __a2) 8768: : _Inherited(__tag, __a, __a1, __a2) { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2) 8768: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8768: std::forward<_U2>(__a2)) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: _U1&& __a1, _U2&& __a2) 8768: : _Inherited(__tag, __a, std::forward<_U1>(__a1), 8768: std::forward<_U2>(__a2)) { } 8768: 8768: template 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in) 8768: : _Inherited(__tag, __a, static_cast(__in)) { } 8768: 8768: template 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in) 8768: : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const tuple<_U1, _U2>& __in) 8768: : _Inherited(__tag, __a, 8768: static_cast&>(__in)) 8768: { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const tuple<_U1, _U2>& __in) 8768: : _Inherited(__tag, __a, 8768: static_cast&>(__in)) 8768: { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in) 8768: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8768: { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: tuple<_U1, _U2>&& __in) 8768: : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) 8768: { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const pair<_U1, _U2>& __in) 8768: : _Inherited(__tag, __a, __in.first, __in.second) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: const pair<_U1, _U2>& __in) 8768: : _Inherited(__tag, __a, __in.first, __in.second) { } 8768: 8768: template() 8768: && _TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = true> 8768: tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in) 8768: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8768: std::forward<_U2>(__in.second)) { } 8768: 8768: template() 8768: && !_TMC::template 8768: _ImplicitlyMoveConvertibleTuple<_U1, _U2>(), 8768: bool>::type = false> 8768: explicit tuple(allocator_arg_t __tag, const _Alloc& __a, 8768: pair<_U1, _U2>&& __in) 8768: : _Inherited(__tag, __a, std::forward<_U1>(__in.first), 8768: std::forward<_U2>(__in.second)) { } 8768: 8768: tuple& 8768: operator=(const tuple& __in) 8768: { 8768: static_cast<_Inherited&>(*this) = __in; 8768: return *this; 8768: } 8768: 8768: tuple& 8768: operator=(tuple&& __in) 8768: noexcept(is_nothrow_move_assignable<_Inherited>::value) 8768: { 8768: static_cast<_Inherited&>(*this) = std::move(__in); 8768: return *this; 8768: } 8768: 8768: template 8768: tuple& 8768: operator=(const tuple<_U1, _U2>& __in) 8768: { 8768: static_cast<_Inherited&>(*this) = __in; 8768: return *this; 8768: } 8768: 8768: template 8768: tuple& 8768: operator=(tuple<_U1, _U2>&& __in) 8768: { 8768: static_cast<_Inherited&>(*this) = std::move(__in); 8768: return *this; 8768: } 8768: 8768: template 8768: tuple& 8768: operator=(const pair<_U1, _U2>& __in) 8768: { 8768: this->_M_head(*this) = __in.first; 8768: this->_M_tail(*this)._M_head(*this) = __in.second; 8768: return *this; 8768: } 8768: 8768: template 8768: tuple& 8768: operator=(pair<_U1, _U2>&& __in) 8768: { 8768: this->_M_head(*this) = std::forward<_U1>(__in.first); 8768: this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second); 8768: return *this; 8768: } 8768: 8768: void 8768: swap(tuple& __in) 8768: noexcept(noexcept(__in._M_swap(__in))) 8768: { _Inherited::_M_swap(__in); } 8768: }; 8768: 8768: 8768: 8768: template 8768: struct tuple_size> 8768: : public integral_constant { }; 8768: # 1278 "/usr/include/c++/8/tuple" 3 8768: template 8768: struct tuple_element<__i, tuple<_Head, _Tail...> > 8768: : tuple_element<__i - 1, tuple<_Tail...> > { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct tuple_element<0, tuple<_Head, _Tail...> > 8768: { 8768: typedef _Head type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct tuple_element<__i, tuple<>> 8768: { 8768: static_assert(__i < tuple_size>::value, 8768: "tuple index is in range"); 8768: }; 8768: 8768: template 8768: constexpr _Head& 8768: __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8768: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8768: 8768: template 8768: constexpr const _Head& 8768: __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept 8768: { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); } 8768: 8768: 8768: template 8768: constexpr __tuple_element_t<__i, tuple<_Elements...>>& 8768: get(tuple<_Elements...>& __t) noexcept 8768: { return std::__get_helper<__i>(__t); } 8768: 8768: 8768: template 8768: constexpr const __tuple_element_t<__i, tuple<_Elements...>>& 8768: get(const tuple<_Elements...>& __t) noexcept 8768: { return std::__get_helper<__i>(__t); } 8768: 8768: 8768: template 8768: constexpr __tuple_element_t<__i, tuple<_Elements...>>&& 8768: get(tuple<_Elements...>&& __t) noexcept 8768: { 8768: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8768: return std::forward<__element_type&&>(std::get<__i>(__t)); 8768: } 8768: 8768: 8768: template 8768: constexpr const __tuple_element_t<__i, tuple<_Elements...>>&& 8768: get(const tuple<_Elements...>&& __t) noexcept 8768: { 8768: typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type; 8768: return std::forward(std::get<__i>(__t)); 8768: } 8768: # 1382 "/usr/include/c++/8/tuple" 3 8768: template 8768: struct __tuple_compare 8768: { 8768: static constexpr bool 8768: __eq(const _Tp& __t, const _Up& __u) 8768: { 8768: return bool(std::get<__i>(__t) == std::get<__i>(__u)) 8768: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u); 8768: } 8768: 8768: static constexpr bool 8768: __less(const _Tp& __t, const _Up& __u) 8768: { 8768: return bool(std::get<__i>(__t) < std::get<__i>(__u)) 8768: || (!bool(std::get<__i>(__u) < std::get<__i>(__t)) 8768: && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u)); 8768: } 8768: }; 8768: 8768: template 8768: struct __tuple_compare<_Tp, _Up, __size, __size> 8768: { 8768: static constexpr bool 8768: __eq(const _Tp&, const _Up&) { return true; } 8768: 8768: static constexpr bool 8768: __less(const _Tp&, const _Up&) { return false; } 8768: }; 8768: 8768: template 8768: constexpr bool 8768: operator==(const tuple<_TElements...>& __t, 8768: const tuple<_UElements...>& __u) 8768: { 8768: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8768: "tuple objects can only be compared if they have equal sizes."); 8768: using __compare = __tuple_compare, 8768: tuple<_UElements...>, 8768: 0, sizeof...(_TElements)>; 8768: return __compare::__eq(__t, __u); 8768: } 8768: 8768: template 8768: constexpr bool 8768: operator<(const tuple<_TElements...>& __t, 8768: const tuple<_UElements...>& __u) 8768: { 8768: static_assert(sizeof...(_TElements) == sizeof...(_UElements), 8768: "tuple objects can only be compared if they have equal sizes."); 8768: using __compare = __tuple_compare, 8768: tuple<_UElements...>, 8768: 0, sizeof...(_TElements)>; 8768: return __compare::__less(__t, __u); 8768: } 8768: 8768: template 8768: constexpr bool 8768: operator!=(const tuple<_TElements...>& __t, 8768: const tuple<_UElements...>& __u) 8768: { return !(__t == __u); } 8768: 8768: template 8768: constexpr bool 8768: operator>(const tuple<_TElements...>& __t, 8768: const tuple<_UElements...>& __u) 8768: { return __u < __t; } 8768: 8768: template 8768: constexpr bool 8768: operator<=(const tuple<_TElements...>& __t, 8768: const tuple<_UElements...>& __u) 8768: { return !(__u < __t); } 8768: 8768: template 8768: constexpr bool 8768: operator>=(const tuple<_TElements...>& __t, 8768: const tuple<_UElements...>& __u) 8768: { return !(__t < __u); } 8768: 8768: 8768: template 8768: constexpr tuple::__type...> 8768: make_tuple(_Elements&&... __args) 8768: { 8768: typedef tuple::__type...> 8768: __result_type; 8768: return __result_type(std::forward<_Elements>(__args)...); 8768: } 8768: 8768: 8768: 8768: template 8768: constexpr tuple<_Elements&&...> 8768: forward_as_tuple(_Elements&&... __args) noexcept 8768: { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); } 8768: 8768: template 8768: struct __make_tuple_impl; 8768: 8768: template 8768: struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm> 8768: : __make_tuple_impl<_Idx + 1, 8768: tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>, 8768: _Tuple, _Nm> 8768: { }; 8768: 8768: template 8768: struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm> 8768: { 8768: typedef tuple<_Tp...> __type; 8768: }; 8768: 8768: template 8768: struct __do_make_tuple 8768: : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value> 8768: { }; 8768: 8768: 8768: template 8768: struct __make_tuple 8768: : public __do_make_tuple::type>::type> 8768: { }; 8768: 8768: 8768: template 8768: struct __combine_tuples; 8768: 8768: template<> 8768: struct __combine_tuples<> 8768: { 8768: typedef tuple<> __type; 8768: }; 8768: 8768: template 8768: struct __combine_tuples> 8768: { 8768: typedef tuple<_Ts...> __type; 8768: }; 8768: 8768: template 8768: struct __combine_tuples, tuple<_T2s...>, _Rem...> 8768: { 8768: typedef typename __combine_tuples, 8768: _Rem...>::__type __type; 8768: }; 8768: 8768: 8768: template 8768: struct __tuple_cat_result 8768: { 8768: typedef typename __combine_tuples 8768: ::__type...>::__type __type; 8768: }; 8768: 8768: 8768: 8768: template 8768: struct __make_1st_indices; 8768: 8768: template<> 8768: struct __make_1st_indices<> 8768: { 8768: typedef std::_Index_tuple<> __type; 8768: }; 8768: 8768: template 8768: struct __make_1st_indices<_Tp, _Tpls...> 8768: { 8768: typedef typename std::_Build_index_tuple::type>::value>::__type __type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct __tuple_concater; 8768: 8768: template 8768: struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...> 8768: { 8768: template 8768: static constexpr _Ret 8768: _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us) 8768: { 8768: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8768: typedef __tuple_concater<_Ret, __idx, _Tpls...> __next; 8768: return __next::_S_do(std::forward<_Tpls>(__tps)..., 8768: std::forward<_Us>(__us)..., 8768: std::get<_Is>(std::forward<_Tp>(__tp))...); 8768: } 8768: }; 8768: 8768: template 8768: struct __tuple_concater<_Ret, std::_Index_tuple<>> 8768: { 8768: template 8768: static constexpr _Ret 8768: _S_do(_Us&&... __us) 8768: { 8768: return _Ret(std::forward<_Us>(__us)...); 8768: } 8768: }; 8768: 8768: 8768: template...>::value>::type> 8768: constexpr auto 8768: tuple_cat(_Tpls&&... __tpls) 8768: -> typename __tuple_cat_result<_Tpls...>::__type 8768: { 8768: typedef typename __tuple_cat_result<_Tpls...>::__type __ret; 8768: typedef typename __make_1st_indices<_Tpls...>::__type __idx; 8768: typedef __tuple_concater<__ret, __idx, _Tpls...> __concater; 8768: return __concater::_S_do(std::forward<_Tpls>(__tpls)...); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: constexpr tuple<_Elements&...> 8768: tie(_Elements&... __args) noexcept 8768: { return tuple<_Elements&...>(__args...); } 8768: 8768: 8768: template 8768: inline 8768: 8768: 8768: typename enable_if<__and_<__is_swappable<_Elements>...>::value 8768: >::type 8768: 8768: 8768: 8768: swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: template 8768: typename enable_if...>::value>::type 8768: swap(tuple<_Elements...>&, tuple<_Elements...>&) = delete; 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct _Swallow_assign 8768: { 8768: template 8768: const _Swallow_assign& 8768: operator=(const _Tp&) const 8768: { return *this; } 8768: }; 8768: 8768: 8768: 8768: constexpr _Swallow_assign ignore{}; 8768: 8768: 8768: template 8768: struct uses_allocator, _Alloc> : true_type { }; 8768: 8768: 8768: template 8768: template 8768: inline 8768: pair<_T1, _T2>:: 8768: pair(piecewise_construct_t, 8768: tuple<_Args1...> __first, tuple<_Args2...> __second) 8768: : pair(__first, __second, 8768: typename _Build_index_tuple::__type(), 8768: typename _Build_index_tuple::__type()) 8768: { } 8768: 8768: template 8768: template 8768: inline 8768: pair<_T1, _T2>:: 8768: pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2, 8768: _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>) 8768: : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...), 8768: second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) 8768: { } 8768: # 1711 "/usr/include/c++/8/tuple" 3 8768: 8768: } 8768: # 64 "/usr/include/c++/8/bits/stl_map.h" 2 3 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: class multimap; 8768: # 98 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template , 8768: typename _Alloc = std::allocator > > 8768: class map 8768: { 8768: public: 8768: typedef _Key key_type; 8768: typedef _Tp mapped_type; 8768: typedef std::pair value_type; 8768: typedef _Compare key_compare; 8768: typedef _Alloc allocator_type; 8768: 8768: private: 8768: # 126 "/usr/include/c++/8/bits/stl_map.h" 3 8768: public: 8768: class value_compare 8768: : public std::binary_function 8768: { 8768: friend class map<_Key, _Tp, _Compare, _Alloc>; 8768: protected: 8768: _Compare comp; 8768: 8768: value_compare(_Compare __c) 8768: : comp(__c) { } 8768: 8768: public: 8768: bool operator()(const value_type& __x, const value_type& __y) const 8768: { return comp(__x.first, __y.first); } 8768: }; 8768: 8768: private: 8768: 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind::other _Pair_alloc_type; 8768: 8768: typedef _Rb_tree, 8768: key_compare, _Pair_alloc_type> _Rep_type; 8768: 8768: 8768: _Rep_type _M_t; 8768: 8768: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8768: 8768: public: 8768: 8768: 8768: typedef typename _Alloc_traits::pointer pointer; 8768: typedef typename _Alloc_traits::const_pointer const_pointer; 8768: typedef typename _Alloc_traits::reference reference; 8768: typedef typename _Alloc_traits::const_reference const_reference; 8768: typedef typename _Rep_type::iterator iterator; 8768: typedef typename _Rep_type::const_iterator const_iterator; 8768: typedef typename _Rep_type::size_type size_type; 8768: typedef typename _Rep_type::difference_type difference_type; 8768: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8768: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8768: # 183 "/usr/include/c++/8/bits/stl_map.h" 3 8768: map() = default; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: map(const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8768: # 205 "/usr/include/c++/8/bits/stl_map.h" 3 8768: map(const map&) = default; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: map(map&&) = default; 8768: # 226 "/usr/include/c++/8/bits/stl_map.h" 3 8768: map(initializer_list __l, 8768: const _Compare& __comp = _Compare(), 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8768: 8768: 8768: explicit 8768: map(const allocator_type& __a) 8768: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8768: 8768: 8768: map(const map& __m, const allocator_type& __a) 8768: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8768: 8768: 8768: map(map&& __m, const allocator_type& __a) 8768: noexcept(is_nothrow_copy_constructible<_Compare>::value 8768: && _Alloc_traits::_S_always_equal()) 8768: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8768: 8768: 8768: map(initializer_list __l, const allocator_type& __a) 8768: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8768: 8768: 8768: template 8768: map(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a) 8768: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__first, __last); } 8768: # 270 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: map(_InputIterator __first, _InputIterator __last) 8768: : _M_t() 8768: { _M_t._M_insert_unique(__first, __last); } 8768: # 287 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: map(_InputIterator __first, _InputIterator __last, 8768: const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__first, __last); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ~map() = default; 8768: # 316 "/usr/include/c++/8/bits/stl_map.h" 3 8768: map& 8768: operator=(const map&) = default; 8768: 8768: 8768: map& 8768: operator=(map&&) = default; 8768: # 334 "/usr/include/c++/8/bits/stl_map.h" 3 8768: map& 8768: operator=(initializer_list __l) 8768: { 8768: _M_t._M_assign_unique(__l.begin(), __l.end()); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_t.get_allocator()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: begin() noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return _M_t.empty(); } 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_t.size(); } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _M_t.max_size(); } 8768: # 489 "/usr/include/c++/8/bits/stl_map.h" 3 8768: mapped_type& 8768: operator[](const key_type& __k) 8768: { 8768: 8768: 8768: 8768: iterator __i = lower_bound(__k); 8768: 8768: if (__i == end() || key_comp()(__k, (*__i).first)) 8768: 8768: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8768: std::tuple(__k), 8768: std::tuple<>()); 8768: 8768: 8768: 8768: return (*__i).second; 8768: } 8768: 8768: 8768: mapped_type& 8768: operator[](key_type&& __k) 8768: { 8768: 8768: 8768: 8768: iterator __i = lower_bound(__k); 8768: 8768: if (__i == end() || key_comp()(__k, (*__i).first)) 8768: __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, 8768: std::forward_as_tuple(std::move(__k)), 8768: std::tuple<>()); 8768: return (*__i).second; 8768: } 8768: # 534 "/usr/include/c++/8/bits/stl_map.h" 3 8768: mapped_type& 8768: at(const key_type& __k) 8768: { 8768: iterator __i = lower_bound(__k); 8768: if (__i == end() || key_comp()(__k, (*__i).first)) 8768: __throw_out_of_range(("map::at")); 8768: return (*__i).second; 8768: } 8768: 8768: const mapped_type& 8768: at(const key_type& __k) const 8768: { 8768: const_iterator __i = lower_bound(__k); 8768: if (__i == end() || key_comp()(__k, (*__i).first)) 8768: __throw_out_of_range(("map::at")); 8768: return (*__i).second; 8768: } 8768: # 572 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: std::pair 8768: emplace(_Args&&... __args) 8768: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8768: # 602 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: iterator 8768: emplace_hint(const_iterator __pos, _Args&&... __args) 8768: { 8768: return _M_t._M_emplace_hint_unique(__pos, 8768: std::forward<_Args>(__args)...); 8768: } 8768: # 800 "/usr/include/c++/8/bits/stl_map.h" 3 8768: std::pair 8768: insert(const value_type& __x) 8768: { return _M_t._M_insert_unique(__x); } 8768: 8768: 8768: 8768: 8768: std::pair 8768: insert(value_type&& __x) 8768: { return _M_t._M_insert_unique(std::move(__x)); } 8768: 8768: template::value>::type> 8768: std::pair 8768: insert(_Pair&& __x) 8768: { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); } 8768: # 828 "/usr/include/c++/8/bits/stl_map.h" 3 8768: void 8768: insert(std::initializer_list __list) 8768: { insert(__list.begin(), __list.end()); } 8768: # 857 "/usr/include/c++/8/bits/stl_map.h" 3 8768: iterator 8768: 8768: insert(const_iterator __position, const value_type& __x) 8768: 8768: 8768: 8768: { return _M_t._M_insert_unique_(__position, __x); } 8768: 8768: 8768: 8768: 8768: iterator 8768: insert(const_iterator __position, value_type&& __x) 8768: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8768: 8768: template::value>::type> 8768: iterator 8768: insert(const_iterator __position, _Pair&& __x) 8768: { return _M_t._M_insert_unique_(__position, 8768: std::forward<_Pair>(__x)); } 8768: # 890 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: void 8768: insert(_InputIterator __first, _InputIterator __last) 8768: { _M_t._M_insert_unique(__first, __last); } 8768: # 1030 "/usr/include/c++/8/bits/stl_map.h" 3 8768: iterator 8768: erase(const_iterator __position) 8768: { return _M_t.erase(__position); } 8768: 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(iterator __position) 8768: { return _M_t.erase(__position); } 8768: # 1067 "/usr/include/c++/8/bits/stl_map.h" 3 8768: size_type 8768: erase(const key_type& __x) 8768: { return _M_t.erase(__x); } 8768: # 1087 "/usr/include/c++/8/bits/stl_map.h" 3 8768: iterator 8768: erase(const_iterator __first, const_iterator __last) 8768: { return _M_t.erase(__first, __last); } 8768: # 1121 "/usr/include/c++/8/bits/stl_map.h" 3 8768: void 8768: swap(map& __x) 8768: noexcept(__is_nothrow_swappable<_Compare>::value) 8768: { _M_t.swap(__x._M_t); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: clear() noexcept 8768: { _M_t.clear(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: key_compare 8768: key_comp() const 8768: { return _M_t.key_comp(); } 8768: 8768: 8768: 8768: 8768: 8768: value_compare 8768: value_comp() const 8768: { return value_compare(_M_t.key_comp()); } 8768: # 1168 "/usr/include/c++/8/bits/stl_map.h" 3 8768: iterator 8768: find(const key_type& __x) 8768: { return _M_t.find(__x); } 8768: # 1193 "/usr/include/c++/8/bits/stl_map.h" 3 8768: const_iterator 8768: find(const key_type& __x) const 8768: { return _M_t.find(__x); } 8768: # 1214 "/usr/include/c++/8/bits/stl_map.h" 3 8768: size_type 8768: count(const key_type& __x) const 8768: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8768: # 1238 "/usr/include/c++/8/bits/stl_map.h" 3 8768: iterator 8768: lower_bound(const key_type& __x) 8768: { return _M_t.lower_bound(__x); } 8768: # 1263 "/usr/include/c++/8/bits/stl_map.h" 3 8768: const_iterator 8768: lower_bound(const key_type& __x) const 8768: { return _M_t.lower_bound(__x); } 8768: # 1283 "/usr/include/c++/8/bits/stl_map.h" 3 8768: iterator 8768: upper_bound(const key_type& __x) 8768: { return _M_t.upper_bound(__x); } 8768: # 1303 "/usr/include/c++/8/bits/stl_map.h" 3 8768: const_iterator 8768: upper_bound(const key_type& __x) const 8768: { return _M_t.upper_bound(__x); } 8768: # 1332 "/usr/include/c++/8/bits/stl_map.h" 3 8768: std::pair 8768: equal_range(const key_type& __x) 8768: { return _M_t.equal_range(__x); } 8768: # 1361 "/usr/include/c++/8/bits/stl_map.h" 3 8768: std::pair 8768: equal_range(const key_type& __x) const 8768: { return _M_t.equal_range(__x); } 8768: # 1378 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: friend bool 8768: operator==(const map<_K1, _T1, _C1, _A1>&, 8768: const map<_K1, _T1, _C1, _A1>&); 8768: 8768: template 8768: friend bool 8768: operator<(const map<_K1, _T1, _C1, _A1>&, 8768: const map<_K1, _T1, _C1, _A1>&); 8768: }; 8768: # 1433 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: inline bool 8768: operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return __x._M_t == __y._M_t; } 8768: # 1450 "/usr/include/c++/8/bits/stl_map.h" 3 8768: template 8768: inline bool 8768: operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return __x._M_t < __y._M_t; } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline void 8768: swap(map<_Key, _Tp, _Compare, _Alloc>& __x, 8768: map<_Key, _Tp, _Compare, _Alloc>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: # 1515 "/usr/include/c++/8/bits/stl_map.h" 3 8768: 8768: } 8768: # 62 "/usr/include/c++/8/map" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_multimap.h" 1 3 8768: # 64 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: class map; 8768: # 96 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template , 8768: typename _Alloc = std::allocator > > 8768: class multimap 8768: { 8768: public: 8768: typedef _Key key_type; 8768: typedef _Tp mapped_type; 8768: typedef std::pair value_type; 8768: typedef _Compare key_compare; 8768: typedef _Alloc allocator_type; 8768: 8768: private: 8768: # 125 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: public: 8768: class value_compare 8768: : public std::binary_function 8768: { 8768: friend class multimap<_Key, _Tp, _Compare, _Alloc>; 8768: protected: 8768: _Compare comp; 8768: 8768: value_compare(_Compare __c) 8768: : comp(__c) { } 8768: 8768: public: 8768: bool operator()(const value_type& __x, const value_type& __y) const 8768: { return comp(__x.first, __y.first); } 8768: }; 8768: 8768: private: 8768: 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind::other _Pair_alloc_type; 8768: 8768: typedef _Rb_tree, 8768: key_compare, _Pair_alloc_type> _Rep_type; 8768: 8768: _Rep_type _M_t; 8768: 8768: typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits; 8768: 8768: public: 8768: 8768: 8768: typedef typename _Alloc_traits::pointer pointer; 8768: typedef typename _Alloc_traits::const_pointer const_pointer; 8768: typedef typename _Alloc_traits::reference reference; 8768: typedef typename _Alloc_traits::const_reference const_reference; 8768: typedef typename _Rep_type::iterator iterator; 8768: typedef typename _Rep_type::const_iterator const_iterator; 8768: typedef typename _Rep_type::size_type size_type; 8768: typedef typename _Rep_type::difference_type difference_type; 8768: typedef typename _Rep_type::reverse_iterator reverse_iterator; 8768: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8768: # 180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: multimap() = default; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: multimap(const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Pair_alloc_type(__a)) { } 8768: # 202 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: multimap(const multimap&) = default; 8768: # 211 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: multimap(multimap&&) = default; 8768: # 223 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: multimap(initializer_list __l, 8768: const _Compare& __comp = _Compare(), 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8768: 8768: 8768: explicit 8768: multimap(const allocator_type& __a) 8768: : _M_t(_Compare(), _Pair_alloc_type(__a)) { } 8768: 8768: 8768: multimap(const multimap& __m, const allocator_type& __a) 8768: : _M_t(__m._M_t, _Pair_alloc_type(__a)) { } 8768: 8768: 8768: multimap(multimap&& __m, const allocator_type& __a) 8768: noexcept(is_nothrow_copy_constructible<_Compare>::value 8768: && _Alloc_traits::_S_always_equal()) 8768: : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { } 8768: 8768: 8768: multimap(initializer_list __l, const allocator_type& __a) 8768: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8768: 8768: 8768: template 8768: multimap(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a) 8768: : _M_t(_Compare(), _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__first, __last); } 8768: # 266 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: multimap(_InputIterator __first, _InputIterator __last) 8768: : _M_t() 8768: { _M_t._M_insert_equal(__first, __last); } 8768: # 282 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: multimap(_InputIterator __first, _InputIterator __last, 8768: const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Pair_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__first, __last); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: ~multimap() = default; 8768: # 311 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: multimap& 8768: operator=(const multimap&) = default; 8768: 8768: 8768: multimap& 8768: operator=(multimap&&) = default; 8768: # 329 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: multimap& 8768: operator=(initializer_list __l) 8768: { 8768: _M_t._M_assign_equal(__l.begin(), __l.end()); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_t.get_allocator()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: begin() noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: begin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: end() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: rend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cbegin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_iterator 8768: cend() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: const_reverse_iterator 8768: crend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return _M_t.empty(); } 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_t.size(); } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _M_t.max_size(); } 8768: # 487 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: iterator 8768: emplace(_Args&&... __args) 8768: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8768: # 514 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: iterator 8768: emplace_hint(const_iterator __pos, _Args&&... __args) 8768: { 8768: return _M_t._M_emplace_hint_equal(__pos, 8768: std::forward<_Args>(__args)...); 8768: } 8768: # 536 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: insert(const value_type& __x) 8768: { return _M_t._M_insert_equal(__x); } 8768: 8768: 8768: 8768: 8768: iterator 8768: insert(value_type&& __x) 8768: { return _M_t._M_insert_equal(std::move(__x)); } 8768: 8768: template::value>::type> 8768: iterator 8768: insert(_Pair&& __x) 8768: { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); } 8768: # 577 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: 8768: insert(const_iterator __position, const value_type& __x) 8768: 8768: 8768: 8768: { return _M_t._M_insert_equal_(__position, __x); } 8768: 8768: 8768: 8768: 8768: iterator 8768: insert(const_iterator __position, value_type&& __x) 8768: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8768: 8768: template::value>::type> 8768: iterator 8768: insert(const_iterator __position, _Pair&& __x) 8768: { return _M_t._M_insert_equal_(__position, 8768: std::forward<_Pair>(__x)); } 8768: # 611 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: void 8768: insert(_InputIterator __first, _InputIterator __last) 8768: { _M_t._M_insert_equal(__first, __last); } 8768: # 624 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: void 8768: insert(initializer_list __l) 8768: { this->insert(__l.begin(), __l.end()); } 8768: # 701 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: erase(const_iterator __position) 8768: { return _M_t.erase(__position); } 8768: 8768: 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(iterator __position) 8768: { return _M_t.erase(__position); } 8768: # 738 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: size_type 8768: erase(const key_type& __x) 8768: { return _M_t.erase(__x); } 8768: # 759 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: erase(const_iterator __first, const_iterator __last) 8768: { return _M_t.erase(__first, __last); } 8768: # 796 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: void 8768: swap(multimap& __x) 8768: noexcept(__is_nothrow_swappable<_Compare>::value) 8768: { _M_t.swap(__x._M_t); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void 8768: clear() noexcept 8768: { _M_t.clear(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: key_compare 8768: key_comp() const 8768: { return _M_t.key_comp(); } 8768: 8768: 8768: 8768: 8768: 8768: value_compare 8768: value_comp() const 8768: { return value_compare(_M_t.key_comp()); } 8768: # 842 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: find(const key_type& __x) 8768: { return _M_t.find(__x); } 8768: # 866 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: const_iterator 8768: find(const key_type& __x) const 8768: { return _M_t.find(__x); } 8768: # 884 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: size_type 8768: count(const key_type& __x) const 8768: { return _M_t.count(__x); } 8768: # 908 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: lower_bound(const key_type& __x) 8768: { return _M_t.lower_bound(__x); } 8768: # 933 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: const_iterator 8768: lower_bound(const key_type& __x) const 8768: { return _M_t.lower_bound(__x); } 8768: # 953 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: iterator 8768: upper_bound(const key_type& __x) 8768: { return _M_t.upper_bound(__x); } 8768: # 973 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: const_iterator 8768: upper_bound(const key_type& __x) const 8768: { return _M_t.upper_bound(__x); } 8768: # 1000 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: std::pair 8768: equal_range(const key_type& __x) 8768: { return _M_t.equal_range(__x); } 8768: # 1027 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: std::pair 8768: equal_range(const key_type& __x) const 8768: { return _M_t.equal_range(__x); } 8768: # 1044 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: friend bool 8768: operator==(const multimap<_K1, _T1, _C1, _A1>&, 8768: const multimap<_K1, _T1, _C1, _A1>&); 8768: 8768: template 8768: friend bool 8768: operator<(const multimap<_K1, _T1, _C1, _A1>&, 8768: const multimap<_K1, _T1, _C1, _A1>&); 8768: }; 8768: # 1098 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: inline bool 8768: operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return __x._M_t == __y._M_t; } 8768: # 1115 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: template 8768: inline bool 8768: operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return __x._M_t < __y._M_t; } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: const multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline void 8768: swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, 8768: multimap<_Key, _Tp, _Compare, _Alloc>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: # 1180 "/usr/include/c++/8/bits/stl_multimap.h" 3 8768: 8768: } 8768: # 63 "/usr/include/c++/8/map" 2 3 8768: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct QMetaTypeId2; 8768: 8768: template 8768: inline constexpr int qMetaTypeId(); 8768: # 216 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: class QDataStream; 8768: class QMetaTypeInterface; 8768: struct QMetaObject; 8768: 8768: namespace QtPrivate 8768: { 8768: 8768: 8768: 8768: 8768: template 8768: To convertImplicit(const From& from) 8768: { 8768: return from; 8768: } 8768: 8768: 8768: struct AbstractDebugStreamFunction 8768: { 8768: typedef void (*Stream)(const AbstractDebugStreamFunction *, QDebug&, const void *); 8768: typedef void (*Destroy)(AbstractDebugStreamFunction *); 8768: explicit AbstractDebugStreamFunction(Stream s = nullptr, Destroy d = nullptr) 8768: : stream(s), destroy(d) {} 8768: AbstractDebugStreamFunction(const AbstractDebugStreamFunction &) = delete; AbstractDebugStreamFunction &operator=(const AbstractDebugStreamFunction &) = delete; 8768: Stream stream; 8768: Destroy destroy; 8768: }; 8768: 8768: template 8768: struct BuiltInDebugStreamFunction : public AbstractDebugStreamFunction 8768: { 8768: BuiltInDebugStreamFunction() 8768: : AbstractDebugStreamFunction(stream, destroy) {} 8768: static void stream(const AbstractDebugStreamFunction *, QDebug& dbg, const void *r) 8768: { 8768: const T *rhs = static_cast(r); 8768: operator<<(dbg, *rhs); 8768: } 8768: 8768: static void destroy(AbstractDebugStreamFunction *_this) 8768: { 8768: delete static_cast(_this); 8768: } 8768: }; 8768: 8768: 8768: struct AbstractComparatorFunction 8768: { 8768: typedef bool (*LessThan)(const AbstractComparatorFunction *, const void *, const void *); 8768: typedef bool (*Equals)(const AbstractComparatorFunction *, const void *, const void *); 8768: typedef void (*Destroy)(AbstractComparatorFunction *); 8768: explicit AbstractComparatorFunction(LessThan lt = nullptr, Equals e = nullptr, Destroy d = nullptr) 8768: : lessThan(lt), equals(e), destroy(d) {} 8768: AbstractComparatorFunction(const AbstractComparatorFunction &) = delete; AbstractComparatorFunction &operator=(const AbstractComparatorFunction &) = delete; 8768: LessThan lessThan; 8768: Equals equals; 8768: Destroy destroy; 8768: }; 8768: 8768: template 8768: struct BuiltInComparatorFunction : public AbstractComparatorFunction 8768: { 8768: BuiltInComparatorFunction() 8768: : AbstractComparatorFunction(lessThan, equals, destroy) {} 8768: static bool lessThan(const AbstractComparatorFunction *, const void *l, const void *r) 8768: { 8768: const T *lhs = static_cast(l); 8768: const T *rhs = static_cast(r); 8768: return *lhs < *rhs; 8768: } 8768: 8768: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8768: { 8768: const T *lhs = static_cast(l); 8768: const T *rhs = static_cast(r); 8768: return *lhs == *rhs; 8768: } 8768: 8768: static void destroy(AbstractComparatorFunction *_this) 8768: { 8768: delete static_cast(_this); 8768: } 8768: }; 8768: 8768: template 8768: struct BuiltInEqualsComparatorFunction : public AbstractComparatorFunction 8768: { 8768: BuiltInEqualsComparatorFunction() 8768: : AbstractComparatorFunction(nullptr, equals, destroy) {} 8768: static bool equals(const AbstractComparatorFunction *, const void *l, const void *r) 8768: { 8768: const T *lhs = static_cast(l); 8768: const T *rhs = static_cast(r); 8768: return *lhs == *rhs; 8768: } 8768: 8768: static void destroy(AbstractComparatorFunction *_this) 8768: { 8768: delete static_cast(_this); 8768: } 8768: }; 8768: 8768: struct AbstractConverterFunction 8768: { 8768: typedef bool (*Converter)(const AbstractConverterFunction *, const void *, void*); 8768: explicit AbstractConverterFunction(Converter c = nullptr) 8768: : convert(c) {} 8768: AbstractConverterFunction(const AbstractConverterFunction &) = delete; AbstractConverterFunction &operator=(const AbstractConverterFunction &) = delete; 8768: Converter convert; 8768: }; 8768: 8768: template 8768: struct ConverterMemberFunction : public AbstractConverterFunction 8768: { 8768: explicit ConverterMemberFunction(To(From::*function)() const) 8768: : AbstractConverterFunction(convert), 8768: m_function(function) {} 8768: ~ConverterMemberFunction(); 8768: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8768: { 8768: const From *f = static_cast(in); 8768: To *t = static_cast(out); 8768: const ConverterMemberFunction *_typedThis = 8768: static_cast(_this); 8768: *t = (f->*_typedThis->m_function)(); 8768: return true; 8768: } 8768: 8768: To(From::* const m_function)() const; 8768: }; 8768: 8768: template 8768: struct ConverterMemberFunctionOk : public AbstractConverterFunction 8768: { 8768: explicit ConverterMemberFunctionOk(To(From::*function)(bool *) const) 8768: : AbstractConverterFunction(convert), 8768: m_function(function) {} 8768: ~ConverterMemberFunctionOk(); 8768: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8768: { 8768: const From *f = static_cast(in); 8768: To *t = static_cast(out); 8768: bool ok = false; 8768: const ConverterMemberFunctionOk *_typedThis = 8768: static_cast(_this); 8768: *t = (f->*_typedThis->m_function)(&ok); 8768: if (!ok) 8768: *t = To(); 8768: return ok; 8768: } 8768: 8768: To(From::* const m_function)(bool*) const; 8768: }; 8768: 8768: template 8768: struct ConverterFunctor : public AbstractConverterFunction 8768: { 8768: explicit ConverterFunctor(UnaryFunction function) 8768: : AbstractConverterFunction(convert), 8768: m_function(function) {} 8768: ~ConverterFunctor(); 8768: static bool convert(const AbstractConverterFunction *_this, const void *in, void *out) 8768: { 8768: const From *f = static_cast(in); 8768: To *t = static_cast(out); 8768: const ConverterFunctor *_typedThis = 8768: static_cast(_this); 8768: *t = _typedThis->m_function(*f); 8768: return true; 8768: } 8768: 8768: UnaryFunction m_function; 8768: }; 8768: 8768: template 8768: struct ValueTypeIsMetaType; 8768: template 8768: struct AssociativeValueTypeIsMetaType; 8768: template 8768: struct IsMetaTypePair; 8768: template 8768: struct MetaTypeSmartPointerHelper; 8768: } 8768: 8768: class __attribute__((visibility("default"))) QMetaType { 8768: enum ExtensionFlag { NoExtensionFlags, 8768: CreateEx = 0x1, DestroyEx = 0x2, 8768: ConstructEx = 0x4, DestructEx = 0x8, 8768: NameEx = 0x10, SizeEx = 0x20, 8768: CtorEx = 0x40, DtorEx = 0x80, 8768: FlagsEx = 0x100, MetaObjectEx = 0x200 8768: }; 8768: public: 8768: 8768: 8768: enum Type { 8768: 8768: 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, 8768: 8768: FirstCoreType = Bool, 8768: LastCoreType = Nullptr, 8768: FirstGuiType = QFont, 8768: LastGuiType = QPolygonF, 8768: FirstWidgetsType = QSizePolicy, 8768: LastWidgetsType = QSizePolicy, 8768: HighestInternalId = LastWidgetsType, 8768: 8768: QReal = sizeof(qreal) == sizeof(double) ? Double : Float, 8768: 8768: UnknownType = 0, 8768: User = 1024 8768: }; 8768: # 455 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: enum TypeFlag { 8768: NeedsConstruction = 0x1, 8768: NeedsDestruction = 0x2, 8768: MovableType = 0x4, 8768: PointerToQObject = 0x8, 8768: IsEnumeration = 0x10, 8768: SharedPointerToQObject = 0x20, 8768: WeakPointerToQObject = 0x40, 8768: TrackingPointerToQObject = 0x80, 8768: WasDeclaredAsMetaType = 0x100, 8768: IsGadget = 0x200 8768: }; 8768: typedef QFlags TypeFlags; 8768: 8768: typedef void (*Deleter)(void *); 8768: typedef void *(*Creator)(const void *); 8768: 8768: typedef void (*Destructor)(void *); 8768: typedef void *(*Constructor)(void *, const void *); 8768: 8768: typedef void (*SaveOperator)(QDataStream &, const void *); 8768: typedef void (*LoadOperator)(QDataStream &, void *); 8768: 8768: static void registerStreamOperators(const char *typeName, SaveOperator saveOp, 8768: LoadOperator loadOp); 8768: static void registerStreamOperators(int type, SaveOperator saveOp, 8768: LoadOperator loadOp); 8768: 8768: static int registerType(const char *typeName, Deleter deleter, 8768: Creator creator); 8768: static int registerType(const char *typeName, Deleter deleter, 8768: Creator creator, 8768: Destructor destructor, 8768: Constructor constructor, 8768: int size, 8768: QMetaType::TypeFlags flags, 8768: const QMetaObject *metaObject); 8768: static bool unregisterType(int type); 8768: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Deleter deleter, 8768: Creator creator, 8768: Destructor destructor, 8768: Constructor constructor, 8768: int size, 8768: QMetaType::TypeFlags flags, 8768: const QMetaObject *metaObject); 8768: static int registerNormalizedType(const ::QByteArray &normalizedTypeName, Destructor destructor, 8768: Constructor constructor, 8768: int size, 8768: QMetaType::TypeFlags flags, 8768: const QMetaObject *metaObject); 8768: static int registerTypedef(const char *typeName, int aliasId); 8768: static int registerNormalizedTypedef(const ::QByteArray &normalizedTypeName, int aliasId); 8768: static int type(const char *typeName); 8768: 8768: static int type(const ::QByteArray &typeName); 8768: static const char *typeName(int type); 8768: static int sizeOf(int type); 8768: static TypeFlags typeFlags(int type); 8768: static const QMetaObject *metaObjectForType(int type); 8768: static bool isRegistered(int type); 8768: static void *create(int type, const void *copy = nullptr); 8768: 8768: 8768: 8768: 8768: static void destroy(int type, void *data); 8768: static void *construct(int type, void *where, const void *copy); 8768: static void destruct(int type, void *where); 8768: 8768: 8768: static bool save(QDataStream &stream, int type, const void *data); 8768: static bool load(QDataStream &stream, int type, void *data); 8768: 8768: 8768: explicit QMetaType(const int type); 8768: inline ~QMetaType(); 8768: 8768: inline bool isValid() const; 8768: inline bool isRegistered() const; 8768: inline int sizeOf() const; 8768: inline TypeFlags flags() const; 8768: inline const QMetaObject *metaObject() const; 8768: 8768: inline void *create(const void *copy = nullptr) const; 8768: inline void destroy(void *data) const; 8768: inline void *construct(void *where, const void *copy = nullptr) const; 8768: inline void destruct(void *data) const; 8768: 8768: public: 8768: template 8768: static bool registerComparators() 8768: { 8768: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerComparators: The type must be a custom type.") 8768: ; 8768: 8768: const int typeId = qMetaTypeId(); 8768: static const QtPrivate::BuiltInComparatorFunction f; 8768: return registerComparatorFunction( &f, typeId); 8768: } 8768: template 8768: static bool registerEqualsComparator() 8768: { 8768: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerEqualsComparator: The type must be a custom type.") 8768: ; 8768: const int typeId = qMetaTypeId(); 8768: static const QtPrivate::BuiltInEqualsComparatorFunction f; 8768: return registerComparatorFunction( &f, typeId); 8768: } 8768: 8768: template 8768: static bool hasRegisteredComparators() 8768: { 8768: return hasRegisteredComparators(qMetaTypeId()); 8768: } 8768: static bool hasRegisteredComparators(int typeId); 8768: 8768: 8768: 8768: template 8768: static bool registerDebugStreamOperator() 8768: { 8768: static_assert(bool((!QMetaTypeId2::IsBuiltIn)), "QMetaType::registerDebugStreamOperator: The type must be a custom type.") 8768: ; 8768: 8768: const int typeId = qMetaTypeId(); 8768: static const QtPrivate::BuiltInDebugStreamFunction f; 8768: return registerDebugStreamOperatorFunction(&f, typeId); 8768: } 8768: template 8768: static bool hasRegisteredDebugStreamOperator() 8768: { 8768: return hasRegisteredDebugStreamOperator(qMetaTypeId()); 8768: } 8768: static bool hasRegisteredDebugStreamOperator(int typeId); 8768: 8768: 8768: 8768: template 8768: static bool registerConverter() 8768: { 8768: return registerConverter(QtPrivate::convertImplicit); 8768: } 8768: # 607 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: template 8768: static bool registerConverter(To(From::*function)() const) 8768: { 8768: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8768: ; 8768: 8768: const int fromTypeId = qMetaTypeId(); 8768: const int toTypeId = qMetaTypeId(); 8768: static const QtPrivate::ConverterMemberFunction f(function); 8768: return registerConverterFunction(&f, fromTypeId, toTypeId); 8768: } 8768: 8768: 8768: template 8768: static bool registerConverter(To(From::*function)(bool*) const) 8768: { 8768: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8768: ; 8768: 8768: const int fromTypeId = qMetaTypeId(); 8768: const int toTypeId = qMetaTypeId(); 8768: static const QtPrivate::ConverterMemberFunctionOk f(function); 8768: return registerConverterFunction(&f, fromTypeId, toTypeId); 8768: } 8768: 8768: 8768: template 8768: static bool registerConverter(UnaryFunction function) 8768: { 8768: static_assert(bool((!QMetaTypeId2::IsBuiltIn || !QMetaTypeId2::IsBuiltIn)), "QMetaType::registerConverter: At least one of the types must be a custom type.") 8768: ; 8768: 8768: const int fromTypeId = qMetaTypeId(); 8768: const int toTypeId = qMetaTypeId(); 8768: static const QtPrivate::ConverterFunctor f(function); 8768: return registerConverterFunction(&f, fromTypeId, toTypeId); 8768: } 8768: 8768: 8768: static bool convert(const void *from, int fromTypeId, void *to, int toTypeId); 8768: static bool compare(const void *lhs, const void *rhs, int typeId, int* result); 8768: static bool equals(const void *lhs, const void *rhs, int typeId, int* result); 8768: static bool debugStream(QDebug& dbg, const void *rhs, int typeId); 8768: 8768: template 8768: static bool hasRegisteredConverterFunction() 8768: { 8768: return hasRegisteredConverterFunction(qMetaTypeId(), qMetaTypeId()); 8768: } 8768: 8768: static bool hasRegisteredConverterFunction(int fromTypeId, int toTypeId); 8768: 8768: private: 8768: static QMetaType typeInfo(const int type); 8768: inline QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8768: Creator creator, 8768: Deleter deleter, 8768: SaveOperator saveOp, 8768: LoadOperator loadOp, 8768: Constructor constructor, 8768: Destructor destructor, 8768: uint sizeOf, 8768: uint theTypeFlags, 8768: int typeId, 8768: const QMetaObject *metaObject); 8768: QMetaType(const QMetaType &other); 8768: QMetaType &operator =(const QMetaType &); 8768: inline bool isExtended(const ExtensionFlag flag) const { return m_extensionFlags & flag; } 8768: 8768: 8768: void ctor(const QMetaTypeInterface *info); 8768: void dtor(); 8768: uint sizeExtended() const; 8768: QMetaType::TypeFlags flagsExtended() const; 8768: const QMetaObject *metaObjectExtended() const; 8768: void *createExtended(const void *copy = nullptr) const; 8768: void destroyExtended(void *data) const; 8768: void *constructExtended(void *where, const void *copy = nullptr) const; 8768: void destructExtended(void *data) const; 8768: 8768: static bool registerComparatorFunction(const QtPrivate::AbstractComparatorFunction *f, int type); 8768: 8768: static bool registerDebugStreamOperatorFunction(const QtPrivate::AbstractDebugStreamFunction *f, int type); 8768: 8768: 8768: 8768: 8768: 8768: template friend struct QtPrivate::ValueTypeIsMetaType; 8768: template friend struct QtPrivate::ConverterMemberFunction; 8768: template friend struct QtPrivate::ConverterMemberFunctionOk; 8768: template friend struct QtPrivate::ConverterFunctor; 8768: template friend struct QtPrivate::AssociativeValueTypeIsMetaType; 8768: template friend struct QtPrivate::IsMetaTypePair; 8768: template friend struct QtPrivate::MetaTypeSmartPointerHelper; 8768: 8768: 8768: 8768: 8768: static bool registerConverterFunction(const QtPrivate::AbstractConverterFunction *f, int from, int to); 8768: static void unregisterConverterFunction(int from, int to); 8768: private: 8768: 8768: Creator m_creator_unused; 8768: Deleter m_deleter_unused; 8768: SaveOperator m_saveOp; 8768: LoadOperator m_loadOp; 8768: Constructor m_constructor; 8768: Destructor m_destructor; 8768: void *m_extension; 8768: uint m_size; 8768: uint m_typeFlags; 8768: uint m_extensionFlags; 8768: int m_typeId; 8768: const QMetaObject *m_metaObject; 8768: }; 8768: 8768: 8768: 8768: 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); } 8768: 8768: namespace QtPrivate { 8768: 8768: template 8768: ConverterMemberFunction::~ConverterMemberFunction() 8768: { 8768: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8768: } 8768: template 8768: ConverterMemberFunctionOk::~ConverterMemberFunctionOk() 8768: { 8768: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8768: } 8768: template 8768: ConverterFunctor::~ConverterFunctor() 8768: { 8768: QMetaType::unregisterConverterFunction(qMetaTypeId(), qMetaTypeId()); 8768: } 8768: 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace QtMetaTypePrivate { 8768: template 8768: struct QMetaTypeFunctionHelper { 8768: static void Destruct(void *t) 8768: { 8768: (void)t; 8768: static_cast(t)->~T(); 8768: } 8768: 8768: static void *Construct(void *where, const void *t) 8768: { 8768: if (t) 8768: return new (where) T(*static_cast(t)); 8768: return new (where) T; 8768: } 8768: 8768: static void Save(QDataStream &stream, const void *t) 8768: { 8768: stream << *static_cast(t); 8768: } 8768: 8768: static void Load(QDataStream &stream, void *t) 8768: { 8768: stream >> *static_cast(t); 8768: } 8768: 8768: }; 8768: 8768: template 8768: struct QMetaTypeFunctionHelper { 8768: static void Destruct(void *) {} 8768: static void *Construct(void *, const void *) { return nullptr; } 8768: 8768: static void Save(QDataStream &, const void *) {} 8768: static void Load(QDataStream &, void *) {} 8768: 8768: }; 8768: template <> 8768: struct QMetaTypeFunctionHelper 8768: : public QMetaTypeFunctionHelper 8768: {}; 8768: 8768: struct VariantData 8768: { 8768: VariantData(const int metaTypeId_, 8768: const void *data_, 8768: const uint flags_) 8768: : metaTypeId(metaTypeId_) 8768: , data(data_) 8768: , flags(flags_) 8768: { 8768: } 8768: VariantData(const VariantData &other) 8768: : metaTypeId(other.metaTypeId), data(other.data), flags(other.flags){} 8768: const int metaTypeId; 8768: const void *data; 8768: const uint flags; 8768: private: 8768: 8768: VariantData &operator=(const VariantData &) = delete; 8768: }; 8768: 8768: template 8768: struct IteratorOwnerCommon 8768: { 8768: static void assign(void **ptr, const_iterator iterator) 8768: { 8768: *ptr = new const_iterator(iterator); 8768: } 8768: static void assign(void **ptr, void * const * src) 8768: { 8768: *ptr = new const_iterator(*static_cast(*src)); 8768: } 8768: 8768: static void advance(void **iterator, int step) 8768: { 8768: const_iterator &it = *static_cast(*iterator); 8768: std::advance(it, step); 8768: } 8768: 8768: static void destroy(void **ptr) 8768: { 8768: delete static_cast(*ptr); 8768: } 8768: 8768: static bool equal(void * const *it, void * const *other) 8768: { 8768: return *static_cast(*it) == *static_cast(*other); 8768: } 8768: }; 8768: 8768: template 8768: struct IteratorOwner : IteratorOwnerCommon 8768: { 8768: static const void *getData(void * const *iterator) 8768: { 8768: return &**static_cast(*iterator); 8768: } 8768: 8768: static const void *getData(const_iterator it) 8768: { 8768: return &*it; 8768: } 8768: }; 8768: 8768: struct __attribute__((visibility("default"))) VectorBoolElements 8768: { 8768: static const bool true_element; 8768: static const bool false_element; 8768: }; 8768: 8768: template<> 8768: struct IteratorOwner::const_iterator> : IteratorOwnerCommon::const_iterator> 8768: { 8768: public: 8768: static const void *getData(void * const *iterator) 8768: { 8768: return **static_cast::const_iterator*>(*iterator) ? 8768: &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8768: } 8768: 8768: static const void *getData(const std::vector::const_iterator& it) 8768: { 8768: return *it ? &VectorBoolElements::true_element : &VectorBoolElements::false_element; 8768: } 8768: }; 8768: 8768: template 8768: struct IteratorOwner 8768: { 8768: private: 8768: 8768: 8768: 8768: struct Dummy {}; 8768: typedef typename std::conditional::value, Dummy, value_type>::type value_type_OR_Dummy; 8768: public: 8768: static void assign(void **ptr, const value_type_OR_Dummy *iterator ) 8768: { 8768: *ptr = const_cast(iterator); 8768: } 8768: static void assign(void **ptr, void * const * src) 8768: { 8768: *ptr = static_cast(*src); 8768: } 8768: 8768: static void advance(void **iterator, int step) 8768: { 8768: value_type *it = static_cast(*iterator); 8768: std::advance(it, step); 8768: *iterator = it; 8768: } 8768: 8768: static void destroy(void **) 8768: { 8768: } 8768: 8768: static const void *getData(void * const *iterator) 8768: { 8768: return *iterator; 8768: } 8768: 8768: static const void *getData(const value_type_OR_Dummy *it) 8768: { 8768: return it; 8768: } 8768: 8768: static bool equal(void * const *it, void * const *other) 8768: { 8768: return static_cast(*it) == static_cast(*other); 8768: } 8768: }; 8768: 8768: enum IteratorCapability 8768: { 8768: ForwardCapability = 1, 8768: BiDirectionalCapability = 2, 8768: RandomAccessCapability = 4 8768: }; 8768: 8768: template::iterator_category> 8768: struct CapabilitiesImpl; 8768: 8768: template 8768: struct CapabilitiesImpl 8768: { enum { IteratorCapabilities = ForwardCapability }; }; 8768: template 8768: struct CapabilitiesImpl 8768: { enum { IteratorCapabilities = BiDirectionalCapability | ForwardCapability }; }; 8768: template 8768: struct CapabilitiesImpl 8768: { enum { IteratorCapabilities = RandomAccessCapability | BiDirectionalCapability | ForwardCapability }; }; 8768: 8768: template 8768: struct ContainerAPI : CapabilitiesImpl 8768: { 8768: static int size(const T *t) { return int(std::distance(t->begin(), t->end())); } 8768: }; 8768: 8768: template 8768: struct ContainerAPI > : CapabilitiesImpl > 8768: { static int size(const QList *t) { return t->size(); } }; 8768: 8768: template 8768: struct ContainerAPI > : CapabilitiesImpl > 8768: { static int size(const QVector *t) { return t->size(); } }; 8768: 8768: template 8768: struct ContainerAPI > : CapabilitiesImpl > 8768: { static int size(const std::vector *t) { return int(t->size()); } }; 8768: 8768: template 8768: struct ContainerAPI > : CapabilitiesImpl > 8768: { static int size(const std::list *t) { return int(t->size()); } }; 8768: 8768: class QSequentialIterableImpl 8768: { 8768: public: 8768: const void * _iterable; 8768: void *_iterator; 8768: int _metaType_id; 8768: uint _metaType_flags; 8768: uint _iteratorCapabilities; 8768: typedef int(*sizeFunc)(const void *p); 8768: typedef const void * (*atFunc)(const void *p, int); 8768: typedef void (*moveIteratorFunc)(const void *p, void **); 8768: typedef void (*advanceFunc)(void **p, int); 8768: typedef VariantData (*getFunc)( void * const *p, int metaTypeId, uint flags); 8768: typedef void (*destroyIterFunc)(void **p); 8768: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8768: typedef void (*copyIterFunc)(void **, void * const *); 8768: 8768: sizeFunc _size; 8768: atFunc _at; 8768: moveIteratorFunc _moveToBegin; 8768: moveIteratorFunc _moveToEnd; 8768: advanceFunc _advance; 8768: getFunc _get; 8768: destroyIterFunc _destroyIter; 8768: equalIterFunc _equalIter; 8768: copyIterFunc _copyIter; 8768: 8768: template 8768: static int sizeImpl(const void *p) 8768: { return ContainerAPI::size(static_cast(p)); } 8768: 8768: template 8768: static const void* atImpl(const void *p, int idx) 8768: { 8768: typename T::const_iterator i = static_cast(p)->begin(); 8768: std::advance(i, idx); 8768: return IteratorOwner::getData(i); 8768: } 8768: 8768: template 8768: static void moveToBeginImpl(const void *container, void **iterator) 8768: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8768: 8768: template 8768: static void moveToEndImpl(const void *container, void **iterator) 8768: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8768: 8768: template 8768: static VariantData getImpl(void * const *iterator, int metaTypeId, uint flags) 8768: { return VariantData(metaTypeId, IteratorOwner::getData(iterator), flags); } 8768: 8768: public: 8768: template QSequentialIterableImpl(const T*p) 8768: : _iterable(p) 8768: , _iterator(nullptr) 8768: , _metaType_id(qMetaTypeId()) 8768: , _metaType_flags(QTypeInfo::isPointer) 8768: , _iteratorCapabilities(ContainerAPI::IteratorCapabilities) 8768: , _size(sizeImpl) 8768: , _at(atImpl) 8768: , _moveToBegin(moveToBeginImpl) 8768: , _moveToEnd(moveToEndImpl) 8768: , _advance(IteratorOwner::advance) 8768: , _get(getImpl) 8768: , _destroyIter(IteratorOwner::destroy) 8768: , _equalIter(IteratorOwner::equal) 8768: , _copyIter(IteratorOwner::assign) 8768: { 8768: } 8768: 8768: QSequentialIterableImpl() 8768: : _iterable(nullptr) 8768: , _iterator(nullptr) 8768: , _metaType_id(QMetaType::UnknownType) 8768: , _metaType_flags(0) 8768: , _iteratorCapabilities(0) 8768: , _size(nullptr) 8768: , _at(nullptr) 8768: , _moveToBegin(nullptr) 8768: , _moveToEnd(nullptr) 8768: , _advance(nullptr) 8768: , _get(nullptr) 8768: , _destroyIter(nullptr) 8768: , _equalIter(nullptr) 8768: , _copyIter(nullptr) 8768: { 8768: } 8768: 8768: inline void moveToBegin() { _moveToBegin(_iterable, &_iterator); } 8768: inline void moveToEnd() { _moveToEnd(_iterable, &_iterator); } 8768: inline bool equal(const QSequentialIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8768: inline QSequentialIterableImpl &advance(int i) { 8768: do { } while ((false) && (i > 0 || _iteratorCapabilities & BiDirectionalCapability)); 8768: _advance(&_iterator, i); 8768: return *this; 8768: } 8768: 8768: inline VariantData getCurrent() const { return _get(&_iterator, _metaType_id, _metaType_flags); } 8768: 8768: VariantData at(int idx) const 8768: { return VariantData(_metaType_id, _at(_iterable, idx), _metaType_flags); } 8768: 8768: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8768: 8768: inline void destroyIter() { _destroyIter(&_iterator); } 8768: 8768: void copy(const QSequentialIterableImpl &other) 8768: { 8768: *this = other; 8768: _copyIter(&_iterator, &other._iterator); 8768: } 8768: }; 8768: } 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 { 8768: 8768: template 8768: struct QSequentialIterableConvertFunctor 8768: { 8768: QSequentialIterableImpl operator()(const From &f) const 8768: { 8768: return QSequentialIterableImpl(&f); 8768: } 8768: }; 8768: } 8768: 8768: namespace QtMetaTypePrivate { 8768: template::value> 8768: struct AssociativeContainerAccessor 8768: { 8768: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8768: { 8768: return it.key(); 8768: } 8768: 8768: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8768: { 8768: return it.value(); 8768: } 8768: }; 8768: 8768: template >::value> 8768: struct StlStyleAssociativeContainerAccessor; 8768: 8768: template 8768: struct StlStyleAssociativeContainerAccessor 8768: { 8768: static const typename T::key_type& getKey(const typename T::const_iterator &it) 8768: { 8768: return it->first; 8768: } 8768: 8768: static const typename T::mapped_type& getValue(const typename T::const_iterator &it) 8768: { 8768: return it->second; 8768: } 8768: }; 8768: 8768: template 8768: struct AssociativeContainerAccessor : public StlStyleAssociativeContainerAccessor 8768: { 8768: }; 8768: 8768: class QAssociativeIterableImpl 8768: { 8768: public: 8768: const void *_iterable; 8768: void *_iterator; 8768: int _metaType_id_key; 8768: uint _metaType_flags_key; 8768: int _metaType_id_value; 8768: uint _metaType_flags_value; 8768: typedef int(*sizeFunc)(const void *p); 8768: typedef void (*findFunc)(const void *container, const void *p, void **iterator); 8768: typedef void (*beginFunc)(const void *p, void **); 8768: typedef void (*advanceFunc)(void **p, int); 8768: typedef VariantData (*getFunc)(void * const *p, int metaTypeId, uint flags); 8768: typedef void (*destroyIterFunc)(void **p); 8768: typedef bool (*equalIterFunc)(void * const *p, void * const *other); 8768: typedef void (*copyIterFunc)(void **, void * const *); 8768: 8768: sizeFunc _size; 8768: findFunc _find; 8768: beginFunc _begin; 8768: beginFunc _end; 8768: advanceFunc _advance; 8768: getFunc _getKey; 8768: getFunc _getValue; 8768: destroyIterFunc _destroyIter; 8768: equalIterFunc _equalIter; 8768: copyIterFunc _copyIter; 8768: 8768: template 8768: static int sizeImpl(const void *p) 8768: { return int(std::distance(static_cast(p)->begin(), 8768: static_cast(p)->end())); } 8768: 8768: template 8768: static void findImpl(const void *container, const void *p, void **iterator) 8768: { IteratorOwner::assign(iterator, 8768: static_cast(container)->find(*static_cast(p))); } 8768: 8768: template 8768: static void advanceImpl(void **p, int step) 8768: { std::advance(*static_cast(*p), step); } 8768: 8768: template 8768: static void beginImpl(const void *container, void **iterator) 8768: { IteratorOwner::assign(iterator, static_cast(container)->begin()); } 8768: 8768: template 8768: static void endImpl(const void *container, void **iterator) 8768: { IteratorOwner::assign(iterator, static_cast(container)->end()); } 8768: 8768: template 8768: static VariantData getKeyImpl(void * const *iterator, int metaTypeId, uint flags) 8768: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getKey(*static_cast(*iterator)), flags); } 8768: 8768: template 8768: static VariantData getValueImpl(void * const *iterator, int metaTypeId, uint flags) 8768: { return VariantData(metaTypeId, &AssociativeContainerAccessor::getValue(*static_cast(*iterator)), flags); } 8768: 8768: public: 8768: template QAssociativeIterableImpl(const T*p) 8768: : _iterable(p) 8768: , _iterator(nullptr) 8768: , _metaType_id_key(qMetaTypeId()) 8768: , _metaType_flags_key(QTypeInfo::isPointer) 8768: , _metaType_id_value(qMetaTypeId()) 8768: , _metaType_flags_value(QTypeInfo::isPointer) 8768: , _size(sizeImpl) 8768: , _find(findImpl) 8768: , _begin(beginImpl) 8768: , _end(endImpl) 8768: , _advance(advanceImpl) 8768: , _getKey(getKeyImpl) 8768: , _getValue(getValueImpl) 8768: , _destroyIter(IteratorOwner::destroy) 8768: , _equalIter(IteratorOwner::equal) 8768: , _copyIter(IteratorOwner::assign) 8768: { 8768: } 8768: 8768: QAssociativeIterableImpl() 8768: : _iterable(nullptr) 8768: , _iterator(nullptr) 8768: , _metaType_id_key(QMetaType::UnknownType) 8768: , _metaType_flags_key(0) 8768: , _metaType_id_value(QMetaType::UnknownType) 8768: , _metaType_flags_value(0) 8768: , _size(nullptr) 8768: , _find(nullptr) 8768: , _begin(nullptr) 8768: , _end(nullptr) 8768: , _advance(nullptr) 8768: , _getKey(nullptr) 8768: , _getValue(nullptr) 8768: , _destroyIter(nullptr) 8768: , _equalIter(nullptr) 8768: , _copyIter(nullptr) 8768: { 8768: } 8768: 8768: inline void begin() { _begin(_iterable, &_iterator); } 8768: inline void end() { _end(_iterable, &_iterator); } 8768: inline bool equal(const QAssociativeIterableImpl&other) const { return _equalIter(&_iterator, &other._iterator); } 8768: inline QAssociativeIterableImpl &advance(int i) { _advance(&_iterator, i); return *this; } 8768: 8768: inline void destroyIter() { _destroyIter(&_iterator); } 8768: 8768: inline VariantData getCurrentKey() const { return _getKey(&_iterator, _metaType_id_key, _metaType_flags_key); } 8768: inline VariantData getCurrentValue() const { return _getValue(&_iterator, _metaType_id_value, _metaType_flags_value); } 8768: 8768: inline void find(const VariantData &key) 8768: { _find(_iterable, key.data, &_iterator); } 8768: 8768: int size() const { do { } while ((false) && (_iterable)); return _size(_iterable); } 8768: 8768: void copy(const QAssociativeIterableImpl &other) 8768: { 8768: *this = other; 8768: _copyIter(&_iterator, &other._iterator); 8768: } 8768: }; 8768: } 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 { 8768: 8768: template 8768: struct QAssociativeIterableConvertFunctor 8768: { 8768: QAssociativeIterableImpl operator()(const From& f) const 8768: { 8768: return QAssociativeIterableImpl(&f); 8768: } 8768: }; 8768: 8768: class QPairVariantInterfaceImpl 8768: { 8768: const void *_pair; 8768: int _metaType_id_first; 8768: uint _metaType_flags_first; 8768: int _metaType_id_second; 8768: uint _metaType_flags_second; 8768: 8768: typedef VariantData (*getFunc)(const void * const *p, int metaTypeId, uint flags); 8768: 8768: getFunc _getFirst; 8768: getFunc _getSecond; 8768: 8768: template 8768: static VariantData getFirstImpl(const void * const *pair, int metaTypeId, uint flags) 8768: { return VariantData(metaTypeId, &static_cast(*pair)->first, flags); } 8768: template 8768: static VariantData getSecondImpl(const void * const *pair, int metaTypeId, uint flags) 8768: { return VariantData(metaTypeId, &static_cast(*pair)->second, flags); } 8768: 8768: public: 8768: template QPairVariantInterfaceImpl(const T*p) 8768: : _pair(p) 8768: , _metaType_id_first(qMetaTypeId()) 8768: , _metaType_flags_first(QTypeInfo::isPointer) 8768: , _metaType_id_second(qMetaTypeId()) 8768: , _metaType_flags_second(QTypeInfo::isPointer) 8768: , _getFirst(getFirstImpl) 8768: , _getSecond(getSecondImpl) 8768: { 8768: } 8768: 8768: QPairVariantInterfaceImpl() 8768: : _pair(nullptr) 8768: , _metaType_id_first(QMetaType::UnknownType) 8768: , _metaType_flags_first(0) 8768: , _metaType_id_second(QMetaType::UnknownType) 8768: , _metaType_flags_second(0) 8768: , _getFirst(nullptr) 8768: , _getSecond(nullptr) 8768: { 8768: } 8768: 8768: inline VariantData first() const { return _getFirst(&_pair, _metaType_id_first, _metaType_flags_first); } 8768: inline VariantData second() const { return _getSecond(&_pair, _metaType_id_second, _metaType_flags_second); } 8768: }; 8768: } 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 { 8768: 8768: template 8768: struct QPairVariantInterfaceConvertFunctor; 8768: 8768: template 8768: struct QPairVariantInterfaceConvertFunctor > 8768: { 8768: QPairVariantInterfaceImpl operator()(const QPair& f) const 8768: { 8768: return QPairVariantInterfaceImpl(&f); 8768: } 8768: }; 8768: 8768: template 8768: struct QPairVariantInterfaceConvertFunctor > 8768: { 8768: QPairVariantInterfaceImpl operator()(const std::pair& f) const 8768: { 8768: return QPairVariantInterfaceImpl(&f); 8768: } 8768: }; 8768: 8768: } 8768: 8768: class QObject; 8768: class QWidget; 8768: 8768: 8768: 8768: 8768: template class QSharedPointer; template class QWeakPointer; template class QPointer; 8768: 8768: namespace QtPrivate 8768: { 8768: template 8768: struct IsPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = false }; 8768: }; 8768: 8768: 8768: template<> 8768: struct IsPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = false }; 8768: }; 8768: template<> 8768: struct IsPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = false }; 8768: }; 8768: template<> 8768: struct IsPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = true }; 8768: }; 8768: 8768: template 8768: struct IsPointerToTypeDerivedFromQObject 8768: { 8768: typedef qint8 yes_type; 8768: typedef qint64 no_type; 8768: 8768: 8768: static yes_type checkType(QObject* ); 8768: 8768: static no_type checkType(...); 8768: static_assert(bool(sizeof(T)), "Type argument of Q_DECLARE_METATYPE(T*) must be fully defined"); 8768: enum { Value = sizeof(checkType(static_cast(nullptr))) == sizeof(yes_type) }; 8768: }; 8768: 8768: template 8768: struct IsGadgetHelper { enum { Value = false }; }; 8768: 8768: template 8768: struct IsGadgetHelper 8768: { 8768: template 8768: static char checkType(void (X::*)()); 8768: static void *checkType(void (T::*)()); 8768: enum { Value = sizeof(checkType(&T::qt_check_for_QGADGET_macro)) == sizeof(void *) }; 8768: }; 8768: 8768: 8768: template char qt_getEnumMetaObject(const T&); 8768: 8768: template 8768: struct IsQEnumHelper { 8768: static const T &declval(); 8768: 8768: 8768: 8768: 8768: enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) }; 8768: }; 8768: template<> struct IsQEnumHelper { enum { Value = false }; }; 8768: 8768: template 8768: struct MetaObjectForType 8768: { 8768: static inline const QMetaObject *value() { return nullptr; } 8768: }; 8768: template<> 8768: struct MetaObjectForType 8768: { 8768: static inline const QMetaObject *value() { return nullptr; } 8768: }; 8768: template 8768: struct MetaObjectForType::Value>::type> 8768: { 8768: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8768: }; 8768: template 8768: struct MetaObjectForType::Value>::type> 8768: { 8768: static inline const QMetaObject *value() { return &T::staticMetaObject; } 8768: }; 8768: template 8768: struct MetaObjectForType::Value>::type > 8768: { 8768: static inline const QMetaObject *value() { return qt_getEnumMetaObject(T()); } 8768: }; 8768: 8768: template 8768: struct IsSharedPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = false }; 8768: }; 8768: 8768: template 8768: struct IsSharedPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8768: { 8768: }; 8768: 8768: template 8768: struct IsWeakPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = false }; 8768: }; 8768: 8768: template 8768: struct IsWeakPointerToTypeDerivedFromQObject > : IsPointerToTypeDerivedFromQObject 8768: { 8768: }; 8768: 8768: template 8768: struct IsTrackingPointerToTypeDerivedFromQObject 8768: { 8768: enum { Value = false }; 8768: }; 8768: 8768: template 8768: struct IsTrackingPointerToTypeDerivedFromQObject > 8768: { 8768: enum { Value = true }; 8768: }; 8768: 8768: template 8768: struct IsSequentialContainer 8768: { 8768: enum { Value = false }; 8768: }; 8768: 8768: template 8768: struct IsAssociativeContainer 8768: { 8768: enum { Value = false }; 8768: }; 8768: 8768: template::Value> 8768: struct SequentialContainerConverterHelper 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: template::Defined> 8768: struct ValueTypeIsMetaType 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: template 8768: struct SequentialContainerConverterHelper : ValueTypeIsMetaType 8768: { 8768: }; 8768: 8768: template::Value> 8768: struct AssociativeContainerConverterHelper 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: template::Defined> 8768: struct AssociativeValueTypeIsMetaType 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: template::Defined> 8768: struct KeyAndValueTypeIsMetaType 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: template 8768: struct KeyAndValueTypeIsMetaType : AssociativeValueTypeIsMetaType 8768: { 8768: }; 8768: 8768: template 8768: struct AssociativeContainerConverterHelper : KeyAndValueTypeIsMetaType 8768: { 8768: }; 8768: 8768: template::Defined 8768: && QMetaTypeId2::Defined> 8768: struct IsMetaTypePair 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: 8768: template 8768: struct IsMetaTypePair 8768: { 8768: inline static bool registerConverter(int id); 8768: }; 8768: 8768: template 8768: struct IsPair 8768: { 8768: static bool registerConverter(int) 8768: { 8768: return false; 8768: } 8768: }; 8768: template 8768: struct IsPair > : IsMetaTypePair > {}; 8768: template 8768: struct IsPair > : IsMetaTypePair > {}; 8768: 8768: template 8768: struct MetaTypePairHelper : IsPair {}; 8768: 8768: template 8768: struct MetaTypeSmartPointerHelper 8768: { 8768: static bool registerConverter(int) { return false; } 8768: }; 8768: 8768: __attribute__((visibility("default"))) bool isBuiltinType(const QByteArray &type); 8768: } 8768: 8768: template ::Value ? QMetaType::PointerToQObject : 8768: QtPrivate::IsGadgetHelper::Value ? QMetaType::IsGadget : 8768: QtPrivate::IsQEnumHelper::Value ? QMetaType::IsEnumeration : 0> 8768: struct QMetaTypeIdQObject 8768: { 8768: enum { 8768: Defined = 0 8768: }; 8768: }; 8768: 8768: template 8768: struct QMetaTypeId : public QMetaTypeIdQObject 8768: { 8768: }; 8768: 8768: template 8768: struct QMetaTypeId2 8768: { 8768: enum { Defined = QMetaTypeId::Defined, IsBuiltIn=false }; 8768: static inline constexpr int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); } 8768: }; 8768: 8768: template 8768: struct QMetaTypeId2 : QMetaTypeId2 {}; 8768: 8768: template 8768: struct QMetaTypeId2 { enum {Defined = false }; }; 8768: 8768: namespace QtPrivate { 8768: template ::Defined> 8768: struct QMetaTypeIdHelper { 8768: static inline constexpr int qt_metatype_id() 8768: { return QMetaTypeId2::qt_metatype_id(); } 8768: }; 8768: template struct QMetaTypeIdHelper { 8768: static inline constexpr int qt_metatype_id() 8768: { return -1; } 8768: }; 8768: 8768: 8768: template 8768: struct IsPointerToTypeDerivedFromQObject { enum { Value = false }; }; 8768: 8768: template 8768: struct QMetaTypeTypeFlags 8768: { 8768: enum { Flags = (QTypeInfoQuery::isRelocatable ? QMetaType::MovableType : 0) 8768: | (QTypeInfo::isComplex ? QMetaType::NeedsConstruction : 0) 8768: | (QTypeInfo::isComplex ? QMetaType::NeedsDestruction : 0) 8768: | (IsPointerToTypeDerivedFromQObject::Value ? QMetaType::PointerToQObject : 0) 8768: | (IsSharedPointerToTypeDerivedFromQObject::Value ? QMetaType::SharedPointerToQObject : 0) 8768: | (IsWeakPointerToTypeDerivedFromQObject::Value ? QMetaType::WeakPointerToQObject : 0) 8768: | (IsTrackingPointerToTypeDerivedFromQObject::Value ? QMetaType::TrackingPointerToQObject : 0) 8768: | (std::is_enum::value ? QMetaType::IsEnumeration : 0) 8768: | (IsGadgetHelper::Value ? QMetaType::IsGadget : 0) 8768: }; 8768: }; 8768: 8768: template 8768: struct MetaTypeDefinedHelper 8768: { 8768: enum DefinedType { Defined = defined }; 8768: }; 8768: 8768: template 8768: struct QSmartPointerConvertFunctor 8768: { 8768: QObject* operator()(const SmartPointer &p) const 8768: { 8768: return p.operator->(); 8768: } 8768: }; 8768: 8768: template 8768: struct QSmartPointerConvertFunctor > 8768: { 8768: QObject* operator()(const QWeakPointer &p) const 8768: { 8768: return p.data(); 8768: } 8768: }; 8768: } 8768: 8768: template 8768: int qRegisterNormalizedMetaType(const ::QByteArray &normalizedTypeName 8768: 8768: , T * dummy = 0 8768: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8768: 8768: ) 8768: { 8768: 8768: do { } while ((false) && (normalizedTypeName == QMetaObject::normalizedType(normalizedTypeName.constData()))); 8768: 8768: const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper::qt_metatype_id(); 8768: if (typedefOf != -1) 8768: return QMetaType::registerNormalizedTypedef(normalizedTypeName, typedefOf); 8768: 8768: QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags::Flags); 8768: 8768: if (defined) 8768: flags |= QMetaType::WasDeclaredAsMetaType; 8768: 8768: const int id = QMetaType::registerNormalizedType(normalizedTypeName, 8768: QtMetaTypePrivate::QMetaTypeFunctionHelper::Destruct, 8768: QtMetaTypePrivate::QMetaTypeFunctionHelper::Construct, 8768: int(sizeof(T)), 8768: flags, 8768: QtPrivate::MetaObjectForType::value()); 8768: 8768: if (id > 0) { 8768: QtPrivate::SequentialContainerConverterHelper::registerConverter(id); 8768: QtPrivate::AssociativeContainerConverterHelper::registerConverter(id); 8768: QtPrivate::MetaTypePairHelper::registerConverter(id); 8768: QtPrivate::MetaTypeSmartPointerHelper::registerConverter(id); 8768: } 8768: 8768: return id; 8768: } 8768: 8768: template 8768: int qRegisterMetaType(const char *typeName 8768: 8768: , T * dummy = nullptr 8768: , typename QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper::Defined && !QMetaTypeId2::IsBuiltIn>::Defined 8768: 8768: ) 8768: { 8768: 8768: 8768: 8768: ::QByteArray normalizedTypeName = QMetaObject::normalizedType(typeName); 8768: 8768: return qRegisterNormalizedMetaType(normalizedTypeName, dummy, defined); 8768: } 8768: 8768: 8768: template 8768: void qRegisterMetaTypeStreamOperators(const char *typeName 8768: 8768: , T * = nullptr 8768: 8768: ) 8768: { 8768: qRegisterMetaType(typeName); 8768: QMetaType::registerStreamOperators(typeName, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8768: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8768: } 8768: 8768: 8768: template 8768: inline constexpr int qMetaTypeId() 8768: { 8768: 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"); 8768: return QMetaTypeId2::qt_metatype_id(); 8768: } 8768: 8768: template 8768: inline constexpr int qRegisterMetaType() 8768: { 8768: return qMetaTypeId(); 8768: } 8768: 8768: 8768: 8768: template 8768: inline constexpr int qMetaTypeId(T *) 8768: { return qMetaTypeId(); } 8768: 8768: template 8768: inline constexpr int qRegisterMetaType(T *) 8768: { return qRegisterMetaType(); } 8768: 8768: 8768: 8768: 8768: template 8768: struct QMetaTypeIdQObject 8768: { 8768: enum { 8768: Defined = 1 8768: }; 8768: 8768: static int qt_metatype_id() 8768: { 8768: static QBasicAtomicInt metatype_id = { 0 }; 8768: if (const int id = metatype_id.loadAcquire()) 8768: return id; 8768: const char * const cName = T::staticMetaObject.className(); 8768: QByteArray typeName; 8768: typeName.reserve(int(strlen(cName)) + 1); 8768: typeName.append(cName).append('*'); 8768: const int newId = qRegisterNormalizedMetaType( 8768: typeName, 8768: reinterpret_cast(quintptr(-1))); 8768: metatype_id.storeRelease(newId); 8768: return newId; 8768: } 8768: }; 8768: 8768: template 8768: struct QMetaTypeIdQObject 8768: { 8768: enum { 8768: Defined = std::is_default_constructible::value 8768: }; 8768: 8768: static int qt_metatype_id() 8768: { 8768: static QBasicAtomicInt metatype_id = { 0 }; 8768: if (const int id = metatype_id.loadAcquire()) 8768: return id; 8768: const char * const cName = T::staticMetaObject.className(); 8768: const int newId = qRegisterNormalizedMetaType( 8768: cName, 8768: reinterpret_cast(quintptr(-1))); 8768: metatype_id.storeRelease(newId); 8768: return newId; 8768: } 8768: }; 8768: 8768: template 8768: struct QMetaTypeIdQObject 8768: { 8768: enum { 8768: Defined = 1 8768: }; 8768: 8768: static int qt_metatype_id() 8768: { 8768: static QBasicAtomicInt metatype_id = { 0 }; 8768: if (const int id = metatype_id.loadAcquire()) 8768: return id; 8768: const char *eName = qt_getEnumName(T()); 8768: const char *cName = qt_getEnumMetaObject(T())->className(); 8768: QByteArray typeName; 8768: typeName.reserve(int(strlen(cName) + 2 + strlen(eName))); 8768: typeName.append(cName).append("::").append(eName); 8768: const int newId = qRegisterNormalizedMetaType( 8768: typeName, 8768: reinterpret_cast(quintptr(-1))); 8768: metatype_id.storeRelease(newId); 8768: return newId; 8768: } 8768: }; 8768: 8768: 8768: 8768: template 8768: inline int qRegisterMetaTypeStreamOperators() 8768: { 8768: int id = qMetaTypeId(); 8768: QMetaType::registerStreamOperators(id, QtMetaTypePrivate::QMetaTypeFunctionHelper::Save, 8768: QtMetaTypePrivate::QMetaTypeFunctionHelper::Load); 8768: return id; 8768: } 8768: # 1881 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: 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; 8768: 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; 8768: class QSizePolicy; 8768: 8768: 8768: 8768: typedef QList QVariantList; 8768: typedef QMap QVariantMap; 8768: typedef QHash QVariantHash; 8768: 8768: typedef QList QByteArrayList; 8768: # 1968 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: namespace QtPrivate { 8768: 8768: template 8768: struct SharedPointerMetaTypeIdHelper 8768: { 8768: enum { 8768: Defined = 0 8768: }; 8768: static int qt_metatype_id() 8768: { 8768: return -1; 8768: } 8768: }; 8768: 8768: } 8768: # 2042 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: 8768: 8768: 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 }; }; } 8768: 8768: 8768: 8768: 8768: 8768: 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 }; }; } 8768: 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 }; }; } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template class QHash; template class QMap; template struct QPair; 8768: # 2074 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h" 3 4 8768: 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; } }; 8768: 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; } }; 8768: 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; } }; 8768: 8768: 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; } }; 8768: 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; } }; 8768: 8768: 8768: 8768: 8768: 8768: 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> { }; 8768: 8768: 8768: 8768: 8768: 8768: inline QMetaType::QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeInterface *info, 8768: Creator creator, 8768: Deleter deleter, 8768: SaveOperator saveOp, 8768: LoadOperator loadOp, 8768: Constructor constructor, 8768: Destructor destructor, 8768: uint size, 8768: uint theTypeFlags, 8768: int typeId, 8768: const QMetaObject *_metaObject) 8768: : m_creator_unused(creator) 8768: , m_deleter_unused(deleter) 8768: , m_saveOp(saveOp) 8768: , m_loadOp(loadOp) 8768: , m_constructor(constructor) 8768: , m_destructor(destructor) 8768: , m_extension(nullptr) 8768: , m_size(size) 8768: , m_typeFlags(theTypeFlags) 8768: , m_extensionFlags(extensionFlags) 8768: , m_typeId(typeId) 8768: , m_metaObject(_metaObject) 8768: { 8768: if (__builtin_expect(!!(isExtended(CtorEx) || typeId == QMetaType::Void), false)) 8768: ctor(info); 8768: } 8768: 8768: inline QMetaType::~QMetaType() 8768: { 8768: if (__builtin_expect(!!(isExtended(DtorEx)), false)) 8768: dtor(); 8768: } 8768: 8768: inline bool QMetaType::isValid() const 8768: { 8768: return m_typeId != UnknownType; 8768: } 8768: 8768: inline bool QMetaType::isRegistered() const 8768: { 8768: return isValid(); 8768: } 8768: 8768: inline void *QMetaType::create(const void *copy) const 8768: { 8768: 8768: return createExtended(copy); 8768: } 8768: 8768: inline void QMetaType::destroy(void *data) const 8768: { 8768: 8768: destroyExtended(data); 8768: } 8768: 8768: inline void *QMetaType::construct(void *where, const void *copy) const 8768: { 8768: if (__builtin_expect(!!(isExtended(ConstructEx)), false)) 8768: return constructExtended(where, copy); 8768: return m_constructor(where, copy); 8768: } 8768: 8768: inline void QMetaType::destruct(void *data) const 8768: { 8768: if (__builtin_expect(!!(isExtended(DestructEx)), false)) 8768: return destructExtended(data); 8768: if (__builtin_expect(!!(!data), false)) 8768: return; 8768: m_destructor(data); 8768: } 8768: 8768: inline int QMetaType::sizeOf() const 8768: { 8768: if (__builtin_expect(!!(isExtended(SizeEx)), false)) 8768: return sizeExtended(); 8768: return m_size; 8768: } 8768: 8768: inline QMetaType::TypeFlags QMetaType::flags() const 8768: { 8768: if (__builtin_expect(!!(isExtended(FlagsEx)), false)) 8768: return flagsExtended(); 8768: return QMetaType::TypeFlags(m_typeFlags); 8768: } 8768: 8768: inline const QMetaObject *QMetaType::metaObject() const 8768: { 8768: if (__builtin_expect(!!(isExtended(MetaObjectEx)), false)) 8768: return metaObjectExtended(); 8768: return m_metaObject; 8768: } 8768: 8768: 8768: 8768: 8768: 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; } }; 8768: 8768: 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; } }; 8768: 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; } }; 8768: 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; } }; 8768: 8768: 8768: 8768: template 8768: inline bool QtPrivate::IsMetaTypePair::registerConverter(int id) 8768: { 8768: const int toId = qMetaTypeId(); 8768: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8768: QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor o; 8768: static const QtPrivate::ConverterFunctor > f(o); 8768: return QMetaType::registerConverterFunction(&f, id, toId); 8768: } 8768: return true; 8768: } 8768: 8768: namespace QtPrivate { 8768: template 8768: struct ValueTypeIsMetaType 8768: { 8768: static bool registerConverter(int id) 8768: { 8768: const int toId = qMetaTypeId(); 8768: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8768: QtMetaTypePrivate::QSequentialIterableConvertFunctor o; 8768: static const QtPrivate::ConverterFunctor > f(o); 8768: return QMetaType::registerConverterFunction(&f, id, toId); 8768: } 8768: return true; 8768: } 8768: }; 8768: 8768: template 8768: struct AssociativeValueTypeIsMetaType 8768: { 8768: static bool registerConverter(int id) 8768: { 8768: const int toId = qMetaTypeId(); 8768: if (!QMetaType::hasRegisteredConverterFunction(id, toId)) { 8768: QtMetaTypePrivate::QAssociativeIterableConvertFunctor o; 8768: static const QtPrivate::ConverterFunctor > f(o); 8768: return QMetaType::registerConverterFunction(&f, id, toId); 8768: } 8768: return true; 8768: } 8768: }; 8768: } 8768: 8768: 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 1 3 4 8768: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: # 1 "/usr/include/c++/8/functional" 1 3 4 8768: # 46 "/usr/include/c++/8/functional" 3 4 8768: 8768: # 47 "/usr/include/c++/8/functional" 3 8768: # 58 "/usr/include/c++/8/functional" 3 8768: # 1 "/usr/include/c++/8/bits/refwrap.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/refwrap.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/refwrap.h" 3 8768: # 43 "/usr/include/c++/8/bits/refwrap.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _Maybe_unary_or_binary_function { }; 8768: 8768: 8768: template 8768: struct _Maybe_unary_or_binary_function<_Res, _T1> 8768: : std::unary_function<_T1, _Res> { }; 8768: 8768: 8768: template 8768: struct _Maybe_unary_or_binary_function<_Res, _T1, _T2> 8768: : std::binary_function<_T1, _T2, _Res> { }; 8768: 8768: template 8768: struct _Mem_fn_traits; 8768: 8768: template 8768: struct _Mem_fn_traits_base 8768: { 8768: using __result_type = _Res; 8768: using __maybe_type 8768: = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>; 8768: using __arity = integral_constant; 8768: }; 8768: # 97 "/usr/include/c++/8/bits/refwrap.h" 3 8768: 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; }; 8768: 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; }; 8768: 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; }; 8768: # 111 "/usr/include/c++/8/bits/refwrap.h" 3 8768: template> 8768: struct _Maybe_get_result_type 8768: { }; 8768: 8768: template 8768: struct _Maybe_get_result_type<_Functor, 8768: __void_t> 8768: { typedef typename _Functor::result_type result_type; }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _Weak_result_type_impl 8768: : _Maybe_get_result_type<_Functor> 8768: { }; 8768: 8768: 8768: template 8768: struct _Weak_result_type_impl<_Res(_ArgTypes...) > 8768: { typedef _Res result_type; }; 8768: 8768: 8768: template 8768: struct _Weak_result_type_impl<_Res(_ArgTypes......) > 8768: { typedef _Res result_type; }; 8768: 8768: 8768: template 8768: struct _Weak_result_type_impl<_Res(*)(_ArgTypes...) > 8768: { typedef _Res result_type; }; 8768: 8768: 8768: template 8768: struct 8768: _Weak_result_type_impl<_Res(*)(_ArgTypes......) > 8768: { typedef _Res result_type; }; 8768: 8768: 8768: template::value> 8768: struct _Weak_result_type_memfun 8768: : _Weak_result_type_impl<_Functor> 8768: { }; 8768: 8768: 8768: template 8768: struct _Weak_result_type_memfun<_MemFunPtr, true> 8768: { 8768: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8768: }; 8768: 8768: 8768: template 8768: struct _Weak_result_type_memfun<_Func _Class::*, false> 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _Weak_result_type 8768: : _Weak_result_type_memfun::type> 8768: { }; 8768: 8768: 8768: template> 8768: struct _Refwrap_base_arg1 8768: { }; 8768: 8768: 8768: template 8768: struct _Refwrap_base_arg1<_Tp, 8768: __void_t> 8768: { 8768: typedef typename _Tp::argument_type argument_type; 8768: }; 8768: 8768: 8768: template> 8768: struct _Refwrap_base_arg2 8768: { }; 8768: 8768: 8768: template 8768: struct _Refwrap_base_arg2<_Tp, 8768: __void_t> 8768: { 8768: typedef typename _Tp::first_argument_type first_argument_type; 8768: typedef typename _Tp::second_argument_type second_argument_type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct _Reference_wrapper_base 8768: : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1) > 8768: : unary_function<_T1, _Res> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1) const> 8768: : unary_function<_T1, _Res> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1) volatile> 8768: : unary_function<_T1, _Res> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1) const volatile> 8768: : unary_function<_T1, _Res> 8768: { }; 8768: 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1, _T2) > 8768: : binary_function<_T1, _T2, _Res> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1, _T2) const> 8768: : binary_function<_T1, _T2, _Res> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1, _T2) volatile> 8768: : binary_function<_T1, _T2, _Res> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile> 8768: : binary_function<_T1, _T2, _Res> 8768: { }; 8768: 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(*)(_T1) > 8768: : unary_function<_T1, _Res> 8768: { }; 8768: 8768: 8768: template 8768: struct _Reference_wrapper_base<_Res(*)(_T1, _T2) > 8768: : binary_function<_T1, _T2, _Res> 8768: { }; 8768: 8768: template::value> 8768: struct _Reference_wrapper_base_memfun 8768: : _Reference_wrapper_base<_Tp> 8768: { }; 8768: 8768: template 8768: struct _Reference_wrapper_base_memfun<_MemFunPtr, true> 8768: : _Mem_fn_traits<_MemFunPtr>::__maybe_type 8768: { 8768: using result_type = typename _Mem_fn_traits<_MemFunPtr>::__result_type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class reference_wrapper 8768: : public _Reference_wrapper_base_memfun::type> 8768: { 8768: _Tp* _M_data; 8768: 8768: public: 8768: typedef _Tp type; 8768: 8768: reference_wrapper(_Tp& __indata) noexcept 8768: : _M_data(std::__addressof(__indata)) 8768: { } 8768: 8768: reference_wrapper(_Tp&&) = delete; 8768: 8768: reference_wrapper(const reference_wrapper&) = default; 8768: 8768: reference_wrapper& 8768: operator=(const reference_wrapper&) = default; 8768: 8768: operator _Tp&() const noexcept 8768: { return this->get(); } 8768: 8768: _Tp& 8768: get() const noexcept 8768: { return *_M_data; } 8768: 8768: template 8768: typename result_of<_Tp&(_Args&&...)>::type 8768: operator()(_Args&&... __args) const 8768: { 8768: return std::__invoke(get(), std::forward<_Args>(__args)...); 8768: } 8768: }; 8768: 8768: 8768: 8768: template 8768: inline reference_wrapper<_Tp> 8768: ref(_Tp& __t) noexcept 8768: { return reference_wrapper<_Tp>(__t); } 8768: 8768: 8768: template 8768: inline reference_wrapper 8768: cref(const _Tp& __t) noexcept 8768: { return reference_wrapper(__t); } 8768: 8768: template 8768: void ref(const _Tp&&) = delete; 8768: 8768: template 8768: void cref(const _Tp&&) = delete; 8768: 8768: 8768: template 8768: inline reference_wrapper<_Tp> 8768: ref(reference_wrapper<_Tp> __t) noexcept 8768: { return __t; } 8768: 8768: 8768: template 8768: inline reference_wrapper 8768: cref(reference_wrapper<_Tp> __t) noexcept 8768: { return { __t.get() }; } 8768: 8768: 8768: 8768: 8768: } 8768: # 59 "/usr/include/c++/8/functional" 2 3 8768: # 1 "/usr/include/c++/8/bits/std_function.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/std_function.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/std_function.h" 3 8768: # 47 "/usr/include/c++/8/bits/std_function.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class bad_function_call : public std::exception 8768: { 8768: public: 8768: virtual ~bad_function_call() noexcept; 8768: 8768: const char* what() const noexcept; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __is_location_invariant 8768: : is_trivially_copyable<_Tp>::type 8768: { }; 8768: 8768: class _Undefined_class; 8768: 8768: union _Nocopy_types 8768: { 8768: void* _M_object; 8768: const void* _M_const_object; 8768: void (*_M_function_pointer)(); 8768: void (_Undefined_class::*_M_member_pointer)(); 8768: }; 8768: 8768: union [[gnu::may_alias]] _Any_data 8768: { 8768: void* _M_access() { return &_M_pod_data[0]; } 8768: const void* _M_access() const { return &_M_pod_data[0]; } 8768: 8768: template 8768: _Tp& 8768: _M_access() 8768: { return *static_cast<_Tp*>(_M_access()); } 8768: 8768: template 8768: const _Tp& 8768: _M_access() const 8768: { return *static_cast(_M_access()); } 8768: 8768: _Nocopy_types _M_unused; 8768: char _M_pod_data[sizeof(_Nocopy_types)]; 8768: }; 8768: 8768: enum _Manager_operation 8768: { 8768: __get_type_info, 8768: __get_functor_ptr, 8768: __clone_functor, 8768: __destroy_functor 8768: }; 8768: 8768: 8768: 8768: template 8768: struct _Simple_type_wrapper 8768: { 8768: _Simple_type_wrapper(_Tp __value) : __value(__value) { } 8768: 8768: _Tp __value; 8768: }; 8768: 8768: template 8768: struct __is_location_invariant<_Simple_type_wrapper<_Tp> > 8768: : __is_location_invariant<_Tp> 8768: { }; 8768: 8768: template 8768: class function; 8768: 8768: 8768: class _Function_base 8768: { 8768: public: 8768: static const std::size_t _M_max_size = sizeof(_Nocopy_types); 8768: static const std::size_t _M_max_align = __alignof__(_Nocopy_types); 8768: 8768: template 8768: class _Base_manager 8768: { 8768: protected: 8768: static const bool __stored_locally = 8768: (__is_location_invariant<_Functor>::value 8768: && sizeof(_Functor) <= _M_max_size 8768: && __alignof__(_Functor) <= _M_max_align 8768: && (_M_max_align % __alignof__(_Functor) == 0)); 8768: 8768: typedef integral_constant _Local_storage; 8768: 8768: 8768: static _Functor* 8768: _M_get_pointer(const _Any_data& __source) 8768: { 8768: const _Functor* __ptr = 8768: __stored_locally? std::__addressof(__source._M_access<_Functor>()) 8768: : __source._M_access<_Functor*>(); 8768: return const_cast<_Functor*>(__ptr); 8768: } 8768: 8768: 8768: 8768: static void 8768: _M_clone(_Any_data& __dest, const _Any_data& __source, true_type) 8768: { 8768: ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>()); 8768: } 8768: 8768: 8768: 8768: static void 8768: _M_clone(_Any_data& __dest, const _Any_data& __source, false_type) 8768: { 8768: __dest._M_access<_Functor*>() = 8768: new _Functor(*__source._M_access<_Functor*>()); 8768: } 8768: 8768: 8768: 8768: static void 8768: _M_destroy(_Any_data& __victim, true_type) 8768: { 8768: __victim._M_access<_Functor>().~_Functor(); 8768: } 8768: 8768: 8768: static void 8768: _M_destroy(_Any_data& __victim, false_type) 8768: { 8768: delete __victim._M_access<_Functor*>(); 8768: } 8768: 8768: public: 8768: static bool 8768: _M_manager(_Any_data& __dest, const _Any_data& __source, 8768: _Manager_operation __op) 8768: { 8768: switch (__op) 8768: { 8768: 8768: case __get_type_info: 8768: __dest._M_access() = &typeid(_Functor); 8768: break; 8768: 8768: case __get_functor_ptr: 8768: __dest._M_access<_Functor*>() = _M_get_pointer(__source); 8768: break; 8768: 8768: case __clone_functor: 8768: _M_clone(__dest, __source, _Local_storage()); 8768: break; 8768: 8768: case __destroy_functor: 8768: _M_destroy(__dest, _Local_storage()); 8768: break; 8768: } 8768: return false; 8768: } 8768: 8768: static void 8768: _M_init_functor(_Any_data& __functor, _Functor&& __f) 8768: { _M_init_functor(__functor, std::move(__f), _Local_storage()); } 8768: 8768: template 8768: static bool 8768: _M_not_empty_function(const function<_Signature>& __f) 8768: { return static_cast(__f); } 8768: 8768: template 8768: static bool 8768: _M_not_empty_function(_Tp* __fp) 8768: { return __fp != nullptr; } 8768: 8768: template 8768: static bool 8768: _M_not_empty_function(_Tp _Class::* __mp) 8768: { return __mp != nullptr; } 8768: 8768: template 8768: static bool 8768: _M_not_empty_function(const _Tp&) 8768: { return true; } 8768: 8768: private: 8768: static void 8768: _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type) 8768: { ::new (__functor._M_access()) _Functor(std::move(__f)); } 8768: 8768: static void 8768: _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type) 8768: { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); } 8768: }; 8768: 8768: _Function_base() : _M_manager(nullptr) { } 8768: 8768: ~_Function_base() 8768: { 8768: if (_M_manager) 8768: _M_manager(_M_functor, _M_functor, __destroy_functor); 8768: } 8768: 8768: bool _M_empty() const { return !_M_manager; } 8768: 8768: typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, 8768: _Manager_operation); 8768: 8768: _Any_data _M_functor; 8768: _Manager_type _M_manager; 8768: }; 8768: 8768: template 8768: class _Function_handler; 8768: 8768: template 8768: class _Function_handler<_Res(_ArgTypes...), _Functor> 8768: : public _Function_base::_Base_manager<_Functor> 8768: { 8768: typedef _Function_base::_Base_manager<_Functor> _Base; 8768: 8768: public: 8768: static _Res 8768: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8768: { 8768: return (*_Base::_M_get_pointer(__functor))( 8768: std::forward<_ArgTypes>(__args)...); 8768: } 8768: }; 8768: 8768: template 8768: class _Function_handler 8768: : public _Function_base::_Base_manager<_Functor> 8768: { 8768: typedef _Function_base::_Base_manager<_Functor> _Base; 8768: 8768: public: 8768: static void 8768: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8768: { 8768: (*_Base::_M_get_pointer(__functor))( 8768: std::forward<_ArgTypes>(__args)...); 8768: } 8768: }; 8768: 8768: template 8768: class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> 8768: : public _Function_handler 8768: { 8768: typedef _Function_handler 8768: _Base; 8768: 8768: public: 8768: static _Res 8768: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8768: { 8768: return std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8768: std::forward<_ArgTypes>(__args)...); 8768: } 8768: }; 8768: 8768: template 8768: class _Function_handler 8768: : public _Function_base::_Base_manager< 8768: _Simple_type_wrapper< _Member _Class::* > > 8768: { 8768: typedef _Member _Class::* _Functor; 8768: typedef _Simple_type_wrapper<_Functor> _Wrapper; 8768: typedef _Function_base::_Base_manager<_Wrapper> _Base; 8768: 8768: public: 8768: static bool 8768: _M_manager(_Any_data& __dest, const _Any_data& __source, 8768: _Manager_operation __op) 8768: { 8768: switch (__op) 8768: { 8768: 8768: case __get_type_info: 8768: __dest._M_access() = &typeid(_Functor); 8768: break; 8768: 8768: case __get_functor_ptr: 8768: __dest._M_access<_Functor*>() = 8768: &_Base::_M_get_pointer(__source)->__value; 8768: break; 8768: 8768: default: 8768: _Base::_M_manager(__dest, __source, __op); 8768: } 8768: return false; 8768: } 8768: 8768: static void 8768: _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args) 8768: { 8768: std::__invoke(_Base::_M_get_pointer(__functor)->__value, 8768: std::forward<_ArgTypes>(__args)...); 8768: } 8768: }; 8768: 8768: template 8768: using __check_func_return_type 8768: = __or_, is_same<_From, _To>, is_convertible<_From, _To>>; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class function<_Res(_ArgTypes...)> 8768: : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, 8768: private _Function_base 8768: { 8768: template::type> 8768: struct _Callable : __check_func_return_type<_Res2, _Res> { }; 8768: 8768: 8768: 8768: template 8768: struct _Callable : false_type { }; 8768: 8768: template 8768: using _Requires = typename enable_if<_Cond::value, _Tp>::type; 8768: 8768: public: 8768: typedef _Res result_type; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: function() noexcept 8768: : _Function_base() { } 8768: 8768: 8768: 8768: 8768: 8768: function(nullptr_t) noexcept 8768: : _Function_base() { } 8768: # 413 "/usr/include/c++/8/bits/std_function.h" 3 8768: function(const function& __x); 8768: # 422 "/usr/include/c++/8/bits/std_function.h" 3 8768: function(function&& __x) noexcept : _Function_base() 8768: { 8768: __x.swap(*this); 8768: } 8768: # 443 "/usr/include/c++/8/bits/std_function.h" 3 8768: template>, void>, 8768: typename = _Requires<_Callable<_Functor>, void>> 8768: function(_Functor); 8768: # 460 "/usr/include/c++/8/bits/std_function.h" 3 8768: function& 8768: operator=(const function& __x) 8768: { 8768: function(__x).swap(*this); 8768: return *this; 8768: } 8768: # 478 "/usr/include/c++/8/bits/std_function.h" 3 8768: function& 8768: operator=(function&& __x) noexcept 8768: { 8768: function(std::move(__x)).swap(*this); 8768: return *this; 8768: } 8768: # 492 "/usr/include/c++/8/bits/std_function.h" 3 8768: function& 8768: operator=(nullptr_t) noexcept 8768: { 8768: if (_M_manager) 8768: { 8768: _M_manager(_M_functor, _M_functor, __destroy_functor); 8768: _M_manager = nullptr; 8768: _M_invoker = nullptr; 8768: } 8768: return *this; 8768: } 8768: # 520 "/usr/include/c++/8/bits/std_function.h" 3 8768: template 8768: _Requires<_Callable::type>, function&> 8768: operator=(_Functor&& __f) 8768: { 8768: function(std::forward<_Functor>(__f)).swap(*this); 8768: return *this; 8768: } 8768: 8768: 8768: template 8768: function& 8768: operator=(reference_wrapper<_Functor> __f) noexcept 8768: { 8768: function(__f).swap(*this); 8768: return *this; 8768: } 8768: # 546 "/usr/include/c++/8/bits/std_function.h" 3 8768: void swap(function& __x) noexcept 8768: { 8768: std::swap(_M_functor, __x._M_functor); 8768: std::swap(_M_manager, __x._M_manager); 8768: std::swap(_M_invoker, __x._M_invoker); 8768: } 8768: # 563 "/usr/include/c++/8/bits/std_function.h" 3 8768: explicit operator bool() const noexcept 8768: { return !_M_empty(); } 8768: # 576 "/usr/include/c++/8/bits/std_function.h" 3 8768: _Res operator()(_ArgTypes... __args) const; 8768: # 589 "/usr/include/c++/8/bits/std_function.h" 3 8768: const type_info& target_type() const noexcept; 8768: # 602 "/usr/include/c++/8/bits/std_function.h" 3 8768: template _Functor* target() noexcept; 8768: 8768: template const _Functor* target() const noexcept; 8768: 8768: 8768: 8768: private: 8768: using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...); 8768: _Invoker_type _M_invoker; 8768: }; 8768: # 651 "/usr/include/c++/8/bits/std_function.h" 3 8768: template 8768: function<_Res(_ArgTypes...)>:: 8768: function(const function& __x) 8768: : _Function_base() 8768: { 8768: if (static_cast(__x)) 8768: { 8768: __x._M_manager(_M_functor, __x._M_functor, __clone_functor); 8768: _M_invoker = __x._M_invoker; 8768: _M_manager = __x._M_manager; 8768: } 8768: } 8768: 8768: template 8768: template 8768: function<_Res(_ArgTypes...)>:: 8768: function(_Functor __f) 8768: : _Function_base() 8768: { 8768: typedef _Function_handler<_Res(_ArgTypes...), _Functor> _My_handler; 8768: 8768: if (_My_handler::_M_not_empty_function(__f)) 8768: { 8768: _My_handler::_M_init_functor(_M_functor, std::move(__f)); 8768: _M_invoker = &_My_handler::_M_invoke; 8768: _M_manager = &_My_handler::_M_manager; 8768: } 8768: } 8768: 8768: template 8768: _Res 8768: function<_Res(_ArgTypes...)>:: 8768: operator()(_ArgTypes... __args) const 8768: { 8768: if (_M_empty()) 8768: __throw_bad_function_call(); 8768: return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...); 8768: } 8768: 8768: 8768: template 8768: const type_info& 8768: function<_Res(_ArgTypes...)>:: 8768: target_type() const noexcept 8768: { 8768: if (_M_manager) 8768: { 8768: _Any_data __typeinfo_result; 8768: _M_manager(__typeinfo_result, _M_functor, __get_type_info); 8768: return *__typeinfo_result._M_access(); 8768: } 8768: else 8768: return typeid(void); 8768: } 8768: 8768: template 8768: template 8768: _Functor* 8768: function<_Res(_ArgTypes...)>:: 8768: target() noexcept 8768: { 8768: const function* __const_this = this; 8768: const _Functor* __func = __const_this->template target<_Functor>(); 8768: return const_cast<_Functor*>(__func); 8768: } 8768: 8768: template 8768: template 8768: const _Functor* 8768: function<_Res(_ArgTypes...)>:: 8768: target() const noexcept 8768: { 8768: if (typeid(_Functor) == target_type() && _M_manager) 8768: { 8768: _Any_data __ptr; 8768: _M_manager(__ptr, _M_functor, __get_functor_ptr); 8768: return __ptr._M_access(); 8768: } 8768: else 8768: return nullptr; 8768: } 8768: # 743 "/usr/include/c++/8/bits/std_function.h" 3 8768: template 8768: inline bool 8768: operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8768: { return !static_cast(__f); } 8768: 8768: 8768: template 8768: inline bool 8768: operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8768: { return !static_cast(__f); } 8768: # 761 "/usr/include/c++/8/bits/std_function.h" 3 8768: template 8768: inline bool 8768: operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept 8768: { return static_cast(__f); } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept 8768: { return static_cast(__f); } 8768: # 782 "/usr/include/c++/8/bits/std_function.h" 3 8768: template 8768: inline void 8768: swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept 8768: { __x.swap(__y); } 8768: 8768: 8768: } 8768: # 60 "/usr/include/c++/8/functional" 2 3 8768: # 68 "/usr/include/c++/8/functional" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 86 "/usr/include/c++/8/functional" 3 8768: template::value> 8768: class _Mem_fn_base 8768: : public _Mem_fn_traits<_MemFunPtr>::__maybe_type 8768: { 8768: using _Traits = _Mem_fn_traits<_MemFunPtr>; 8768: 8768: using _Arity = typename _Traits::__arity; 8768: using _Varargs = typename _Traits::__vararg; 8768: 8768: template 8768: friend struct _Bind_check_arity; 8768: 8768: _MemFunPtr _M_pmf; 8768: 8768: public: 8768: 8768: using result_type = typename _Traits::__result_type; 8768: 8768: explicit constexpr 8768: _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { } 8768: 8768: template 8768: auto 8768: operator()(_Args&&... __args) const 8768: noexcept(noexcept( 8768: std::__invoke(_M_pmf, std::forward<_Args>(__args)...))) 8768: -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...)) 8768: { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); } 8768: }; 8768: 8768: 8768: template 8768: class _Mem_fn_base<_MemObjPtr, false> 8768: { 8768: using _Arity = integral_constant; 8768: using _Varargs = false_type; 8768: 8768: template 8768: friend struct _Bind_check_arity; 8768: 8768: _MemObjPtr _M_pm; 8768: 8768: public: 8768: explicit constexpr 8768: _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { } 8768: 8768: template 8768: auto 8768: operator()(_Tp&& __obj) const 8768: noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))) 8768: -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) 8768: { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } 8768: }; 8768: 8768: template 8768: struct _Mem_fn; 8768: 8768: template 8768: struct _Mem_fn<_Res _Class::*> 8768: : _Mem_fn_base<_Res _Class::*> 8768: { 8768: using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base; 8768: }; 8768: # 158 "/usr/include/c++/8/functional" 3 8768: template 8768: inline _Mem_fn<_Tp _Class::*> 8768: mem_fn(_Tp _Class::* __pm) noexcept 8768: { 8768: return _Mem_fn<_Tp _Class::*>(__pm); 8768: } 8768: # 173 "/usr/include/c++/8/functional" 3 8768: template 8768: struct is_bind_expression 8768: : public false_type { }; 8768: # 184 "/usr/include/c++/8/functional" 3 8768: template 8768: struct is_placeholder 8768: : public integral_constant 8768: { }; 8768: # 199 "/usr/include/c++/8/functional" 3 8768: template struct _Placeholder { }; 8768: 8768: 8768: 8768: 8768: 8768: namespace placeholders 8768: { 8768: 8768: 8768: 8768: 8768: extern const _Placeholder<1> _1; 8768: extern const _Placeholder<2> _2; 8768: extern const _Placeholder<3> _3; 8768: extern const _Placeholder<4> _4; 8768: extern const _Placeholder<5> _5; 8768: extern const _Placeholder<6> _6; 8768: extern const _Placeholder<7> _7; 8768: extern const _Placeholder<8> _8; 8768: extern const _Placeholder<9> _9; 8768: extern const _Placeholder<10> _10; 8768: extern const _Placeholder<11> _11; 8768: extern const _Placeholder<12> _12; 8768: extern const _Placeholder<13> _13; 8768: extern const _Placeholder<14> _14; 8768: extern const _Placeholder<15> _15; 8768: extern const _Placeholder<16> _16; 8768: extern const _Placeholder<17> _17; 8768: extern const _Placeholder<18> _18; 8768: extern const _Placeholder<19> _19; 8768: extern const _Placeholder<20> _20; 8768: extern const _Placeholder<21> _21; 8768: extern const _Placeholder<22> _22; 8768: extern const _Placeholder<23> _23; 8768: extern const _Placeholder<24> _24; 8768: extern const _Placeholder<25> _25; 8768: extern const _Placeholder<26> _26; 8768: extern const _Placeholder<27> _27; 8768: extern const _Placeholder<28> _28; 8768: extern const _Placeholder<29> _29; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_placeholder<_Placeholder<_Num> > 8768: : public integral_constant 8768: { }; 8768: 8768: template 8768: struct is_placeholder > 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: 8768: template 8768: using _Safe_tuple_element_t 8768: = typename enable_if<(__i < tuple_size<_Tuple>::value), 8768: tuple_element<__i, _Tuple>>::type::type; 8768: # 275 "/usr/include/c++/8/functional" 3 8768: template::value, 8768: bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)> 8768: class _Mu; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class _Mu, false, false> 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: template 8768: _Tp& 8768: operator()(_CVRef& __arg, _Tuple&) const volatile 8768: { return __arg.get(); } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class _Mu<_Arg, true, false> 8768: { 8768: public: 8768: template 8768: auto 8768: operator()(_CVArg& __arg, 8768: tuple<_Args...>& __tuple) const volatile 8768: -> decltype(__arg(declval<_Args>()...)) 8768: { 8768: 8768: typedef typename _Build_index_tuple::__type 8768: _Indexes; 8768: return this->__call(__arg, __tuple, _Indexes()); 8768: } 8768: 8768: private: 8768: 8768: 8768: template 8768: auto 8768: __call(_CVArg& __arg, tuple<_Args...>& __tuple, 8768: const _Index_tuple<_Indexes...>&) const volatile 8768: -> decltype(__arg(declval<_Args>()...)) 8768: { 8768: return __arg(std::get<_Indexes>(std::move(__tuple))...); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class _Mu<_Arg, false, true> 8768: { 8768: public: 8768: template 8768: _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&& 8768: operator()(const volatile _Arg&, _Tuple& __tuple) const volatile 8768: { 8768: return 8768: ::std::get<(is_placeholder<_Arg>::value - 1)>(std::move(__tuple)); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: class _Mu<_Arg, false, false> 8768: { 8768: public: 8768: template 8768: _CVArg&& 8768: operator()(_CVArg&& __arg, _Tuple&) const volatile 8768: { return std::forward<_CVArg>(__arg); } 8768: }; 8768: 8768: 8768: template 8768: inline auto 8768: __volget(volatile tuple<_Tp...>& __tuple) 8768: -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile& 8768: { return std::get<_Ind>(const_cast&>(__tuple)); } 8768: 8768: 8768: template 8768: inline auto 8768: __volget(const volatile tuple<_Tp...>& __tuple) 8768: -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile& 8768: { return std::get<_Ind>(const_cast&>(__tuple)); } 8768: 8768: 8768: template 8768: struct _Bind; 8768: 8768: template 8768: class _Bind<_Functor(_Bound_args...)> 8768: : public _Weak_result_type<_Functor> 8768: { 8768: typedef typename _Build_index_tuple::__type 8768: _Bound_indexes; 8768: 8768: _Functor _M_f; 8768: tuple<_Bound_args...> _M_bound_args; 8768: 8768: 8768: template 8768: _Result 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8768: { 8768: return std::__invoke(_M_f, 8768: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8768: ); 8768: } 8768: 8768: 8768: template 8768: _Result 8768: __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8768: { 8768: return std::__invoke(_M_f, 8768: _Mu<_Bound_args>()(std::get<_Indexes>(_M_bound_args), __args)... 8768: ); 8768: } 8768: 8768: 8768: template 8768: _Result 8768: __call_v(tuple<_Args...>&& __args, 8768: _Index_tuple<_Indexes...>) volatile 8768: { 8768: return std::__invoke(_M_f, 8768: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8768: ); 8768: } 8768: 8768: 8768: template 8768: _Result 8768: __call_c_v(tuple<_Args...>&& __args, 8768: _Index_tuple<_Indexes...>) const volatile 8768: { 8768: return std::__invoke(_M_f, 8768: _Mu<_Bound_args>()(__volget<_Indexes>(_M_bound_args), __args)... 8768: ); 8768: } 8768: 8768: template 8768: using _Mu_type = decltype( 8768: _Mu::type>()( 8768: std::declval<_BoundArg&>(), std::declval<_CallArgs&>()) ); 8768: 8768: template 8768: using _Res_type_impl 8768: = typename result_of< _Fn&(_Mu_type<_BArgs, _CallArgs>&&...) >::type; 8768: 8768: template 8768: using _Res_type = _Res_type_impl<_Functor, _CallArgs, _Bound_args...>; 8768: 8768: template 8768: using __dependent = typename 8768: enable_if::value+1), _Functor>::type; 8768: 8768: template class __cv_quals> 8768: using _Res_type_cv = _Res_type_impl< 8768: typename __cv_quals<__dependent<_CallArgs>>::type, 8768: _CallArgs, 8768: typename __cv_quals<_Bound_args>::type...>; 8768: 8768: public: 8768: template 8768: explicit _Bind(const _Functor& __f, _Args&&... __args) 8768: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8768: { } 8768: 8768: template 8768: explicit _Bind(_Functor&& __f, _Args&&... __args) 8768: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8768: { } 8768: 8768: _Bind(const _Bind&) = default; 8768: 8768: _Bind(_Bind&& __b) 8768: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8768: { } 8768: 8768: 8768: template>> 8768: _Result 8768: operator()(_Args&&... __args) 8768: { 8768: return this->__call<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: 8768: 8768: template, add_const>> 8768: _Result 8768: operator()(_Args&&... __args) const 8768: { 8768: return this->__call_c<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: # 505 "/usr/include/c++/8/functional" 3 8768: template, add_volatile>> 8768: 8768: _Result 8768: operator()(_Args&&... __args) volatile 8768: { 8768: return this->__call_v<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: 8768: 8768: template, add_cv>> 8768: 8768: _Result 8768: operator()(_Args&&... __args) const volatile 8768: { 8768: return this->__call_c_v<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: }; 8768: 8768: 8768: template 8768: struct _Bind_result; 8768: 8768: template 8768: class _Bind_result<_Result, _Functor(_Bound_args...)> 8768: { 8768: typedef typename _Build_index_tuple::__type 8768: _Bound_indexes; 8768: 8768: _Functor _M_f; 8768: tuple<_Bound_args...> _M_bound_args; 8768: 8768: 8768: template 8768: using __enable_if_void 8768: = typename enable_if{}>::type; 8768: 8768: template 8768: using __disable_if_void 8768: = typename enable_if{}, _Result>::type; 8768: 8768: 8768: template 8768: __disable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8768: { 8768: return std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (std::get<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __enable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) 8768: { 8768: std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (std::get<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __disable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8768: { 8768: return std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (std::get<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __enable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const 8768: { 8768: std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (std::get<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __disable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8768: { 8768: return std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (__volget<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __enable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) volatile 8768: { 8768: std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (__volget<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __disable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, 8768: _Index_tuple<_Indexes...>) const volatile 8768: { 8768: return std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (__volget<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: 8768: template 8768: __enable_if_void<_Res> 8768: __call(tuple<_Args...>&& __args, 8768: _Index_tuple<_Indexes...>) const volatile 8768: { 8768: std::__invoke(_M_f, _Mu<_Bound_args>() 8768: (__volget<_Indexes>(_M_bound_args), __args)...); 8768: } 8768: 8768: public: 8768: typedef _Result result_type; 8768: 8768: template 8768: explicit _Bind_result(const _Functor& __f, _Args&&... __args) 8768: : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...) 8768: { } 8768: 8768: template 8768: explicit _Bind_result(_Functor&& __f, _Args&&... __args) 8768: : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...) 8768: { } 8768: 8768: _Bind_result(const _Bind_result&) = default; 8768: 8768: _Bind_result(_Bind_result&& __b) 8768: : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args)) 8768: { } 8768: 8768: 8768: template 8768: result_type 8768: operator()(_Args&&... __args) 8768: { 8768: return this->__call<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: 8768: 8768: template 8768: result_type 8768: operator()(_Args&&... __args) const 8768: { 8768: return this->__call<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: 8768: 8768: template 8768: 8768: result_type 8768: operator()(_Args&&... __args) volatile 8768: { 8768: return this->__call<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: 8768: 8768: template 8768: 8768: result_type 8768: operator()(_Args&&... __args) const volatile 8768: { 8768: return this->__call<_Result>( 8768: std::forward_as_tuple(std::forward<_Args>(__args)...), 8768: _Bound_indexes()); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression<_Bind<_Signature> > 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression > 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression > 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression> 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression<_Bind_result<_Result, _Signature>> 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression> 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression> 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct is_bind_expression> 8768: : public true_type { }; 8768: 8768: template 8768: struct _Bind_check_arity { }; 8768: 8768: template 8768: struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...> 8768: { 8768: static_assert(sizeof...(_BoundArgs) == sizeof...(_Args), 8768: "Wrong number of arguments for function"); 8768: }; 8768: 8768: template 8768: struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...> 8768: { 8768: static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args), 8768: "Wrong number of arguments for function"); 8768: }; 8768: 8768: template 8768: struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...> 8768: { 8768: using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity; 8768: using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs; 8768: static_assert(_Varargs::value 8768: ? sizeof...(_BoundArgs) >= _Arity::value + 1 8768: : sizeof...(_BoundArgs) == _Arity::value + 1, 8768: "Wrong number of arguments for pointer-to-member"); 8768: }; 8768: 8768: 8768: 8768: 8768: template::type> 8768: using __is_socketlike = __or_, is_enum<_Tp2>>; 8768: 8768: template 8768: struct _Bind_helper 8768: : _Bind_check_arity::type, _BoundArgs...> 8768: { 8768: typedef typename decay<_Func>::type __func_type; 8768: typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct _Bind_helper 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline typename 8768: _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type 8768: bind(_Func&& __f, _BoundArgs&&... __args) 8768: { 8768: typedef _Bind_helper __helper_type; 8768: return typename __helper_type::type(std::forward<_Func>(__f), 8768: std::forward<_BoundArgs>(__args)...); 8768: } 8768: 8768: template 8768: struct _Bindres_helper 8768: : _Bind_check_arity::type, _BoundArgs...> 8768: { 8768: typedef typename decay<_Func>::type __functor_type; 8768: typedef _Bind_result<_Result, 8768: __functor_type(typename decay<_BoundArgs>::type...)> 8768: type; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: inline 8768: typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type 8768: bind(_Func&& __f, _BoundArgs&&... __args) 8768: { 8768: typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type; 8768: return typename __helper_type::type(std::forward<_Func>(__f), 8768: std::forward<_BoundArgs>(__args)...); 8768: } 8768: # 1192 "/usr/include/c++/8/functional" 3 8768: 8768: } 8768: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 69 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: template inline bool qMapLessThanKey(const Key &key1, const Key &key2) 8768: { 8768: return key1 < key2; 8768: } 8768: 8768: template inline bool qMapLessThanKey(const Ptr *key1, const Ptr *key2) 8768: { 8768: return std::less()(key1, key2); 8768: } 8768: 8768: struct QMapDataBase; 8768: template struct QMapData; 8768: 8768: struct __attribute__((visibility("default"))) QMapNodeBase 8768: { 8768: quintptr p; 8768: QMapNodeBase *left; 8768: QMapNodeBase *right; 8768: 8768: enum Color { Red = 0, Black = 1 }; 8768: enum { Mask = 3 }; 8768: 8768: const QMapNodeBase *nextNode() const; 8768: QMapNodeBase *nextNode() { return const_cast(const_cast(this)->nextNode()); } 8768: const QMapNodeBase *previousNode() const; 8768: QMapNodeBase *previousNode() { return const_cast(const_cast(this)->previousNode()); } 8768: 8768: Color color() const { return Color(p & 1); } 8768: void setColor(Color c) { if (c == Black) p |= Black; else p &= ~Black; } 8768: QMapNodeBase *parent() const { return reinterpret_cast(p & ~Mask); } 8768: void setParent(QMapNodeBase *pp) { p = (p & Mask) | quintptr(pp); } 8768: 8768: template 8768: static typename std::enable_if::isComplex>::type 8768: callDestructorIfNecessary(T &t) noexcept { (void)t;; t.~T(); } 8768: template 8768: static typename std::enable_if::isComplex>::type 8768: callDestructorIfNecessary(T &) noexcept {} 8768: }; 8768: 8768: template 8768: struct QMapNode : public QMapNodeBase 8768: { 8768: Key key; 8768: T value; 8768: 8768: inline QMapNode *leftNode() const { return static_cast(left); } 8768: inline QMapNode *rightNode() const { return static_cast(right); } 8768: 8768: inline const QMapNode *nextNode() const { return static_cast(QMapNodeBase::nextNode()); } 8768: inline const QMapNode *previousNode() const { return static_cast(QMapNodeBase::previousNode()); } 8768: inline QMapNode *nextNode() { return static_cast(QMapNodeBase::nextNode()); } 8768: inline QMapNode *previousNode() { return static_cast(QMapNodeBase::previousNode()); } 8768: 8768: QMapNode *copy(QMapData *d) const; 8768: 8768: void destroySubTree() 8768: { 8768: callDestructorIfNecessary(key); 8768: callDestructorIfNecessary(value); 8768: doDestroySubTree(std::integral_constant::isComplex || QTypeInfo::isComplex>()); 8768: } 8768: 8768: QMapNode *lowerBound(const Key &key); 8768: QMapNode *upperBound(const Key &key); 8768: 8768: private: 8768: void doDestroySubTree(std::false_type) {} 8768: void doDestroySubTree(std::true_type) 8768: { 8768: if (left) 8768: leftNode()->destroySubTree(); 8768: if (right) 8768: rightNode()->destroySubTree(); 8768: } 8768: 8768: QMapNode() = delete; 8768: QMapNode(const QMapNode &) = delete; QMapNode &operator=(const QMapNode &) = delete; 8768: }; 8768: 8768: template 8768: inline QMapNode *QMapNode::lowerBound(const Key &akey) 8768: { 8768: QMapNode *n = this; 8768: QMapNode *lastNode = nullptr; 8768: while (n) { 8768: if (!qMapLessThanKey(n->key, akey)) { 8768: lastNode = n; 8768: n = n->leftNode(); 8768: } else { 8768: n = n->rightNode(); 8768: } 8768: } 8768: return lastNode; 8768: } 8768: 8768: template 8768: inline QMapNode *QMapNode::upperBound(const Key &akey) 8768: { 8768: QMapNode *n = this; 8768: QMapNode *lastNode = nullptr; 8768: while (n) { 8768: if (qMapLessThanKey(akey, n->key)) { 8768: lastNode = n; 8768: n = n->leftNode(); 8768: } else { 8768: n = n->rightNode(); 8768: } 8768: } 8768: return lastNode; 8768: } 8768: 8768: 8768: 8768: struct __attribute__((visibility("default"))) QMapDataBase 8768: { 8768: QtPrivate::RefCount ref; 8768: int size; 8768: QMapNodeBase header; 8768: QMapNodeBase *mostLeftNode; 8768: 8768: void rotateLeft(QMapNodeBase *x); 8768: void rotateRight(QMapNodeBase *x); 8768: void rebalance(QMapNodeBase *x); 8768: void freeNodeAndRebalance(QMapNodeBase *z); 8768: void recalcMostLeftNode(); 8768: 8768: QMapNodeBase *createNode(int size, int alignment, QMapNodeBase *parent, bool left); 8768: void freeTree(QMapNodeBase *root, int alignment); 8768: 8768: static const QMapDataBase shared_null; 8768: 8768: static QMapDataBase *createData(); 8768: static void freeData(QMapDataBase *d); 8768: }; 8768: 8768: template 8768: struct QMapData : public QMapDataBase 8768: { 8768: typedef QMapNode Node; 8768: 8768: Node *root() const { return static_cast(header.left); } 8768: 8768: 8768: 8768: const Node *end() const { return reinterpret_cast(&header); } 8768: Node *end() { return reinterpret_cast(&header); } 8768: const Node *begin() const { if (root()) return static_cast(mostLeftNode); return end(); } 8768: Node *begin() { if (root()) return static_cast(mostLeftNode); return end(); } 8768: 8768: void deleteNode(Node *z); 8768: Node *findNode(const Key &akey) const; 8768: void nodeRange(const Key &akey, Node **firstNode, Node **lastNode); 8768: 8768: Node *createNode(const Key &k, const T &v, Node *parent = nullptr, bool left = false) 8768: { 8768: Node *n = static_cast(QMapDataBase::createNode(sizeof(Node), alignof(Node), 8768: parent, left)); 8768: try { 8768: new (&n->key) Key(k); 8768: try { 8768: new (&n->value) T(v); 8768: } catch (...) { 8768: n->key.~Key(); 8768: throw; 8768: } 8768: } catch (...) { 8768: QMapDataBase::freeNodeAndRebalance(n); 8768: throw; 8768: } 8768: return n; 8768: } 8768: 8768: static QMapData *create() { 8768: return static_cast(createData()); 8768: } 8768: 8768: void destroy() { 8768: if (root()) { 8768: root()->destroySubTree(); 8768: freeTree(header.left, alignof(Node)); 8768: } 8768: freeData(this); 8768: } 8768: }; 8768: 8768: template 8768: QMapNode *QMapNode::copy(QMapData *d) const 8768: { 8768: QMapNode *n = d->createNode(key, value); 8768: n->setColor(color()); 8768: if (left) { 8768: n->left = leftNode()->copy(d); 8768: n->left->setParent(n); 8768: } else { 8768: n->left = nullptr; 8768: } 8768: if (right) { 8768: n->right = rightNode()->copy(d); 8768: n->right->setParent(n); 8768: } else { 8768: n->right = nullptr; 8768: } 8768: return n; 8768: } 8768: 8768: template 8768: void QMapData::deleteNode(QMapNode *z) 8768: { 8768: QMapNodeBase::callDestructorIfNecessary(z->key); 8768: QMapNodeBase::callDestructorIfNecessary(z->value); 8768: freeNodeAndRebalance(z); 8768: } 8768: 8768: template 8768: QMapNode *QMapData::findNode(const Key &akey) const 8768: { 8768: if (Node *r = root()) { 8768: Node *lb = r->lowerBound(akey); 8768: if (lb && !qMapLessThanKey(akey, lb->key)) 8768: return lb; 8768: } 8768: return nullptr; 8768: } 8768: 8768: 8768: template 8768: void QMapData::nodeRange(const Key &akey, QMapNode **firstNode, QMapNode **lastNode) 8768: { 8768: Node *n = root(); 8768: Node *l = end(); 8768: while (n) { 8768: if (qMapLessThanKey(akey, n->key)) { 8768: l = n; 8768: n = n->leftNode(); 8768: } else if (qMapLessThanKey(n->key, akey)) { 8768: n = n->rightNode(); 8768: } else { 8768: *firstNode = n->leftNode() ? n->leftNode()->lowerBound(akey) : nullptr; 8768: if (!*firstNode) 8768: *firstNode = n; 8768: *lastNode = n->rightNode() ? n->rightNode()->upperBound(akey) : nullptr; 8768: if (!*lastNode) 8768: *lastNode = l; 8768: return; 8768: } 8768: } 8768: *firstNode = *lastNode = l; 8768: } 8768: 8768: 8768: template 8768: class QMap 8768: { 8768: typedef QMapNode Node; 8768: 8768: QMapData *d; 8768: 8768: public: 8768: inline QMap() noexcept : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } 8768: 8768: inline QMap(std::initializer_list > list) 8768: : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) 8768: { 8768: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8768: insert(it->first, it->second); 8768: } 8768: 8768: QMap(const QMap &other); 8768: 8768: inline ~QMap() { if (!d->ref.deref()) d->destroy(); } 8768: 8768: QMap &operator=(const QMap &other); 8768: 8768: inline QMap(QMap &&other) noexcept 8768: : d(other.d) 8768: { 8768: other.d = static_cast *>( 8768: const_cast(&QMapDataBase::shared_null)); 8768: } 8768: 8768: inline QMap &operator=(QMap &&other) noexcept 8768: { QMap moved(std::move(other)); swap(moved); return *this; } 8768: 8768: inline void swap(QMap &other) noexcept { qSwap(d, other.d); } 8768: explicit QMap(const typename std::map &other); 8768: std::map toStdMap() const; 8768: 8768: bool operator==(const QMap &other) const; 8768: inline bool operator!=(const QMap &other) const { return !(*this == other); } 8768: 8768: inline int size() const { return d->size; } 8768: 8768: inline bool isEmpty() const { return d->size == 0; } 8768: 8768: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8768: inline bool isDetached() const { return !d->ref.isShared(); } 8768: 8768: inline void setSharable(bool sharable) 8768: { 8768: if (sharable == d->ref.isSharable()) 8768: return; 8768: if (!sharable) 8768: detach(); 8768: 8768: d->ref.setSharable(sharable); 8768: } 8768: 8768: inline bool isSharedWith(const QMap &other) const { return d == other.d; } 8768: 8768: void clear(); 8768: 8768: int remove(const Key &key); 8768: T take(const Key &key); 8768: 8768: bool contains(const Key &key) const; 8768: const Key key(const T &value, const Key &defaultKey = Key()) const; 8768: const T value(const Key &key, const T &defaultValue = T()) const; 8768: T &operator[](const Key &key); 8768: const T operator[](const Key &key) const; 8768: 8768: QList uniqueKeys() const; 8768: QList keys() const; 8768: QList keys(const T &value) const; 8768: QList values() const; 8768: QList values(const Key &key) const; 8768: int count(const Key &key) const; 8768: 8768: inline const Key &firstKey() const { do { } while ((false) && (!isEmpty())); return constBegin().key(); } 8768: inline const Key &lastKey() const { do { } while ((false) && (!isEmpty())); return (constEnd() - 1).key(); } 8768: 8768: inline T &first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *constBegin(); } 8768: inline T &last() { do { } while ((false) && (!isEmpty())); return *(end() - 1); } 8768: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(constEnd() - 1); } 8768: 8768: class const_iterator; 8768: 8768: class iterator 8768: { 8768: friend class const_iterator; 8768: Node *i; 8768: 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef T *pointer; 8768: typedef T &reference; 8768: 8768: inline iterator() : i(nullptr) { } 8768: inline iterator(Node *node) : i(node) { } 8768: 8768: inline const Key &key() const { return i->key; } 8768: inline T &value() const { return i->value; } 8768: inline T &operator*() const { return i->value; } 8768: inline T *operator->() const { return &i->value; } 8768: inline bool operator==(const iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const iterator &o) const { return i != o.i; } 8768: 8768: inline iterator &operator++() { 8768: i = i->nextNode(); 8768: return *this; 8768: } 8768: inline iterator operator++(int) { 8768: iterator r = *this; 8768: i = i->nextNode(); 8768: return r; 8768: } 8768: inline iterator &operator--() { 8768: i = i->previousNode(); 8768: return *this; 8768: } 8768: inline iterator operator--(int) { 8768: iterator r = *this; 8768: i = i->previousNode(); 8768: return r; 8768: } 8768: inline iterator operator+(int j) const 8768: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8768: inline iterator operator-(int j) const { return operator+(-j); } 8768: inline iterator &operator+=(int j) { return *this = *this + j; } 8768: inline iterator &operator-=(int j) { return *this = *this - j; } 8768: # 460 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: friend class QMap; 8768: }; 8768: friend class iterator; 8768: 8768: class const_iterator 8768: { 8768: friend class iterator; 8768: const Node *i; 8768: 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: 8768: constexpr inline const_iterator() : i(nullptr) { } 8768: inline const_iterator(const Node *node) : i(node) { } 8768: 8768: explicit inline const_iterator(const iterator &o) 8768: 8768: 8768: 8768: { i = o.i; } 8768: 8768: inline const Key &key() const { return i->key; } 8768: inline const T &value() const { return i->value; } 8768: inline const T &operator*() const { return i->value; } 8768: inline const T *operator->() const { return &i->value; } 8768: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8768: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8768: 8768: inline const_iterator &operator++() { 8768: i = i->nextNode(); 8768: return *this; 8768: } 8768: inline const_iterator operator++(int) { 8768: const_iterator r = *this; 8768: i = i->nextNode(); 8768: return r; 8768: } 8768: inline const_iterator &operator--() { 8768: i = i->previousNode(); 8768: return *this; 8768: } 8768: inline const_iterator operator--(int) { 8768: const_iterator r = *this; 8768: i = i->previousNode(); 8768: return r; 8768: } 8768: inline const_iterator operator+(int j) const 8768: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8768: inline const_iterator operator-(int j) const { return operator+(-j); } 8768: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8768: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8768: 8768: 8768: private: 8768: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8768: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8768: 8768: friend class QMap; 8768: }; 8768: friend class const_iterator; 8768: 8768: class key_iterator 8768: { 8768: const_iterator i; 8768: 8768: public: 8768: typedef typename const_iterator::iterator_category iterator_category; 8768: typedef typename const_iterator::difference_type difference_type; 8768: typedef Key value_type; 8768: typedef const Key *pointer; 8768: typedef const Key &reference; 8768: 8768: key_iterator() = default; 8768: explicit key_iterator(const_iterator o) : i(o) { } 8768: 8768: const Key &operator*() const { return i.key(); } 8768: const Key *operator->() const { return &i.key(); } 8768: bool operator==(key_iterator o) const { return i == o.i; } 8768: bool operator!=(key_iterator o) const { return i != o.i; } 8768: 8768: inline key_iterator &operator++() { ++i; return *this; } 8768: inline key_iterator operator++(int) { return key_iterator(i++);} 8768: inline key_iterator &operator--() { --i; return *this; } 8768: inline key_iterator operator--(int) { return key_iterator(i--); } 8768: const_iterator base() const { return i; } 8768: }; 8768: 8768: 8768: 8768: inline iterator begin() { detach(); return iterator(d->begin()); } 8768: inline const_iterator begin() const { return const_iterator(d->begin()); } 8768: inline const_iterator constBegin() const { return const_iterator(d->begin()); } 8768: inline const_iterator cbegin() const { return const_iterator(d->begin()); } 8768: inline iterator end() { detach(); return iterator(d->end()); } 8768: inline const_iterator end() const { return const_iterator(d->end()); } 8768: inline const_iterator constEnd() const { return const_iterator(d->end()); } 8768: inline const_iterator cend() const { return const_iterator(d->end()); } 8768: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8768: inline key_iterator keyEnd() const { return key_iterator(end()); } 8768: iterator erase(iterator it); 8768: 8768: 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: inline int count() const { return d->size; } 8768: iterator find(const Key &key); 8768: const_iterator find(const Key &key) const; 8768: const_iterator constFind(const Key &key) const; 8768: iterator lowerBound(const Key &key); 8768: const_iterator lowerBound(const Key &key) const; 8768: iterator upperBound(const Key &key); 8768: const_iterator upperBound(const Key &key) const; 8768: iterator insert(const Key &key, const T &value); 8768: iterator insert(const_iterator pos, const Key &key, const T &value); 8768: iterator insertMulti(const Key &key, const T &value); 8768: iterator insertMulti(const_iterator pos, const Key &akey, const T &avalue); 8768: QMap &unite(const QMap &other); 8768: 8768: 8768: typedef Key key_type; 8768: typedef T mapped_type; 8768: typedef qptrdiff difference_type; 8768: typedef int size_type; 8768: inline bool empty() const { return isEmpty(); } 8768: QPair equal_range(const Key &akey); 8768: QPair equal_range(const Key &akey) const; 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: void detach_helper(); 8768: bool isValidIterator(const const_iterator &ci) const 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: (void)ci;; 8768: return true; 8768: 8768: } 8768: }; 8768: 8768: template 8768: inline QMap::QMap(const QMap &other) 8768: { 8768: if (other.d->ref.ref()) { 8768: d = other.d; 8768: } else { 8768: d = QMapData::create(); 8768: if (other.d->header.left) { 8768: d->header.left = static_cast(other.d->header.left)->copy(d); 8768: d->header.left->setParent(&d->header); 8768: d->recalcMostLeftNode(); 8768: } 8768: } 8768: } 8768: 8768: template 8768: inline QMap &QMap::operator=(const QMap &other) 8768: { 8768: if (d != other.d) { 8768: QMap tmp(other); 8768: tmp.swap(*this); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: inline void QMap::clear() 8768: { 8768: *this = QMap(); 8768: } 8768: 8768: 8768: # 642 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 642 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: 8768: 8768: 8768: template 8768: inline const T QMap::value(const Key &akey, const T &adefaultValue) const 8768: { 8768: Node *n = d->findNode(akey); 8768: return n ? n->value : adefaultValue; 8768: } 8768: 8768: 8768: # 652 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 652 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: 8768: 8768: template 8768: inline const T QMap::operator[](const Key &akey) const 8768: { 8768: return value(akey); 8768: } 8768: 8768: template 8768: inline T &QMap::operator[](const Key &akey) 8768: { 8768: detach(); 8768: Node *n = d->findNode(akey); 8768: if (!n) 8768: return *insert(akey, T()); 8768: return n->value; 8768: } 8768: 8768: template 8768: inline int QMap::count(const Key &akey) const 8768: { 8768: Node *firstNode; 8768: Node *lastNode; 8768: d->nodeRange(akey, &firstNode, &lastNode); 8768: 8768: const_iterator ci_first(firstNode); 8768: const const_iterator ci_last(lastNode); 8768: int cnt = 0; 8768: while (ci_first != ci_last) { 8768: ++cnt; 8768: ++ci_first; 8768: } 8768: return cnt; 8768: } 8768: 8768: template 8768: inline bool QMap::contains(const Key &akey) const 8768: { 8768: return d->findNode(akey) != nullptr; 8768: } 8768: 8768: template 8768: inline typename QMap::iterator QMap::insert(const Key &akey, const T &avalue) 8768: { 8768: detach(); 8768: Node *n = d->root(); 8768: Node *y = d->end(); 8768: Node *lastNode = nullptr; 8768: bool left = true; 8768: while (n) { 8768: y = n; 8768: if (!qMapLessThanKey(n->key, akey)) { 8768: lastNode = n; 8768: left = true; 8768: n = n->leftNode(); 8768: } else { 8768: left = false; 8768: n = n->rightNode(); 8768: } 8768: } 8768: if (lastNode && !qMapLessThanKey(akey, lastNode->key)) { 8768: lastNode->value = avalue; 8768: return iterator(lastNode); 8768: } 8768: Node *z = d->createNode(akey, avalue, y, left); 8768: return iterator(z); 8768: } 8768: 8768: template 8768: typename QMap::iterator QMap::insert(const_iterator pos, const Key &akey, const T &avalue) 8768: { 8768: if (d->ref.isShared()) 8768: return this->insert(akey, avalue); 8768: 8768: do { } while ((false) && (isValidIterator(pos))); 8768: 8768: if (pos == constEnd()) { 8768: 8768: Node *n = static_cast(pos.i->left); 8768: if (n) { 8768: while (n->right) 8768: n = static_cast(n->right); 8768: 8768: if (!qMapLessThanKey(n->key, akey)) 8768: return this->insert(akey, avalue); 8768: 8768: 8768: 8768: 8768: Node *z = d->createNode(akey, avalue, n, false); 8768: return iterator(z); 8768: } 8768: return this->insert(akey, avalue); 8768: } else { 8768: 8768: 8768: Node *next = const_cast(pos.i); 8768: if (qMapLessThanKey(next->key, akey)) 8768: return this->insert(akey, avalue); 8768: 8768: if (pos == constBegin()) { 8768: 8768: 8768: if (!qMapLessThanKey(akey, next->key)) { 8768: next->value = avalue; 8768: return iterator(next); 8768: } 8768: 8768: Node *z = d->createNode(akey, avalue, begin().i, true); 8768: return iterator(z); 8768: } else { 8768: Node *prev = const_cast(pos.i->previousNode()); 8768: if (!qMapLessThanKey(prev->key, akey)) { 8768: return this->insert(akey, avalue); 8768: } 8768: 8768: if (!qMapLessThanKey(akey, next->key)) { 8768: next->value = avalue; 8768: return iterator(next); 8768: } 8768: 8768: 8768: if (prev->right == nullptr) { 8768: Node *z = d->createNode(akey, avalue, prev, false); 8768: return iterator(z); 8768: } 8768: if (next->left == nullptr) { 8768: Node *z = d->createNode(akey, avalue, next, true); 8768: return iterator(z); 8768: } 8768: do { } while ((false) && (false)); 8768: return this->insert(akey, avalue); 8768: } 8768: } 8768: } 8768: 8768: template 8768: inline typename QMap::iterator QMap::insertMulti(const Key &akey, 8768: const T &avalue) 8768: { 8768: detach(); 8768: Node* y = d->end(); 8768: Node* x = static_cast(d->root()); 8768: bool left = true; 8768: while (x != nullptr) { 8768: left = !qMapLessThanKey(x->key, akey); 8768: y = x; 8768: x = left ? x->leftNode() : x->rightNode(); 8768: } 8768: Node *z = d->createNode(akey, avalue, y, left); 8768: return iterator(z); 8768: } 8768: 8768: template 8768: typename QMap::iterator QMap::insertMulti(const_iterator pos, const Key &akey, const T &avalue) 8768: { 8768: if (d->ref.isShared()) 8768: return this->insertMulti(akey, avalue); 8768: 8768: do { } while ((false) && (isValidIterator(pos))); 8768: 8768: if (pos == constEnd()) { 8768: 8768: Node *n = static_cast(pos.i->left); 8768: if (n) { 8768: while (n->right) 8768: n = static_cast(n->right); 8768: 8768: if (!qMapLessThanKey(n->key, akey)) 8768: return this->insertMulti(akey, avalue); 8768: Node *z = d->createNode(akey, avalue, n, false); 8768: return iterator(z); 8768: } 8768: return this->insertMulti(akey, avalue); 8768: } else { 8768: 8768: 8768: Node *next = const_cast(pos.i); 8768: if (qMapLessThanKey(next->key, akey)) 8768: return this->insertMulti(akey, avalue); 8768: 8768: if (pos == constBegin()) { 8768: 8768: Node *z = d->createNode(akey, avalue, begin().i, true); 8768: return iterator(z); 8768: } else { 8768: Node *prev = const_cast(pos.i->previousNode()); 8768: if (!qMapLessThanKey(prev->key, akey)) 8768: return this->insertMulti(akey, avalue); 8768: 8768: 8768: if (prev->right == nullptr) { 8768: Node *z = d->createNode(akey, avalue, prev, false); 8768: return iterator(z); 8768: } 8768: if (next->left == nullptr) { 8768: Node *z = d->createNode(akey, avalue, next, true); 8768: return iterator(z); 8768: } 8768: do { } while ((false) && (false)); 8768: return this->insertMulti(akey, avalue); 8768: } 8768: } 8768: } 8768: 8768: 8768: template 8768: inline typename QMap::const_iterator QMap::constFind(const Key &akey) const 8768: { 8768: Node *n = d->findNode(akey); 8768: return const_iterator(n ? n : d->end()); 8768: } 8768: 8768: template 8768: inline typename QMap::const_iterator QMap::find(const Key &akey) const 8768: { 8768: return constFind(akey); 8768: } 8768: 8768: template 8768: inline typename QMap::iterator QMap::find(const Key &akey) 8768: { 8768: detach(); 8768: Node *n = d->findNode(akey); 8768: return iterator(n ? n : d->end()); 8768: } 8768: 8768: template 8768: inline QMap &QMap::unite(const QMap &other) 8768: { 8768: QMap copy(other); 8768: const_iterator it = copy.constEnd(); 8768: const const_iterator b = copy.constBegin(); 8768: while (it != b) { 8768: --it; 8768: insertMulti(it.key(), it.value()); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: QPair::iterator, typename QMap::iterator> QMap::equal_range(const Key &akey) 8768: { 8768: detach(); 8768: Node *firstNode, *lastNode; 8768: d->nodeRange(akey, &firstNode, &lastNode); 8768: return QPair(iterator(firstNode), iterator(lastNode)); 8768: } 8768: 8768: template 8768: QPair::const_iterator, typename QMap::const_iterator> 8768: QMap::equal_range(const Key &akey) const 8768: { 8768: Node *firstNode, *lastNode; 8768: d->nodeRange(akey, &firstNode, &lastNode); 8768: return qMakePair(const_iterator(firstNode), const_iterator(lastNode)); 8768: } 8768: # 932 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h" 3 4 8768: template 8768: int QMap::remove(const Key &akey) 8768: { 8768: detach(); 8768: int n = 0; 8768: while (Node *node = d->findNode(akey)) { 8768: d->deleteNode(node); 8768: ++n; 8768: } 8768: return n; 8768: } 8768: 8768: template 8768: T QMap::take(const Key &akey) 8768: { 8768: detach(); 8768: 8768: Node *node = d->findNode(akey); 8768: if (node) { 8768: T t = node->value; 8768: d->deleteNode(node); 8768: return t; 8768: } 8768: return T(); 8768: } 8768: 8768: template 8768: typename QMap::iterator QMap::erase(iterator it) 8768: { 8768: if (it == iterator(d->end())) 8768: return it; 8768: 8768: do { } while ((false) && (isValidIterator(const_iterator(it)))); 8768: 8768: if (d->ref.isShared()) { 8768: const_iterator oldBegin = constBegin(); 8768: const_iterator old = const_iterator(it); 8768: int backStepsWithSameKey = 0; 8768: 8768: while (old != oldBegin) { 8768: --old; 8768: if (qMapLessThanKey(old.key(), it.key())) 8768: break; 8768: ++backStepsWithSameKey; 8768: } 8768: 8768: it = find(old.key()); 8768: do { } while ((false) && (it != iterator(d->end()))); 8768: 8768: while (backStepsWithSameKey > 0) { 8768: ++it; 8768: --backStepsWithSameKey; 8768: } 8768: } 8768: 8768: Node *n = it.i; 8768: ++it; 8768: d->deleteNode(n); 8768: return it; 8768: } 8768: 8768: template 8768: void QMap::detach_helper() 8768: { 8768: QMapData *x = QMapData::create(); 8768: if (d->header.left) { 8768: x->header.left = static_cast(d->header.left)->copy(x); 8768: x->header.left->setParent(&x->header); 8768: } 8768: if (!d->ref.deref()) 8768: d->destroy(); 8768: d = x; 8768: d->recalcMostLeftNode(); 8768: } 8768: 8768: template 8768: QList QMap::uniqueKeys() const 8768: { 8768: QList res; 8768: res.reserve(size()); 8768: const_iterator i = begin(); 8768: if (i != end()) { 8768: for (;;) { 8768: const Key &aKey = i.key(); 8768: res.append(aKey); 8768: do { 8768: if (++i == end()) 8768: goto break_out_of_outer_loop; 8768: } while (!qMapLessThanKey(aKey, i.key())); 8768: } 8768: } 8768: break_out_of_outer_loop: 8768: return res; 8768: } 8768: 8768: template 8768: QList QMap::keys() const 8768: { 8768: QList res; 8768: res.reserve(size()); 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: res.append(i.key()); 8768: ++i; 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: QList QMap::keys(const T &avalue) const 8768: { 8768: QList res; 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: if (i.value() == avalue) 8768: res.append(i.key()); 8768: ++i; 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: const Key QMap::key(const T &avalue, const Key &defaultKey) const 8768: { 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: if (i.value() == avalue) 8768: return i.key(); 8768: ++i; 8768: } 8768: 8768: return defaultKey; 8768: } 8768: 8768: template 8768: QList QMap::values() const 8768: { 8768: QList res; 8768: res.reserve(size()); 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: res.append(i.value()); 8768: ++i; 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: QList QMap::values(const Key &akey) const 8768: { 8768: QList res; 8768: Node *n = d->findNode(akey); 8768: if (n) { 8768: const_iterator it(n); 8768: do { 8768: res.append(*it); 8768: ++it; 8768: } while (it != constEnd() && !qMapLessThanKey(akey, it.key())); 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: inline typename QMap::const_iterator QMap::lowerBound(const Key &akey) const 8768: { 8768: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8768: if (!lb) 8768: lb = d->end(); 8768: return const_iterator(lb); 8768: } 8768: 8768: template 8768: inline typename QMap::iterator QMap::lowerBound(const Key &akey) 8768: { 8768: detach(); 8768: Node *lb = d->root() ? d->root()->lowerBound(akey) : nullptr; 8768: if (!lb) 8768: lb = d->end(); 8768: return iterator(lb); 8768: } 8768: 8768: template 8768: inline typename QMap::const_iterator 8768: QMap::upperBound(const Key &akey) const 8768: { 8768: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8768: if (!ub) 8768: ub = d->end(); 8768: return const_iterator(ub); 8768: } 8768: 8768: template 8768: inline typename QMap::iterator QMap::upperBound(const Key &akey) 8768: { 8768: detach(); 8768: Node *ub = d->root() ? d->root()->upperBound(akey) : nullptr; 8768: if (!ub) 8768: ub = d->end(); 8768: return iterator(ub); 8768: } 8768: 8768: template 8768: bool QMap::operator==(const QMap &other) const 8768: { 8768: if (size() != other.size()) 8768: return false; 8768: if (d == other.d) 8768: return true; 8768: 8768: const_iterator it1 = begin(); 8768: const_iterator it2 = other.begin(); 8768: 8768: while (it1 != end()) { 8768: if (!(it1.value() == it2.value()) || qMapLessThanKey(it1.key(), it2.key()) || qMapLessThanKey(it2.key(), it1.key())) 8768: return false; 8768: ++it2; 8768: ++it1; 8768: } 8768: return true; 8768: } 8768: 8768: template 8768: QMap::QMap(const std::map &other) 8768: { 8768: d = QMapData::create(); 8768: typename std::map::const_iterator it = other.end(); 8768: while (it != other.begin()) { 8768: --it; 8768: d->createNode((*it).first, (*it).second, d->begin(), true); 8768: } 8768: } 8768: 8768: template 8768: std::map QMap::toStdMap() const 8768: { 8768: std::map map; 8768: const_iterator it = end(); 8768: while (it != begin()) { 8768: --it; 8768: map.insert(map.begin(), std::pair(it.key(), it.value())); 8768: } 8768: return map; 8768: } 8768: 8768: template 8768: class QMultiMap : public QMap 8768: { 8768: public: 8768: QMultiMap() noexcept {} 8768: 8768: inline QMultiMap(std::initializer_list > list) 8768: { 8768: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8768: insert(it->first, it->second); 8768: } 8768: 8768: QMultiMap(const QMap &other) : QMap(other) {} 8768: 8768: QMultiMap(QMap &&other) noexcept : QMap(std::move(other)) {} 8768: 8768: void swap(QMultiMap &other) noexcept { QMap::swap(other); } 8768: 8768: inline typename QMap::iterator replace(const Key &key, const T &value) 8768: { return QMap::insert(key, value); } 8768: inline typename QMap::iterator insert(const Key &key, const T &value) 8768: { return QMap::insertMulti(key, value); } 8768: inline typename QMap::iterator insert(typename QMap::const_iterator pos, const Key &key, const T &value) 8768: { return QMap::insertMulti(pos, key, value); } 8768: 8768: inline QMultiMap &operator+=(const QMultiMap &other) 8768: { this->unite(other); return *this; } 8768: inline QMultiMap operator+(const QMultiMap &other) const 8768: { QMultiMap result = *this; result += other; return result; } 8768: 8768: using QMap::contains; 8768: using QMap::remove; 8768: using QMap::count; 8768: using QMap::find; 8768: using QMap::constFind; 8768: 8768: bool contains(const Key &key, const T &value) const; 8768: 8768: int remove(const Key &key, const T &value); 8768: 8768: int count(const Key &key, const T &value) const; 8768: 8768: typename QMap::iterator find(const Key &key, const T &value) { 8768: typename QMap::iterator i(find(key)); 8768: typename QMap::iterator end(this->end()); 8768: while (i != end && !qMapLessThanKey(key, i.key())) { 8768: if (i.value() == value) 8768: return i; 8768: ++i; 8768: } 8768: return end; 8768: } 8768: typename QMap::const_iterator find(const Key &key, const T &value) const { 8768: typename QMap::const_iterator i(constFind(key)); 8768: typename QMap::const_iterator end(QMap::constEnd()); 8768: while (i != end && !qMapLessThanKey(key, i.key())) { 8768: if (i.value() == value) 8768: return i; 8768: ++i; 8768: } 8768: return end; 8768: } 8768: typename QMap::const_iterator constFind(const Key &key, const T &value) const 8768: { return find(key, value); } 8768: private: 8768: T &operator[](const Key &key); 8768: const T operator[](const Key &key) const; 8768: }; 8768: 8768: template 8768: inline bool QMultiMap::contains(const Key &key, const T &value) const 8768: { 8768: return constFind(key, value) != QMap::constEnd(); 8768: } 8768: 8768: template 8768: inline int QMultiMap::remove(const Key &key, const T &value) 8768: { 8768: int n = 0; 8768: typename QMap::iterator i(find(key)); 8768: typename QMap::iterator end(QMap::end()); 8768: while (i != end && !qMapLessThanKey(key, i.key())) { 8768: if (i.value() == value) { 8768: i = this->erase(i); 8768: ++n; 8768: } else { 8768: ++i; 8768: } 8768: } 8768: return n; 8768: } 8768: 8768: template 8768: inline int QMultiMap::count(const Key &key, const T &value) const 8768: { 8768: int n = 0; 8768: typename QMap::const_iterator i(constFind(key)); 8768: typename QMap::const_iterator end(QMap::constEnd()); 8768: while (i != end && !qMapLessThanKey(key, i.key())) { 8768: if (i.value() == value) 8768: ++n; 8768: ++i; 8768: } 8768: return n; 8768: } 8768: 8768: 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; } }; 8768: 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; } }; 8768: 8768: 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 1 3 4 8768: # 62 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8768: 8768: 8768: struct __attribute__((visibility("default"))) QHashData 8768: { 8768: struct Node { 8768: Node *next; 8768: uint h; 8768: }; 8768: 8768: Node *fakeNext; 8768: Node **buckets; 8768: QtPrivate::RefCount ref; 8768: int size; 8768: int nodeSize; 8768: short userNumBits; 8768: short numBits; 8768: int numBuckets; 8768: uint seed; 8768: uint sharable : 1; 8768: uint strictAlignment : 1; 8768: uint reserved : 30; 8768: 8768: void *allocateNode(int nodeAlign); 8768: void freeNode(void *node); 8768: QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *), 8768: int nodeSize, int nodeAlign); 8768: bool willGrow(); 8768: void hasShrunk(); 8768: void rehash(int hint); 8768: void free_helper(void (*node_delete)(Node *)); 8768: Node *firstNode(); 8768: 8768: 8768: 8768: 8768: static Node *nextNode(Node *node); 8768: static Node *previousNode(Node *node); 8768: 8768: static const QHashData shared_null; 8768: }; 8768: 8768: inline bool QHashData::willGrow() 8768: { 8768: if (size >= numBuckets) { 8768: rehash(numBits + 1); 8768: return true; 8768: } else { 8768: return false; 8768: } 8768: } 8768: 8768: inline void QHashData::hasShrunk() 8768: { 8768: if (size <= (numBuckets >> 3) && numBits > userNumBits) { 8768: try { 8768: rehash(qMax(int(numBits) - 2, int(userNumBits))); 8768: } catch (const std::bad_alloc &) { 8768: 8768: } 8768: } 8768: } 8768: 8768: inline QHashData::Node *QHashData::firstNode() 8768: { 8768: Node *e = reinterpret_cast(this); 8768: Node **bucket = buckets; 8768: int n = numBuckets; 8768: while (n--) { 8768: if (*bucket != e) 8768: return *bucket; 8768: ++bucket; 8768: } 8768: return e; 8768: } 8768: 8768: struct QHashDummyValue 8768: { 8768: }; 8768: 8768: inline bool operator==(const QHashDummyValue & , const QHashDummyValue & ) 8768: { 8768: return true; 8768: } 8768: 8768: 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"; } }; 8768: 8768: template 8768: struct QHashNode 8768: { 8768: QHashNode *next; 8768: const uint h; 8768: const Key key; 8768: T value; 8768: 8768: inline QHashNode(const Key &key0, const T &value0, uint hash, QHashNode *n) 8768: : next(n), h(hash), key(key0), value(value0) {} 8768: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8768: 8768: private: 8768: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8768: }; 8768: 8768: 8768: template 8768: struct QHashNode 8768: { 8768: union { 8768: QHashNode *next; 8768: QHashDummyValue value; 8768: }; 8768: const uint h; 8768: const Key key; 8768: 8768: inline QHashNode(const Key &key0, const QHashDummyValue &, uint hash, QHashNode *n) 8768: : next(n), h(hash), key(key0) {} 8768: inline bool same_key(uint h0, const Key &key0) const { return h0 == h && key0 == key; } 8768: 8768: private: 8768: QHashNode(const QHashNode &) = delete; QHashNode &operator=(const QHashNode &) = delete; 8768: }; 8768: # 226 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8768: template 8768: class QHash 8768: { 8768: typedef QHashNode Node; 8768: 8768: union { 8768: QHashData *d; 8768: QHashNode *e; 8768: }; 8768: 8768: static inline Node *concrete(QHashData::Node *node) { 8768: return reinterpret_cast(node); 8768: } 8768: 8768: static inline int alignOfNode() { return qMax(sizeof(void*), alignof(Node)); } 8768: 8768: public: 8768: inline QHash() noexcept : d(const_cast(&QHashData::shared_null)) { } 8768: 8768: inline QHash(std::initializer_list > list) 8768: : d(const_cast(&QHashData::shared_null)) 8768: { 8768: reserve(int(list.size())); 8768: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8768: insert(it->first, it->second); 8768: } 8768: 8768: QHash(const QHash &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); } 8768: ~QHash() { if (!d->ref.deref()) freeData(d); } 8768: 8768: QHash &operator=(const QHash &other); 8768: 8768: QHash(QHash &&other) noexcept : d(other.d) { other.d = const_cast(&QHashData::shared_null); } 8768: QHash &operator=(QHash &&other) noexcept 8768: { QHash moved(std::move(other)); swap(moved); return *this; } 8768: 8768: void swap(QHash &other) noexcept { qSwap(d, other.d); } 8768: 8768: bool operator==(const QHash &other) const; 8768: bool operator!=(const QHash &other) const { return !(*this == other); } 8768: 8768: inline int size() const { return d->size; } 8768: 8768: inline bool isEmpty() const { return d->size == 0; } 8768: 8768: inline int capacity() const { return d->numBuckets; } 8768: void reserve(int size); 8768: inline void squeeze() { reserve(1); } 8768: 8768: inline void detach() { if (d->ref.isShared()) detach_helper(); } 8768: inline bool isDetached() const { return !d->ref.isShared(); } 8768: 8768: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QHashData::shared_null) d->sharable = sharable; } 8768: 8768: bool isSharedWith(const QHash &other) const { return d == other.d; } 8768: 8768: void clear(); 8768: 8768: int remove(const Key &key); 8768: T take(const Key &key); 8768: 8768: bool contains(const Key &key) const; 8768: const Key key(const T &value) const; 8768: const Key key(const T &value, const Key &defaultKey) const; 8768: const T value(const Key &key) const; 8768: const T value(const Key &key, const T &defaultValue) const; 8768: T &operator[](const Key &key); 8768: const T operator[](const Key &key) const; 8768: 8768: QList uniqueKeys() const; 8768: QList keys() const; 8768: QList keys(const T &value) const; 8768: QList values() const; 8768: QList values(const Key &key) const; 8768: int count(const Key &key) const; 8768: 8768: class const_iterator; 8768: 8768: class iterator 8768: { 8768: friend class const_iterator; 8768: friend class QHash; 8768: friend class QSet; 8768: QHashData::Node *i; 8768: 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef T *pointer; 8768: typedef T &reference; 8768: 8768: inline iterator() : i(nullptr) { } 8768: explicit inline iterator(void *node) : i(reinterpret_cast(node)) { } 8768: 8768: inline const Key &key() const { return concrete(i)->key; } 8768: inline T &value() const { return concrete(i)->value; } 8768: inline T &operator*() const { return concrete(i)->value; } 8768: inline T *operator->() const { return &concrete(i)->value; } 8768: inline bool operator==(const iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const iterator &o) const { return i != o.i; } 8768: 8768: inline iterator &operator++() { 8768: i = QHashData::nextNode(i); 8768: return *this; 8768: } 8768: inline iterator operator++(int) { 8768: iterator r = *this; 8768: i = QHashData::nextNode(i); 8768: return r; 8768: } 8768: inline iterator &operator--() { 8768: i = QHashData::previousNode(i); 8768: return *this; 8768: } 8768: inline iterator operator--(int) { 8768: iterator r = *this; 8768: i = QHashData::previousNode(i); 8768: return r; 8768: } 8768: inline iterator operator+(int j) const 8768: { iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8768: inline iterator operator-(int j) const { return operator+(-j); } 8768: inline iterator &operator+=(int j) { return *this = *this + j; } 8768: inline iterator &operator-=(int j) { return *this = *this - j; } 8768: # 359 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8768: }; 8768: friend class iterator; 8768: 8768: class const_iterator 8768: { 8768: friend class iterator; 8768: friend class QHash; 8768: friend class QSet; 8768: QHashData::Node *i; 8768: 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: 8768: constexpr inline const_iterator() : i(nullptr) { } 8768: explicit inline const_iterator(void *node) 8768: : i(reinterpret_cast(node)) { } 8768: 8768: explicit inline const_iterator(const iterator &o) 8768: 8768: 8768: 8768: { i = o.i; } 8768: 8768: inline const Key &key() const { return concrete(i)->key; } 8768: inline const T &value() const { return concrete(i)->value; } 8768: inline const T &operator*() const { return concrete(i)->value; } 8768: inline const T *operator->() const { return &concrete(i)->value; } 8768: constexpr inline bool operator==(const const_iterator &o) const { return i == o.i; } 8768: constexpr inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8768: 8768: inline const_iterator &operator++() { 8768: i = QHashData::nextNode(i); 8768: return *this; 8768: } 8768: inline const_iterator operator++(int) { 8768: const_iterator r = *this; 8768: i = QHashData::nextNode(i); 8768: return r; 8768: } 8768: inline const_iterator &operator--() { 8768: i = QHashData::previousNode(i); 8768: return *this; 8768: } 8768: inline const_iterator operator--(int) { 8768: const_iterator r = *this; 8768: i = QHashData::previousNode(i); 8768: return r; 8768: } 8768: inline const_iterator operator+(int j) const 8768: { const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; } 8768: inline const_iterator operator-(int j) const { return operator+(-j); } 8768: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8768: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8768: 8768: 8768: 8768: private: 8768: inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); } 8768: inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); } 8768: 8768: }; 8768: friend class const_iterator; 8768: 8768: class key_iterator 8768: { 8768: const_iterator i; 8768: 8768: public: 8768: typedef typename const_iterator::iterator_category iterator_category; 8768: typedef typename const_iterator::difference_type difference_type; 8768: typedef Key value_type; 8768: typedef const Key *pointer; 8768: typedef const Key &reference; 8768: 8768: key_iterator() = default; 8768: explicit key_iterator(const_iterator o) : i(o) { } 8768: 8768: const Key &operator*() const { return i.key(); } 8768: const Key *operator->() const { return &i.key(); } 8768: bool operator==(key_iterator o) const { return i == o.i; } 8768: bool operator!=(key_iterator o) const { return i != o.i; } 8768: 8768: inline key_iterator &operator++() { ++i; return *this; } 8768: inline key_iterator operator++(int) { return key_iterator(i++);} 8768: inline key_iterator &operator--() { --i; return *this; } 8768: inline key_iterator operator--(int) { return key_iterator(i--); } 8768: const_iterator base() const { return i; } 8768: }; 8768: 8768: 8768: inline iterator begin() { detach(); return iterator(d->firstNode()); } 8768: inline const_iterator begin() const { return const_iterator(d->firstNode()); } 8768: inline const_iterator cbegin() const { return const_iterator(d->firstNode()); } 8768: inline const_iterator constBegin() const { return const_iterator(d->firstNode()); } 8768: inline iterator end() { detach(); return iterator(e); } 8768: inline const_iterator end() const { return const_iterator(e); } 8768: inline const_iterator cend() const { return const_iterator(e); } 8768: inline const_iterator constEnd() const { return const_iterator(e); } 8768: inline key_iterator keyBegin() const { return key_iterator(begin()); } 8768: inline key_iterator keyEnd() const { return key_iterator(end()); } 8768: 8768: QPair equal_range(const Key &key); 8768: QPair equal_range(const Key &key) const noexcept; 8768: iterator erase(iterator it) { return erase(const_iterator(it.i)); } 8768: iterator erase(const_iterator it); 8768: 8768: 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: inline int count() const { return d->size; } 8768: iterator find(const Key &key); 8768: const_iterator find(const Key &key) const; 8768: const_iterator constFind(const Key &key) const; 8768: iterator insert(const Key &key, const T &value); 8768: iterator insertMulti(const Key &key, const T &value); 8768: QHash &unite(const QHash &other); 8768: 8768: 8768: typedef T mapped_type; 8768: typedef Key key_type; 8768: typedef qptrdiff difference_type; 8768: typedef int size_type; 8768: 8768: inline bool empty() const { return isEmpty(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: void detach_helper(); 8768: void freeData(QHashData *d); 8768: Node **findNode(const Key &key, uint *hp = nullptr) const; 8768: Node **findNode(const Key &key, uint h) const; 8768: Node *createNode(uint h, const Key &key, const T &value, Node **nextNode); 8768: void deleteNode(Node *node); 8768: static void deleteNode2(QHashData::Node *node); 8768: 8768: static void duplicateNode(QHashData::Node *originalNode, void *newNode); 8768: 8768: bool isValidIterator(const iterator &it) const noexcept 8768: { return isValidNode(it.i); } 8768: bool isValidIterator(const const_iterator &it) const noexcept 8768: { return isValidNode(it.i); } 8768: bool isValidNode(QHashData::Node *node) const noexcept 8768: { 8768: 8768: 8768: 8768: 8768: 8768: (void)node;; 8768: return true; 8768: 8768: } 8768: friend class QSet; 8768: }; 8768: 8768: 8768: template 8768: inline void QHash::deleteNode(Node *node) 8768: { 8768: deleteNode2(reinterpret_cast(node)); 8768: d->freeNode(node); 8768: } 8768: 8768: template 8768: inline void QHash::deleteNode2(QHashData::Node *node) 8768: { 8768: 8768: 8768: 8768: concrete(node)->~Node(); 8768: 8768: } 8768: 8768: template 8768: inline void QHash::duplicateNode(QHashData::Node *node, void *newNode) 8768: { 8768: Node *concreteNode = concrete(node); 8768: new (newNode) Node(concreteNode->key, concreteNode->value, concreteNode->h, nullptr); 8768: } 8768: 8768: template 8768: inline typename QHash::Node * 8768: QHash::createNode(uint ah, const Key &akey, const T &avalue, Node **anextNode) 8768: { 8768: Node *node = new (d->allocateNode(alignOfNode())) Node(akey, avalue, ah, *anextNode); 8768: *anextNode = node; 8768: ++d->size; 8768: return node; 8768: } 8768: 8768: template 8768: inline QHash &QHash::unite(const QHash &other) 8768: { 8768: if (d == &QHashData::shared_null) { 8768: *this = other; 8768: } else { 8768: QHash copy(other); 8768: const_iterator it = copy.constEnd(); 8768: while (it != copy.constBegin()) { 8768: --it; 8768: insertMulti(it.key(), it.value()); 8768: } 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: void QHash::freeData(QHashData *x) 8768: { 8768: x->free_helper(deleteNode2); 8768: } 8768: 8768: template 8768: inline void QHash::clear() 8768: { 8768: *this = QHash(); 8768: } 8768: 8768: template 8768: void QHash::detach_helper() 8768: { 8768: QHashData *x = d->detach_helper(duplicateNode, deleteNode2, sizeof(Node), alignOfNode()); 8768: if (!d->ref.deref()) 8768: freeData(d); 8768: d = x; 8768: } 8768: 8768: template 8768: inline QHash &QHash::operator=(const QHash &other) 8768: { 8768: if (d != other.d) { 8768: QHashData *o = other.d; 8768: o->ref.ref(); 8768: if (!d->ref.deref()) 8768: freeData(d); 8768: d = o; 8768: if (!d->sharable) 8768: detach_helper(); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: inline const T QHash::value(const Key &akey) const 8768: { 8768: Node *node; 8768: if (d->size == 0 || (node = *findNode(akey)) == e) { 8768: return T(); 8768: } else { 8768: return node->value; 8768: } 8768: } 8768: 8768: template 8768: inline const T QHash::value(const Key &akey, const T &adefaultValue) const 8768: { 8768: Node *node; 8768: if (d->size == 0 || (node = *findNode(akey)) == e) { 8768: return adefaultValue; 8768: } else { 8768: return node->value; 8768: } 8768: } 8768: 8768: template 8768: QList QHash::uniqueKeys() const 8768: { 8768: QList res; 8768: res.reserve(size()); 8768: const_iterator i = begin(); 8768: if (i != end()) { 8768: for (;;) { 8768: const Key &aKey = i.key(); 8768: res.append(aKey); 8768: do { 8768: if (++i == end()) 8768: goto break_out_of_outer_loop; 8768: } while (aKey == i.key()); 8768: } 8768: } 8768: break_out_of_outer_loop: 8768: return res; 8768: } 8768: 8768: template 8768: QList QHash::keys() const 8768: { 8768: QList res; 8768: res.reserve(size()); 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: res.append(i.key()); 8768: ++i; 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: QList QHash::keys(const T &avalue) const 8768: { 8768: QList res; 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: if (i.value() == avalue) 8768: res.append(i.key()); 8768: ++i; 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: const Key QHash::key(const T &avalue) const 8768: { 8768: return key(avalue, Key()); 8768: } 8768: 8768: template 8768: const Key QHash::key(const T &avalue, const Key &defaultValue) const 8768: { 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: if (i.value() == avalue) 8768: return i.key(); 8768: ++i; 8768: } 8768: 8768: return defaultValue; 8768: } 8768: 8768: template 8768: QList QHash::values() const 8768: { 8768: QList res; 8768: res.reserve(size()); 8768: const_iterator i = begin(); 8768: while (i != end()) { 8768: res.append(i.value()); 8768: ++i; 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: QList QHash::values(const Key &akey) const 8768: { 8768: QList res; 8768: Node *node = *findNode(akey); 8768: if (node != e) { 8768: do { 8768: res.append(node->value); 8768: } while ((node = node->next) != e && node->key == akey); 8768: } 8768: return res; 8768: } 8768: 8768: template 8768: int QHash::count(const Key &akey) const 8768: { 8768: int cnt = 0; 8768: Node *node = *findNode(akey); 8768: if (node != e) { 8768: do { 8768: ++cnt; 8768: } while ((node = node->next) != e && node->key == akey); 8768: } 8768: return cnt; 8768: } 8768: 8768: template 8768: inline const T QHash::operator[](const Key &akey) const 8768: { 8768: return value(akey); 8768: } 8768: 8768: template 8768: inline T &QHash::operator[](const Key &akey) 8768: { 8768: detach(); 8768: 8768: uint h; 8768: Node **node = findNode(akey, &h); 8768: if (*node == e) { 8768: if (d->willGrow()) 8768: node = findNode(akey, h); 8768: return createNode(h, akey, T(), node)->value; 8768: } 8768: return (*node)->value; 8768: } 8768: 8768: template 8768: inline typename QHash::iterator QHash::insert(const Key &akey, 8768: const T &avalue) 8768: { 8768: detach(); 8768: 8768: uint h; 8768: Node **node = findNode(akey, &h); 8768: if (*node == e) { 8768: if (d->willGrow()) 8768: node = findNode(akey, h); 8768: return iterator(createNode(h, akey, avalue, node)); 8768: } 8768: 8768: if (!std::is_same::value) 8768: (*node)->value = avalue; 8768: return iterator(*node); 8768: } 8768: 8768: template 8768: inline typename QHash::iterator QHash::insertMulti(const Key &akey, 8768: const T &avalue) 8768: { 8768: detach(); 8768: d->willGrow(); 8768: 8768: uint h; 8768: Node **nextNode = findNode(akey, &h); 8768: return iterator(createNode(h, akey, avalue, nextNode)); 8768: } 8768: 8768: template 8768: int QHash::remove(const Key &akey) 8768: { 8768: if (isEmpty()) 8768: return 0; 8768: detach(); 8768: 8768: int oldSize = d->size; 8768: Node **node = findNode(akey); 8768: if (*node != e) { 8768: bool deleteNext = true; 8768: do { 8768: Node *next = (*node)->next; 8768: deleteNext = (next != e && next->key == (*node)->key); 8768: deleteNode(*node); 8768: *node = next; 8768: --d->size; 8768: } while (deleteNext); 8768: d->hasShrunk(); 8768: } 8768: return oldSize - d->size; 8768: } 8768: 8768: template 8768: T QHash::take(const Key &akey) 8768: { 8768: if (isEmpty()) 8768: return T(); 8768: detach(); 8768: 8768: Node **node = findNode(akey); 8768: if (*node != e) { 8768: T t = (*node)->value; 8768: Node *next = (*node)->next; 8768: deleteNode(*node); 8768: *node = next; 8768: --d->size; 8768: d->hasShrunk(); 8768: return t; 8768: } 8768: return T(); 8768: } 8768: 8768: template 8768: typename QHash::iterator QHash::erase(const_iterator it) 8768: { 8768: do { } while ((false) && (isValidIterator(it))); 8768: 8768: if (it == const_iterator(e)) 8768: return iterator(it.i); 8768: 8768: if (d->ref.isShared()) { 8768: 8768: int bucketNum = (it.i->h % d->numBuckets); 8768: const_iterator bucketIterator(*(d->buckets + bucketNum)); 8768: int stepsFromBucketStartToIte = 0; 8768: while (bucketIterator != it) { 8768: ++stepsFromBucketStartToIte; 8768: ++bucketIterator; 8768: } 8768: detach(); 8768: it = const_iterator(*(d->buckets + bucketNum)); 8768: while (stepsFromBucketStartToIte > 0) { 8768: --stepsFromBucketStartToIte; 8768: ++it; 8768: } 8768: } 8768: 8768: iterator ret(it.i); 8768: ++ret; 8768: 8768: Node *node = concrete(it.i); 8768: Node **node_ptr = reinterpret_cast(&d->buckets[node->h % d->numBuckets]); 8768: while (*node_ptr != node) 8768: node_ptr = &(*node_ptr)->next; 8768: *node_ptr = node->next; 8768: deleteNode(node); 8768: --d->size; 8768: return ret; 8768: } 8768: 8768: template 8768: inline void QHash::reserve(int asize) 8768: { 8768: detach(); 8768: d->rehash(-qMax(asize, 1)); 8768: } 8768: 8768: template 8768: inline typename QHash::const_iterator QHash::find(const Key &akey) const 8768: { 8768: return const_iterator(*findNode(akey)); 8768: } 8768: 8768: template 8768: inline typename QHash::const_iterator QHash::constFind(const Key &akey) const 8768: { 8768: return const_iterator(*findNode(akey)); 8768: } 8768: 8768: template 8768: inline typename QHash::iterator QHash::find(const Key &akey) 8768: { 8768: detach(); 8768: return iterator(*findNode(akey)); 8768: } 8768: 8768: template 8768: inline bool QHash::contains(const Key &akey) const 8768: { 8768: return *findNode(akey) != e; 8768: } 8768: 8768: template 8768: typename QHash::Node **QHash::findNode(const Key &akey, uint h) const 8768: { 8768: Node **node; 8768: 8768: if (d->numBuckets) { 8768: node = reinterpret_cast(&d->buckets[h % d->numBuckets]); 8768: do { } while ((false) && (*node == e || (*node)->next)); 8768: while (*node != e && !(*node)->same_key(h, akey)) 8768: node = &(*node)->next; 8768: } else { 8768: node = const_cast(reinterpret_cast(&e)); 8768: } 8768: return node; 8768: } 8768: 8768: template 8768: typename QHash::Node **QHash::findNode(const Key &akey, 8768: uint *ahp) const 8768: { 8768: uint h = 0; 8768: 8768: if (d->numBuckets || ahp) { 8768: h = qHash(akey, d->seed); 8768: if (ahp) 8768: *ahp = h; 8768: } 8768: return findNode(akey, h); 8768: } 8768: 8768: template 8768: bool QHash::operator==(const QHash &other) const 8768: { 8768: if (size() != other.size()) 8768: return false; 8768: if (d == other.d) 8768: return true; 8768: 8768: const_iterator it = begin(); 8768: 8768: while (it != end()) { 8768: 8768: 8768: auto thisEqualRangeEnd = it; 8768: while (thisEqualRangeEnd != end() && it.key() == thisEqualRangeEnd.key()) 8768: ++thisEqualRangeEnd; 8768: 8768: const auto otherEqualRange = other.equal_range(it.key()); 8768: 8768: if (std::distance(it, thisEqualRangeEnd) != std::distance(otherEqualRange.first, otherEqualRange.second)) 8768: return false; 8768: # 962 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 3 4 8768: if (!std::is_permutation(it, thisEqualRangeEnd, otherEqualRange.first 8768: 8768: 8768: 8768: )) { 8768: return false; 8768: } 8768: 8768: it = thisEqualRangeEnd; 8768: } 8768: 8768: return true; 8768: } 8768: 8768: template 8768: QPair::iterator, typename QHash::iterator> QHash::equal_range(const Key &akey) 8768: { 8768: detach(); 8768: auto pair = qAsConst(*this).equal_range(akey); 8768: return qMakePair(iterator(pair.first.i), iterator(pair.second.i)); 8768: } 8768: 8768: template 8768: QPair::const_iterator, typename QHash::const_iterator> QHash::equal_range(const Key &akey) const noexcept 8768: { 8768: Node *node = *findNode(akey); 8768: const_iterator firstIt = const_iterator(node); 8768: 8768: if (node != e) { 8768: 8768: 8768: 8768: 8768: while (node->next != e && node->next->key == akey) 8768: node = node->next; 8768: 8768: 8768: 8768: 8768: 8768: node = concrete(QHashData::nextNode(reinterpret_cast(node))); 8768: } 8768: 8768: return qMakePair(firstIt, const_iterator(node)); 8768: } 8768: 8768: template 8768: class QMultiHash : public QHash 8768: { 8768: public: 8768: QMultiHash() noexcept {} 8768: 8768: inline QMultiHash(std::initializer_list > list) 8768: { 8768: this->reserve(int(list.size())); 8768: for (typename std::initializer_list >::const_iterator it = list.begin(); it != list.end(); ++it) 8768: insert(it->first, it->second); 8768: } 8768: 8768: 8768: 8768: 8768: QMultiHash(const QHash &other) : QHash(other) {} 8768: 8768: QMultiHash(QHash &&other) noexcept : QHash(std::move(other)) {} 8768: 8768: void swap(QMultiHash &other) noexcept { QHash::swap(other); } 8768: 8768: inline typename QHash::iterator replace(const Key &key, const T &value) 8768: { return QHash::insert(key, value); } 8768: 8768: inline typename QHash::iterator insert(const Key &key, const T &value) 8768: { return QHash::insertMulti(key, value); } 8768: 8768: inline QMultiHash &operator+=(const QMultiHash &other) 8768: { this->unite(other); return *this; } 8768: inline QMultiHash operator+(const QMultiHash &other) const 8768: { QMultiHash result = *this; result += other; return result; } 8768: 8768: using QHash::contains; 8768: using QHash::remove; 8768: using QHash::count; 8768: using QHash::find; 8768: using QHash::constFind; 8768: 8768: bool contains(const Key &key, const T &value) const; 8768: 8768: int remove(const Key &key, const T &value); 8768: 8768: int count(const Key &key, const T &value) const; 8768: 8768: typename QHash::iterator find(const Key &key, const T &value) { 8768: typename QHash::iterator i(find(key)); 8768: typename QHash::iterator end(this->end()); 8768: while (i != end && i.key() == key) { 8768: if (i.value() == value) 8768: return i; 8768: ++i; 8768: } 8768: return end; 8768: } 8768: typename QHash::const_iterator find(const Key &key, const T &value) const { 8768: typename QHash::const_iterator i(constFind(key)); 8768: typename QHash::const_iterator end(QHash::constEnd()); 8768: while (i != end && i.key() == key) { 8768: if (i.value() == value) 8768: return i; 8768: ++i; 8768: } 8768: return end; 8768: } 8768: typename QHash::const_iterator constFind(const Key &key, const T &value) const 8768: { return find(key, value); } 8768: private: 8768: T &operator[](const Key &key); 8768: const T operator[](const Key &key) const; 8768: }; 8768: 8768: template 8768: inline bool QMultiHash::contains(const Key &key, const T &value) const 8768: { 8768: return constFind(key, value) != QHash::constEnd(); 8768: } 8768: 8768: template 8768: inline int QMultiHash::remove(const Key &key, const T &value) 8768: { 8768: int n = 0; 8768: typename QHash::iterator i(find(key)); 8768: typename QHash::iterator end(QHash::end()); 8768: while (i != end && i.key() == key) { 8768: if (i.value() == value) { 8768: i = this->erase(i); 8768: ++n; 8768: } else { 8768: ++i; 8768: } 8768: } 8768: return n; 8768: } 8768: 8768: template 8768: inline int QMultiHash::count(const Key &key, const T &value) const 8768: { 8768: int n = 0; 8768: typename QHash::const_iterator i(constFind(key)); 8768: typename QHash::const_iterator end(QHash::constEnd()); 8768: while (i != end && i.key() == key) { 8768: if (i.value() == value) 8768: ++n; 8768: ++i; 8768: } 8768: return n; 8768: } 8768: 8768: 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; } }; 8768: 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; } }; 8768: 8768: template 8768: uint qHash(const QHash &key, uint seed = 0) 8768: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8768: { 8768: QtPrivate::QHashCombineCommutative hash; 8768: for (auto it = key.begin(), end = key.end(); it != end; ++it) { 8768: const Key &k = it.key(); 8768: const T &v = it.value(); 8768: seed = hash(seed, std::pair(k, v)); 8768: } 8768: return seed; 8768: } 8768: 8768: template 8768: inline uint qHash(const QMultiHash &key, uint seed = 0) 8768: noexcept(noexcept(qHash(std::declval())) && noexcept(qHash(std::declval()))) 8768: { 8768: const QHash &key2 = key; 8768: return qHash(key2, seed); 8768: } 8768: 8768: 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 1 3 4 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 3 4 8768: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 2 3 4 8768: 8768: 8768: 8768: template 8768: struct QScopedPointerDeleter 8768: { 8768: static inline void cleanup(T *pointer) 8768: { 8768: 8768: 8768: 8768: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8768: (void) sizeof(IsIncompleteType); 8768: 8768: delete pointer; 8768: } 8768: }; 8768: 8768: template 8768: struct QScopedPointerArrayDeleter 8768: { 8768: static inline void cleanup(T *pointer) 8768: { 8768: 8768: 8768: 8768: typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ]; 8768: (void) sizeof(IsIncompleteType); 8768: 8768: delete [] pointer; 8768: } 8768: }; 8768: 8768: struct QScopedPointerPodDeleter 8768: { 8768: static inline void cleanup(void *pointer) { if (pointer) free(pointer); } 8768: }; 8768: 8768: 8768: template 8768: struct QScopedPointerObjectDeleteLater 8768: { 8768: static inline void cleanup(T *pointer) { if (pointer) pointer->deleteLater(); } 8768: }; 8768: 8768: class QObject; 8768: typedef QScopedPointerObjectDeleteLater QScopedPointerDeleteLater; 8768: 8768: 8768: template > 8768: class QScopedPointer 8768: { 8768: typedef T *QScopedPointer:: *RestrictedBool; 8768: public: 8768: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) 8768: { 8768: } 8768: 8768: inline ~QScopedPointer() 8768: { 8768: T *oldD = this->d; 8768: Cleanup::cleanup(oldD); 8768: } 8768: 8768: inline T &operator*() const 8768: { 8768: do { } while ((false) && (d)); 8768: return *d; 8768: } 8768: 8768: T *operator->() const noexcept 8768: { 8768: return d; 8768: } 8768: 8768: bool operator!() const noexcept 8768: { 8768: return !d; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: operator RestrictedBool() const noexcept 8768: { 8768: return isNull() ? nullptr : &QScopedPointer::d; 8768: } 8768: 8768: 8768: T *data() const noexcept 8768: { 8768: return d; 8768: } 8768: 8768: bool isNull() const noexcept 8768: { 8768: return !d; 8768: } 8768: 8768: void reset(T *other = nullptr) noexcept(noexcept(Cleanup::cleanup(std::declval()))) 8768: { 8768: if (d == other) 8768: return; 8768: T *oldD = d; 8768: d = other; 8768: Cleanup::cleanup(oldD); 8768: } 8768: 8768: T *take() noexcept 8768: { 8768: T *oldD = d; 8768: d = nullptr; 8768: return oldD; 8768: } 8768: 8768: void swap(QScopedPointer &other) noexcept 8768: { 8768: qSwap(d, other.d); 8768: } 8768: 8768: typedef T *pointer; 8768: 8768: protected: 8768: T *d; 8768: 8768: private: 8768: QScopedPointer(const QScopedPointer &) = delete; QScopedPointer &operator=(const QScopedPointer &) = delete; 8768: }; 8768: 8768: template 8768: inline bool operator==(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8768: { 8768: return lhs.data() == rhs.data(); 8768: } 8768: 8768: template 8768: inline bool operator!=(const QScopedPointer &lhs, const QScopedPointer &rhs) noexcept 8768: { 8768: return lhs.data() != rhs.data(); 8768: } 8768: 8768: template 8768: inline bool operator==(const QScopedPointer &lhs, std::nullptr_t) noexcept 8768: { 8768: return lhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator==(std::nullptr_t, const QScopedPointer &rhs) noexcept 8768: { 8768: return rhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator!=(const QScopedPointer &lhs, std::nullptr_t) noexcept 8768: { 8768: return !lhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator!=(std::nullptr_t, const QScopedPointer &rhs) noexcept 8768: { 8768: return !rhs.isNull(); 8768: } 8768: 8768: template 8768: inline void swap(QScopedPointer &p1, QScopedPointer &p2) noexcept 8768: { p1.swap(p2); } 8768: 8768: 8768: namespace QtPrivate { 8768: template struct QScopedArrayEnsureSameType; 8768: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8768: template struct QScopedArrayEnsureSameType { typedef X* Type; }; 8768: } 8768: 8768: template > 8768: class QScopedArrayPointer : public QScopedPointer 8768: { 8768: public: 8768: inline QScopedArrayPointer() : QScopedPointer(nullptr) {} 8768: 8768: template 8768: explicit inline QScopedArrayPointer(D *p, typename QtPrivate::QScopedArrayEnsureSameType::Type = nullptr) 8768: : QScopedPointer(p) 8768: { 8768: } 8768: 8768: inline T &operator[](int i) 8768: { 8768: return this->d[i]; 8768: } 8768: 8768: inline const T &operator[](int i) const 8768: { 8768: return this->d[i]; 8768: } 8768: 8768: void swap(QScopedArrayPointer &other) noexcept 8768: { QScopedPointer::swap(other); } 8768: 8768: private: 8768: explicit inline QScopedArrayPointer(void *) { 8768: # 260 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 3 4 8768: } 8768: 8768: QScopedArrayPointer(const QScopedArrayPointer &) = delete; QScopedArrayPointer &operator=(const QScopedArrayPointer &) = delete; 8768: }; 8768: 8768: template 8768: inline void swap(QScopedArrayPointer &lhs, QScopedArrayPointer &rhs) noexcept 8768: { lhs.swap(rhs); } 8768: 8768: 8768: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h" 1 3 4 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h" 3 4 8768: 8768: 8768: 8768: namespace QtPrivate { 8768: # 65 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h" 3 4 8768: template struct TypesAreDeclaredMetaType { enum { Value = false }; }; 8768: template <> struct TypesAreDeclaredMetaType> { enum { Value = true }; }; 8768: template struct TypesAreDeclaredMetaType > 8768: { enum { Value = QMetaTypeId2::Defined && TypesAreDeclaredMetaType>::Value }; }; 8768: 8768: template ::Value > struct ConnectionTypes 8768: { static const int *types() { return nullptr; } }; 8768: template <> struct ConnectionTypes, true> 8768: { static const int *types() { return nullptr; } }; 8768: template struct ConnectionTypes, true> 8768: { static const int *types() { static const int t[sizeof...(Args) + 1] = { (QtPrivate::QMetaTypeIdHelper::qt_metatype_id())..., 0 }; return t; } }; 8768: 8768: 8768: class QSlotObjectBase { 8768: QAtomicInt m_ref; 8768: 8768: 8768: 8768: typedef void (*ImplFn)(int which, QSlotObjectBase* this_, QObject *receiver, void **args, bool *ret); 8768: const ImplFn m_impl; 8768: protected: 8768: enum Operation { 8768: Destroy, 8768: Call, 8768: Compare, 8768: 8768: NumOperations 8768: }; 8768: public: 8768: explicit QSlotObjectBase(ImplFn fn) : m_ref(1), m_impl(fn) {} 8768: 8768: inline int ref() noexcept { return m_ref.ref(); } 8768: inline void destroyIfLastRef() noexcept 8768: { if (!m_ref.deref()) m_impl(Destroy, this, nullptr, nullptr, nullptr); } 8768: 8768: inline bool compare(void **a) { bool ret = false; m_impl(Compare, this, nullptr, a, &ret); return ret; } 8768: inline void call(QObject *r, void **a) { m_impl(Call, this, r, a, nullptr); } 8768: protected: 8768: ~QSlotObjectBase() {} 8768: private: 8768: QSlotObjectBase(const QSlotObjectBase &) = delete; QSlotObjectBase &operator=(const QSlotObjectBase &) = delete; 8768: }; 8768: 8768: 8768: template class QSlotObject : public QSlotObjectBase 8768: { 8768: typedef QtPrivate::FunctionPointer FuncType; 8768: Func function; 8768: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8768: { 8768: switch (which) { 8768: case Destroy: 8768: delete static_cast(this_); 8768: break; 8768: case Call: 8768: FuncType::template call(static_cast(this_)->function, static_cast(r), a); 8768: break; 8768: case Compare: 8768: *ret = *reinterpret_cast(a) == static_cast(this_)->function; 8768: break; 8768: case NumOperations: ; 8768: } 8768: } 8768: public: 8768: explicit QSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8768: }; 8768: 8768: 8768: template class QStaticSlotObject : public QSlotObjectBase 8768: { 8768: typedef QtPrivate::FunctionPointer FuncType; 8768: Func function; 8768: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8768: { 8768: switch (which) { 8768: case Destroy: 8768: delete static_cast(this_); 8768: break; 8768: case Call: 8768: FuncType::template call(static_cast(this_)->function, r, a); 8768: break; 8768: case Compare: 8768: case NumOperations: 8768: (void)ret;; 8768: } 8768: } 8768: public: 8768: explicit QStaticSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {} 8768: }; 8768: 8768: 8768: 8768: template class QFunctorSlotObject : public QSlotObjectBase 8768: { 8768: typedef QtPrivate::Functor FuncType; 8768: Func function; 8768: static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret) 8768: { 8768: switch (which) { 8768: case Destroy: 8768: delete static_cast(this_); 8768: break; 8768: case Call: 8768: FuncType::template call(static_cast(this_)->function, r, a); 8768: break; 8768: case Compare: 8768: case NumOperations: 8768: (void)ret;; 8768: } 8768: } 8768: public: 8768: explicit QFunctorSlotObject(const Func &f) : QSlotObjectBase(&impl), function(f) {} 8768: }; 8768: } 8768: 8768: 8768: 8768: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/c++/8/chrono" 1 3 4 8768: # 32 "/usr/include/c++/8/chrono" 3 4 8768: 8768: # 33 "/usr/include/c++/8/chrono" 3 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/ratio" 1 3 8768: # 32 "/usr/include/c++/8/ratio" 3 8768: 8768: # 33 "/usr/include/c++/8/ratio" 3 8768: # 43 "/usr/include/c++/8/ratio" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 55 "/usr/include/c++/8/ratio" 3 8768: template 8768: struct __static_sign 8768: : integral_constant 8768: { }; 8768: 8768: template 8768: struct __static_abs 8768: : integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct __static_gcd 8768: : __static_gcd<_Qn, (_Pn % _Qn)> 8768: { }; 8768: 8768: template 8768: struct __static_gcd<_Pn, 0> 8768: : integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct __static_gcd<0, _Qn> 8768: : integral_constant::value> 8768: { }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct __safe_multiply 8768: { 8768: private: 8768: static const uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8768: 8768: static const uintmax_t __a0 = __static_abs<_Pn>::value % __c; 8768: static const uintmax_t __a1 = __static_abs<_Pn>::value / __c; 8768: static const uintmax_t __b0 = __static_abs<_Qn>::value % __c; 8768: static const uintmax_t __b1 = __static_abs<_Qn>::value / __c; 8768: 8768: static_assert(__a1 == 0 || __b1 == 0, 8768: "overflow in multiplication"); 8768: static_assert(__a0 * __b1 + __b0 * __a1 < (__c >> 1), 8768: "overflow in multiplication"); 8768: static_assert(__b0 * __a0 <= 0x7fffffffffffffffL, 8768: "overflow in multiplication"); 8768: static_assert((__a0 * __b1 + __b0 * __a1) * __c 8768: <= 0x7fffffffffffffffL - __b0 * __a0, 8768: "overflow in multiplication"); 8768: 8768: public: 8768: static const intmax_t value = _Pn * _Qn; 8768: }; 8768: 8768: 8768: 8768: template 8768: struct __big_less 8768: : integral_constant 8768: { }; 8768: 8768: template 8768: struct __big_add 8768: { 8768: static constexpr uintmax_t __lo = __lo1 + __lo2; 8768: static constexpr uintmax_t __hi = (__hi1 + __hi2 + 8768: (__lo1 + __lo2 < __lo1)); 8768: }; 8768: 8768: 8768: template 8768: struct __big_sub 8768: { 8768: static_assert(!__big_less<__hi1, __lo1, __hi2, __lo2>::value, 8768: "Internal library error"); 8768: static constexpr uintmax_t __lo = __lo1 - __lo2; 8768: static constexpr uintmax_t __hi = (__hi1 - __hi2 - 8768: (__lo1 < __lo2)); 8768: }; 8768: 8768: 8768: template 8768: struct __big_mul 8768: { 8768: private: 8768: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8768: static constexpr uintmax_t __x0 = __x % __c; 8768: static constexpr uintmax_t __x1 = __x / __c; 8768: static constexpr uintmax_t __y0 = __y % __c; 8768: static constexpr uintmax_t __y1 = __y / __c; 8768: static constexpr uintmax_t __x0y0 = __x0 * __y0; 8768: static constexpr uintmax_t __x0y1 = __x0 * __y1; 8768: static constexpr uintmax_t __x1y0 = __x1 * __y0; 8768: static constexpr uintmax_t __x1y1 = __x1 * __y1; 8768: static constexpr uintmax_t __mix = __x0y1 + __x1y0; 8768: static constexpr uintmax_t __mix_lo = __mix * __c; 8768: static constexpr uintmax_t __mix_hi 8768: = __mix / __c + ((__mix < __x0y1) ? __c : 0); 8768: typedef __big_add<__mix_hi, __mix_lo, __x1y1, __x0y0> _Res; 8768: public: 8768: static constexpr uintmax_t __hi = _Res::__hi; 8768: static constexpr uintmax_t __lo = _Res::__lo; 8768: }; 8768: 8768: 8768: 8768: template 8768: struct __big_div_impl 8768: { 8768: private: 8768: static_assert(__d >= (uintmax_t(1) << (sizeof(intmax_t) * 8 - 1)), 8768: "Internal library error"); 8768: static_assert(__n1 < __d, "Internal library error"); 8768: static constexpr uintmax_t __c = uintmax_t(1) << (sizeof(intmax_t) * 4); 8768: static constexpr uintmax_t __d1 = __d / __c; 8768: static constexpr uintmax_t __d0 = __d % __c; 8768: 8768: static constexpr uintmax_t __q1x = __n1 / __d1; 8768: static constexpr uintmax_t __r1x = __n1 % __d1; 8768: static constexpr uintmax_t __m = __q1x * __d0; 8768: static constexpr uintmax_t __r1y = __r1x * __c + __n0 / __c; 8768: static constexpr uintmax_t __r1z = __r1y + __d; 8768: static constexpr uintmax_t __r1 8768: = ((__r1y < __m) ? ((__r1z >= __d) && (__r1z < __m)) 8768: ? (__r1z + __d) : __r1z : __r1y) - __m; 8768: static constexpr uintmax_t __q1 8768: = __q1x - ((__r1y < __m) 8768: ? ((__r1z >= __d) && (__r1z < __m)) ? 2 : 1 : 0); 8768: static constexpr uintmax_t __q0x = __r1 / __d1; 8768: static constexpr uintmax_t __r0x = __r1 % __d1; 8768: static constexpr uintmax_t __n = __q0x * __d0; 8768: static constexpr uintmax_t __r0y = __r0x * __c + __n0 % __c; 8768: static constexpr uintmax_t __r0z = __r0y + __d; 8768: static constexpr uintmax_t __r0 8768: = ((__r0y < __n) ? ((__r0z >= __d) && (__r0z < __n)) 8768: ? (__r0z + __d) : __r0z : __r0y) - __n; 8768: static constexpr uintmax_t __q0 8768: = __q0x - ((__r0y < __n) ? ((__r0z >= __d) 8768: && (__r0z < __n)) ? 2 : 1 : 0); 8768: 8768: public: 8768: static constexpr uintmax_t __quot = __q1 * __c + __q0; 8768: static constexpr uintmax_t __rem = __r0; 8768: 8768: private: 8768: typedef __big_mul<__quot, __d> _Prod; 8768: typedef __big_add<_Prod::__hi, _Prod::__lo, 0, __rem> _Sum; 8768: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8768: "Internal library error"); 8768: }; 8768: 8768: template 8768: struct __big_div 8768: { 8768: private: 8768: static_assert(__d != 0, "Internal library error"); 8768: static_assert(sizeof (uintmax_t) == sizeof (unsigned long long), 8768: "This library calls __builtin_clzll on uintmax_t, which " 8768: "is unsafe on your platform. Please complain to " 8768: "http://gcc.gnu.org/bugzilla/"); 8768: static constexpr int __shift = __builtin_clzll(__d); 8768: static constexpr int __coshift_ = sizeof(uintmax_t) * 8 - __shift; 8768: static constexpr int __coshift = (__shift != 0) ? __coshift_ : 0; 8768: static constexpr uintmax_t __c1 = uintmax_t(1) << __shift; 8768: static constexpr uintmax_t __c2 = uintmax_t(1) << __coshift; 8768: static constexpr uintmax_t __new_d = __d * __c1; 8768: static constexpr uintmax_t __new_n0 = __n0 * __c1; 8768: static constexpr uintmax_t __n1_shifted = (__n1 % __d) * __c1; 8768: static constexpr uintmax_t __n0_top = (__shift != 0) ? (__n0 / __c2) : 0; 8768: static constexpr uintmax_t __new_n1 = __n1_shifted + __n0_top; 8768: typedef __big_div_impl<__new_n1, __new_n0, __new_d> _Res; 8768: 8768: public: 8768: static constexpr uintmax_t __quot_hi = __n1 / __d; 8768: static constexpr uintmax_t __quot_lo = _Res::__quot; 8768: static constexpr uintmax_t __rem = _Res::__rem / __c1; 8768: 8768: private: 8768: typedef __big_mul<__quot_lo, __d> _P0; 8768: typedef __big_mul<__quot_hi, __d> _P1; 8768: typedef __big_add<_P0::__hi, _P0::__lo, _P1::__lo, __rem> _Sum; 8768: 8768: static_assert(_P1::__hi == 0, "Internal library error"); 8768: static_assert(_Sum::__hi >= _P0::__hi, "Internal library error"); 8768: 8768: static_assert(_Sum::__hi == __n1 && _Sum::__lo == __n0, 8768: "Internal library error"); 8768: static_assert(__rem < __d, "Internal library error"); 8768: }; 8768: # 262 "/usr/include/c++/8/ratio" 3 8768: template 8768: struct ratio 8768: { 8768: static_assert(_Den != 0, "denominator cannot be zero"); 8768: static_assert(_Num >= -0x7fffffffffffffffL && _Den >= -0x7fffffffffffffffL, 8768: "out of range"); 8768: 8768: 8768: static constexpr intmax_t num = 8768: _Num * __static_sign<_Den>::value / __static_gcd<_Num, _Den>::value; 8768: 8768: static constexpr intmax_t den = 8768: __static_abs<_Den>::value / __static_gcd<_Num, _Den>::value; 8768: 8768: typedef ratio type; 8768: }; 8768: 8768: template 8768: constexpr intmax_t ratio<_Num, _Den>::num; 8768: 8768: template 8768: constexpr intmax_t ratio<_Num, _Den>::den; 8768: 8768: template 8768: struct __ratio_multiply 8768: { 8768: private: 8768: static const intmax_t __gcd1 = 8768: __static_gcd<_R1::num, _R2::den>::value; 8768: static const intmax_t __gcd2 = 8768: __static_gcd<_R2::num, _R1::den>::value; 8768: 8768: public: 8768: typedef ratio< 8768: __safe_multiply<(_R1::num / __gcd1), 8768: (_R2::num / __gcd2)>::value, 8768: __safe_multiply<(_R1::den / __gcd2), 8768: (_R2::den / __gcd1)>::value> type; 8768: 8768: static constexpr intmax_t num = type::num; 8768: static constexpr intmax_t den = type::den; 8768: }; 8768: 8768: template 8768: constexpr intmax_t __ratio_multiply<_R1, _R2>::num; 8768: 8768: template 8768: constexpr intmax_t __ratio_multiply<_R1, _R2>::den; 8768: 8768: 8768: template 8768: using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; 8768: 8768: template 8768: struct __ratio_divide 8768: { 8768: static_assert(_R2::num != 0, "division by 0"); 8768: 8768: typedef typename __ratio_multiply< 8768: _R1, 8768: ratio<_R2::den, _R2::num>>::type type; 8768: 8768: static constexpr intmax_t num = type::num; 8768: static constexpr intmax_t den = type::den; 8768: }; 8768: 8768: template 8768: constexpr intmax_t __ratio_divide<_R1, _R2>::num; 8768: 8768: template 8768: constexpr intmax_t __ratio_divide<_R1, _R2>::den; 8768: 8768: 8768: template 8768: using ratio_divide = typename __ratio_divide<_R1, _R2>::type; 8768: 8768: 8768: template 8768: struct ratio_equal 8768: : integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct ratio_not_equal 8768: : integral_constant::value> 8768: { }; 8768: 8768: 8768: template, 8768: typename _Right = __big_mul<_R2::num,_R1::den> > 8768: struct __ratio_less_impl_1 8768: : integral_constant::value> 8768: { }; 8768: 8768: template::value 8768: != __static_sign<_R2::num>::value)), 8768: bool = (__static_sign<_R1::num>::value == -1 8768: && __static_sign<_R2::num>::value == -1)> 8768: struct __ratio_less_impl 8768: : __ratio_less_impl_1<_R1, _R2>::type 8768: { }; 8768: 8768: template 8768: struct __ratio_less_impl<_R1, _R2, true, false> 8768: : integral_constant 8768: { }; 8768: 8768: template 8768: struct __ratio_less_impl<_R1, _R2, false, true> 8768: : __ratio_less_impl_1, 8768: ratio<-_R1::num, _R1::den> >::type 8768: { }; 8768: 8768: 8768: template 8768: struct ratio_less 8768: : __ratio_less_impl<_R1, _R2>::type 8768: { }; 8768: 8768: 8768: template 8768: struct ratio_less_equal 8768: : integral_constant::value> 8768: { }; 8768: 8768: 8768: template 8768: struct ratio_greater 8768: : integral_constant::value> 8768: { }; 8768: 8768: 8768: template 8768: struct ratio_greater_equal 8768: : integral_constant::value> 8768: { }; 8768: # 421 "/usr/include/c++/8/ratio" 3 8768: template= 0), 8768: bool = (_R2::num >= 0), 8768: bool = ratio_less::value, _R1::den>, 8768: ratio<__static_abs<_R2::num>::value, _R2::den> >::value> 8768: struct __ratio_add_impl 8768: { 8768: private: 8768: typedef typename __ratio_add_impl< 8768: ratio<-_R1::num, _R1::den>, 8768: ratio<-_R2::num, _R2::den> >::type __t; 8768: public: 8768: typedef ratio<-__t::num, __t::den> type; 8768: }; 8768: 8768: 8768: template 8768: struct __ratio_add_impl<_R1, _R2, true, true, __b> 8768: { 8768: private: 8768: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8768: static constexpr uintmax_t __d2 = _R2::den / __g; 8768: typedef __big_mul<_R1::den, __d2> __d; 8768: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8768: typedef __big_mul<_R2::num, _R1::den / __g> __y; 8768: typedef __big_add<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8768: static_assert(__n::__hi >= __x::__hi, "Internal library error"); 8768: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8768: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8768: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8768: static_assert(__n_final::__rem == 0, "Internal library error"); 8768: static_assert(__n_final::__quot_hi == 0 && 8768: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 8768: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8768: static_assert(__d_final::__hi == 0 && 8768: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 8768: public: 8768: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8768: }; 8768: 8768: template 8768: struct __ratio_add_impl<_R1, _R2, false, true, true> 8768: : __ratio_add_impl<_R2, _R1> 8768: { }; 8768: 8768: 8768: template 8768: struct __ratio_add_impl<_R1, _R2, true, false, false> 8768: { 8768: private: 8768: static constexpr uintmax_t __g = __static_gcd<_R1::den, _R2::den>::value; 8768: static constexpr uintmax_t __d2 = _R2::den / __g; 8768: typedef __big_mul<_R1::den, __d2> __d; 8768: typedef __big_mul<_R1::num, _R2::den / __g> __x; 8768: typedef __big_mul<-_R2::num, _R1::den / __g> __y; 8768: typedef __big_sub<__x::__hi, __x::__lo, __y::__hi, __y::__lo> __n; 8768: typedef __big_div<__n::__hi, __n::__lo, __g> __ng; 8768: static constexpr uintmax_t __g2 = __static_gcd<__ng::__rem, __g>::value; 8768: typedef __big_div<__n::__hi, __n::__lo, __g2> __n_final; 8768: static_assert(__n_final::__rem == 0, "Internal library error"); 8768: static_assert(__n_final::__quot_hi == 0 && 8768: __n_final::__quot_lo <= 0x7fffffffffffffffL, "overflow in addition"); 8768: typedef __big_mul<_R1::den / __g2, __d2> __d_final; 8768: static_assert(__d_final::__hi == 0 && 8768: __d_final::__lo <= 0x7fffffffffffffffL, "overflow in addition"); 8768: public: 8768: typedef ratio<__n_final::__quot_lo, __d_final::__lo> type; 8768: }; 8768: 8768: template 8768: struct __ratio_add 8768: { 8768: typedef typename __ratio_add_impl<_R1, _R2>::type type; 8768: static constexpr intmax_t num = type::num; 8768: static constexpr intmax_t den = type::den; 8768: }; 8768: 8768: template 8768: constexpr intmax_t __ratio_add<_R1, _R2>::num; 8768: 8768: template 8768: constexpr intmax_t __ratio_add<_R1, _R2>::den; 8768: 8768: 8768: template 8768: using ratio_add = typename __ratio_add<_R1, _R2>::type; 8768: 8768: template 8768: struct __ratio_subtract 8768: { 8768: typedef typename __ratio_add< 8768: _R1, 8768: ratio<-_R2::num, _R2::den>>::type type; 8768: 8768: static constexpr intmax_t num = type::num; 8768: static constexpr intmax_t den = type::den; 8768: }; 8768: 8768: template 8768: constexpr intmax_t __ratio_subtract<_R1, _R2>::num; 8768: 8768: template 8768: constexpr intmax_t __ratio_subtract<_R1, _R2>::den; 8768: 8768: 8768: template 8768: using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; 8768: 8768: 8768: typedef ratio<1, 1000000000000000000> atto; 8768: typedef ratio<1, 1000000000000000> femto; 8768: typedef ratio<1, 1000000000000> pico; 8768: typedef ratio<1, 1000000000> nano; 8768: typedef ratio<1, 1000000> micro; 8768: typedef ratio<1, 1000> milli; 8768: typedef ratio<1, 100> centi; 8768: typedef ratio<1, 10> deci; 8768: typedef ratio< 10, 1> deca; 8768: typedef ratio< 100, 1> hecto; 8768: typedef ratio< 1000, 1> kilo; 8768: typedef ratio< 1000000, 1> mega; 8768: typedef ratio< 1000000000, 1> giga; 8768: typedef ratio< 1000000000000, 1> tera; 8768: typedef ratio< 1000000000000000, 1> peta; 8768: typedef ratio< 1000000000000000000, 1> exa; 8768: 8768: 8768: 8768: } 8768: # 39 "/usr/include/c++/8/chrono" 2 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/ctime" 1 3 8768: # 39 "/usr/include/c++/8/ctime" 3 8768: 8768: # 40 "/usr/include/c++/8/ctime" 3 8768: # 58 "/usr/include/c++/8/ctime" 3 8768: namespace std 8768: { 8768: using ::clock_t; 8768: using ::time_t; 8768: using ::tm; 8768: 8768: using ::clock; 8768: using ::difftime; 8768: using ::mktime; 8768: using ::time; 8768: using ::asctime; 8768: using ::ctime; 8768: using ::gmtime; 8768: using ::localtime; 8768: using ::strftime; 8768: } 8768: # 42 "/usr/include/c++/8/chrono" 2 3 8768: # 1 "/usr/include/c++/8/bits/parse_numbers.h" 1 3 8768: # 33 "/usr/include/c++/8/bits/parse_numbers.h" 3 8768: 8768: # 34 "/usr/include/c++/8/bits/parse_numbers.h" 3 8768: # 43 "/usr/include/c++/8/chrono" 2 3 8768: 8768: 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: # 61 "/usr/include/c++/8/chrono" 3 8768: namespace chrono 8768: { 8768: template> 8768: struct duration; 8768: 8768: template 8768: struct time_point; 8768: } 8768: 8768: 8768: 8768: template 8768: struct __duration_common_type_wrapper 8768: { 8768: private: 8768: typedef __static_gcd<_Period1::num, _Period2::num> __gcd_num; 8768: typedef __static_gcd<_Period1::den, _Period2::den> __gcd_den; 8768: typedef typename _CT::type __cr; 8768: typedef ratio<__gcd_num::value, 8768: (_Period1::den / __gcd_den::value) * _Period2::den> __r; 8768: public: 8768: typedef __success_type> type; 8768: }; 8768: 8768: template 8768: struct __duration_common_type_wrapper<__failure_type, _Period1, _Period2> 8768: { typedef __failure_type type; }; 8768: 8768: template 8768: struct common_type, 8768: chrono::duration<_Rep2, _Period2>> 8768: : public __duration_common_type_wrapper>::type, _Period1, _Period2>::type 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct __timepoint_common_type_wrapper 8768: { 8768: typedef __success_type> 8768: type; 8768: }; 8768: 8768: template 8768: struct __timepoint_common_type_wrapper<__failure_type, _Clock> 8768: { typedef __failure_type type; }; 8768: 8768: template 8768: struct common_type, 8768: chrono::time_point<_Clock, _Duration2>> 8768: : public __timepoint_common_type_wrapper>::type, _Clock>::type 8768: { }; 8768: 8768: namespace chrono 8768: { 8768: 8768: template 8768: struct __duration_cast_impl 8768: { 8768: template 8768: static constexpr _ToDur 8768: __cast(const duration<_Rep, _Period>& __d) 8768: { 8768: typedef typename _ToDur::rep __to_rep; 8768: return _ToDur(static_cast<__to_rep>(static_cast<_CR>(__d.count()) 8768: * static_cast<_CR>(_CF::num) 8768: / static_cast<_CR>(_CF::den))); 8768: } 8768: }; 8768: 8768: template 8768: struct __duration_cast_impl<_ToDur, _CF, _CR, true, true> 8768: { 8768: template 8768: static constexpr _ToDur 8768: __cast(const duration<_Rep, _Period>& __d) 8768: { 8768: typedef typename _ToDur::rep __to_rep; 8768: return _ToDur(static_cast<__to_rep>(__d.count())); 8768: } 8768: }; 8768: 8768: template 8768: struct __duration_cast_impl<_ToDur, _CF, _CR, true, false> 8768: { 8768: template 8768: static constexpr _ToDur 8768: __cast(const duration<_Rep, _Period>& __d) 8768: { 8768: typedef typename _ToDur::rep __to_rep; 8768: return _ToDur(static_cast<__to_rep>( 8768: static_cast<_CR>(__d.count()) / static_cast<_CR>(_CF::den))); 8768: } 8768: }; 8768: 8768: template 8768: struct __duration_cast_impl<_ToDur, _CF, _CR, false, true> 8768: { 8768: template 8768: static constexpr _ToDur 8768: __cast(const duration<_Rep, _Period>& __d) 8768: { 8768: typedef typename _ToDur::rep __to_rep; 8768: return _ToDur(static_cast<__to_rep>( 8768: static_cast<_CR>(__d.count()) * static_cast<_CR>(_CF::num))); 8768: } 8768: }; 8768: 8768: template 8768: struct __is_duration 8768: : std::false_type 8768: { }; 8768: 8768: template 8768: struct __is_duration> 8768: : std::true_type 8768: { }; 8768: 8768: template 8768: using __enable_if_is_duration 8768: = typename enable_if<__is_duration<_Tp>::value, _Tp>::type; 8768: 8768: template 8768: using __disable_if_is_duration 8768: = typename enable_if::value, _Tp>::type; 8768: 8768: 8768: template 8768: constexpr __enable_if_is_duration<_ToDur> 8768: duration_cast(const duration<_Rep, _Period>& __d) 8768: { 8768: typedef typename _ToDur::period __to_period; 8768: typedef typename _ToDur::rep __to_rep; 8768: typedef ratio_divide<_Period, __to_period> __cf; 8768: typedef typename common_type<__to_rep, _Rep, intmax_t>::type 8768: __cr; 8768: typedef __duration_cast_impl<_ToDur, __cf, __cr, 8768: __cf::num == 1, __cf::den == 1> __dc; 8768: return __dc::__cast(__d); 8768: } 8768: 8768: 8768: template 8768: struct treat_as_floating_point 8768: : is_floating_point<_Rep> 8768: { }; 8768: # 274 "/usr/include/c++/8/chrono" 3 8768: template 8768: struct duration_values 8768: { 8768: static constexpr _Rep 8768: zero() 8768: { return _Rep(0); } 8768: 8768: static constexpr _Rep 8768: max() 8768: { return numeric_limits<_Rep>::max(); } 8768: 8768: static constexpr _Rep 8768: min() 8768: { return numeric_limits<_Rep>::lowest(); } 8768: }; 8768: 8768: template 8768: struct __is_ratio 8768: : std::false_type 8768: { }; 8768: 8768: template 8768: struct __is_ratio> 8768: : std::true_type 8768: { }; 8768: 8768: 8768: template 8768: struct duration 8768: { 8768: private: 8768: template 8768: using __is_float = treat_as_floating_point<_Rep2>; 8768: 8768: 8768: template 8768: using __is_harmonic 8768: = __bool_constant::den == 1>; 8768: 8768: public: 8768: 8768: typedef _Rep rep; 8768: typedef _Period period; 8768: 8768: static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration"); 8768: static_assert(__is_ratio<_Period>::value, 8768: "period must be a specialization of ratio"); 8768: static_assert(_Period::num > 0, "period must be positive"); 8768: 8768: 8768: constexpr duration() = default; 8768: 8768: duration(const duration&) = default; 8768: 8768: template, 8768: __or_<__is_float, __not_<__is_float<_Rep2>>>>> 8768: constexpr explicit duration(const _Rep2& __rep) 8768: : __r(static_cast(__rep)) { } 8768: 8768: template, 8768: __and_<__is_harmonic<_Period2>, 8768: __not_<__is_float<_Rep2>>>>>> 8768: constexpr duration(const duration<_Rep2, _Period2>& __d) 8768: : __r(duration_cast(__d).count()) { } 8768: 8768: ~duration() = default; 8768: duration& operator=(const duration&) = default; 8768: 8768: 8768: constexpr rep 8768: count() const 8768: { return __r; } 8768: 8768: 8768: constexpr duration 8768: operator+() const 8768: { return *this; } 8768: 8768: constexpr duration 8768: operator-() const 8768: { return duration(-__r); } 8768: 8768: duration& 8768: operator++() 8768: { 8768: ++__r; 8768: return *this; 8768: } 8768: 8768: duration 8768: operator++(int) 8768: { return duration(__r++); } 8768: 8768: duration& 8768: operator--() 8768: { 8768: --__r; 8768: return *this; 8768: } 8768: 8768: duration 8768: operator--(int) 8768: { return duration(__r--); } 8768: 8768: duration& 8768: operator+=(const duration& __d) 8768: { 8768: __r += __d.count(); 8768: return *this; 8768: } 8768: 8768: duration& 8768: operator-=(const duration& __d) 8768: { 8768: __r -= __d.count(); 8768: return *this; 8768: } 8768: 8768: duration& 8768: operator*=(const rep& __rhs) 8768: { 8768: __r *= __rhs; 8768: return *this; 8768: } 8768: 8768: duration& 8768: operator/=(const rep& __rhs) 8768: { 8768: __r /= __rhs; 8768: return *this; 8768: } 8768: 8768: 8768: template 8768: 8768: typename enable_if::value, 8768: duration&>::type 8768: operator%=(const rep& __rhs) 8768: { 8768: __r %= __rhs; 8768: return *this; 8768: } 8768: 8768: template 8768: 8768: typename enable_if::value, 8768: duration&>::type 8768: operator%=(const duration& __d) 8768: { 8768: __r %= __d.count(); 8768: return *this; 8768: } 8768: 8768: 8768: static constexpr duration 8768: zero() 8768: { return duration(duration_values::zero()); } 8768: 8768: static constexpr duration 8768: min() 8768: { return duration(duration_values::min()); } 8768: 8768: static constexpr duration 8768: max() 8768: { return duration(duration_values::max()); } 8768: 8768: private: 8768: rep __r; 8768: }; 8768: 8768: template 8768: constexpr typename common_type, 8768: duration<_Rep2, _Period2>>::type 8768: operator+(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<__dur1,__dur2>::type __cd; 8768: return __cd(__cd(__lhs).count() + __cd(__rhs).count()); 8768: } 8768: 8768: template 8768: constexpr typename common_type, 8768: duration<_Rep2, _Period2>>::type 8768: operator-(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<__dur1,__dur2>::type __cd; 8768: return __cd(__cd(__lhs).count() - __cd(__rhs).count()); 8768: } 8768: 8768: 8768: 8768: template::type> 8768: using __common_rep_t 8768: = typename enable_if::value, _CRep>::type; 8768: 8768: template 8768: constexpr duration<__common_rep_t<_Rep1, _Rep2>, _Period> 8768: operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8768: { 8768: typedef duration::type, _Period> 8768: __cd; 8768: return __cd(__cd(__d).count() * __s); 8768: } 8768: 8768: template 8768: constexpr duration<__common_rep_t<_Rep2, _Rep1>, _Period> 8768: operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) 8768: { return __d * __s; } 8768: 8768: template 8768: constexpr 8768: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8768: operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8768: { 8768: typedef duration::type, _Period> 8768: __cd; 8768: return __cd(__cd(__d).count() / __s); 8768: } 8768: 8768: template 8768: constexpr typename common_type<_Rep1, _Rep2>::type 8768: operator/(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<__dur1,__dur2>::type __cd; 8768: return __cd(__lhs).count() / __cd(__rhs).count(); 8768: } 8768: 8768: 8768: template 8768: constexpr 8768: duration<__common_rep_t<_Rep1, __disable_if_is_duration<_Rep2>>, _Period> 8768: operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) 8768: { 8768: typedef duration::type, _Period> 8768: __cd; 8768: return __cd(__cd(__d).count() % __s); 8768: } 8768: 8768: template 8768: constexpr typename common_type, 8768: duration<_Rep2, _Period2>>::type 8768: operator%(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<__dur1,__dur2>::type __cd; 8768: return __cd(__cd(__lhs).count() % __cd(__rhs).count()); 8768: } 8768: 8768: 8768: template 8768: constexpr bool 8768: operator==(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<__dur1,__dur2>::type __ct; 8768: return __ct(__lhs).count() == __ct(__rhs).count(); 8768: } 8768: 8768: template 8768: constexpr bool 8768: operator<(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<__dur1,__dur2>::type __ct; 8768: return __ct(__lhs).count() < __ct(__rhs).count(); 8768: } 8768: 8768: template 8768: constexpr bool 8768: operator!=(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { return !(__lhs == __rhs); } 8768: 8768: template 8768: constexpr bool 8768: operator<=(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { return !(__rhs < __lhs); } 8768: 8768: template 8768: constexpr bool 8768: operator>(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { return __rhs < __lhs; } 8768: 8768: template 8768: constexpr bool 8768: operator>=(const duration<_Rep1, _Period1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { return !(__lhs < __rhs); } 8768: 8768: 8768: typedef duration nanoseconds; 8768: 8768: 8768: typedef duration microseconds; 8768: 8768: 8768: typedef duration milliseconds; 8768: 8768: 8768: typedef duration seconds; 8768: 8768: 8768: typedef duration> minutes; 8768: 8768: 8768: typedef duration> hours; 8768: 8768: 8768: template 8768: struct time_point 8768: { 8768: typedef _Clock clock; 8768: typedef _Dur duration; 8768: typedef typename duration::rep rep; 8768: typedef typename duration::period period; 8768: 8768: constexpr time_point() : __d(duration::zero()) 8768: { } 8768: 8768: constexpr explicit time_point(const duration& __dur) 8768: : __d(__dur) 8768: { } 8768: 8768: 8768: template>> 8768: constexpr time_point(const time_point& __t) 8768: : __d(__t.time_since_epoch()) 8768: { } 8768: 8768: 8768: constexpr duration 8768: time_since_epoch() const 8768: { return __d; } 8768: 8768: 8768: time_point& 8768: operator+=(const duration& __dur) 8768: { 8768: __d += __dur; 8768: return *this; 8768: } 8768: 8768: time_point& 8768: operator-=(const duration& __dur) 8768: { 8768: __d -= __dur; 8768: return *this; 8768: } 8768: 8768: 8768: static constexpr time_point 8768: min() 8768: { return time_point(duration::min()); } 8768: 8768: static constexpr time_point 8768: max() 8768: { return time_point(duration::max()); } 8768: 8768: private: 8768: duration __d; 8768: }; 8768: 8768: 8768: template 8768: constexpr typename enable_if<__is_duration<_ToDur>::value, 8768: time_point<_Clock, _ToDur>>::type 8768: time_point_cast(const time_point<_Clock, _Dur>& __t) 8768: { 8768: typedef time_point<_Clock, _ToDur> __time_point; 8768: return __time_point(duration_cast<_ToDur>(__t.time_since_epoch())); 8768: } 8768: # 707 "/usr/include/c++/8/chrono" 3 8768: template 8768: constexpr time_point<_Clock, 8768: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8768: operator+(const time_point<_Clock, _Dur1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<_Dur1,__dur2>::type __ct; 8768: typedef time_point<_Clock, __ct> __time_point; 8768: return __time_point(__lhs.time_since_epoch() + __rhs); 8768: } 8768: 8768: template 8768: constexpr time_point<_Clock, 8768: typename common_type, _Dur2>::type> 8768: operator+(const duration<_Rep1, _Period1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { 8768: typedef duration<_Rep1, _Period1> __dur1; 8768: typedef typename common_type<__dur1,_Dur2>::type __ct; 8768: typedef time_point<_Clock, __ct> __time_point; 8768: return __time_point(__rhs.time_since_epoch() + __lhs); 8768: } 8768: 8768: template 8768: constexpr time_point<_Clock, 8768: typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> 8768: operator-(const time_point<_Clock, _Dur1>& __lhs, 8768: const duration<_Rep2, _Period2>& __rhs) 8768: { 8768: typedef duration<_Rep2, _Period2> __dur2; 8768: typedef typename common_type<_Dur1,__dur2>::type __ct; 8768: typedef time_point<_Clock, __ct> __time_point; 8768: return __time_point(__lhs.time_since_epoch() -__rhs); 8768: } 8768: 8768: template 8768: constexpr typename common_type<_Dur1, _Dur2>::type 8768: operator-(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } 8768: 8768: template 8768: constexpr bool 8768: operator==(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } 8768: 8768: template 8768: constexpr bool 8768: operator!=(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return !(__lhs == __rhs); } 8768: 8768: template 8768: constexpr bool 8768: operator<(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } 8768: 8768: template 8768: constexpr bool 8768: operator<=(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return !(__rhs < __lhs); } 8768: 8768: template 8768: constexpr bool 8768: operator>(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return __rhs < __lhs; } 8768: 8768: template 8768: constexpr bool 8768: operator>=(const time_point<_Clock, _Dur1>& __lhs, 8768: const time_point<_Clock, _Dur2>& __rhs) 8768: { return !(__lhs < __rhs); } 8768: # 807 "/usr/include/c++/8/chrono" 3 8768: inline namespace _V2 { 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct system_clock 8768: { 8768: typedef chrono::nanoseconds duration; 8768: typedef duration::rep rep; 8768: typedef duration::period period; 8768: typedef chrono::time_point time_point; 8768: 8768: static_assert(system_clock::duration::min() 8768: < system_clock::duration::zero(), 8768: "a clock's minimum duration cannot be less than its epoch"); 8768: 8768: static constexpr bool is_steady = false; 8768: 8768: static time_point 8768: now() noexcept; 8768: 8768: 8768: static std::time_t 8768: to_time_t(const time_point& __t) noexcept 8768: { 8768: return std::time_t(duration_cast 8768: (__t.time_since_epoch()).count()); 8768: } 8768: 8768: static time_point 8768: from_time_t(std::time_t __t) noexcept 8768: { 8768: typedef chrono::time_point __from; 8768: return time_point_cast 8768: (__from(chrono::seconds(__t))); 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct steady_clock 8768: { 8768: typedef chrono::nanoseconds duration; 8768: typedef duration::rep rep; 8768: typedef duration::period period; 8768: typedef chrono::time_point time_point; 8768: 8768: static constexpr bool is_steady = true; 8768: 8768: static time_point 8768: now() noexcept; 8768: }; 8768: # 874 "/usr/include/c++/8/chrono" 3 8768: using high_resolution_clock = system_clock; 8768: 8768: } 8768: } 8768: # 976 "/usr/include/c++/8/chrono" 3 8768: 8768: } 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: class QEvent; 8768: class QTimerEvent; 8768: class QChildEvent; 8768: struct QMetaObject; 8768: class QVariant; 8768: class QObjectPrivate; 8768: class QObject; 8768: class QThread; 8768: class QWidget; 8768: 8768: class QRegExp; 8768: 8768: 8768: class QRegularExpression; 8768: 8768: 8768: class QObjectUserData; 8768: 8768: struct QDynamicMetaObjectData; 8768: 8768: typedef QList QObjectList; 8768: 8768: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QString &name, 8768: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8768: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re, 8768: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8768: __attribute__((visibility("default"))) void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re, 8768: const QMetaObject &mo, QList *list, Qt::FindChildOptions options); 8768: __attribute__((visibility("default"))) QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo, Qt::FindChildOptions options); 8768: 8768: class __attribute__((visibility("default"))) QObjectData { 8768: public: 8768: virtual ~QObjectData() = 0; 8768: QObject *q_ptr; 8768: QObject *parent; 8768: QObjectList children; 8768: 8768: uint isWidget : 1; 8768: uint blockSig : 1; 8768: uint wasDeleted : 1; 8768: uint isDeletingChildren : 1; 8768: uint sendChildEvents : 1; 8768: uint receiveChildEvents : 1; 8768: uint isWindow : 1; 8768: uint unused : 25; 8768: int postedEvents; 8768: QDynamicMetaObjectData *metaObject; 8768: QMetaObject *dynamicMetaObject() const; 8768: }; 8768: 8768: 8768: class __attribute__((visibility("default"))) QObject 8768: { 8768: public: 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: 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: 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: struct QPrivateSignal {}; 8768: 8768: 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; 8768: 8768: public: 8768: explicit QObject(QObject *parent=nullptr); 8768: virtual ~QObject(); 8768: 8768: virtual bool event(QEvent *event); 8768: virtual bool eventFilter(QObject *watched, QEvent *event); 8768: # 144 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: QString objectName() const; 8768: void setObjectName(const QString &name); 8768: 8768: inline bool isWidgetType() const { return d_ptr->isWidget; } 8768: inline bool isWindowType() const { return d_ptr->isWindow; } 8768: 8768: inline bool signalsBlocked() const noexcept { return d_ptr->blockSig; } 8768: bool blockSignals(bool b) noexcept; 8768: 8768: QThread *thread() const; 8768: void moveToThread(QThread *thread); 8768: 8768: int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer); 8768: 8768: inline __attribute__((always_inline)) 8768: int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer) 8768: { 8768: return startTimer(int(time.count()), timerType); 8768: } 8768: 8768: void killTimer(int id); 8768: 8768: template 8768: inline T findChild(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8768: { 8768: typedef typename std::remove_cv::type>::type ObjType; 8768: return static_cast(qt_qFindChild_helper(this, aName, ObjType::staticMetaObject, options)); 8768: } 8768: 8768: template 8768: inline QList findChildren(const QString &aName = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8768: { 8768: typedef typename std::remove_cv::type>::type ObjType; 8768: QList list; 8768: qt_qFindChildren_helper(this, aName, ObjType::staticMetaObject, 8768: reinterpret_cast *>(&list), options); 8768: return list; 8768: } 8768: 8768: 8768: template 8768: inline QList findChildren(const QRegExp &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8768: { 8768: typedef typename std::remove_cv::type>::type ObjType; 8768: QList list; 8768: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8768: reinterpret_cast *>(&list), options); 8768: return list; 8768: } 8768: 8768: 8768: 8768: template 8768: inline QList findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const 8768: { 8768: typedef typename std::remove_cv::type>::type ObjType; 8768: QList list; 8768: qt_qFindChildren_helper(this, re, ObjType::staticMetaObject, 8768: reinterpret_cast *>(&list), options); 8768: return list; 8768: } 8768: 8768: 8768: inline const QObjectList &children() const { return d_ptr->children; } 8768: 8768: void setParent(QObject *parent); 8768: void installEventFilter(QObject *filterObj); 8768: void removeEventFilter(QObject *obj); 8768: 8768: static QMetaObject::Connection connect(const QObject *sender, const char *signal, 8768: const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection); 8768: 8768: static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, 8768: const QObject *receiver, const QMetaMethod &method, 8768: Qt::ConnectionType type = Qt::AutoConnection); 8768: 8768: inline QMetaObject::Connection connect(const QObject *sender, const char *signal, 8768: const char *member, Qt::ConnectionType type = Qt::AutoConnection) const; 8768: # 232 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: template 8768: static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8768: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot, 8768: Qt::ConnectionType type = Qt::AutoConnection) 8768: { 8768: typedef QtPrivate::FunctionPointer SignalType; 8768: typedef QtPrivate::FunctionPointer SlotType; 8768: 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8768: ; 8768: 8768: 8768: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8768: ; 8768: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8768: ; 8768: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8768: ; 8768: 8768: const int *types = nullptr; 8768: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8768: types = QtPrivate::ConnectionTypes::types(); 8768: 8768: return connectImpl(sender, reinterpret_cast(&signal), 8768: receiver, reinterpret_cast(&slot), 8768: new QtPrivate::QSlotObject::Value, 8768: typename SignalType::ReturnType>(slot), 8768: type, types, &SignalType::Object::staticMetaObject); 8768: } 8768: 8768: 8768: template 8768: static inline typename std::enable_if::ArgumentCount) >= 0, QMetaObject::Connection>::type 8768: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8768: { 8768: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8768: } 8768: 8768: 8768: template 8768: static inline typename std::enable_if::ArgumentCount) >= 0 && 8768: !QtPrivate::FunctionPointer::IsPointerToMemberFunction, QMetaObject::Connection>::type 8768: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8768: Qt::ConnectionType type = Qt::AutoConnection) 8768: { 8768: typedef QtPrivate::FunctionPointer SignalType; 8768: typedef QtPrivate::FunctionPointer SlotType; 8768: 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8768: ; 8768: 8768: 8768: static_assert(bool(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount)), "The slot requires more arguments than the signal provides.") 8768: ; 8768: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8768: ; 8768: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8768: ; 8768: 8768: const int *types = nullptr; 8768: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8768: types = QtPrivate::ConnectionTypes::types(); 8768: 8768: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8768: new QtPrivate::QStaticSlotObject::Value, 8768: typename SignalType::ReturnType>(slot), 8768: type, types, &SignalType::Object::staticMetaObject); 8768: } 8768: 8768: 8768: template 8768: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8768: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 slot) 8768: { 8768: return connect(sender, signal, sender, slot, Qt::DirectConnection); 8768: } 8768: 8768: 8768: template 8768: static inline typename std::enable_if::ArgumentCount == -1, QMetaObject::Connection>::type 8768: connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, const QObject *context, Func2 slot, 8768: Qt::ConnectionType type = Qt::AutoConnection) 8768: { 8768: typedef QtPrivate::FunctionPointer SignalType; 8768: const int FunctorArgumentCount = QtPrivate::ComputeFunctorArgumentCount::Value; 8768: 8768: static_assert(bool((FunctorArgumentCount >= 0)), "Signal and slot arguments are not compatible.") 8768: ; 8768: const int SlotArgumentCount = (FunctorArgumentCount >= 0) ? FunctorArgumentCount : 0; 8768: typedef typename QtPrivate::FunctorReturnType::Value>::Value SlotReturnType; 8768: 8768: static_assert(bool((QtPrivate::AreArgumentsCompatible::value)), "Return type of the slot is not compatible with the return type of the signal.") 8768: ; 8768: 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8768: ; 8768: 8768: const int *types = nullptr; 8768: if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection) 8768: types = QtPrivate::ConnectionTypes::types(); 8768: 8768: return connectImpl(sender, reinterpret_cast(&signal), context, nullptr, 8768: new QtPrivate::QFunctorSlotObject::Value, 8768: typename SignalType::ReturnType>(slot), 8768: type, types, &SignalType::Object::staticMetaObject); 8768: } 8768: 8768: 8768: static bool disconnect(const QObject *sender, const char *signal, 8768: const QObject *receiver, const char *member); 8768: static bool disconnect(const QObject *sender, const QMetaMethod &signal, 8768: const QObject *receiver, const QMetaMethod &member); 8768: inline bool disconnect(const char *signal = nullptr, 8768: const QObject *receiver = nullptr, const char *member = nullptr) const 8768: { return disconnect(this, signal, receiver, member); } 8768: inline bool disconnect(const QObject *receiver, const char *member = nullptr) const 8768: { return disconnect(this, nullptr, receiver, member); } 8768: static bool disconnect(const QMetaObject::Connection &); 8768: 8768: 8768: 8768: 8768: 8768: template 8768: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8768: const typename QtPrivate::FunctionPointer::Object *receiver, Func2 slot) 8768: { 8768: typedef QtPrivate::FunctionPointer SignalType; 8768: typedef QtPrivate::FunctionPointer SlotType; 8768: 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8768: ; 8768: 8768: 8768: static_assert(bool((QtPrivate::CheckCompatibleArguments::value)), "Signal and slot arguments are not compatible.") 8768: ; 8768: 8768: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, reinterpret_cast(&slot), 8768: &SignalType::Object::staticMetaObject); 8768: } 8768: template 8768: static inline bool disconnect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, 8768: const QObject *receiver, void **zero) 8768: { 8768: 8768: 8768: 8768: do { } while ((false) && (!zero)); 8768: typedef QtPrivate::FunctionPointer SignalType; 8768: return disconnectImpl(sender, reinterpret_cast(&signal), receiver, zero, 8768: &SignalType::Object::staticMetaObject); 8768: } 8768: 8768: 8768: 8768: 8768: void dumpObjectTree(); 8768: void dumpObjectInfo(); 8768: 8768: void dumpObjectTree() const; 8768: void dumpObjectInfo() const; 8768: 8768: 8768: bool setProperty(const char *name, const QVariant &value); 8768: QVariant property(const char *name) const; 8768: QList dynamicPropertyNames() const; 8768: 8768: 8768: 8768: static uint registerUserData(); 8768: void setUserData(uint id, QObjectUserData* data); 8768: QObjectUserData* userData(uint id) const; 8768: 8768: 8768: public : 8768: void destroyed(QObject * = nullptr); 8768: void objectNameChanged(const QString &objectName, QPrivateSignal); 8768: 8768: public: 8768: inline QObject *parent() const { return d_ptr->parent; } 8768: 8768: inline bool inherits(const char *classname) const 8768: { return const_cast(this)->qt_metacast(classname) != nullptr; } 8768: 8768: public : 8768: void deleteLater(); 8768: 8768: protected: 8768: QObject *sender() const; 8768: int senderSignalIndex() const; 8768: int receivers(const char* signal) const; 8768: bool isSignalConnected(const QMetaMethod &signal) const; 8768: 8768: virtual void timerEvent(QTimerEvent *event); 8768: virtual void childEvent(QChildEvent *event); 8768: virtual void customEvent(QEvent *event); 8768: 8768: virtual void connectNotify(const QMetaMethod &signal); 8768: virtual void disconnectNotify(const QMetaMethod &signal); 8768: 8768: protected: 8768: QObject(QObjectPrivate &dd, QObject *parent = nullptr); 8768: 8768: protected: 8768: QScopedPointer d_ptr; 8768: 8768: static const QMetaObject staticQtMetaObject; 8768: friend inline const QMetaObject *qt_getQtMetaObject() noexcept; 8768: 8768: friend struct QMetaObject; 8768: friend struct QMetaObjectPrivate; 8768: friend class QMetaCallEvent; 8768: friend class QApplication; 8768: friend class QApplicationPrivate; 8768: friend class QCoreApplication; 8768: friend class QCoreApplicationPrivate; 8768: friend class QWidget; 8768: friend class QThreadData; 8768: 8768: private: 8768: QObject(const QObject &) = delete; QObject &operator=(const QObject &) = delete; 8768: 8768: 8768: private: 8768: static QMetaObject::Connection connectImpl(const QObject *sender, void **signal, 8768: const QObject *receiver, void **slotPtr, 8768: QtPrivate::QSlotObjectBase *slot, Qt::ConnectionType type, 8768: const int *types, const QMetaObject *senderMetaObject); 8768: 8768: static bool disconnectImpl(const QObject *sender, void **signal, const QObject *receiver, void **slot, 8768: const QMetaObject *senderMetaObject); 8768: 8768: }; 8768: 8768: inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, 8768: const char *amember, Qt::ConnectionType atype) const 8768: { return connect(asender, asignal, this, amember, atype); } 8768: 8768: inline const QMetaObject *qt_getQtMetaObject() noexcept 8768: { return &QObject::staticQtMetaObject; } 8768: 8768: 8768: class __attribute__((visibility("default"))) QObjectUserData { 8768: public: 8768: virtual ~QObjectUserData(); 8768: }; 8768: # 508 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: template 8768: inline T qobject_cast(QObject *object) 8768: { 8768: typedef typename std::remove_cv::type>::type ObjType; 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8768: ; 8768: return static_cast(ObjType::staticMetaObject.cast(object)); 8768: } 8768: 8768: template 8768: inline T qobject_cast(const QObject *object) 8768: { 8768: typedef typename std::remove_cv::type>::type ObjType; 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "qobject_cast requires the type to have a Q_OBJECT macro") 8768: ; 8768: return static_cast(ObjType::staticMetaObject.cast(object)); 8768: } 8768: 8768: 8768: template inline const char * qobject_interface_iid() 8768: { return nullptr; } 8768: # 541 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 3 4 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QObject *); 8768: 8768: 8768: class QSignalBlocker 8768: { 8768: public: 8768: inline explicit QSignalBlocker(QObject *o) noexcept; 8768: inline explicit QSignalBlocker(QObject &o) noexcept; 8768: inline ~QSignalBlocker(); 8768: 8768: 8768: inline QSignalBlocker(QSignalBlocker &&other) noexcept; 8768: inline QSignalBlocker &operator=(QSignalBlocker &&other) noexcept; 8768: 8768: 8768: inline void reblock() noexcept; 8768: inline void unblock() noexcept; 8768: private: 8768: QSignalBlocker(const QSignalBlocker &) = delete; QSignalBlocker &operator=(const QSignalBlocker &) = delete; 8768: QObject * m_o; 8768: bool m_blocked; 8768: bool m_inhibited; 8768: }; 8768: 8768: QSignalBlocker::QSignalBlocker(QObject *o) noexcept 8768: : m_o(o), 8768: m_blocked(o && o->blockSignals(true)), 8768: m_inhibited(false) 8768: {} 8768: 8768: QSignalBlocker::QSignalBlocker(QObject &o) noexcept 8768: : m_o(&o), 8768: m_blocked(o.blockSignals(true)), 8768: m_inhibited(false) 8768: {} 8768: 8768: 8768: QSignalBlocker::QSignalBlocker(QSignalBlocker &&other) noexcept 8768: : m_o(other.m_o), 8768: m_blocked(other.m_blocked), 8768: m_inhibited(other.m_inhibited) 8768: { 8768: other.m_o = nullptr; 8768: } 8768: 8768: QSignalBlocker &QSignalBlocker::operator=(QSignalBlocker &&other) noexcept 8768: { 8768: if (this != &other) { 8768: 8768: 8768: if (m_o != other.m_o || (!m_inhibited && other.m_inhibited)) 8768: unblock(); 8768: m_o = other.m_o; 8768: m_blocked = other.m_blocked; 8768: m_inhibited = other.m_inhibited; 8768: 8768: other.m_o = nullptr; 8768: } 8768: return *this; 8768: } 8768: 8768: 8768: QSignalBlocker::~QSignalBlocker() 8768: { 8768: if (m_o && !m_inhibited) 8768: m_o->blockSignals(m_blocked); 8768: } 8768: 8768: void QSignalBlocker::reblock() noexcept 8768: { 8768: if (m_o) m_o->blockSignals(true); 8768: m_inhibited = false; 8768: } 8768: 8768: void QSignalBlocker::unblock() noexcept 8768: { 8768: if (m_o) m_o->blockSignals(m_blocked); 8768: m_inhibited = true; 8768: } 8768: 8768: namespace QtPrivate { 8768: inline QObject & deref_for_methodcall(QObject &o) { return o; } 8768: inline QObject & deref_for_methodcall(QObject *o) { return *o; } 8768: } 8768: 8768: 8768: 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qbytearraylist.h" 1 3 4 8768: # 54 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: class QBitArray; 8768: class QDataStream; 8768: class QDate; 8768: class QDateTime; 8768: class QEasingCurve; 8768: class QLine; 8768: class QLineF; 8768: class QLocale; 8768: class QMatrix; 8768: class QTransform; 8768: class QStringList; 8768: class QTime; 8768: class QPoint; 8768: class QPointF; 8768: class QSize; 8768: class QSizeF; 8768: class QRect; 8768: class QRectF; 8768: 8768: class QRegExp; 8768: 8768: 8768: class QRegularExpression; 8768: 8768: class QTextFormat; 8768: class QTextLength; 8768: class QUrl; 8768: class QVariant; 8768: class QVariantComparisonHelper; 8768: 8768: template 8768: inline QVariant qVariantFromValue(const T &); 8768: 8768: template 8768: inline T qvariant_cast(const QVariant &); 8768: 8768: namespace QtPrivate { 8768: 8768: template 8768: struct ObjectInvoker 8768: { 8768: static ReturnType invoke(Argument a) 8768: { 8768: return Derived::object(a); 8768: } 8768: }; 8768: 8768: template 8768: struct MetaTypeInvoker 8768: { 8768: static ReturnType invoke(Argument a) 8768: { 8768: return Derived::metaType(a); 8768: } 8768: }; 8768: 8768: template ::Value> 8768: struct TreatAsQObjectBeforeMetaType : ObjectInvoker 8768: { 8768: }; 8768: 8768: template 8768: struct TreatAsQObjectBeforeMetaType : MetaTypeInvoker 8768: { 8768: }; 8768: 8768: template struct QVariantValueHelper; 8768: } 8768: 8768: class __attribute__((visibility("default"))) QVariant 8768: { 8768: public: 8768: enum Type { 8768: Invalid = QMetaType::UnknownType, 8768: Bool = QMetaType::Bool, 8768: Int = QMetaType::Int, 8768: UInt = QMetaType::UInt, 8768: LongLong = QMetaType::LongLong, 8768: ULongLong = QMetaType::ULongLong, 8768: Double = QMetaType::Double, 8768: Char = QMetaType::QChar, 8768: Map = QMetaType::QVariantMap, 8768: List = QMetaType::QVariantList, 8768: String = QMetaType::QString, 8768: StringList = QMetaType::QStringList, 8768: ByteArray = QMetaType::QByteArray, 8768: BitArray = QMetaType::QBitArray, 8768: Date = QMetaType::QDate, 8768: Time = QMetaType::QTime, 8768: DateTime = QMetaType::QDateTime, 8768: Url = QMetaType::QUrl, 8768: Locale = QMetaType::QLocale, 8768: Rect = QMetaType::QRect, 8768: RectF = QMetaType::QRectF, 8768: Size = QMetaType::QSize, 8768: SizeF = QMetaType::QSizeF, 8768: Line = QMetaType::QLine, 8768: LineF = QMetaType::QLineF, 8768: Point = QMetaType::QPoint, 8768: PointF = QMetaType::QPointF, 8768: RegExp = QMetaType::QRegExp, 8768: RegularExpression = QMetaType::QRegularExpression, 8768: Hash = QMetaType::QVariantHash, 8768: EasingCurve = QMetaType::QEasingCurve, 8768: Uuid = QMetaType::QUuid, 8768: ModelIndex = QMetaType::QModelIndex, 8768: PersistentModelIndex = QMetaType::QPersistentModelIndex, 8768: LastCoreType = QMetaType::LastCoreType, 8768: 8768: Font = QMetaType::QFont, 8768: Pixmap = QMetaType::QPixmap, 8768: Brush = QMetaType::QBrush, 8768: Color = QMetaType::QColor, 8768: Palette = QMetaType::QPalette, 8768: Image = QMetaType::QImage, 8768: Polygon = QMetaType::QPolygon, 8768: Region = QMetaType::QRegion, 8768: Bitmap = QMetaType::QBitmap, 8768: Cursor = QMetaType::QCursor, 8768: KeySequence = QMetaType::QKeySequence, 8768: Pen = QMetaType::QPen, 8768: TextLength = QMetaType::QTextLength, 8768: TextFormat = QMetaType::QTextFormat, 8768: Matrix = QMetaType::QMatrix, 8768: Transform = QMetaType::QTransform, 8768: Matrix4x4 = QMetaType::QMatrix4x4, 8768: Vector2D = QMetaType::QVector2D, 8768: Vector3D = QMetaType::QVector3D, 8768: Vector4D = QMetaType::QVector4D, 8768: Quaternion = QMetaType::QQuaternion, 8768: PolygonF = QMetaType::QPolygonF, 8768: Icon = QMetaType::QIcon, 8768: LastGuiType = QMetaType::LastGuiType, 8768: 8768: SizePolicy = QMetaType::QSizePolicy, 8768: 8768: UserType = QMetaType::User, 8768: LastType = 0xffffffff 8768: }; 8768: 8768: QVariant() noexcept : d() {} 8768: ~QVariant(); 8768: QVariant(Type type); 8768: QVariant(int typeId, const void *copy); 8768: QVariant(int typeId, const void *copy, uint flags); 8768: QVariant(const QVariant &other); 8768: 8768: 8768: QVariant(QDataStream &s); 8768: 8768: 8768: QVariant(int i); 8768: QVariant(uint ui); 8768: QVariant(qlonglong ll); 8768: QVariant(qulonglong ull); 8768: QVariant(bool b); 8768: QVariant(double d); 8768: QVariant(float f); 8768: 8768: 8768: 8768: 8768: QVariant(const QByteArray &bytearray); 8768: QVariant(const QBitArray &bitarray); 8768: QVariant(const QString &string); 8768: QVariant(QLatin1String string); 8768: QVariant(const QStringList &stringlist); 8768: QVariant(QChar qchar); 8768: QVariant(const QDate &date); 8768: QVariant(const QTime &time); 8768: QVariant(const QDateTime &datetime); 8768: QVariant(const QList &list); 8768: QVariant(const QMap &map); 8768: QVariant(const QHash &hash); 8768: 8768: QVariant(const QSize &size); 8768: QVariant(const QSizeF &size); 8768: QVariant(const QPoint &pt); 8768: QVariant(const QPointF &pt); 8768: QVariant(const QLine &line); 8768: QVariant(const QLineF &line); 8768: QVariant(const QRect &rect); 8768: QVariant(const QRectF &rect); 8768: 8768: QVariant(const QLocale &locale); 8768: 8768: QVariant(const QRegExp ®Exp); 8768: 8768: 8768: 8768: QVariant(const QRegularExpression &re); 8768: 8768: QVariant(const QUrl &url); 8768: QVariant(const QEasingCurve &easing); 8768: QVariant(const QUuid &uuid); 8768: QVariant(const QModelIndex &modelIndex); 8768: QVariant(const QPersistentModelIndex &modelIndex); 8768: QVariant(const QJsonValue &jsonValue); 8768: QVariant(const QJsonObject &jsonObject); 8768: QVariant(const QJsonArray &jsonArray); 8768: QVariant(const QJsonDocument &jsonDocument); 8768: 8768: 8768: QVariant& operator=(const QVariant &other); 8768: 8768: inline QVariant(QVariant &&other) noexcept : d(other.d) 8768: { other.d = Private(); } 8768: inline QVariant &operator=(QVariant &&other) noexcept 8768: { qSwap(d, other.d); return *this; } 8768: 8768: 8768: inline void swap(QVariant &other) noexcept { qSwap(d, other.d); } 8768: 8768: Type type() const; 8768: int userType() const; 8768: const char *typeName() const; 8768: 8768: bool canConvert(int targetTypeId) const; 8768: bool convert(int targetTypeId); 8768: 8768: inline bool isValid() const; 8768: bool isNull() const; 8768: 8768: void clear(); 8768: 8768: void detach(); 8768: inline bool isDetached() const; 8768: 8768: int toInt(bool *ok = nullptr) const; 8768: uint toUInt(bool *ok = nullptr) const; 8768: qlonglong toLongLong(bool *ok = nullptr) const; 8768: qulonglong toULongLong(bool *ok = nullptr) const; 8768: bool toBool() const; 8768: double toDouble(bool *ok = nullptr) const; 8768: float toFloat(bool *ok = nullptr) const; 8768: qreal toReal(bool *ok = nullptr) const; 8768: QByteArray toByteArray() const; 8768: QBitArray toBitArray() const; 8768: QString toString() const; 8768: QStringList toStringList() const; 8768: QChar toChar() const; 8768: QDate toDate() const; 8768: QTime toTime() const; 8768: QDateTime toDateTime() const; 8768: QList toList() const; 8768: QMap toMap() const; 8768: QHash toHash() const; 8768: 8768: 8768: QPoint toPoint() const; 8768: QPointF toPointF() const; 8768: QRect toRect() const; 8768: QSize toSize() const; 8768: QSizeF toSizeF() const; 8768: QLine toLine() const; 8768: QLineF toLineF() const; 8768: QRectF toRectF() const; 8768: 8768: QLocale toLocale() const; 8768: 8768: QRegExp toRegExp() const; 8768: 8768: 8768: 8768: QRegularExpression toRegularExpression() const; 8768: 8768: QUrl toUrl() const; 8768: QEasingCurve toEasingCurve() const; 8768: QUuid toUuid() const; 8768: QModelIndex toModelIndex() const; 8768: QPersistentModelIndex toPersistentModelIndex() const; 8768: QJsonValue toJsonValue() const; 8768: QJsonObject toJsonObject() const; 8768: QJsonArray toJsonArray() const; 8768: QJsonDocument toJsonDocument() const; 8768: 8768: 8768: 8768: void load(QDataStream &ds); 8768: void save(QDataStream &ds) const; 8768: 8768: static const char *typeToName(int typeId); 8768: static Type nameToType(const char *name); 8768: 8768: void *data(); 8768: const void *constData() const; 8768: inline const void *data() const { return constData(); } 8768: 8768: template 8768: inline void setValue(const T &value); 8768: 8768: template 8768: inline T value() const 8768: { return qvariant_cast(*this); } 8768: 8768: template 8768: static inline QVariant fromValue(const T &value) 8768: { return qVariantFromValue(value); } 8768: 8768: template 8768: bool canConvert() const 8768: { return canConvert(qMetaTypeId()); } 8768: 8768: public: 8768: 8768: struct PrivateShared 8768: { 8768: inline PrivateShared(void *v) : ptr(v), ref(1) { } 8768: void *ptr; 8768: QAtomicInt ref; 8768: }; 8768: struct Private 8768: { 8768: inline Private() noexcept : type(Invalid), is_shared(false), is_null(true) 8768: { data.ptr = nullptr; } 8768: 8768: 8768: explicit inline Private(uint variantType) noexcept 8768: : type(variantType), is_shared(false), is_null(false) 8768: {} 8768: 8768: inline Private(const Private &other) noexcept 8768: : data(other.data), type(other.type), 8768: is_shared(other.is_shared), is_null(other.is_null) 8768: {} 8768: union Data 8768: { 8768: char c; 8768: uchar uc; 8768: short s; 8768: signed char sc; 8768: ushort us; 8768: int i; 8768: uint u; 8768: long l; 8768: ulong ul; 8768: bool b; 8768: double d; 8768: float f; 8768: qreal real; 8768: qlonglong ll; 8768: qulonglong ull; 8768: QObject *o; 8768: void *ptr; 8768: PrivateShared *shared; 8768: } data; 8768: uint type : 30; 8768: uint is_shared : 1; 8768: uint is_null : 1; 8768: }; 8768: public: 8768: typedef void (*f_construct)(Private *, const void *); 8768: typedef void (*f_clear)(Private *); 8768: typedef bool (*f_null)(const Private *); 8768: 8768: typedef void (*f_load)(Private *, QDataStream &); 8768: typedef void (*f_save)(const Private *, QDataStream &); 8768: 8768: typedef bool (*f_compare)(const Private *, const Private *); 8768: typedef bool (*f_convert)(const QVariant::Private *d, int t, void *, bool *); 8768: typedef bool (*f_canConvert)(const QVariant::Private *d, int t); 8768: typedef void (*f_debugStream)(QDebug, const QVariant &); 8768: struct Handler { 8768: f_construct construct; 8768: f_clear clear; 8768: f_null isNull; 8768: 8768: f_load load; 8768: f_save save; 8768: 8768: f_compare compare; 8768: f_convert convert; 8768: f_canConvert canConvert; 8768: f_debugStream debugStream; 8768: }; 8768: 8768: 8768: inline bool operator==(const QVariant &v) const 8768: { return cmp(v); } 8768: inline bool operator!=(const QVariant &v) const 8768: { return !cmp(v); } 8768: inline bool operator<(const QVariant &v) const 8768: { return compare(v) < 0; } 8768: inline bool operator<=(const QVariant &v) const 8768: { return compare(v) <= 0; } 8768: inline bool operator>(const QVariant &v) const 8768: { return compare(v) > 0; } 8768: inline bool operator>=(const QVariant &v) const 8768: { return compare(v) >= 0; } 8768: 8768: protected: 8768: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8768: 8768: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8768: 8768: 8768: 8768: template 8768: friend inline T qvariant_cast(const QVariant &); 8768: template friend struct QtPrivate::QVariantValueHelper; 8768: protected: 8768: 8768: 8768: 8768: Private d; 8768: void create(int type, const void *copy); 8768: bool cmp(const QVariant &other) const; 8768: int compare(const QVariant &other) const; 8768: bool convert(const int t, void *ptr) const; 8768: 8768: private: 8768: 8768: inline QVariant(void *) = delete; 8768: 8768: 8768: 8768: 8768: 8768: 8768: QVariant(QMetaType::Type) = delete; 8768: 8768: 8768: 8768: 8768: 8768: 8768: QVariant(Qt::GlobalColor) = delete; 8768: QVariant(Qt::BrushStyle) = delete; 8768: QVariant(Qt::PenStyle) = delete; 8768: QVariant(Qt::CursorShape) = delete; 8768: 8768: 8768: inline QVariant(const char *) = delete; 8768: 8768: public: 8768: typedef Private DataPtr; 8768: inline DataPtr &data_ptr() { return d; } 8768: inline const DataPtr &data_ptr() const { return d; } 8768: }; 8768: 8768: template 8768: inline QVariant qVariantFromValue(const T &t) 8768: { 8768: return QVariant(qMetaTypeId(), &t, QTypeInfo::isPointer); 8768: } 8768: 8768: template <> 8768: inline QVariant qVariantFromValue(const QVariant &t) { return t; } 8768: 8768: template 8768: inline void qVariantSetValue(QVariant &v, const T &t) 8768: { 8768: 8768: const uint type = qMetaTypeId(); 8768: QVariant::Private &d = v.data_ptr(); 8768: if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) { 8768: d.type = type; 8768: d.is_null = false; 8768: T *old = reinterpret_cast(d.is_shared ? d.data.shared->ptr : &d.data.ptr); 8768: if (QTypeInfo::isComplex) 8768: old->~T(); 8768: new (old) T(t); 8768: } else { 8768: v = QVariant(type, &t, QTypeInfo::isPointer); 8768: } 8768: } 8768: 8768: template <> 8768: inline void qVariantSetValue(QVariant &v, const QVariant &t) 8768: { 8768: v = t; 8768: } 8768: 8768: inline bool QVariant::isValid() const { return d.type != Invalid; } 8768: 8768: template 8768: inline void QVariant::setValue(const T &avalue) 8768: { qVariantSetValue(*this, avalue); } 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant& p); 8768: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant& p); 8768: __attribute__((visibility("default"))) QDataStream& operator>> (QDataStream& s, QVariant::Type& p); 8768: __attribute__((visibility("default"))) QDataStream& operator<< (QDataStream& s, const QVariant::Type p); 8768: 8768: 8768: inline bool QVariant::isDetached() const 8768: { return !d.is_shared || d.data.shared->ref.load() == 1; } 8768: # 557 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8768: class QVariantComparisonHelper 8768: { 8768: public: 8768: inline QVariantComparisonHelper(const QVariant &var) 8768: : v(&var) {} 8768: private: 8768: friend inline bool operator==(const QVariant &, const QVariantComparisonHelper &); 8768: const QVariant *v; 8768: }; 8768: 8768: inline bool operator==(const QVariant &v1, const QVariantComparisonHelper &v2) 8768: { 8768: return v1.cmp(*v2.v); 8768: } 8768: 8768: inline bool operator!=(const QVariant &v1, const QVariantComparisonHelper &v2) 8768: { 8768: return !operator==(v1, v2); 8768: } 8768: 8768: 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); } 8768: 8768: class __attribute__((visibility("default"))) QSequentialIterable 8768: { 8768: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8768: public: 8768: struct __attribute__((visibility("default"))) const_iterator 8768: { 8768: private: 8768: QtMetaTypePrivate::QSequentialIterableImpl m_impl; 8768: QAtomicInt *ref; 8768: friend class QSequentialIterable; 8768: explicit const_iterator(const QSequentialIterable &iter, QAtomicInt *ref_); 8768: 8768: explicit const_iterator(const QtMetaTypePrivate::QSequentialIterableImpl &impl, QAtomicInt *ref_); 8768: 8768: void begin(); 8768: void end(); 8768: public: 8768: ~const_iterator(); 8768: 8768: const_iterator(const const_iterator &other); 8768: 8768: const_iterator& operator=(const const_iterator &other); 8768: 8768: const QVariant operator*() const; 8768: bool operator==(const const_iterator &o) const; 8768: bool operator!=(const const_iterator &o) const; 8768: const_iterator &operator++(); 8768: const_iterator operator++(int); 8768: const_iterator &operator--(); 8768: const_iterator operator--(int); 8768: const_iterator &operator+=(int j); 8768: const_iterator &operator-=(int j); 8768: const_iterator operator+(int j) const; 8768: const_iterator operator-(int j) const; 8768: }; 8768: 8768: friend struct const_iterator; 8768: 8768: 8768: explicit QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl impl); 8768: 8768: 8768: 8768: 8768: const_iterator begin() const; 8768: const_iterator end() const; 8768: 8768: QVariant at(int idx) const; 8768: int size() const; 8768: 8768: bool canReverseIterate() const; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QAssociativeIterable 8768: { 8768: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8768: public: 8768: struct __attribute__((visibility("default"))) const_iterator 8768: { 8768: private: 8768: QtMetaTypePrivate::QAssociativeIterableImpl m_impl; 8768: QAtomicInt *ref; 8768: friend class QAssociativeIterable; 8768: explicit const_iterator(const QAssociativeIterable &iter, QAtomicInt *ref_); 8768: 8768: explicit const_iterator(const QtMetaTypePrivate::QAssociativeIterableImpl &impl, QAtomicInt *ref_); 8768: 8768: void begin(); 8768: void end(); 8768: void find(const QVariant &key); 8768: public: 8768: ~const_iterator(); 8768: const_iterator(const const_iterator &other); 8768: 8768: const_iterator& operator=(const const_iterator &other); 8768: 8768: const QVariant key() const; 8768: 8768: const QVariant value() const; 8768: 8768: const QVariant operator*() const; 8768: bool operator==(const const_iterator &o) const; 8768: bool operator!=(const const_iterator &o) const; 8768: const_iterator &operator++(); 8768: const_iterator operator++(int); 8768: const_iterator &operator--(); 8768: const_iterator operator--(int); 8768: const_iterator &operator+=(int j); 8768: const_iterator &operator-=(int j); 8768: const_iterator operator+(int j) const; 8768: const_iterator operator-(int j) const; 8768: }; 8768: 8768: friend struct const_iterator; 8768: 8768: 8768: explicit QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl impl); 8768: 8768: 8768: 8768: 8768: const_iterator begin() const; 8768: const_iterator end() const; 8768: const_iterator find(const QVariant &key) const; 8768: 8768: QVariant value(const QVariant &key) const; 8768: 8768: int size() const; 8768: }; 8768: 8768: 8768: namespace QtPrivate { 8768: template 8768: struct QVariantValueHelper : TreatAsQObjectBeforeMetaType, T, const QVariant &, T> 8768: { 8768: static T metaType(const QVariant &v) 8768: { 8768: const int vid = qMetaTypeId(); 8768: if (vid == v.userType()) 8768: return *reinterpret_cast(v.constData()); 8768: T t; 8768: if (v.convert(vid, &t)) 8768: return t; 8768: return T(); 8768: } 8768: 8768: static T object(const QVariant &v) 8768: { 8768: return qobject_cast(QMetaType::typeFlags(v.userType()) & QMetaType::PointerToQObject 8768: ? v.d.data.o 8768: : QVariantValueHelper::metaType(v)); 8768: } 8768: 8768: }; 8768: 8768: template 8768: struct QVariantValueHelperInterface : QVariantValueHelper 8768: { 8768: }; 8768: 8768: template<> 8768: struct QVariantValueHelperInterface 8768: { 8768: static QSequentialIterable invoke(const QVariant &v) 8768: { 8768: const int typeId = v.userType(); 8768: if (typeId == qMetaTypeId()) { 8768: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8768: } 8768: if (typeId == qMetaTypeId()) { 8768: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8768: } 8768: 8768: if (typeId == qMetaTypeId()) { 8768: return QSequentialIterable(QtMetaTypePrivate::QSequentialIterableImpl(reinterpret_cast(v.constData()))); 8768: } 8768: 8768: return QSequentialIterable(v.value()); 8768: } 8768: }; 8768: template<> 8768: struct QVariantValueHelperInterface 8768: { 8768: static QAssociativeIterable invoke(const QVariant &v) 8768: { 8768: const int typeId = v.userType(); 8768: if (typeId == qMetaTypeId()) { 8768: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8768: } 8768: if (typeId == qMetaTypeId()) { 8768: return QAssociativeIterable(QtMetaTypePrivate::QAssociativeIterableImpl(reinterpret_cast(v.constData()))); 8768: } 8768: return QAssociativeIterable(v.value()); 8768: } 8768: }; 8768: template<> 8768: struct QVariantValueHelperInterface 8768: { 8768: static QVariantList invoke(const QVariant &v) 8768: { 8768: const int typeId = v.userType(); 8768: if (typeId == qMetaTypeId() || typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8768: QSequentialIterable iter = QVariantValueHelperInterface::invoke(v); 8768: QVariantList l; 8768: l.reserve(iter.size()); 8768: for (QSequentialIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8768: l << *it; 8768: return l; 8768: } 8768: return QVariantValueHelper::invoke(v); 8768: } 8768: }; 8768: template<> 8768: struct QVariantValueHelperInterface 8768: { 8768: static QVariantHash invoke(const QVariant &v) 8768: { 8768: const int typeId = v.userType(); 8768: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8768: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8768: QVariantHash l; 8768: l.reserve(iter.size()); 8768: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8768: l.insertMulti(it.key().toString(), it.value()); 8768: return l; 8768: } 8768: return QVariantValueHelper::invoke(v); 8768: } 8768: }; 8768: template<> 8768: struct QVariantValueHelperInterface 8768: { 8768: static QVariantMap invoke(const QVariant &v) 8768: { 8768: const int typeId = v.userType(); 8768: if (typeId == qMetaTypeId() || QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8768: QAssociativeIterable iter = QVariantValueHelperInterface::invoke(v); 8768: QVariantMap l; 8768: for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it) 8768: l.insertMulti(it.key().toString(), it.value()); 8768: return l; 8768: } 8768: return QVariantValueHelper::invoke(v); 8768: } 8768: }; 8768: template<> 8768: struct QVariantValueHelperInterface > 8768: { 8768: static QPair invoke(const QVariant &v) 8768: { 8768: const int typeId = v.userType(); 8768: if (typeId == qMetaTypeId >()) 8768: return QVariantValueHelper >::invoke(v); 8768: 8768: if (QMetaType::hasRegisteredConverterFunction(typeId, qMetaTypeId())) { 8768: QtMetaTypePrivate::QPairVariantInterfaceImpl pi = v.value(); 8768: 8768: const QtMetaTypePrivate::VariantData d1 = pi.first(); 8768: QVariant v1(d1.metaTypeId, d1.data, d1.flags); 8768: if (d1.metaTypeId == qMetaTypeId()) 8768: v1 = *reinterpret_cast(d1.data); 8768: 8768: const QtMetaTypePrivate::VariantData d2 = pi.second(); 8768: QVariant v2(d2.metaTypeId, d2.data, d2.flags); 8768: if (d2.metaTypeId == qMetaTypeId()) 8768: v2 = *reinterpret_cast(d2.data); 8768: 8768: return QPair(v1, v2); 8768: } 8768: return QVariantValueHelper >::invoke(v); 8768: } 8768: }; 8768: } 8768: 8768: template inline T qvariant_cast(const QVariant &v) 8768: { 8768: return QtPrivate::QVariantValueHelperInterface::invoke(v); 8768: } 8768: 8768: template<> inline QVariant qvariant_cast(const QVariant &v) 8768: { 8768: if (v.userType() == QMetaType::QVariant) 8768: return *reinterpret_cast(v.constData()); 8768: return v; 8768: } 8768: # 858 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 3 4 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant &); 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QVariant::Type); 8768: 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qshareddata.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qshareddata.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qshareddata.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template class QSharedDataPointer; 8768: 8768: class __attribute__((visibility("default"))) QSharedData 8768: { 8768: public: 8768: mutable QAtomicInt ref; 8768: 8768: inline QSharedData() : ref(0) { } 8768: inline QSharedData(const QSharedData &) : ref(0) { } 8768: 8768: private: 8768: 8768: QSharedData &operator=(const QSharedData &); 8768: }; 8768: 8768: template class QSharedDataPointer 8768: { 8768: public: 8768: typedef T Type; 8768: typedef T *pointer; 8768: 8768: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8768: inline T &operator*() { detach(); return *d; } 8768: inline const T &operator*() const { return *d; } 8768: inline T *operator->() { detach(); return d; } 8768: inline const T *operator->() const { return d; } 8768: inline operator T *() { detach(); return d; } 8768: inline operator const T *() const { return d; } 8768: inline T *data() { detach(); return d; } 8768: inline const T *data() const { return d; } 8768: inline const T *constData() const { return d; } 8768: 8768: inline bool operator==(const QSharedDataPointer &other) const { return d == other.d; } 8768: inline bool operator!=(const QSharedDataPointer &other) const { return d != other.d; } 8768: 8768: inline QSharedDataPointer() { d = nullptr; } 8768: inline ~QSharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8768: 8768: explicit QSharedDataPointer(T *data) noexcept; 8768: inline QSharedDataPointer(const QSharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8768: inline QSharedDataPointer & operator=(const QSharedDataPointer &o) { 8768: if (o.d != d) { 8768: if (o.d) 8768: o.d->ref.ref(); 8768: T *old = d; 8768: d = o.d; 8768: if (old && !old->ref.deref()) 8768: delete old; 8768: } 8768: return *this; 8768: } 8768: inline QSharedDataPointer &operator=(T *o) { 8768: if (o != d) { 8768: if (o) 8768: o->ref.ref(); 8768: T *old = d; 8768: d = o; 8768: if (old && !old->ref.deref()) 8768: delete old; 8768: } 8768: return *this; 8768: } 8768: 8768: QSharedDataPointer(QSharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8768: inline QSharedDataPointer &operator=(QSharedDataPointer &&other) noexcept 8768: { qSwap(d, other.d); return *this; } 8768: 8768: 8768: inline bool operator!() const { return !d; } 8768: 8768: inline void swap(QSharedDataPointer &other) noexcept 8768: { qSwap(d, other.d); } 8768: 8768: protected: 8768: T *clone(); 8768: 8768: private: 8768: void detach_helper(); 8768: 8768: T *d; 8768: }; 8768: 8768: template class QExplicitlySharedDataPointer 8768: { 8768: public: 8768: typedef T Type; 8768: typedef T *pointer; 8768: 8768: inline T &operator*() const { return *d; } 8768: inline T *operator->() { return d; } 8768: inline T *operator->() const { return d; } 8768: inline T *data() const { return d; } 8768: inline const T *constData() const { return d; } 8768: 8768: inline void detach() { if (d && d->ref.load() != 1) detach_helper(); } 8768: 8768: inline void reset() 8768: { 8768: if(d && !d->ref.deref()) 8768: delete d; 8768: 8768: d = nullptr; 8768: } 8768: 8768: inline operator bool () const { return d != nullptr; } 8768: 8768: inline bool operator==(const QExplicitlySharedDataPointer &other) const { return d == other.d; } 8768: inline bool operator!=(const QExplicitlySharedDataPointer &other) const { return d != other.d; } 8768: inline bool operator==(const T *ptr) const { return d == ptr; } 8768: inline bool operator!=(const T *ptr) const { return d != ptr; } 8768: 8768: inline QExplicitlySharedDataPointer() { d = nullptr; } 8768: inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; } 8768: 8768: explicit QExplicitlySharedDataPointer(T *data) noexcept; 8768: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) : d(o.d) { if (d) d->ref.ref(); } 8768: 8768: template 8768: inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer &o) 8768: 8768: 8768: 8768: : d(o.data()) 8768: 8768: { 8768: if(d) 8768: d->ref.ref(); 8768: } 8768: 8768: inline QExplicitlySharedDataPointer & operator=(const QExplicitlySharedDataPointer &o) { 8768: if (o.d != d) { 8768: if (o.d) 8768: o.d->ref.ref(); 8768: T *old = d; 8768: d = o.d; 8768: if (old && !old->ref.deref()) 8768: delete old; 8768: } 8768: return *this; 8768: } 8768: inline QExplicitlySharedDataPointer &operator=(T *o) { 8768: if (o != d) { 8768: if (o) 8768: o->ref.ref(); 8768: T *old = d; 8768: d = o; 8768: if (old && !old->ref.deref()) 8768: delete old; 8768: } 8768: return *this; 8768: } 8768: 8768: inline QExplicitlySharedDataPointer(QExplicitlySharedDataPointer &&o) noexcept : d(o.d) { o.d = nullptr; } 8768: inline QExplicitlySharedDataPointer &operator=(QExplicitlySharedDataPointer &&other) noexcept 8768: { qSwap(d, other.d); return *this; } 8768: 8768: 8768: inline bool operator!() const { return !d; } 8768: 8768: inline void swap(QExplicitlySharedDataPointer &other) noexcept 8768: { qSwap(d, other.d); } 8768: 8768: protected: 8768: T *clone(); 8768: 8768: private: 8768: void detach_helper(); 8768: 8768: T *d; 8768: }; 8768: 8768: template 8768: inline QSharedDataPointer::QSharedDataPointer(T *adata) noexcept 8768: : d(adata) 8768: { if (d) d->ref.ref(); } 8768: 8768: template 8768: inline T *QSharedDataPointer::clone() 8768: { 8768: return new T(*d); 8768: } 8768: 8768: template 8768: void QSharedDataPointer::detach_helper() 8768: { 8768: T *x = clone(); 8768: x->ref.ref(); 8768: if (!d->ref.deref()) 8768: delete d; 8768: d = x; 8768: } 8768: 8768: template 8768: inline T *QExplicitlySharedDataPointer::clone() 8768: { 8768: return new T(*d); 8768: } 8768: 8768: template 8768: void QExplicitlySharedDataPointer::detach_helper() 8768: { 8768: T *x = clone(); 8768: x->ref.ref(); 8768: if (!d->ref.deref()) 8768: delete d; 8768: d = x; 8768: } 8768: 8768: template 8768: inline QExplicitlySharedDataPointer::QExplicitlySharedDataPointer(T *adata) noexcept 8768: : d(adata) 8768: { if (d) d->ref.ref(); } 8768: 8768: template 8768: inline void qSwap(QSharedDataPointer &p1, QSharedDataPointer &p2) 8768: { p1.swap(p2); } 8768: 8768: template 8768: inline void qSwap(QExplicitlySharedDataPointer &p1, QExplicitlySharedDataPointer &p2) 8768: { p1.swap(p2); } 8768: 8768: 8768: namespace std { 8768: template 8768: inline void swap(::QSharedDataPointer &p1, ::QSharedDataPointer &p2) 8768: { p1.swap(p2); } 8768: 8768: template 8768: inline void swap(::QExplicitlySharedDataPointer &p1, ::QExplicitlySharedDataPointer &p2) 8768: { p1.swap(p2); } 8768: } 8768: 8768: 8768: template 8768: inline uint qHash(const QSharedDataPointer &ptr, uint seed = 0) noexcept 8768: { 8768: return qHash(ptr.data(), seed); 8768: } 8768: template 8768: inline uint qHash(const QExplicitlySharedDataPointer &ptr, uint seed = 0) noexcept 8768: { 8768: return qHash(ptr.data(), seed); 8768: } 8768: 8768: 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"; } }; 8768: 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"; } }; 8768: 8768: 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 2 3 4 8768: 8768: 8768: 8768: 8768: class QDataStream; 8768: class QDate; 8768: class QDateTime; 8768: class QLocale; 8768: class QTime; 8768: class QVariant; 8768: class QTextStream; 8768: class QTextStreamPrivate; 8768: 8768: class QLocalePrivate; 8768: 8768: __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed = 0) noexcept; 8768: 8768: class __attribute__((visibility("default"))) QLocale 8768: { 8768: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 66 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 3 4 8768: 8768: friend class QString; 8768: friend class QStringRef; 8768: friend class QByteArray; 8768: friend class QIntValidator; 8768: friend class QDoubleValidatorPrivate; 8768: friend class QTextStream; 8768: friend class QTextStreamPrivate; 8768: 8768: public: 8768: 8768: 8768: enum Language { 8768: AnyLanguage = 0, 8768: C = 1, 8768: Abkhazian = 2, 8768: Oromo = 3, 8768: Afar = 4, 8768: Afrikaans = 5, 8768: Albanian = 6, 8768: Amharic = 7, 8768: Arabic = 8, 8768: Armenian = 9, 8768: Assamese = 10, 8768: Aymara = 11, 8768: Azerbaijani = 12, 8768: Bashkir = 13, 8768: Basque = 14, 8768: Bengali = 15, 8768: Dzongkha = 16, 8768: Bihari = 17, 8768: Bislama = 18, 8768: Breton = 19, 8768: Bulgarian = 20, 8768: Burmese = 21, 8768: Belarusian = 22, 8768: Khmer = 23, 8768: Catalan = 24, 8768: Chinese = 25, 8768: Corsican = 26, 8768: Croatian = 27, 8768: Czech = 28, 8768: Danish = 29, 8768: Dutch = 30, 8768: English = 31, 8768: Esperanto = 32, 8768: Estonian = 33, 8768: Faroese = 34, 8768: Fijian = 35, 8768: Finnish = 36, 8768: French = 37, 8768: WesternFrisian = 38, 8768: Gaelic = 39, 8768: Galician = 40, 8768: Georgian = 41, 8768: German = 42, 8768: Greek = 43, 8768: Greenlandic = 44, 8768: Guarani = 45, 8768: Gujarati = 46, 8768: Hausa = 47, 8768: Hebrew = 48, 8768: Hindi = 49, 8768: Hungarian = 50, 8768: Icelandic = 51, 8768: Indonesian = 52, 8768: Interlingua = 53, 8768: Interlingue = 54, 8768: Inuktitut = 55, 8768: Inupiak = 56, 8768: Irish = 57, 8768: Italian = 58, 8768: Japanese = 59, 8768: Javanese = 60, 8768: Kannada = 61, 8768: Kashmiri = 62, 8768: Kazakh = 63, 8768: Kinyarwanda = 64, 8768: Kirghiz = 65, 8768: Korean = 66, 8768: Kurdish = 67, 8768: Rundi = 68, 8768: Lao = 69, 8768: Latin = 70, 8768: Latvian = 71, 8768: Lingala = 72, 8768: Lithuanian = 73, 8768: Macedonian = 74, 8768: Malagasy = 75, 8768: Malay = 76, 8768: Malayalam = 77, 8768: Maltese = 78, 8768: Maori = 79, 8768: Marathi = 80, 8768: Marshallese = 81, 8768: Mongolian = 82, 8768: NauruLanguage = 83, 8768: Nepali = 84, 8768: NorwegianBokmal = 85, 8768: Occitan = 86, 8768: Oriya = 87, 8768: Pashto = 88, 8768: Persian = 89, 8768: Polish = 90, 8768: Portuguese = 91, 8768: Punjabi = 92, 8768: Quechua = 93, 8768: Romansh = 94, 8768: Romanian = 95, 8768: Russian = 96, 8768: Samoan = 97, 8768: Sango = 98, 8768: Sanskrit = 99, 8768: Serbian = 100, 8768: Ossetic = 101, 8768: SouthernSotho = 102, 8768: Tswana = 103, 8768: Shona = 104, 8768: Sindhi = 105, 8768: Sinhala = 106, 8768: Swati = 107, 8768: Slovak = 108, 8768: Slovenian = 109, 8768: Somali = 110, 8768: Spanish = 111, 8768: Sundanese = 112, 8768: Swahili = 113, 8768: Swedish = 114, 8768: Sardinian = 115, 8768: Tajik = 116, 8768: Tamil = 117, 8768: Tatar = 118, 8768: Telugu = 119, 8768: Thai = 120, 8768: Tibetan = 121, 8768: Tigrinya = 122, 8768: Tongan = 123, 8768: Tsonga = 124, 8768: Turkish = 125, 8768: Turkmen = 126, 8768: Tahitian = 127, 8768: Uighur = 128, 8768: Ukrainian = 129, 8768: Urdu = 130, 8768: Uzbek = 131, 8768: Vietnamese = 132, 8768: Volapuk = 133, 8768: Welsh = 134, 8768: Wolof = 135, 8768: Xhosa = 136, 8768: Yiddish = 137, 8768: Yoruba = 138, 8768: Zhuang = 139, 8768: Zulu = 140, 8768: NorwegianNynorsk = 141, 8768: Bosnian = 142, 8768: Divehi = 143, 8768: Manx = 144, 8768: Cornish = 145, 8768: Akan = 146, 8768: Konkani = 147, 8768: Ga = 148, 8768: Igbo = 149, 8768: Kamba = 150, 8768: Syriac = 151, 8768: Blin = 152, 8768: Geez = 153, 8768: Koro = 154, 8768: Sidamo = 155, 8768: Atsam = 156, 8768: Tigre = 157, 8768: Jju = 158, 8768: Friulian = 159, 8768: Venda = 160, 8768: Ewe = 161, 8768: Walamo = 162, 8768: Hawaiian = 163, 8768: Tyap = 164, 8768: Nyanja = 165, 8768: Filipino = 166, 8768: SwissGerman = 167, 8768: SichuanYi = 168, 8768: Kpelle = 169, 8768: LowGerman = 170, 8768: SouthNdebele = 171, 8768: NorthernSotho = 172, 8768: NorthernSami = 173, 8768: Taroko = 174, 8768: Gusii = 175, 8768: Taita = 176, 8768: Fulah = 177, 8768: Kikuyu = 178, 8768: Samburu = 179, 8768: Sena = 180, 8768: NorthNdebele = 181, 8768: Rombo = 182, 8768: Tachelhit = 183, 8768: Kabyle = 184, 8768: Nyankole = 185, 8768: Bena = 186, 8768: Vunjo = 187, 8768: Bambara = 188, 8768: Embu = 189, 8768: Cherokee = 190, 8768: Morisyen = 191, 8768: Makonde = 192, 8768: Langi = 193, 8768: Ganda = 194, 8768: Bemba = 195, 8768: Kabuverdianu = 196, 8768: Meru = 197, 8768: Kalenjin = 198, 8768: Nama = 199, 8768: Machame = 200, 8768: Colognian = 201, 8768: Masai = 202, 8768: Soga = 203, 8768: Luyia = 204, 8768: Asu = 205, 8768: Teso = 206, 8768: Saho = 207, 8768: KoyraChiini = 208, 8768: Rwa = 209, 8768: Luo = 210, 8768: Chiga = 211, 8768: CentralMoroccoTamazight = 212, 8768: KoyraboroSenni = 213, 8768: Shambala = 214, 8768: Bodo = 215, 8768: Avaric = 216, 8768: Chamorro = 217, 8768: Chechen = 218, 8768: Church = 219, 8768: Chuvash = 220, 8768: Cree = 221, 8768: Haitian = 222, 8768: Herero = 223, 8768: HiriMotu = 224, 8768: Kanuri = 225, 8768: Komi = 226, 8768: Kongo = 227, 8768: Kwanyama = 228, 8768: Limburgish = 229, 8768: LubaKatanga = 230, 8768: Luxembourgish = 231, 8768: Navaho = 232, 8768: Ndonga = 233, 8768: Ojibwa = 234, 8768: Pali = 235, 8768: Walloon = 236, 8768: Aghem = 237, 8768: Basaa = 238, 8768: Zarma = 239, 8768: Duala = 240, 8768: JolaFonyi = 241, 8768: Ewondo = 242, 8768: Bafia = 243, 8768: MakhuwaMeetto = 244, 8768: Mundang = 245, 8768: Kwasio = 246, 8768: Nuer = 247, 8768: Sakha = 248, 8768: Sangu = 249, 8768: CongoSwahili = 250, 8768: Tasawaq = 251, 8768: Vai = 252, 8768: Walser = 253, 8768: Yangben = 254, 8768: Avestan = 255, 8768: Asturian = 256, 8768: Ngomba = 257, 8768: Kako = 258, 8768: Meta = 259, 8768: Ngiemboon = 260, 8768: Aragonese = 261, 8768: Akkadian = 262, 8768: AncientEgyptian = 263, 8768: AncientGreek = 264, 8768: Aramaic = 265, 8768: Balinese = 266, 8768: Bamun = 267, 8768: BatakToba = 268, 8768: Buginese = 269, 8768: Buhid = 270, 8768: Carian = 271, 8768: Chakma = 272, 8768: ClassicalMandaic = 273, 8768: Coptic = 274, 8768: Dogri = 275, 8768: EasternCham = 276, 8768: EasternKayah = 277, 8768: Etruscan = 278, 8768: Gothic = 279, 8768: Hanunoo = 280, 8768: Ingush = 281, 8768: LargeFloweryMiao = 282, 8768: Lepcha = 283, 8768: Limbu = 284, 8768: Lisu = 285, 8768: Lu = 286, 8768: Lycian = 287, 8768: Lydian = 288, 8768: Mandingo = 289, 8768: Manipuri = 290, 8768: Meroitic = 291, 8768: NorthernThai = 292, 8768: OldIrish = 293, 8768: OldNorse = 294, 8768: OldPersian = 295, 8768: OldTurkish = 296, 8768: Pahlavi = 297, 8768: Parthian = 298, 8768: Phoenician = 299, 8768: PrakritLanguage = 300, 8768: Rejang = 301, 8768: Sabaean = 302, 8768: Samaritan = 303, 8768: Santali = 304, 8768: Saurashtra = 305, 8768: Sora = 306, 8768: Sylheti = 307, 8768: Tagbanwa = 308, 8768: TaiDam = 309, 8768: TaiNua = 310, 8768: Ugaritic = 311, 8768: Akoose = 312, 8768: Lakota = 313, 8768: StandardMoroccanTamazight = 314, 8768: Mapuche = 315, 8768: CentralKurdish = 316, 8768: LowerSorbian = 317, 8768: UpperSorbian = 318, 8768: Kenyang = 319, 8768: Mohawk = 320, 8768: Nko = 321, 8768: Prussian = 322, 8768: Kiche = 323, 8768: SouthernSami = 324, 8768: LuleSami = 325, 8768: InariSami = 326, 8768: SkoltSami = 327, 8768: Warlpiri = 328, 8768: ManichaeanMiddlePersian = 329, 8768: Mende = 330, 8768: AncientNorthArabian = 331, 8768: LinearA = 332, 8768: HmongNjua = 333, 8768: Ho = 334, 8768: Lezghian = 335, 8768: Bassa = 336, 8768: Mono = 337, 8768: TedimChin = 338, 8768: Maithili = 339, 8768: Ahom = 340, 8768: AmericanSignLanguage = 341, 8768: ArdhamagadhiPrakrit = 342, 8768: Bhojpuri = 343, 8768: HieroglyphicLuwian = 344, 8768: LiteraryChinese = 345, 8768: Mazanderani = 346, 8768: Mru = 347, 8768: Newari = 348, 8768: NorthernLuri = 349, 8768: Palauan = 350, 8768: Papiamento = 351, 8768: Saraiki = 352, 8768: TokelauLanguage = 353, 8768: TokPisin = 354, 8768: TuvaluLanguage = 355, 8768: UncodedLanguages = 356, 8768: Cantonese = 357, 8768: Osage = 358, 8768: Tangut = 359, 8768: 8768: Norwegian = NorwegianBokmal, 8768: Moldavian = Romanian, 8768: SerboCroatian = Serbian, 8768: Tagalog = Filipino, 8768: Twi = Akan, 8768: Afan = Oromo, 8768: Byelorussian = Belarusian, 8768: Bhutani = Dzongkha, 8768: Cambodian = Khmer, 8768: Kurundi = Rundi, 8768: RhaetoRomance = Romansh, 8768: Chewa = Nyanja, 8768: Frisian = WesternFrisian, 8768: Uigur = Uighur, 8768: 8768: LastLanguage = Tangut 8768: }; 8768: 8768: enum Script { 8768: AnyScript = 0, 8768: ArabicScript = 1, 8768: CyrillicScript = 2, 8768: DeseretScript = 3, 8768: GurmukhiScript = 4, 8768: SimplifiedHanScript = 5, 8768: TraditionalHanScript = 6, 8768: LatinScript = 7, 8768: MongolianScript = 8, 8768: TifinaghScript = 9, 8768: ArmenianScript = 10, 8768: BengaliScript = 11, 8768: CherokeeScript = 12, 8768: DevanagariScript = 13, 8768: EthiopicScript = 14, 8768: GeorgianScript = 15, 8768: GreekScript = 16, 8768: GujaratiScript = 17, 8768: HebrewScript = 18, 8768: JapaneseScript = 19, 8768: KhmerScript = 20, 8768: KannadaScript = 21, 8768: KoreanScript = 22, 8768: LaoScript = 23, 8768: MalayalamScript = 24, 8768: MyanmarScript = 25, 8768: OriyaScript = 26, 8768: TamilScript = 27, 8768: TeluguScript = 28, 8768: ThaanaScript = 29, 8768: ThaiScript = 30, 8768: TibetanScript = 31, 8768: SinhalaScript = 32, 8768: SyriacScript = 33, 8768: YiScript = 34, 8768: VaiScript = 35, 8768: AvestanScript = 36, 8768: BalineseScript = 37, 8768: BamumScript = 38, 8768: BatakScript = 39, 8768: BopomofoScript = 40, 8768: BrahmiScript = 41, 8768: BugineseScript = 42, 8768: BuhidScript = 43, 8768: CanadianAboriginalScript = 44, 8768: CarianScript = 45, 8768: ChakmaScript = 46, 8768: ChamScript = 47, 8768: CopticScript = 48, 8768: CypriotScript = 49, 8768: EgyptianHieroglyphsScript = 50, 8768: FraserScript = 51, 8768: GlagoliticScript = 52, 8768: GothicScript = 53, 8768: HanScript = 54, 8768: HangulScript = 55, 8768: HanunooScript = 56, 8768: ImperialAramaicScript = 57, 8768: InscriptionalPahlaviScript = 58, 8768: InscriptionalParthianScript = 59, 8768: JavaneseScript = 60, 8768: KaithiScript = 61, 8768: KatakanaScript = 62, 8768: KayahLiScript = 63, 8768: KharoshthiScript = 64, 8768: LannaScript = 65, 8768: LepchaScript = 66, 8768: LimbuScript = 67, 8768: LinearBScript = 68, 8768: LycianScript = 69, 8768: LydianScript = 70, 8768: MandaeanScript = 71, 8768: MeiteiMayekScript = 72, 8768: MeroiticScript = 73, 8768: MeroiticCursiveScript = 74, 8768: NkoScript = 75, 8768: NewTaiLueScript = 76, 8768: OghamScript = 77, 8768: OlChikiScript = 78, 8768: OldItalicScript = 79, 8768: OldPersianScript = 80, 8768: OldSouthArabianScript = 81, 8768: OrkhonScript = 82, 8768: OsmanyaScript = 83, 8768: PhagsPaScript = 84, 8768: PhoenicianScript = 85, 8768: PollardPhoneticScript = 86, 8768: RejangScript = 87, 8768: RunicScript = 88, 8768: SamaritanScript = 89, 8768: SaurashtraScript = 90, 8768: SharadaScript = 91, 8768: ShavianScript = 92, 8768: SoraSompengScript = 93, 8768: CuneiformScript = 94, 8768: SundaneseScript = 95, 8768: SylotiNagriScript = 96, 8768: TagalogScript = 97, 8768: TagbanwaScript = 98, 8768: TaiLeScript = 99, 8768: TaiVietScript = 100, 8768: TakriScript = 101, 8768: UgariticScript = 102, 8768: BrailleScript = 103, 8768: HiraganaScript = 104, 8768: CaucasianAlbanianScript = 105, 8768: BassaVahScript = 106, 8768: DuployanScript = 107, 8768: ElbasanScript = 108, 8768: GranthaScript = 109, 8768: PahawhHmongScript = 110, 8768: KhojkiScript = 111, 8768: LinearAScript = 112, 8768: MahajaniScript = 113, 8768: ManichaeanScript = 114, 8768: MendeKikakuiScript = 115, 8768: ModiScript = 116, 8768: MroScript = 117, 8768: OldNorthArabianScript = 118, 8768: NabataeanScript = 119, 8768: PalmyreneScript = 120, 8768: PauCinHauScript = 121, 8768: OldPermicScript = 122, 8768: PsalterPahlaviScript = 123, 8768: SiddhamScript = 124, 8768: KhudawadiScript = 125, 8768: TirhutaScript = 126, 8768: VarangKshitiScript = 127, 8768: AhomScript = 128, 8768: AnatolianHieroglyphsScript = 129, 8768: HatranScript = 130, 8768: MultaniScript = 131, 8768: OldHungarianScript = 132, 8768: SignWritingScript = 133, 8768: AdlamScript = 134, 8768: BhaiksukiScript = 135, 8768: MarchenScript = 136, 8768: NewaScript = 137, 8768: OsageScript = 138, 8768: TangutScript = 139, 8768: HanWithBopomofoScript = 140, 8768: JamoScript = 141, 8768: 8768: SimplifiedChineseScript = SimplifiedHanScript, 8768: TraditionalChineseScript = TraditionalHanScript, 8768: 8768: LastScript = JamoScript 8768: }; 8768: enum Country { 8768: AnyCountry = 0, 8768: Afghanistan = 1, 8768: Albania = 2, 8768: Algeria = 3, 8768: AmericanSamoa = 4, 8768: Andorra = 5, 8768: Angola = 6, 8768: Anguilla = 7, 8768: Antarctica = 8, 8768: AntiguaAndBarbuda = 9, 8768: Argentina = 10, 8768: Armenia = 11, 8768: Aruba = 12, 8768: Australia = 13, 8768: Austria = 14, 8768: Azerbaijan = 15, 8768: Bahamas = 16, 8768: Bahrain = 17, 8768: Bangladesh = 18, 8768: Barbados = 19, 8768: Belarus = 20, 8768: Belgium = 21, 8768: Belize = 22, 8768: Benin = 23, 8768: Bermuda = 24, 8768: Bhutan = 25, 8768: Bolivia = 26, 8768: BosniaAndHerzegowina = 27, 8768: Botswana = 28, 8768: BouvetIsland = 29, 8768: Brazil = 30, 8768: BritishIndianOceanTerritory = 31, 8768: Brunei = 32, 8768: Bulgaria = 33, 8768: BurkinaFaso = 34, 8768: Burundi = 35, 8768: Cambodia = 36, 8768: Cameroon = 37, 8768: Canada = 38, 8768: CapeVerde = 39, 8768: CaymanIslands = 40, 8768: CentralAfricanRepublic = 41, 8768: Chad = 42, 8768: Chile = 43, 8768: China = 44, 8768: ChristmasIsland = 45, 8768: CocosIslands = 46, 8768: Colombia = 47, 8768: Comoros = 48, 8768: CongoKinshasa = 49, 8768: CongoBrazzaville = 50, 8768: CookIslands = 51, 8768: CostaRica = 52, 8768: IvoryCoast = 53, 8768: Croatia = 54, 8768: Cuba = 55, 8768: Cyprus = 56, 8768: CzechRepublic = 57, 8768: Denmark = 58, 8768: Djibouti = 59, 8768: Dominica = 60, 8768: DominicanRepublic = 61, 8768: EastTimor = 62, 8768: Ecuador = 63, 8768: Egypt = 64, 8768: ElSalvador = 65, 8768: EquatorialGuinea = 66, 8768: Eritrea = 67, 8768: Estonia = 68, 8768: Ethiopia = 69, 8768: FalklandIslands = 70, 8768: FaroeIslands = 71, 8768: Fiji = 72, 8768: Finland = 73, 8768: France = 74, 8768: Guernsey = 75, 8768: FrenchGuiana = 76, 8768: FrenchPolynesia = 77, 8768: FrenchSouthernTerritories = 78, 8768: Gabon = 79, 8768: Gambia = 80, 8768: Georgia = 81, 8768: Germany = 82, 8768: Ghana = 83, 8768: Gibraltar = 84, 8768: Greece = 85, 8768: Greenland = 86, 8768: Grenada = 87, 8768: Guadeloupe = 88, 8768: Guam = 89, 8768: Guatemala = 90, 8768: Guinea = 91, 8768: GuineaBissau = 92, 8768: Guyana = 93, 8768: Haiti = 94, 8768: HeardAndMcDonaldIslands = 95, 8768: Honduras = 96, 8768: HongKong = 97, 8768: Hungary = 98, 8768: Iceland = 99, 8768: India = 100, 8768: Indonesia = 101, 8768: Iran = 102, 8768: Iraq = 103, 8768: Ireland = 104, 8768: Israel = 105, 8768: Italy = 106, 8768: Jamaica = 107, 8768: Japan = 108, 8768: Jordan = 109, 8768: Kazakhstan = 110, 8768: Kenya = 111, 8768: Kiribati = 112, 8768: NorthKorea = 113, 8768: SouthKorea = 114, 8768: Kuwait = 115, 8768: Kyrgyzstan = 116, 8768: Laos = 117, 8768: Latvia = 118, 8768: Lebanon = 119, 8768: Lesotho = 120, 8768: Liberia = 121, 8768: Libya = 122, 8768: Liechtenstein = 123, 8768: Lithuania = 124, 8768: Luxembourg = 125, 8768: Macau = 126, 8768: Macedonia = 127, 8768: Madagascar = 128, 8768: Malawi = 129, 8768: Malaysia = 130, 8768: Maldives = 131, 8768: Mali = 132, 8768: Malta = 133, 8768: MarshallIslands = 134, 8768: Martinique = 135, 8768: Mauritania = 136, 8768: Mauritius = 137, 8768: Mayotte = 138, 8768: Mexico = 139, 8768: Micronesia = 140, 8768: Moldova = 141, 8768: Monaco = 142, 8768: Mongolia = 143, 8768: Montserrat = 144, 8768: Morocco = 145, 8768: Mozambique = 146, 8768: Myanmar = 147, 8768: Namibia = 148, 8768: NauruCountry = 149, 8768: Nepal = 150, 8768: Netherlands = 151, 8768: CuraSao = 152, 8768: NewCaledonia = 153, 8768: NewZealand = 154, 8768: Nicaragua = 155, 8768: Niger = 156, 8768: Nigeria = 157, 8768: Niue = 158, 8768: NorfolkIsland = 159, 8768: NorthernMarianaIslands = 160, 8768: Norway = 161, 8768: Oman = 162, 8768: Pakistan = 163, 8768: Palau = 164, 8768: PalestinianTerritories = 165, 8768: Panama = 166, 8768: PapuaNewGuinea = 167, 8768: Paraguay = 168, 8768: Peru = 169, 8768: Philippines = 170, 8768: Pitcairn = 171, 8768: Poland = 172, 8768: Portugal = 173, 8768: PuertoRico = 174, 8768: Qatar = 175, 8768: Reunion = 176, 8768: Romania = 177, 8768: Russia = 178, 8768: Rwanda = 179, 8768: SaintKittsAndNevis = 180, 8768: SaintLucia = 181, 8768: SaintVincentAndTheGrenadines = 182, 8768: Samoa = 183, 8768: SanMarino = 184, 8768: SaoTomeAndPrincipe = 185, 8768: SaudiArabia = 186, 8768: Senegal = 187, 8768: Seychelles = 188, 8768: SierraLeone = 189, 8768: Singapore = 190, 8768: Slovakia = 191, 8768: Slovenia = 192, 8768: SolomonIslands = 193, 8768: Somalia = 194, 8768: SouthAfrica = 195, 8768: SouthGeorgiaAndTheSouthSandwichIslands = 196, 8768: Spain = 197, 8768: SriLanka = 198, 8768: SaintHelena = 199, 8768: SaintPierreAndMiquelon = 200, 8768: Sudan = 201, 8768: Suriname = 202, 8768: SvalbardAndJanMayenIslands = 203, 8768: Swaziland = 204, 8768: Sweden = 205, 8768: Switzerland = 206, 8768: Syria = 207, 8768: Taiwan = 208, 8768: Tajikistan = 209, 8768: Tanzania = 210, 8768: Thailand = 211, 8768: Togo = 212, 8768: TokelauCountry = 213, 8768: Tonga = 214, 8768: TrinidadAndTobago = 215, 8768: Tunisia = 216, 8768: Turkey = 217, 8768: Turkmenistan = 218, 8768: TurksAndCaicosIslands = 219, 8768: TuvaluCountry = 220, 8768: Uganda = 221, 8768: Ukraine = 222, 8768: UnitedArabEmirates = 223, 8768: UnitedKingdom = 224, 8768: UnitedStates = 225, 8768: UnitedStatesMinorOutlyingIslands = 226, 8768: Uruguay = 227, 8768: Uzbekistan = 228, 8768: Vanuatu = 229, 8768: VaticanCityState = 230, 8768: Venezuela = 231, 8768: Vietnam = 232, 8768: BritishVirginIslands = 233, 8768: UnitedStatesVirginIslands = 234, 8768: WallisAndFutunaIslands = 235, 8768: WesternSahara = 236, 8768: Yemen = 237, 8768: CanaryIslands = 238, 8768: Zambia = 239, 8768: Zimbabwe = 240, 8768: ClippertonIsland = 241, 8768: Montenegro = 242, 8768: Serbia = 243, 8768: SaintBarthelemy = 244, 8768: SaintMartin = 245, 8768: LatinAmericaAndTheCaribbean = 246, 8768: AscensionIsland = 247, 8768: AlandIslands = 248, 8768: DiegoGarcia = 249, 8768: CeutaAndMelilla = 250, 8768: IsleOfMan = 251, 8768: Jersey = 252, 8768: TristanDaCunha = 253, 8768: SouthSudan = 254, 8768: Bonaire = 255, 8768: SintMaarten = 256, 8768: Kosovo = 257, 8768: EuropeanUnion = 258, 8768: OutlyingOceania = 259, 8768: 8768: Tokelau = TokelauCountry, 8768: Tuvalu = TuvaluCountry, 8768: DemocraticRepublicOfCongo = CongoKinshasa, 8768: PeoplesRepublicOfCongo = CongoBrazzaville, 8768: DemocraticRepublicOfKorea = NorthKorea, 8768: RepublicOfKorea = SouthKorea, 8768: RussianFederation = Russia, 8768: SyrianArabRepublic = Syria, 8768: 8768: LastCountry = OutlyingOceania 8768: }; 8768: 8768: 8768: friend constexpr const QMetaObject *qt_getEnumMetaObject(Language) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Language) noexcept { return "Language"; } 8768: friend constexpr const QMetaObject *qt_getEnumMetaObject(Country) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Country) noexcept { return "Country"; } 8768: friend constexpr const QMetaObject *qt_getEnumMetaObject(Script) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Script) noexcept { return "Script"; } 8768: 8768: enum MeasurementSystem { 8768: MetricSystem, 8768: ImperialUSSystem, 8768: ImperialUKSystem, 8768: ImperialSystem = ImperialUSSystem 8768: }; 8768: friend constexpr const QMetaObject *qt_getEnumMetaObject(MeasurementSystem) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(MeasurementSystem) noexcept { return "MeasurementSystem"; } 8768: 8768: enum FormatType { LongFormat, ShortFormat, NarrowFormat }; 8768: enum NumberOption { 8768: DefaultNumberOptions = 0x0, 8768: OmitGroupSeparator = 0x01, 8768: RejectGroupSeparator = 0x02, 8768: OmitLeadingZeroInExponent = 0x04, 8768: RejectLeadingZeroInExponent = 0x08, 8768: IncludeTrailingZeroesAfterDot = 0x10, 8768: RejectTrailingZeroesAfterDot = 0x20 8768: }; 8768: typedef QFlags NumberOptions; 8768: 8768: enum FloatingPointPrecisionOption { 8768: FloatingPointShortest = -128 8768: }; 8768: 8768: enum CurrencySymbolFormat { 8768: CurrencyIsoCode, 8768: CurrencySymbol, 8768: CurrencyDisplayName 8768: }; 8768: 8768: QLocale(); 8768: QLocale(const QString &name); 8768: QLocale(Language language, Country country = AnyCountry); 8768: QLocale(Language language, Script script, Country country); 8768: QLocale(const QLocale &other); 8768: 8768: QLocale &operator=(QLocale &&other) noexcept { swap(other); return *this; } 8768: 8768: QLocale &operator=(const QLocale &other); 8768: ~QLocale(); 8768: 8768: void swap(QLocale &other) noexcept { qSwap(d, other.d); } 8768: 8768: Language language() const; 8768: Script script() const; 8768: Country country() const; 8768: QString name() const; 8768: 8768: QString bcp47Name() const; 8768: QString nativeLanguageName() const; 8768: QString nativeCountryName() const; 8768: 8768: short toShort(const QString &s, bool *ok = nullptr) const; 8768: ushort toUShort(const QString &s, bool *ok = nullptr) const; 8768: int toInt(const QString &s, bool *ok = nullptr) const; 8768: uint toUInt(const QString &s, bool *ok = nullptr) const; 8768: qlonglong toLongLong(const QString &s, bool *ok = nullptr) const; 8768: qulonglong toULongLong(const QString &s, bool *ok = nullptr) const; 8768: float toFloat(const QString &s, bool *ok = nullptr) const; 8768: double toDouble(const QString &s, bool *ok = nullptr) const; 8768: 8768: short toShort(const QStringRef &s, bool *ok = nullptr) const; 8768: ushort toUShort(const QStringRef &s, bool *ok = nullptr) const; 8768: int toInt(const QStringRef &s, bool *ok = nullptr) const; 8768: uint toUInt(const QStringRef &s, bool *ok = nullptr) const; 8768: qlonglong toLongLong(const QStringRef &s, bool *ok = nullptr) const; 8768: qulonglong toULongLong(const QStringRef &s, bool *ok = nullptr) const; 8768: float toFloat(const QStringRef &s, bool *ok = nullptr) const; 8768: double toDouble(const QStringRef &s, bool *ok = nullptr) const; 8768: 8768: QString toString(qlonglong i) const; 8768: QString toString(qulonglong i) const; 8768: inline QString toString(short i) const; 8768: inline QString toString(ushort i) const; 8768: inline QString toString(int i) const; 8768: inline QString toString(uint i) const; 8768: QString toString(double i, char f = 'g', int prec = 6) const; 8768: inline QString toString(float i, char f = 'g', int prec = 6) const; 8768: QString toString(const QDate &date, const QString &formatStr) const; 8768: QString toString(const QDate &date, FormatType format = LongFormat) const; 8768: QString toString(const QTime &time, const QString &formatStr) const; 8768: QString toString(const QTime &time, FormatType format = LongFormat) const; 8768: QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; 8768: QString toString(const QDateTime &dateTime, const QString &format) const; 8768: 8768: QString dateFormat(FormatType format = LongFormat) const; 8768: QString timeFormat(FormatType format = LongFormat) const; 8768: QString dateTimeFormat(FormatType format = LongFormat) const; 8768: 8768: QDate toDate(const QString &string, FormatType = LongFormat) const; 8768: QTime toTime(const QString &string, FormatType = LongFormat) const; 8768: QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; 8768: QDate toDate(const QString &string, const QString &format) const; 8768: QTime toTime(const QString &string, const QString &format) const; 8768: QDateTime toDateTime(const QString &string, const QString &format) const; 8768: 8768: 8768: 8768: 8768: QChar decimalPoint() const; 8768: QChar groupSeparator() const; 8768: QChar percent() const; 8768: QChar zeroDigit() const; 8768: QChar negativeSign() const; 8768: QChar positiveSign() const; 8768: QChar exponential() const; 8768: 8768: QString monthName(int, FormatType format = LongFormat) const; 8768: QString standaloneMonthName(int, FormatType format = LongFormat) const; 8768: QString dayName(int, FormatType format = LongFormat) const; 8768: QString standaloneDayName(int, FormatType format = LongFormat) const; 8768: 8768: Qt::DayOfWeek firstDayOfWeek() const; 8768: QList weekdays() const; 8768: 8768: QString amText() const; 8768: QString pmText() const; 8768: 8768: MeasurementSystem measurementSystem() const; 8768: 8768: Qt::LayoutDirection textDirection() const; 8768: 8768: QString toUpper(const QString &str) const; 8768: QString toLower(const QString &str) const; 8768: 8768: QString currencySymbol(CurrencySymbolFormat = CurrencySymbol) const; 8768: QString toCurrencyString(qlonglong, const QString &symbol = QString()) const; 8768: QString toCurrencyString(qulonglong, const QString &symbol = QString()) const; 8768: inline QString toCurrencyString(short, const QString &symbol = QString()) const; 8768: inline QString toCurrencyString(ushort, const QString &symbol = QString()) const; 8768: inline QString toCurrencyString(int, const QString &symbol = QString()) const; 8768: inline QString toCurrencyString(uint, const QString &symbol = QString()) const; 8768: 8768: 8768: 8768: 8768: 8768: QString toCurrencyString(double, const QString &symbol = QString()) const; 8768: QString toCurrencyString(double, const QString &symbol, int precision) const; 8768: inline QString toCurrencyString(float i, const QString &symbol = QString()) const 8768: { return toCurrencyString(double(i), symbol); } 8768: inline QString toCurrencyString(float i, const QString &symbol, int precision) const 8768: { return toCurrencyString(double(i), symbol, precision); } 8768: 8768: 8768: QStringList uiLanguages() const; 8768: 8768: bool operator==(const QLocale &other) const; 8768: bool operator!=(const QLocale &other) const; 8768: 8768: static QString languageToString(Language language); 8768: static QString countryToString(Country country); 8768: static QString scriptToString(Script script); 8768: static void setDefault(const QLocale &locale); 8768: 8768: static QLocale c() { return QLocale(C); } 8768: static QLocale system(); 8768: 8768: static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); 8768: static QList countriesForLanguage(Language lang); 8768: 8768: void setNumberOptions(NumberOptions options); 8768: NumberOptions numberOptions() const; 8768: 8768: enum QuotationStyle { StandardQuotation, AlternateQuotation }; 8768: QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const; 8768: QString quoteString(const QStringRef &str, QuotationStyle style = StandardQuotation) const; 8768: 8768: QString createSeparatedList(const QStringList &strl) const; 8768: 8768: private: 8768: QLocale(QLocalePrivate &dd); 8768: friend class QLocalePrivate; 8768: friend __attribute__((visibility("default"))) uint qHash(const QLocale &key, uint seed) noexcept; 8768: 8768: QSharedDataPointer d; 8768: }; 8768: 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); } 8768: 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); } 8768: 8768: inline QString QLocale::toString(short i) const 8768: { return toString(qlonglong(i)); } 8768: inline QString QLocale::toString(ushort i) const 8768: { return toString(qulonglong(i)); } 8768: inline QString QLocale::toString(int i) const 8768: { return toString(qlonglong(i)); } 8768: inline QString QLocale::toString(uint i) const 8768: { return toString(qulonglong(i)); } 8768: inline QString QLocale::toString(float i, char f, int prec) const 8768: { return toString(double(i), f, prec); } 8768: 8768: inline QString QLocale::toCurrencyString(short i, const QString &symbol) const 8768: { return toCurrencyString(qlonglong(i), symbol); } 8768: inline QString QLocale::toCurrencyString(ushort i, const QString &symbol) const 8768: { return toCurrencyString(qulonglong(i), symbol); } 8768: inline QString QLocale::toCurrencyString(int i, const QString &symbol) const 8768: { return toCurrencyString(qlonglong(i), symbol); } 8768: inline QString QLocale::toCurrencyString(uint i, const QString &symbol) const 8768: { return toCurrencyString(qulonglong(i), symbol); } 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QLocale &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QLocale &); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QLocale &); 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLocale" 2 3 4 8768: # 27 "/<>/templates/lib/abstractlocalizer.h" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 1 3 4 8768: # 63 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h" 1 3 4 8768: # 64 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 90 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8768: template class QWeakPointer; 8768: template class QSharedPointer; 8768: template class QEnableSharedFromThis; 8768: 8768: class QVariant; 8768: 8768: template 8768: QSharedPointer qSharedPointerCast(const QSharedPointer &ptr); 8768: template 8768: QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &ptr); 8768: template 8768: QSharedPointer qSharedPointerConstCast(const QSharedPointer &ptr); 8768: 8768: 8768: template 8768: QSharedPointer qSharedPointerObjectCast(const QSharedPointer &ptr); 8768: 8768: 8768: namespace QtSharedPointer { 8768: template class ExternalRefCount; 8768: 8768: template QSharedPointer copyAndSetPointer(X * ptr, const QSharedPointer &src); 8768: 8768: 8768: __attribute__((visibility("default"))) void internalSafetyCheckAdd(const void *, const volatile void *); 8768: __attribute__((visibility("default"))) void internalSafetyCheckRemove(const void *); 8768: 8768: template 8768: inline void executeDeleter(T *t, RetVal (Klass:: *memberDeleter)()) 8768: { (t->*memberDeleter)(); } 8768: template 8768: inline void executeDeleter(T *t, Deleter d) 8768: { d(t); } 8768: struct NormalDeleter {}; 8768: 8768: 8768: template struct RemovePointer; 8768: template struct RemovePointer { typedef T Type; }; 8768: template struct RemovePointer > { typedef T Type; }; 8768: template struct RemovePointer > { typedef T Type; }; 8768: # 141 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8768: struct ExternalRefCountData 8768: { 8768: typedef void (*DestroyerFn)(ExternalRefCountData *); 8768: QBasicAtomicInt weakref; 8768: QBasicAtomicInt strongref; 8768: DestroyerFn destroyer; 8768: 8768: inline ExternalRefCountData(DestroyerFn d) 8768: : destroyer(d) 8768: { 8768: strongref.store(1); 8768: weakref.store(1); 8768: } 8768: inline ExternalRefCountData(Qt::Initialization) { } 8768: ~ExternalRefCountData() { do { } while ((false) && (!weakref.load())); do { } while ((false) && (strongref.load() <= 0)); } 8768: 8768: void destroy() { destroyer(this); } 8768: 8768: 8768: __attribute__((visibility("default"))) static ExternalRefCountData *getAndRef(const QObject *); 8768: __attribute__((visibility("default"))) void setQObjectShared(const QObject *, bool enable); 8768: __attribute__((visibility("default"))) void checkQObjectShared(const QObject *); 8768: 8768: inline void checkQObjectShared(...) { } 8768: inline void setQObjectShared(...) { } 8768: 8768: inline void operator delete(void *ptr) { ::operator delete(ptr); } 8768: inline void operator delete(void *, void *) { } 8768: }; 8768: 8768: 8768: template 8768: struct CustomDeleter 8768: { 8768: Deleter deleter; 8768: T *ptr; 8768: 8768: CustomDeleter(T *p, Deleter d) : deleter(d), ptr(p) {} 8768: void execute() { executeDeleter(ptr, deleter); } 8768: }; 8768: # 189 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8768: template 8768: struct CustomDeleter 8768: { 8768: T *ptr; 8768: 8768: CustomDeleter(T *p, NormalDeleter) : ptr(p) {} 8768: void execute() { delete ptr; } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct ExternalRefCountWithCustomDeleter: public ExternalRefCountData 8768: { 8768: typedef ExternalRefCountWithCustomDeleter Self; 8768: typedef ExternalRefCountData BaseClass; 8768: CustomDeleter extra; 8768: 8768: static inline void deleter(ExternalRefCountData *self) 8768: { 8768: Self *realself = static_cast(self); 8768: realself->extra.execute(); 8768: 8768: 8768: realself->extra.~CustomDeleter(); 8768: } 8768: static void safetyCheckDeleter(ExternalRefCountData *self) 8768: { 8768: internalSafetyCheckRemove(self); 8768: deleter(self); 8768: } 8768: 8768: static inline Self *create(T *ptr, Deleter userDeleter, DestroyerFn actualDeleter) 8768: { 8768: Self *d = static_cast(::operator new(sizeof(Self))); 8768: 8768: 8768: new (&d->extra) CustomDeleter(ptr, userDeleter); 8768: new (d) BaseClass(actualDeleter); 8768: 8768: return d; 8768: } 8768: private: 8768: 8768: ExternalRefCountWithCustomDeleter() = delete; 8768: ~ExternalRefCountWithCustomDeleter() = delete; 8768: ExternalRefCountWithCustomDeleter(const ExternalRefCountWithCustomDeleter &) = delete; ExternalRefCountWithCustomDeleter &operator=(const ExternalRefCountWithCustomDeleter &) = delete; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: template 8768: struct ExternalRefCountWithContiguousData: public ExternalRefCountData 8768: { 8768: typedef ExternalRefCountData Parent; 8768: T data; 8768: 8768: static void deleter(ExternalRefCountData *self) 8768: { 8768: ExternalRefCountWithContiguousData *that = 8768: static_cast(self); 8768: that->data.~T(); 8768: (void)that;; 8768: } 8768: static void safetyCheckDeleter(ExternalRefCountData *self) 8768: { 8768: internalSafetyCheckRemove(self); 8768: deleter(self); 8768: } 8768: static void noDeleter(ExternalRefCountData *) { } 8768: 8768: static inline ExternalRefCountData *create(T **ptr, DestroyerFn destroy) 8768: { 8768: ExternalRefCountWithContiguousData *d = 8768: static_cast(::operator new(sizeof(ExternalRefCountWithContiguousData))); 8768: 8768: 8768: 8768: new (d) Parent(destroy); 8768: 8768: *ptr = &d->data; 8768: return d; 8768: } 8768: 8768: private: 8768: 8768: ExternalRefCountWithContiguousData() = delete; 8768: ~ExternalRefCountWithContiguousData() = delete; 8768: ExternalRefCountWithContiguousData(const ExternalRefCountWithContiguousData &) = delete; ExternalRefCountWithContiguousData &operator=(const ExternalRefCountWithContiguousData &) = delete; 8768: }; 8768: 8768: 8768: __attribute__((visibility("default"))) QWeakPointer weakPointerFromVariant_internal(const QVariant &variant); 8768: __attribute__((visibility("default"))) QSharedPointer sharedPointerFromVariant_internal(const QVariant &variant); 8768: 8768: } 8768: 8768: template class QSharedPointer 8768: { 8768: typedef T *QSharedPointer:: *RestrictedBool; 8768: typedef QtSharedPointer::ExternalRefCountData Data; 8768: public: 8768: typedef T Type; 8768: typedef T element_type; 8768: typedef T value_type; 8768: typedef value_type *pointer; 8768: typedef const value_type *const_pointer; 8768: typedef value_type &reference; 8768: typedef const value_type &const_reference; 8768: typedef qptrdiff difference_type; 8768: 8768: T *data() const noexcept { return value; } 8768: bool isNull() const noexcept { return !data(); } 8768: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QSharedPointer::value; } 8768: bool operator !() const noexcept { return isNull(); } 8768: T &operator*() const { return *data(); } 8768: T *operator->() const noexcept { return data(); } 8768: 8768: constexpr QSharedPointer() noexcept : value(nullptr), d(nullptr) { } 8768: ~QSharedPointer() { deref(); } 8768: 8768: constexpr QSharedPointer(std::nullptr_t) noexcept : value(nullptr), d(nullptr) { } 8768: 8768: template 8768: inline explicit QSharedPointer(X *ptr) : value(ptr) 8768: { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); } 8768: 8768: template 8768: inline QSharedPointer(X *ptr, Deleter deleter) : value(ptr) 8768: { internalConstruct(ptr, deleter); } 8768: 8768: template 8768: QSharedPointer(std::nullptr_t, Deleter) : value(nullptr), d(nullptr) { } 8768: 8768: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8768: { if (d) ref(); } 8768: QSharedPointer &operator=(const QSharedPointer &other) noexcept 8768: { 8768: QSharedPointer copy(other); 8768: swap(copy); 8768: return *this; 8768: } 8768: 8768: QSharedPointer(QSharedPointer &&other) noexcept 8768: : value(other.value), d(other.d) 8768: { 8768: other.d = nullptr; 8768: other.value = nullptr; 8768: } 8768: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8768: { 8768: QSharedPointer moved(std::move(other)); 8768: swap(moved); 8768: return *this; 8768: } 8768: 8768: template 8768: QSharedPointer(QSharedPointer &&other) noexcept 8768: : value(other.value), d(other.d) 8768: { 8768: other.d = nullptr; 8768: other.value = nullptr; 8768: } 8768: 8768: template 8768: QSharedPointer &operator=(QSharedPointer &&other) noexcept 8768: { 8768: QSharedPointer moved(std::move(other)); 8768: swap(moved); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: template 8768: QSharedPointer(const QSharedPointer &other) noexcept : value(other.value), d(other.d) 8768: { if (d) ref(); } 8768: 8768: template 8768: inline QSharedPointer &operator=(const QSharedPointer &other) 8768: { 8768: QSharedPointer copy(other); 8768: swap(copy); 8768: return *this; 8768: } 8768: 8768: template 8768: inline QSharedPointer(const QWeakPointer &other) : value(nullptr), d(nullptr) 8768: { *this = other; } 8768: 8768: template 8768: inline QSharedPointer &operator=(const QWeakPointer &other) 8768: { internalSet(other.d, other.value); return *this; } 8768: 8768: inline void swap(QSharedPointer &other) 8768: { this->internalSwap(other); } 8768: 8768: inline void reset() { clear(); } 8768: inline void reset(T *t) 8768: { QSharedPointer copy(t); swap(copy); } 8768: template 8768: inline void reset(T *t, Deleter deleter) 8768: { QSharedPointer copy(t, deleter); swap(copy); } 8768: 8768: template 8768: QSharedPointer staticCast() const 8768: { 8768: return qSharedPointerCast(*this); 8768: } 8768: 8768: template 8768: QSharedPointer dynamicCast() const 8768: { 8768: return qSharedPointerDynamicCast(*this); 8768: } 8768: 8768: template 8768: QSharedPointer constCast() const 8768: { 8768: return qSharedPointerConstCast(*this); 8768: } 8768: 8768: 8768: template 8768: QSharedPointer objectCast() const 8768: { 8768: return qSharedPointerObjectCast(*this); 8768: } 8768: 8768: 8768: inline void clear() { QSharedPointer copy; swap(copy); } 8768: 8768: QWeakPointer toWeakRef() const; 8768: 8768: template 8768: static QSharedPointer create(Args && ...arguments) 8768: { 8768: typedef QtSharedPointer::ExternalRefCountWithContiguousData Private; 8768: 8768: 8768: 8768: typename Private::DestroyerFn destroy = &Private::deleter; 8768: 8768: typename Private::DestroyerFn noDestroy = &Private::noDeleter; 8768: QSharedPointer result(Qt::Uninitialized); 8768: result.d = Private::create(&result.value, noDestroy); 8768: 8768: 8768: new (result.data()) T(std::forward(arguments)...); 8768: result.d->destroyer = destroy; 8768: result.d->setQObjectShared(result.value, true); 8768: 8768: 8768: 8768: result.enableSharedFromThis(result.data()); 8768: return result; 8768: } 8768: 8768: private: 8768: explicit QSharedPointer(Qt::Initialization) {} 8768: 8768: void deref() noexcept 8768: { deref(d); } 8768: static void deref(Data *dd) noexcept 8768: { 8768: if (!dd) return; 8768: if (!dd->strongref.deref()) { 8768: dd->destroy(); 8768: } 8768: if (!dd->weakref.deref()) 8768: delete dd; 8768: } 8768: 8768: template 8768: inline void enableSharedFromThis(const QEnableSharedFromThis *ptr) 8768: { 8768: ptr->initializeFromSharedPointer(constCast::type>()); 8768: } 8768: 8768: inline void enableSharedFromThis(...) {} 8768: 8768: template 8768: inline void internalConstruct(X *ptr, Deleter deleter) 8768: { 8768: if (!ptr) { 8768: d = nullptr; 8768: return; 8768: } 8768: 8768: typedef QtSharedPointer::ExternalRefCountWithCustomDeleter Private; 8768: 8768: 8768: 8768: typename Private::DestroyerFn actualDeleter = &Private::deleter; 8768: 8768: d = Private::create(ptr, deleter, actualDeleter); 8768: 8768: 8768: 8768: 8768: d->setQObjectShared(ptr, true); 8768: enableSharedFromThis(ptr); 8768: } 8768: 8768: void internalSwap(QSharedPointer &other) noexcept 8768: { 8768: qSwap(d, other.d); 8768: qSwap(this->value, other.value); 8768: } 8768: 8768: 8768: 8768: 8768: template friend class QSharedPointer; 8768: template friend class QWeakPointer; 8768: template friend QSharedPointer QtSharedPointer::copyAndSetPointer(X * ptr, const QSharedPointer &src); 8768: 8768: void ref() const noexcept { d->weakref.ref(); d->strongref.ref(); } 8768: 8768: inline void internalSet(Data *o, T *actual) 8768: { 8768: if (o) { 8768: 8768: 8768: int tmp = o->strongref.load(); 8768: while (tmp > 0) { 8768: 8768: if (o->strongref.testAndSetRelaxed(tmp, tmp + 1)) 8768: break; 8768: tmp = o->strongref.load(); 8768: } 8768: 8768: if (tmp > 0) { 8768: o->weakref.ref(); 8768: } else { 8768: o->checkQObjectShared(actual); 8768: o = nullptr; 8768: } 8768: } 8768: 8768: qSwap(d, o); 8768: qSwap(this->value, actual); 8768: if (!d || d->strongref.load() == 0) 8768: this->value = nullptr; 8768: 8768: 8768: deref(o); 8768: } 8768: 8768: Type *value; 8768: Data *d; 8768: }; 8768: 8768: template 8768: class QWeakPointer 8768: { 8768: typedef T *QWeakPointer:: *RestrictedBool; 8768: typedef QtSharedPointer::ExternalRefCountData Data; 8768: 8768: public: 8768: typedef T element_type; 8768: typedef T value_type; 8768: typedef value_type *pointer; 8768: typedef const value_type *const_pointer; 8768: typedef value_type &reference; 8768: typedef const value_type &const_reference; 8768: typedef qptrdiff difference_type; 8768: 8768: bool isNull() const noexcept { return d == nullptr || d->strongref.load() == 0 || value == nullptr; } 8768: operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QWeakPointer::value; } 8768: bool operator !() const noexcept { return isNull(); } 8768: T *data() const noexcept { return d == nullptr || d->strongref.load() == 0 ? nullptr : value; } 8768: 8768: inline QWeakPointer() noexcept : d(nullptr), value(nullptr) { } 8768: inline ~QWeakPointer() { if (d && !d->weakref.deref()) delete d; } 8768: # 585 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h" 3 4 8768: QWeakPointer(const QWeakPointer &other) noexcept : d(other.d), value(other.value) 8768: { if (d) d->weakref.ref(); } 8768: 8768: QWeakPointer(QWeakPointer &&other) noexcept 8768: : d(other.d), value(other.value) 8768: { 8768: other.d = nullptr; 8768: other.value = nullptr; 8768: } 8768: QWeakPointer &operator=(QWeakPointer &&other) noexcept 8768: { QWeakPointer moved(std::move(other)); swap(moved); return *this; } 8768: 8768: QWeakPointer &operator=(const QWeakPointer &other) noexcept 8768: { 8768: QWeakPointer copy(other); 8768: swap(copy); 8768: return *this; 8768: } 8768: 8768: void swap(QWeakPointer &other) noexcept 8768: { 8768: qSwap(this->d, other.d); 8768: qSwap(this->value, other.value); 8768: } 8768: 8768: inline QWeakPointer(const QSharedPointer &o) : d(o.d), value(o.data()) 8768: { if (d) d->weakref.ref();} 8768: inline QWeakPointer &operator=(const QSharedPointer &o) 8768: { 8768: internalSet(o.d, o.value); 8768: return *this; 8768: } 8768: 8768: template 8768: inline QWeakPointer(const QWeakPointer &o) : d(nullptr), value(nullptr) 8768: { *this = o; } 8768: 8768: template 8768: inline QWeakPointer &operator=(const QWeakPointer &o) 8768: { 8768: 8768: 8768: *this = o.toStrongRef(); 8768: return *this; 8768: } 8768: 8768: template 8768: bool operator==(const QWeakPointer &o) const noexcept 8768: { return d == o.d && value == static_cast(o.value); } 8768: 8768: template 8768: bool operator!=(const QWeakPointer &o) const noexcept 8768: { return !(*this == o); } 8768: 8768: template 8768: inline QWeakPointer(const QSharedPointer &o) : d(nullptr), value(nullptr) 8768: { *this = o; } 8768: 8768: template 8768: inline QWeakPointer &operator=(const QSharedPointer &o) 8768: { 8768: qt_noop(); 8768: internalSet(o.d, o.data()); 8768: return *this; 8768: } 8768: 8768: template 8768: bool operator==(const QSharedPointer &o) const noexcept 8768: { return d == o.d; } 8768: 8768: template 8768: bool operator!=(const QSharedPointer &o) const noexcept 8768: { return !(*this == o); } 8768: 8768: inline void clear() { *this = QWeakPointer(); } 8768: 8768: inline QSharedPointer toStrongRef() const { return QSharedPointer(*this); } 8768: 8768: inline QSharedPointer lock() const { return toStrongRef(); } 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: 8768: 8768: 8768: 8768: template friend class QSharedPointer; 8768: template friend class QPointer; 8768: 8768: 8768: template 8768: inline QWeakPointer &assign(X *ptr) 8768: { return *this = QWeakPointer(ptr, true); } 8768: 8768: 8768: template 8768: inline QWeakPointer(X *ptr, bool) : d(ptr ? Data::getAndRef(ptr) : nullptr), value(ptr) 8768: { } 8768: 8768: 8768: inline void internalSet(Data *o, T *actual) 8768: { 8768: if (d == o) return; 8768: if (o) 8768: o->weakref.ref(); 8768: if (d && !d->weakref.deref()) 8768: delete d; 8768: d = o; 8768: value = actual; 8768: } 8768: 8768: Data *d; 8768: T *value; 8768: }; 8768: 8768: template 8768: class QEnableSharedFromThis 8768: { 8768: protected: 8768: 8768: QEnableSharedFromThis() = default; 8768: 8768: 8768: 8768: QEnableSharedFromThis(const QEnableSharedFromThis &) {} 8768: QEnableSharedFromThis &operator=(const QEnableSharedFromThis &) { return *this; } 8768: 8768: public: 8768: inline QSharedPointer sharedFromThis() { return QSharedPointer(weakPointer); } 8768: inline QSharedPointer sharedFromThis() const { return QSharedPointer(weakPointer); } 8768: 8768: 8768: private: 8768: template friend class QSharedPointer; 8768: 8768: 8768: 8768: template 8768: inline void initializeFromSharedPointer(const QSharedPointer &ptr) const 8768: { 8768: weakPointer = ptr; 8768: } 8768: 8768: mutable QWeakPointer weakPointer; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: bool operator==(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8768: { 8768: return ptr1.data() == ptr2.data(); 8768: } 8768: template 8768: bool operator!=(const QSharedPointer &ptr1, const QSharedPointer &ptr2) noexcept 8768: { 8768: return ptr1.data() != ptr2.data(); 8768: } 8768: 8768: template 8768: bool operator==(const QSharedPointer &ptr1, const X *ptr2) noexcept 8768: { 8768: return ptr1.data() == ptr2; 8768: } 8768: template 8768: bool operator==(const T *ptr1, const QSharedPointer &ptr2) noexcept 8768: { 8768: return ptr1 == ptr2.data(); 8768: } 8768: template 8768: bool operator!=(const QSharedPointer &ptr1, const X *ptr2) noexcept 8768: { 8768: return !(ptr1 == ptr2); 8768: } 8768: template 8768: bool operator!=(const T *ptr1, const QSharedPointer &ptr2) noexcept 8768: { 8768: return !(ptr2 == ptr1); 8768: } 8768: 8768: template 8768: bool operator==(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8768: { 8768: return ptr2 == ptr1; 8768: } 8768: template 8768: bool operator!=(const QSharedPointer &ptr1, const QWeakPointer &ptr2) noexcept 8768: { 8768: return ptr2 != ptr1; 8768: } 8768: 8768: template 8768: inline bool operator==(const QSharedPointer &lhs, std::nullptr_t) noexcept 8768: { 8768: return lhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator!=(const QSharedPointer &lhs, std::nullptr_t) noexcept 8768: { 8768: return !lhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator==(std::nullptr_t, const QSharedPointer &rhs) noexcept 8768: { 8768: return rhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator!=(std::nullptr_t, const QSharedPointer &rhs) noexcept 8768: { 8768: return !rhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator==(const QWeakPointer &lhs, std::nullptr_t) noexcept 8768: { 8768: return lhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator!=(const QWeakPointer &lhs, std::nullptr_t) noexcept 8768: { 8768: return !lhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator==(std::nullptr_t, const QWeakPointer &rhs) noexcept 8768: { 8768: return rhs.isNull(); 8768: } 8768: 8768: template 8768: inline bool operator!=(std::nullptr_t, const QWeakPointer &rhs) noexcept 8768: { 8768: return !rhs.isNull(); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8768: { 8768: return ptr1.data() - ptr2.data(); 8768: } 8768: template 8768: inline typename QSharedPointer::difference_type operator-(const QSharedPointer &ptr1, X *ptr2) 8768: { 8768: return ptr1.data() - ptr2; 8768: } 8768: template 8768: inline typename QSharedPointer::difference_type operator-(T *ptr1, const QSharedPointer &ptr2) 8768: { 8768: return ptr1 - ptr2.data(); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: inline bool operator<(const QSharedPointer &ptr1, const QSharedPointer &ptr2) 8768: { 8768: using CT = typename std::common_type::type; 8768: return std::less()(ptr1.data(), ptr2.data()); 8768: } 8768: template 8768: inline bool operator<(const QSharedPointer &ptr1, X *ptr2) 8768: { 8768: using CT = typename std::common_type::type; 8768: return std::less()(ptr1.data(), ptr2); 8768: } 8768: template 8768: inline bool operator<(T *ptr1, const QSharedPointer &ptr2) 8768: { 8768: using CT = typename std::common_type::type; 8768: return std::less()(ptr1, ptr2.data()); 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: inline uint qHash(const QSharedPointer &ptr, uint seed = 0) 8768: { 8768: return ::qHash(ptr.data(), seed); 8768: } 8768: 8768: 8768: template 8768: inline QWeakPointer QSharedPointer::toWeakRef() const 8768: { 8768: return QWeakPointer(*this); 8768: } 8768: 8768: template 8768: inline void qSwap(QSharedPointer &p1, QSharedPointer &p2) 8768: { 8768: p1.swap(p2); 8768: } 8768: 8768: 8768: namespace std { 8768: template 8768: inline void swap(::QSharedPointer &p1, ::QSharedPointer &p2) 8768: { p1.swap(p2); } 8768: } 8768: 8768: 8768: namespace QtSharedPointer { 8768: 8768: template 8768: inline QSharedPointer copyAndSetPointer(X *ptr, const QSharedPointer &src) 8768: { 8768: QSharedPointer result; 8768: result.internalSet(src.d, ptr); 8768: return result; 8768: } 8768: } 8768: 8768: 8768: template 8768: inline QSharedPointer qSharedPointerCast(const QSharedPointer &src) 8768: { 8768: X *ptr = static_cast(src.data()); 8768: return QtSharedPointer::copyAndSetPointer(ptr, src); 8768: } 8768: template 8768: inline QSharedPointer qSharedPointerCast(const QWeakPointer &src) 8768: { 8768: return qSharedPointerCast(src.toStrongRef()); 8768: } 8768: 8768: template 8768: inline QSharedPointer qSharedPointerDynamicCast(const QSharedPointer &src) 8768: { 8768: X *ptr = dynamic_cast(src.data()); 8768: if (!ptr) 8768: return QSharedPointer(); 8768: return QtSharedPointer::copyAndSetPointer(ptr, src); 8768: } 8768: template 8768: inline QSharedPointer qSharedPointerDynamicCast(const QWeakPointer &src) 8768: { 8768: return qSharedPointerDynamicCast(src.toStrongRef()); 8768: } 8768: 8768: template 8768: inline QSharedPointer qSharedPointerConstCast(const QSharedPointer &src) 8768: { 8768: X *ptr = const_cast(src.data()); 8768: return QtSharedPointer::copyAndSetPointer(ptr, src); 8768: } 8768: template 8768: inline QSharedPointer qSharedPointerConstCast(const QWeakPointer &src) 8768: { 8768: return qSharedPointerConstCast(src.toStrongRef()); 8768: } 8768: 8768: template 8768: inline 8768: QWeakPointer qWeakPointerCast(const QSharedPointer &src) 8768: { 8768: return qSharedPointerCast(src).toWeakRef(); 8768: } 8768: 8768: 8768: template 8768: inline QSharedPointer qSharedPointerObjectCast(const QSharedPointer &src) 8768: { 8768: X *ptr = qobject_cast(src.data()); 8768: return QtSharedPointer::copyAndSetPointer(ptr, src); 8768: } 8768: template 8768: inline QSharedPointer qSharedPointerObjectCast(const QWeakPointer &src) 8768: { 8768: return qSharedPointerObjectCast(src.toStrongRef()); 8768: } 8768: 8768: template 8768: inline QSharedPointer::Type> 8768: qobject_cast(const QSharedPointer &src) 8768: { 8768: return qSharedPointerObjectCast::Type, T>(src); 8768: } 8768: template 8768: inline QSharedPointer::Type> 8768: qobject_cast(const QWeakPointer &src) 8768: { 8768: return qSharedPointerObjectCast::Type, T>(src); 8768: } 8768: 8768: template 8768: QWeakPointer::Value, T>::type> 8768: qWeakPointerFromVariant(const QVariant &variant) 8768: { 8768: return QWeakPointer(qobject_cast(QtSharedPointer::weakPointerFromVariant_internal(variant).data())); 8768: } 8768: template 8768: QSharedPointer::Value, T>::type> 8768: qSharedPointerFromVariant(const QVariant &variant) 8768: { 8768: return qSharedPointerObjectCast(QtSharedPointer::sharedPointerFromVariant_internal(variant)); 8768: } 8768: 8768: 8768: 8768: 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"; } }; 8768: 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"; } }; 8768: 8768: 8768: 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 2 3 4 8768: # 28 "/<>/templates/lib/abstractlocalizer.h" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantList" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantList" 2 3 4 8768: # 29 "/<>/templates/lib/abstractlocalizer.h" 2 8768: 8768: 8768: # 30 "/<>/templates/lib/abstractlocalizer.h" 8768: class QDateTime; 8768: 8768: namespace Grantlee 8768: { 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) AbstractLocalizer 8768: { 8768: public: 8768: 8768: 8768: 8768: AbstractLocalizer(); 8768: 8768: 8768: 8768: 8768: virtual ~AbstractLocalizer(); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual QString localize(const QVariant &variant) const; 8768: 8768: 8768: 8768: 8768: virtual QString currentLocale() const = 0; 8768: 8768: 8768: 8768: 8768: virtual void pushLocale(const QString &localeName) = 0; 8768: 8768: 8768: 8768: 8768: virtual void popLocale() = 0; 8768: 8768: 8768: 8768: 8768: virtual void loadCatalog(const QString &path, const QString &catalog) = 0; 8768: 8768: 8768: 8768: 8768: virtual void unloadCatalog(const QString &catalog) = 0; 8768: 8768: 8768: 8768: 8768: virtual QString localizeNumber(int number) const = 0; 8768: 8768: 8768: 8768: 8768: virtual QString localizeNumber(qreal number) const = 0; 8768: 8768: 8768: 8768: 8768: 8768: virtual QString localizeMonetaryValue(qreal value, const QString ¤cyCode 8768: = QString()) const = 0; 8768: 8768: 8768: 8768: 8768: virtual QString localizeDate(const QDate &date, 8768: QLocale::FormatType formatType 8768: = QLocale::ShortFormat) const = 0; 8768: 8768: 8768: 8768: 8768: virtual QString localizeTime(const QTime &time, 8768: QLocale::FormatType formatType 8768: = QLocale::ShortFormat) const = 0; 8768: 8768: 8768: 8768: 8768: virtual QString localizeDateTime(const QDateTime &dateTime, 8768: QLocale::FormatType formatType 8768: = QLocale::ShortFormat) const = 0; 8768: 8768: 8768: 8768: 8768: virtual QString localizeString(const QString &string, 8768: const QVariantList &arguments 8768: = QVariantList()) const = 0; 8768: 8768: 8768: 8768: 8768: 8768: virtual QString localizeContextString(const QString &string, 8768: const QString &context, 8768: const QVariantList &arguments 8768: = QVariantList()) const = 0; 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual QString localizePluralString(const QString &string, 8768: const QString &pluralForm, 8768: const QVariantList &arguments 8768: = QVariantList()) const = 0; 8768: 8768: 8768: 8768: 8768: 8768: virtual QString localizePluralContextString(const QString &string, 8768: const QString &pluralForm, 8768: const QString &context, 8768: const QVariantList &arguments 8768: = QVariantList()) const = 0; 8768: 8768: private: 8768: AbstractLocalizer 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8768: (const 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 8768: AbstractLocalizer 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8768: &) = delete; 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 8768: AbstractLocalizer 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8768: &operator=(const 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 8768: AbstractLocalizer 8768: # 162 "/<>/templates/lib/abstractlocalizer.h" 3 4 8768: &) = delete; 8768: 8768: # 163 "/<>/templates/lib/abstractlocalizer.h" 8768: }; 8768: } 8768: # 25 "/<>/templates/lib/context.h" 2 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 26 "/<>/templates/lib/context.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariantHash" 1 3 4 8768: # 28 "/<>/templates/lib/context.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: 8768: class RenderContext; 8768: 8768: class ContextPrivate; 8768: # 117 "/<>/templates/lib/context.h" 8768: class __attribute__((visibility("default"))) Context 8768: { 8768: public: 8768: 8768: 8768: 8768: Context(); 8768: 8768: 8768: 8768: 8768: explicit Context(const QVariantHash &hash); 8768: 8768: 8768: 8768: 8768: Context(const Context &other); 8768: 8768: 8768: 8768: 8768: Context &operator=(const Context &other); 8768: # 147 "/<>/templates/lib/context.h" 8768: bool autoEscape() const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void setAutoEscape(bool autoescape); 8768: 8768: 8768: 8768: 8768: ~Context(); 8768: 8768: 8768: 8768: 8768: QVariant lookup(const QString &str) const; 8768: 8768: 8768: 8768: 8768: 8768: void insert(const QString &name, QObject *object); 8768: 8768: 8768: 8768: 8768: 8768: void insert(const QString &name, const QVariant &variant); 8768: 8768: 8768: 8768: 8768: 8768: void push(); 8768: 8768: 8768: 8768: 8768: 8768: void pop(); 8768: 8768: 8768: 8768: 8768: 8768: QVariantHash stackHash(int depth) const; 8768: 8768: 8768: 8768: 8768: 8768: bool isMutating() const; 8768: 8768: 8768: 8768: 8768: 8768: void setMutating(bool mutating); 8768: 8768: 8768: 8768: 8768: void addExternalMedia(const QString &absolutePart, 8768: const QString &relativePart); 8768: 8768: 8768: 8768: 8768: void clearExternalMedia(); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void setLocalizer(QSharedPointer localizer); 8768: 8768: 8768: 8768: 8768: QSharedPointer localizer() const; 8768: 8768: 8768: 8768: 8768: QList> externalMedia() const; 8768: 8768: 8768: 8768: 8768: enum UrlType { 8768: AbsoluteUrls, 8768: RelativeUrls 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: void setUrlType(UrlType type); 8768: 8768: 8768: 8768: 8768: UrlType urlType() const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: void setRelativeMediaPath(const QString &relativePath); 8768: 8768: 8768: 8768: 8768: QString relativeMediaPath() const; 8768: # 276 "/<>/templates/lib/context.h" 8768: RenderContext *renderContext() const; 8768: 8768: private: 8768: 8768: # 279 "/<>/templates/lib/context.h" 3 4 8768: inline 8768: # 279 "/<>/templates/lib/context.h" 8768: ContextPrivate 8768: # 279 "/<>/templates/lib/context.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 279 "/<>/templates/lib/context.h" 8768: ContextPrivate 8768: # 279 "/<>/templates/lib/context.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 279 "/<>/templates/lib/context.h" 8768: ContextPrivate 8768: # 279 "/<>/templates/lib/context.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/context.h" 8768: ContextPrivate 8768: # 279 "/<>/templates/lib/context.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 279 "/<>/templates/lib/context.h" 8768: ContextPrivate 8768: # 279 "/<>/templates/lib/context.h" 3 4 8768: ; 8768: 8768: # 280 "/<>/templates/lib/context.h" 8768: ContextPrivate *const d_ptr; 8768: }; 8768: } 8768: # 27 "/<>/templates/lib/node.h" 2 8768: # 1 "/<>/templates/lib/filterexpression.h" 1 8768: # 24 "/<>/templates/lib/filterexpression.h" 8768: # 1 "/<>/templates/lib/variable.h" 1 8768: # 24 "/<>/templates/lib/variable.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/variable.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8768: # 27 "/<>/templates/lib/variable.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: class Context; 8768: 8768: class VariablePrivate; 8768: # 53 "/<>/templates/lib/variable.h" 8768: class __attribute__((visibility("default"))) Variable 8768: { 8768: public: 8768: 8768: 8768: 8768: Variable(); 8768: 8768: 8768: 8768: 8768: explicit Variable(const QString &var); 8768: 8768: 8768: 8768: 8768: Variable(const Variable &other); 8768: 8768: 8768: 8768: 8768: ~Variable(); 8768: 8768: 8768: 8768: 8768: Variable &operator=(const Variable &other); 8768: 8768: 8768: 8768: 8768: bool isValid() const; 8768: 8768: 8768: 8768: 8768: bool isTrue(Context *c) const; 8768: 8768: 8768: 8768: 8768: QVariant resolve(Context *c) const; 8768: # 105 "/<>/templates/lib/variable.h" 8768: bool isConstant() const; 8768: 8768: 8768: 8768: 8768: 8768: bool isLocalized() const; 8768: 8768: 8768: 8768: 8768: 8768: QVariant literal() const; 8768: 8768: 8768: 8768: 8768: QStringList lookups() const; 8768: 8768: private: 8768: 8768: # 125 "/<>/templates/lib/variable.h" 3 4 8768: inline 8768: # 125 "/<>/templates/lib/variable.h" 8768: VariablePrivate 8768: # 125 "/<>/templates/lib/variable.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 125 "/<>/templates/lib/variable.h" 8768: VariablePrivate 8768: # 125 "/<>/templates/lib/variable.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 125 "/<>/templates/lib/variable.h" 8768: VariablePrivate 8768: # 125 "/<>/templates/lib/variable.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/variable.h" 8768: VariablePrivate 8768: # 125 "/<>/templates/lib/variable.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 125 "/<>/templates/lib/variable.h" 8768: VariablePrivate 8768: # 125 "/<>/templates/lib/variable.h" 3 4 8768: ; 8768: 8768: # 126 "/<>/templates/lib/variable.h" 8768: VariablePrivate *const d_ptr; 8768: }; 8768: } 8768: # 25 "/<>/templates/lib/filterexpression.h" 2 8768: 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 27 "/<>/templates/lib/filterexpression.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: class Filter; 8768: class OutputStream; 8768: class Parser; 8768: struct Token; 8768: 8768: class FilterExpressionPrivate; 8768: # 118 "/<>/templates/lib/filterexpression.h" 8768: class __attribute__((visibility("default"))) FilterExpression 8768: { 8768: public: 8768: 8768: 8768: 8768: FilterExpression(); 8768: 8768: 8768: 8768: 8768: 8768: FilterExpression(const QString &varString, Grantlee::Parser *parser); 8768: 8768: 8768: 8768: 8768: FilterExpression(const FilterExpression &other); 8768: 8768: 8768: 8768: 8768: ~FilterExpression(); 8768: 8768: 8768: 8768: 8768: FilterExpression &operator=(const FilterExpression &other); 8768: 8768: 8768: 8768: 8768: Variable variable() const; 8768: 8768: 8768: 8768: 8768: 8768: QVariant resolve(OutputStream *stream, Context *c) const; 8768: 8768: 8768: 8768: 8768: QVariant resolve(Context *c) const; 8768: 8768: 8768: 8768: 8768: 8768: bool isTrue(Context *c) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: QVariantList toList(Context *c) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool isValid() const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: QStringList filters() const; 8768: 8768: 8768: private: 8768: 8768: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8768: inline 8768: # 194 "/<>/templates/lib/filterexpression.h" 8768: FilterExpressionPrivate 8768: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 194 "/<>/templates/lib/filterexpression.h" 8768: FilterExpressionPrivate 8768: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 194 "/<>/templates/lib/filterexpression.h" 8768: FilterExpressionPrivate 8768: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/filterexpression.h" 8768: FilterExpressionPrivate 8768: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 194 "/<>/templates/lib/filterexpression.h" 8768: FilterExpressionPrivate 8768: # 194 "/<>/templates/lib/filterexpression.h" 3 4 8768: ; 8768: 8768: # 195 "/<>/templates/lib/filterexpression.h" 8768: FilterExpressionPrivate *const d_ptr; 8768: }; 8768: } 8768: # 28 "/<>/templates/lib/node.h" 2 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 29 "/<>/templates/lib/node.h" 2 8768: # 1 "/<>/templates/lib/outputstream.h" 1 8768: # 24 "/<>/templates/lib/outputstream.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/outputstream.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8768: # 27 "/<>/templates/lib/outputstream.h" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QTextStream" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 1 3 4 8768: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: 8768: 8768: 8768: 8768: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: class QByteArray; 8768: class QIODevicePrivate; 8768: 8768: class __attribute__((visibility("default"))) QIODevice 8768: 8768: : public QObject 8768: 8768: { 8768: 8768: public: 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: 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: 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qiodevice.h" 3 4 8768: struct QPrivateSignal {}; 8768: 8768: public: 8768: enum OpenModeFlag { 8768: NotOpen = 0x0000, 8768: ReadOnly = 0x0001, 8768: WriteOnly = 0x0002, 8768: ReadWrite = ReadOnly | WriteOnly, 8768: Append = 0x0004, 8768: Truncate = 0x0008, 8768: Text = 0x0010, 8768: Unbuffered = 0x0020 8768: }; 8768: typedef QFlags OpenMode; 8768: 8768: QIODevice(); 8768: 8768: explicit QIODevice(QObject *parent); 8768: 8768: virtual ~QIODevice(); 8768: 8768: OpenMode openMode() const; 8768: 8768: void setTextModeEnabled(bool enabled); 8768: bool isTextModeEnabled() const; 8768: 8768: bool isOpen() const; 8768: bool isReadable() const; 8768: bool isWritable() const; 8768: virtual bool isSequential() const; 8768: 8768: int readChannelCount() const; 8768: int writeChannelCount() const; 8768: int currentReadChannel() const; 8768: void setCurrentReadChannel(int channel); 8768: int currentWriteChannel() const; 8768: void setCurrentWriteChannel(int channel); 8768: 8768: virtual bool open(OpenMode mode); 8768: virtual void close(); 8768: 8768: 8768: 8768: virtual qint64 pos() const; 8768: virtual qint64 size() const; 8768: virtual bool seek(qint64 pos); 8768: virtual bool atEnd() const; 8768: virtual bool reset(); 8768: 8768: virtual qint64 bytesAvailable() const; 8768: virtual qint64 bytesToWrite() const; 8768: 8768: qint64 read(char *data, qint64 maxlen); 8768: QByteArray read(qint64 maxlen); 8768: QByteArray readAll(); 8768: qint64 readLine(char *data, qint64 maxlen); 8768: QByteArray readLine(qint64 maxlen = 0); 8768: virtual bool canReadLine() const; 8768: 8768: void startTransaction(); 8768: void commitTransaction(); 8768: void rollbackTransaction(); 8768: bool isTransactionStarted() const; 8768: 8768: qint64 write(const char *data, qint64 len); 8768: qint64 write(const char *data); 8768: inline qint64 write(const QByteArray &data) 8768: { return write(data.constData(), data.size()); } 8768: 8768: qint64 peek(char *data, qint64 maxlen); 8768: QByteArray peek(qint64 maxlen); 8768: 8768: virtual bool waitForReadyRead(int msecs); 8768: virtual bool waitForBytesWritten(int msecs); 8768: 8768: void ungetChar(char c); 8768: bool putChar(char c); 8768: bool getChar(char *c); 8768: 8768: QString errorString() const; 8768: 8768: 8768: public : 8768: void readyRead(); 8768: void channelReadyRead(int channel); 8768: void bytesWritten(qint64 bytes); 8768: void channelBytesWritten(int channel, qint64 bytes); 8768: void aboutToClose(); 8768: void readChannelFinished(); 8768: 8768: 8768: protected: 8768: 8768: 8768: 8768: QIODevice(QIODevicePrivate &dd, QObject *parent = nullptr); 8768: 8768: virtual qint64 readData(char *data, qint64 maxlen) = 0; 8768: virtual qint64 readLineData(char *data, qint64 maxlen); 8768: virtual qint64 writeData(const char *data, qint64 len) = 0; 8768: 8768: void setOpenMode(OpenMode openMode); 8768: 8768: void setErrorString(const QString &errorString); 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: 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; 8768: QIODevice(const QIODevice &) = delete; QIODevice &operator=(const QIODevice &) = delete; 8768: }; 8768: 8768: 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); } 8768: 8768: 8768: class QDebug; 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QIODevice::OpenMode modes); 8768: 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlocale.h" 1 3 4 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 2 3 4 8768: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtextstream.h" 3 4 8768: 8768: 8768: 8768: class QTextCodec; 8768: class QTextDecoder; 8768: 8768: class QTextStreamPrivate; 8768: class __attribute__((visibility("default"))) QTextStream 8768: { 8768: 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; 8768: 8768: public: 8768: enum RealNumberNotation { 8768: SmartNotation, 8768: FixedNotation, 8768: ScientificNotation 8768: }; 8768: enum FieldAlignment { 8768: AlignLeft, 8768: AlignRight, 8768: AlignCenter, 8768: AlignAccountingStyle 8768: }; 8768: enum Status { 8768: Ok, 8768: ReadPastEnd, 8768: ReadCorruptData, 8768: WriteFailed 8768: }; 8768: enum NumberFlag { 8768: ShowBase = 0x1, 8768: ForcePoint = 0x2, 8768: ForceSign = 0x4, 8768: UppercaseBase = 0x8, 8768: UppercaseDigits = 0x10 8768: }; 8768: typedef QFlags NumberFlags; 8768: 8768: QTextStream(); 8768: explicit QTextStream(QIODevice *device); 8768: explicit QTextStream(FILE *fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8768: explicit QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8768: explicit QTextStream(QByteArray *array, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8768: explicit QTextStream(const QByteArray &array, QIODevice::OpenMode openMode = QIODevice::ReadOnly); 8768: virtual ~QTextStream(); 8768: 8768: 8768: void setCodec(QTextCodec *codec); 8768: void setCodec(const char *codecName); 8768: QTextCodec *codec() const; 8768: void setAutoDetectUnicode(bool enabled); 8768: bool autoDetectUnicode() const; 8768: void setGenerateByteOrderMark(bool generate); 8768: bool generateByteOrderMark() const; 8768: 8768: 8768: void setLocale(const QLocale &locale); 8768: QLocale locale() const; 8768: 8768: void setDevice(QIODevice *device); 8768: QIODevice *device() const; 8768: 8768: void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite); 8768: QString *string() const; 8768: 8768: Status status() const; 8768: void setStatus(Status status); 8768: void resetStatus(); 8768: 8768: bool atEnd() const; 8768: void reset(); 8768: void flush(); 8768: bool seek(qint64 pos); 8768: qint64 pos() const; 8768: 8768: void skipWhiteSpace(); 8768: 8768: QString readLine(qint64 maxlen = 0); 8768: bool readLineInto(QString *line, qint64 maxlen = 0); 8768: QString readAll(); 8768: QString read(qint64 maxlen); 8768: 8768: void setFieldAlignment(FieldAlignment alignment); 8768: FieldAlignment fieldAlignment() const; 8768: 8768: void setPadChar(QChar ch); 8768: QChar padChar() const; 8768: 8768: void setFieldWidth(int width); 8768: int fieldWidth() const; 8768: 8768: void setNumberFlags(NumberFlags flags); 8768: NumberFlags numberFlags() const; 8768: 8768: void setIntegerBase(int base); 8768: int integerBase() const; 8768: 8768: void setRealNumberNotation(RealNumberNotation notation); 8768: RealNumberNotation realNumberNotation() const; 8768: 8768: void setRealNumberPrecision(int precision); 8768: int realNumberPrecision() const; 8768: 8768: QTextStream &operator>>(QChar &ch); 8768: QTextStream &operator>>(char &ch); 8768: QTextStream &operator>>(signed short &i); 8768: QTextStream &operator>>(unsigned short &i); 8768: QTextStream &operator>>(signed int &i); 8768: QTextStream &operator>>(unsigned int &i); 8768: QTextStream &operator>>(signed long &i); 8768: QTextStream &operator>>(unsigned long &i); 8768: QTextStream &operator>>(qlonglong &i); 8768: QTextStream &operator>>(qulonglong &i); 8768: QTextStream &operator>>(float &f); 8768: QTextStream &operator>>(double &f); 8768: QTextStream &operator>>(QString &s); 8768: QTextStream &operator>>(QByteArray &array); 8768: QTextStream &operator>>(char *c); 8768: 8768: QTextStream &operator<<(QChar ch); 8768: QTextStream &operator<<(char ch); 8768: QTextStream &operator<<(signed short i); 8768: QTextStream &operator<<(unsigned short i); 8768: QTextStream &operator<<(signed int i); 8768: QTextStream &operator<<(unsigned int i); 8768: QTextStream &operator<<(signed long i); 8768: QTextStream &operator<<(unsigned long i); 8768: QTextStream &operator<<(qlonglong i); 8768: QTextStream &operator<<(qulonglong i); 8768: QTextStream &operator<<(float f); 8768: QTextStream &operator<<(double f); 8768: QTextStream &operator<<(const QString &s); 8768: QTextStream &operator<<(QLatin1String s); 8768: QTextStream &operator<<(const QStringRef &s); 8768: QTextStream &operator<<(const QByteArray &array); 8768: QTextStream &operator<<(const char *c); 8768: QTextStream &operator<<(const void *ptr); 8768: 8768: private: 8768: QTextStream(const QTextStream &) = delete; QTextStream &operator=(const QTextStream &) = delete; 8768: friend class QDebugStateSaverPrivate; 8768: friend class QDebug; 8768: 8768: QScopedPointer d_ptr; 8768: }; 8768: 8768: 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); } 8768: 8768: 8768: 8768: 8768: 8768: typedef QTextStream & (*QTextStreamFunction)(QTextStream &); 8768: typedef void (QTextStream::*QTSMFI)(int); 8768: typedef void (QTextStream::*QTSMFC)(QChar); 8768: 8768: 8768: class __attribute__((visibility("default"))) QTextStreamManipulator 8768: { 8768: public: 8768: constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {} 8768: constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(c) {} 8768: void exec(QTextStream &s) { if (mf) { (s.*mf)(arg); } else { (s.*mc)(ch); } } 8768: 8768: private: 8768: QTSMFI mf; 8768: QTSMFC mc; 8768: int arg; 8768: QChar ch; 8768: }; 8768: 8768: inline QTextStream &operator>>(QTextStream &s, QTextStreamFunction f) 8768: { return (*f)(s); } 8768: 8768: inline QTextStream &operator<<(QTextStream &s, QTextStreamFunction f) 8768: { return (*f)(s); } 8768: 8768: inline QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m) 8768: { m.exec(s); return s; } 8768: 8768: __attribute__((visibility("default"))) QTextStream &bin(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &oct(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &dec(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &hex(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &showbase(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &forcesign(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &forcepoint(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &noshowbase(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &noforcesign(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &noforcepoint(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &uppercasebase(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &uppercasedigits(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &lowercasebase(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &lowercasedigits(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &fixed(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &scientific(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &left(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &right(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream ¢er(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &endl(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &flush(QTextStream &s); 8768: __attribute__((visibility("default"))) QTextStream &reset(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &bom(QTextStream &s); 8768: 8768: __attribute__((visibility("default"))) QTextStream &ws(QTextStream &s); 8768: 8768: inline QTextStreamManipulator qSetFieldWidth(int width) 8768: { 8768: QTSMFI func = &QTextStream::setFieldWidth; 8768: return QTextStreamManipulator(func,width); 8768: } 8768: 8768: inline QTextStreamManipulator qSetPadChar(QChar ch) 8768: { 8768: QTSMFC func = &QTextStream::setPadChar; 8768: return QTextStreamManipulator(func, ch); 8768: } 8768: 8768: inline QTextStreamManipulator qSetRealNumberPrecision(int precision) 8768: { 8768: QTSMFI func = &QTextStream::setRealNumberPrecision; 8768: return QTextStreamManipulator(func, precision); 8768: } 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QTextStream" 2 3 4 8768: # 28 "/<>/templates/lib/outputstream.h" 2 8768: 8768: 8768: # 29 "/<>/templates/lib/outputstream.h" 8768: namespace Grantlee 8768: { 8768: 8768: class SafeString; 8768: # 82 "/<>/templates/lib/outputstream.h" 8768: class __attribute__((visibility("default"))) OutputStream 8768: { 8768: public: 8768: 8768: 8768: 8768: 8768: OutputStream(); 8768: 8768: 8768: 8768: 8768: 8768: explicit OutputStream(QTextStream *stream); 8768: 8768: 8768: 8768: 8768: virtual ~OutputStream(); 8768: 8768: 8768: 8768: 8768: 8768: virtual QString escape(const QString &input) const; 8768: 8768: 8768: 8768: 8768: 8768: QString escape(const SafeString &input) const; 8768: 8768: 8768: 8768: 8768: virtual QSharedPointer clone(QTextStream *stream) const; 8768: 8768: 8768: 8768: 8768: 8768: QString conditionalEscape(const Grantlee::SafeString &input) const; 8768: 8768: 8768: 8768: 8768: OutputStream &operator<<(const QString &input); 8768: 8768: 8768: 8768: 8768: OutputStream &operator<<(const SafeString &input); 8768: 8768: 8768: 8768: 8768: 8768: OutputStream &operator<<(QTextStream *stream); 8768: 8768: private: 8768: QTextStream *m_stream; 8768: OutputStream 8768: # 143 "/<>/templates/lib/outputstream.h" 3 4 8768: (const 8768: # 143 "/<>/templates/lib/outputstream.h" 8768: OutputStream 8768: # 143 "/<>/templates/lib/outputstream.h" 3 4 8768: &) = delete; 8768: # 143 "/<>/templates/lib/outputstream.h" 8768: OutputStream 8768: # 143 "/<>/templates/lib/outputstream.h" 3 4 8768: &operator=(const 8768: # 143 "/<>/templates/lib/outputstream.h" 8768: OutputStream 8768: # 143 "/<>/templates/lib/outputstream.h" 3 4 8768: &) = delete; 8768: 8768: # 144 "/<>/templates/lib/outputstream.h" 8768: }; 8768: } 8768: # 30 "/<>/templates/lib/node.h" 2 8768: # 1 "/<>/templates/lib/safestring.h" 1 8768: # 24 "/<>/templates/lib/safestring.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/safestring.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QString" 1 3 4 8768: # 27 "/<>/templates/lib/safestring.h" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8768: # 28 "/<>/templates/lib/safestring.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: # 92 "/<>/templates/lib/safestring.h" 8768: class __attribute__((visibility("default"))) SafeString 8768: { 8768: public: 8768: 8768: 8768: 8768: enum Safety { 8768: IsSafe, 8768: IsNotSafe 8768: 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: SafeString(); 8768: 8768: 8768: 8768: 8768: SafeString(const SafeString &safeString); 8768: 8768: 8768: 8768: 8768: 8768: 8768: SafeString(const QString &str, bool safe); 8768: 8768: 8768: 8768: 8768: 8768: 8768: SafeString(const QString &str, 8768: Safety safety 8768: = IsNotSafe); 8768: 8768: 8768: 8768: 8768: ~SafeString(); 8768: 8768: 8768: 8768: 8768: 8768: void setNeedsEscape(bool needsEscape); 8768: 8768: 8768: 8768: 8768: 8768: bool needsEscape() const; 8768: 8768: 8768: 8768: 8768: bool isSafe() const; 8768: 8768: 8768: 8768: 8768: 8768: void setSafety(Safety safety); 8768: # 167 "/<>/templates/lib/safestring.h" 8768: class __attribute__((visibility("default"))) NestedString : public QString 8768: { 8768: 8768: friend class SafeString; 8768: SafeString *m_safeString; 8768: 8768: public: 8768: NestedString(SafeString *safeString); 8768: NestedString(const QString &content, SafeString *safeString); 8768: 8768: SafeString &append(const SafeString &str); 8768: SafeString &append(const QString &str); 8768: SafeString &append(const QStringRef &reference); 8768: SafeString &append(const QLatin1String &str); 8768: # 196 "/<>/templates/lib/safestring.h" 8768: SafeString &append(const QChar ch); 8768: 8768: SafeString &fill(QChar ch, int size = -1); 8768: 8768: SafeString &insert(int position, const SafeString &str); 8768: SafeString &insert(int position, const QString &str); 8768: SafeString &insert(int position, const QLatin1String &str); 8768: SafeString &insert(int position, const QChar *unicode, int size); 8768: SafeString &insert(int position, QChar ch); 8768: 8768: SafeString left(int n) const; 8768: SafeString leftJustified(int width, QChar fill = QLatin1Char(' '), 8768: bool truncate = false) const; 8768: SafeString mid(int position, int n = -1) const; 8768: 8768: SafeString normalized(NormalizationForm mode) const; 8768: SafeString normalized(NormalizationForm mode, 8768: QChar::UnicodeVersion version) const; 8768: 8768: SafeString &prepend(const SafeString &str); 8768: SafeString &prepend(const QString &str); 8768: SafeString &prepend(const QLatin1String &str); 8768: # 233 "/<>/templates/lib/safestring.h" 8768: SafeString &prepend(QChar ch); 8768: 8768: void push_back(const SafeString &other); 8768: void push_front(const SafeString &other); 8768: 8768: SafeString &remove(int position, int n); 8768: SafeString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &remove(const SafeString &str, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &remove(const QString &str, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &remove(const QRegularExpression &rx); 8768: SafeString repeated(int times) const; 8768: SafeString &replace(int position, int n, const SafeString &after); 8768: SafeString &replace(int position, int n, const QString &after); 8768: SafeString &replace(int position, int n, const QChar *unicode, int size); 8768: SafeString &replace(int position, int n, QChar after); 8768: SafeString &replace(const SafeString &before, const SafeString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QString &before, const SafeString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const SafeString &before, const QString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QString &before, const QString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QChar *before, int blen, const QChar *after, 8768: int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(QChar ch, const SafeString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(QChar ch, const QString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(QChar before, QChar after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QLatin1String &before, const QLatin1String &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QLatin1String &before, const SafeString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QLatin1String &before, const QString &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const SafeString &before, const QLatin1String &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QString &before, const QLatin1String &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(QChar c, const QLatin1String &after, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive); 8768: SafeString &replace(const QRegularExpression &rx, const SafeString &after); 8768: SafeString &replace(const QRegularExpression &rx, const QString &after); 8768: 8768: SafeString right(int n) const; 8768: SafeString rightJustified(int width, QChar fill = QLatin1Char(' '), 8768: bool truncate = false) const; 8768: 8768: SafeString section(QChar sep, int start, int end = -1, 8768: SectionFlags flags = SectionDefault) const; 8768: SafeString section(const SafeString &sep, int start, int end = -1, 8768: SectionFlags flags = SectionDefault) const; 8768: SafeString section(const QString &sep, int start, int end = -1, 8768: SectionFlags flags = SectionDefault) const; 8768: SafeString section(const QRegularExpression ®, int start, int end = -1, 8768: SectionFlags flags = SectionDefault) const; 8768: SafeString &setNum(int n, int base = 10); 8768: SafeString &setNum(uint n, int base = 10); 8768: SafeString &setNum(long n, int base = 10); 8768: SafeString &setNum(ulong n, int base = 10); 8768: SafeString &setNum(qlonglong n, int base = 10); 8768: SafeString &setNum(qulonglong n, int base = 10); 8768: SafeString &setNum(short n, int base = 10); 8768: SafeString &setNum(ushort n, int base = 10); 8768: SafeString &setNum(double n, char format = 'g', int precision = 6); 8768: SafeString &setNum(float n, char format = 'g', int precision = 6); 8768: SafeString &setUnicode(const QChar *unicode, int size); 8768: SafeString &setUtf16(const ushort *unicode, int size); 8768: SafeString simplified() const; 8768: 8768: QStringList split(const SafeString &sep, 8768: SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: QStringList split(const QString &sep, 8768: SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts, 8768: Qt::CaseSensitivity cs = Qt::CaseSensitive) const; 8768: QStringList split(const QRegularExpression &rx, 8768: SplitBehavior behavior = KeepEmptyParts) const; 8768: 8768: SafeString toLower() const; 8768: SafeString toUpper() const; 8768: SafeString trimmed() const; 8768: 8768: void chop(int n); 8768: 8768: }; 8768: 8768: 8768: 8768: 8768: const NestedString &get() const { return m_nestedString; } 8768: 8768: 8768: 8768: 8768: NestedString &get() { return m_nestedString; } 8768: 8768: 8768: 8768: 8768: operator QString() const { return m_nestedString; } 8768: 8768: 8768: 8768: 8768: SafeString &operator=(const SafeString &str); 8768: 8768: 8768: 8768: 8768: 8768: 8768: SafeString operator+(const QString &str); 8768: 8768: 8768: 8768: 8768: 8768: 8768: SafeString operator+(const SafeString &str); 8768: 8768: 8768: 8768: 8768: 8768: 8768: SafeString &operator+=(const QString &str); 8768: 8768: 8768: 8768: 8768: 8768: 8768: SafeString &operator+=(const SafeString &str); 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool operator==(const SafeString &other) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool operator==(const QString &other) const; 8768: 8768: 8768: 8768: 8768: operator QVariant() const { return QVariant::fromValue(*this); } 8768: 8768: private: 8768: 8768: NestedString m_nestedString; 8768: 8768: Safety m_safety; 8768: bool m_needsescape; 8768: }; 8768: } 8768: 8768: 8768: # 402 "/<>/templates/lib/safestring.h" 3 4 8768: template <> struct QMetaTypeId< 8768: # 402 "/<>/templates/lib/safestring.h" 8768: Grantlee::SafeString 8768: # 402 "/<>/templates/lib/safestring.h" 3 4 8768: > { 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< 8768: # 402 "/<>/templates/lib/safestring.h" 8768: Grantlee::SafeString 8768: # 402 "/<>/templates/lib/safestring.h" 3 4 8768: >( 8768: # 402 "/<>/templates/lib/safestring.h" 8768: "Grantlee::SafeString" 8768: # 402 "/<>/templates/lib/safestring.h" 3 4 8768: , reinterpret_cast< 8768: # 402 "/<>/templates/lib/safestring.h" 8768: Grantlee::SafeString 8768: # 402 "/<>/templates/lib/safestring.h" 3 4 8768: *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; 8768: # 31 "/<>/templates/lib/node.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 2 3 4 8768: # 33 "/<>/templates/lib/node.h" 2 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSet" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qset.h" 1 3 4 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qset.h" 3 4 8768: 8768: 8768: 8768: template 8768: class QSet 8768: { 8768: typedef QHash Hash; 8768: 8768: public: 8768: inline QSet() noexcept {} 8768: 8768: inline QSet(std::initializer_list list) 8768: { 8768: reserve(int(list.size())); 8768: for (typename std::initializer_list::const_iterator it = list.begin(); it != list.end(); ++it) 8768: insert(*it); 8768: } 8768: 8768: 8768: 8768: 8768: inline void swap(QSet &other) noexcept { q_hash.swap(other.q_hash); } 8768: 8768: inline bool operator==(const QSet &other) const 8768: { return q_hash == other.q_hash; } 8768: inline bool operator!=(const QSet &other) const 8768: { return q_hash != other.q_hash; } 8768: 8768: inline int size() const { return q_hash.size(); } 8768: 8768: inline bool isEmpty() const { return q_hash.isEmpty(); } 8768: 8768: inline int capacity() const { return q_hash.capacity(); } 8768: inline void reserve(int size); 8768: inline void squeeze() { q_hash.squeeze(); } 8768: 8768: inline void detach() { q_hash.detach(); } 8768: inline bool isDetached() const { return q_hash.isDetached(); } 8768: 8768: inline void setSharable(bool sharable) { q_hash.setSharable(sharable); } 8768: 8768: 8768: inline void clear() { q_hash.clear(); } 8768: 8768: inline bool remove(const T &value) { return q_hash.remove(value) != 0; } 8768: 8768: inline bool contains(const T &value) const { return q_hash.contains(value); } 8768: 8768: bool contains(const QSet &set) const; 8768: 8768: class const_iterator; 8768: 8768: class iterator 8768: { 8768: typedef QHash Hash; 8768: typename Hash::iterator i; 8768: friend class const_iterator; 8768: friend class QSet; 8768: 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: 8768: inline iterator() {} 8768: inline iterator(typename Hash::iterator o) : i(o) {} 8768: inline iterator(const iterator &o) : i(o.i) {} 8768: inline iterator &operator=(const iterator &o) { i = o.i; return *this; } 8768: inline const T &operator*() const { return i.key(); } 8768: inline const T *operator->() const { return &i.key(); } 8768: inline bool operator==(const iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const iterator &o) const { return i != o.i; } 8768: inline bool operator==(const const_iterator &o) const 8768: { return i == o.i; } 8768: inline bool operator!=(const const_iterator &o) const 8768: { return i != o.i; } 8768: inline iterator &operator++() { ++i; return *this; } 8768: inline iterator operator++(int) { iterator r = *this; ++i; return r; } 8768: inline iterator &operator--() { --i; return *this; } 8768: inline iterator operator--(int) { iterator r = *this; --i; return r; } 8768: inline iterator operator+(int j) const { return i + j; } 8768: inline iterator operator-(int j) const { return i - j; } 8768: inline iterator &operator+=(int j) { i += j; return *this; } 8768: inline iterator &operator-=(int j) { i -= j; return *this; } 8768: }; 8768: 8768: class const_iterator 8768: { 8768: typedef QHash Hash; 8768: typename Hash::const_iterator i; 8768: friend class iterator; 8768: friend class QSet; 8768: 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: 8768: inline const_iterator() {} 8768: inline const_iterator(typename Hash::const_iterator o) : i(o) {} 8768: inline const_iterator(const const_iterator &o) : i(o.i) {} 8768: inline const_iterator(const iterator &o) 8768: : i(o.i) {} 8768: inline const_iterator &operator=(const const_iterator &o) { i = o.i; return *this; } 8768: inline const T &operator*() const { return i.key(); } 8768: inline const T *operator->() const { return &i.key(); } 8768: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8768: inline const_iterator &operator++() { ++i; return *this; } 8768: inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; } 8768: inline const_iterator &operator--() { --i; return *this; } 8768: inline const_iterator operator--(int) { const_iterator r = *this; --i; return r; } 8768: inline const_iterator operator+(int j) const { return i + j; } 8768: inline const_iterator operator-(int j) const { return i - j; } 8768: inline const_iterator &operator+=(int j) { i += j; return *this; } 8768: inline const_iterator &operator-=(int j) { i -= j; return *this; } 8768: }; 8768: 8768: 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: 8768: inline iterator begin() { return q_hash.begin(); } 8768: inline const_iterator begin() const noexcept { return q_hash.begin(); } 8768: inline const_iterator cbegin() const noexcept { return q_hash.begin(); } 8768: inline const_iterator constBegin() const noexcept { return q_hash.constBegin(); } 8768: inline iterator end() { return q_hash.end(); } 8768: inline const_iterator end() const noexcept { return q_hash.end(); } 8768: inline const_iterator cend() const noexcept { return q_hash.end(); } 8768: inline const_iterator constEnd() const noexcept { return q_hash.constEnd(); } 8768: 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8768: 8768: iterator erase(iterator i) 8768: { return erase(m2c(i)); } 8768: iterator erase(const_iterator i) 8768: { 8768: do { } while ((false) && (isValidIterator(i))); 8768: return q_hash.erase(reinterpret_cast(i)); 8768: } 8768: 8768: 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: inline int count() const { return q_hash.count(); } 8768: inline iterator insert(const T &value) 8768: { return static_cast(q_hash.insert(value, QHashDummyValue())); } 8768: iterator find(const T &value) { return q_hash.find(value); } 8768: const_iterator find(const T &value) const { return q_hash.find(value); } 8768: inline const_iterator constFind(const T &value) const { return find(value); } 8768: QSet &unite(const QSet &other); 8768: QSet &intersect(const QSet &other); 8768: bool intersects(const QSet &other) const; 8768: QSet &subtract(const QSet &other); 8768: 8768: 8768: typedef T key_type; 8768: typedef T value_type; 8768: typedef value_type *pointer; 8768: typedef const value_type *const_pointer; 8768: typedef value_type &reference; 8768: typedef const value_type &const_reference; 8768: typedef qptrdiff difference_type; 8768: typedef int size_type; 8768: 8768: inline bool empty() const { return isEmpty(); } 8768: 8768: inline QSet &operator<<(const T &value) { insert(value); return *this; } 8768: inline QSet &operator|=(const QSet &other) { unite(other); return *this; } 8768: inline QSet &operator|=(const T &value) { insert(value); return *this; } 8768: inline QSet &operator&=(const QSet &other) { intersect(other); return *this; } 8768: inline QSet &operator&=(const T &value) 8768: { QSet result; if (contains(value)) result.insert(value); return (*this = result); } 8768: inline QSet &operator+=(const QSet &other) { unite(other); return *this; } 8768: inline QSet &operator+=(const T &value) { insert(value); return *this; } 8768: inline QSet &operator-=(const QSet &other) { subtract(other); return *this; } 8768: inline QSet &operator-=(const T &value) { remove(value); return *this; } 8768: inline QSet operator|(const QSet &other) const 8768: { QSet result = *this; result |= other; return result; } 8768: inline QSet operator&(const QSet &other) const 8768: { QSet result = *this; result &= other; return result; } 8768: inline QSet operator+(const QSet &other) const 8768: { QSet result = *this; result += other; return result; } 8768: inline QSet operator-(const QSet &other) const 8768: { QSet result = *this; result -= other; return result; } 8768: 8768: QList toList() const; 8768: inline QList values() const { return toList(); } 8768: 8768: static QSet fromList(const QList &list); 8768: 8768: private: 8768: Hash q_hash; 8768: 8768: static const_iterator m2c(iterator it) noexcept 8768: { return const_iterator(typename Hash::const_iterator(it.i.i)); } 8768: 8768: bool isValidIterator(const iterator &i) const 8768: { 8768: return q_hash.isValidIterator(reinterpret_cast(i)); 8768: } 8768: bool isValidIterator(const const_iterator &i) const noexcept 8768: { 8768: return q_hash.isValidIterator(reinterpret_cast(i)); 8768: } 8768: }; 8768: 8768: template 8768: uint qHash(const QSet &key, uint seed = 0) 8768: noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed))) 8768: { 8768: return qHashRangeCommutative(key.begin(), key.end(), seed); 8768: } 8768: 8768: 8768: 8768: template 8768: inline void QSet::reserve(int asize) { q_hash.reserve(asize); } 8768: 8768: template 8768: inline QSet &QSet::unite(const QSet &other) 8768: { 8768: QSet copy(other); 8768: typename QSet::const_iterator i = copy.constEnd(); 8768: while (i != copy.constBegin()) { 8768: --i; 8768: insert(*i); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: inline QSet &QSet::intersect(const QSet &other) 8768: { 8768: QSet copy1; 8768: QSet copy2; 8768: if (size() <= other.size()) { 8768: copy1 = *this; 8768: copy2 = other; 8768: } else { 8768: copy1 = other; 8768: copy2 = *this; 8768: *this = copy1; 8768: } 8768: typename QSet::const_iterator i = copy1.constEnd(); 8768: while (i != copy1.constBegin()) { 8768: --i; 8768: if (!copy2.contains(*i)) 8768: remove(*i); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: inline bool QSet::intersects(const QSet &other) const 8768: { 8768: const bool otherIsBigger = other.size() > size(); 8768: const QSet &smallestSet = otherIsBigger ? *this : other; 8768: const QSet &biggestSet = otherIsBigger ? other : *this; 8768: const bool equalSeeds = q_hash.d->seed == other.q_hash.d->seed; 8768: typename QSet::const_iterator i = smallestSet.cbegin(); 8768: typename QSet::const_iterator e = smallestSet.cend(); 8768: 8768: if (__builtin_expect(!!(equalSeeds), true)) { 8768: 8768: while (i != e) { 8768: if (*biggestSet.q_hash.findNode(*i, i.i.i->h) != biggestSet.q_hash.e) 8768: return true; 8768: ++i; 8768: } 8768: } else { 8768: while (i != e) { 8768: if (biggestSet.contains(*i)) 8768: return true; 8768: ++i; 8768: } 8768: } 8768: 8768: return false; 8768: } 8768: 8768: template 8768: inline QSet &QSet::subtract(const QSet &other) 8768: { 8768: if (&other == this) { 8768: clear(); 8768: } else { 8768: auto i = other.constEnd(); 8768: while (i != other.constBegin()) { 8768: --i; 8768: remove(*i); 8768: } 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: inline bool QSet::contains(const QSet &other) const 8768: { 8768: typename QSet::const_iterator i = other.constBegin(); 8768: while (i != other.constEnd()) { 8768: if (!contains(*i)) 8768: return false; 8768: ++i; 8768: } 8768: return true; 8768: } 8768: 8768: template 8768: QList QSet::toList() const 8768: { 8768: QList result; 8768: result.reserve(size()); 8768: typename QSet::const_iterator i = constBegin(); 8768: while (i != constEnd()) { 8768: result.append(*i); 8768: ++i; 8768: } 8768: return result; 8768: } 8768: 8768: template 8768: QSet QList::toSet() const 8768: { 8768: QSet result; 8768: result.reserve(size()); 8768: for (int i = 0; i < size(); ++i) 8768: result.insert(at(i)); 8768: return result; 8768: } 8768: 8768: template 8768: QSet QSet::fromList(const QList &list) 8768: { 8768: return list.toSet(); 8768: } 8768: 8768: template 8768: QList QList::fromSet(const QSet &set) 8768: { 8768: return set.toList(); 8768: } 8768: 8768: 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; } }; 8768: 8768: template 8768: class QMutableSetIterator 8768: { 8768: typedef typename QSet::iterator iterator; 8768: QSet *c; 8768: iterator i, n; 8768: inline bool item_exists() const { return c->constEnd() != n; } 8768: 8768: public: 8768: inline QMutableSetIterator(QSet &container) 8768: : c(&container) 8768: { i = c->begin(); n = c->end(); } 8768: inline QMutableSetIterator &operator=(QSet &container) 8768: { c = &container; i = c->begin(); n = c->end(); return *this; } 8768: inline void toFront() { i = c->begin(); n = c->end(); } 8768: inline void toBack() { i = c->end(); n = i; } 8768: inline bool hasNext() const { return c->constEnd() != i; } 8768: inline const T &next() { n = i++; return *n; } 8768: inline const T &peekNext() const { return *i; } 8768: inline bool hasPrevious() const { return c->constBegin() != i; } 8768: inline const T &previous() { n = --i; return *n; } 8768: inline const T &peekPrevious() const { iterator p = i; return *--p; } 8768: inline void remove() 8768: { if (c->constEnd() != n) { i = c->erase(n); n = c->end(); } } 8768: inline const T &value() const { do { } while ((false) && (item_exists())); return *n; } 8768: inline bool findNext(const T &t) 8768: { while (c->constEnd() != (n = i)) if (*i++ == t) return true; return false; } 8768: inline bool findPrevious(const T &t) 8768: { while (c->constBegin() != i) if (*(n = --i) == t) return true; 8768: n = c->end(); return false; } 8768: }; 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSet" 2 3 4 8768: # 37 "/<>/templates/lib/node.h" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVector" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 1 3 4 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8768: # 1 "/usr/include/c++/8/stdlib.h" 1 3 4 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QRegion; 8768: 8768: template 8768: class QVector 8768: { 8768: typedef QTypedArrayData Data; 8768: Data *d; 8768: 8768: public: 8768: inline QVector() noexcept : d(Data::sharedNull()) { } 8768: explicit QVector(int size); 8768: QVector(int size, const T &t); 8768: inline QVector(const QVector &v); 8768: inline ~QVector() { if (!d->ref.deref()) freeData(d); } 8768: QVector &operator=(const QVector &v); 8768: 8768: QVector(QVector &&other) noexcept : d(other.d) { other.d = Data::sharedNull(); } 8768: QVector &operator=(QVector &&other) noexcept 8768: { QVector moved(std::move(other)); swap(moved); return *this; } 8768: 8768: void swap(QVector &other) noexcept { qSwap(d, other.d); } 8768: 8768: inline QVector(std::initializer_list args); 8768: 8768: bool operator==(const QVector &v) const; 8768: inline bool operator!=(const QVector &v) const { return !(*this == v); } 8768: 8768: inline int size() const { return d->size; } 8768: 8768: inline bool isEmpty() const { return d->size == 0; } 8768: 8768: void resize(int size); 8768: 8768: inline int capacity() const { return int(d->alloc); } 8768: void reserve(int size); 8768: inline void squeeze() 8768: { 8768: reallocData(d->size, d->size); 8768: if (d->capacityReserved) { 8768: 8768: 8768: d->capacityReserved = 0; 8768: } 8768: } 8768: 8768: inline void detach(); 8768: inline bool isDetached() const { return !d->ref.isShared(); } 8768: 8768: inline void setSharable(bool sharable) 8768: { 8768: if (sharable == d->ref.isSharable()) 8768: return; 8768: if (!sharable) 8768: detach(); 8768: 8768: if (d == Data::unsharableEmpty()) { 8768: if (sharable) 8768: d = Data::sharedNull(); 8768: } else { 8768: d->ref.setSharable(sharable); 8768: } 8768: do { } while ((false) && (d->ref.isSharable() == sharable)); 8768: } 8768: 8768: 8768: inline bool isSharedWith(const QVector &other) const { return d == other.d; } 8768: 8768: inline T *data() { detach(); return d->begin(); } 8768: inline const T *data() const { return d->begin(); } 8768: inline const T *constData() const { return d->begin(); } 8768: void clear(); 8768: 8768: const T &at(int i) const; 8768: T &operator[](int i); 8768: const T &operator[](int i) const; 8768: void append(const T &t); 8768: 8768: void append(T &&t); 8768: 8768: inline void append(const QVector &l) { *this += l; } 8768: void prepend(const T &t); 8768: void insert(int i, const T &t); 8768: void insert(int i, int n, const T &t); 8768: void replace(int i, const T &t); 8768: void remove(int i); 8768: void remove(int i, int n); 8768: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(d->begin()); } 8768: inline void removeLast(); 8768: inline T takeFirst() { do { } while ((false) && (!isEmpty())); T r = first(); removeFirst(); return r; } 8768: inline T takeLast() { do { } while ((false) && (!isEmpty())); T r = last(); removeLast(); return r; } 8768: 8768: QVector &fill(const T &t, int size = -1); 8768: 8768: int indexOf(const T &t, int from = 0) const; 8768: int lastIndexOf(const T &t, int from = -1) const; 8768: bool contains(const T &t) const; 8768: int count(const T &t) const; 8768: 8768: 8768: void removeAt(int i) { remove(i); } 8768: int removeAll(const T &t) 8768: { 8768: const const_iterator ce = this->cend(), cit = std::find(this->cbegin(), ce, t); 8768: if (cit == ce) 8768: return 0; 8768: 8768: const int firstFoundIdx = std::distance(this->cbegin(), cit); 8768: const iterator e = end(), it = std::remove(begin() + firstFoundIdx, e, t); 8768: const int result = std::distance(it, e); 8768: erase(it, e); 8768: return result; 8768: } 8768: bool removeOne(const T &t) 8768: { 8768: const int i = indexOf(t); 8768: if (i < 0) 8768: return false; 8768: remove(i); 8768: return true; 8768: } 8768: int length() const { return size(); } 8768: T takeAt(int i) { T t = at(i); remove(i); return t; } 8768: void move(int from, int to) 8768: { 8768: do { } while ((false) && (from >= 0 && from < size())); 8768: do { } while ((false) && (to >= 0 && to < size())); 8768: if (from == to) 8768: return; 8768: detach(); 8768: T * const b = d->begin(); 8768: if (from < to) 8768: std::rotate(b + from, b + from + 1, b + to + 1); 8768: else 8768: std::rotate(b + to, b + from, b + from + 1); 8768: } 8768: 8768: 8768: typedef typename Data::iterator iterator; 8768: typedef typename Data::const_iterator const_iterator; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: # 213 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8768: inline iterator begin(iterator = iterator()) { detach(); return d->begin(); } 8768: inline const_iterator begin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8768: inline const_iterator cbegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8768: inline const_iterator constBegin(const_iterator = const_iterator()) const noexcept { return d->constBegin(); } 8768: inline iterator end(iterator = iterator()) { detach(); return d->end(); } 8768: inline const_iterator end(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8768: inline const_iterator cend(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8768: inline const_iterator constEnd(const_iterator = const_iterator()) const noexcept { return d->constEnd(); } 8768: 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8768: iterator insert(iterator before, int n, const T &x); 8768: inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); } 8768: iterator erase(iterator begin, iterator end); 8768: inline iterator erase(iterator pos) { return erase(pos, pos+1); } 8768: 8768: 8768: inline int count() const { return d->size; } 8768: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline const T &first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline const T &constFirst() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline T& last() { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8768: inline const T &last() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8768: inline const T &constLast() const { do { } while ((false) && (!isEmpty())); return *(end()-1); } 8768: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8768: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8768: QVector mid(int pos, int len = -1) const; 8768: 8768: T value(int i) const; 8768: T value(int i, const T &defaultValue) const; 8768: 8768: 8768: typedef T value_type; 8768: typedef value_type* pointer; 8768: typedef const value_type* const_pointer; 8768: typedef value_type& reference; 8768: typedef const value_type& const_reference; 8768: typedef qptrdiff difference_type; 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: typedef int size_type; 8768: inline void push_back(const T &t) { append(t); } 8768: 8768: void push_back(T &&t) { append(std::move(t)); } 8768: 8768: inline void push_front(const T &t) { prepend(t); } 8768: void pop_back() { removeLast(); } 8768: void pop_front() { removeFirst(); } 8768: inline bool empty() const 8768: { return d->size == 0; } 8768: inline T& front() { return first(); } 8768: inline const_reference front() const { return first(); } 8768: inline reference back() { return last(); } 8768: inline const_reference back() const { return last(); } 8768: 8768: 8768: QVector &operator+=(const QVector &l); 8768: inline QVector operator+(const QVector &l) const 8768: { QVector n = *this; n += l; return n; } 8768: inline QVector &operator+=(const T &t) 8768: { append(t); return *this; } 8768: inline QVector &operator<< (const T &t) 8768: { append(t); return *this; } 8768: inline QVector &operator<<(const QVector &l) 8768: { *this += l; return *this; } 8768: 8768: QList toList() const; 8768: 8768: static QVector fromList(const QList &list); 8768: 8768: static inline QVector fromStdVector(const std::vector &vector) 8768: { QVector tmp; tmp.reserve(int(vector.size())); std::copy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } 8768: inline std::vector toStdVector() const 8768: { return std::vector(d->begin(), d->end()); } 8768: private: 8768: friend class QRegion; 8768: 8768: 8768: void reallocData(const int size, const int alloc, QArrayData::AllocationOptions options = QArrayData::Default); 8768: void reallocData(const int sz) { reallocData(sz, d->alloc); } 8768: void freeData(Data *d); 8768: void defaultConstruct(T *from, T *to); 8768: void copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom); 8768: void destruct(T *from, T *to); 8768: bool isValidIterator(const iterator &i) const 8768: { 8768: return (i <= d->end()) && (d->begin() <= i); 8768: } 8768: class AlignmentDummy { Data header; T array[1]; }; 8768: }; 8768: # 316 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8768: template 8768: void QVector::defaultConstruct(T *from, T *to) 8768: { 8768: if (QTypeInfo::isComplex) { 8768: while (from != to) { 8768: new (from++) T(); 8768: } 8768: } else { 8768: ::memset(static_cast(from), 0, (to - from) * sizeof(T)); 8768: } 8768: } 8768: 8768: template 8768: void QVector::copyConstruct(const T *srcFrom, const T *srcTo, T *dstFrom) 8768: { 8768: if (QTypeInfo::isComplex) { 8768: while (srcFrom != srcTo) 8768: new (dstFrom++) T(*srcFrom++); 8768: } else { 8768: ::memcpy(static_cast(dstFrom), static_cast(srcFrom), (srcTo - srcFrom) * sizeof(T)); 8768: } 8768: } 8768: 8768: template 8768: void QVector::destruct(T *from, T *to) 8768: { 8768: if (QTypeInfo::isComplex) { 8768: while (from != to) { 8768: from++->~T(); 8768: } 8768: } 8768: } 8768: 8768: template 8768: inline QVector::QVector(const QVector &v) 8768: { 8768: if (v.d->ref.ref()) { 8768: d = v.d; 8768: } else { 8768: if (v.d->capacityReserved) { 8768: d = Data::allocate(v.d->alloc); 8768: do { if (!(d)) qBadAlloc(); } while (false); 8768: d->capacityReserved = true; 8768: } else { 8768: d = Data::allocate(v.d->size); 8768: do { if (!(d)) qBadAlloc(); } while (false); 8768: } 8768: if (d->alloc) { 8768: copyConstruct(v.d->begin(), v.d->end(), d->begin()); 8768: d->size = v.d->size; 8768: } 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void QVector::detach() 8768: { 8768: if (!isDetached()) { 8768: 8768: if (!d->alloc) 8768: d = Data::unsharableEmpty(); 8768: else 8768: 8768: reallocData(d->size, int(d->alloc)); 8768: } 8768: do { } while ((false) && (isDetached())); 8768: } 8768: 8768: template 8768: void QVector::reserve(int asize) 8768: { 8768: if (asize > int(d->alloc)) 8768: reallocData(d->size, asize); 8768: if (isDetached() 8768: 8768: && d != Data::unsharableEmpty() 8768: 8768: ) 8768: d->capacityReserved = 1; 8768: do { } while ((false) && (capacity() >= asize)); 8768: } 8768: 8768: template 8768: void QVector::resize(int asize) 8768: { 8768: int newAlloc; 8768: const int oldAlloc = int(d->alloc); 8768: QArrayData::AllocationOptions opt; 8768: 8768: if (asize > oldAlloc) { 8768: newAlloc = asize; 8768: opt = QArrayData::Grow; 8768: } else { 8768: newAlloc = oldAlloc; 8768: } 8768: reallocData(asize, newAlloc, opt); 8768: } 8768: template 8768: inline void QVector::clear() 8768: { resize(0); } 8768: template 8768: inline const T &QVector::at(int i) const 8768: { do { } while ((false) && (i >= 0 && i < d->size)); 8768: return d->begin()[i]; } 8768: template 8768: inline const T &QVector::operator[](int i) const 8768: { do { } while ((false) && (i >= 0 && i < d->size)); 8768: return d->begin()[i]; } 8768: template 8768: inline T &QVector::operator[](int i) 8768: { do { } while ((false) && (i >= 0 && i < d->size)); 8768: return data()[i]; } 8768: template 8768: inline void QVector::insert(int i, const T &t) 8768: { do { } while ((false) && (i >= 0 && i <= d->size)); 8768: insert(begin() + i, 1, t); } 8768: template 8768: inline void QVector::insert(int i, int n, const T &t) 8768: { do { } while ((false) && (i >= 0 && i <= d->size)); 8768: insert(begin() + i, n, t); } 8768: template 8768: inline void QVector::remove(int i, int n) 8768: { do { } while ((false) && (i >= 0 && n >= 0 && i + n <= d->size)); 8768: erase(d->begin() + i, d->begin() + i + n); } 8768: template 8768: inline void QVector::remove(int i) 8768: { do { } while ((false) && (i >= 0 && i < d->size)); 8768: erase(d->begin() + i, d->begin() + i + 1); } 8768: template 8768: inline void QVector::prepend(const T &t) 8768: { insert(begin(), 1, t); } 8768: 8768: template 8768: inline void QVector::replace(int i, const T &t) 8768: { 8768: do { } while ((false) && (i >= 0 && i < d->size)); 8768: const T copy(t); 8768: data()[i] = copy; 8768: } 8768: 8768: template 8768: QVector &QVector::operator=(const QVector &v) 8768: { 8768: if (v.d != d) { 8768: QVector tmp(v); 8768: tmp.swap(*this); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: QVector::QVector(int asize) 8768: { 8768: do { } while ((false) && (asize >= 0)); 8768: if (__builtin_expect(!!(asize > 0), true)) { 8768: d = Data::allocate(asize); 8768: do { if (!(d)) qBadAlloc(); } while (false); 8768: d->size = asize; 8768: defaultConstruct(d->begin(), d->end()); 8768: } else { 8768: d = Data::sharedNull(); 8768: } 8768: } 8768: 8768: template 8768: QVector::QVector(int asize, const T &t) 8768: { 8768: do { } while ((false) && (asize >= 0)); 8768: if (asize > 0) { 8768: d = Data::allocate(asize); 8768: do { if (!(d)) qBadAlloc(); } while (false); 8768: d->size = asize; 8768: T* i = d->end(); 8768: while (i != d->begin()) 8768: new (--i) T(t); 8768: } else { 8768: d = Data::sharedNull(); 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: QVector::QVector(std::initializer_list args) 8768: { 8768: if (args.size() > 0) { 8768: d = Data::allocate(args.size()); 8768: do { if (!(d)) qBadAlloc(); } while (false); 8768: 8768: 8768: copyConstruct(args.begin(), args.end(), d->begin()); 8768: d->size = int(args.size()); 8768: } else { 8768: d = Data::sharedNull(); 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void QVector::freeData(Data *x) 8768: { 8768: destruct(x->begin(), x->end()); 8768: Data::deallocate(x); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: 8768: template 8768: void QVector::reallocData(const int asize, const int aalloc, QArrayData::AllocationOptions options) 8768: { 8768: do { } while ((false) && (asize >= 0 && asize <= aalloc)); 8768: Data *x = d; 8768: 8768: const bool isShared = d->ref.isShared(); 8768: 8768: if (aalloc != 0) { 8768: if (aalloc != int(d->alloc) || isShared) { 8768: try { 8768: 8768: x = Data::allocate(aalloc, options); 8768: do { if (!(x)) qBadAlloc(); } while (false); 8768: 8768: 8768: do { } while ((false) && (x->ref.isSharable() || options.testFlag(QArrayData::Unsharable))); 8768: 8768: do { } while ((false) && (!x->ref.isStatic())); 8768: x->size = asize; 8768: 8768: T *srcBegin = d->begin(); 8768: T *srcEnd = asize > d->size ? d->end() : d->begin() + asize; 8768: T *dst = x->begin(); 8768: 8768: if (!QTypeInfoQuery::isRelocatable || (isShared && QTypeInfo::isComplex)) { 8768: 8768: while (srcBegin != srcEnd) { 8768: new (dst++) T(*srcBegin++); 8768: } 8768: } else { 8768: ::memcpy(static_cast(dst), static_cast(srcBegin), (srcEnd - srcBegin) * sizeof(T)); 8768: dst += srcEnd - srcBegin; 8768: 8768: 8768: if (asize < d->size) 8768: destruct(d->begin() + asize, d->end()); 8768: } 8768: 8768: if (asize > d->size) { 8768: 8768: try { 8768: defaultConstruct(dst, x->end()); 8768: } catch (...) { 8768: 8768: destruct(x->begin(), dst); 8768: throw; 8768: } 8768: } 8768: } catch (...) { 8768: Data::deallocate(x); 8768: throw; 8768: } 8768: x->capacityReserved = d->capacityReserved; 8768: } else { 8768: do { } while ((false) && (int(d->alloc) == aalloc)); 8768: do { } while ((false) && (isDetached())); 8768: do { } while ((false) && (x == d)); 8768: if (asize <= d->size) { 8768: destruct(x->begin() + asize, x->end()); 8768: } else { 8768: defaultConstruct(x->end(), x->begin() + asize); 8768: } 8768: x->size = asize; 8768: } 8768: } else { 8768: x = Data::sharedNull(); 8768: } 8768: if (d != x) { 8768: if (!d->ref.deref()) { 8768: if (!QTypeInfoQuery::isRelocatable || !aalloc || (isShared && QTypeInfo::isComplex)) { 8768: 8768: 8768: freeData(d); 8768: } else { 8768: Data::deallocate(d); 8768: } 8768: } 8768: d = x; 8768: } 8768: 8768: do { } while ((false) && (d->data())); 8768: do { } while ((false) && (uint(d->size) <= d->alloc)); 8768: 8768: do { } while ((false) && (d != Data::unsharableEmpty())); 8768: 8768: do { } while ((false) && (aalloc ? d != Data::sharedNull() : d == Data::sharedNull())); 8768: do { } while ((false) && (d->alloc >= uint(aalloc))); 8768: do { } while ((false) && (d->size == asize)); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: template 8768: T QVector::value(int i) const 8768: { 8768: if (uint(i) >= uint(d->size)) { 8768: return T(); 8768: } 8768: return d->begin()[i]; 8768: } 8768: template 8768: T QVector::value(int i, const T &defaultValue) const 8768: { 8768: return uint(i) >= uint(d->size) ? defaultValue : d->begin()[i]; 8768: } 8768: 8768: template 8768: void QVector::append(const T &t) 8768: { 8768: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8768: if (!isDetached() || isTooSmall) { 8768: T copy(t); 8768: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8768: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8768: 8768: if (QTypeInfo::isComplex) 8768: new (d->end()) T(std::move(copy)); 8768: else 8768: *d->end() = std::move(copy); 8768: 8768: } else { 8768: if (QTypeInfo::isComplex) 8768: new (d->end()) T(t); 8768: else 8768: *d->end() = t; 8768: } 8768: ++d->size; 8768: } 8768: 8768: 8768: template 8768: void QVector::append(T &&t) 8768: { 8768: const bool isTooSmall = uint(d->size + 1) > d->alloc; 8768: if (!isDetached() || isTooSmall) { 8768: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8768: reallocData(d->size, isTooSmall ? d->size + 1 : d->alloc, opt); 8768: } 8768: 8768: new (d->end()) T(std::move(t)); 8768: 8768: ++d->size; 8768: } 8768: 8768: 8768: template 8768: void QVector::removeLast() 8768: { 8768: do { } while ((false) && (!isEmpty())); 8768: do { } while ((false) && (d->alloc)); 8768: 8768: if (!d->ref.isShared()) { 8768: --d->size; 8768: if (QTypeInfo::isComplex) 8768: (d->data() + d->size)->~T(); 8768: } else { 8768: reallocData(d->size - 1); 8768: } 8768: } 8768: 8768: template 8768: typename QVector::iterator QVector::insert(iterator before, size_type n, const T &t) 8768: { 8768: do { } while ((false) && (isValidIterator(before))); 8768: 8768: const auto offset = std::distance(d->begin(), before); 8768: if (n != 0) { 8768: const T copy(t); 8768: if (!isDetached() || d->size + n > int(d->alloc)) 8768: reallocData(d->size, d->size + n, QArrayData::Grow); 8768: if (!QTypeInfoQuery::isRelocatable) { 8768: T *b = d->end(); 8768: T *i = d->end() + n; 8768: while (i != b) 8768: new (--i) T; 8768: i = d->end(); 8768: T *j = i + n; 8768: b = d->begin() + offset; 8768: while (i != b) 8768: *--j = *--i; 8768: i = b+n; 8768: while (i != b) 8768: *--i = copy; 8768: } else { 8768: T *b = d->begin() + offset; 8768: T *i = b + n; 8768: memmove(i, b, (d->size - offset) * sizeof(T)); 8768: while (i != b) 8768: new (--i) T(copy); 8768: } 8768: d->size += n; 8768: } 8768: return d->begin() + offset; 8768: } 8768: 8768: template 8768: typename QVector::iterator QVector::erase(iterator abegin, iterator aend) 8768: { 8768: do { } while ((false) && (isValidIterator(abegin))); 8768: do { } while ((false) && (isValidIterator(aend))); 8768: 8768: const auto itemsToErase = aend - abegin; 8768: 8768: if (!itemsToErase) 8768: return abegin; 8768: 8768: do { } while ((false) && (abegin >= d->begin())); 8768: do { } while ((false) && (aend <= d->end())); 8768: do { } while ((false) && (abegin <= aend)); 8768: 8768: const auto itemsUntouched = abegin - d->begin(); 8768: 8768: 8768: 8768: 8768: if (d->alloc) { 8768: detach(); 8768: abegin = d->begin() + itemsUntouched; 8768: aend = abegin + itemsToErase; 8768: if (!QTypeInfoQuery::isRelocatable) { 8768: iterator moveBegin = abegin + itemsToErase; 8768: iterator moveEnd = d->end(); 8768: while (moveBegin != moveEnd) { 8768: if (QTypeInfo::isComplex) 8768: static_cast(abegin)->~T(); 8768: new (abegin++) T(*moveBegin++); 8768: } 8768: if (abegin < d->end()) { 8768: 8768: destruct(abegin, d->end()); 8768: } 8768: } else { 8768: destruct(abegin, aend); 8768: 8768: 8768: 8768: memmove(static_cast(abegin), static_cast(aend), 8768: (d->size - itemsToErase - itemsUntouched) * sizeof(T)); 8768: } 8768: d->size -= int(itemsToErase); 8768: } 8768: return d->begin() + itemsUntouched; 8768: } 8768: 8768: template 8768: bool QVector::operator==(const QVector &v) const 8768: { 8768: if (d == v.d) 8768: return true; 8768: if (d->size != v.d->size) 8768: return false; 8768: const T *vb = v.d->begin(); 8768: const T *b = d->begin(); 8768: const T *e = d->end(); 8768: return std::equal(b, e, (vb)); 8768: } 8768: 8768: template 8768: QVector &QVector::fill(const T &from, int asize) 8768: { 8768: const T copy(from); 8768: resize(asize < 0 ? d->size : asize); 8768: if (d->size) { 8768: T *i = d->end(); 8768: T *b = d->begin(); 8768: while (i != b) 8768: *--i = copy; 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: QVector &QVector::operator+=(const QVector &l) 8768: { 8768: if (d == Data::sharedNull()) { 8768: *this = l; 8768: } else { 8768: uint newSize = d->size + l.d->size; 8768: const bool isTooSmall = newSize > d->alloc; 8768: if (!isDetached() || isTooSmall) { 8768: QArrayData::AllocationOptions opt(isTooSmall ? QArrayData::Grow : QArrayData::Default); 8768: reallocData(d->size, isTooSmall ? newSize : d->alloc, opt); 8768: } 8768: 8768: if (d->alloc) { 8768: T *w = d->begin() + newSize; 8768: T *i = l.d->end(); 8768: T *b = l.d->begin(); 8768: while (i != b) { 8768: if (QTypeInfo::isComplex) 8768: new (--w) T(*--i); 8768: else 8768: *--w = *--i; 8768: } 8768: d->size = newSize; 8768: } 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: int QVector::indexOf(const T &t, int from) const 8768: { 8768: if (from < 0) 8768: from = qMax(from + d->size, 0); 8768: if (from < d->size) { 8768: T* n = d->begin() + from - 1; 8768: T* e = d->end(); 8768: while (++n != e) 8768: if (*n == t) 8768: return n - d->begin(); 8768: } 8768: return -1; 8768: } 8768: 8768: template 8768: int QVector::lastIndexOf(const T &t, int from) const 8768: { 8768: if (from < 0) 8768: from += d->size; 8768: else if (from >= d->size) 8768: from = d->size-1; 8768: if (from >= 0) { 8768: T* b = d->begin(); 8768: T* n = d->begin() + from + 1; 8768: while (n != b) { 8768: if (*--n == t) 8768: return n - b; 8768: } 8768: } 8768: return -1; 8768: } 8768: 8768: template 8768: bool QVector::contains(const T &t) const 8768: { 8768: const T *b = d->begin(); 8768: const T *e = d->end(); 8768: return std::find(b, e, t) != e; 8768: } 8768: 8768: template 8768: int QVector::count(const T &t) const 8768: { 8768: const T *b = d->begin(); 8768: const T *e = d->end(); 8768: return int(std::count(b, e, t)); 8768: } 8768: 8768: template 8768: QVector QVector::mid(int pos, int len) const 8768: { 8768: using namespace QtPrivate; 8768: switch (QContainerImplHelper::mid(d->size, &pos, &len)) { 8768: case QContainerImplHelper::Null: 8768: case QContainerImplHelper::Empty: 8768: return QVector(); 8768: case QContainerImplHelper::Full: 8768: return *this; 8768: case QContainerImplHelper::Subset: 8768: break; 8768: } 8768: 8768: QVector midResult; 8768: midResult.reallocData(0, len); 8768: T *srcFrom = d->begin() + pos; 8768: T *srcTo = d->begin() + pos + len; 8768: midResult.copyConstruct(srcFrom, srcTo, midResult.data()); 8768: midResult.d->size = len; 8768: return midResult; 8768: } 8768: 8768: template 8768: QList QVector::toList() const 8768: { 8768: QList result; 8768: result.reserve(size()); 8768: for (int i = 0; i < size(); ++i) 8768: result.append(at(i)); 8768: return result; 8768: } 8768: 8768: template 8768: QVector QList::toVector() const 8768: { 8768: QVector result(size()); 8768: for (int i = 0; i < size(); ++i) 8768: result[i] = at(i); 8768: return result; 8768: } 8768: 8768: template 8768: QVector QVector::fromList(const QList &list) 8768: { 8768: return list.toVector(); 8768: } 8768: 8768: template 8768: QList QList::fromVector(const QVector &vector) 8768: { 8768: return vector.toList(); 8768: } 8768: 8768: 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; } }; 8768: 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; } }; 8768: 8768: template 8768: uint qHash(const QVector &key, uint seed = 0) 8768: noexcept(noexcept(qHashRange(key.cbegin(), key.cend(), seed))) 8768: { 8768: return qHashRange(key.cbegin(), key.cend(), seed); 8768: } 8768: 8768: template 8768: bool operator<(const QVector &lhs, const QVector &rhs) 8768: noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()))) 8768: 8768: { 8768: return std::lexicographical_compare(lhs.begin(), lhs.end(), 8768: rhs.begin(), rhs.end()); 8768: } 8768: 8768: template 8768: inline bool operator>(const QVector &lhs, const QVector &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return rhs < lhs; 8768: } 8768: 8768: template 8768: inline bool operator<=(const QVector &lhs, const QVector &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return !(lhs > rhs); 8768: } 8768: 8768: template 8768: inline bool operator>=(const QVector &lhs, const QVector &rhs) 8768: noexcept(noexcept(lhs < rhs)) 8768: { 8768: return !(lhs < rhs); 8768: } 8768: # 1006 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVector" 2 3 4 8768: # 38 "/<>/templates/lib/node.h" 2 8768: 8768: 8768: # 39 "/<>/templates/lib/node.h" 8768: namespace Grantlee 8768: { 8768: 8768: class Engine; 8768: class NodeList; 8768: class TemplateImpl; 8768: 8768: class NodePrivate; 8768: # 82 "/<>/templates/lib/node.h" 8768: class __attribute__((visibility("default"))) Node : public QObject 8768: { 8768: 8768: # 84 "/<>/templates/lib/node.h" 3 4 8768: public: 8768: # 84 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic push 8768: # 84 "/<>/templates/lib/node.h" 8768: 8768: # 84 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 84 "/<>/templates/lib/node.h" 8768: 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: 8768: # 84 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 84 "/<>/templates/lib/node.h" 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 84 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic pop 8768: # 84 "/<>/templates/lib/node.h" 8768: struct QPrivateSignal {}; 8768: 8768: # 85 "/<>/templates/lib/node.h" 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: explicit Node(QObject *parent = 0); 8768: 8768: 8768: 8768: 8768: ~Node() override; 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual void render(OutputStream *stream, Context *c) const = 0; 8768: 8768: 8768: 8768: 8768: 8768: virtual bool mustBeFirst() 8768: { 8768: return false; 8768: } 8768: 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void streamValueInContext(OutputStream *stream, const QVariant &input, 8768: Grantlee::Context *c) const; 8768: 8768: 8768: 8768: 8768: TemplateImpl *containerTemplate() const; 8768: 8768: private: 8768: 8768: # 132 "/<>/templates/lib/node.h" 3 4 8768: inline 8768: # 132 "/<>/templates/lib/node.h" 8768: NodePrivate 8768: # 132 "/<>/templates/lib/node.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 132 "/<>/templates/lib/node.h" 8768: NodePrivate 8768: # 132 "/<>/templates/lib/node.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 132 "/<>/templates/lib/node.h" 8768: NodePrivate 8768: # 132 "/<>/templates/lib/node.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8768: NodePrivate 8768: # 132 "/<>/templates/lib/node.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 132 "/<>/templates/lib/node.h" 8768: NodePrivate 8768: # 132 "/<>/templates/lib/node.h" 3 4 8768: ; 8768: 8768: # 133 "/<>/templates/lib/node.h" 8768: NodePrivate *const d_ptr; 8768: }; 8768: # 154 "/<>/templates/lib/node.h" 8768: class __attribute__((visibility("default"))) NodeList : public QList 8768: { 8768: public: 8768: 8768: 8768: 8768: NodeList(); 8768: 8768: 8768: 8768: 8768: NodeList(const NodeList &list); 8768: 8768: NodeList &operator=(const NodeList &list); 8768: 8768: 8768: 8768: 8768: NodeList(const QList &list); 8768: 8768: 8768: 8768: 8768: ~NodeList(); 8768: 8768: 8768: 8768: 8768: void append(Grantlee::Node *node); 8768: 8768: 8768: 8768: 8768: void append(QList nodeList); 8768: 8768: 8768: 8768: 8768: bool containsNonText() const; 8768: 8768: 8768: 8768: 8768: template QList findChildren() 8768: { 8768: QList children; 8768: QList::const_iterator it; 8768: const QList::const_iterator first = constBegin(); 8768: const QList::const_iterator last = constEnd(); 8768: for (it = first; it != last; ++it) { 8768: T object = qobject_cast(*it); 8768: if (object) { 8768: children << object; 8768: } 8768: children << (*it)->findChildren(); 8768: } 8768: return children; 8768: } 8768: 8768: 8768: 8768: 8768: void render(OutputStream *stream, Context *c) const; 8768: 8768: private: 8768: bool m_containsNonText; 8768: }; 8768: 8768: class AbstractNodeFactoryPrivate; 8768: # 306 "/<>/templates/lib/node.h" 8768: class __attribute__((visibility("default"))) AbstractNodeFactory : public QObject 8768: { 8768: 8768: # 308 "/<>/templates/lib/node.h" 3 4 8768: public: 8768: # 308 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic push 8768: # 308 "/<>/templates/lib/node.h" 8768: 8768: # 308 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 308 "/<>/templates/lib/node.h" 8768: 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: 8768: # 308 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 308 "/<>/templates/lib/node.h" 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 308 "/<>/templates/lib/node.h" 8768: #pragma GCC diagnostic pop 8768: # 308 "/<>/templates/lib/node.h" 8768: struct QPrivateSignal {}; 8768: 8768: # 309 "/<>/templates/lib/node.h" 8768: public: 8768: 8768: 8768: 8768: 8768: 8768: explicit AbstractNodeFactory(QObject *parent = 0); 8768: 8768: 8768: 8768: 8768: ~AbstractNodeFactory() override; 8768: # 337 "/<>/templates/lib/node.h" 8768: virtual Node *getNode(const QString &tagContent, Parser *p) const = 0; 8768: # 346 "/<>/templates/lib/node.h" 8768: virtual void setEngine(Engine *) {} 8768: 8768: 8768: protected: 8768: # 365 "/<>/templates/lib/node.h" 8768: QStringList smartSplit(const QString &str) const; 8768: 8768: protected: 8768: 8768: 8768: 8768: 8768: 8768: 8768: QList getFilterExpressionList(const QStringList &list, 8768: Parser *p) const; 8768: 8768: private: 8768: 8768: # 378 "/<>/templates/lib/node.h" 3 4 8768: inline 8768: # 378 "/<>/templates/lib/node.h" 8768: AbstractNodeFactoryPrivate 8768: # 378 "/<>/templates/lib/node.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 378 "/<>/templates/lib/node.h" 8768: AbstractNodeFactoryPrivate 8768: # 378 "/<>/templates/lib/node.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 378 "/<>/templates/lib/node.h" 8768: AbstractNodeFactoryPrivate 8768: # 378 "/<>/templates/lib/node.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/node.h" 8768: AbstractNodeFactoryPrivate 8768: # 378 "/<>/templates/lib/node.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 378 "/<>/templates/lib/node.h" 8768: AbstractNodeFactoryPrivate 8768: # 378 "/<>/templates/lib/node.h" 3 4 8768: ; 8768: 8768: # 379 "/<>/templates/lib/node.h" 8768: AbstractNodeFactoryPrivate *const d_ptr; 8768: }; 8768: } 8768: # 27 "/<>/templates/lib/template.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8768: # 29 "/<>/templates/lib/template.h" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStringList" 2 3 4 8768: # 30 "/<>/templates/lib/template.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: class Context; 8768: class Engine; 8768: class TemplateImpl; 8768: class OutputStream; 8768: 8768: 8768: 8768: 8768: typedef QSharedPointer Template; 8768: 8768: 8768: class TemplatePrivate; 8768: # 94 "/<>/templates/lib/template.h" 8768: class __attribute__((visibility("default"))) TemplateImpl : public QObject 8768: { 8768: 8768: # 96 "/<>/templates/lib/template.h" 3 4 8768: public: 8768: # 96 "/<>/templates/lib/template.h" 8768: #pragma GCC diagnostic push 8768: # 96 "/<>/templates/lib/template.h" 8768: 8768: # 96 "/<>/templates/lib/template.h" 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 96 "/<>/templates/lib/template.h" 8768: 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: 8768: # 96 "/<>/templates/lib/template.h" 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 96 "/<>/templates/lib/template.h" 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 96 "/<>/templates/lib/template.h" 8768: #pragma GCC diagnostic pop 8768: # 96 "/<>/templates/lib/template.h" 8768: struct QPrivateSignal {}; 8768: 8768: # 97 "/<>/templates/lib/template.h" 8768: public: 8768: ~TemplateImpl() override; 8768: 8768: 8768: 8768: 8768: QString render(Context *c) const; 8768: 8768: 8768: 8768: 8768: OutputStream *render(OutputStream *stream, Context *c) const; 8768: 8768: 8768: 8768: 8768: 8768: NodeList nodeList() const; 8768: 8768: 8768: 8768: 8768: void setNodeList(const NodeList &list); 8768: 8768: 8768: 8768: 8768: 8768: Error error() const; 8768: 8768: 8768: 8768: 8768: QString errorString() const; 8768: 8768: 8768: 8768: 8768: Engine const *engine() const; 8768: 8768: 8768: protected: 8768: TemplateImpl(Engine const *engine, QObject *parent = 0); 8768: TemplateImpl(Engine const *engine, bool smartTrim, QObject *parent = 0); 8768: 8768: void setContent(const QString &templateString); 8768: 8768: 8768: private: 8768: 8768: 8768: 8768: using QObject::setParent; 8768: 8768: private: 8768: 8768: # 152 "/<>/templates/lib/template.h" 3 4 8768: inline 8768: # 152 "/<>/templates/lib/template.h" 8768: TemplatePrivate 8768: # 152 "/<>/templates/lib/template.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 152 "/<>/templates/lib/template.h" 8768: TemplatePrivate 8768: # 152 "/<>/templates/lib/template.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 152 "/<>/templates/lib/template.h" 8768: TemplatePrivate 8768: # 152 "/<>/templates/lib/template.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/template.h" 8768: TemplatePrivate 8768: # 152 "/<>/templates/lib/template.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 152 "/<>/templates/lib/template.h" 8768: TemplatePrivate 8768: # 152 "/<>/templates/lib/template.h" 3 4 8768: ; 8768: 8768: # 153 "/<>/templates/lib/template.h" 8768: TemplatePrivate *const d_ptr; 8768: 8768: friend class Engine; 8768: friend class Parser; 8768: 8768: }; 8768: } 8768: # 25 "/<>/templates/lib/engine.h" 2 8768: # 1 "/<>/templates/lib/templateloader.h" 1 8768: # 24 "/<>/templates/lib/templateloader.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/templateloader.h" 2 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QSharedPointer" 1 3 4 8768: # 28 "/<>/templates/lib/templateloader.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: 8768: class AbstractLocalizer; 8768: # 49 "/<>/templates/lib/templateloader.h" 8768: class __attribute__((visibility("default"))) AbstractTemplateLoader 8768: { 8768: public: 8768: 8768: 8768: 8768: virtual ~AbstractTemplateLoader(); 8768: 8768: 8768: 8768: 8768: 8768: 8768: virtual Template loadByName(const QString &name, 8768: Engine const *engine) const = 0; 8768: 8768: 8768: 8768: 8768: virtual QPair 8768: getMediaUri(const QString &fileName) const = 0; 8768: 8768: 8768: 8768: 8768: virtual bool canLoadTemplate(const QString &name) const = 0; 8768: }; 8768: 8768: 8768: 8768: class FileSystemTemplateLoaderPrivate; 8768: # 133 "/<>/templates/lib/templateloader.h" 8768: class __attribute__((visibility("default"))) FileSystemTemplateLoader 8768: : public AbstractTemplateLoader 8768: { 8768: public: 8768: 8768: 8768: 8768: FileSystemTemplateLoader(const QSharedPointer localizer 8768: = QSharedPointer()); 8768: 8768: 8768: 8768: 8768: ~FileSystemTemplateLoader() override; 8768: 8768: Template loadByName(const QString &name, Engine const *engine) const override; 8768: 8768: bool canLoadTemplate(const QString &name) const override; 8768: 8768: QPair getMediaUri(const QString &fileName) const override; 8768: 8768: 8768: 8768: 8768: void setTheme(const QString &themeName); 8768: 8768: 8768: 8768: 8768: QString themeName() const; 8768: 8768: 8768: 8768: 8768: void setTemplateDirs(const QStringList &dirs); 8768: 8768: 8768: 8768: 8768: QStringList templateDirs() const; 8768: 8768: private: 8768: 8768: # 175 "/<>/templates/lib/templateloader.h" 3 4 8768: inline 8768: # 175 "/<>/templates/lib/templateloader.h" 8768: FileSystemTemplateLoaderPrivate 8768: # 175 "/<>/templates/lib/templateloader.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 175 "/<>/templates/lib/templateloader.h" 8768: FileSystemTemplateLoaderPrivate 8768: # 175 "/<>/templates/lib/templateloader.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 175 "/<>/templates/lib/templateloader.h" 8768: FileSystemTemplateLoaderPrivate 8768: # 175 "/<>/templates/lib/templateloader.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/templateloader.h" 8768: FileSystemTemplateLoaderPrivate 8768: # 175 "/<>/templates/lib/templateloader.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 175 "/<>/templates/lib/templateloader.h" 8768: FileSystemTemplateLoaderPrivate 8768: # 175 "/<>/templates/lib/templateloader.h" 3 4 8768: ; 8768: 8768: # 176 "/<>/templates/lib/templateloader.h" 8768: FileSystemTemplateLoaderPrivate *const d_ptr; 8768: }; 8768: # 190 "/<>/templates/lib/templateloader.h" 8768: class __attribute__((visibility("default"))) InMemoryTemplateLoader 8768: : public AbstractTemplateLoader 8768: { 8768: public: 8768: InMemoryTemplateLoader(); 8768: ~InMemoryTemplateLoader() override; 8768: 8768: Template loadByName(const QString &name, Engine const *engine) const override; 8768: 8768: bool canLoadTemplate(const QString &name) const override; 8768: 8768: QPair getMediaUri(const QString &fileName) const override; 8768: # 217 "/<>/templates/lib/templateloader.h" 8768: void setTemplate(const QString &name, const QString &content); 8768: 8768: private: 8768: QHash m_namedTemplates; 8768: }; 8768: } 8768: # 26 "/<>/templates/lib/engine.h" 2 8768: 8768: namespace Grantlee 8768: { 8768: class TagLibraryInterface; 8768: 8768: class EnginePrivate; 8768: # 123 "/<>/templates/lib/engine.h" 8768: class __attribute__((visibility("default"))) Engine : public QObject 8768: { 8768: 8768: # 125 "/<>/templates/lib/engine.h" 3 4 8768: public: 8768: # 125 "/<>/templates/lib/engine.h" 8768: #pragma GCC diagnostic push 8768: # 125 "/<>/templates/lib/engine.h" 8768: 8768: # 125 "/<>/templates/lib/engine.h" 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 125 "/<>/templates/lib/engine.h" 8768: 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: 8768: # 125 "/<>/templates/lib/engine.h" 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 125 "/<>/templates/lib/engine.h" 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 125 "/<>/templates/lib/engine.h" 8768: #pragma GCC diagnostic pop 8768: # 125 "/<>/templates/lib/engine.h" 8768: struct QPrivateSignal {}; 8768: 8768: # 126 "/<>/templates/lib/engine.h" 8768: public: 8768: 8768: 8768: 8768: Engine(QObject *parent = 0); 8768: 8768: 8768: 8768: 8768: ~Engine() override; 8768: 8768: 8768: 8768: 8768: QList> templateLoaders(); 8768: 8768: 8768: 8768: 8768: void addTemplateLoader(QSharedPointer loader); 8768: # 155 "/<>/templates/lib/engine.h" 8768: void setPluginPaths(const QStringList &dirs); 8768: 8768: 8768: 8768: 8768: void addPluginPath(const QString &dir); 8768: 8768: 8768: 8768: 8768: void removePluginPath(const QString &dir); 8768: 8768: 8768: 8768: 8768: QStringList pluginPaths() const; 8768: # 185 "/<>/templates/lib/engine.h" 8768: QPair mediaUri(const QString &fileName) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: Template loadByName(const QString &name) const; 8768: # 202 "/<>/templates/lib/engine.h" 8768: Template newTemplate(const QString &content, const QString &name) const; 8768: 8768: 8768: 8768: 8768: QStringList defaultLibraries() const; 8768: 8768: 8768: 8768: 8768: 8768: void addDefaultLibrary(const QString &libName); 8768: 8768: 8768: 8768: 8768: 8768: 8768: void removeDefaultLibrary(const QString &libName); 8768: # 230 "/<>/templates/lib/engine.h" 8768: bool smartTrimEnabled() const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: void setSmartTrimEnabled(bool enabled); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: void loadDefaultLibraries(); 8768: # 255 "/<>/templates/lib/engine.h" 8768: TagLibraryInterface *loadLibrary(const QString &name); 8768: 8768: 8768: private: 8768: 8768: # 259 "/<>/templates/lib/engine.h" 3 4 8768: inline 8768: # 259 "/<>/templates/lib/engine.h" 8768: EnginePrivate 8768: # 259 "/<>/templates/lib/engine.h" 3 4 8768: * d_func() { return reinterpret_cast< 8768: # 259 "/<>/templates/lib/engine.h" 8768: EnginePrivate 8768: # 259 "/<>/templates/lib/engine.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } inline const 8768: # 259 "/<>/templates/lib/engine.h" 8768: EnginePrivate 8768: # 259 "/<>/templates/lib/engine.h" 3 4 8768: * d_func() const { return reinterpret_cast>/templates/lib/engine.h" 8768: EnginePrivate 8768: # 259 "/<>/templates/lib/engine.h" 3 4 8768: *>(qGetPtrHelper(d_ptr)); } friend class 8768: # 259 "/<>/templates/lib/engine.h" 8768: EnginePrivate 8768: # 259 "/<>/templates/lib/engine.h" 3 4 8768: ; 8768: 8768: # 260 "/<>/templates/lib/engine.h" 8768: EnginePrivate *const d_ptr; 8768: }; 8768: } 8768: # 24 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/tests/grantlee_paths.h" 1 8768: # 25 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/<>/templates/lib/metatype.h" 1 8768: # 25 "/<>/templates/lib/metatype.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 26 "/<>/templates/lib/metatype.h" 2 8768: 8768: # 1 "/<>/templates/lib/typeaccessor.h" 1 8768: # 24 "/<>/templates/lib/typeaccessor.h" 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/lib/grantlee_templates_export.h" 1 8768: # 25 "/<>/templates/lib/typeaccessor.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QObject" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QObject" 2 3 4 8768: # 27 "/<>/templates/lib/typeaccessor.h" 2 8768: 8768: 8768: 8768: namespace Grantlee 8768: { 8768: 8768: 8768: template struct TypeAccessor { 8768: static QVariant lookUp(const T object, const QString &property); 8768: }; 8768: 8768: template struct TypeAccessor { 8768: static QVariant lookUp(const T *const object, const QString &property); 8768: }; 8768: 8768: template struct TypeAccessor { 8768: static QVariant lookUp(const T &object, const QString &property); 8768: }; 8768: 8768: } 8768: # 28 "/<>/templates/lib/metatype.h" 2 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8768: # 30 "/<>/templates/lib/metatype.h" 2 8768: 8768: 8768: 8768: namespace Grantlee 8768: { 8768: # 52 "/<>/templates/lib/metatype.h" 8768: class __attribute__((visibility("default"))) MetaType 8768: { 8768: public: 8768: 8768: 8768: 8768: typedef QVariant (*LookupFunction)(const QVariant &, const QString &); 8768: 8768: 8768: 8768: 8768: static void registerLookUpOperator(int id, LookupFunction f); 8768: 8768: 8768: 8768: 8768: static void internalLock(); 8768: 8768: 8768: 8768: 8768: static void internalUnlock(); 8768: 8768: 8768: 8768: 8768: static QVariant lookup(const QVariant &object, const QString &property); 8768: 8768: 8768: 8768: 8768: static bool lookupAlreadyRegistered(int id); 8768: 8768: private: 8768: MetaType(); 8768: }; 8768: 8768: 8768: namespace 8768: { 8768: 8768: 8768: 8768: 8768: template struct LookupTrait { 8768: static QVariant doLookUp(const QVariant &object, const QString &property) 8768: { 8768: typedef typename Grantlee::TypeAccessor Accessor; 8768: return Accessor::lookUp(object.value(), property); 8768: } 8768: }; 8768: 8768: template 8768: struct LookupTrait { 8768: static QVariant doLookUp(const QVariant &object, const QString &property) 8768: { 8768: typedef typename Grantlee::TypeAccessor Accessor; 8768: return Accessor::lookUp(object.value(), property); 8768: } 8768: }; 8768: 8768: template static int doRegister(int id) 8768: { 8768: if (MetaType::lookupAlreadyRegistered(id)) 8768: return id; 8768: 8768: QVariant (*lf)(const QVariant &, const QString &) 8768: = LookupTrait::doLookUp; 8768: 8768: MetaType::registerLookUpOperator( 8768: id, reinterpret_cast(lf)); 8768: 8768: return id; 8768: } 8768: 8768: 8768: 8768: 8768: template struct InternalRegisterType { 8768: static int doReg() 8768: { 8768: const int id = qMetaTypeId(); 8768: return doRegister(id); 8768: } 8768: }; 8768: 8768: template 8768: struct InternalRegisterType { 8768: static int doReg() 8768: { 8768: const int id = qMetaTypeId(); 8768: return doRegister(id); 8768: } 8768: }; 8768: } 8768: # 184 "/<>/templates/lib/metatype.h" 8768: template int registerMetaType() 8768: { 8768: MetaType::internalLock(); 8768: 8768: const int id = InternalRegisterType::doReg(); 8768: 8768: MetaType::internalUnlock(); 8768: 8768: return id; 8768: } 8768: # 202 "/<>/templates/lib/metatype.h" 8768: template int registerMetaType() 8768: { 8768: return registerMetaType(); 8768: } 8768: 8768: 8768: } 8768: # 26 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/<>/templates/tests/test_macros.h" 1 8768: # 29 "/<>/templates/tests/test_macros.h" 8768: # 1 "/<>/templates/tests/qtunorderedmap.h" 1 8768: # 24 "/<>/templates/tests/qtunorderedmap.h" 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QHash" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qhash.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QHash" 2 3 4 8768: # 25 "/<>/templates/tests/qtunorderedmap.h" 2 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/tr1/unordered_map" 1 3 8768: # 32 "/usr/include/c++/8/tr1/unordered_map" 3 8768: 8768: # 33 "/usr/include/c++/8/tr1/unordered_map" 3 8768: 8768: 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/tr1/type_traits" 1 3 8768: # 32 "/usr/include/c++/8/tr1/type_traits" 3 8768: 8768: # 33 "/usr/include/c++/8/tr1/type_traits" 3 8768: 8768: 8768: 8768: 8768: # 36 "/usr/include/c++/8/tr1/type_traits" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace tr1 8768: { 8768: 8768: 8768: 8768: 8768: 8768: struct __sfinae_types 8768: { 8768: typedef char __one; 8768: typedef struct { char __arr[2]; } __two; 8768: }; 8768: # 70 "/usr/include/c++/8/tr1/type_traits" 3 8768: template 8768: struct integral_constant 8768: { 8768: static const _Tp value = __v; 8768: typedef _Tp value_type; 8768: typedef integral_constant<_Tp, __v> type; 8768: }; 8768: 8768: 8768: typedef integral_constant true_type; 8768: 8768: 8768: typedef integral_constant false_type; 8768: 8768: template 8768: const _Tp integral_constant<_Tp, __v>::value; 8768: 8768: 8768: template 8768: struct remove_cv; 8768: 8768: template 8768: struct __is_void_helper 8768: : public false_type { }; 8768: template<> struct __is_void_helper : public integral_constant { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct is_void 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: template 8768: struct __is_integral_helper 8768: : public false_type { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: template<> struct __is_integral_helper : public integral_constant { }; 8768: 8768: 8768: template 8768: struct is_integral 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: template 8768: struct __is_floating_point_helper 8768: : public false_type { }; 8768: template<> struct __is_floating_point_helper : public integral_constant { }; 8768: template<> struct __is_floating_point_helper : public integral_constant { }; 8768: template<> struct __is_floating_point_helper : public integral_constant { }; 8768: 8768: 8768: template 8768: struct is_floating_point 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_array 8768: : public false_type { }; 8768: 8768: template 8768: struct is_array<_Tp[_Size]> 8768: : public true_type { }; 8768: 8768: template 8768: struct is_array<_Tp[]> 8768: : public true_type { }; 8768: 8768: template 8768: struct __is_pointer_helper 8768: : public false_type { }; 8768: template struct __is_pointer_helper<_Tp*> : public integral_constant { }; 8768: 8768: 8768: template 8768: struct is_pointer 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_reference; 8768: 8768: 8768: template 8768: struct is_function; 8768: 8768: template 8768: struct __is_member_object_pointer_helper 8768: : public false_type { }; 8768: template struct __is_member_object_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8768: 8768: 8768: 8768: template 8768: struct is_member_object_pointer 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: template 8768: struct __is_member_function_pointer_helper 8768: : public false_type { }; 8768: template struct __is_member_function_pointer_helper<_Tp _Cp::*> : public integral_constant::value> { }; 8768: 8768: 8768: 8768: template 8768: struct is_member_function_pointer 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_enum 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_union 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_class 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_function 8768: : public false_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes...)> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes......)> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes...) const> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes......) const> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes...) volatile> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes......) volatile> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes...) const volatile> 8768: : public true_type { }; 8768: template 8768: struct is_function<_Res(_ArgTypes......) const volatile> 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct is_arithmetic 8768: : public integral_constant::value 8768: || is_floating_point<_Tp>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_fundamental 8768: : public integral_constant::value 8768: || is_void<_Tp>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_object 8768: : public integral_constant::value 8768: || is_reference<_Tp>::value 8768: || is_void<_Tp>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_member_pointer; 8768: 8768: 8768: template 8768: struct is_scalar 8768: : public integral_constant::value 8768: || is_enum<_Tp>::value 8768: || is_pointer<_Tp>::value 8768: || is_member_pointer<_Tp>::value)> 8768: { }; 8768: 8768: 8768: template 8768: struct is_compound 8768: : public integral_constant::value> { }; 8768: 8768: 8768: template 8768: struct __is_member_pointer_helper 8768: : public false_type { }; 8768: template struct __is_member_pointer_helper<_Tp _Cp::*> : public integral_constant { }; 8768: 8768: template 8768: struct is_member_pointer 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: 8768: 8768: template 8768: struct is_const 8768: : public false_type { }; 8768: 8768: template 8768: struct is_const<_Tp const> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_volatile 8768: : public false_type { }; 8768: 8768: template 8768: struct is_volatile<_Tp volatile> 8768: : public true_type { }; 8768: 8768: 8768: template 8768: struct is_empty 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_polymorphic 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct is_abstract 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct has_virtual_destructor 8768: : public integral_constant 8768: { }; 8768: 8768: 8768: template 8768: struct alignment_of 8768: : public integral_constant { }; 8768: 8768: 8768: template 8768: struct rank 8768: : public integral_constant { }; 8768: 8768: template 8768: struct rank<_Tp[_Size]> 8768: : public integral_constant::value> { }; 8768: 8768: template 8768: struct rank<_Tp[]> 8768: : public integral_constant::value> { }; 8768: 8768: 8768: template 8768: struct extent 8768: : public integral_constant { }; 8768: 8768: template 8768: struct extent<_Tp[_Size], _Uint> 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct extent<_Tp[], _Uint> 8768: : public integral_constant::value> 8768: { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct is_same 8768: : public false_type { }; 8768: 8768: template 8768: struct is_same<_Tp, _Tp> 8768: : public true_type { }; 8768: 8768: 8768: 8768: 8768: template 8768: struct remove_const 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_const<_Tp const> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template 8768: struct remove_volatile 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_volatile<_Tp volatile> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template 8768: struct remove_cv 8768: { 8768: typedef typename 8768: remove_const::type>::type type; 8768: }; 8768: 8768: 8768: template 8768: struct add_const 8768: { typedef _Tp const type; }; 8768: 8768: 8768: template 8768: struct add_volatile 8768: { typedef _Tp volatile type; }; 8768: 8768: 8768: template 8768: struct add_cv 8768: { 8768: typedef typename 8768: add_const::type>::type type; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct remove_extent 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_extent<_Tp[_Size]> 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_extent<_Tp[]> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template 8768: struct remove_all_extents 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_all_extents<_Tp[_Size]> 8768: { typedef typename remove_all_extents<_Tp>::type type; }; 8768: 8768: template 8768: struct remove_all_extents<_Tp[]> 8768: { typedef typename remove_all_extents<_Tp>::type type; }; 8768: 8768: 8768: 8768: template 8768: struct __remove_pointer_helper 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct __remove_pointer_helper<_Tp, _Up*> 8768: { typedef _Up type; }; 8768: 8768: 8768: template 8768: struct remove_pointer 8768: : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> 8768: { }; 8768: 8768: template 8768: struct remove_reference; 8768: 8768: 8768: template 8768: struct add_pointer 8768: { typedef typename remove_reference<_Tp>::type* type; }; 8768: 8768: template 8768: struct is_reference 8768: : public false_type { }; 8768: 8768: template 8768: struct is_reference<_Tp&> 8768: : public true_type { }; 8768: 8768: template 8768: struct is_pod 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_trivial_constructor 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_trivial_copy 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_trivial_assign 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_trivial_destructor 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_nothrow_constructor 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_nothrow_copy 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct has_nothrow_assign 8768: : public integral_constant::value> 8768: { }; 8768: 8768: template 8768: struct __is_signed_helper 8768: : public false_type { }; 8768: template<> struct __is_signed_helper : public integral_constant { }; 8768: template<> struct __is_signed_helper : public integral_constant { }; 8768: template<> struct __is_signed_helper : public integral_constant { }; 8768: template<> struct __is_signed_helper : public integral_constant { }; 8768: template<> struct __is_signed_helper : public integral_constant { }; 8768: 8768: template 8768: struct is_signed 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: template 8768: struct __is_unsigned_helper 8768: : public false_type { }; 8768: template<> struct __is_unsigned_helper : public integral_constant { }; 8768: template<> struct __is_unsigned_helper : public integral_constant { }; 8768: template<> struct __is_unsigned_helper : public integral_constant { }; 8768: template<> struct __is_unsigned_helper : public integral_constant { }; 8768: template<> struct __is_unsigned_helper : public integral_constant { }; 8768: 8768: template 8768: struct is_unsigned 8768: : public integral_constant::type>::value)> 8768: { }; 8768: 8768: template 8768: struct __is_base_of_helper 8768: { 8768: typedef typename remove_cv<_Base>::type _NoCv_Base; 8768: typedef typename remove_cv<_Derived>::type _NoCv_Derived; 8768: static const bool __value = (is_same<_Base, _Derived>::value 8768: || (__is_base_of(_Base, _Derived) 8768: && !is_same<_NoCv_Base, 8768: _NoCv_Derived>::value)); 8768: }; 8768: 8768: template 8768: struct is_base_of 8768: : public integral_constant::__value> 8768: { }; 8768: 8768: template 8768: struct __is_convertible_simple 8768: : public __sfinae_types 8768: { 8768: private: 8768: static __one __test(_To); 8768: static __two __test(...); 8768: static _From __makeFrom(); 8768: 8768: public: 8768: static const bool __value = sizeof(__test(__makeFrom())) == 1; 8768: }; 8768: 8768: template 8768: struct add_reference; 8768: 8768: template 8768: struct __is_int_or_cref 8768: { 8768: typedef typename remove_reference<_Tp>::type __rr_Tp; 8768: static const bool __value = (is_integral<_Tp>::value 8768: || (is_integral<__rr_Tp>::value 8768: && is_const<__rr_Tp>::value 8768: && !is_volatile<__rr_Tp>::value)); 8768: }; 8768: 8768: template::value || is_void<_To>::value 8768: || is_function<_To>::value || is_array<_To>::value 8768: 8768: || (is_floating_point::type>::value 8768: && __is_int_or_cref<_To>::__value))> 8768: struct __is_convertible_helper 8768: { 8768: 8768: static const bool __value = (__is_convertible_simple::type, _To>::__value); 8768: }; 8768: 8768: template 8768: struct __is_convertible_helper<_From, _To, true> 8768: { static const bool __value = (is_void<_To>::value 8768: || (__is_int_or_cref<_To>::__value 8768: && !is_void<_From>::value)); }; 8768: 8768: template 8768: struct is_convertible 8768: : public integral_constant::__value> 8768: { }; 8768: 8768: 8768: template 8768: struct remove_reference 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct remove_reference<_Tp&> 8768: { typedef _Tp type; }; 8768: 8768: 8768: template::value 8768: || is_reference<_Tp>::value)> 8768: struct __add_reference_helper 8768: { typedef _Tp& type; }; 8768: 8768: template 8768: struct __add_reference_helper<_Tp, true> 8768: { typedef _Tp type; }; 8768: 8768: template 8768: struct add_reference 8768: : public __add_reference_helper<_Tp> 8768: { }; 8768: 8768: 8768: template 8768: struct aligned_storage 8768: { 8768: union type 8768: { 8768: unsigned char __data[_Len]; 8768: struct __attribute__((__aligned__((_Align)))) { } __align; 8768: }; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: } 8768: 8768: 8768: } 8768: # 40 "/usr/include/c++/8/tr1/unordered_map" 2 3 8768: # 1 "/usr/include/c++/8/tr1/functional_hash.h" 1 3 8768: # 33 "/usr/include/c++/8/tr1/functional_hash.h" 3 8768: 8768: # 34 "/usr/include/c++/8/tr1/functional_hash.h" 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace tr1 8768: { 8768: 8768: 8768: 8768: template 8768: struct hash : public std::unary_function<_Tp, size_t> 8768: { 8768: size_t 8768: operator()(_Tp __val) const; 8768: }; 8768: 8768: 8768: template 8768: struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> 8768: { 8768: size_t 8768: operator()(_Tp* __p) const 8768: { return reinterpret_cast(__p); } 8768: }; 8768: # 67 "/usr/include/c++/8/tr1/functional_hash.h" 3 8768: template<> inline size_t hash::operator()(bool __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(char __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(signed char __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(unsigned char __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(wchar_t __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(short __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(int __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(long __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(long long __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(unsigned short __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(unsigned int __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(unsigned long __val) const { return static_cast(__val); }; 8768: template<> inline size_t hash::operator()(unsigned long long __val) const { return static_cast(__val); }; 8768: # 91 "/usr/include/c++/8/tr1/functional_hash.h" 3 8768: template 8768: struct _Fnv_hash_base 8768: { 8768: template 8768: static size_t 8768: hash(const _Tp* __ptr, size_t __clength) 8768: { 8768: size_t __result = 0; 8768: const char* __cptr = reinterpret_cast(__ptr); 8768: for (; __clength; --__clength) 8768: __result = (__result * 131) + *__cptr++; 8768: return __result; 8768: } 8768: }; 8768: 8768: template<> 8768: struct _Fnv_hash_base<4> 8768: { 8768: template 8768: static size_t 8768: hash(const _Tp* __ptr, size_t __clength) 8768: { 8768: size_t __result = static_cast(2166136261UL); 8768: const char* __cptr = reinterpret_cast(__ptr); 8768: for (; __clength; --__clength) 8768: { 8768: __result ^= static_cast(*__cptr++); 8768: __result *= static_cast(16777619UL); 8768: } 8768: return __result; 8768: } 8768: }; 8768: 8768: template<> 8768: struct _Fnv_hash_base<8> 8768: { 8768: template 8768: static size_t 8768: hash(const _Tp* __ptr, size_t __clength) 8768: { 8768: size_t __result 8768: = static_cast(14695981039346656037ULL); 8768: const char* __cptr = reinterpret_cast(__ptr); 8768: for (; __clength; --__clength) 8768: { 8768: __result ^= static_cast(*__cptr++); 8768: __result *= static_cast(1099511628211ULL); 8768: } 8768: return __result; 8768: } 8768: }; 8768: 8768: struct _Fnv_hash 8768: : public _Fnv_hash_base 8768: { 8768: using _Fnv_hash_base::hash; 8768: 8768: template 8768: static size_t 8768: hash(const _Tp& __val) 8768: { return hash(&__val, sizeof(__val)); } 8768: }; 8768: 8768: 8768: template<> 8768: inline size_t 8768: hash::operator()(float __val) const 8768: { 8768: 8768: return __val != 0.0f ? std::tr1::_Fnv_hash::hash(__val) : 0; 8768: } 8768: 8768: 8768: template<> 8768: inline size_t 8768: hash::operator()(double __val) const 8768: { 8768: 8768: return __val != 0.0 ? std::tr1::_Fnv_hash::hash(__val) : 0; 8768: } 8768: 8768: 8768: template<> 8768: __attribute__ ((__pure__)) size_t 8768: hash::operator()(long double __val) const; 8768: 8768: 8768: template<> 8768: __attribute__ ((__pure__)) size_t 8768: hash::operator()(string) const; 8768: 8768: template<> 8768: __attribute__ ((__pure__)) size_t 8768: hash::operator()(const string&) const; 8768: 8768: 8768: template<> 8768: __attribute__ ((__pure__)) size_t 8768: hash::operator()(wstring) const; 8768: 8768: template<> 8768: __attribute__ ((__pure__)) size_t 8768: hash::operator()(const wstring&) const; 8768: 8768: } 8768: 8768: 8768: } 8768: # 41 "/usr/include/c++/8/tr1/unordered_map" 2 3 8768: # 1 "/usr/include/c++/8/tr1/hashtable.h" 1 3 8768: # 34 "/usr/include/c++/8/tr1/hashtable.h" 3 8768: 8768: # 35 "/usr/include/c++/8/tr1/hashtable.h" 3 8768: 8768: # 1 "/usr/include/c++/8/tr1/hashtable_policy.h" 1 3 8768: # 31 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace tr1 8768: { 8768: namespace __detail 8768: { 8768: 8768: 8768: template 8768: inline typename std::iterator_traits<_Iterator>::difference_type 8768: __distance_fw(_Iterator __first, _Iterator __last, 8768: std::input_iterator_tag) 8768: { return 0; } 8768: 8768: template 8768: inline typename std::iterator_traits<_Iterator>::difference_type 8768: __distance_fw(_Iterator __first, _Iterator __last, 8768: std::forward_iterator_tag) 8768: { return std::distance(__first, __last); } 8768: 8768: template 8768: inline typename std::iterator_traits<_Iterator>::difference_type 8768: __distance_fw(_Iterator __first, _Iterator __last) 8768: { 8768: typedef typename std::iterator_traits<_Iterator>::iterator_category _Tag; 8768: return __distance_fw(__first, __last, _Tag()); 8768: } 8768: # 68 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8768: template 8768: struct _Hash_node; 8768: 8768: template 8768: struct _Hash_node<_Value, true> 8768: { 8768: _Value _M_v; 8768: std::size_t _M_hash_code; 8768: _Hash_node* _M_next; 8768: }; 8768: 8768: template 8768: struct _Hash_node<_Value, false> 8768: { 8768: _Value _M_v; 8768: _Hash_node* _M_next; 8768: }; 8768: 8768: 8768: 8768: template 8768: struct _Node_iterator_base 8768: { 8768: _Node_iterator_base(_Hash_node<_Value, __cache>* __p) 8768: : _M_cur(__p) { } 8768: 8768: void 8768: _M_incr() 8768: { _M_cur = _M_cur->_M_next; } 8768: 8768: _Hash_node<_Value, __cache>* _M_cur; 8768: }; 8768: 8768: template 8768: inline bool 8768: operator==(const _Node_iterator_base<_Value, __cache>& __x, 8768: const _Node_iterator_base<_Value, __cache>& __y) 8768: { return __x._M_cur == __y._M_cur; } 8768: 8768: template 8768: inline bool 8768: operator!=(const _Node_iterator_base<_Value, __cache>& __x, 8768: const _Node_iterator_base<_Value, __cache>& __y) 8768: { return __x._M_cur != __y._M_cur; } 8768: 8768: template 8768: struct _Node_iterator 8768: : public _Node_iterator_base<_Value, __cache> 8768: { 8768: typedef _Value value_type; 8768: typedef typename 8768: __gnu_cxx::__conditional_type<__constant_iterators, 8768: const _Value*, _Value*>::__type 8768: pointer; 8768: typedef typename 8768: __gnu_cxx::__conditional_type<__constant_iterators, 8768: const _Value&, _Value&>::__type 8768: reference; 8768: typedef std::ptrdiff_t difference_type; 8768: typedef std::forward_iterator_tag iterator_category; 8768: 8768: _Node_iterator() 8768: : _Node_iterator_base<_Value, __cache>(0) { } 8768: 8768: explicit 8768: _Node_iterator(_Hash_node<_Value, __cache>* __p) 8768: : _Node_iterator_base<_Value, __cache>(__p) { } 8768: 8768: reference 8768: operator*() const 8768: { return this->_M_cur->_M_v; } 8768: 8768: pointer 8768: operator->() const 8768: { return std::__addressof(this->_M_cur->_M_v); } 8768: 8768: _Node_iterator& 8768: operator++() 8768: { 8768: this->_M_incr(); 8768: return *this; 8768: } 8768: 8768: _Node_iterator 8768: operator++(int) 8768: { 8768: _Node_iterator __tmp(*this); 8768: this->_M_incr(); 8768: return __tmp; 8768: } 8768: }; 8768: 8768: template 8768: struct _Node_const_iterator 8768: : public _Node_iterator_base<_Value, __cache> 8768: { 8768: typedef _Value value_type; 8768: typedef const _Value* pointer; 8768: typedef const _Value& reference; 8768: typedef std::ptrdiff_t difference_type; 8768: typedef std::forward_iterator_tag iterator_category; 8768: 8768: _Node_const_iterator() 8768: : _Node_iterator_base<_Value, __cache>(0) { } 8768: 8768: explicit 8768: _Node_const_iterator(_Hash_node<_Value, __cache>* __p) 8768: : _Node_iterator_base<_Value, __cache>(__p) { } 8768: 8768: _Node_const_iterator(const _Node_iterator<_Value, __constant_iterators, 8768: __cache>& __x) 8768: : _Node_iterator_base<_Value, __cache>(__x._M_cur) { } 8768: 8768: reference 8768: operator*() const 8768: { return this->_M_cur->_M_v; } 8768: 8768: pointer 8768: operator->() const 8768: { return std::__addressof(this->_M_cur->_M_v); } 8768: 8768: _Node_const_iterator& 8768: operator++() 8768: { 8768: this->_M_incr(); 8768: return *this; 8768: } 8768: 8768: _Node_const_iterator 8768: operator++(int) 8768: { 8768: _Node_const_iterator __tmp(*this); 8768: this->_M_incr(); 8768: return __tmp; 8768: } 8768: }; 8768: 8768: template 8768: struct _Hashtable_iterator_base 8768: { 8768: _Hashtable_iterator_base(_Hash_node<_Value, __cache>* __node, 8768: _Hash_node<_Value, __cache>** __bucket) 8768: : _M_cur_node(__node), _M_cur_bucket(__bucket) { } 8768: 8768: void 8768: _M_incr() 8768: { 8768: _M_cur_node = _M_cur_node->_M_next; 8768: if (!_M_cur_node) 8768: _M_incr_bucket(); 8768: } 8768: 8768: void 8768: _M_incr_bucket(); 8768: 8768: _Hash_node<_Value, __cache>* _M_cur_node; 8768: _Hash_node<_Value, __cache>** _M_cur_bucket; 8768: }; 8768: 8768: 8768: 8768: template 8768: void 8768: _Hashtable_iterator_base<_Value, __cache>:: 8768: _M_incr_bucket() 8768: { 8768: ++_M_cur_bucket; 8768: 8768: 8768: while (!*_M_cur_bucket) 8768: ++_M_cur_bucket; 8768: _M_cur_node = *_M_cur_bucket; 8768: } 8768: 8768: template 8768: inline bool 8768: operator==(const _Hashtable_iterator_base<_Value, __cache>& __x, 8768: const _Hashtable_iterator_base<_Value, __cache>& __y) 8768: { return __x._M_cur_node == __y._M_cur_node; } 8768: 8768: template 8768: inline bool 8768: operator!=(const _Hashtable_iterator_base<_Value, __cache>& __x, 8768: const _Hashtable_iterator_base<_Value, __cache>& __y) 8768: { return __x._M_cur_node != __y._M_cur_node; } 8768: 8768: template 8768: struct _Hashtable_iterator 8768: : public _Hashtable_iterator_base<_Value, __cache> 8768: { 8768: typedef _Value value_type; 8768: typedef typename 8768: __gnu_cxx::__conditional_type<__constant_iterators, 8768: const _Value*, _Value*>::__type 8768: pointer; 8768: typedef typename 8768: __gnu_cxx::__conditional_type<__constant_iterators, 8768: const _Value&, _Value&>::__type 8768: reference; 8768: typedef std::ptrdiff_t difference_type; 8768: typedef std::forward_iterator_tag iterator_category; 8768: 8768: _Hashtable_iterator() 8768: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8768: 8768: _Hashtable_iterator(_Hash_node<_Value, __cache>* __p, 8768: _Hash_node<_Value, __cache>** __b) 8768: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8768: 8768: explicit 8768: _Hashtable_iterator(_Hash_node<_Value, __cache>** __b) 8768: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8768: 8768: reference 8768: operator*() const 8768: { return this->_M_cur_node->_M_v; } 8768: 8768: pointer 8768: operator->() const 8768: { return std::__addressof(this->_M_cur_node->_M_v); } 8768: 8768: _Hashtable_iterator& 8768: operator++() 8768: { 8768: this->_M_incr(); 8768: return *this; 8768: } 8768: 8768: _Hashtable_iterator 8768: operator++(int) 8768: { 8768: _Hashtable_iterator __tmp(*this); 8768: this->_M_incr(); 8768: return __tmp; 8768: } 8768: }; 8768: 8768: template 8768: struct _Hashtable_const_iterator 8768: : public _Hashtable_iterator_base<_Value, __cache> 8768: { 8768: typedef _Value value_type; 8768: typedef const _Value* pointer; 8768: typedef const _Value& reference; 8768: typedef std::ptrdiff_t difference_type; 8768: typedef std::forward_iterator_tag iterator_category; 8768: 8768: _Hashtable_const_iterator() 8768: : _Hashtable_iterator_base<_Value, __cache>(0, 0) { } 8768: 8768: _Hashtable_const_iterator(_Hash_node<_Value, __cache>* __p, 8768: _Hash_node<_Value, __cache>** __b) 8768: : _Hashtable_iterator_base<_Value, __cache>(__p, __b) { } 8768: 8768: explicit 8768: _Hashtable_const_iterator(_Hash_node<_Value, __cache>** __b) 8768: : _Hashtable_iterator_base<_Value, __cache>(*__b, __b) { } 8768: 8768: _Hashtable_const_iterator(const _Hashtable_iterator<_Value, 8768: __constant_iterators, __cache>& __x) 8768: : _Hashtable_iterator_base<_Value, __cache>(__x._M_cur_node, 8768: __x._M_cur_bucket) { } 8768: 8768: reference 8768: operator*() const 8768: { return this->_M_cur_node->_M_v; } 8768: 8768: pointer 8768: operator->() const 8768: { return std::__addressof(this->_M_cur_node->_M_v); } 8768: 8768: _Hashtable_const_iterator& 8768: operator++() 8768: { 8768: this->_M_incr(); 8768: return *this; 8768: } 8768: 8768: _Hashtable_const_iterator 8768: operator++(int) 8768: { 8768: _Hashtable_const_iterator __tmp(*this); 8768: this->_M_incr(); 8768: return __tmp; 8768: } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct _Mod_range_hashing 8768: { 8768: typedef std::size_t first_argument_type; 8768: typedef std::size_t second_argument_type; 8768: typedef std::size_t result_type; 8768: 8768: result_type 8768: operator()(first_argument_type __num, second_argument_type __den) const 8768: { return __num % __den; } 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: struct _Default_ranged_hash { }; 8768: 8768: 8768: 8768: struct _Prime_rehash_policy 8768: { 8768: _Prime_rehash_policy(float __z = 1.0) 8768: : _M_max_load_factor(__z), _M_growth_factor(2.f), _M_next_resize(0) { } 8768: 8768: float 8768: max_load_factor() const 8768: { return _M_max_load_factor; } 8768: 8768: 8768: std::size_t 8768: _M_next_bkt(std::size_t __n) const; 8768: 8768: 8768: std::size_t 8768: _M_bkt_for_elements(std::size_t __n) const; 8768: 8768: 8768: 8768: 8768: 8768: std::pair 8768: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8768: std::size_t __n_ins) const; 8768: 8768: enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 }; 8768: 8768: float _M_max_load_factor; 8768: float _M_growth_factor; 8768: mutable std::size_t _M_next_resize; 8768: }; 8768: 8768: extern const unsigned long __prime_list[]; 8768: 8768: 8768: 8768: 8768: 8768: inline std::size_t 8768: _Prime_rehash_policy:: 8768: _M_next_bkt(std::size_t __n) const 8768: { 8768: 8768: 8768: 8768: const unsigned long* __p 8768: = std::lower_bound(__prime_list, __prime_list + _S_n_primes - 1, __n); 8768: _M_next_resize = 8768: static_cast(__builtin_ceil(*__p * _M_max_load_factor)); 8768: return *__p; 8768: } 8768: 8768: 8768: 8768: inline std::size_t 8768: _Prime_rehash_policy:: 8768: _M_bkt_for_elements(std::size_t __n) const 8768: { 8768: const float __min_bkts = __n / _M_max_load_factor; 8768: return _M_next_bkt(__builtin_ceil(__min_bkts)); 8768: } 8768: # 452 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8768: inline std::pair 8768: _Prime_rehash_policy:: 8768: _M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt, 8768: std::size_t __n_ins) const 8768: { 8768: if (__n_elt + __n_ins > _M_next_resize) 8768: { 8768: float __min_bkts = ((float(__n_ins) + float(__n_elt)) 8768: / _M_max_load_factor); 8768: if (__min_bkts > __n_bkt) 8768: { 8768: __min_bkts = std::max(__min_bkts, _M_growth_factor * __n_bkt); 8768: return std::make_pair(true, 8768: _M_next_bkt(__builtin_ceil(__min_bkts))); 8768: } 8768: else 8768: { 8768: _M_next_resize = static_cast 8768: (__builtin_ceil(__n_bkt * _M_max_load_factor)); 8768: return std::make_pair(false, 0); 8768: } 8768: } 8768: else 8768: return std::make_pair(false, 0); 8768: } 8768: # 492 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8768: template 8768: struct _Map_base { }; 8768: 8768: template 8768: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, false, _Hashtable> 8768: { 8768: typedef typename _Pair::second_type mapped_type; 8768: }; 8768: 8768: template 8768: struct _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable> 8768: { 8768: typedef typename _Pair::second_type mapped_type; 8768: 8768: mapped_type& 8768: operator[](const _Key& __k); 8768: }; 8768: 8768: template 8768: typename _Map_base<_Key, _Pair, std::_Select1st<_Pair>, 8768: true, _Hashtable>::mapped_type& 8768: _Map_base<_Key, _Pair, std::_Select1st<_Pair>, true, _Hashtable>:: 8768: operator[](const _Key& __k) 8768: { 8768: _Hashtable* __h = static_cast<_Hashtable*>(this); 8768: typename _Hashtable::_Hash_code_type __code = __h->_M_hash_code(__k); 8768: std::size_t __n = __h->_M_bucket_index(__k, __code, 8768: __h->_M_bucket_count); 8768: 8768: typename _Hashtable::_Node* __p = 8768: __h->_M_find_node(__h->_M_buckets[__n], __k, __code); 8768: if (!__p) 8768: return __h->_M_insert_bucket(std::make_pair(__k, mapped_type()), 8768: __n, __code)->second; 8768: return (__p->_M_v).second; 8768: } 8768: 8768: 8768: 8768: template 8768: struct _Rehash_base { }; 8768: 8768: template 8768: struct _Rehash_base<_Prime_rehash_policy, _Hashtable> 8768: { 8768: float 8768: max_load_factor() const 8768: { 8768: const _Hashtable* __this = static_cast(this); 8768: return __this->__rehash_policy().max_load_factor(); 8768: } 8768: 8768: void 8768: max_load_factor(float __z) 8768: { 8768: _Hashtable* __this = static_cast<_Hashtable*>(this); 8768: __this->__rehash_policy(_Prime_rehash_policy(__z)); 8768: } 8768: }; 8768: # 565 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8768: template 8768: struct _Hash_code_base; 8768: 8768: 8768: 8768: template 8768: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8768: _Hash, false> 8768: { 8768: protected: 8768: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8768: const _H1&, const _H2&, const _Hash& __h) 8768: : _M_extract(__ex), _M_eq(__eq), _M_ranged_hash(__h) { } 8768: 8768: typedef void* _Hash_code_type; 8768: 8768: _Hash_code_type 8768: _M_hash_code(const _Key& __key) const 8768: { return 0; } 8768: 8768: std::size_t 8768: _M_bucket_index(const _Key& __k, _Hash_code_type, 8768: std::size_t __n) const 8768: { return _M_ranged_hash(__k, __n); } 8768: 8768: std::size_t 8768: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8768: std::size_t __n) const 8768: { return _M_ranged_hash(_M_extract(__p->_M_v), __n); } 8768: 8768: bool 8768: _M_compare(const _Key& __k, _Hash_code_type, 8768: _Hash_node<_Value, false>* __n) const 8768: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8768: 8768: void 8768: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8768: { } 8768: 8768: void 8768: _M_copy_code(_Hash_node<_Value, false>*, 8768: const _Hash_node<_Value, false>*) const 8768: { } 8768: 8768: void 8768: _M_swap(_Hash_code_base& __x) 8768: { 8768: std::swap(_M_extract, __x._M_extract); 8768: std::swap(_M_eq, __x._M_eq); 8768: std::swap(_M_ranged_hash, __x._M_ranged_hash); 8768: } 8768: 8768: protected: 8768: _ExtractKey _M_extract; 8768: _Equal _M_eq; 8768: _Hash _M_ranged_hash; 8768: }; 8768: # 636 "/usr/include/c++/8/tr1/hashtable_policy.h" 3 8768: template 8768: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8768: _Hash, true>; 8768: 8768: 8768: 8768: 8768: template 8768: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8768: _Default_ranged_hash, false> 8768: { 8768: typedef _H1 hasher; 8768: 8768: hasher 8768: hash_function() const 8768: { return _M_h1; } 8768: 8768: protected: 8768: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8768: const _H1& __h1, const _H2& __h2, 8768: const _Default_ranged_hash&) 8768: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8768: 8768: typedef std::size_t _Hash_code_type; 8768: 8768: _Hash_code_type 8768: _M_hash_code(const _Key& __k) const 8768: { return _M_h1(__k); } 8768: 8768: std::size_t 8768: _M_bucket_index(const _Key&, _Hash_code_type __c, 8768: std::size_t __n) const 8768: { return _M_h2(__c, __n); } 8768: 8768: std::size_t 8768: _M_bucket_index(const _Hash_node<_Value, false>* __p, 8768: std::size_t __n) const 8768: { return _M_h2(_M_h1(_M_extract(__p->_M_v)), __n); } 8768: 8768: bool 8768: _M_compare(const _Key& __k, _Hash_code_type, 8768: _Hash_node<_Value, false>* __n) const 8768: { return _M_eq(__k, _M_extract(__n->_M_v)); } 8768: 8768: void 8768: _M_store_code(_Hash_node<_Value, false>*, _Hash_code_type) const 8768: { } 8768: 8768: void 8768: _M_copy_code(_Hash_node<_Value, false>*, 8768: const _Hash_node<_Value, false>*) const 8768: { } 8768: 8768: void 8768: _M_swap(_Hash_code_base& __x) 8768: { 8768: std::swap(_M_extract, __x._M_extract); 8768: std::swap(_M_eq, __x._M_eq); 8768: std::swap(_M_h1, __x._M_h1); 8768: std::swap(_M_h2, __x._M_h2); 8768: } 8768: 8768: protected: 8768: _ExtractKey _M_extract; 8768: _Equal _M_eq; 8768: _H1 _M_h1; 8768: _H2 _M_h2; 8768: }; 8768: 8768: 8768: 8768: 8768: template 8768: struct _Hash_code_base<_Key, _Value, _ExtractKey, _Equal, _H1, _H2, 8768: _Default_ranged_hash, true> 8768: { 8768: typedef _H1 hasher; 8768: 8768: hasher 8768: hash_function() const 8768: { return _M_h1; } 8768: 8768: protected: 8768: _Hash_code_base(const _ExtractKey& __ex, const _Equal& __eq, 8768: const _H1& __h1, const _H2& __h2, 8768: const _Default_ranged_hash&) 8768: : _M_extract(__ex), _M_eq(__eq), _M_h1(__h1), _M_h2(__h2) { } 8768: 8768: typedef std::size_t _Hash_code_type; 8768: 8768: _Hash_code_type 8768: _M_hash_code(const _Key& __k) const 8768: { return _M_h1(__k); } 8768: 8768: std::size_t 8768: _M_bucket_index(const _Key&, _Hash_code_type __c, 8768: std::size_t __n) const 8768: { return _M_h2(__c, __n); } 8768: 8768: std::size_t 8768: _M_bucket_index(const _Hash_node<_Value, true>* __p, 8768: std::size_t __n) const 8768: { return _M_h2(__p->_M_hash_code, __n); } 8768: 8768: bool 8768: _M_compare(const _Key& __k, _Hash_code_type __c, 8768: _Hash_node<_Value, true>* __n) const 8768: { return __c == __n->_M_hash_code && _M_eq(__k, _M_extract(__n->_M_v)); } 8768: 8768: void 8768: _M_store_code(_Hash_node<_Value, true>* __n, _Hash_code_type __c) const 8768: { __n->_M_hash_code = __c; } 8768: 8768: void 8768: _M_copy_code(_Hash_node<_Value, true>* __to, 8768: const _Hash_node<_Value, true>* __from) const 8768: { __to->_M_hash_code = __from->_M_hash_code; } 8768: 8768: void 8768: _M_swap(_Hash_code_base& __x) 8768: { 8768: std::swap(_M_extract, __x._M_extract); 8768: std::swap(_M_eq, __x._M_eq); 8768: std::swap(_M_h1, __x._M_h1); 8768: std::swap(_M_h2, __x._M_h2); 8768: } 8768: 8768: protected: 8768: _ExtractKey _M_extract; 8768: _Equal _M_eq; 8768: _H1 _M_h1; 8768: _H2 _M_h2; 8768: }; 8768: } 8768: } 8768: 8768: 8768: } 8768: # 37 "/usr/include/c++/8/tr1/hashtable.h" 2 3 8768: 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace tr1 8768: { 8768: # 101 "/usr/include/c++/8/tr1/hashtable.h" 3 8768: template 8768: class _Hashtable 8768: : public __detail::_Rehash_base<_RehashPolicy, 8768: _Hashtable<_Key, _Value, _Allocator, 8768: _ExtractKey, 8768: _Equal, _H1, _H2, _Hash, 8768: _RehashPolicy, 8768: __cache_hash_code, 8768: __constant_iterators, 8768: __unique_keys> >, 8768: public __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, __cache_hash_code>, 8768: public __detail::_Map_base<_Key, _Value, _ExtractKey, __unique_keys, 8768: _Hashtable<_Key, _Value, _Allocator, 8768: _ExtractKey, 8768: _Equal, _H1, _H2, _Hash, 8768: _RehashPolicy, 8768: __cache_hash_code, 8768: __constant_iterators, 8768: __unique_keys> > 8768: { 8768: public: 8768: typedef _Allocator allocator_type; 8768: typedef _Value value_type; 8768: typedef _Key key_type; 8768: typedef _Equal key_equal; 8768: 8768: 8768: typedef typename _Allocator::difference_type difference_type; 8768: typedef typename _Allocator::size_type size_type; 8768: typedef typename _Allocator::pointer pointer; 8768: typedef typename _Allocator::const_pointer const_pointer; 8768: typedef typename _Allocator::reference reference; 8768: typedef typename _Allocator::const_reference const_reference; 8768: 8768: typedef __detail::_Node_iterator 8768: local_iterator; 8768: typedef __detail::_Node_const_iterator 8768: const_local_iterator; 8768: 8768: typedef __detail::_Hashtable_iterator 8768: iterator; 8768: typedef __detail::_Hashtable_const_iterator 8768: const_iterator; 8768: 8768: template 8768: friend struct __detail::_Map_base; 8768: 8768: private: 8768: typedef __detail::_Hash_node<_Value, __cache_hash_code> _Node; 8768: typedef typename _Allocator::template rebind<_Node>::other 8768: _Node_allocator_type; 8768: typedef typename _Allocator::template rebind<_Node*>::other 8768: _Bucket_allocator_type; 8768: 8768: typedef typename _Allocator::template rebind<_Value>::other 8768: _Value_allocator_type; 8768: 8768: _Node_allocator_type _M_node_allocator; 8768: _Node** _M_buckets; 8768: size_type _M_bucket_count; 8768: size_type _M_element_count; 8768: _RehashPolicy _M_rehash_policy; 8768: 8768: _Node* 8768: _M_allocate_node(const value_type& __v); 8768: 8768: void 8768: _M_deallocate_node(_Node* __n); 8768: 8768: void 8768: _M_deallocate_nodes(_Node**, size_type); 8768: 8768: _Node** 8768: _M_allocate_buckets(size_type __n); 8768: 8768: void 8768: _M_deallocate_buckets(_Node**, size_type __n); 8768: 8768: public: 8768: 8768: _Hashtable(size_type __bucket_hint, 8768: const _H1&, const _H2&, const _Hash&, 8768: const _Equal&, const _ExtractKey&, 8768: const allocator_type&); 8768: 8768: template 8768: _Hashtable(_InputIterator __first, _InputIterator __last, 8768: size_type __bucket_hint, 8768: const _H1&, const _H2&, const _Hash&, 8768: const _Equal&, const _ExtractKey&, 8768: const allocator_type&); 8768: 8768: _Hashtable(const _Hashtable&); 8768: 8768: _Hashtable& 8768: operator=(const _Hashtable&); 8768: 8768: ~_Hashtable(); 8768: 8768: void swap(_Hashtable&); 8768: 8768: 8768: iterator 8768: begin() 8768: { 8768: iterator __i(_M_buckets); 8768: if (!__i._M_cur_node) 8768: __i._M_incr_bucket(); 8768: return __i; 8768: } 8768: 8768: const_iterator 8768: begin() const 8768: { 8768: const_iterator __i(_M_buckets); 8768: if (!__i._M_cur_node) 8768: __i._M_incr_bucket(); 8768: return __i; 8768: } 8768: 8768: iterator 8768: end() 8768: { return iterator(_M_buckets + _M_bucket_count); } 8768: 8768: const_iterator 8768: end() const 8768: { return const_iterator(_M_buckets + _M_bucket_count); } 8768: 8768: size_type 8768: size() const 8768: { return _M_element_count; } 8768: 8768: bool 8768: empty() const 8768: { return size() == 0; } 8768: 8768: allocator_type 8768: get_allocator() const 8768: { return allocator_type(_M_node_allocator); } 8768: 8768: _Value_allocator_type 8768: _M_get_Value_allocator() const 8768: { return _Value_allocator_type(_M_node_allocator); } 8768: 8768: size_type 8768: max_size() const 8768: { return _M_node_allocator.max_size(); } 8768: 8768: 8768: key_equal 8768: key_eq() const 8768: { return this->_M_eq; } 8768: 8768: 8768: 8768: 8768: size_type 8768: bucket_count() const 8768: { return _M_bucket_count; } 8768: 8768: size_type 8768: max_bucket_count() const 8768: { return max_size(); } 8768: 8768: size_type 8768: bucket_size(size_type __n) const 8768: { return std::distance(begin(__n), end(__n)); } 8768: 8768: size_type 8768: bucket(const key_type& __k) const 8768: { 8768: return this->_M_bucket_index(__k, this->_M_hash_code(__k), 8768: bucket_count()); 8768: } 8768: 8768: local_iterator 8768: begin(size_type __n) 8768: { return local_iterator(_M_buckets[__n]); } 8768: 8768: local_iterator 8768: end(size_type) 8768: { return local_iterator(0); } 8768: 8768: const_local_iterator 8768: begin(size_type __n) const 8768: { return const_local_iterator(_M_buckets[__n]); } 8768: 8768: const_local_iterator 8768: end(size_type) const 8768: { return const_local_iterator(0); } 8768: 8768: float 8768: load_factor() const 8768: { 8768: return static_cast(size()) / static_cast(bucket_count()); 8768: } 8768: 8768: 8768: 8768: 8768: 8768: const _RehashPolicy& 8768: __rehash_policy() const 8768: { return _M_rehash_policy; } 8768: 8768: void 8768: __rehash_policy(const _RehashPolicy&); 8768: 8768: 8768: iterator 8768: find(const key_type& __k); 8768: 8768: const_iterator 8768: find(const key_type& __k) const; 8768: 8768: size_type 8768: count(const key_type& __k) const; 8768: 8768: std::pair 8768: equal_range(const key_type& __k); 8768: 8768: std::pair 8768: equal_range(const key_type& __k) const; 8768: 8768: private: 8768: 8768: 8768: 8768: 8768: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8768: std::pair, iterator>::__type 8768: _Insert_Return_Type; 8768: 8768: typedef typename __gnu_cxx::__conditional_type<__unique_keys, 8768: std::_Select1st<_Insert_Return_Type>, 8768: std::_Identity<_Insert_Return_Type> 8768: >::__type 8768: _Insert_Conv_Type; 8768: 8768: _Node* 8768: _M_find_node(_Node*, const key_type&, 8768: typename _Hashtable::_Hash_code_type) const; 8768: 8768: iterator 8768: _M_insert_bucket(const value_type&, size_type, 8768: typename _Hashtable::_Hash_code_type); 8768: 8768: std::pair 8768: _M_insert(const value_type&, std::tr1::true_type); 8768: 8768: iterator 8768: _M_insert(const value_type&, std::tr1::false_type); 8768: 8768: void 8768: _M_erase_node(_Node*, _Node**); 8768: 8768: public: 8768: 8768: _Insert_Return_Type 8768: insert(const value_type& __v) 8768: { return _M_insert(__v, std::tr1::integral_constant()); } 8768: 8768: iterator 8768: insert(iterator, const value_type& __v) 8768: { return iterator(_Insert_Conv_Type()(this->insert(__v))); } 8768: 8768: const_iterator 8768: insert(const_iterator, const value_type& __v) 8768: { return const_iterator(_Insert_Conv_Type()(this->insert(__v))); } 8768: 8768: template 8768: void 8768: insert(_InputIterator __first, _InputIterator __last); 8768: 8768: iterator 8768: erase(iterator); 8768: 8768: const_iterator 8768: erase(const_iterator); 8768: 8768: size_type 8768: erase(const key_type&); 8768: 8768: iterator 8768: erase(iterator, iterator); 8768: 8768: const_iterator 8768: erase(const_iterator, const_iterator); 8768: 8768: void 8768: clear(); 8768: 8768: 8768: void rehash(size_type __n); 8768: 8768: private: 8768: 8768: void _M_rehash(size_type __n); 8768: }; 8768: 8768: 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::_Node* 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_allocate_node(const value_type& __v) 8768: { 8768: _Node* __n = _M_node_allocator.allocate(1); 8768: try 8768: { 8768: _M_get_Value_allocator().construct(&__n->_M_v, __v); 8768: __n->_M_next = 0; 8768: return __n; 8768: } 8768: catch(...) 8768: { 8768: _M_node_allocator.deallocate(__n, 1); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_deallocate_node(_Node* __n) 8768: { 8768: _M_get_Value_allocator().destroy(&__n->_M_v); 8768: _M_node_allocator.deallocate(__n, 1); 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_deallocate_nodes(_Node** __array, size_type __n) 8768: { 8768: for (size_type __i = 0; __i < __n; ++__i) 8768: { 8768: _Node* __p = __array[__i]; 8768: while (__p) 8768: { 8768: _Node* __tmp = __p; 8768: __p = __p->_M_next; 8768: _M_deallocate_node(__tmp); 8768: } 8768: __array[__i] = 0; 8768: } 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::_Node** 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_allocate_buckets(size_type __n) 8768: { 8768: _Bucket_allocator_type __alloc(_M_node_allocator); 8768: 8768: 8768: 8768: _Node** __p = __alloc.allocate(__n + 1); 8768: std::fill(__p, __p + __n, (_Node*) 0); 8768: __p[__n] = reinterpret_cast<_Node*>(0x1000); 8768: return __p; 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_deallocate_buckets(_Node** __p, size_type __n) 8768: { 8768: _Bucket_allocator_type __alloc(_M_node_allocator); 8768: __alloc.deallocate(__p, __n + 1); 8768: } 8768: 8768: template 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _Hashtable(size_type __bucket_hint, 8768: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8768: const _Equal& __eq, const _ExtractKey& __exk, 8768: const allocator_type& __a) 8768: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8768: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, __chc>(__exk, __eq, 8768: __h1, __h2, __h), 8768: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8768: _M_node_allocator(__a), 8768: _M_bucket_count(0), 8768: _M_element_count(0), 8768: _M_rehash_policy() 8768: { 8768: _M_bucket_count = _M_rehash_policy._M_next_bkt(__bucket_hint); 8768: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8768: } 8768: 8768: template 8768: template 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _Hashtable(_InputIterator __f, _InputIterator __l, 8768: size_type __bucket_hint, 8768: const _H1& __h1, const _H2& __h2, const _Hash& __h, 8768: const _Equal& __eq, const _ExtractKey& __exk, 8768: const allocator_type& __a) 8768: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(), 8768: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, __chc>(__exk, __eq, 8768: __h1, __h2, __h), 8768: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(), 8768: _M_node_allocator(__a), 8768: _M_bucket_count(0), 8768: _M_element_count(0), 8768: _M_rehash_policy() 8768: { 8768: _M_bucket_count = std::max(_M_rehash_policy._M_next_bkt(__bucket_hint), 8768: _M_rehash_policy. 8768: _M_bkt_for_elements(__detail:: 8768: __distance_fw(__f, 8768: __l))); 8768: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8768: try 8768: { 8768: for (; __f != __l; ++__f) 8768: this->insert(*__f); 8768: } 8768: catch(...) 8768: { 8768: clear(); 8768: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _Hashtable(const _Hashtable& __ht) 8768: : __detail::_Rehash_base<_RehashPolicy, _Hashtable>(__ht), 8768: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, __chc>(__ht), 8768: __detail::_Map_base<_Key, _Value, _ExtractKey, __uk, _Hashtable>(__ht), 8768: _M_node_allocator(__ht._M_node_allocator), 8768: _M_bucket_count(__ht._M_bucket_count), 8768: _M_element_count(__ht._M_element_count), 8768: _M_rehash_policy(__ht._M_rehash_policy) 8768: { 8768: _M_buckets = _M_allocate_buckets(_M_bucket_count); 8768: try 8768: { 8768: for (size_type __i = 0; __i < __ht._M_bucket_count; ++__i) 8768: { 8768: _Node* __n = __ht._M_buckets[__i]; 8768: _Node** __tail = _M_buckets + __i; 8768: while (__n) 8768: { 8768: *__tail = _M_allocate_node(__n->_M_v); 8768: this->_M_copy_code(*__tail, __n); 8768: __tail = &((*__tail)->_M_next); 8768: __n = __n->_M_next; 8768: } 8768: } 8768: } 8768: catch(...) 8768: { 8768: clear(); 8768: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8768: throw; 8768: } 8768: } 8768: 8768: template 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>& 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: operator=(const _Hashtable& __ht) 8768: { 8768: _Hashtable __tmp(__ht); 8768: this->swap(__tmp); 8768: return *this; 8768: } 8768: 8768: template 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: ~_Hashtable() 8768: { 8768: clear(); 8768: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: swap(_Hashtable& __x) 8768: { 8768: 8768: 8768: 8768: __detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, __chc>::_M_swap(__x); 8768: 8768: 8768: 8768: std::__alloc_swap<_Node_allocator_type>::_S_do_it(_M_node_allocator, 8768: __x._M_node_allocator); 8768: 8768: std::swap(_M_rehash_policy, __x._M_rehash_policy); 8768: std::swap(_M_buckets, __x._M_buckets); 8768: std::swap(_M_bucket_count, __x._M_bucket_count); 8768: std::swap(_M_element_count, __x._M_element_count); 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: __rehash_policy(const _RehashPolicy& __pol) 8768: { 8768: _M_rehash_policy = __pol; 8768: size_type __n_bkt = __pol._M_bkt_for_elements(_M_element_count); 8768: if (__n_bkt > _M_bucket_count) 8768: _M_rehash(__n_bkt); 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: find(const key_type& __k) 8768: { 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8768: return __p ? iterator(__p, _M_buckets + __n) : this->end(); 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::const_iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: find(const key_type& __k) const 8768: { 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: _Node* __p = _M_find_node(_M_buckets[__n], __k, __code); 8768: return __p ? const_iterator(__p, _M_buckets + __n) : this->end(); 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::size_type 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: count(const key_type& __k) const 8768: { 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: std::size_t __result = 0; 8768: for (_Node* __p = _M_buckets[__n]; __p; __p = __p->_M_next) 8768: if (this->_M_compare(__k, __code, __p)) 8768: ++__result; 8768: return __result; 8768: } 8768: 8768: template 8768: std::pair::iterator, 8768: typename _Hashtable<_Key, _Value, _Allocator, 8768: _ExtractKey, _Equal, _H1, 8768: _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::iterator> 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: equal_range(const key_type& __k) 8768: { 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: _Node** __head = _M_buckets + __n; 8768: _Node* __p = _M_find_node(*__head, __k, __code); 8768: 8768: if (__p) 8768: { 8768: _Node* __p1 = __p->_M_next; 8768: for (; __p1; __p1 = __p1->_M_next) 8768: if (!this->_M_compare(__k, __code, __p1)) 8768: break; 8768: 8768: iterator __first(__p, __head); 8768: iterator __last(__p1, __head); 8768: if (!__p1) 8768: __last._M_incr_bucket(); 8768: return std::make_pair(__first, __last); 8768: } 8768: else 8768: return std::make_pair(this->end(), this->end()); 8768: } 8768: 8768: template 8768: std::pair::const_iterator, 8768: typename _Hashtable<_Key, _Value, _Allocator, 8768: _ExtractKey, _Equal, _H1, 8768: _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::const_iterator> 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: equal_range(const key_type& __k) const 8768: { 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: _Node** __head = _M_buckets + __n; 8768: _Node* __p = _M_find_node(*__head, __k, __code); 8768: 8768: if (__p) 8768: { 8768: _Node* __p1 = __p->_M_next; 8768: for (; __p1; __p1 = __p1->_M_next) 8768: if (!this->_M_compare(__k, __code, __p1)) 8768: break; 8768: 8768: const_iterator __first(__p, __head); 8768: const_iterator __last(__p1, __head); 8768: if (!__p1) 8768: __last._M_incr_bucket(); 8768: return std::make_pair(__first, __last); 8768: } 8768: else 8768: return std::make_pair(this->end(), this->end()); 8768: } 8768: 8768: 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, 8768: _Equal, _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::_Node* 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_find_node(_Node* __p, const key_type& __k, 8768: typename _Hashtable::_Hash_code_type __code) const 8768: { 8768: for (; __p; __p = __p->_M_next) 8768: if (this->_M_compare(__k, __code, __p)) 8768: return __p; 8768: return 0; 8768: } 8768: 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_insert_bucket(const value_type& __v, size_type __n, 8768: typename _Hashtable::_Hash_code_type __code) 8768: { 8768: std::pair __do_rehash 8768: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8768: _M_element_count, 1); 8768: 8768: 8768: 8768: _Node* __new_node = _M_allocate_node(__v); 8768: 8768: try 8768: { 8768: if (__do_rehash.first) 8768: { 8768: const key_type& __k = this->_M_extract(__v); 8768: __n = this->_M_bucket_index(__k, __code, __do_rehash.second); 8768: _M_rehash(__do_rehash.second); 8768: } 8768: 8768: __new_node->_M_next = _M_buckets[__n]; 8768: this->_M_store_code(__new_node, __code); 8768: _M_buckets[__n] = __new_node; 8768: ++_M_element_count; 8768: return iterator(__new_node, _M_buckets + __n); 8768: } 8768: catch(...) 8768: { 8768: _M_deallocate_node(__new_node); 8768: throw; 8768: } 8768: } 8768: 8768: 8768: template 8768: std::pair::iterator, bool> 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_insert(const value_type& __v, std::tr1::true_type) 8768: { 8768: const key_type& __k = this->_M_extract(__v); 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: 8768: if (_Node* __p = _M_find_node(_M_buckets[__n], __k, __code)) 8768: return std::make_pair(iterator(__p, _M_buckets + __n), false); 8768: return std::make_pair(_M_insert_bucket(__v, __n, __code), true); 8768: } 8768: 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_insert(const value_type& __v, std::tr1::false_type) 8768: { 8768: std::pair __do_rehash 8768: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8768: _M_element_count, 1); 8768: if (__do_rehash.first) 8768: _M_rehash(__do_rehash.second); 8768: 8768: const key_type& __k = this->_M_extract(__v); 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: size_type __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: 8768: 8768: _Node* __prev = _M_find_node(_M_buckets[__n], __k, __code); 8768: _Node* __new_node = _M_allocate_node(__v); 8768: 8768: if (__prev) 8768: { 8768: __new_node->_M_next = __prev->_M_next; 8768: __prev->_M_next = __new_node; 8768: } 8768: else 8768: { 8768: __new_node->_M_next = _M_buckets[__n]; 8768: _M_buckets[__n] = __new_node; 8768: } 8768: this->_M_store_code(__new_node, __code); 8768: 8768: ++_M_element_count; 8768: return iterator(__new_node, _M_buckets + __n); 8768: } 8768: 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_erase_node(_Node* __p, _Node** __b) 8768: { 8768: _Node* __cur = *__b; 8768: if (__cur == __p) 8768: *__b = __cur->_M_next; 8768: else 8768: { 8768: _Node* __next = __cur->_M_next; 8768: while (__next != __p) 8768: { 8768: __cur = __next; 8768: __next = __cur->_M_next; 8768: } 8768: __cur->_M_next = __next->_M_next; 8768: } 8768: 8768: _M_deallocate_node(__p); 8768: --_M_element_count; 8768: } 8768: 8768: template 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: insert(_InputIterator __first, _InputIterator __last) 8768: { 8768: size_type __n_elt = __detail::__distance_fw(__first, __last); 8768: std::pair __do_rehash 8768: = _M_rehash_policy._M_need_rehash(_M_bucket_count, 8768: _M_element_count, __n_elt); 8768: if (__do_rehash.first) 8768: _M_rehash(__do_rehash.second); 8768: 8768: for (; __first != __last; ++__first) 8768: this->insert(*__first); 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: erase(iterator __it) 8768: { 8768: iterator __result = __it; 8768: ++__result; 8768: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8768: return __result; 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::const_iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: erase(const_iterator __it) 8768: { 8768: const_iterator __result = __it; 8768: ++__result; 8768: _M_erase_node(__it._M_cur_node, __it._M_cur_bucket); 8768: return __result; 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::size_type 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: erase(const key_type& __k) 8768: { 8768: typename _Hashtable::_Hash_code_type __code = this->_M_hash_code(__k); 8768: std::size_t __n = this->_M_bucket_index(__k, __code, _M_bucket_count); 8768: size_type __result = 0; 8768: 8768: _Node** __slot = _M_buckets + __n; 8768: while (*__slot && !this->_M_compare(__k, __code, *__slot)) 8768: __slot = &((*__slot)->_M_next); 8768: 8768: _Node** __saved_slot = 0; 8768: while (*__slot && this->_M_compare(__k, __code, *__slot)) 8768: { 8768: 8768: 8768: 8768: if (&this->_M_extract((*__slot)->_M_v) != &__k) 8768: { 8768: _Node* __p = *__slot; 8768: *__slot = __p->_M_next; 8768: _M_deallocate_node(__p); 8768: --_M_element_count; 8768: ++__result; 8768: } 8768: else 8768: { 8768: __saved_slot = __slot; 8768: __slot = &((*__slot)->_M_next); 8768: } 8768: } 8768: 8768: if (__saved_slot) 8768: { 8768: _Node* __p = *__saved_slot; 8768: *__saved_slot = __p->_M_next; 8768: _M_deallocate_node(__p); 8768: --_M_element_count; 8768: ++__result; 8768: } 8768: 8768: return __result; 8768: } 8768: 8768: 8768: 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: erase(iterator __first, iterator __last) 8768: { 8768: while (__first != __last) 8768: __first = this->erase(__first); 8768: return __last; 8768: } 8768: 8768: template 8768: typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, 8768: __chc, __cit, __uk>::const_iterator 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: erase(const_iterator __first, const_iterator __last) 8768: { 8768: while (__first != __last) 8768: __first = this->erase(__first); 8768: return __last; 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: clear() 8768: { 8768: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8768: _M_element_count = 0; 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: rehash(size_type __n) 8768: { 8768: _M_rehash(std::max(_M_rehash_policy._M_next_bkt(__n), 8768: _M_rehash_policy._M_bkt_for_elements(_M_element_count 8768: + 1))); 8768: } 8768: 8768: template 8768: void 8768: _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, 8768: _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: 8768: _M_rehash(size_type __n) 8768: { 8768: _Node** __new_array = _M_allocate_buckets(__n); 8768: try 8768: { 8768: for (size_type __i = 0; __i < _M_bucket_count; ++__i) 8768: while (_Node* __p = _M_buckets[__i]) 8768: { 8768: std::size_t __new_index = this->_M_bucket_index(__p, __n); 8768: _M_buckets[__i] = __p->_M_next; 8768: __p->_M_next = __new_array[__new_index]; 8768: __new_array[__new_index] = __p; 8768: } 8768: _M_deallocate_buckets(_M_buckets, _M_bucket_count); 8768: _M_bucket_count = __n; 8768: _M_buckets = __new_array; 8768: } 8768: catch(...) 8768: { 8768: 8768: 8768: 8768: 8768: _M_deallocate_nodes(__new_array, __n); 8768: _M_deallocate_buckets(__new_array, __n); 8768: _M_deallocate_nodes(_M_buckets, _M_bucket_count); 8768: _M_element_count = 0; 8768: throw; 8768: } 8768: } 8768: } 8768: 8768: 8768: } 8768: # 42 "/usr/include/c++/8/tr1/unordered_map" 2 3 8768: # 1 "/usr/include/c++/8/tr1/unordered_map.h" 1 3 8768: # 30 "/usr/include/c++/8/tr1/unordered_map.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace tr1 8768: { 8768: 8768: 8768: template, 8768: class _Pred = std::equal_to<_Key>, 8768: class _Alloc = std::allocator >, 8768: bool __cache_hash_code = false> 8768: class __unordered_map 8768: : public _Hashtable<_Key, std::pair, _Alloc, 8768: std::_Select1st >, _Pred, 8768: _Hash, __detail::_Mod_range_hashing, 8768: __detail::_Default_ranged_hash, 8768: __detail::_Prime_rehash_policy, 8768: __cache_hash_code, false, true> 8768: { 8768: typedef _Hashtable<_Key, std::pair, _Alloc, 8768: std::_Select1st >, _Pred, 8768: _Hash, __detail::_Mod_range_hashing, 8768: __detail::_Default_ranged_hash, 8768: __detail::_Prime_rehash_policy, 8768: __cache_hash_code, false, true> 8768: _Base; 8768: 8768: public: 8768: typedef typename _Base::size_type size_type; 8768: typedef typename _Base::hasher hasher; 8768: typedef typename _Base::key_equal key_equal; 8768: typedef typename _Base::allocator_type allocator_type; 8768: 8768: explicit 8768: __unordered_map(size_type __n = 10, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8768: __detail::_Default_ranged_hash(), 8768: __eql, std::_Select1st >(), __a) 8768: { } 8768: 8768: template 8768: __unordered_map(_InputIterator __f, _InputIterator __l, 8768: size_type __n = 10, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8768: __detail::_Default_ranged_hash(), 8768: __eql, std::_Select1st >(), __a) 8768: { } 8768: }; 8768: 8768: template, 8768: class _Pred = std::equal_to<_Key>, 8768: class _Alloc = std::allocator >, 8768: bool __cache_hash_code = false> 8768: class __unordered_multimap 8768: : public _Hashtable<_Key, std::pair, 8768: _Alloc, 8768: std::_Select1st >, _Pred, 8768: _Hash, __detail::_Mod_range_hashing, 8768: __detail::_Default_ranged_hash, 8768: __detail::_Prime_rehash_policy, 8768: __cache_hash_code, false, false> 8768: { 8768: typedef _Hashtable<_Key, std::pair, 8768: _Alloc, 8768: std::_Select1st >, _Pred, 8768: _Hash, __detail::_Mod_range_hashing, 8768: __detail::_Default_ranged_hash, 8768: __detail::_Prime_rehash_policy, 8768: __cache_hash_code, false, false> 8768: _Base; 8768: 8768: public: 8768: typedef typename _Base::size_type size_type; 8768: typedef typename _Base::hasher hasher; 8768: typedef typename _Base::key_equal key_equal; 8768: typedef typename _Base::allocator_type allocator_type; 8768: 8768: explicit 8768: __unordered_multimap(size_type __n = 10, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__n, __hf, __detail::_Mod_range_hashing(), 8768: __detail::_Default_ranged_hash(), 8768: __eql, std::_Select1st >(), __a) 8768: { } 8768: 8768: 8768: template 8768: __unordered_multimap(_InputIterator __f, _InputIterator __l, 8768: typename _Base::size_type __n = 0, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(), 8768: __detail::_Default_ranged_hash(), 8768: __eql, std::_Select1st >(), __a) 8768: { } 8768: }; 8768: 8768: template 8768: inline void 8768: swap(__unordered_map<_Key, _Tp, _Hash, _Pred, 8768: _Alloc, __cache_hash_code>& __x, 8768: __unordered_map<_Key, _Tp, _Hash, _Pred, 8768: _Alloc, __cache_hash_code>& __y) 8768: { __x.swap(__y); } 8768: 8768: template 8768: inline void 8768: swap(__unordered_multimap<_Key, _Tp, _Hash, _Pred, 8768: _Alloc, __cache_hash_code>& __x, 8768: __unordered_multimap<_Key, _Tp, _Hash, _Pred, 8768: _Alloc, __cache_hash_code>& __y) 8768: { __x.swap(__y); } 8768: # 176 "/usr/include/c++/8/tr1/unordered_map.h" 3 8768: template, 8768: class _Pred = std::equal_to<_Key>, 8768: class _Alloc = std::allocator > > 8768: class unordered_map 8768: : public __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> 8768: { 8768: typedef __unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8768: 8768: public: 8768: typedef typename _Base::value_type value_type; 8768: typedef typename _Base::size_type size_type; 8768: typedef typename _Base::hasher hasher; 8768: typedef typename _Base::key_equal key_equal; 8768: typedef typename _Base::allocator_type allocator_type; 8768: 8768: explicit 8768: unordered_map(size_type __n = 10, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__n, __hf, __eql, __a) 8768: { } 8768: 8768: template 8768: unordered_map(_InputIterator __f, _InputIterator __l, 8768: size_type __n = 10, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__f, __l, __n, __hf, __eql, __a) 8768: { } 8768: }; 8768: # 228 "/usr/include/c++/8/tr1/unordered_map.h" 3 8768: template, 8768: class _Pred = std::equal_to<_Key>, 8768: class _Alloc = std::allocator > > 8768: class unordered_multimap 8768: : public __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> 8768: { 8768: typedef __unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc> _Base; 8768: 8768: public: 8768: typedef typename _Base::value_type value_type; 8768: typedef typename _Base::size_type size_type; 8768: typedef typename _Base::hasher hasher; 8768: typedef typename _Base::key_equal key_equal; 8768: typedef typename _Base::allocator_type allocator_type; 8768: 8768: explicit 8768: unordered_multimap(size_type __n = 10, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__n, __hf, __eql, __a) 8768: { } 8768: 8768: 8768: template 8768: unordered_multimap(_InputIterator __f, _InputIterator __l, 8768: typename _Base::size_type __n = 0, 8768: const hasher& __hf = hasher(), 8768: const key_equal& __eql = key_equal(), 8768: const allocator_type& __a = allocator_type()) 8768: : _Base(__f, __l, __n, __hf, __eql, __a) 8768: { } 8768: 8768: }; 8768: 8768: template 8768: inline void 8768: swap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8768: unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8768: { __x.swap(__y); } 8768: 8768: template 8768: inline void 8768: swap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, 8768: unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y) 8768: { __x.swap(__y); } 8768: } 8768: 8768: 8768: } 8768: # 43 "/usr/include/c++/8/tr1/unordered_map" 2 3 8768: # 30 "/<>/templates/tests/qtunorderedmap.h" 2 8768: 8768: 8768: 8768: # 32 "/<>/templates/tests/qtunorderedmap.h" 8768: template struct QtHasher { 8768: size_t operator()(Key k) const { return qHash(k); } 8768: }; 8768: 8768: template 8768: struct QtUnorderedMap 8768: : public std::tr1::unordered_map> { 8768: }; 8768: # 30 "/<>/templates/tests/test_macros.h" 2 8768: 8768: 8768: 8768: 8768: # 1 "/usr/include/c++/8/tr1/array" 1 3 8768: # 32 "/usr/include/c++/8/tr1/array" 3 8768: 8768: # 33 "/usr/include/c++/8/tr1/array" 3 8768: 8768: 8768: 8768: 8768: # 36 "/usr/include/c++/8/tr1/array" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: namespace tr1 8768: { 8768: # 56 "/usr/include/c++/8/tr1/array" 3 8768: template 8768: struct array 8768: { 8768: typedef _Tp value_type; 8768: typedef value_type& reference; 8768: typedef const value_type& const_reference; 8768: typedef value_type* iterator; 8768: typedef const value_type* const_iterator; 8768: typedef std::size_t size_type; 8768: typedef std::ptrdiff_t difference_type; 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: 8768: 8768: value_type _M_instance[_Nm ? _Nm : 1]; 8768: 8768: 8768: 8768: void 8768: assign(const value_type& __u) 8768: { std::fill_n(begin(), size(), __u); } 8768: 8768: void 8768: swap(array& __other) 8768: { std::swap_ranges(begin(), end(), __other.begin()); } 8768: 8768: 8768: iterator 8768: begin() 8768: { return iterator(std::__addressof(_M_instance[0])); } 8768: 8768: const_iterator 8768: begin() const 8768: { return const_iterator(std::__addressof(_M_instance[0])); } 8768: 8768: iterator 8768: end() 8768: { return iterator(std::__addressof(_M_instance[_Nm])); } 8768: 8768: const_iterator 8768: end() const 8768: { return const_iterator(std::__addressof(_M_instance[_Nm])); } 8768: 8768: reverse_iterator 8768: rbegin() 8768: { return reverse_iterator(end()); } 8768: 8768: const_reverse_iterator 8768: rbegin() const 8768: { return const_reverse_iterator(end()); } 8768: 8768: reverse_iterator 8768: rend() 8768: { return reverse_iterator(begin()); } 8768: 8768: const_reverse_iterator 8768: rend() const 8768: { return const_reverse_iterator(begin()); } 8768: 8768: 8768: size_type 8768: size() const { return _Nm; } 8768: 8768: size_type 8768: max_size() const { return _Nm; } 8768: 8768: bool 8768: empty() const { return size() == 0; } 8768: 8768: 8768: reference 8768: operator[](size_type __n) 8768: { return _M_instance[__n]; } 8768: 8768: const_reference 8768: operator[](size_type __n) const 8768: { return _M_instance[__n]; } 8768: 8768: reference 8768: at(size_type __n) 8768: { 8768: if (__n >= _Nm) 8768: std::__throw_out_of_range(("array::at")); 8768: return _M_instance[__n]; 8768: } 8768: 8768: const_reference 8768: at(size_type __n) const 8768: { 8768: if (__n >= _Nm) 8768: std::__throw_out_of_range(("array::at")); 8768: return _M_instance[__n]; 8768: } 8768: 8768: reference 8768: front() 8768: { return *begin(); } 8768: 8768: const_reference 8768: front() const 8768: { return *begin(); } 8768: 8768: reference 8768: back() 8768: { return _Nm ? *(end() - 1) : *end(); } 8768: 8768: const_reference 8768: back() const 8768: { return _Nm ? *(end() - 1) : *end(); } 8768: 8768: _Tp* 8768: data() 8768: { return std::__addressof(_M_instance[0]); } 8768: 8768: const _Tp* 8768: data() const 8768: { return std::__addressof(_M_instance[0]); } 8768: }; 8768: 8768: 8768: template 8768: inline bool 8768: operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return std::equal(__one.begin(), __one.end(), __two.begin()); } 8768: 8768: template 8768: inline bool 8768: operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return !(__one == __two); } 8768: 8768: template 8768: inline bool 8768: operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b) 8768: { 8768: return std::lexicographical_compare(__a.begin(), __a.end(), 8768: __b.begin(), __b.end()); 8768: } 8768: 8768: template 8768: inline bool 8768: operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return __two < __one; } 8768: 8768: template 8768: inline bool 8768: operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return !(__one > __two); } 8768: 8768: template 8768: inline bool 8768: operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two) 8768: { return !(__one < __two); } 8768: 8768: 8768: template 8768: inline void 8768: swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two) 8768: { __one.swap(__two); } 8768: 8768: 8768: 8768: 8768: template 8768: class tuple_size; 8768: 8768: 8768: template 8768: class tuple_element; 8768: 8768: template 8768: struct tuple_size > 8768: { static const int value = _Nm; }; 8768: 8768: template 8768: const int 8768: tuple_size >::value; 8768: 8768: template 8768: struct tuple_element<_Int, array<_Tp, _Nm> > 8768: { typedef _Tp type; }; 8768: 8768: template 8768: inline _Tp& 8768: get(array<_Tp, _Nm>& __arr) 8768: { return __arr[_Int]; } 8768: 8768: template 8768: inline const _Tp& 8768: get(const array<_Tp, _Nm>& __arr) 8768: { return __arr[_Int]; } 8768: } 8768: 8768: 8768: } 8768: # 35 "/<>/templates/tests/test_macros.h" 2 8768: 8768: 8768: 8768: # 37 "/<>/templates/tests/test_macros.h" 8768: template struct ThreeArray : public std::tr1::array { 8768: }; 8768: # 27 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: 8768: # 1 "/<>/templates/tests/coverageobject.h" 1 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QObject" 1 3 4 8768: # 4 "/<>/templates/tests/coverageobject.h" 2 8768: class CoverageObject : public QObject 8768: { 8768: 8768: # 6 "/<>/templates/tests/coverageobject.h" 3 4 8768: public: 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: #pragma GCC diagnostic push 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: 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: 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: #pragma GCC diagnostic pop 8768: # 6 "/<>/templates/tests/coverageobject.h" 8768: struct QPrivateSignal {}; 8768: 8768: # 7 "/<>/templates/tests/coverageobject.h" 8768: public: 8768: CoverageObject(QObject *p = 8768: # 8 "/<>/templates/tests/coverageobject.h" 3 4 8768: __null 8768: # 8 "/<>/templates/tests/coverageobject.h" 8768: ) : QObject(p) {} 8768: virtual void initTest() {} 8768: virtual void cleanupTest() {} 8768: protected : 8768: void init(); 8768: void cleanup(); 8768: 8768: private: 8768: void saveCoverageData(); 8768: QString generateTestName() const; 8768: }; 8768: # 29 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLinkedList" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlinkedlist.h" 1 3 4 8768: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlinkedlist.h" 3 4 8768: 8768: 8768: 8768: 8768: # 58 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qlinkedlist.h" 3 4 8768: struct __attribute__((visibility("default"))) QLinkedListData 8768: { 8768: QLinkedListData *n, *p; 8768: QtPrivate::RefCount ref; 8768: int size; 8768: uint sharable : 1; 8768: 8768: static const QLinkedListData shared_null; 8768: }; 8768: 8768: template 8768: struct QLinkedListNode 8768: { 8768: inline QLinkedListNode(const T &arg): t(arg) { } 8768: QLinkedListNode *n, *p; 8768: T t; 8768: }; 8768: 8768: template 8768: class QLinkedList 8768: { 8768: typedef QLinkedListNode Node; 8768: union { QLinkedListData *d; QLinkedListNode *e; }; 8768: 8768: public: 8768: inline QLinkedList() noexcept : d(const_cast(&QLinkedListData::shared_null)) { } 8768: inline QLinkedList(const QLinkedList &l) : d(l.d) { d->ref.ref(); if (!d->sharable) detach(); } 8768: 8768: inline QLinkedList(std::initializer_list list) 8768: : d(const_cast(&QLinkedListData::shared_null)) 8768: { 8768: std::copy(list.begin(), list.end(), std::back_inserter(*this)); 8768: } 8768: 8768: ~QLinkedList(); 8768: QLinkedList &operator=(const QLinkedList &); 8768: 8768: QLinkedList(QLinkedList &&other) noexcept 8768: : d(other.d) { other.d = const_cast(&QLinkedListData::shared_null); } 8768: QLinkedList &operator=(QLinkedList &&other) noexcept 8768: { QLinkedList moved(std::move(other)); swap(moved); return *this; } 8768: 8768: inline void swap(QLinkedList &other) noexcept { qSwap(d, other.d); } 8768: bool operator==(const QLinkedList &l) const; 8768: inline bool operator!=(const QLinkedList &l) const { return !(*this == l); } 8768: 8768: inline int size() const { return d->size; } 8768: inline void detach() 8768: { if (d->ref.isShared()) detach_helper2(this->e); } 8768: inline bool isDetached() const { return !d->ref.isShared(); } 8768: 8768: inline void setSharable(bool sharable) { if (!sharable) detach(); if (d != &QLinkedListData::shared_null) d->sharable = sharable; } 8768: 8768: inline bool isSharedWith(const QLinkedList &other) const { return d == other.d; } 8768: 8768: inline bool isEmpty() const { return d->size == 0; } 8768: 8768: void clear(); 8768: 8768: void append(const T &); 8768: void prepend(const T &); 8768: T takeFirst(); 8768: T takeLast(); 8768: int removeAll(const T &t); 8768: bool removeOne(const T &t); 8768: bool contains(const T &t) const; 8768: int count(const T &t) const; 8768: 8768: class const_iterator; 8768: 8768: class iterator 8768: { 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef T *pointer; 8768: typedef T &reference; 8768: Node *i; 8768: inline iterator() : i(nullptr) {} 8768: inline iterator(Node *n) : i(n) {} 8768: 8768: iterator(const iterator &other) noexcept : i(other.i) {} 8768: iterator &operator=(const iterator &other) noexcept { i = other.i; return *this; } 8768: iterator(iterator &&other) noexcept : i(other.i) {} 8768: iterator &operator=(iterator &&other) noexcept { return *this = other; } 8768: 8768: inline T &operator*() const { return i->t; } 8768: inline T *operator->() const { return &i->t; } 8768: inline bool operator==(const iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const iterator &o) const { return i != o.i; } 8768: inline bool operator==(const const_iterator &o) const 8768: { return i == o.i; } 8768: inline bool operator!=(const const_iterator &o) const 8768: { return i != o.i; } 8768: inline iterator &operator++() { i = i->n; return *this; } 8768: inline iterator operator++(int) { Node *n = i; i = i->n; return n; } 8768: inline iterator &operator--() { i = i->p; return *this; } 8768: inline iterator operator--(int) { Node *n = i; i = i->p; return n; } 8768: inline iterator operator+(int j) const 8768: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8768: inline iterator operator-(int j) const { return operator+(-j); } 8768: inline iterator &operator+=(int j) { return *this = *this + j; } 8768: inline iterator &operator-=(int j) { return *this = *this - j; } 8768: }; 8768: friend class iterator; 8768: 8768: class const_iterator 8768: { 8768: public: 8768: typedef std::bidirectional_iterator_tag iterator_category; 8768: typedef qptrdiff difference_type; 8768: typedef T value_type; 8768: typedef const T *pointer; 8768: typedef const T &reference; 8768: Node *i; 8768: inline const_iterator() : i(nullptr) {} 8768: inline const_iterator(Node *n) : i(n) {} 8768: inline const_iterator(iterator ci) : i(ci.i){} 8768: 8768: const_iterator(const const_iterator &other) noexcept : i(other.i) {} 8768: const_iterator &operator=(const const_iterator &other) noexcept { i = other.i; return *this; } 8768: const_iterator(const_iterator &&other) noexcept : i(other.i) {} 8768: const_iterator &operator=(const_iterator &&other) noexcept { return *this = other; } 8768: 8768: inline const T &operator*() const { return i->t; } 8768: inline const T *operator->() const { return &i->t; } 8768: inline bool operator==(const const_iterator &o) const { return i == o.i; } 8768: inline bool operator!=(const const_iterator &o) const { return i != o.i; } 8768: inline const_iterator &operator++() { i = i->n; return *this; } 8768: inline const_iterator operator++(int) { Node *n = i; i = i->n; return n; } 8768: inline const_iterator &operator--() { i = i->p; return *this; } 8768: inline const_iterator operator--(int) { Node *n = i; i = i->p; return n; } 8768: inline const_iterator operator+(int j) const 8768: { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; } 8768: inline const_iterator operator-(int j) const { return operator+(-j); } 8768: inline const_iterator &operator+=(int j) { return *this = *this + j; } 8768: inline const_iterator &operator-=(int j) { return *this = *this - j; } 8768: }; 8768: friend class const_iterator; 8768: 8768: 8768: typedef std::reverse_iterator reverse_iterator; 8768: typedef std::reverse_iterator const_reverse_iterator; 8768: 8768: inline iterator begin() { detach(); return e->n; } 8768: inline const_iterator begin() const noexcept { return e->n; } 8768: inline const_iterator cbegin() const noexcept { return e->n; } 8768: inline const_iterator constBegin() const noexcept { return e->n; } 8768: inline iterator end() { detach(); return e; } 8768: inline const_iterator end() const noexcept { return e; } 8768: inline const_iterator cend() const noexcept { return e; } 8768: inline const_iterator constEnd() const noexcept { return e; } 8768: 8768: reverse_iterator rbegin() { return reverse_iterator(end()); } 8768: reverse_iterator rend() { return reverse_iterator(begin()); } 8768: const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); } 8768: const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); } 8768: const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); } 8768: 8768: iterator insert(iterator before, const T &t); 8768: iterator erase(iterator pos); 8768: iterator erase(iterator first, iterator last); 8768: 8768: 8768: typedef iterator Iterator; 8768: typedef const_iterator ConstIterator; 8768: inline int count() const { return d->size; } 8768: inline T& first() { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: inline const T& first() const { do { } while ((false) && (!isEmpty())); return *begin(); } 8768: T& last() { do { } while ((false) && (!isEmpty())); return *(--end()); } 8768: const T& last() const { do { } while ((false) && (!isEmpty())); return *(--end()); } 8768: inline void removeFirst() { do { } while ((false) && (!isEmpty())); erase(begin()); } 8768: inline void removeLast() { do { } while ((false) && (!isEmpty())); erase(--end()); } 8768: inline bool startsWith(const T &t) const { return !isEmpty() && first() == t; } 8768: inline bool endsWith(const T &t) const { return !isEmpty() && last() == t; } 8768: 8768: 8768: inline void push_back(const T &t) { append(t); } 8768: inline void push_front(const T &t) { prepend(t); } 8768: inline T& front() { return first(); } 8768: inline const T& front() const { return first(); } 8768: inline T& back() { return last(); } 8768: inline const T& back() const { return last(); } 8768: inline void pop_front() { removeFirst(); } 8768: inline void pop_back() { removeLast(); } 8768: inline bool empty() const { return isEmpty(); } 8768: typedef int size_type; 8768: typedef T value_type; 8768: typedef value_type *pointer; 8768: typedef const value_type *const_pointer; 8768: typedef value_type &reference; 8768: typedef const value_type &const_reference; 8768: typedef qptrdiff difference_type; 8768: 8768: static inline QLinkedList fromStdList(const std::list &list) 8768: { QLinkedList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } 8768: inline std::list toStdList() const 8768: { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } 8768: 8768: 8768: QLinkedList &operator+=(const QLinkedList &l); 8768: QLinkedList operator+(const QLinkedList &l) const; 8768: inline QLinkedList &operator+=(const T &t) { append(t); return *this; } 8768: inline QLinkedList &operator<< (const T &t) { append(t); return *this; } 8768: inline QLinkedList &operator<<(const QLinkedList &l) { *this += l; return *this; } 8768: 8768: private: 8768: void detach_helper(); 8768: iterator detach_helper2(iterator); 8768: void freeData(QLinkedListData*); 8768: }; 8768: 8768: template 8768: inline QLinkedList::~QLinkedList() 8768: { 8768: if (!d->ref.deref()) 8768: freeData(d); 8768: } 8768: 8768: template 8768: void QLinkedList::detach_helper() 8768: { 8768: detach_helper2(this->e); 8768: } 8768: 8768: template 8768: typename QLinkedList::iterator QLinkedList::detach_helper2(iterator orgite) 8768: { 8768: 8768: bool isEndIterator = (orgite.i == this->e); 8768: union { QLinkedListData *d; Node *e; } x; 8768: x.d = new QLinkedListData; 8768: x.d->ref.initializeOwned(); 8768: x.d->size = d->size; 8768: x.d->sharable = true; 8768: Node *original = e->n; 8768: Node *copy = x.e; 8768: Node *org = orgite.i; 8768: 8768: while (original != org) { 8768: try { 8768: copy->n = new Node(original->t); 8768: copy->n->p = copy; 8768: original = original->n; 8768: copy = copy->n; 8768: } catch (...) { 8768: copy->n = x.e; 8768: do { } while ((false) && (!x.d->ref.deref())); 8768: freeData(x.d); 8768: throw; 8768: } 8768: } 8768: iterator r(copy); 8768: while (original != e) { 8768: try { 8768: copy->n = new Node(original->t); 8768: copy->n->p = copy; 8768: original = original->n; 8768: copy = copy->n; 8768: } catch (...) { 8768: copy->n = x.e; 8768: do { } while ((false) && (!x.d->ref.deref())); 8768: freeData(x.d); 8768: throw; 8768: } 8768: } 8768: copy->n = x.e; 8768: x.e->p = copy; 8768: if (!d->ref.deref()) 8768: freeData(d); 8768: d = x.d; 8768: if (!isEndIterator) 8768: ++r; 8768: return r; 8768: } 8768: 8768: template 8768: void QLinkedList::freeData(QLinkedListData *x) 8768: { 8768: Node *y = reinterpret_cast(x); 8768: Node *i = y->n; 8768: do { } while ((false) && (x->ref.atomic.load() == 0)); 8768: while (i != y) { 8768: Node *n = i; 8768: i = i->n; 8768: delete n; 8768: } 8768: delete x; 8768: } 8768: 8768: template 8768: void QLinkedList::clear() 8768: { 8768: *this = QLinkedList(); 8768: } 8768: 8768: template 8768: QLinkedList &QLinkedList::operator=(const QLinkedList &l) 8768: { 8768: if (d != l.d) { 8768: QLinkedListData *o = l.d; 8768: o->ref.ref(); 8768: if (!d->ref.deref()) 8768: freeData(d); 8768: d = o; 8768: if (!d->sharable) 8768: detach_helper(); 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: bool QLinkedList::operator== (const QLinkedList &l) const 8768: { 8768: if (d->size != l.d->size) 8768: return false; 8768: if (e == l.e) 8768: return true; 8768: Node *i = e->n; 8768: Node *il = l.e->n; 8768: while (i != e) { 8768: if (! (i->t == il->t)) 8768: return false; 8768: i = i->n; 8768: il = il->n; 8768: } 8768: return true; 8768: } 8768: 8768: template 8768: void QLinkedList::append(const T &t) 8768: { 8768: detach(); 8768: Node *i = new Node(t); 8768: i->n = e; 8768: i->p = e->p; 8768: i->p->n = i; 8768: e->p = i; 8768: d->size++; 8768: } 8768: 8768: template 8768: void QLinkedList::prepend(const T &t) 8768: { 8768: detach(); 8768: Node *i = new Node(t); 8768: i->n = e->n; 8768: i->p = e; 8768: i->n->p = i; 8768: e->n = i; 8768: d->size++; 8768: } 8768: 8768: template 8768: int QLinkedList::removeAll(const T &_t) 8768: { 8768: detach(); 8768: const T t = _t; 8768: Node *i = e->n; 8768: int c = 0; 8768: while (i != e) { 8768: if (i->t == t) { 8768: Node *n = i; 8768: i->n->p = i->p; 8768: i->p->n = i->n; 8768: i = i->n; 8768: delete n; 8768: c++; 8768: } else { 8768: i = i->n; 8768: } 8768: } 8768: d->size-=c; 8768: return c; 8768: } 8768: 8768: template 8768: bool QLinkedList::removeOne(const T &_t) 8768: { 8768: detach(); 8768: iterator it = std::find(begin(), end(), _t); 8768: if (it != end()) { 8768: erase(it); 8768: return true; 8768: } 8768: return false; 8768: } 8768: 8768: template 8768: inline T QLinkedList::takeFirst() 8768: { 8768: T t = first(); 8768: removeFirst(); 8768: return t; 8768: } 8768: 8768: template 8768: inline T QLinkedList::takeLast() 8768: { 8768: T t = last(); 8768: removeLast(); 8768: return t; 8768: } 8768: 8768: template 8768: bool QLinkedList::contains(const T &t) const 8768: { 8768: Node *i = e; 8768: while ((i = i->n) != e) 8768: if (i->t == t) 8768: return true; 8768: return false; 8768: } 8768: 8768: template 8768: int QLinkedList::count(const T &t) const 8768: { 8768: Node *i = e; 8768: int c = 0; 8768: while ((i = i->n) != e) 8768: if (i->t == t) 8768: c++; 8768: return c; 8768: } 8768: 8768: 8768: template 8768: typename QLinkedList::iterator QLinkedList::insert(iterator before, const T &t) 8768: { 8768: if (d->ref.isShared()) 8768: before = detach_helper2(before); 8768: 8768: Node *i = before.i; 8768: Node *m = new Node(t); 8768: m->n = i; 8768: m->p = i->p; 8768: m->p->n = m; 8768: i->p = m; 8768: d->size++; 8768: return m; 8768: } 8768: 8768: template 8768: typename QLinkedList::iterator QLinkedList::erase(typename QLinkedList::iterator afirst, 8768: typename QLinkedList::iterator alast) 8768: { 8768: while (afirst != alast) 8768: erase(afirst++); 8768: return alast; 8768: } 8768: 8768: 8768: template 8768: typename QLinkedList::iterator QLinkedList::erase(iterator pos) 8768: { 8768: if (d->ref.isShared()) 8768: pos = detach_helper2(pos); 8768: 8768: Node *i = pos.i; 8768: if (i != e) { 8768: Node *n = i; 8768: i->n->p = i->p; 8768: i->p->n = i->n; 8768: i = i->n; 8768: delete n; 8768: d->size--; 8768: } 8768: return i; 8768: } 8768: 8768: template 8768: QLinkedList &QLinkedList::operator+=(const QLinkedList &l) 8768: { 8768: detach(); 8768: int n = l.d->size; 8768: d->size += n; 8768: Node *original = l.e->n; 8768: while (n--) { 8768: try { 8768: Node *copy = new Node(original->t); 8768: original = original->n; 8768: copy->n = e; 8768: copy->p = e->p; 8768: copy->p->n = copy; 8768: e->p = copy; 8768: } catch (...) { 8768: 8768: while (n++size) 8768: removeLast(); 8768: throw; 8768: } 8768: } 8768: return *this; 8768: } 8768: 8768: template 8768: QLinkedList QLinkedList::operator+(const QLinkedList &l) const 8768: { 8768: QLinkedList n = *this; 8768: n += l; 8768: return n; 8768: } 8768: 8768: 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; } }; 8768: 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; } }; 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QLinkedList" 2 3 4 8768: # 30 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QQueue" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qqueue.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qqueue.h" 3 4 8768: 8768: 8768: 8768: template 8768: class QQueue : public QList 8768: { 8768: public: 8768: 8768: inline void swap(QQueue &other) noexcept { QList::swap(other); } 8768: 8768: 8768: 8768: inline void swap(int i, int j) { QList::swap(i, j); } 8768: 8768: inline void enqueue(const T &t) { QList::append(t); } 8768: inline T dequeue() { return QList::takeFirst(); } 8768: inline T &head() { return QList::first(); } 8768: inline const T &head() const { return QList::first(); } 8768: }; 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QQueue" 2 3 4 8768: # 31 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStack" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h" 2 3 4 8768: 8768: 8768: 8768: 8768: template 8768: class QStack : public QVector 8768: { 8768: public: 8768: 8768: inline void swap(QStack &other) noexcept { QVector::swap(other); } 8768: inline void push(const T &t) { QVector::append(t); } 8768: T pop(); 8768: T &top(); 8768: const T &top() const; 8768: }; 8768: 8768: template 8768: inline T QStack::pop() 8768: { do { } while ((false) && (!this->isEmpty())); T t = this->data()[this->size() -1]; 8768: this->resize(this->size()-1); return t; } 8768: 8768: template 8768: inline T &QStack::top() 8768: { do { } while ((false) && (!this->isEmpty())); this->detach(); return this->data()[this->size()-1]; } 8768: 8768: template 8768: inline const T &QStack::top() const 8768: { do { } while ((false) && (!this->isEmpty())); return this->data()[this->size()-1]; } 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QStack" 2 3 4 8768: # 32 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QVariant" 1 3 4 8768: # 33 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/QTest" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest_global.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest_global.h" 3 4 8768: 8768: # 68 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest_global.h" 3 4 8768: namespace QTest 8768: { 8768: enum TestFailMode { Abort = 1, Continue = 2 }; 8768: } 8768: 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 1 3 4 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetaobject.h" 1 3 4 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetaobject.h" 3 4 8768: 8768: 8768: 8768: template class QList; 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QMetaMethod 8768: { 8768: public: 8768: constexpr inline QMetaMethod() : mobj(nullptr), handle(0) {} 8768: 8768: QByteArray methodSignature() const; 8768: QByteArray name() const; 8768: const char *typeName() const; 8768: int returnType() const; 8768: int parameterCount() const; 8768: int parameterType(int index) const; 8768: void getParameterTypes(int *types) const; 8768: QList parameterTypes() const; 8768: QList parameterNames() const; 8768: const char *tag() const; 8768: enum Access { Private, Protected, Public }; 8768: Access access() const; 8768: enum MethodType { Method, Signal, Slot, Constructor }; 8768: MethodType methodType() const; 8768: enum Attributes { Compatibility = 0x1, Cloned = 0x2, Scriptable = 0x4 }; 8768: int attributes() const; 8768: int methodIndex() const; 8768: int revision() const; 8768: 8768: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8768: 8768: bool invoke(QObject *object, 8768: Qt::ConnectionType connectionType, 8768: QGenericReturnArgument returnValue, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const; 8768: inline bool invoke(QObject *object, 8768: QGenericReturnArgument returnValue, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const 8768: { 8768: return invoke(object, Qt::AutoConnection, returnValue, 8768: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8768: } 8768: inline bool invoke(QObject *object, 8768: Qt::ConnectionType connectionType, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const 8768: { 8768: return invoke(object, connectionType, QGenericReturnArgument(), 8768: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8768: } 8768: inline bool invoke(QObject *object, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const 8768: { 8768: return invoke(object, Qt::AutoConnection, QGenericReturnArgument(), 8768: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8768: } 8768: 8768: bool invokeOnGadget(void *gadget, 8768: QGenericReturnArgument returnValue, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const; 8768: inline bool invokeOnGadget(void *gadget, 8768: QGenericArgument val0 = QGenericArgument(nullptr), 8768: QGenericArgument val1 = QGenericArgument(), 8768: QGenericArgument val2 = QGenericArgument(), 8768: QGenericArgument val3 = QGenericArgument(), 8768: QGenericArgument val4 = QGenericArgument(), 8768: QGenericArgument val5 = QGenericArgument(), 8768: QGenericArgument val6 = QGenericArgument(), 8768: QGenericArgument val7 = QGenericArgument(), 8768: QGenericArgument val8 = QGenericArgument(), 8768: QGenericArgument val9 = QGenericArgument()) const 8768: { 8768: return invokeOnGadget(gadget, QGenericReturnArgument(), 8768: val0, val1, val2, val3, val4, val5, val6, val7, val8, val9); 8768: } 8768: 8768: inline bool isValid() const { return mobj != nullptr; } 8768: 8768: template 8768: static inline QMetaMethod fromSignal(PointerToMemberFunction signal) 8768: { 8768: typedef QtPrivate::FunctionPointer SignalType; 8768: static_assert(bool(QtPrivate::HasQ_OBJECT_Macro::Value), "No Q_OBJECT in the class with the signal") 8768: ; 8768: return fromSignalImpl(&SignalType::Object::staticMetaObject, 8768: reinterpret_cast(&signal)); 8768: } 8768: 8768: private: 8768: 8768: 8768: 8768: 8768: 8768: 8768: static QMetaMethod fromSignalImpl(const QMetaObject *, void **); 8768: 8768: const QMetaObject *mobj; 8768: uint handle; 8768: friend class QMetaMethodPrivate; 8768: friend struct QMetaObject; 8768: friend struct QMetaObjectPrivate; 8768: friend class QObject; 8768: friend bool operator==(const QMetaMethod &m1, const QMetaMethod &m2); 8768: friend bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2); 8768: }; 8768: 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"; } }; 8768: 8768: inline bool operator==(const QMetaMethod &m1, const QMetaMethod &m2) 8768: { return m1.mobj == m2.mobj && m1.handle == m2.handle; } 8768: inline bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2) 8768: { return !(m1 == m2); } 8768: 8768: class __attribute__((visibility("default"))) QMetaEnum 8768: { 8768: public: 8768: constexpr inline QMetaEnum() : mobj(nullptr), handle(0) {} 8768: 8768: const char *name() const; 8768: bool isFlag() const; 8768: bool isScoped() const; 8768: 8768: int keyCount() const; 8768: const char *key(int index) const; 8768: int value(int index) const; 8768: 8768: const char *scope() const; 8768: 8768: int keyToValue(const char *key, bool *ok = nullptr) const; 8768: const char* valueToKey(int value) const; 8768: int keysToValue(const char * keys, bool *ok = nullptr) const; 8768: QByteArray valueToKeys(int value) const; 8768: 8768: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8768: 8768: inline bool isValid() const { return name() != nullptr; } 8768: 8768: template static QMetaEnum fromType() { 8768: static_assert(bool(QtPrivate::IsQEnumHelper::Value), "QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG") 8768: ; 8768: const QMetaObject *metaObject = qt_getEnumMetaObject(T()); 8768: const char *name = qt_getEnumName(T()); 8768: return metaObject->enumerator(metaObject->indexOfEnumerator(name)); 8768: } 8768: 8768: private: 8768: const QMetaObject *mobj; 8768: uint handle; 8768: friend struct QMetaObject; 8768: }; 8768: 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"; } }; 8768: 8768: class __attribute__((visibility("default"))) QMetaProperty 8768: { 8768: public: 8768: QMetaProperty(); 8768: 8768: const char *name() const; 8768: const char *typeName() const; 8768: QVariant::Type type() const; 8768: int userType() const; 8768: int propertyIndex() const; 8768: 8768: bool isReadable() const; 8768: bool isWritable() const; 8768: bool isResettable() const; 8768: bool isDesignable(const QObject *obj = nullptr) const; 8768: bool isScriptable(const QObject *obj = nullptr) const; 8768: bool isStored(const QObject *obj = nullptr) const; 8768: bool isEditable(const QObject *obj = nullptr) const; 8768: bool isUser(const QObject *obj = nullptr) const; 8768: bool isConstant() const; 8768: bool isFinal() const; 8768: 8768: bool isFlagType() const; 8768: bool isEnumType() const; 8768: QMetaEnum enumerator() const; 8768: 8768: bool hasNotifySignal() const; 8768: QMetaMethod notifySignal() const; 8768: int notifySignalIndex() const; 8768: 8768: int revision() const; 8768: 8768: QVariant read(const QObject *obj) const; 8768: bool write(QObject *obj, const QVariant &value) const; 8768: bool reset(QObject *obj) const; 8768: 8768: QVariant readOnGadget(const void *gadget) const; 8768: bool writeOnGadget(void *gadget, const QVariant &value) const; 8768: bool resetOnGadget(void *gadget) const; 8768: 8768: bool hasStdCppSet() const; 8768: inline bool isValid() const { return isReadable(); } 8768: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8768: 8768: private: 8768: int registerPropertyType() const; 8768: 8768: const QMetaObject *mobj; 8768: uint handle; 8768: int idx; 8768: QMetaEnum menum; 8768: friend struct QMetaObject; 8768: friend struct QMetaObjectPrivate; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QMetaClassInfo 8768: { 8768: public: 8768: constexpr inline QMetaClassInfo() : mobj(nullptr), handle(0) {} 8768: const char *name() const; 8768: const char *value() const; 8768: inline const QMetaObject *enclosingMetaObject() const { return mobj; } 8768: private: 8768: const QMetaObject *mobj; 8768: uint handle; 8768: friend struct QMetaObject; 8768: }; 8768: 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"; } }; 8768: 8768: 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer.h" 1 3 4 8768: # 50 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfileinfo.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfileinfo.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: 8768: 8768: class QFileDevicePrivate; 8768: 8768: class __attribute__((visibility("default"))) QFileDevice : public QIODevice 8768: { 8768: 8768: public: 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: 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: 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfiledevice.h" 3 4 8768: struct QPrivateSignal {}; 8768: 8768: 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; 8768: 8768: public: 8768: enum FileError { 8768: NoError = 0, 8768: ReadError = 1, 8768: WriteError = 2, 8768: FatalError = 3, 8768: ResourceError = 4, 8768: OpenError = 5, 8768: AbortError = 6, 8768: TimeOutError = 7, 8768: UnspecifiedError = 8, 8768: RemoveError = 9, 8768: RenameError = 10, 8768: PositionError = 11, 8768: ResizeError = 12, 8768: PermissionsError = 13, 8768: CopyError = 14 8768: }; 8768: 8768: enum Permission { 8768: ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000, 8768: ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100, 8768: ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010, 8768: ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001 8768: }; 8768: typedef QFlags Permissions; 8768: 8768: enum FileHandleFlag { 8768: AutoCloseHandle = 0x0001, 8768: DontCloseHandle = 0 8768: }; 8768: typedef QFlags FileHandleFlags; 8768: 8768: ~QFileDevice(); 8768: 8768: FileError error() const; 8768: void unsetError(); 8768: 8768: virtual void close() override; 8768: 8768: bool isSequential() const override; 8768: 8768: int handle() const; 8768: virtual QString fileName() const; 8768: 8768: qint64 pos() const override; 8768: bool seek(qint64 offset) override; 8768: bool atEnd() const override; 8768: bool flush(); 8768: 8768: qint64 size() const override; 8768: 8768: virtual bool resize(qint64 sz); 8768: virtual Permissions permissions() const; 8768: virtual bool setPermissions(Permissions permissionSpec); 8768: 8768: 8768: enum MemoryMapFlags { 8768: NoOptions = 0, 8768: MapPrivateOption = 0x0001 8768: }; 8768: 8768: uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions); 8768: bool unmap(uchar *address); 8768: 8768: protected: 8768: QFileDevice(); 8768: 8768: 8768: 8768: explicit QFileDevice(QObject *parent); 8768: QFileDevice(QFileDevicePrivate &dd, QObject *parent = nullptr); 8768: 8768: 8768: qint64 readData(char *data, qint64 maxlen) override; 8768: qint64 writeData(const char *data, qint64 len) override; 8768: qint64 readLineData(char *data, qint64 maxlen) override; 8768: 8768: private: 8768: QFileDevice(const QFileDevice &) = delete; QFileDevice &operator=(const QFileDevice &) = delete; 8768: }; 8768: 8768: 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); } 8768: 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QTemporaryFile; 8768: class QFilePrivate; 8768: 8768: class __attribute__((visibility("default"))) QFile : public QFileDevice 8768: { 8768: 8768: public: 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: 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: 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: struct QPrivateSignal {}; 8768: 8768: 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; 8768: 8768: public: 8768: QFile(); 8768: QFile(const QString &name); 8768: 8768: explicit QFile(QObject *parent); 8768: QFile(const QString &name, QObject *parent); 8768: 8768: ~QFile(); 8768: 8768: QString fileName() const override; 8768: void setFileName(const QString &name); 8768: # 87 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: static inline QByteArray encodeName(const QString &fileName) 8768: { 8768: return fileName.toLocal8Bit(); 8768: } 8768: static QString decodeName(const QByteArray &localFileName) 8768: { 8768: return QString::fromLocal8Bit(localFileName); 8768: } 8768: 8768: inline static QString decodeName(const char *localFileName) 8768: { return decodeName(QByteArray(localFileName)); } 8768: # 106 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfile.h" 3 4 8768: bool exists() const; 8768: static bool exists(const QString &fileName); 8768: 8768: QString readLink() const; 8768: static QString readLink(const QString &fileName); 8768: inline QString symLinkTarget() const { return readLink(); } 8768: inline static QString symLinkTarget(const QString &fileName) { return readLink(fileName); } 8768: 8768: bool remove(); 8768: static bool remove(const QString &fileName); 8768: 8768: bool rename(const QString &newName); 8768: static bool rename(const QString &oldName, const QString &newName); 8768: 8768: bool link(const QString &newName); 8768: static bool link(const QString &oldname, const QString &newName); 8768: 8768: bool copy(const QString &newName); 8768: static bool copy(const QString &fileName, const QString &newName); 8768: 8768: bool open(OpenMode flags) override; 8768: bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8768: bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle); 8768: 8768: qint64 size() const override; 8768: 8768: bool resize(qint64 sz) override; 8768: static bool resize(const QString &filename, qint64 sz); 8768: 8768: Permissions permissions() const override; 8768: static Permissions permissions(const QString &filename); 8768: bool setPermissions(Permissions permissionSpec) override; 8768: static bool setPermissions(const QString &filename, Permissions permissionSpec); 8768: 8768: protected: 8768: 8768: 8768: 8768: QFile(QFilePrivate &dd, QObject *parent = nullptr); 8768: 8768: 8768: private: 8768: friend class QTemporaryFile; 8768: QFile(const QFile &) = delete; QFile &operator=(const QFile &) = delete; 8768: }; 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qfileinfo.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QDir; 8768: class QDirIteratorPrivate; 8768: class QDateTime; 8768: class QFileInfoPrivate; 8768: 8768: class __attribute__((visibility("default"))) QFileInfo 8768: { 8768: friend class QDirIteratorPrivate; 8768: public: 8768: explicit QFileInfo(QFileInfoPrivate *d); 8768: 8768: QFileInfo(); 8768: QFileInfo(const QString &file); 8768: QFileInfo(const QFile &file); 8768: QFileInfo(const QDir &dir, const QString &file); 8768: QFileInfo(const QFileInfo &fileinfo); 8768: ~QFileInfo(); 8768: 8768: QFileInfo &operator=(const QFileInfo &fileinfo); 8768: 8768: QFileInfo &operator=(QFileInfo &&other) noexcept { swap(other); return *this; } 8768: 8768: 8768: void swap(QFileInfo &other) noexcept 8768: { qSwap(d_ptr, other.d_ptr); } 8768: 8768: bool operator==(const QFileInfo &fileinfo) const; 8768: inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); } 8768: 8768: void setFile(const QString &file); 8768: void setFile(const QFile &file); 8768: void setFile(const QDir &dir, const QString &file); 8768: bool exists() const; 8768: static bool exists(const QString &file); 8768: void refresh(); 8768: 8768: QString filePath() const; 8768: QString absoluteFilePath() const; 8768: QString canonicalFilePath() const; 8768: QString fileName() const; 8768: QString baseName() const; 8768: QString completeBaseName() const; 8768: QString suffix() const; 8768: QString bundleName() const; 8768: QString completeSuffix() const; 8768: 8768: QString path() const; 8768: QString absolutePath() const; 8768: QString canonicalPath() const; 8768: QDir dir() const; 8768: QDir absoluteDir() const; 8768: 8768: bool isReadable() const; 8768: bool isWritable() const; 8768: bool isExecutable() const; 8768: bool isHidden() const; 8768: bool isNativePath() const; 8768: 8768: bool isRelative() const; 8768: inline bool isAbsolute() const { return !isRelative(); } 8768: bool makeAbsolute(); 8768: 8768: bool isFile() const; 8768: bool isDir() const; 8768: bool isSymLink() const; 8768: bool isRoot() const; 8768: bool isBundle() const; 8768: 8768: QString readLink() const; 8768: inline QString symLinkTarget() const { return readLink(); } 8768: 8768: QString owner() const; 8768: uint ownerId() const; 8768: QString group() const; 8768: uint groupId() const; 8768: 8768: bool permission(QFile::Permissions permissions) const; 8768: QFile::Permissions permissions() const; 8768: 8768: qint64 size() const; 8768: 8768: QDateTime created() const; 8768: QDateTime lastModified() const; 8768: QDateTime lastRead() const; 8768: 8768: bool caching() const; 8768: void setCaching(bool on); 8768: 8768: protected: 8768: QSharedDataPointer d_ptr; 8768: 8768: private: 8768: QFileInfoPrivate* d_func(); 8768: inline const QFileInfoPrivate* d_func() const 8768: { 8768: return d_ptr.constData(); 8768: } 8768: }; 8768: 8768: 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); } 8768: 8768: typedef QList QFileInfoList; 8768: 8768: 8768: 8768: 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; } }; 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: class QDirIterator; 8768: class QDirPrivate; 8768: 8768: class __attribute__((visibility("default"))) QDir 8768: { 8768: public: 8768: enum Filter { Dirs = 0x001, 8768: Files = 0x002, 8768: Drives = 0x004, 8768: NoSymLinks = 0x008, 8768: AllEntries = Dirs | Files | Drives, 8768: TypeMask = 0x00f, 8768: 8768: Readable = 0x010, 8768: Writable = 0x020, 8768: Executable = 0x040, 8768: PermissionMask = 0x070, 8768: 8768: Modified = 0x080, 8768: Hidden = 0x100, 8768: System = 0x200, 8768: 8768: AccessMask = 0x3F0, 8768: 8768: AllDirs = 0x400, 8768: CaseSensitive = 0x800, 8768: NoDot = 0x2000, 8768: NoDotDot = 0x4000, 8768: NoDotAndDotDot = NoDot | NoDotDot, 8768: 8768: NoFilter = -1 8768: }; 8768: typedef QFlags Filters; 8768: 8768: enum SortFlag { Name = 0x00, 8768: Time = 0x01, 8768: Size = 0x02, 8768: Unsorted = 0x03, 8768: SortByMask = 0x03, 8768: 8768: DirsFirst = 0x04, 8768: Reversed = 0x08, 8768: IgnoreCase = 0x10, 8768: DirsLast = 0x20, 8768: LocaleAware = 0x40, 8768: Type = 0x80, 8768: NoSort = -1 8768: }; 8768: typedef QFlags SortFlags; 8768: 8768: QDir(const QDir &); 8768: QDir(const QString &path = QString()); 8768: QDir(const QString &path, const QString &nameFilter, 8768: SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries); 8768: ~QDir(); 8768: 8768: QDir &operator=(const QDir &); 8768: QDir &operator=(const QString &path); 8768: 8768: QDir &operator=(QDir &&other) noexcept { swap(other); return *this; } 8768: 8768: 8768: void swap(QDir &other) noexcept 8768: { qSwap(d_ptr, other.d_ptr); } 8768: 8768: void setPath(const QString &path); 8768: QString path() const; 8768: QString absolutePath() const; 8768: QString canonicalPath() const; 8768: 8768: static void addResourceSearchPath(const QString &path); 8768: 8768: static void setSearchPaths(const QString &prefix, const QStringList &searchPaths); 8768: static void addSearchPath(const QString &prefix, const QString &path); 8768: static QStringList searchPaths(const QString &prefix); 8768: 8768: QString dirName() const; 8768: QString filePath(const QString &fileName) const; 8768: QString absoluteFilePath(const QString &fileName) const; 8768: QString relativeFilePath(const QString &fileName) const; 8768: 8768: static QString toNativeSeparators(const QString &pathName); 8768: static QString fromNativeSeparators(const QString &pathName); 8768: 8768: bool cd(const QString &dirName); 8768: bool cdUp(); 8768: 8768: QStringList nameFilters() const; 8768: void setNameFilters(const QStringList &nameFilters); 8768: 8768: Filters filter() const; 8768: void setFilter(Filters filter); 8768: SortFlags sorting() const; 8768: void setSorting(SortFlags sort); 8768: 8768: uint count() const; 8768: bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot)) const; 8768: 8768: QString operator[](int) const; 8768: 8768: static QStringList nameFiltersFromString(const QString &nameFilter); 8768: 8768: QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8768: QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter, 8768: SortFlags sort = NoSort) const; 8768: 8768: QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort) const; 8768: QFileInfoList entryInfoList(const QStringList &nameFilters, Filters filters = NoFilter, 8768: SortFlags sort = NoSort) const; 8768: 8768: bool mkdir(const QString &dirName) const; 8768: bool rmdir(const QString &dirName) const; 8768: bool mkpath(const QString &dirPath) const; 8768: bool rmpath(const QString &dirPath) const; 8768: 8768: bool removeRecursively(); 8768: 8768: bool isReadable() const; 8768: bool exists() const; 8768: bool isRoot() const; 8768: 8768: static bool isRelativePath(const QString &path); 8768: inline static bool isAbsolutePath(const QString &path) { return !isRelativePath(path); } 8768: bool isRelative() const; 8768: inline bool isAbsolute() const { return !isRelative(); } 8768: bool makeAbsolute(); 8768: 8768: bool operator==(const QDir &dir) const; 8768: inline bool operator!=(const QDir &dir) const { return !operator==(dir); } 8768: 8768: bool remove(const QString &fileName); 8768: bool rename(const QString &oldName, const QString &newName); 8768: bool exists(const QString &name) const; 8768: 8768: static QFileInfoList drives(); 8768: 8768: constexpr static inline QChar listSeparator() noexcept 8768: { 8768: 8768: 8768: 8768: return QLatin1Char(':'); 8768: 8768: } 8768: 8768: static QChar separator(); 8768: 8768: static bool setCurrent(const QString &path); 8768: static inline QDir current() { return QDir(currentPath()); } 8768: static QString currentPath(); 8768: 8768: static inline QDir home() { return QDir(homePath()); } 8768: static QString homePath(); 8768: static inline QDir root() { return QDir(rootPath()); } 8768: static QString rootPath(); 8768: static inline QDir temp() { return QDir(tempPath()); } 8768: static QString tempPath(); 8768: 8768: 8768: static bool match(const QStringList &filters, const QString &fileName); 8768: static bool match(const QString &filter, const QString &fileName); 8768: 8768: 8768: static QString cleanPath(const QString &path); 8768: void refresh() const; 8768: 8768: protected: 8768: explicit QDir(QDirPrivate &d); 8768: 8768: QSharedDataPointer d_ptr; 8768: 8768: private: 8768: friend class QDirIterator; 8768: 8768: QDirPrivate* d_func(); 8768: inline const QDirPrivate* d_func() const 8768: { 8768: return d_ptr.constData(); 8768: } 8768: 8768: }; 8768: 8768: 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); } 8768: 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); } 8768: 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); } 8768: 8768: 8768: class QDebug; 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, QDir::Filters filters); 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug debug, const QDir &dir); 8768: 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QScopedPointer" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h" 1 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/QScopedPointer" 2 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qtemporarydir.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QTemporaryDirPrivate; 8768: 8768: class __attribute__((visibility("default"))) QTemporaryDir 8768: { 8768: public: 8768: QTemporaryDir(); 8768: explicit QTemporaryDir(const QString &templateName); 8768: ~QTemporaryDir(); 8768: 8768: bool isValid() const; 8768: QString errorString() const; 8768: 8768: bool autoRemove() const; 8768: void setAutoRemove(bool b); 8768: bool remove(); 8768: 8768: QString path() const; 8768: QString filePath(const QString &fileName) const; 8768: 8768: private: 8768: QScopedPointer d_ptr; 8768: 8768: QTemporaryDir(const QTemporaryDir &) = delete; QTemporaryDir &operator=(const QTemporaryDir &) = delete; 8768: }; 8768: 8768: 8768: 8768: 8768: # 51 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QRegularExpression; 8768: # 231 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestcase.h" 3 4 8768: class QObject; 8768: class QTestData; 8768: 8768: 8768: 8768: 8768: namespace QTest 8768: { 8768: namespace Internal { 8768: 8768: template 8768: inline typename std::enable_if::Value, char*>::type toString(T e) 8768: { 8768: QMetaEnum me = QMetaEnum::fromType(); 8768: return qstrdup(me.valueToKey(int(e))); 8768: } 8768: 8768: template 8768: inline typename std::enable_if::Value, char*>::type toString(const T &) 8768: { 8768: return nullptr; 8768: } 8768: 8768: } 8768: 8768: template 8768: inline char *toString(const T &t) 8768: { 8768: return Internal::toString(t); 8768: } 8768: 8768: __attribute__((visibility("default"))) char *toHexRepresentation(const char *ba, int length); 8768: __attribute__((visibility("default"))) char *toPrettyCString(const char *unicode, int length); 8768: __attribute__((visibility("default"))) char *toPrettyUnicode(const ushort *unicode, int length); 8768: __attribute__((visibility("default"))) char *toString(const char *); 8768: __attribute__((visibility("default"))) char *toString(const void *); 8768: 8768: __attribute__((visibility("default"))) int qExec(QObject *testObject, int argc = 0, char **argv = nullptr); 8768: __attribute__((visibility("default"))) int qExec(QObject *testObject, const QStringList &arguments); 8768: 8768: __attribute__((visibility("default"))) void setMainSourcePath(const char *file, const char *builddir = nullptr); 8768: 8768: __attribute__((visibility("default"))) bool qVerify(bool statement, const char *statementStr, const char *description, 8768: const char *file, int line); 8768: __attribute__((visibility("default"))) void qFail(const char *statementStr, const char *file, int line); 8768: __attribute__((visibility("default"))) void qSkip(const char *message, const char *file, int line); 8768: __attribute__((visibility("default"))) bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode, 8768: const char *file, int line); 8768: __attribute__((visibility("default"))) void qWarn(const char *message, const char *file = nullptr, int line = 0); 8768: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const char *message); 8768: 8768: __attribute__((visibility("default"))) void ignoreMessage(QtMsgType type, const QRegularExpression &messagePattern); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QSharedPointer qExtractTestData(const QString &dirName); 8768: 8768: __attribute__((visibility("default"))) QString qFindTestData(const char* basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8768: __attribute__((visibility("default"))) QString qFindTestData(const QString& basepath, const char* file = nullptr, int line = 0, const char* builddir = nullptr); 8768: 8768: __attribute__((visibility("default"))) void *qData(const char *tagName, int typeId); 8768: __attribute__((visibility("default"))) void *qGlobalData(const char *tagName, int typeId); 8768: __attribute__((visibility("default"))) void *qElementData(const char *elementName, int metaTypeId); 8768: __attribute__((visibility("default"))) QObject *testObject(); 8768: 8768: __attribute__((visibility("default"))) const char *currentAppName(); 8768: 8768: __attribute__((visibility("default"))) const char *currentTestFunction(); 8768: __attribute__((visibility("default"))) const char *currentDataTag(); 8768: __attribute__((visibility("default"))) bool currentTestFailed(); 8768: 8768: __attribute__((visibility("default"))) Qt::Key asciiToKey(char ascii); 8768: __attribute__((visibility("default"))) char keyToAscii(Qt::Key key); 8768: 8768: __attribute__((visibility("default"))) bool compare_helper(bool success, const char *failureMsg, 8768: char *val1, char *val2, 8768: const char *actual, const char *expected, 8768: const char *file, int line); 8768: __attribute__((visibility("default"))) void qSleep(int ms); 8768: __attribute__((visibility("default"))) void addColumnInternal(int id, const char *name); 8768: 8768: template 8768: inline void addColumn(const char *name, T * = nullptr) 8768: { 8768: typedef std::is_same QIsSameTConstChar; 8768: static_assert(bool(!QIsSameTConstChar::value), "const char* is not allowed as a test data format."); 8768: addColumnInternal(qMetaTypeId(), name); 8768: } 8768: __attribute__((visibility("default"))) QTestData &newRow(const char *dataTag); 8768: __attribute__((visibility("default"))) QTestData &addRow(const char *format, ...) __attribute__((format(printf, (1), (2)))); 8768: 8768: template 8768: inline bool qCompare(T const &t1, T const &t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_helper(t1 == t2, "Compared values are not the same", 8768: toString(t1), toString(t2), actual, expected, file, line); 8768: } 8768: 8768: __attribute__((visibility("default"))) bool qCompare(float const &t1, float const &t2, 8768: const char *actual, const char *expected, const char *file, int line); 8768: 8768: __attribute__((visibility("default"))) bool qCompare(double const &t1, double const &t2, 8768: const char *actual, const char *expected, const char *file, int line); 8768: 8768: inline bool compare_ptr_helper(const volatile void *t1, const volatile void *t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return compare_helper(t1 == t2, "Compared pointers are not the same", 8768: toString(t1), toString(t2), actual, expected, file, line); 8768: } 8768: 8768: inline bool compare_ptr_helper(const volatile void *t1, std::nullptr_t, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return compare_helper(t1 == nullptr, "Compared pointers are not the same", 8768: toString(t1), toString(nullptr), actual, expected, file, line); 8768: } 8768: 8768: inline bool compare_ptr_helper(std::nullptr_t, const volatile void *t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return compare_helper(nullptr == t2, "Compared pointers are not the same", 8768: toString(nullptr), toString(t2), actual, expected, file, line); 8768: } 8768: 8768: __attribute__((visibility("default"))) bool compare_string_helper(const char *t1, const char *t2, const char *actual, 8768: const char *expected, const char *file, int line); 8768: 8768: 8768: template<> __attribute__((visibility("default"))) char *toString(const short &); 8768: template<> __attribute__((visibility("default"))) char *toString(const ushort &); 8768: template<> __attribute__((visibility("default"))) char *toString(const int &); 8768: template<> __attribute__((visibility("default"))) char *toString(const uint &); 8768: template<> __attribute__((visibility("default"))) char *toString(const long &); 8768: template<> __attribute__((visibility("default"))) char *toString(const ulong &); 8768: template<> __attribute__((visibility("default"))) char *toString(const qint64 &); 8768: template<> __attribute__((visibility("default"))) char *toString(const quint64 &); 8768: 8768: template<> __attribute__((visibility("default"))) char *toString(const float &); 8768: template<> __attribute__((visibility("default"))) char *toString(const double &); 8768: template<> __attribute__((visibility("default"))) char *toString(const char &); 8768: template<> __attribute__((visibility("default"))) char *toString(const signed char &); 8768: template<> __attribute__((visibility("default"))) char *toString(const unsigned char &); 8768: template<> __attribute__((visibility("default"))) char *toString(const bool &); 8768: 8768: 8768: template 8768: bool qCompare(T1 const &, T2 const &, const char *, const char *, const char *, int); 8768: 8768: inline bool qCompare(double const &t1, float const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8768: } 8768: 8768: inline bool qCompare(float const &t1, double const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(qreal(t1), qreal(t2), actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qCompare(const T *t1, const T *t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8768: } 8768: template 8768: inline bool qCompare(T *t1, T *t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_ptr_helper(t1, t2, actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qCompare(T *t1, std::nullptr_t, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_ptr_helper(t1, nullptr, actual, expected, file, line); 8768: } 8768: template 8768: inline bool qCompare(std::nullptr_t, T *t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_ptr_helper(nullptr, t2, actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qCompare(const T1 *t1, const T2 *t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_ptr_helper(t1, static_cast(t2), actual, expected, file, line); 8768: } 8768: template 8768: inline bool qCompare(T1 *t1, T2 *t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_ptr_helper(const_cast(t1), 8768: static_cast(const_cast(t2)), actual, expected, file, line); 8768: } 8768: inline bool qCompare(const char *t1, const char *t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return compare_string_helper(t1, t2, actual, expected, file, line); 8768: } 8768: inline bool qCompare(char *t1, char *t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return compare_string_helper(t1, t2, actual, expected, file, line); 8768: } 8768: 8768: 8768: 8768: 8768: inline bool qCompare(char *t1, const char *t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return compare_string_helper(t1, t2, actual, expected, file, line); 8768: } 8768: inline bool qCompare(const char *t1, char *t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return compare_string_helper(t1, t2, actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qTest(const T& actual, const char *elementName, const char *actualStr, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(actual, *static_cast(QTest::qElementData(elementName, 8768: qMetaTypeId())), actualStr, expected, file, line); 8768: } 8768: } 8768: 8768: 8768: 8768: 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestdata.h" 1 3 4 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestdata.h" 3 4 8768: 8768: 8768: 8768: class QTestTable; 8768: class QTestDataPrivate; 8768: 8768: class __attribute__((visibility("default"))) QTestData 8768: { 8768: public: 8768: ~QTestData(); 8768: 8768: void append(int type, const void *data); 8768: void *data(int index) const; 8768: const char *dataTag() const; 8768: QTestTable *parent() const; 8768: int dataCount() const; 8768: 8768: private: 8768: friend class QTestTable; 8768: QTestData(const char *tag, QTestTable *parent); 8768: 8768: QTestData(const QTestData &) = delete; QTestData &operator=(const QTestData &) = delete; 8768: 8768: QTestDataPrivate *d; 8768: }; 8768: 8768: template 8768: QTestData &operator<<(QTestData &data, const T &value) 8768: { 8768: data.append(qMetaTypeId(), &value); 8768: return data; 8768: } 8768: 8768: inline QTestData &operator<<(QTestData &data, const char * value) 8768: { 8768: QString str = QString::fromUtf8(value); 8768: data.append(QMetaType::QString, &str); 8768: return data; 8768: } 8768: 8768: 8768: template 8768: inline QTestData &operator<<(QTestData &data, const QStringBuilder &value) 8768: { 8768: return data << typename QConcatenable >::ConvertTo(value); 8768: } 8768: 8768: 8768: 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmarkmetric.h" 1 3 4 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmarkmetric.h" 3 4 8768: 8768: 8768: 8768: namespace QTest { 8768: 8768: enum QBenchmarkMetric { 8768: FramesPerSecond, 8768: BitsPerSecond, 8768: BytesPerSecond, 8768: WalltimeMilliseconds, 8768: CPUTicks, 8768: InstructionReads, 8768: Events, 8768: WalltimeNanoseconds, 8768: BytesAllocated, 8768: CPUMigrations, 8768: CPUCycles, 8768: BusCycles, 8768: StalledCycles, 8768: Instructions, 8768: BranchInstructions, 8768: BranchMisses, 8768: CacheReferences, 8768: CacheReads, 8768: CacheWrites, 8768: CachePrefetches, 8768: CacheMisses, 8768: CacheReadMisses, 8768: CacheWriteMisses, 8768: CachePrefetchMisses, 8768: ContextSwitches, 8768: PageFaults, 8768: MinorPageFaults, 8768: MajorPageFaults, 8768: AlignmentFaults, 8768: EmulationFaults, 8768: RefCPUCycles, 8768: }; 8768: 8768: } 8768: 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 2 3 4 8768: 8768: 8768: 8768: 8768: namespace QTest 8768: { 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 3 4 8768: class __attribute__((visibility("default"))) QBenchmarkIterationController 8768: { 8768: public: 8768: enum RunMode { RepeatUntilValidMeasurement, RunOnce }; 8768: QBenchmarkIterationController(); 8768: QBenchmarkIterationController(RunMode runMode); 8768: ~QBenchmarkIterationController(); 8768: bool isDone(); 8768: void next(); 8768: int i; 8768: }; 8768: 8768: } 8768: # 84 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qbenchmark.h" 3 4 8768: namespace QTest 8768: { 8768: void __attribute__((visibility("default"))) setBenchmarkResult(qreal result, QBenchmarkMetric metric); 8768: } 8768: 8768: 8768: 8768: 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qstringlist.h" 1 3 4 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h" 1 3 4 8768: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h" 3 4 8768: 8768: 8768: class QTimeZone; 8768: 8768: class __attribute__((visibility("default"))) QDate 8768: { 8768: public: 8768: enum MonthNameType { 8768: DateFormat = 0, 8768: StandaloneFormat 8768: }; 8768: private: 8768: explicit constexpr QDate(qint64 julianDay) : jd(julianDay) {} 8768: public: 8768: constexpr QDate() : jd(nullJd()) {} 8768: QDate(int y, int m, int d); 8768: 8768: constexpr bool isNull() const { return !isValid(); } 8768: constexpr bool isValid() const { return jd >= minJd() && jd <= maxJd(); } 8768: 8768: int year() const; 8768: int month() const; 8768: int day() const; 8768: int dayOfWeek() const; 8768: int dayOfYear() const; 8768: int daysInMonth() const; 8768: int daysInYear() const; 8768: int weekNumber(int *yearNum = nullptr) const; 8768: 8768: 8768: static QString shortMonthName(int month, MonthNameType type = DateFormat); 8768: static QString shortDayName(int weekday, MonthNameType type = DateFormat); 8768: static QString longMonthName(int month, MonthNameType type = DateFormat); 8768: static QString longDayName(int weekday, MonthNameType type = DateFormat); 8768: 8768: 8768: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8768: QString toString(const QString &format) const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: bool setDate(int year, int month, int day); 8768: 8768: 8768: void getDate(int *year, int *month, int *day); 8768: 8768: void getDate(int *year, int *month, int *day) const; 8768: 8768: [[nodiscard]] QDate addDays(qint64 days) const; 8768: [[nodiscard]] QDate addMonths(int months) const; 8768: [[nodiscard]] QDate addYears(int years) const; 8768: qint64 daysTo(const QDate &) const; 8768: 8768: constexpr bool operator==(const QDate &other) const { return jd == other.jd; } 8768: constexpr bool operator!=(const QDate &other) const { return jd != other.jd; } 8768: constexpr bool operator< (const QDate &other) const { return jd < other.jd; } 8768: constexpr bool operator<=(const QDate &other) const { return jd <= other.jd; } 8768: constexpr bool operator> (const QDate &other) const { return jd > other.jd; } 8768: constexpr bool operator>=(const QDate &other) const { return jd >= other.jd; } 8768: 8768: static QDate currentDate(); 8768: 8768: static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8768: static QDate fromString(const QString &s, const QString &format); 8768: 8768: static bool isValid(int y, int m, int d); 8768: static bool isLeapYear(int year); 8768: 8768: static constexpr inline QDate fromJulianDay(qint64 jd_) 8768: { return jd_ >= minJd() && jd_ <= maxJd() ? QDate(jd_) : QDate() ; } 8768: constexpr inline qint64 toJulianDay() const { return jd; } 8768: 8768: private: 8768: 8768: static constexpr inline qint64 nullJd() { return (std::numeric_limits::min)(); } 8768: static constexpr inline qint64 minJd() { return static_cast(-784350574879LL); } 8768: static constexpr inline qint64 maxJd() { return static_cast(784354017364LL); } 8768: 8768: qint64 jd; 8768: 8768: friend class QDateTime; 8768: friend class QDateTimePrivate; 8768: 8768: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8768: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8768: 8768: }; 8768: 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"; } }; 8768: 8768: class __attribute__((visibility("default"))) QTime 8768: { 8768: explicit constexpr QTime(int ms) : mds(ms) 8768: {} 8768: public: 8768: constexpr QTime(): mds(NullTime) 8768: {} 8768: QTime(int h, int m, int s = 0, int ms = 0); 8768: 8768: constexpr bool isNull() const { return mds == NullTime; } 8768: bool isValid() const; 8768: 8768: int hour() const; 8768: int minute() const; 8768: int second() const; 8768: int msec() const; 8768: 8768: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8768: QString toString(const QString &format) const; 8768: 8768: bool setHMS(int h, int m, int s, int ms = 0); 8768: 8768: [[nodiscard]] QTime addSecs(int secs) const; 8768: int secsTo(const QTime &) const; 8768: [[nodiscard]] QTime addMSecs(int ms) const; 8768: int msecsTo(const QTime &) const; 8768: 8768: constexpr bool operator==(const QTime &other) const { return mds == other.mds; } 8768: constexpr bool operator!=(const QTime &other) const { return mds != other.mds; } 8768: constexpr bool operator< (const QTime &other) const { return mds < other.mds; } 8768: constexpr bool operator<=(const QTime &other) const { return mds <= other.mds; } 8768: constexpr bool operator> (const QTime &other) const { return mds > other.mds; } 8768: constexpr bool operator>=(const QTime &other) const { return mds >= other.mds; } 8768: 8768: static constexpr inline QTime fromMSecsSinceStartOfDay(int msecs) { return QTime(msecs); } 8768: constexpr inline int msecsSinceStartOfDay() const { return mds == NullTime ? 0 : mds; } 8768: 8768: static QTime currentTime(); 8768: 8768: static QTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8768: static QTime fromString(const QString &s, const QString &format); 8768: 8768: static bool isValid(int h, int m, int s, int ms = 0); 8768: 8768: void start(); 8768: int restart(); 8768: int elapsed() const; 8768: private: 8768: enum TimeFlag { NullTime = -1 }; 8768: constexpr inline int ds() const { return mds == -1 ? 0 : mds; } 8768: int mds; 8768: 8768: friend class QDateTime; 8768: friend class QDateTimePrivate; 8768: 8768: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8768: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8768: 8768: }; 8768: 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"; } }; 8768: 8768: class QDateTimePrivate; 8768: 8768: class __attribute__((visibility("default"))) QDateTime 8768: { 8768: 8768: struct ShortData { 8768: 8768: quintptr status : 8; 8768: 8768: 8768: qintptr msecs : sizeof(void *) * 8 - 8; 8768: 8768: 8768: 8768: 8768: }; 8768: 8768: union Data { 8768: enum { 8768: 8768: 8768: 8768: CanBeSmall = sizeof(ShortData) * 8 > 50 8768: }; 8768: 8768: Data(); 8768: Data(Qt::TimeSpec); 8768: Data(const Data &other); 8768: Data(Data &&other); 8768: Data &operator=(const Data &other); 8768: ~Data(); 8768: 8768: bool isShort() const; 8768: void detach(); 8768: 8768: const QDateTimePrivate *operator->() const; 8768: QDateTimePrivate *operator->(); 8768: 8768: QDateTimePrivate *d; 8768: ShortData data; 8768: }; 8768: 8768: public: 8768: QDateTime() noexcept(Data::CanBeSmall); 8768: explicit QDateTime(const QDate &); 8768: QDateTime(const QDate &, const QTime &, Qt::TimeSpec spec = Qt::LocalTime); 8768: 8768: QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec, int offsetSeconds); 8768: 8768: QDateTime(const QDate &date, const QTime &time, const QTimeZone &timeZone); 8768: 8768: QDateTime(const QDateTime &other) noexcept; 8768: QDateTime(QDateTime &&other) noexcept; 8768: ~QDateTime(); 8768: 8768: 8768: QDateTime &operator=(QDateTime &&other) noexcept { swap(other); return *this; } 8768: 8768: QDateTime &operator=(const QDateTime &other) noexcept; 8768: 8768: void swap(QDateTime &other) noexcept { qSwap(d.d, other.d.d); } 8768: 8768: bool isNull() const; 8768: bool isValid() const; 8768: 8768: QDate date() const; 8768: QTime time() const; 8768: Qt::TimeSpec timeSpec() const; 8768: int offsetFromUtc() const; 8768: 8768: QTimeZone timeZone() const; 8768: 8768: QString timeZoneAbbreviation() const; 8768: bool isDaylightTime() const; 8768: 8768: qint64 toMSecsSinceEpoch() const; 8768: qint64 toSecsSinceEpoch() const; 8768: 8768: void setDate(const QDate &date); 8768: void setTime(const QTime &time); 8768: void setTimeSpec(Qt::TimeSpec spec); 8768: void setOffsetFromUtc(int offsetSeconds); 8768: 8768: void setTimeZone(const QTimeZone &toZone); 8768: 8768: void setMSecsSinceEpoch(qint64 msecs); 8768: void setSecsSinceEpoch(qint64 secs); 8768: 8768: 8768: QString toString(Qt::DateFormat f = Qt::TextDate) const; 8768: QString toString(const QString &format) const; 8768: 8768: [[nodiscard]] QDateTime addDays(qint64 days) const; 8768: [[nodiscard]] QDateTime addMonths(int months) const; 8768: [[nodiscard]] QDateTime addYears(int years) const; 8768: [[nodiscard]] QDateTime addSecs(qint64 secs) const; 8768: [[nodiscard]] QDateTime addMSecs(qint64 msecs) const; 8768: 8768: QDateTime toTimeSpec(Qt::TimeSpec spec) const; 8768: inline QDateTime toLocalTime() const { return toTimeSpec(Qt::LocalTime); } 8768: inline QDateTime toUTC() const { return toTimeSpec(Qt::UTC); } 8768: QDateTime toOffsetFromUtc(int offsetSeconds) const; 8768: 8768: QDateTime toTimeZone(const QTimeZone &toZone) const; 8768: 8768: 8768: qint64 daysTo(const QDateTime &) const; 8768: qint64 secsTo(const QDateTime &) const; 8768: qint64 msecsTo(const QDateTime &) const; 8768: 8768: bool operator==(const QDateTime &other) const; 8768: inline bool operator!=(const QDateTime &other) const { return !(*this == other); } 8768: bool operator<(const QDateTime &other) const; 8768: inline bool operator<=(const QDateTime &other) const { return !(other < *this); } 8768: inline bool operator>(const QDateTime &other) const { return other < *this; } 8768: inline bool operator>=(const QDateTime &other) const { return !(*this < other); } 8768: 8768: 8768: void setUtcOffset(int seconds); 8768: int utcOffset() const; 8768: 8768: 8768: static QDateTime currentDateTime(); 8768: static QDateTime currentDateTimeUtc(); 8768: 8768: static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); 8768: static QDateTime fromString(const QString &s, const QString &format); 8768: 8768: 8768: 8768: uint toTime_t() const; 8768: void setTime_t(uint secsSince1Jan1970UTC); 8768: static QDateTime fromTime_t(uint secsSince1Jan1970UTC); 8768: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, Qt::TimeSpec spec, 8768: int offsetFromUtc = 0); 8768: static QDateTime fromTime_t(uint secsSince1Jan1970UTC, const QTimeZone &timeZone); 8768: 8768: 8768: static QDateTime fromMSecsSinceEpoch(qint64 msecs); 8768: 8768: static QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetFromUtc = 0); 8768: static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime, int offsetFromUtc = 0); 8768: 8768: 8768: static QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone); 8768: static QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone); 8768: 8768: 8768: static qint64 currentMSecsSinceEpoch() noexcept; 8768: static qint64 currentSecsSinceEpoch() noexcept; 8768: # 366 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h" 3 4 8768: private: 8768: friend class QDateTimePrivate; 8768: 8768: Data d; 8768: 8768: 8768: friend __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8768: friend __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8768: 8768: 8768: 8768: friend __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8768: 8768: }; 8768: 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); } 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDate &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDate &); 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QTime &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QTime &); 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QDateTime &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QDateTime &); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDate &); 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QTime &); 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QDateTime &); 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) uint qHash(const QDateTime &key, uint seed = 0); 8768: __attribute__((visibility("default"))) uint qHash(const QDate &key, uint seed = 0) noexcept; 8768: __attribute__((visibility("default"))) uint qHash(const QTime &key, uint seed = 0) noexcept; 8768: 8768: 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 1 3 4 8768: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 3 4 8768: 8768: 8768: 8768: class QUrlQuery; 8768: class QUrlPrivate; 8768: class QDataStream; 8768: 8768: template 8768: class QUrlTwoFlags 8768: { 8768: int i; 8768: typedef int QUrlTwoFlags:: *Zero; 8768: public: 8768: constexpr inline QUrlTwoFlags(E1 f) : i(f) {} 8768: constexpr inline QUrlTwoFlags(E2 f) : i(f) {} 8768: constexpr inline QUrlTwoFlags(QFlag f) : i(f) {} 8768: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8768: constexpr inline QUrlTwoFlags(QFlags f) : i(f.operator typename QFlags::Int()) {} 8768: constexpr inline QUrlTwoFlags(Zero = 0) : i(0) {} 8768: 8768: inline QUrlTwoFlags &operator&=(int mask) { i &= mask; return *this; } 8768: inline QUrlTwoFlags &operator&=(uint mask) { i &= mask; return *this; } 8768: inline QUrlTwoFlags &operator|=(QUrlTwoFlags f) { i |= f.i; return *this; } 8768: inline QUrlTwoFlags &operator|=(E1 f) { i |= f; return *this; } 8768: inline QUrlTwoFlags &operator|=(E2 f) { i |= f; return *this; } 8768: inline QUrlTwoFlags &operator^=(QUrlTwoFlags f) { i ^= f.i; return *this; } 8768: inline QUrlTwoFlags &operator^=(E1 f) { i ^= f; return *this; } 8768: inline QUrlTwoFlags &operator^=(E2 f) { i ^= f; return *this; } 8768: 8768: constexpr inline operator QFlags() const { return QFlag(i); } 8768: constexpr inline operator QFlags() const { return QFlag(i); } 8768: constexpr inline operator int() const { return i; } 8768: constexpr inline bool operator!() const { return !i; } 8768: 8768: constexpr inline QUrlTwoFlags operator|(QUrlTwoFlags f) const 8768: { return QUrlTwoFlags(QFlag(i | f.i)); } 8768: constexpr inline QUrlTwoFlags operator|(E1 f) const 8768: { return QUrlTwoFlags(QFlag(i | f)); } 8768: constexpr inline QUrlTwoFlags operator|(E2 f) const 8768: { return QUrlTwoFlags(QFlag(i | f)); } 8768: constexpr inline QUrlTwoFlags operator^(QUrlTwoFlags f) const 8768: { return QUrlTwoFlags(QFlag(i ^ f.i)); } 8768: constexpr inline QUrlTwoFlags operator^(E1 f) const 8768: { return QUrlTwoFlags(QFlag(i ^ f)); } 8768: constexpr inline QUrlTwoFlags operator^(E2 f) const 8768: { return QUrlTwoFlags(QFlag(i ^ f)); } 8768: constexpr inline QUrlTwoFlags operator&(int mask) const 8768: { return QUrlTwoFlags(QFlag(i & mask)); } 8768: constexpr inline QUrlTwoFlags operator&(uint mask) const 8768: { return QUrlTwoFlags(QFlag(i & mask)); } 8768: constexpr inline QUrlTwoFlags operator&(E1 f) const 8768: { return QUrlTwoFlags(QFlag(i & f)); } 8768: constexpr inline QUrlTwoFlags operator&(E2 f) const 8768: { return QUrlTwoFlags(QFlag(i & f)); } 8768: constexpr inline QUrlTwoFlags operator~() const 8768: { return QUrlTwoFlags(QFlag(~i)); } 8768: 8768: constexpr inline bool testFlag(E1 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8768: constexpr inline bool testFlag(E2 f) const { return (i & f) == f && (f != 0 || i == int(f)); } 8768: }; 8768: 8768: template 8768: class QTypeInfo > : public QTypeInfoMerger, E1, E2> {}; 8768: 8768: class QUrl; 8768: 8768: __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed = 0) noexcept; 8768: 8768: class __attribute__((visibility("default"))) QUrl 8768: { 8768: public: 8768: enum ParsingMode { 8768: TolerantMode, 8768: StrictMode, 8768: DecodedMode 8768: }; 8768: 8768: 8768: enum UrlFormattingOption { 8768: None = 0x0, 8768: RemoveScheme = 0x1, 8768: RemovePassword = 0x2, 8768: RemoveUserInfo = RemovePassword | 0x4, 8768: RemovePort = 0x8, 8768: RemoveAuthority = RemoveUserInfo | RemovePort | 0x10, 8768: RemovePath = 0x20, 8768: RemoveQuery = 0x40, 8768: RemoveFragment = 0x80, 8768: 8768: PreferLocalFile = 0x200, 8768: StripTrailingSlash = 0x400, 8768: RemoveFilename = 0x800, 8768: NormalizePathSegments = 0x1000 8768: }; 8768: 8768: enum ComponentFormattingOption { 8768: PrettyDecoded = 0x000000, 8768: EncodeSpaces = 0x100000, 8768: EncodeUnicode = 0x200000, 8768: EncodeDelimiters = 0x400000 | 0x800000, 8768: EncodeReserved = 0x1000000, 8768: DecodeReserved = 0x2000000, 8768: 8768: 8768: FullyEncoded = EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved, 8768: FullyDecoded = FullyEncoded | DecodeReserved | 0x4000000 8768: }; 8768: typedef QFlags ComponentFormattingOptions; 8768: # 173 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 3 4 8768: typedef QUrlTwoFlags FormattingOptions; 8768: 8768: 8768: QUrl(); 8768: QUrl(const QUrl ©); 8768: QUrl &operator =(const QUrl ©); 8768: 8768: explicit QUrl(const QString &url, ParsingMode mode = TolerantMode); 8768: 8768: 8768: 8768: 8768: 8768: QUrl(QUrl &&other) noexcept : d(other.d) 8768: { other.d = nullptr; } 8768: inline QUrl &operator=(QUrl &&other) noexcept 8768: { qSwap(d, other.d); return *this; } 8768: 8768: ~QUrl(); 8768: 8768: inline void swap(QUrl &other) noexcept { qSwap(d, other.d); } 8768: 8768: void setUrl(const QString &url, ParsingMode mode = TolerantMode); 8768: QString url(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8768: QString toString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8768: QString toDisplayString(FormattingOptions options = FormattingOptions(PrettyDecoded)) const; 8768: [[nodiscard]] QUrl adjusted(FormattingOptions options) const; 8768: 8768: QByteArray toEncoded(FormattingOptions options = FullyEncoded) const; 8768: static QUrl fromEncoded(const QByteArray &url, ParsingMode mode = TolerantMode); 8768: 8768: enum UserInputResolutionOption { 8768: DefaultResolution, 8768: AssumeLocalFile 8768: }; 8768: typedef QFlags UserInputResolutionOptions; 8768: 8768: static QUrl fromUserInput(const QString &userInput); 8768: 8768: static QUrl fromUserInput(const QString &userInput, const QString &workingDirectory, 8768: UserInputResolutionOptions options = DefaultResolution); 8768: 8768: bool isValid() const; 8768: QString errorString() const; 8768: 8768: bool isEmpty() const; 8768: void clear(); 8768: 8768: void setSchem[ 95%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/range.cpp.o e(const QString &scheme); 8768: QString scheme() const; 8768: 8768: void setAuthority(const QString &authority, ParsingMode mode = TolerantMode); 8768: QString authority(ComponentFormattingOptions options = PrettyDecoded) const; 8768: 8768: void setUserInfo(const QString &userInfo, ParsingMode mode = TolerantMode); 8768: QString userInfo(ComponentFormattingOptions options = PrettyDecoded) const; 8768: 8768: void setUserName(const QString &userName, ParsingMode mode = DecodedMode); 8768: QString userName(ComponentFormattingOptions options = FullyDecoded) const; 8768: 8768: void setPassword(const QString &password, ParsingMode mode = DecodedMode); 8768: QString password(ComponentFormattingOptions = FullyDecoded) const; 8768: 8768: void setHost(const QString &host, ParsingMode mode = DecodedMode); 8768: QString host(ComponentFormattingOptions = FullyDecoded) const; 8768: 8768: QString topLevelDomain(ComponentFormattingOptions options = FullyDecoded) const; 8768: 8768: 8768: void setPort(int port); 8768: int port(int defaultPort = -1) const; 8768: 8768: void setPath(const QString &path, ParsingMode mode = DecodedMode); 8768: QString path(ComponentFormattingOptions options = FullyDecoded) const; 8768: QString fileName(ComponentFormattingOptions options = FullyDecoded) const; 8768: 8768: bool hasQuery() const; 8768: void setQuery(const QString &query, ParsingMode mode = TolerantMode); 8768: void setQuery(const QUrlQuery &query); 8768: QString query(ComponentFormattingOptions = PrettyDecoded) const; 8768: 8768: bool hasFragment() const; 8768: QString fragment(ComponentFormattingOptions options = PrettyDecoded) const; 8768: void setFragment(const QString &fragment, ParsingMode mode = TolerantMode); 8768: 8768: [[nodiscard]] QUrl resolved(const QUrl &relative) const; 8768: 8768: bool isRelative() const; 8768: bool isParentOf(const QUrl &url) const; 8768: 8768: bool isLocalFile() const; 8768: static QUrl fromLocalFile(const QString &localfile); 8768: QString toLocalFile() const; 8768: 8768: void detach(); 8768: bool isDetached() const; 8768: 8768: bool operator <(const QUrl &url) const; 8768: bool operator ==(const QUrl &url) const; 8768: bool operator !=(const QUrl &url) const; 8768: 8768: bool matches(const QUrl &url, FormattingOptions options) const; 8768: 8768: static QString fromPercentEncoding(const QByteArray &); 8768: static QByteArray toPercentEncoding(const QString &, 8768: const QByteArray &exclude = QByteArray(), 8768: const QByteArray &include = QByteArray()); 8768: # 353 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qurl.h" 3 4 8768: private: 8768: static QString fromEncodedComponent_helper(const QByteArray &ba); 8768: 8768: public: 8768: static QString fromAce(const QByteArray &); 8768: static QByteArray toAce(const QString &); 8768: static QStringList idnWhitelist(); 8768: static QStringList toStringList(const QList &uris, FormattingOptions options = FormattingOptions(PrettyDecoded)); 8768: static QList fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode); 8768: 8768: static void setIdnWhitelist(const QStringList &); 8768: friend __attribute__((visibility("default"))) uint qHash(const QUrl &url, uint seed) noexcept; 8768: 8768: private: 8768: QUrlPrivate *d; 8768: friend class QUrlQuery; 8768: 8768: public: 8768: typedef QUrlPrivate * DataPtr; 8768: inline DataPtr &data_ptr() { return d; } 8768: }; 8768: 8768: 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); } 8768: 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); } 8768: 8768: 8768: 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::UrlFormattingOption f2) 8768: { return QUrl::FormattingOptions(f1) | f2; } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption f1, QUrl::FormattingOptions f2) 8768: { return f2 | f1; } 8768: constexpr inline QIncompatibleFlag operator|(QUrl::UrlFormattingOption f1, int f2) 8768: { return QIncompatibleFlag(int(f1) | f2); } 8768: 8768: 8768: inline QUrl::FormattingOptions &operator|=(QUrl::FormattingOptions &i, QUrl::ComponentFormattingOptions f) 8768: { i |= QUrl::UrlFormattingOption(int(f)); return i; } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOption f) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::UrlFormattingOption i, QUrl::ComponentFormattingOptions f) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::UrlFormattingOption i) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::UrlFormattingOption i) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::FormattingOptions i, QUrl::ComponentFormattingOptions f) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOption f, QUrl::FormattingOptions i) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: constexpr inline QUrl::FormattingOptions operator|(QUrl::ComponentFormattingOptions f, QUrl::FormattingOptions i) 8768: { return i | QUrl::UrlFormattingOption(int(f)); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUrl &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUrl &); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUrl &); 8768: 8768: 8768: 8768: # 56 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 1 3 4 8768: # 63 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QUuid 8768: { 8768: public: 8768: enum Variant { 8768: VarUnknown =-1, 8768: NCS = 0, 8768: DCE = 2, 8768: Microsoft = 6, 8768: Reserved = 7 8768: }; 8768: 8768: enum Version { 8768: VerUnknown =-1, 8768: Time = 1, 8768: EmbeddedPOSIX = 2, 8768: Md5 = 3, 8768: Name = Md5, 8768: Random = 4, 8768: Sha1 = 5 8768: }; 8768: 8768: 8768: constexpr QUuid() noexcept : data1(0), data2(0), data3(0), data4{0,0,0,0,0,0,0,0} {} 8768: 8768: constexpr QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, 8768: uchar b4, uchar b5, uchar b6, uchar b7,cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 uchar b8) noexcept 8768: : data1(l), data2(w1), data3(w2), data4{b1, b2, b3, b4, b5, b6, b7, b8} {} 8768: # 118 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8768: QUuid(const QString &); 8768: QUuid(const char *); 8768: QString toString() const; 8768: QUuid(const QByteArray &); 8768: QByteArray toByteArray() const; 8768: QByteArray toRfc4122() const; 8768: static QUuid fromRfc4122(const QByteArray &); 8768: bool isNull() const noexcept; 8768: 8768: bool operator==(const QUuid &orig) const noexcept 8768: { 8768: if (data1 != orig.data1 || data2 != orig.data2 || 8768: data3 != orig.data3) 8768: return false; 8768: 8768: for (uint i = 0; i < 8; i++) 8768: if (data4[i] != orig.data4[i]) 8768: return false; 8768: 8768: return true; 8768: } 8768: 8768: bool operator!=(const QUuid &orig) const noexcept 8768: { 8768: return !(*this == orig); 8768: } 8768: 8768: bool operator<(const QUuid &other) const noexcept; 8768: bool operator>(const QUuid &other) const noexcept; 8768: # 189 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8768: static QUuid createUuid(); 8768: 8768: static QUuid createUuidV3(const QUuid &ns, const QByteArray &baseData); 8768: static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData); 8768: static inline QUuid createUuidV3(const QUuid &ns, const QString &baseData) 8768: { 8768: return QUuid::createUuidV3(ns, baseData.toUtf8()); 8768: } 8768: 8768: static inline QUuid createUuidV5(const QUuid &ns, const QString &baseData) 8768: { 8768: return QUuid::createUuidV5(ns, baseData.toUtf8()); 8768: } 8768: 8768: 8768: 8768: QUuid::Variant variant() const noexcept; 8768: QUuid::Version version() const noexcept; 8768: # 215 "/usr/include/x86_64-linux-gnu/qt5/QtCore/quuid.h" 3 4 8768: uint data1; 8768: ushort data2; 8768: ushort data3; 8768: uchar data4[8]; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QUuid &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QUuid &); 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QUuid &); 8768: 8768: 8768: __attribute__((visibility("default"))) uint qHash(const QUuid &uuid, uint seed = 0) noexcept; 8768: 8768: inline bool operator<=(const QUuid &lhs, const QUuid &rhs) noexcept 8768: { return !(rhs < lhs); } 8768: inline bool operator>=(const QUuid &lhs, const QUuid &rhs) noexcept 8768: { return !(lhs < rhs); } 8768: 8768: 8768: # 57 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpoint.h" 1 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qpoint.h" 3 4 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QPoint 8768: { 8768: public: 8768: constexpr QPoint(); 8768: constexpr QPoint(int xpos, int ypos); 8768: 8768: constexpr inline bool isNull() const; 8768: 8768: constexpr inline int x() const; 8768: constexpr inline int y() const; 8768: inline void setX(int x); 8768: inline void setY(int y); 8768: 8768: constexpr inline int manhattanLength() const; 8768: 8768: inline int &rx(); 8768: inline int &ry(); 8768: 8768: inline QPoint &operator+=(const QPoint &p); 8768: inline QPoint &operator-=(const QPoint &p); 8768: 8768: inline QPoint &operator*=(float factor); 8768: inline QPoint &operator*=(double factor); 8768: inline QPoint &operator*=(int factor); 8768: 8768: inline QPoint &operator/=(qreal divisor); 8768: 8768: constexpr static inline int dotProduct(const QPoint &p1, const QPoint &p2) 8768: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8768: 8768: friend constexpr inline bool operator==(const QPoint &, const QPoint &); 8768: friend constexpr inline bool operator!=(const QPoint &, const QPoint &); 8768: friend constexpr inline const QPoint operator+(const QPoint &, const QPoint &); 8768: friend constexpr inline const QPoint operator-(const QPoint &, const QPoint &); 8768: friend constexpr inline const QPoint operator*(const QPoint &, float); 8768: friend constexpr inline const QPoint operator*(float, const QPoint &); 8768: friend constexpr inline const QPoint operator*(const QPoint &, double); 8768: friend constexpr inline const QPoint operator*(double, const QPoint &); 8768: friend constexpr inline const QPoint operator*(const QPoint &, int); 8768: friend constexpr inline const QPoint operator*(int, const QPoint &); 8768: friend constexpr inline const QPoint operator+(const QPoint &); 8768: friend constexpr inline const QPoint operator-(const QPoint &); 8768: friend constexpr inline const QPoint operator/(const QPoint &, qreal); 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: friend class QTransform; 8768: int xp; 8768: int yp; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPoint &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPoint &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QPoint::QPoint() : xp(0), yp(0) {} 8768: 8768: constexpr inline QPoint::QPoint(int xpos, int ypos) : xp(xpos), yp(ypos) {} 8768: 8768: constexpr inline bool QPoint::isNull() const 8768: { return xp == 0 && yp == 0; } 8768: 8768: constexpr inline int QPoint::x() const 8768: { return xp; } 8768: 8768: constexpr inline int QPoint::y() const 8768: { return yp; } 8768: 8768: inline void QPoint::setX(int xpos) 8768: { xp = xpos; } 8768: 8768: inline void QPoint::setY(int ypos) 8768: { yp = ypos; } 8768: 8768: inline int constexpr QPoint::manhattanLength() const 8768: { return qAbs(x())+qAbs(y()); } 8768: 8768: inline int &QPoint::rx() 8768: { return xp; } 8768: 8768: inline int &QPoint::ry() 8768: { return yp; } 8768: 8768: inline QPoint &QPoint::operator+=(const QPoint &p) 8768: { xp+=p.xp; yp+=p.yp; return *this; } 8768: 8768: inline QPoint &QPoint::operator-=(const QPoint &p) 8768: { xp-=p.xp; yp-=p.yp; return *this; } 8768: 8768: inline QPoint &QPoint::operator*=(float factor) 8768: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8768: 8768: inline QPoint &QPoint::operator*=(double factor) 8768: { xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; } 8768: 8768: inline QPoint &QPoint::operator*=(int factor) 8768: { xp = xp*factor; yp = yp*factor; return *this; } 8768: 8768: constexpr inline bool operator==(const QPoint &p1, const QPoint &p2) 8768: { return p1.xp == p2.xp && p1.yp == p2.yp; } 8768: 8768: constexpr inline bool operator!=(const QPoint &p1, const QPoint &p2) 8768: { return p1.xp != p2.xp || p1.yp != p2.yp; } 8768: 8768: constexpr inline const QPoint operator+(const QPoint &p1, const QPoint &p2) 8768: { return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); } 8768: 8768: constexpr inline const QPoint operator-(const QPoint &p1, const QPoint &p2) 8768: { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } 8768: 8768: constexpr inline const QPoint operator*(const QPoint &p, float factor) 8768: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8768: 8768: constexpr inline const QPoint operator*(const QPoint &p, double factor) 8768: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8768: 8768: constexpr inline const QPoint operator*(const QPoint &p, int factor) 8768: { return QPoint(p.xp*factor, p.yp*factor); } 8768: 8768: constexpr inline const QPoint operator*(float factor, const QPoint &p) 8768: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8768: 8768: constexpr inline const QPoint operator*(double factor, const QPoint &p) 8768: { return QPoint(qRound(p.xp*factor), qRound(p.yp*factor)); } 8768: 8768: constexpr inline const QPoint operator*(int factor, const QPoint &p) 8768: { return QPoint(p.xp*factor, p.yp*factor); } 8768: 8768: constexpr inline const QPoint operator+(const QPoint &p) 8768: { return p; } 8768: 8768: constexpr inline const QPoint operator-(const QPoint &p) 8768: { return QPoint(-p.xp, -p.yp); } 8768: 8768: inline QPoint &QPoint::operator/=(qreal c) 8768: { 8768: xp = qRound(xp/c); 8768: yp = qRound(yp/c); 8768: return *this; 8768: } 8768: 8768: constexpr inline const QPoint operator/(const QPoint &p, qreal c) 8768: { 8768: return QPoint(qRound(p.xp/c), qRound(p.yp/c)); 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QPoint &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QPointF 8768: { 8768: public: 8768: constexpr QPointF(); 8768: constexpr QPointF(const QPoint &p); 8768: constexpr QPointF(qreal xpos, qreal ypos); 8768: 8768: constexpr inline qreal manhattanLength() const; 8768: 8768: inline bool isNull() const; 8768: 8768: constexpr inline qreal x() const; 8768: constexpr inline qreal y() const; 8768: inline void setX(qreal x); 8768: inline void setY(qreal y); 8768: 8768: inline qreal &rx(); 8768: inline qreal &ry(); 8768: 8768: inline QPointF &operator+=(const QPointF &p); 8768: inline QPointF &operator-=(const QPointF &p); 8768: inline QPointF &operator*=(qreal c); 8768: inline QPointF &operator/=(qreal c); 8768: 8768: constexpr static inline qreal dotProduct(const QPointF &p1, const QPointF &p2) 8768: { return p1.xp * p2.xp + p1.yp * p2.yp; } 8768: 8768: friend constexpr inline bool operator==(const QPointF &, const QPointF &); 8768: friend constexpr inline bool operator!=(const QPointF &, const QPointF &); 8768: friend constexpr inline const QPointF operator+(const QPointF &, const QPointF &); 8768: friend constexpr inline const QPointF operator-(const QPointF &, const QPointF &); 8768: friend constexpr inline const QPointF operator*(qreal, const QPointF &); 8768: friend constexpr inline const QPointF operator*(const QPointF &, qreal); 8768: friend constexpr inline const QPointF operator+(const QPointF &); 8768: friend constexpr inline const QPointF operator-(const QPointF &); 8768: friend constexpr inline const QPointF operator/(const QPointF &, qreal); 8768: 8768: constexpr QPoint toPoint() const; 8768: 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: friend class QMatrix; 8768: friend class QTransform; 8768: 8768: qreal xp; 8768: qreal yp; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QPointF &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QPointF &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QPointF::QPointF() : xp(0), yp(0) { } 8768: 8768: constexpr inline QPointF::QPointF(qreal xpos, qreal ypos) : xp(xpos), yp(ypos) { } 8768: 8768: constexpr inline QPointF::QPointF(const QPoint &p) : xp(p.x()), yp(p.y()) { } 8768: 8768: constexpr inline qreal QPointF::manhattanLength() const 8768: { 8768: return qAbs(x())+qAbs(y()); 8768: } 8768: 8768: inline bool QPointF::isNull() const 8768: { 8768: return qIsNull(xp) && qIsNull(yp); 8768: } 8768: 8768: constexpr inline qreal QPointF::x() const 8768: { 8768: return xp; 8768: } 8768: 8768: constexpr inline qreal QPointF::y() const 8768: { 8768: return yp; 8768: } 8768: 8768: inline void QPointF::setX(qreal xpos) 8768: { 8768: xp = xpos; 8768: } 8768: 8768: inline void QPointF::setY(qreal ypos) 8768: { 8768: yp = ypos; 8768: } 8768: 8768: inline qreal &QPointF::rx() 8768: { 8768: return xp; 8768: } 8768: 8768: inline qreal &QPointF::ry() 8768: { 8768: return yp; 8768: } 8768: 8768: inline QPointF &QPointF::operator+=(const QPointF &p) 8768: { 8768: xp+=p.xp; 8768: yp+=p.yp; 8768: return *this; 8768: } 8768: 8768: inline QPointF &QPointF::operator-=(const QPointF &p) 8768: { 8768: xp-=p.xp; yp-=p.yp; return *this; 8768: } 8768: 8768: inline QPointF &QPointF::operator*=(qreal c) 8768: { 8768: xp*=c; yp*=c; return *this; 8768: } 8768: 8768: constexpr inline bool operator==(const QPointF &p1, const QPointF &p2) 8768: { 8768: return qFuzzyIsNull(p1.xp - p2.xp) && qFuzzyIsNull(p1.yp - p2.yp); 8768: } 8768: 8768: constexpr inline bool operator!=(const QPointF &p1, const QPointF &p2) 8768: { 8768: return !qFuzzyIsNull(p1.xp - p2.xp) || !qFuzzyIsNull(p1.yp - p2.yp); 8768: } 8768: 8768: constexpr inline const QPointF operator+(const QPointF &p1, const QPointF &p2) 8768: { 8768: return QPointF(p1.xp+p2.xp, p1.yp+p2.yp); 8768: } 8768: 8768: constexpr inline const QPointF operator-(const QPointF &p1, const QPointF &p2) 8768: { 8768: return QPointF(p1.xp-p2.xp, p1.yp-p2.yp); 8768: } 8768: 8768: constexpr inline const QPointF operator*(const QPointF &p, qreal c) 8768: { 8768: return QPointF(p.xp*c, p.yp*c); 8768: } 8768: 8768: constexpr inline const QPointF operator*(qreal c, const QPointF &p) 8768: { 8768: return QPointF(p.xp*c, p.yp*c); 8768: } 8768: 8768: constexpr inline const QPointF operator+(const QPointF &p) 8768: { 8768: return p; 8768: } 8768: 8768: constexpr inline const QPointF operator-(const QPointF &p) 8768: { 8768: return QPointF(-p.xp, -p.yp); 8768: } 8768: 8768: inline QPointF &QPointF::operator/=(qreal divisor) 8768: { 8768: xp/=divisor; 8768: yp/=divisor; 8768: return *this; 8768: } 8768: 8768: constexpr inline const QPointF operator/(const QPointF &p, qreal divisor) 8768: { 8768: return QPointF(p.xp/divisor, p.yp/divisor); 8768: } 8768: 8768: constexpr inline QPoint QPointF::toPoint() const 8768: { 8768: return QPoint(qRound(xp), qRound(yp)); 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug d, const QPointF &p); 8768: 8768: 8768: 8768: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h" 1 3 4 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h" 3 4 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QSize 8768: { 8768: public: 8768: constexpr QSize() noexcept; 8768: constexpr QSize(int w, int h) noexcept; 8768: 8768: constexpr inline bool isNull() const noexcept; 8768: constexpr inline bool isEmpty() const noexcept; 8768: constexpr inline bool isValid() const noexcept; 8768: 8768: constexpr inline int width() const noexcept; 8768: constexpr inline int height() const noexcept; 8768: inline void setWidth(int w) noexcept; 8768: inline void setHeight(int h) noexcept; 8768: void transpose() noexcept; 8768: [[nodiscard]] constexpr inline QSize transposed() const noexcept; 8768: 8768: inline void scale(int w, int h, Qt::AspectRatioMode mode) noexcept; 8768: inline void scale(const QSize &s, Qt::AspectRatioMode mode) noexcept; 8768: [[nodiscard]] QSize scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept; 8768: [[nodiscard]] QSize scaled(const QSize &s, Qt::AspectRatioMode mode) const noexcept; 8768: 8768: [[nodiscard]] constexpr inline QSize expandedTo(const QSize &) const noexcept; 8768: [[nodiscard]] constexpr inline QSize boundedTo(const QSize &) const noexcept; 8768: 8768: inline int &rwidth() noexcept; 8768: inline int &rheight() noexcept; 8768: 8768: inline QSize &operator+=(const QSize &) noexcept; 8768: inline QSize &operator-=(const QSize &) noexcept; 8768: inline QSize &operator*=(qreal c) noexcept; 8768: inline QSize &operator/=(qreal c); 8768: 8768: friend inline constexpr bool operator==(const QSize &, const QSize &) noexcept; 8768: friend inline constexpr bool operator!=(const QSize &, const QSize &) noexcept; 8768: friend inline constexpr const QSize operator+(const QSize &, const QSize &) noexcept; 8768: friend inline constexpr const QSize operator-(const QSize &, const QSize &) noexcept; 8768: friend inline constexpr const QSize operator*(const QSize &, qreal) noexcept; 8768: friend inline constexpr const QSize operator*(qreal, const QSize &) noexcept; 8768: friend inline const QSize operator/(const QSize &, qreal); 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: int wd; 8768: int ht; 8768: }; 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSize &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSize &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QSize::QSize() noexcept : wd(-1), ht(-1) {} 8768: 8768: constexpr inline QSize::QSize(int w, int h) noexcept : wd(w), ht(h) {} 8768: 8768: constexpr inline bool QSize::isNull() const noexcept 8768: { return wd==0 && ht==0; } 8768: 8768: constexpr inline bool QSize::isEmpty() const noexcept 8768: { return wd<1 || ht<1; } 8768: 8768: constexpr inline bool QSize::isValid() const noexcept 8768: { return wd>=0 && ht>=0; } 8768: 8768: constexpr inline int QSize::width() const noexcept 8768: { return wd; } 8768: 8768: constexpr inline int QSize::height() const noexcept 8768: { return ht; } 8768: 8768: inline void QSize::setWidth(int w) noexcept 8768: { wd = w; } 8768: 8768: inline void QSize::setHeight(int h) noexcept 8768: { ht = h; } 8768: 8768: constexpr inline QSize QSize::transposed() const noexcept 8768: { return QSize(ht, wd); } 8768: 8768: inline void QSize::scale(int w, int h, Qt::AspectRatioMode mode) noexcept 8768: { scale(QSize(w, h), mode); } 8768: 8768: inline void QSize::scale(const QSize &s, Qt::AspectRatioMode mode) noexcept 8768: { *this = scaled(s, mode); } 8768: 8768: inline QSize QSize::scaled(int w, int h, Qt::AspectRatioMode mode) const noexcept 8768: { return scaled(QSize(w, h), mode); } 8768: 8768: inline int &QSize::rwidth() noexcept 8768: { return wd; } 8768: 8768: inline int &QSize::rheight() noexcept 8768: { return ht; } 8768: 8768: inline QSize &QSize::operator+=(const QSize &s) noexcept 8768: { wd+=s.wd; ht+=s.ht; return *this; } 8768: 8768: inline QSize &QSize::operator-=(const QSize &s) noexcept 8768: { wd-=s.wd; ht-=s.ht; return *this; } 8768: 8768: inline QSize &QSize::operator*=(qreal c) noexcept 8768: { wd = qRound(wd*c); ht = qRound(ht*c); return *this; } 8768: 8768: constexpr inline bool operator==(const QSize &s1, const QSize &s2) noexcept 8768: { return s1.wd == s2.wd && s1.ht == s2.ht; } 8768: 8768: constexpr inline bool operator!=(const QSize &s1, const QSize &s2) noexcept 8768: { return s1.wd != s2.wd || s1.ht != s2.ht; } 8768: 8768: constexpr inline const QSize operator+(const QSize & s1, const QSize & s2) noexcept 8768: { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } 8768: 8768: constexpr inline const QSize operator-(const QSize &s1, const QSize &s2) noexcept 8768: { return QSize(s1.wd-s2.wd, s1.ht-s2.ht); } 8768: 8768: constexpr inline const QSize operator*(const QSize &s, qreal c) noexcept 8768: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8768: 8768: constexpr inline const QSize operator*(qreal c, const QSize &s) noexcept 8768: { return QSize(qRound(s.wd*c), qRound(s.ht*c)); } 8768: 8768: inline QSize &QSize::operator/=(qreal c) 8768: { 8768: do { } while ((false) && (!qFuzzyIsNull(c))); 8768: wd = qRound(wd/c); ht = qRound(ht/c); 8768: return *this; 8768: } 8768: 8768: inline const QSize operator/(const QSize &s, qreal c) 8768: { 8768: do { } while ((false) && (!qFuzzyIsNull(c))); 8768: return QSize(qRound(s.wd/c), qRound(s.ht/c)); 8768: } 8768: 8768: constexpr inline QSize QSize::expandedTo(const QSize & otherSize) const noexcept 8768: { 8768: return QSize(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8768: } 8768: 8768: constexpr inline QSize QSize::boundedTo(const QSize & otherSize) const noexcept 8768: { 8768: return QSize(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSize &); 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QSizeF 8768: { 8768: public: 8768: constexpr QSizeF() noexcept; 8768: constexpr QSizeF(const QSize &sz) noexcept; 8768: constexpr QSizeF(qreal w, qreal h) noexcept; 8768: 8768: inline bool isNull() const noexcept; 8768: constexpr inline bool isEmpty() const noexcept; 8768: constexpr inline bool isValid() const noexcept; 8768: 8768: constexpr inline qreal width() const noexcept; 8768: constexpr inline qreal height() const noexcept; 8768: inline void setWidth(qreal w) noexcept; 8768: inline void setHeight(qreal h) noexcept; 8768: void transpose() noexcept; 8768: [[nodiscard]] constexpr inline QSizeF transposed() const noexcept; 8768: 8768: inline void scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept; 8768: inline void scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept; 8768: [[nodiscard]] QSizeF scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept; 8768: [[nodiscard]] QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const noexcept; 8768: 8768: [[nodiscard]] constexpr inline QSizeF expandedTo(const QSizeF &) const noexcept; 8768: [[nodiscard]] constexpr inline QSizeF boundedTo(const QSizeF &) const noexcept; 8768: 8768: inline qreal &rwidth() noexcept; 8768: inline qreal &rheight() noexcept; 8768: 8768: inline QSizeF &operator+=(const QSizeF &) noexcept; 8768: inline QSizeF &operator-=(const QSizeF &) noexcept; 8768: inline QSizeF &operator*=(qreal c) noexcept; 8768: inline QSizeF &operator/=(qreal c); 8768: 8768: friend constexpr inline bool operator==(const QSizeF &, const QSizeF &) noexcept; 8768: friend constexpr inline bool operator!=(const QSizeF &, const QSizeF &) noexcept; 8768: friend constexpr inline const QSizeF operator+(const QSizeF &, const QSizeF &) noexcept; 8768: friend constexpr inline const QSizeF operator-(const QSizeF &, const QSizeF &) noexcept; 8768: friend constexpr inline const QSizeF operator*(const QSizeF &, qreal) noexcept; 8768: friend constexpr inline const QSizeF operator*(qreal, const QSizeF &) noexcept; 8768: friend inline const QSizeF operator/(const QSizeF &, qreal); 8768: 8768: constexpr inline QSize toSize() const noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: qreal wd; 8768: qreal ht; 8768: }; 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QSizeF &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QSizeF &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QSizeF::QSizeF() noexcept : wd(-1.), ht(-1.) {} 8768: 8768: constexpr inline QSizeF::QSizeF(const QSize &sz) noexcept : wd(sz.width()), ht(sz.height()) {} 8768: 8768: constexpr inline QSizeF::QSizeF(qreal w, qreal h) noexcept : wd(w), ht(h) {} 8768: 8768: inline bool QSizeF::isNull() const noexcept 8768: { return qIsNull(wd) && qIsNull(ht); } 8768: 8768: constexpr inline bool QSizeF::isEmpty() const noexcept 8768: { return wd <= 0. || ht <= 0.; } 8768: 8768: constexpr inline bool QSizeF::isValid() const noexcept 8768: { return wd >= 0. && ht >= 0.; } 8768: 8768: constexpr inline qreal QSizeF::width() const noexcept 8768: { return wd; } 8768: 8768: constexpr inline qreal QSizeF::height() const noexcept 8768: { return ht; } 8768: 8768: inline void QSizeF::setWidth(qreal w) noexcept 8768: { wd = w; } 8768: 8768: inline void QSizeF::setHeight(qreal h) noexcept 8768: { ht = h; } 8768: 8768: constexpr inline QSizeF QSizeF::transposed() const noexcept 8768: { return QSizeF(ht, wd); } 8768: 8768: inline void QSizeF::scale(qreal w, qreal h, Qt::AspectRatioMode mode) noexcept 8768: { scale(QSizeF(w, h), mode); } 8768: 8768: inline void QSizeF::scale(const QSizeF &s, Qt::AspectRatioMode mode) noexcept 8768: { *this = scaled(s, mode); } 8768: 8768: inline QSizeF QSizeF::scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const noexcept 8768: { return scaled(QSizeF(w, h), mode); } 8768: 8768: inline qreal &QSizeF::rwidth() noexcept 8768: { return wd; } 8768: 8768: inline qreal &QSizeF::rheight() noexcept 8768: { return ht; } 8768: 8768: inline QSizeF &QSizeF::operator+=(const QSizeF &s) noexcept 8768: { wd += s.wd; ht += s.ht; return *this; } 8768: 8768: inline QSizeF &QSizeF::operator-=(const QSizeF &s) noexcept 8768: { wd -= s.wd; ht -= s.ht; return *this; } 8768: 8768: inline QSizeF &QSizeF::operator*=(qreal c) noexcept 8768: { wd *= c; ht *= c; return *this; } 8768: 8768: constexpr inline bool operator==(const QSizeF &s1, const QSizeF &s2) noexcept 8768: { return qFuzzyCompare(s1.wd, s2.wd) && qFuzzyCompare(s1.ht, s2.ht); } 8768: 8768: constexpr inline bool operator!=(const QSizeF &s1, const QSizeF &s2) noexcept 8768: { return !qFuzzyCompare(s1.wd, s2.wd) || !qFuzzyCompare(s1.ht, s2.ht); } 8768: 8768: constexpr inline const QSizeF operator+(const QSizeF & s1, const QSizeF & s2) noexcept 8768: { return QSizeF(s1.wd+s2.wd, s1.ht+s2.ht); } 8768: 8768: constexpr inline const QSizeF operator-(const QSizeF &s1, const QSizeF &s2) noexcept 8768: { return QSizeF(s1.wd-s2.wd, s1.ht-s2.ht); } 8768: 8768: constexpr inline const QSizeF operator*(const QSizeF &s, qreal c) noexcept 8768: { return QSizeF(s.wd*c, s.ht*c); } 8768: 8768: constexpr inline const QSizeF operator*(qreal c, const QSizeF &s) noexcept 8768: { return QSizeF(s.wd*c, s.ht*c); } 8768: 8768: inline QSizeF &QSizeF::operator/=(qreal c) 8768: { 8768: do { } while ((false) && (!qFuzzyIsNull(c))); 8768: wd = wd/c; ht = ht/c; 8768: return *this; 8768: } 8768: 8768: inline const QSizeF operator/(const QSizeF &s, qreal c) 8768: { 8768: do { } while ((false) && (!qFuzzyIsNull(c))); 8768: return QSizeF(s.wd/c, s.ht/c); 8768: } 8768: 8768: constexpr inline QSizeF QSizeF::expandedTo(const QSizeF & otherSize) const noexcept 8768: { 8768: return QSizeF(qMax(wd,otherSize.wd), qMax(ht,otherSize.ht)); 8768: } 8768: 8768: constexpr inline QSizeF QSizeF::boundedTo(const QSizeF & otherSize) const noexcept 8768: { 8768: return QSizeF(qMin(wd,otherSize.wd), qMin(ht,otherSize.ht)); 8768: } 8768: 8768: constexpr inline QSize QSizeF::toSize() const noexcept 8768: { 8768: return QSize(qRound(wd), qRound(ht)); 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QSizeF &); 8768: 8768: 8768: 8768: # 60 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmargins.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qmargins.h" 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QMargins 8768: { 8768: public: 8768: constexpr QMargins() noexcept; 8768: constexpr QMargins(int left, int top, int right, int bottom) noexcept; 8768: 8768: constexpr bool isNull() const noexcept; 8768: 8768: constexpr int left() const noexcept; 8768: constexpr int top() const noexcept; 8768: constexpr int right() const noexcept; 8768: constexpr int bottom() const noexcept; 8768: 8768: void setLeft(int left) noexcept; 8768: void setTop(int top) noexcept; 8768: void setRight(int right) noexcept; 8768: void setBottom(int bottom) noexcept; 8768: 8768: QMargins &operator+=(const QMargins &margins) noexcept; 8768: QMargins &operator-=(const QMargins &margins) noexcept; 8768: QMargins &operator+=(int) noexcept; 8768: QMargins &operator-=(int) noexcept; 8768: QMargins &operator*=(int) noexcept; 8768: QMargins &operator/=(int); 8768: QMargins &operator*=(qreal) noexcept; 8768: QMargins &operator/=(qreal); 8768: 8768: private: 8768: int m_left; 8768: int m_top; 8768: int m_right; 8768: int m_bottom; 8768: 8768: friend constexpr inline bool operator==(const QMargins &, const QMargins &) noexcept; 8768: friend constexpr inline bool operator!=(const QMargins &, const QMargins &) noexcept; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMargins &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMargins &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QMargins::QMargins() noexcept : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8768: 8768: constexpr inline QMargins::QMargins(int aleft, int atop, int aright, int abottom) noexcept 8768: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8768: 8768: constexpr inline bool QMargins::isNull() const noexcept 8768: { return m_left==0 && m_top==0 && m_right==0 && m_bottom==0; } 8768: 8768: constexpr inline int QMargins::left() const noexcept 8768: { return m_left; } 8768: 8768: constexpr inline int QMargins::top() const noexcept 8768: { return m_top; } 8768: 8768: constexpr inline int QMargins::right() const noexcept 8768: { return m_right; } 8768: 8768: constexpr inline int QMargins::bottom() const noexcept 8768: { return m_bottom; } 8768: 8768: 8768: inline void QMargins::setLeft(int aleft) noexcept 8768: { m_left = aleft; } 8768: 8768: inline void QMargins::setTop(int atop) noexcept 8768: { m_top = atop; } 8768: 8768: inline void QMargins::setRight(int aright) noexcept 8768: { m_right = aright; } 8768: 8768: inline void QMargins::setBottom(int abottom) noexcept 8768: { m_bottom = abottom; } 8768: 8768: constexpr inline bool operator==(const QMargins &m1, const QMargins &m2) noexcept 8768: { 8768: return 8768: m1.m_left == m2.m_left && 8768: m1.m_top == m2.m_top && 8768: m1.m_right == m2.m_right && 8768: m1.m_bottom == m2.m_bottom; 8768: } 8768: 8768: constexpr inline bool operator!=(const QMargins &m1, const QMargins &m2) noexcept 8768: { 8768: return 8768: m1.m_left != m2.m_left || 8768: m1.m_top != m2.m_top || 8768: m1.m_right != m2.m_right || 8768: m1.m_bottom != m2.m_bottom; 8768: } 8768: 8768: constexpr inline QMargins operator+(const QMargins &m1, const QMargins &m2) noexcept 8768: { 8768: return QMargins(m1.left() + m2.left(), m1.top() + m2.top(), 8768: m1.right() + m2.right(), m1.bottom() + m2.bottom()); 8768: } 8768: 8768: constexpr inline QMargins operator-(const QMargins &m1, const QMargins &m2) noexcept 8768: { 8768: return QMargins(m1.left() - m2.left(), m1.top() - m2.top(), 8768: m1.right() - m2.right(), m1.bottom() - m2.bottom()); 8768: } 8768: 8768: constexpr inline QMargins operator+(const QMargins &lhs, int rhs) noexcept 8768: { 8768: return QMargins(lhs.left() + rhs, lhs.top() + rhs, 8768: lhs.right() + rhs, lhs.bottom() + rhs); 8768: } 8768: 8768: constexpr inline QMargins operator+(int lhs, const QMargins &rhs) noexcept 8768: { 8768: return QMargins(rhs.left() + lhs, rhs.top() + lhs, 8768: rhs.right() + lhs, rhs.bottom() + lhs); 8768: } 8768: 8768: constexpr inline QMargins operator-(const QMargins &lhs, int rhs) noexcept 8768: { 8768: return QMargins(lhs.left() - rhs, lhs.top() - rhs, 8768: lhs.right() - rhs, lhs.bottom() - rhs); 8768: } 8768: 8768: constexpr inline QMargins operator*(const QMargins &margins, int factor) noexcept 8768: { 8768: return QMargins(margins.left() * factor, margins.top() * factor, 8768: margins.right() * factor, margins.bottom() * factor); 8768: } 8768: 8768: constexpr inline QMargins operator*(int factor, const QMargins &margins) noexcept 8768: { 8768: return QMargins(margins.left() * factor, margins.top() * factor, 8768: margins.right() * factor, margins.bottom() * factor); 8768: } 8768: 8768: constexpr inline QMargins operator*(const QMargins &margins, qreal factor) noexcept 8768: { 8768: return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), 8768: qRound(margins.right() * factor), qRound(margins.bottom() * factor)); 8768: } 8768: 8768: constexpr inline QMargins operator*(qreal factor, const QMargins &margins) noexcept 8768: { 8768: return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor), 8768: qRound(margins.right() * factor), qRound(margins.bottom() * factor)); 8768: } 8768: 8768: constexpr inline QMargins operator/(const QMargins &margins, int divisor) 8768: { 8768: return QMargins(margins.left() / divisor, margins.top() / divisor, 8768: margins.right() / divisor, margins.bottom() / divisor); 8768: } 8768: 8768: constexpr inline QMargins operator/(const QMargins &margins, qreal divisor) 8768: { 8768: return QMargins(qRound(margins.left() / divisor), qRound(margins.top() / divisor), 8768: qRound(margins.right() / divisor), qRound(margins.bottom() / divisor)); 8768: } 8768: 8768: inline QMargins &QMargins::operator+=(const QMargins &margins) noexcept 8768: { 8768: return *this = *this + margins; 8768: } 8768: 8768: inline QMargins &QMargins::operator-=(const QMargins &margins) noexcept 8768: { 8768: return *this = *this - margins; 8768: } 8768: 8768: inline QMargins &QMargins::operator+=(int margin) noexcept 8768: { 8768: m_left += margin; 8768: m_top += margin; 8768: m_right += margin; 8768: m_bottom += margin; 8768: return *this; 8768: } 8768: 8768: inline QMargins &QMargins::operator-=(int margin) noexcept 8768: { 8768: m_left -= margin; 8768: m_top -= margin; 8768: m_right -= margin; 8768: m_bottom -= margin; 8768: return *this; 8768: } 8768: 8768: inline QMargins &QMargins::operator*=(int factor) noexcept 8768: { 8768: return *this = *this * factor; 8768: } 8768: 8768: inline QMargins &QMargins::operator/=(int divisor) 8768: { 8768: return *this = *this / divisor; 8768: } 8768: 8768: inline QMargins &QMargins::operator*=(qreal factor) noexcept 8768: { 8768: return *this = *this * factor; 8768: } 8768: 8768: inline QMargins &QMargins::operator/=(qreal divisor) 8768: { 8768: return *this = *this / divisor; 8768: } 8768: 8768: constexpr inline QMargins operator+(const QMargins &margins) noexcept 8768: { 8768: return margins; 8768: } 8768: 8768: constexpr inline QMargins operator-(const QMargins &margins) noexcept 8768: { 8768: return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMargins &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: class QMarginsF 8768: { 8768: public: 8768: constexpr QMarginsF() noexcept; 8768: constexpr QMarginsF(qreal left, qreal top, qreal right, qreal bottom) noexcept; 8768: constexpr QMarginsF(const QMargins &margins) noexcept; 8768: 8768: constexpr bool isNull() const noexcept; 8768: 8768: constexpr qreal left() const noexcept; 8768: constexpr qreal top() const noexcept; 8768: constexpr qreal right() const noexcept; 8768: constexpr qreal bottom() const noexcept; 8768: 8768: void setLeft(qreal left) noexcept; 8768: void setTop(qreal top) noexcept; 8768: void setRight(qreal right) noexcept; 8768: void setBottom(qreal bottom) noexcept; 8768: 8768: QMarginsF &operator+=(const QMarginsF &margins) noexcept; 8768: QMarginsF &operator-=(const QMarginsF &margins) noexcept; 8768: QMarginsF &operator+=(qreal addend) noexcept; 8768: QMarginsF &operator-=(qreal subtrahend) noexcept; 8768: QMarginsF &operator*=(qreal factor) noexcept; 8768: QMarginsF &operator/=(qreal divisor); 8768: 8768: constexpr inline QMargins toMargins() const noexcept; 8768: 8768: private: 8768: qreal m_left; 8768: qreal m_top; 8768: qreal m_right; 8768: qreal m_bottom; 8768: }; 8768: 8768: 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"; } }; 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QMarginsF &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QMarginsF &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QMarginsF::QMarginsF() noexcept 8768: : m_left(0), m_top(0), m_right(0), m_bottom(0) {} 8768: 8768: constexpr inline QMarginsF::QMarginsF(qreal aleft, qreal atop, qreal aright, qreal abottom) noexcept 8768: : m_left(aleft), m_top(atop), m_right(aright), m_bottom(abottom) {} 8768: 8768: constexpr inline QMarginsF::QMarginsF(const QMargins &margins) noexcept 8768: : m_left(margins.left()), m_top(margins.top()), m_right(margins.right()), m_bottom(margins.bottom()) {} 8768: 8768: constexpr inline bool QMarginsF::isNull() const noexcept 8768: { return qFuzzyIsNull(m_left) && qFuzzyIsNull(m_top) && qFuzzyIsNull(m_right) && qFuzzyIsNull(m_bottom); } 8768: 8768: constexpr inline qreal QMarginsF::left() const noexcept 8768: { return m_left; } 8768: 8768: constexpr inline qreal QMarginsF::top() const noexcept 8768: { return m_top; } 8768: 8768: constexpr inline qreal QMarginsF::right() const noexcept 8768: { return m_right; } 8768: 8768: constexpr inline qreal QMarginsF::bottom() const noexcept 8768: { return m_bottom; } 8768: 8768: 8768: inline void QMarginsF::setLeft(qreal aleft) noexcept 8768: { m_left = aleft; } 8768: 8768: inline void QMarginsF::setTop(qreal atop) noexcept 8768: { m_top = atop; } 8768: 8768: inline void QMarginsF::setRight(qreal aright) noexcept 8768: { m_right = aright; } 8768: 8768: inline void QMarginsF::setBottom(qreal abottom) noexcept 8768: { m_bottom = abottom; } 8768: 8768: constexpr inline bool operator==(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return qFuzzyCompare(lhs.left(), rhs.left()) 8768: && qFuzzyCompare(lhs.top(), rhs.top()) 8768: && qFuzzyCompare(lhs.right(), rhs.right()) 8768: && qFuzzyCompare(lhs.bottom(), rhs.bottom()); 8768: } 8768: 8768: constexpr inline bool operator!=(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return !operator==(lhs, rhs); 8768: } 8768: 8768: constexpr inline QMarginsF operator+(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return QMarginsF(lhs.left() + rhs.left(), lhs.top() + rhs.top(), 8768: lhs.right() + rhs.right(), lhs.bottom() + rhs.bottom()); 8768: } 8768: 8768: constexpr inline QMarginsF operator-(const QMarginsF &lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return QMarginsF(lhs.left() - rhs.left(), lhs.top() - rhs.top(), 8768: lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom()); 8768: } 8768: 8768: constexpr inline QMarginsF operator+(const QMarginsF &lhs, qreal rhs) noexcept 8768: { 8768: return QMarginsF(lhs.left() + rhs, lhs.top() + rhs, 8768: lhs.right() + rhs, lhs.bottom() + rhs); 8768: } 8768: 8768: constexpr inline QMarginsF operator+(qreal lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return QMarginsF(rhs.left() + lhs, rhs.top() + lhs, 8768: rhs.right() + lhs, rhs.bottom() + lhs); 8768: } 8768: 8768: constexpr inline QMarginsF operator-(const QMarginsF &lhs, qreal rhs) noexcept 8768: { 8768: return QMarginsF(lhs.left() - rhs, lhs.top() - rhs, 8768: lhs.right() - rhs, lhs.bottom() - rhs); 8768: } 8768: 8768: constexpr inline QMarginsF operator*(const QMarginsF &lhs, qreal rhs) noexcept 8768: { 8768: return QMarginsF(lhs.left() * rhs, lhs.top() * rhs, 8768: lhs.right() * rhs, lhs.bottom() * rhs); 8768: } 8768: 8768: constexpr inline QMarginsF operator*(qreal lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return QMarginsF(rhs.left() * lhs, rhs.top() * lhs, 8768: rhs.right() * lhs, rhs.bottom() * lhs); 8768: } 8768: 8768: constexpr inline QMarginsF operator/(const QMarginsF &lhs, qreal divisor) 8768: { 8768: return QMarginsF(lhs.left() / divisor, lhs.top() / divisor, 8768: lhs.right() / divisor, lhs.bottom() / divisor); 8768: } 8768: 8768: inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins) noexcept 8768: { 8768: return *this = *this + margins; 8768: } 8768: 8768: inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins) noexcept 8768: { 8768: return *this = *this - margins; 8768: } 8768: 8768: inline QMarginsF &QMarginsF::operator+=(qreal addend) noexcept 8768: { 8768: m_left += addend; 8768: m_top += addend; 8768: m_right += addend; 8768: m_bottom += addend; 8768: return *this; 8768: } 8768: 8768: inline QMarginsF &QMarginsF::operator-=(qreal subtrahend) noexcept 8768: { 8768: m_left -= subtrahend; 8768: m_top -= subtrahend; 8768: m_right -= subtrahend; 8768: m_bottom -= subtrahend; 8768: return *this; 8768: } 8768: 8768: inline QMarginsF &QMarginsF::operator*=(qreal factor) noexcept 8768: { 8768: return *this = *this * factor; 8768: } 8768: 8768: inline QMarginsF &QMarginsF::operator/=(qreal divisor) 8768: { 8768: return *this = *this / divisor; 8768: } 8768: 8768: constexpr inline QMarginsF operator+(const QMarginsF &margins) noexcept 8768: { 8768: return margins; 8768: } 8768: 8768: constexpr inline QMarginsF operator-(const QMarginsF &margins) noexcept 8768: { 8768: return QMarginsF(-margins.left(), -margins.top(), -margins.right(), -margins.bottom()); 8768: } 8768: 8768: constexpr inline QMargins QMarginsF::toMargins() const noexcept 8768: { 8768: return QMargins(qRound(m_left), qRound(m_top), qRound(m_right), qRound(m_bottom)); 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QMarginsF &); 8768: 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 2 3 4 8768: # 55 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: 8768: 8768: class __attribute__((visibility("default"))) QRect 8768: { 8768: public: 8768: constexpr QRect() noexcept : x1(0), y1(0), x2(-1), y2(-1) {} 8768: constexpr QRect(const QPoint &topleft, const QPoint &bottomright) noexcept; 8768: constexpr QRect(const QPoint &topleft, const QSize &size) noexcept; 8768: constexpr QRect(int left, int top, int width, int height) noexcept; 8768: 8768: constexpr inline bool isNull() const noexcept; 8768: constexpr inline bool isEmpty() const noexcept; 8768: constexpr inline bool isValid() const noexcept; 8768: 8768: constexpr inline int left() const noexcept; 8768: constexpr inline int top() const noexcept; 8768: constexpr inline int right() const noexcept; 8768: constexpr inline int bottom() const noexcept; 8768: [[nodiscard]] QRect normalized() const noexcept; 8768: 8768: constexpr inline int x() const noexcept; 8768: constexpr inline int y() const noexcept; 8768: inline void setLeft(int pos) noexcept; 8768: inline void setTop(int pos) noexcept; 8768: inline void setRight(int pos) noexcept; 8768: inline void setBottom(int pos) noexcept; 8768: inline void setX(int x) noexcept; 8768: inline void setY(int y) noexcept; 8768: 8768: inline void setTopLeft(const QPoint &p) noexcept; 8768: inline void setBottomRight(const QPoint &p) noexcept; 8768: inline void setTopRight(const QPoint &p) noexcept; 8768: inline void setBottomLeft(const QPoint &p) noexcept; 8768: 8768: constexpr inline QPoint topLeft() const noexcept; 8768: constexpr inline QPoint bottomRight() const noexcept; 8768: constexpr inline QPoint topRight() const noexcept; 8768: constexpr inline QPoint bottomLeft() const noexcept; 8768: constexpr inline QPoint center() const noexcept; 8768: 8768: inline void moveLeft(int pos) noexcept; 8768: inline void moveTop(int pos) noexcept; 8768: inline void moveRight(int pos) noexcept; 8768: inline void moveBottom(int pos) noexcept; 8768: inline void moveTopLeft(const QPoint &p) noexcept; 8768: inline void moveBottomRight(const QPoint &p) noexcept; 8768: inline void moveTopRight(const QPoint &p) noexcept; 8768: inline void moveBottomLeft(const QPoint &p) noexcept; 8768: inline void moveCenter(const QPoint &p) noexcept; 8768: 8768: inline void translate(int dx, int dy) noexcept; 8768: inline void translate(const QPoint &p) noexcept; 8768: [[nodiscard]] constexpr inline QRect translated(int dx, int dy) const noexcept; 8768: [[nodiscard]] constexpr inline QRect translated(const QPoint &p) const noexcept; 8768: [[nodiscard]] constexpr inline QRect transposed() const noexcept; 8768: 8768: inline void moveTo(int x, int t) noexcept; 8768: inline void moveTo(const QPoint &p) noexcept; 8768: 8768: inline void setRect(int x, int y, int w, int h) noexcept; 8768: inline void getRect(int *x, int *y, int *w, int *h) const; 8768: 8768: inline void setCoords(int x1, int y1, int x2, int y2) noexcept; 8768: inline void getCoords(int *x1, int *y1, int *x2, int *y2) const; 8768: 8768: inline void adjust(int x1, int y1, int x2, int y2) noexcept; 8768: [[nodiscard]] constexpr inline QRect adjusted(int x1, int y1, int x2, int y2) const noexcept; 8768: 8768: constexpr inline QSize size() const noexcept; 8768: constexpr inline int width() const noexcept; 8768: constexpr inline int height() const noexcept; 8768: inline void setWidth(int w) noexcept; 8768: inline void setHeight(int h) noexcept; 8768: inline void setSize(const QSize &s) noexcept; 8768: 8768: QRect operator|(const QRect &r) const noexcept; 8768: QRect operator&(const QRect &r) const noexcept; 8768: inline QRect& operator|=(const QRect &r) noexcept; 8768: inline QRect& operator&=(const QRect &r) noexcept; 8768: 8768: bool contains(const QRect &r, bool proper = false) const noexcept; 8768: bool contains(const QPoint &p, bool proper=false) const noexcept; 8768: inline bool contains(int x, int y) const noexcept; 8768: inline bool contains(int x, int y, bool proper) const noexcept; 8768: [[nodiscard]] inline QRect united(const QRect &other) const noexcept; 8768: [[nodiscard]] inline QRect intersected(const QRect &other) const noexcept; 8768: bool intersects(const QRect &r) const noexcept; 8768: 8768: constexpr inline QRect marginsAdded(const QMargins &margins) const noexcept; 8768: constexpr inline QRect marginsRemoved(const QMargins &margins) const noexcept; 8768: inline QRect &operator+=(const QMargins &margins) noexcept; 8768: inline QRect &operator-=(const QMargins &margins) noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: friend constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8768: friend constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: int x1; 8768: int y1; 8768: int x2; 8768: int y2; 8768: }; 8768: 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"; } }; 8768: 8768: constexpr inline bool operator==(const QRect &, const QRect &) noexcept; 8768: constexpr inline bool operator!=(const QRect &, const QRect &) noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRect &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRect &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QRect::QRect(int aleft, int atop, int awidth, int aheight) noexcept 8768: : x1(aleft), y1(atop), x2(aleft + awidth - 1), y2(atop + aheight - 1) {} 8768: 8768: constexpr inline QRect::QRect(const QPoint &atopLeft, const QPoint &abottomRight) noexcept 8768: : x1(atopLeft.x()), y1(atopLeft.y()), x2(abottomRight.x()), y2(abottomRight.y()) {} 8768: 8768: constexpr inline QRect::QRect(const QPoint &atopLeft, const QSize &asize) noexcept 8768: : x1(atopLeft.x()), y1(atopLeft.y()), x2(atopLeft.x()+asize.width() - 1), y2(atopLeft.y()+asize.height() - 1) {} 8768: 8768: constexpr inline bool QRect::isNull() const noexcept 8768: { return x2 == x1 - 1 && y2 == y1 - 1; } 8768: 8768: constexpr inline bool QRect::isEmpty() const noexcept 8768: { return x1 > x2 || y1 > y2; } 8768: 8768: constexpr inline bool QRect::isValid() const noexcept 8768: { return x1 <= x2 && y1 <= y2; } 8768: 8768: constexpr inline int QRect::left() const noexcept 8768: { return x1; } 8768: 8768: constexpr inline int QRect::top() const noexcept 8768: { return y1; } 8768: 8768: constexpr inline int QRect::right() const noexcept 8768: { return x2; } 8768: 8768: constexpr inline int QRect::bottom() const noexcept 8768: { return y2; } 8768: 8768: constexpr inline int QRect::x() const noexcept 8768: { return x1; } 8768: 8768: constexpr inline int QRect::y() const noexcept 8768: { return y1; } 8768: 8768: inline void QRect::setLeft(int pos) noexcept 8768: { x1 = pos; } 8768: 8768: inline void QRect::setTop(int pos) noexcept 8768: { y1 = pos; } 8768: 8768: inline void QRect::setRight(int pos) noexcept 8768: { x2 = pos; } 8768: 8768: inline void QRect::setBottom(int pos) noexcept 8768: { y2 = pos; } 8768: 8768: inline void QRect::setTopLeft(const QPoint &p) noexcept 8768: { x1 = p.x(); y1 = p.y(); } 8768: 8768: inline void QRect::setBottomRight(const QPoint &p) noexcept 8768: { x2 = p.x(); y2 = p.y(); } 8768: 8768: inline void QRect::setTopRight(const QPoint &p) noexcept 8768: { x2 = p.x(); y1 = p.y(); } 8768: 8768: inline void QRect::setBottomLeft(const QPoint &p) noexcept 8768: { x1 = p.x(); y2 = p.y(); } 8768: 8768: inline void QRect::setX(int ax) noexcept 8768: { x1 = ax; } 8768: 8768: inline void QRect::setY(int ay) noexcept 8768: { y1 = ay; } 8768: 8768: constexpr inline QPoint QRect::topLeft() const noexcept 8768: { return QPoint(x1, y1); } 8768: 8768: constexpr inline QPoint QRect::bottomRight() const noexcept 8768: { return QPoint(x2, y2); } 8768: 8768: constexpr inline QPoint QRect::topRight() const noexcept 8768: { return QPoint(x2, y1); } 8768: 8768: constexpr inline QPoint QRect::bottomLeft() const noexcept 8768: { return QPoint(x1, y2); } 8768: 8768: constexpr inline QPoint QRect::center() const noexcept 8768: { return QPoint(int((qint64(x1)+x2)/2), int((qint64(y1)+y2)/2)); } 8768: 8768: constexpr inline int QRect::width() const noexcept 8768: { return x2 - x1 + 1; } 8768: 8768: constexpr inline int QRect::height() const noexcept 8768: { return y2 - y1 + 1; } 8768: 8768: constexpr inline QSize QRect::size() const noexcept 8768: { return QSize(width(), height()); } 8768: 8768: inline void QRect::translate(int dx, int dy) noexcept 8768: { 8768: x1 += dx; 8768: y1 += dy; 8768: x2 += dx; 8768: y2 += dy; 8768: } 8768: 8768: inline void QRect::translate(const QPoint &p) noexcept 8768: { 8768: x1 += p.x(); 8768: y1 += p.y(); 8768: x2 += p.x(); 8768: y2 += p.y(); 8768: } 8768: 8768: constexpr inline QRect QRect::translated(int dx, int dy) const noexcept 8768: { return QRect(QPoint(x1 + dx, y1 + dy), QPoint(x2 + dx, y2 + dy)); } 8768: 8768: constexpr inline QRect QRect::translated(const QPoint &p) const noexcept 8768: { return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); } 8768: 8768: constexpr inline QRect QRect::transposed() const noexcept 8768: { return QRect(topLeft(), size().transposed()); } 8768: 8768: inline void QRect::moveTo(int ax, int ay) noexcept 8768: { 8768: x2 += ax - x1; 8768: y2 += ay - y1; 8768: x1 = ax; 8768: y1 = ay; 8768: } 8768: 8768: inline void QRect::moveTo(const QPoint &p) noexcept 8768: { 8768: x2 += p.x() - x1; 8768: y2 += p.y() - y1; 8768: x1 = p.x(); 8768: y1 = p.y(); 8768: } 8768: 8768: inline void QRect::moveLeft(int pos) noexcept 8768: { x2 += (pos - x1); x1 = pos; } 8768: 8768: inline void QRect::moveTop(int pos) noexcept 8768: { y2 += (pos - y1); y1 = pos; } 8768: 8768: inline void QRect::moveRight(int pos) noexcept 8768: { 8768: x1 += (pos - x2); 8768: x2 = pos; 8768: } 8768: 8768: inline void QRect::moveBottom(int pos) noexcept 8768: { 8768: y1 += (pos - y2); 8768: y2 = pos; 8768: } 8768: 8768: inline void QRect::moveTopLeft(const QPoint &p) noexcept 8768: { 8768: moveLeft(p.x()); 8768: moveTop(p.y()); 8768: } 8768: 8768: inline void QRect::moveBottomRight(const QPoint &p) noexcept 8768: { 8768: moveRight(p.x()); 8768: moveBottom(p.y()); 8768: } 8768: 8768: inline void QRect::moveTopRight(const QPoint &p) noexcept 8768: { 8768: moveRight(p.x()); 8768: moveTop(p.y()); 8768: } 8768: 8768: inline void QRect::moveBottomLeft(const QPoint &p) noexcept 8768: { 8768: moveLeft(p.x()); 8768: moveBottom(p.y()); 8768: } 8768: 8768: inline void QRect::moveCenter(const QPoint &p) noexcept 8768: { 8768: int w = x2 - x1; 8768: int h = y2 - y1; 8768: x1 = p.x() - w/2; 8768: y1 = p.y() - h/2; 8768: x2 = x1 + w; 8768: y2 = y1 + h; 8768: } 8768: 8768: inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const 8768: { 8768: *ax = x1; 8768: *ay = y1; 8768: *aw = x2 - x1 + 1; 8768: *ah = y2 - y1 + 1; 8768: } 8768: 8768: inline void QRect::setRect(int ax, int ay, int aw, int ah) noexcept 8768: { 8768: x1 = ax; 8768: y1 = ay; 8768: x2 = (ax + aw - 1); 8768: y2 = (ay + ah - 1); 8768: } 8768: 8768: inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const 8768: { 8768: *xp1 = x1; 8768: *yp1 = y1; 8768: *xp2 = x2; 8768: *yp2 = y2; 8768: } 8768: 8768: inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2) noexcept 8768: { 8768: x1 = xp1; 8768: y1 = yp1; 8768: x2 = xp2; 8768: y2 = yp2; 8768: } 8768: 8768: constexpr inline QRect QRect::adjusted(int xp1, int yp1, int xp2, int yp2) const noexcept 8768: { return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); } 8768: 8768: inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2) noexcept 8768: { 8768: x1 += dx1; 8768: y1 += dy1; 8768: x2 += dx2; 8768: y2 += dy2; 8768: } 8768: 8768: inline void QRect::setWidth(int w) noexcept 8768: { x2 = (x1 + w - 1); } 8768: 8768: inline void QRect::setHeight(int h) noexcept 8768: { y2 = (y1 + h - 1); } 8768: 8768: inline void QRect::setSize(const QSize &s) noexcept 8768: { 8768: x2 = (s.width() + x1 - 1); 8768: y2 = (s.height() + y1 - 1); 8768: } 8768: 8768: inline bool QRect::contains(int ax, int ay, bool aproper) const noexcept 8768: { 8768: return contains(QPoint(ax, ay), aproper); 8768: } 8768: 8768: inline bool QRect::contains(int ax, int ay) const noexcept 8768: { 8768: return contains(QPoint(ax, ay), false); 8768: } 8768: 8768: inline QRect& QRect::operator|=(const QRect &r) noexcept 8768: { 8768: *this = *this | r; 8768: return *this; 8768: } 8768: 8768: inline QRect& QRect::operator&=(const QRect &r) noexcept 8768: { 8768: *this = *this & r; 8768: return *this; 8768: } 8768: 8768: inline QRect QRect::intersected(const QRect &other) const noexcept 8768: { 8768: return *this & other; 8768: } 8768: 8768: inline QRect QRect::united(const QRect &r) const noexcept 8768: { 8768: return *this | r; 8768: } 8768: 8768: constexpr inline bool operator==(const QRect &r1, const QRect &r2) noexcept 8768: { 8768: return r1.x1==r2.x1 && r1.x2==r2.x2 && r1.y1==r2.y1 && r1.y2==r2.y2; 8768: } 8768: 8768: constexpr inline bool operator!=(const QRect &r1, const QRect &r2) noexcept 8768: { 8768: return r1.x1!=r2.x1 || r1.x2!=r2.x2 || r1.y1!=r2.y1 || r1.y2!=r2.y2; 8768: } 8768: 8768: constexpr inline QRect operator+(const QRect &rectangle, const QMargins &margins) noexcept 8768: { 8768: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8768: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8768: } 8768: 8768: constexpr inline QRect operator+(const QMargins &margins, const QRect &rectangle) noexcept 8768: { 8768: return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()), 8768: QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom())); 8768: } 8768: 8768: constexpr inline QRect operator-(const QRect &lhs, const QMargins &rhs) noexcept 8768: { 8768: return QRect(QPoint(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8768: QPoint(lhs.right() - rhs.right(), lhs.bottom() - rhs.bottom())); 8768: } 8768: 8768: constexpr inline QRect QRect::marginsAdded(const QMargins &margins) const noexcept 8768: { 8768: return QRect(QPoint(x1 - margins.left(), y1 - margins.top()), 8768: QPoint(x2 + margins.right(), y2 + margins.bottom())); 8768: } 8768: 8768: constexpr inline QRect QRect::marginsRemoved(const QMargins &margins) const noexcept 8768: { 8768: return QRect(QPoint(x1 + margins.left(), y1 + margins.top()), 8768: QPoint(x2 - margins.right(), y2 - margins.bottom())); 8768: } 8768: 8768: inline QRect &QRect::operator+=(const QMargins &margins) noexcept 8768: { 8768: *this = marginsAdded(margins); 8768: return *this; 8768: } 8768: 8768: inline QRect &QRect::operator-=(const QMargins &margins) noexcept 8768: { 8768: *this = marginsRemoved(margins); 8768: return *this; 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRect &); 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QRectF 8768: { 8768: public: 8768: constexpr QRectF() noexcept : xp(0.), yp(0.), w(0.), h(0.) {} 8768: constexpr QRectF(const QPointF &topleft, const QSizeF &size) noexcept; 8768: constexpr QRectF(const QPointF &topleft, const QPointF &bottomRight) noexcept; 8768: constexpr QRectF(qreal left, qreal top, qreal width, qreal height) noexcept; 8768: constexpr QRectF(const QRect &rect) noexcept; 8768: 8768: constexpr inline bool isNull() const noexcept; 8768: constexpr inline bool isEmpty() const noexcept; 8768: constexpr inline bool isValid() const noexcept; 8768: [[nodiscard]] QRectF normalized() const noexcept; 8768: 8768: constexpr inline qreal left() const noexcept { return xp; } 8768: constexpr inline qreal top() const noexcept { return yp; } 8768: constexpr inline qreal right() const noexcept { return xp + w; } 8768: constexpr inline qreal bottom() const noexcept { return yp + h; } 8768: 8768: constexpr inline qreal x() const noexcept; 8768: constexpr inline qreal y() const noexcept; 8768: inline void setLeft(qreal pos) noexcept; 8768: inline void setTop(qreal pos) noexcept; 8768: inline void setRight(qreal pos) noexcept; 8768: inline void setBottom(qreal pos) noexcept; 8768: inline void setX(qreal pos) noexcept { setLeft(pos); } 8768: inline void setY(qreal pos) noexcept { setTop(pos); } 8768: 8768: constexpr inline QPointF topLeft() const noexcept { return QPointF(xp, yp); } 8768: constexpr inline QPointF bottomRight() const noexcept { return QPointF(xp+w, yp+h); } 8768: constexpr inline QPointF topRight() const noexcept { return QPointF(xp+w, yp); } 8768: constexpr inline QPointF bottomLeft() const noexcept { return QPointF(xp, yp+h); } 8768: constexpr inline QPointF center() const noexcept; 8768: 8768: inline void setTopLeft(const QPointF &p) noexcept; 8768: inline void setBottomRight(const QPointF &p) noexcept; 8768: inline void setTopRight(const QPointF &p) noexcept; 8768: inline void setBottomLeft(const QPointF &p) noexcept; 8768: 8768: inline void moveLeft(qreal pos) noexcept; 8768: inline void moveTop(qreal pos) noexcept; 8768: inline void moveRight(qreal pos) noexcept; 8768: inline void moveBottom(qreal pos) noexcept; 8768: inline void moveTopLeft(const QPointF &p) noexcept; 8768: inline void moveBottomRight(const QPointF &p) noexcept; 8768: inline void moveTopRight(const QPointF &p) noexcept; 8768: inline void moveBottomLeft(const QPointF &p) noexcept; 8768: inline void moveCenter(const QPointF &p) noexcept; 8768: 8768: inline void translate(qreal dx, qreal dy) noexcept; 8768: inline void translate(const QPointF &p) noexcept; 8768: 8768: [[nodiscard]] constexpr inline QRectF translated(qreal dx, qreal dy) const noexcept; 8768: [[nodiscard]] constexpr inline QRectF translated(const QPointF &p) const noexcept; 8768: 8768: [[nodiscard]] constexpr inline QRectF transposed() const noexcept; 8768: 8768: inline void moveTo(qreal x, qreal y) noexcept; 8768: inline void moveTo(const QPointF &p) noexcept; 8768: 8768: inline void setRect(qreal x, qreal y, qreal w, qreal h) noexcept; 8768: inline void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const; 8768: 8768: inline void setCoords(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8768: inline void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const; 8768: 8768: inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2) noexcept; 8768: [[nodiscard]] constexpr inline QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const noexcept; 8768: 8768: constexpr inline QSizeF size() const noexcept; 8768: constexpr inline qreal width() const noexcept; 8768: constexpr inline qreal height() const noexcept; 8768: inline void setWidth(qreal w) noexcept; 8768: inline void setHeight(qreal h) noexcept; 8768: inline void setSize(const QSizeF &s) noexcept; 8768: 8768: QRectF operator|(const QRectF &r) const noexcept; 8768: QRectF operator&(const QRectF &r) const noexcept; 8768: inline QRectF& operator|=(const QRectF &r) noexcept; 8768: inline QRectF& operator&=(const QRectF &r) noexcept; 8768: 8768: bool contains(const QRectF &r) const noexcept; 8768: bool contains(const QPointF &p) const noexcept; 8768: inline bool contains(qreal x, qreal y) const noexcept; 8768: [[nodiscard]] inline QRectF united(const QRectF &other) const noexcept; 8768: [[nodiscard]] inline QRectF intersected(const QRectF &other) const noexcept; 8768: bool intersects(const QRectF &r) const noexcept; 8768: 8768: constexpr inline QRectF marginsAdded(const QMarginsF &margins) const noexcept; 8768: constexpr inline QRectF marginsRemoved(const QMarginsF &margins) const noexcept; 8768: inline QRectF &operator+=(const QMarginsF &margins) noexcept; 8768: inline QRectF &operator-=(const QMarginsF &margins) noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: friend constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8768: friend constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8768: 8768: [[nodiscard]] constexpr inline QRect toRect() const noexcept; 8768: [[nodiscard]] QRect toAlignedRect() const noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: qreal xp; 8768: qreal yp; 8768: qreal w; 8768: qreal h; 8768: }; 8768: 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"; } }; 8768: 8768: constexpr inline bool operator==(const QRectF &, const QRectF &) noexcept; 8768: constexpr inline bool operator!=(const QRectF &, const QRectF &) noexcept; 8768: 8768: 8768: 8768: 8768: 8768: 8768: __attribute__((visibility("default"))) QDataStream &operator<<(QDataStream &, const QRectF &); 8768: __attribute__((visibility("default"))) QDataStream &operator>>(QDataStream &, QRectF &); 8768: 8768: 8768: 8768: 8768: 8768: 8768: constexpr inline QRectF::QRectF(qreal aleft, qreal atop, qreal awidth, qreal aheight) noexcept 8768: : xp(aleft), yp(atop), w(awidth), h(aheight) 8768: { 8768: } 8768: 8768: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QSizeF &asize) noexcept 8768: : xp(atopLeft.x()), yp(atopLeft.y()), w(asize.width()), h(asize.height()) 8768: { 8768: } 8768: 8768: 8768: constexpr inline QRectF::QRectF(const QPointF &atopLeft, const QPointF &abottomRight) noexcept 8768: : xp(atopLeft.x()), yp(atopLeft.y()), w(abottomRight.x() - atopLeft.x()), h(abottomRight.y() - atopLeft.y()) 8768: { 8768: } 8768: 8768: constexpr inline QRectF::QRectF(const QRect &r) noexcept 8768: : xp(r.x()), yp(r.y()), w(r.width()), h(r.height()) 8768: { 8768: } 8768: 8768: 8768: # 665 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 665 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: 8768: 8768: 8768: # 667 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wfloat-equal" 8768: # 667 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: 8768: 8768: constexpr inline bool QRectF::isNull() const noexcept 8768: { return w == 0. && h == 0.; } 8768: 8768: constexpr inline bool QRectF::isEmpty() const noexcept 8768: { return w <= 0. || h <= 0.; } 8768: 8768: 8768: # 675 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 675 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h" 3 4 8768: 8768: 8768: constexpr inline bool QRectF::isValid() const noexcept 8768: { return w > 0. && h > 0.; } 8768: 8768: constexpr inline qreal QRectF::x() const noexcept 8768: { return xp; } 8768: 8768: constexpr inline qreal QRectF::y() const noexcept 8768: { return yp; } 8768: 8768: inline void QRectF::setLeft(qreal pos) noexcept 8768: { qreal diff = pos - xp; xp += diff; w -= diff; } 8768: 8768: inline void QRectF::setRight(qreal pos) noexcept 8768: { w = pos - xp; } 8768: 8768: inline void QRectF::setTop(qreal pos) noexcept 8768: { qreal diff = pos - yp; yp += diff; h -= diff; } 8768: 8768: inline void QRectF::setBottom(qreal pos) noexcept 8768: { h = pos - yp; } 8768: 8768: inline void QRectF::setTopLeft(const QPointF &p) noexcept 8768: { setLeft(p.x()); setTop(p.y()); } 8768: 8768: inline void QRectF::setTopRight(const QPointF &p) noexcept 8768: { setRight(p.x()); setTop(p.y()); } 8768: 8768: inline void QRectF::setBottomLeft(const QPointF &p) noexcept 8768: { setLeft(p.x()); setBottom(p.y()); } 8768: 8768: inline void QRectF::setBottomRight(const QPointF &p) noexcept 8768: { setRight(p.x()); setBottom(p.y()); } 8768: 8768: constexpr inline QPointF QRectF::center() const noexcept 8768: { return QPointF(xp + w/2, yp + h/2); } 8768: 8768: inline void QRectF::moveLeft(qreal pos) noexcept 8768: { xp = pos; } 8768: 8768: inline void QRectF::moveTop(qreal pos) noexcept 8768: { yp = pos; } 8768: 8768: inline void QRectF::moveRight(qreal pos) noexcept 8768: { xp = pos - w; } 8768: 8768: inline void QRectF::moveBottom(qreal pos) noexcept 8768: { yp = pos - h; } 8768: 8768: inline void QRectF::moveTopLeft(const QPointF &p) noexcept 8768: { moveLeft(p.x()); moveTop(p.y()); } 8768: 8768: inline void QRectF::moveTopRight(const QPointF &p) noexcept 8768: { moveRight(p.x()); moveTop(p.y()); } 8768: 8768: inline void QRectF::moveBottomLeft(const QPointF &p) noexcept 8768: { moveLeft(p.x()); moveBottom(p.y()); } 8768: 8768: inline void QRectF::moveBottomRight(const QPointF &p) noexcept 8768: { moveRight(p.x()); moveBottom(p.y()); } 8768: 8768: inline void QRectF::moveCenter(const QPointF &p) noexcept 8768: { xp = p.x() - w/2; yp = p.y() - h/2; } 8768: 8768: constexpr inline qreal QRectF::width() const noexcept 8768: { return w; } 8768: 8768: constexpr inline qreal QRectF::height() const noexcept 8768: { return h; } 8768: 8768: constexpr inline QSizeF QRectF::size() const noexcept 8768: { return QSizeF(w, h); } 8768: 8768: inline void QRectF::translate(qreal dx, qreal dy) noexcept 8768: { 8768: xp += dx; 8768: yp += dy; 8768: } 8768: 8768: inline void QRectF::translate(const QPointF &p) noexcept 8768: { 8768: xp += p.x(); 8768: yp += p.y(); 8768: } 8768: 8768: inline void QRectF::moveTo(qreal ax, qreal ay) noexcept 8768: { 8768: xp = ax; 8768: yp = ay; 8768: } 8768: 8768: inline void QRectF::moveTo(const QPointF &p) noexcept 8768: { 8768: xp = p.x(); 8768: yp = p.y(); 8768: } 8768: 8768: constexpr inline QRectF QRectF::translated(qreal dx, qreal dy) const noexcept 8768: { return QRectF(xp + dx, yp + dy, w, h); } 8768: 8768: constexpr inline QRectF QRectF::translated(const QPointF &p) const noexcept 8768: { return QRectF(xp + p.x(), yp + p.y(), w, h); } 8768: 8768: constexpr inline QRectF QRectF::transposed() const noexcept 8768: { return QRectF(topLeft(), size().transposed()); } 8768: 8768: inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const 8768: { 8768: *ax = this->xp; 8768: *ay = this->yp; 8768: *aaw = this->w; 8768: *aah = this->h; 8768: } 8768: 8768: inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah) noexcept 8768: { 8768: this->xp = ax; 8768: this->yp = ay; 8768: this->w = aaw; 8768: this->h = aah; 8768: } 8768: 8768: inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const 8768: { 8768: *xp1 = xp; 8768: *yp1 = yp; 8768: *xp2 = xp + w; 8768: *yp2 = yp + h; 8768: } 8768: 8768: inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8768: { 8768: xp = xp1; 8768: yp = yp1; 8768: w = xp2 - xp1; 8768: h = yp2 - yp1; 8768: } 8768: 8768: inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2) noexcept 8768: { xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; } 8768: 8768: constexpr inline QRectF QRectF::adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const noexcept 8768: { return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); } 8768: 8768: inline void QRectF::setWidth(qreal aw) noexcept 8768: { this->w = aw; } 8768: 8768: inline void QRectF::setHeight(qreal ah) noexcept 8768: { this->h = ah; } 8768: 8768: inline void QRectF::setSize(const QSizeF &s) noexcept 8768: { 8768: w = s.width(); 8768: h = s.height(); 8768: } 8768: 8768: inline bool QRectF::contains(qreal ax, qreal ay) const noexcept 8768: { 8768: return contains(QPointF(ax, ay)); 8768: } 8768: 8768: inline QRectF& QRectF::operator|=(const QRectF &r) noexcept 8768: { 8768: *this = *this | r; 8768: return *this; 8768: } 8768: 8768: inline QRectF& QRectF::operator&=(const QRectF &r) noexcept 8768: { 8768: *this = *this & r; 8768: return *this; 8768: } 8768: 8768: inline QRectF QRectF::intersected(const QRectF &r) const noexcept 8768: { 8768: return *this & r; 8768: } 8768: 8768: inline QRectF QRectF::united(const QRectF &r) const noexcept 8768: { 8768: return *this | r; 8768: } 8768: 8768: constexpr inline bool operator==(const QRectF &r1, const QRectF &r2) noexcept 8768: { 8768: return qFuzzyCompare(r1.xp, r2.xp) && qFuzzyCompare(r1.yp, r2.yp) 8768: && qFuzzyCompare(r1.w, r2.w) && qFuzzyCompare(r1.h, r2.h); 8768: } 8768: 8768: constexpr inline bool operator!=(const QRectF &r1, const QRectF &r2) noexcept 8768: { 8768: return !qFuzzyCompare(r1.xp, r2.xp) || !qFuzzyCompare(r1.yp, r2.yp) 8768: || !qFuzzyCompare(r1.w, r2.w) || !qFuzzyCompare(r1.h, r2.h); 8768: } 8768: 8768: constexpr inline QRect QRectF::toRect() const noexcept 8768: { 8768: return QRect(qRound(xp), qRound(yp), qRound(w), qRound(h)); 8768: } 8768: 8768: constexpr inline QRectF operator+(const QRectF &lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return QRectF(QPointF(lhs.left() - rhs.left(), lhs.top() - rhs.top()), 8768: QSizeF(lhs.width() + rhs.left() + rhs.right(), lhs.height() + rhs.top() + rhs.bottom())); 8768: } 8768: 8768: constexpr inline QRectF operator+(const QMarginsF &lhs, const QRectF &rhs) noexcept 8768: { 8768: return QRectF(QPointF(rhs.left() - lhs.left(), rhs.top() - lhs.top()), 8768: QSizeF(rhs.width() + lhs.left() + lhs.right(), rhs.height() + lhs.top() + lhs.bottom())); 8768: } 8768: 8768: constexpr inline QRectF operator-(const QRectF &lhs, const QMarginsF &rhs) noexcept 8768: { 8768: return QRectF(QPointF(lhs.left() + rhs.left(), lhs.top() + rhs.top()), 8768: QSizeF(lhs.width() - rhs.left() - rhs.right(), lhs.height() - rhs.top() - rhs.bottom())); 8768: } 8768: 8768: constexpr inline QRectF QRectF::marginsAdded(const QMarginsF &margins) const noexcept 8768: { 8768: return QRectF(QPointF(xp - margins.left(), yp - margins.top()), 8768: QSizeF(w + margins.left() + margins.right(), h + margins.top() + margins.bottom())); 8768: } 8768: 8768: constexpr inline QRectF QRectF::marginsRemoved(const QMarginsF &margins) const noexcept 8768: { 8768: return QRectF(QPointF(xp + margins.left(), yp + margins.top()), 8768: QSizeF(w - margins.left() - margins.right(), h - margins.top() - margins.bottom())); 8768: } 8768: 8768: inline QRectF &QRectF::operator+=(const QMarginsF &margins) noexcept 8768: { 8768: *this = marginsAdded(margins); 8768: return *this; 8768: } 8768: 8768: inline QRectF &QRectF::operator-=(const QMarginsF &margins) noexcept 8768: { 8768: *this = marginsRemoved(margins); 8768: return *this; 8768: } 8768: 8768: 8768: __attribute__((visibility("default"))) QDebug operator<<(QDebug, const QRectF &); 8768: 8768: 8768: 8768: # 61 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: 8768: 8768: 8768: 8768: namespace QTest 8768: { 8768: 8768: template<> inline char *toString(const QString &str) 8768: { 8768: return QTest::toPrettyUnicode(reinterpret_cast(str.constData()), str.length()); 8768: } 8768: 8768: template<> inline char *toString(const QLatin1String &str) 8768: { 8768: return toString(QString(str)); 8768: } 8768: 8768: template<> inline char *toString(const QByteArray &ba) 8768: { 8768: return QTest::toPrettyCString(ba.constData(), ba.length()); 8768: } 8768: 8768: 8768: template<> inline char *toString(const QTime &time) 8768: { 8768: return time.isValid() 8768: ? qstrdup(QString(time.toString(QLatin1String("hh:mm:ss.zzz"))).toLocal8Bit().constData()) 8768: : qstrdup("Invalid QTime"); 8768: } 8768: 8768: template<> inline char *toString(const QDate &date) 8768: { 8768: return date.isValid() 8768: ? qstrdup(QString(date.toString(QLatin1String("yyyy/MM/dd"))).toLocal8Bit().constData()) 8768: : qstrdup("Invalid QDate"); 8768: } 8768: 8768: template<> inline char *toString(const QDateTime &dateTime) 8768: { 8768: return dateTime.isValid() 8768: ? qstrdup(QString(dateTime.toString(QLatin1String("yyyy/MM/dd hh:mm:ss.zzz[t]"))).toLocal8Bit().constData()) 8768: : qstrdup("Invalid QDateTime"); 8768: } 8768: 8768: 8768: template<> inline char *toString(const QChar &c) 8768: { 8768: const ushort uc = c.unicode(); 8768: if (uc < 128) { 8768: char msg[32] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QChar: '%c' (0x%x)", char(uc), unsigned(uc)); 8768: return qstrdup(msg); 8768: } 8768: return qstrdup(QString(QString::fromLatin1("QChar: '%1' (0x%2)").arg(c).arg(QString::number(static_cast(c.unicode()), 16))).toLocal8Bit().constData()); 8768: } 8768: 8768: template<> inline char *toString(const QPoint &p) 8768: { 8768: char msg[128] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QPoint(%d,%d)", p.x(), p.y()); 8768: return qstrdup(msg); 8768: } 8768: 8768: template<> inline char *toString(const QSize &s) 8768: { 8768: char msg[128] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QSize(%dx%d)", s.width(), s.height()); 8768: return qstrdup(msg); 8768: } 8768: 8768: template<> inline char *toString(const QRect &s) 8768: { 8768: char msg[256] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QRect(%d,%d %dx%d) (bottomright %d,%d)", 8768: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8768: return qstrdup(msg); 8768: } 8768: 8768: template<> inline char *toString(const QPointF &p) 8768: { 8768: char msg[64] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QPointF(%g,%g)", p.x(), p.y()); 8768: return qstrdup(msg); 8768: } 8768: 8768: template<> inline char *toString(const QSizeF &s) 8768: { 8768: char msg[64] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QSizeF(%gx%g)", s.width(), s.height()); 8768: return qstrdup(msg); 8768: } 8768: 8768: template<> inline char *toString(const QRectF &s) 8768: { 8768: char msg[256] = {'\0'}; 8768: qsnprintf(msg, sizeof(msg), "QRectF(%g,%g %gx%g) (bottomright %g,%g)", 8768: s.left(), s.top(), s.width(), s.height(), s.right(), s.bottom()); 8768: return qstrdup(msg); 8768: } 8768: 8768: template<> inline char *toString(const QUrl &uri) 8768: { 8768: if (!uri.isValid()) 8768: return qstrdup(QString(QLatin1String("Invalid URL: ") + uri.errorString()).toLocal8Bit().constData()); 8768: return qstrdup(uri.toEncoded().constData()); 8768: } 8768: 8768: template <> inline char *toString(const QUuid &uuid) 8768: { 8768: return qstrdup(uuid.toByteArray().constData()); 8768: } 8768: 8768: template<> inline char *toString(const QVariant &v) 8768: { 8768: QByteArray vstring("QVariant("); 8768: if (v.isValid()) { 8768: QByteArray type(v.typeName()); 8768: if (type.isEmpty()) { 8768: type = QByteArray::number(v.userType()); 8768: } 8768: vstring.append(type); 8768: if (!v.isNull()) { 8768: vstring.append(','); 8768: if (v.canConvert(QVariant::String)) { 8768: vstring.append(v.toString().toLocal8Bit()); 8768: } 8768: else { 8768: vstring.append(""); 8768: } 8768: } 8768: } 8768: vstring.append(')'); 8768: 8768: return qstrdup(vstring.constData()); 8768: } 8768: 8768: inline char *toString(std::nullptr_t) 8768: { 8768: return toString(QLatin1String("nullptr")); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(QString const &t1, QLatin1String const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(t1, QString(t2), actual, expected, file, line); 8768: } 8768: template<> 8768: inline bool qCompare(QLatin1String const &t1, QString const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(QString(t1), t2, actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qCompare(QList const &t1, QList const &t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: char msg[1024]; 8768: msg[0] = '\0'; 8768: bool isOk = true; 8768: const int actualSize = t1.count(); 8768: const int expectedSize = t2.count(); 8768: if (actualSize != expectedSize) { 8768: qsnprintf(msg, sizeof(msg), "Compared lists have different sizes.\n" 8768: " Actual (%s) size: %d\n" 8768: " Expected (%s) size: %d", actual, actualSize, expected, expectedSize); 8768: isOk = false; 8768: } 8768: for (int i = 0; isOk && i < actualSize; ++i) { 8768: if (!(t1.at(i) == t2.at(i))) { 8768: char *val1 = toString(t1.at(i)); 8768: char *val2 = toString(t2.at(i)); 8768: 8768: qsnprintf(msg, sizeof(msg), "Compared lists differ at index %d.\n" 8768: " Actual (%s): %s\n" 8768: " Expected (%s): %s", i, actual, val1 ? val1 : "", 8768: expected, val2 ? val2 : ""); 8768: isOk = false; 8768: 8768: delete [] val1; 8768: delete [] val2; 8768: } 8768: } 8768: return compare_helper(isOk, msg, nullptr, nullptr, actual, expected, file, line); 8768: } 8768: 8768: template <> 8768: inline bool qCompare(QStringList const &t1, QStringList const &t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return qCompare(t1, t2, actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qCompare(QFlags const &t1, T const &t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return qCompare(int(t1), int(t2), actual, expected, file, line); 8768: } 8768: 8768: template 8768: inline bool qCompare(QFlags const &t1, int const &t2, const char *actual, const char *expected, 8768: const char *file, int line) 8768: { 8768: return qCompare(int(t1), t2, actual, expected, file, line); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(qint64 const &t1, qint32 const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(qint64 const &t1, quint32 const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(quint64 const &t1, quint32 const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(t1, static_cast(t2), actual, expected, file, line); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(qint32 const &t1, qint64 const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(quint32 const &t1, qint64 const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8768: } 8768: 8768: template<> 8768: inline bool qCompare(quint32 const &t1, quint64 const &t2, const char *actual, 8768: const char *expected, const char *file, int line) 8768: { 8768: return qCompare(static_cast(t1), t2, actual, expected, file, line); 8768: } 8768: 8768: } 8768: 8768: # 328 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 1 3 4 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 1 3 4 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 1 3 4 8768: # 47 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: 8768: 8768: 8768: class QEventPrivate; 8768: class __attribute__((visibility("default"))) QEvent 8768: { 8768: public: static const QMetaObject staticMetaObject; void qt_check_for_QGADGET_macro(); typedef void QtGadgetHelper; private: 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 53 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreevent.h" 3 4 8768: 8768: 8768: public: 8768: enum Type { 8768: 8768: 8768: 8768: 8768: 8768: 8768: None = 0, 8768: Timer = 1, 8768: MouseButtonPress = 2, 8768: MouseButtonRelease = 3, 8768: MouseButtonDblClick = 4, 8768: MouseMove = 5, 8768: KeyPress = 6, 8768: KeyRelease = 7, 8768: FocusIn = 8, 8768: FocusOut = 9, 8768: FocusAboutToChange = 23, 8768: Enter = 10, 8768: Leave = 11, 8768: Paint = 12, 8768: Move = 13, 8768: Resize = 14, 8768: Create = 15, 8768: Destroy = 16, 8768: Show = 17, 8768: Hide = 18, 8768: Close = 19, 8768: Quit = 20, 8768: ParentChange = 21, 8768: ParentAboutToChange = 131, 8768: ThreadChange = 22, 8768: WindowActivate = 24, 8768: WindowDeactivate = 25, 8768: ShowToParent = 26, 8768: HideToParent = 27, 8768: Wheel = 31, 8768: WindowTitleChange = 33, 8768: WindowIconChange = 34, 8768: ApplicationWindowIconChange = 35, 8768: ApplicationFontChange = 36, 8768: ApplicationLayoutDirectionChange = 37, 8768: ApplicationPaletteChange = 38, 8768: PaletteChange = 39, 8768: Clipboard = 40, 8768: Speech = 42, 8768: MetaCall = 43, 8768: SockAct = 50, 8768: WinEventAct = 132, 8768: DeferredDelete = 52, 8768: DragEnter = 60, 8768: DragMove = 61, 8768: DragLeave = 62, 8768: Drop = 63, 8768: DragResponse = 64, 8768: ChildAdded = 68, 8768: ChildPolished = 69, 8768: ChildRemoved = 71, 8768: ShowWindowRequest = 73, 8768: PolishRequest = 74, 8768: Polish = 75, 8768: LayoutRequest = 76, 8768: UpdateRequest = 77, 8768: UpdateLater = 78, 8768: 8768: EmbeddingControl = 79, 8768: ActivateControl = 80, 8768: DeactivateControl = 81, 8768: ContextMenu = 82, 8768: InputMethod = 83, 8768: TabletMove = 87, 8768: LocaleChange = 88, 8768: LanguageChange = 89, 8768: LayoutDirectionChange = 90, 8768: Style = 91, 8768: TabletPress = 92, 8768: TabletRelease = 93, 8768: OkRequest = 94, 8768: HelpRequest = 95, 8768: 8768: IconDrag = 96, 8768: 8768: FontChange = 97, 8768: EnabledChange = 98, 8768: ActivationChange = 99, 8768: StyleChange = 100, 8768: IconTextChange = 101, 8768: ModifiedChange = 102, 8768: MouseTrackingChange = 109, 8768: 8768: WindowBlocked = 103, 8768: WindowUnblocked = 104, 8768: WindowStateChange = 105, 8768: 8768: ReadOnlyChange = 106, 8768: 8768: ToolTip = 110, 8768: WhatsThis = 111, 8768: StatusTip = 112, 8768: 8768: ActionChanged = 113, 8768: ActionAdded = 114, 8768: ActionRemoved = 115, 8768: 8768: FileOpen = 116, 8768: 8768: Shortcut = 117, 8768: ShortcutOverride = 51, 8768: 8768: WhatsThisClicked = 118, 8768: 8768: ToolBarChange = 120, 8768: 8768: ApplicationActivate = 121, 8768: ApplicationActivated = ApplicationActivate, 8768: ApplicationDeactivate = 122, 8768: ApplicationDeactivated = ApplicationDeactivate, 8768: 8768: QueryWhatsThis = 123, 8768: EnterWhatsThisMode = 124, 8768: LeaveWhatsThisMode = 125, 8768: 8768: ZOrderChange = 126, 8768: 8768: HoverEnter = 127, 8768: HoverLeave = 128, 8768: HoverMove = 129, 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: AcceptDropsChange = 152, 8768: 8768: ZeroTimerEvent = 154, 8768: 8768: GraphicsSceneMouseMove = 155, 8768: GraphicsSceneMousePress = 156, 8768: GraphicsSceneMouseRelease = 157, 8768: GraphicsSceneMouseDoubleClick = 158, 8768: GraphicsSceneContextMenu = 159, 8768: GraphicsSceneHoverEnter = 160, 8768: GraphicsSceneHoverMove = 161, 8768: GraphicsSceneHoverLeave = 162, 8768: GraphicsSceneHelp = 163, 8768: GraphicsSceneDragEnter = 164, 8768: GraphicsSceneDragMove = 165, 8768: GraphicsSceneDragLeave = 166, 8768: GraphicsSceneDrop = 167, 8768: GraphicsSceneWheel = 168, 8768: 8768: KeyboardLayoutChange = 169, 8768: 8768: DynamicPropertyChange = 170, 8768: 8768: TabletEnterProximity = 171, 8768: TabletLeaveProximity = 172, 8768: 8768: NonClientAreaMouseMove = 173, 8768: NonClientAreaMouseButtonPress = 174, 8768: NonClientAreaMouseButtonRelease = 175, 8768: NonClientAreaMouseButtonDblClick = 176, 8768: 8768: MacSizeChange = 177, 8768: 8768: ContentsRectChange = 178, 8768: 8768: MacGLWindowChange = 179, 8768: 8768: FutureCallOut = 180, 8768: 8768: GraphicsSceneResize = 181, 8768: GraphicsSceneMove = 182, 8768: 8768: CursorChange = 183, 8768: ToolTipChange = 184, 8768: 8768: NetworkReplyUpdated = 185, 8768: 8768: GrabMouse = 186, 8768: UngrabMouse = 187, 8768: GrabKeyboard = 188, 8768: UngrabKeyboard = 189, 8768: MacGLClearDrawable = 191, 8768: 8768: StateMachineSignal = 192, 8768: StateMachineWrapped = 193, 8768: 8768: TouchBegin = 194, 8768: TouchUpdate = 195, 8768: TouchEnd = 196, 8768: 8768: 8768: NativeGesture = 197, 8768: 8768: RequestSoftwareInputPanel = 199, 8768: CloseSoftwareInputPanel = 200, 8768: 8768: WinIdChange = 203, 8768: 8768: Gesture = 198, 8768: GestureOverride = 202, 8768: 8768: ScrollPrepare = 204, 8768: Scroll = 205, 8768: 8768: Expose = 206, 8768: 8768: InputMethodQuery = 207, 8768: OrientationChange = 208, 8768: 8768: TouchCancel = 209, 8768: 8768: ThemeChange = 210, 8768: 8768: SockClose = 211, 8768: 8768: PlatformPanel = 212, 8768: 8768: StyleAnimationUpdate = 213, 8768: ApplicationStateChange = 214, 8768: 8768: WindowChangeInternal = 215, 8768: ScreenChangeInternal = 216, 8768: 8768: PlatformSurface = 217, 8768: 8768: Pointer = 218, 8768: 8768: TabletTrackingChange = 219, 8768: 8768: 8768: 8768: 8768: User = 1000, 8768: MaxUser = 65535 8768: }; 8768: friend constexpr const QMetaObject *qt_getEnumMetaObject(Type) noexcept { return &staticMetaObject; } friend constexpr const char *qt_getEnumName(Type) noexcept { return "Type"; } 8768: 8768: explicit QEvent(Type type); 8768: QEvent(const QEvent &other); 8768: virtual ~QEvent(); 8768: QEvent &operator=(const QEvent &other); 8768: inline Type type() const { return static_cast(t); } 8768: inline bool spontaneous() const { return spont; } 8768: 8768: inline void setAccepted(bool accepted) { m_accept = accepted; } 8768: inline bool isAccepted() const { return m_accept; } 8768: 8768: inline void accept() { m_accept = true; } 8768: inline void ignore() { m_accept = false; } 8768: 8768: static int registerEventType(int hint = -1) noexcept; 8768: 8768: protected: 8768: QEventPrivate *d; 8768: ushort t; 8768: 8768: private: 8768: ushort posted : 1; 8768: ushort spont : 1; 8768: ushort m_accept : 1; 8768: ushort reserved : 13; 8768: 8768: friend class QCoreApplication; 8768: friend class QCoreApplicationPrivate; 8768: friend class QThreadData; 8768: friend class QApplication; 8768: friend class QShortcutMap; 8768: friend class QGraphicsView; 8768: friend class QGraphicsScene; 8768: friend class QGraphicsScenePrivate; 8768: 8768: friend class QSpontaneKeyEvent; 8768: 8768: inline __attribute__((always_inline)) 8768: void setSpontaneous() { spont = true; } 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QTimerEvent : public QEvent 8768: { 8768: public: 8768: explicit QTimerEvent( int timerId ); 8768: ~QTimerEvent(); 8768: int timerId() const { return id; } 8768: protected: 8768: int id; 8768: }; 8768: 8768: class QObject; 8768: 8768: class __attribute__((visibility("default"))) QChildEvent : public QEvent 8768: { 8768: public: 8768: QChildEvent( Type type, QObject *child ); 8768: ~QChildEvent(); 8768: QObject *child() const { return c; } 8768: bool added() const { return type() == ChildAdded; } 8768: bool polished() const { return type() == ChildPolished; } 8768: bool removed() const { return type() == ChildRemoved; } 8768: protected: 8768: QObject *c; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QDynamicPropertyChangeEvent : public QEvent 8768: { 8768: public: 8768: explicit QDynamicPropertyChangeEvent(const QByteArray &name); 8768: ~QDynamicPropertyChangeEvent(); 8768: 8768: inline QByteArray propertyName() const { return n; } 8768: 8768: private: 8768: QByteArray n; 8768: }; 8768: 8768: class __attribute__((visibility("default"))) QDeferredDeleteEvent : public QEvent 8768: { 8768: public: 8768: explicit QDeferredDeleteEvent(); 8768: ~QDeferredDeleteEvent(); 8768: int loopLevel() const { return level; } 8768: private: 8768: int level; 8768: friend class QCoreApplication; 8768: }; 8768: 8768: 8768: # 48 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: 8768: 8768: 8768: class QEventLoopPrivate; 8768: 8768: class __attribute__((visibility("default"))) QEventLoop : public QObject 8768: { 8768: public: 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: 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: 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 52 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qeventloop.h" 3 4 8768: struct QPrivateSignal {}; 8768: 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; 8768: 8768: public: 8768: explicit QEventLoop(QObject *parent = nullptr); 8768: ~QEventLoop(); 8768: 8768: enum ProcessEventsFlag { 8768: AllEvents = 0x00, 8768: ExcludeUserInputEvents = 0x01, 8768: ExcludeSocketNotifiers = 0x02, 8768: WaitForMoreEvents = 0x04, 8768: X11ExcludeTimers = 0x08, 8768: EventLoopExec = 0x20, 8768: DialogExec = 0x40 8768: }; 8768: typedef QFlags ProcessEventsFlags; 8768: 8768: bool processEvents(ProcessEventsFlags flags = AllEvents); 8768: void processEvents(ProcessEventsFlags flags, int maximumTime); 8768: 8768: int exec(ProcessEventsFlags flags = AllEvents); 8768: void exit(int returnCode = 0); 8768: bool isRunning() const; 8768: 8768: void wakeUp(); 8768: 8768: bool event(QEvent *event) override; 8768: 8768: public : 8768: void quit(); 8768: }; 8768: 8768: 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); } 8768: 8768: 8768: class QEventLoopLockerPrivate; 8768: 8768: class __attribute__((visibility("default"))) QEventLoopLocker 8768: { 8768: public: 8768: QEventLoopLocker(); 8768: explicit QEventLoopLocker(QEventLoop *loop); 8768: explicit QEventLoopLocker(QThread *thread); 8768: ~QEventLoopLocker(); 8768: 8768: private: 8768: QEventLoopLocker(const QEventLoopLocker &) = delete; QEventLoopLocker &operator=(const QEventLoopLocker &) = delete; 8768: QEventLoopLockerPrivate *d_ptr; 8768: }; 8768: 8768: 8768: # 49 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 2 3 4 8768: # 59 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: 8768: 8768: 8768: class QCoreApplicationPrivate; 8768: class QTextCodec; 8768: class QTranslator; 8768: class QPostEventList; 8768: class QStringList; 8768: class QAbstractEventDispatcher; 8768: class QAbstractNativeEventFilter; 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QCoreApplication 8768: 8768: : public QObject 8768: 8768: { 8768: 8768: public: 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: #pragma GCC diagnostic push 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: 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: 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: #pragma GCC diagnostic pop 8768: # 78 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: struct QPrivateSignal {}; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 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; 8768: public: 8768: enum { ApplicationFlags = ((5<<16)|(9<<8)|(3)) 8768: }; 8768: 8768: QCoreApplication(int &argc, char **argv 8768: 8768: , int = ApplicationFlags 8768: 8768: ); 8768: 8768: ~QCoreApplication(); 8768: 8768: static QStringList arguments(); 8768: 8768: static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); 8768: static bool testAttribute(Qt::ApplicationAttribute attribute); 8768: 8768: static void setOrganizationDomain(const QString &orgDomain); 8768: static QString organizationDomain(); 8768: static void setOrganizationName(const QString &orgName); 8768: static QString organizationName(); 8768: static void setApplicationName(const QString &application); 8768: static QString applicationName(); 8768: static void setApplicationVersion(const QString &version); 8768: static QString applicationVersion(); 8768: 8768: static void setSetuidAllowed(bool allow); 8768: static bool isSetuidAllowed(); 8768: 8768: static QCoreApplication *instance() { return self; } 8768: 8768: 8768: static int exec(); 8768: static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents); 8768: static void processEvents(QEventLoop::ProcessEventsFlags flags, int maxtime); 8768: static void exit(int retcode=0); 8768: 8768: static bool sendEvent(QObject *receiver, QEvent *event); 8768: static void postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority); 8768: static void sendPostedEvents(QObject *receiver = nullptr, int event_type = 0); 8768: static void removePostedEvents(QObject *receiver, int eventType = 0); 8768: 8768: static bool hasPendingEvents(); 8768: 8768: static QAbstractEventDispatcher *eventDispatcher(); 8768: static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher); 8768: 8768: virtual bool notify(QObject *, QEvent *); 8768: 8768: static bool startingUp(); 8768: static bool closingDown(); 8768: 8768: 8768: static QString applicationDirPath(); 8768: static QString applicationFilePath(); 8768: static qint64 applicationPid(); 8768: 8768: 8768: static void setLibraryPaths(const QStringList &); 8768: static QStringList libraryPaths(); 8768: static void addLibraryPath(const QString &); 8768: static void removeLibraryPath(const QString &); 8768: 8768: 8768: 8768: static bool installTranslator(QTranslator * messageFile); 8768: static bool removeTranslator(QTranslator * messageFile); 8768: 8768: 8768: static QString translate(const char * context, 8768: const char * key, 8768: const char * disambiguation = nullptr, 8768: int n = -1); 8768: # 169 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: static void flush(); 8768: 8768: 8768: void installNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8768: void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj); 8768: 8768: static bool isQuitLockEnabled(); 8768: static void setQuitLockEnabled(bool enabled); 8768: 8768: public : 8768: static void quit(); 8768: 8768: public : 8768: void aboutToQuit(QPrivateSignal); 8768: 8768: void organizationNameChanged(); 8768: void organizationDomainChanged(); 8768: void applicationNameChanged(); 8768: void applicationVersionChanged(); 8768: 8768: protected: 8768: bool event(QEvent *) override; 8768: 8768: virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *); 8768: 8768: 8768: protected: 8768: QCoreApplication(QCoreApplicationPrivate &p); 8768: 8768: 8768: 8768: 8768: 8768: private: 8768: 8768: static bool sendSpontaneousEvent(QObject *receiver, QEvent *event); 8768: 8768: bool notifyInternal(QObject *receiver, QEvent *event); 8768: 8768: static bool notifyInternal2(QObject *receiver, QEvent *); 8768: 8768: 8768: static QCoreApplication *self; 8768: 8768: QCoreApplication(const QCoreApplication &) = delete; QCoreApplication &operator=(const QCoreApplication &) = delete; 8768: 8768: friend class QApplication; 8768: friend class QApplicationPrivate; 8768: friend class QGuiApplication; 8768: friend class QGuiApplicationPrivate; 8768: friend class QWidget; 8768: friend class QWidgetWindow; 8768: friend class QWidgetPrivate; 8768: 8768: friend class QEventDispatcherUNIXPrivate; 8768: friend class QCocoaEventDispatcherPrivate; 8768: friend bool qt_sendSpontaneousEvent(QObject*, QEvent*); 8768: 8768: friend __attribute__((visibility("default"))) QString qAppName(); 8768: friend class QClassFactory; 8768: }; 8768: 8768: 8768: inline bool QCoreApplication::sendEvent(QObject *receiver, QEvent *event) 8768: { if (event) event->spont = false; return notifyInternal2(receiver, event); } 8768: 8768: inline bool QCoreApplication::sendSpontaneousEvent(QObject *receiver, QEvent *event) 8768: { if (event) event->spont = true; return notifyInternal2(receiver, event); } 8768: # 254 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: typedef void (*QtStartUpFunction)(); 8768: typedef void (*QtCleanUpFunction)(); 8768: 8768: __attribute__((visibility("default"))) void qAddPreRoutine(QtStartUpFunction); 8768: __attribute__((visibility("default"))) void qAddPostRoutine(QtCleanUpFunction); 8768: __attribute__((visibility("default"))) void qRemovePostRoutine(QtCleanUpFunction); 8768: __attribute__((visibility("default"))) QString qAppName(); 8768: # 275 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h" 3 4 8768: 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 1 3 4 8768: # 43 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qelapsedtimer.h" 1 3 4 8768: # 45 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qelapsedtimer.h" 3 4 8768: 8768: 8768: 8768: class __attribute__((visibility("default"))) QElapsedTimer 8768: { 8768: public: 8768: enum ClockType { 8768: SystemTime, 8768: MonotonicClock, 8768: TickCounter, 8768: MachAbsoluteTime, 8768: PerformanceCounter 8768: }; 8768: 8768: constexpr QElapsedTimer() 8768: : t1(static_cast(0x8000000000000000LL)), 8768: t2(static_cast(0x8000000000000000LL)) 8768: { 8768: } 8768: 8768: static ClockType clockType() noexcept; 8768: static bool isMonotonic() noexcept; 8768: 8768: void start() noexcept; 8768: qint64 restart() noexcept; 8768: void invalidate() noexcept; 8768: bool isValid() const noexcept; 8768: 8768: qint64 nsecsElapsed() const noexcept; 8768: qint64 elapsed() const noexcept; 8768: bool hasExpired(qint64 timeout) const noexcept; 8768: 8768: qint64 msecsSinceReference() const noexcept; 8768: qint64 msecsTo(const QElapsedTimer &other) const noexcept; 8768: qint64 secsTo(const QElapsedTimer &other) const noexcept; 8768: 8768: bool operator==(const QElapsedTimer &other) const noexcept 8768: { return t1 == other.t1 && t2 == other.t2; } 8768: bool operator!=(const QElapsedTimer &other) const noexcept 8768: { return !(*this == other); } 8768: 8768: friend bool __attribute__((visibility("default"))) operator<(const QElapsedTimer &v1, const QElapsedTimer &v2) noexcept; 8768: 8768: private: 8768: qint64 t1; 8768: qint64 t2; 8768: }; 8768: 8768: 8768: # 44 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 2 3 4 8768: # 58 "/usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h" 3 4 8768: 8768: 8768: class __attribute__((visibility("default"))) QDeadlineTimer 8768: { 8768: public: 8768: enum ForeverConstant { Forever }; 8768: 8768: constexpr QDeadlineTimer(Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8768: : t1(0), t2(0), type(type_) {} 8768: constexpr QDeadlineTimer(ForeverConstant, Qt::TimerType type_ = Qt::CoarseTimer) noexcept 8768: : t1(std::numeric_limits::max()), t2(0), type(type_) {} 8768: explicit QDeadlineTimer(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8768: 8768: void swap(QDeadlineTimer &other) noexcept 8768: { qSwap(t1, other.t1); qSwap(t2, other.t2); qSwap(type, other.type); } 8768: 8768: constexpr bool isForever() const noexcept 8768: { return t1 == (std::numeric_limits::max)(); } 8768: bool hasExpired() const noexcept; 8768: 8768: Qt::TimerType timerType() const noexcept 8768: { return Qt::TimerType(type & 0xff); } 8768: void setTimerType(Qt::TimerType type); 8768: 8768: qint64 remainingTime() const noexcept; 8768: qint64 remainingTimeNSecs() const noexcept; 8768: void setRemainingTime(qint64 msecs, Qt::TimerType type = Qt::CoarseTimer) noexcept; 8768: void setPreciseRemainingTime(qint64 secs, qint64 nsecs = 0, 8768: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8768: 8768: qint64 deadline() const noexcept __attribute__((pure)); 8768: qint64 deadlineNSecs() const noexcept __attribute__((pure)); 8768: void setDeadline(qint64 msecs, Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8768: void setPreciseDeadline(qint64 secs, qint64 nsecs = 0, 8768: Qt::TimerType type = Qt::CoarseTimer) noexcept; 8768: 8768: static QDeadlineTimer addNSecs(QDeadlineTimer dt, qint64 nsecs) noexcept __attribute__((pure)); 8768: static QDeadlineTimer current(Qt::TimerType timerType = Qt::CoarseTimer) noexcept; 8768: 8768: friend bool operator==(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8768: { return d1.t1 == d2.t1 && d1.t2 == d2.t2; } 8768: friend bool operator!=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8768: { return !(d1 == d2); } 8768: friend bool operator<(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8768: { return d1.t1 < d2.t1 || (d1.t1 == d2.t1 && d1.t2 < d2.t2); } 8768: friend bool operator<=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8768: { return d1 == d2 || d1 < d2; } 8768: friend bool operator>(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8768: { return d2 < d1; } 8768: friend bool operator>=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept 8768: { return !(d1 < d2); } 8768: 8768: friend QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs) 8768: { return QDeadlineTimer::addNSecs(dt, msecs * 1000 * 1000); } 8768: friend QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt) 8768: { return dt + msecs; } 8768: friend QDeadlineTimer operator-(QDeadlineTimer dt, qint64 msecs) 8768: { return dt + (-msecs); } 8768: friend qint64 operator-(QDeadlineTimer dt1, QDeadlineTimer dt2) 8768: { return (dt1.deadlineNSecs() - dt2.deadlineNSecs()) / (1000 * 1000); } 8768: QDeadlineTimer &operator+=(qint64 msecs) 8768: { *this = *this + msecs; return *this; } 8768: QDeadlineTimer &operator-=(qint64 msecs) 8768: { *this = *this + (-msecs); return *this; } 8768: 8768: 8768: template 8768: QDeadlineTimer(std::chrono::time_point deadline_, 8768: Qt::TimerType type_ = Qt::CoarseTimer) : t2(0) 8768: { setDeadline(deadline_, type_); } 8768: template 8768: QDeadlineTimer &operator=(std::chrono::time_point deadline_) 8768: { setDeadline(deadline_); return *this; } 8768: 8768: template 8768: void setDeadline(std::chrono::time_point deadline_, 8768: Qt::TimerType type_ = Qt::CoarseTimer) 8768: { setRemainingTime(deadline_ == deadline_.max() ? Duration::max() : deadline_ - Clock::now(), type_); } 8768: 8768: template 8768: std::chrono::time_point deadline() const 8768: { 8768: auto val = std::chrono::nanoseconds(rawRemainingTimeNSecs()) + Clock::now(); 8768: return std::chrono::time_point_cast(val); 8768: } 8768: 8768: template 8768: QDeadlineTimer(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8768: : t2(0) 8768: { setRemainingTime(remaining, type_); } 8768: 8768: template 8768: QDeadlineTimer &operator=(std::chrono::duration remaining) 8768: { setRemainingTime(remaining); return *this; } 8768: 8768: template 8768: void setRemainingTime(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) 8768: { 8768: if (remaining == remaining.max()) 8768: *this = QDeadlineTimer(Forever, type_); 8768: else 8768: setPreciseRemainingTime(0, std::chrono::nanoseconds(remaining).count(), type_); 8768: } 8768: 8768: std::chrono::nanoseconds remainingTimeAsDuration() const noexcept 8768: { 8768: if (isForever()) 8768: return std::chrono::nanoseconds::max(); 8768: qint64 nsecs = rawRemainingTimeNSecs(); 8768: if (nsecs <= 0) 8768: return std::chrono::nanoseconds::zero(); 8768: return std::chrono::nanoseconds(nsecs); 8768: } 8768: 8768: template 8768: friend QDeadlineTimer operator+(QDeadlineTimer dt, std::chrono::duration value) 8768: { return QDeadlineTimer::addNSecs(dt, std::chrono::duration_cast(value).count()); } 8768: template 8768: friend QDeadlineTimer operator+(std::chrono::duration value, QDeadlineTimer dt) 8768: { return dt + value; } 8768: template 8768: friend QDeadlineTimer operator+=(QDeadlineTimer &dt, std::chrono::duration value) 8768: { return dt = dt + value; } 8768: 8768: 8768: private: 8768: qint64 t1; 8768: unsigned t2; 8768: unsigned type; 8768: 8768: qint64 rawRemainingTimeNSecs() const noexcept; 8768: }; 8768: 8768: 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); } 8768: 8768: 8768: 8768: 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; } }; 8768: # 46 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 2 3 4 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: namespace QTest 8768: { 8768: __attribute__((__unused__)) inline static void qWait(int ms) 8768: { 8768: do { } while ((false) && (QCoreApplication::instance())); 8768: 8768: QDeadlineTimer timer(ms, Qt::PreciseTimer); 8768: int remaining = ms; 8768: do { 8768: QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); 8768: QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); 8768: remaining = timer.remainingTime(); 8768: if (remaining <= 0) 8768: break; 8768: QTest::qSleep(qMin(10, remaining)); 8768: remaining = timer.remainingTime(); 8768: } while (remaining > 0); 8768: } 8768: # 140 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtestsystem.h" 3 4 8768: } 8768: 8768: 8768: # 329 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/c++/8/set" 1 3 4 8768: # 58 "/usr/include/c++/8/set" 3 4 8768: 8768: # 59 "/usr/include/c++/8/set" 3 8768: 8768: 8768: # 1 "/usr/include/c++/8/bits/stl_set.h" 1 3 8768: # 64 "/usr/include/c++/8/bits/stl_set.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: class multiset; 8768: # 92 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template, 8768: typename _Alloc = std::allocator<_Key> > 8768: class set 8768: { 8768: # 108 "/usr/include/c++/8/bits/stl_set.h" 3 8768: static_assert(is_same::type, _Key>::value, 8768: "std::set must have a non-const, non-volatile value_type"); 8768: 8768: 8768: 8768: 8768: 8768: 8768: public: 8768: 8768: 8768: 8768: typedef _Key key_type; 8768: typedef _Key value_type; 8768: typedef _Compare key_compare; 8768: typedef _Compare value_compare; 8768: typedef _Alloc allocator_type; 8768: 8768: 8768: private: 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_Key>::other _Key_alloc_type; 8768: 8768: typedef _Rb_tree, 8768: key_compare, _Key_alloc_type> _Rep_type; 8768: _Rep_type _M_t; 8768: 8768: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8768: 8768: public: 8768: 8768: 8768: typedef typename _Alloc_traits::pointer pointer; 8768: typedef typename _Alloc_traits::const_pointer const_pointer; 8768: typedef typename _Alloc_traits::reference reference; 8768: typedef typename _Alloc_traits::const_reference const_reference; 8768: 8768: 8768: 8768: typedef typename _Rep_type::const_iterator iterator; 8768: typedef typename _Rep_type::const_iterator const_iterator; 8768: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8768: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8768: typedef typename _Rep_type::size_type size_type; 8768: typedef typename _Rep_type::difference_type difference_type; 8768: # 167 "/usr/include/c++/8/bits/stl_set.h" 3 8768: set() = default; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: set(const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Key_alloc_type(__a)) { } 8768: # 190 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: set(_InputIterator __first, _InputIterator __last) 8768: : _M_t() 8768: { _M_t._M_insert_unique(__first, __last); } 8768: # 207 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: set(_InputIterator __first, _InputIterator __last, 8768: const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Key_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__first, __last); } 8768: # 223 "/usr/include/c++/8/bits/stl_set.h" 3 8768: set(const set&) = default; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: set(set&&) = default; 8768: # 243 "/usr/include/c++/8/bits/stl_set.h" 3 8768: set(initializer_list __l, 8768: const _Compare& __comp = _Compare(), 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Key_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8768: 8768: 8768: explicit 8768: set(const allocator_type& __a) 8768: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8768: 8768: 8768: set(const set& __x, const allocator_type& __a) 8768: : _M_t(__x._M_t, _Key_alloc_type(__a)) { } 8768: 8768: 8768: set(set&& __x, const allocator_type& __a) 8768: noexcept(is_nothrow_copy_constructible<_Compare>::value 8768: && _Alloc_traits::_S_always_equal()) 8768: : _M_t(std::move(__x._M_t), _Key_alloc_type(__a)) { } 8768: 8768: 8768: set(initializer_list __l, const allocator_type& __a) 8768: : _M_t(_Compare(), _Key_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__l.begin(), __l.end()); } 8768: 8768: 8768: template 8768: set(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a) 8768: : _M_t(_Compare(), _Key_alloc_type(__a)) 8768: { _M_t._M_insert_unique(__first, __last); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: ~set() = default; 8768: # 297 "/usr/include/c++/8/bits/stl_set.h" 3 8768: set& 8768: operator=(const set&) = default; 8768: 8768: 8768: set& 8768: operator=(set&&) = default; 8768: # 315 "/usr/include/c++/8/bits/stl_set.h" 3 8768: set& 8768: operator=(initializer_list __l) 8768: { 8768: _M_t._M_assign_unique(__l.begin(), __l.end()); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: key_compare 8768: key_comp() const 8768: { return _M_t.key_comp(); } 8768: 8768: value_compare 8768: value_comp() const 8768: { return _M_t.key_comp(); } 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_t.get_allocator()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: begin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: cbegin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: cend() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: crbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: crend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return _M_t.empty(); } 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_t.size(); } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _M_t.max_size(); } 8768: # 440 "/usr/include/c++/8/bits/stl_set.h" 3 8768: void 8768: swap(set& __x) 8768: noexcept(__is_nothrow_swappable<_Compare>::value) 8768: { _M_t.swap(__x._M_t); } 8768: # 460 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: std::pair 8768: emplace(_Args&&... __args) 8768: { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); } 8768: # 486 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: iterator 8768: emplace_hint(const_iterator __pos, _Args&&... __args) 8768: { 8768: return _M_t._M_emplace_hint_unique(__pos, 8768: std::forward<_Args>(__args)...); 8768: } 8768: # 508 "/usr/include/c++/8/bits/stl_set.h" 3 8768: std::pair 8768: insert(const value_type& __x) 8768: { 8768: std::pair __p = 8768: _M_t._M_insert_unique(__x); 8768: return std::pair(__p.first, __p.second); 8768: } 8768: 8768: 8768: std::pair 8768: insert(value_type&& __x) 8768: { 8768: std::pair __p = 8768: _M_t._M_insert_unique(std::move(__x)); 8768: return std::pair(__p.first, __p.second); 8768: } 8768: # 545 "/usr/include/c++/8/bits/stl_set.h" 3 8768: iterator 8768: insert(const_iterator __position, const value_type& __x) 8768: { return _M_t._M_insert_unique_(__position, __x); } 8768: 8768: 8768: iterator 8768: insert(const_iterator __position, value_type&& __x) 8768: { return _M_t._M_insert_unique_(__position, std::move(__x)); } 8768: # 564 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: void 8768: insert(_InputIterator __first, _InputIterator __last) 8768: { _M_t._M_insert_unique(__first, __last); } 8768: # 577 "/usr/include/c++/8/bits/stl_set.h" 3 8768: void 8768: insert(initializer_list __l) 8768: { this->insert(__l.begin(), __l.end()); } 8768: # 652 "/usr/include/c++/8/bits/stl_set.h" 3 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(const_iterator __position) 8768: { return _M_t.erase(__position); } 8768: # 683 "/usr/include/c++/8/bits/stl_set.h" 3 8768: size_type 8768: erase(const key_type& __x) 8768: { return _M_t.erase(__x); } 8768: # 704 "/usr/include/c++/8/bits/stl_set.h" 3 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(const_iterator __first, const_iterator __last) 8768: { return _M_t.erase(__first, __last); } 8768: # 732 "/usr/include/c++/8/bits/stl_set.h" 3 8768: void 8768: clear() noexcept 8768: { _M_t.clear(); } 8768: # 747 "/usr/include/c++/8/bits/stl_set.h" 3 8768: size_type 8768: count(const key_type& __x) const 8768: { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } 8768: # 774 "/usr/include/c++/8/bits/stl_set.h" 3 8768: iterator 8768: find(const key_type& __x) 8768: { return _M_t.find(__x); } 8768: 8768: const_iterator 8768: find(const key_type& __x) const 8768: { return _M_t.find(__x); } 8768: # 809 "/usr/include/c++/8/bits/stl_set.h" 3 8768: iterator 8768: lower_bound(const key_type& __x) 8768: { return _M_t.lower_bound(__x); } 8768: 8768: const_iterator 8768: lower_bound(const key_type& __x) const 8768: { return _M_t.lower_bound(__x); } 8768: # 839 "/usr/include/c++/8/bits/stl_set.h" 3 8768: iterator 8768: upper_bound(const key_type& __x) 8768: { return _M_t.upper_bound(__x); } 8768: 8768: const_iterator 8768: upper_bound(const key_type& __x) const 8768: { return _M_t.upper_bound(__x); } 8768: # 878 "/usr/include/c++/8/bits/stl_set.h" 3 8768: std::pair 8768: equal_range(const key_type& __x) 8768: { return _M_t.equal_range(__x); } 8768: 8768: std::pair 8768: equal_range(const key_type& __x) const 8768: { return _M_t.equal_range(__x); } 8768: # 901 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: friend bool 8768: operator==(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8768: 8768: template 8768: friend bool 8768: operator<(const set<_K1, _C1, _A1>&, const set<_K1, _C1, _A1>&); 8768: }; 8768: # 956 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: inline bool 8768: operator==(const set<_Key, _Compare, _Alloc>& __x, 8768: const set<_Key, _Compare, _Alloc>& __y) 8768: { return __x._M_t == __y._M_t; } 8768: # 973 "/usr/include/c++/8/bits/stl_set.h" 3 8768: template 8768: inline bool 8768: operator<(const set<_Key, _Compare, _Alloc>& __x, 8768: const set<_Key, _Compare, _Alloc>& __y) 8768: { return __x._M_t < __y._M_t; } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const set<_Key, _Compare, _Alloc>& __x, 8768: const set<_Key, _Compare, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const set<_Key, _Compare, _Alloc>& __x, 8768: const set<_Key, _Compare, _Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const set<_Key, _Compare, _Alloc>& __x, 8768: const set<_Key, _Compare, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const set<_Key, _Compare, _Alloc>& __x, 8768: const set<_Key, _Compare, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline void 8768: swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: # 1035 "/usr/include/c++/8/bits/stl_set.h" 3 8768: 8768: } 8768: # 62 "/usr/include/c++/8/set" 2 3 8768: # 1 "/usr/include/c++/8/bits/stl_multiset.h" 1 3 8768: # 64 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: namespace std __attribute__ ((__visibility__ ("default"))) 8768: { 8768: 8768: 8768: 8768: template 8768: class set; 8768: # 94 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template , 8768: typename _Alloc = std::allocator<_Key> > 8768: class multiset 8768: { 8768: # 110 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: static_assert(is_same::type, _Key>::value, 8768: "std::multiset must have a non-const, non-volatile value_type"); 8768: 8768: 8768: 8768: 8768: 8768: 8768: public: 8768: 8768: typedef _Key key_type; 8768: typedef _Key value_type; 8768: typedef _Compare key_compare; 8768: typedef _Compare value_compare; 8768: typedef _Alloc allocator_type; 8768: 8768: private: 8768: 8768: typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template 8768: rebind<_Key>::other _Key_alloc_type; 8768: 8768: typedef _Rb_tree, 8768: key_compare, _Key_alloc_type> _Rep_type; 8768: 8768: _Rep_type _M_t; 8768: 8768: typedef __gnu_cxx::__alloc_traits<_Key_alloc_type> _Alloc_traits; 8768: 8768: public: 8768: typedef typename _Alloc_traits::pointer pointer; 8768: typedef typename _Alloc_traits::const_pointer const_pointer; 8768: typedef typename _Alloc_traits::reference reference; 8768: typedef typename _Alloc_traits::const_reference const_reference; 8768: 8768: 8768: 8768: typedef typename _Rep_type::const_iterator iterator; 8768: typedef typename _Rep_type::const_iterator const_iterator; 8768: typedef typename _Rep_type::const_reverse_iterator reverse_iterator; 8768: typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; 8768: typedef typename _Rep_type::size_type size_type; 8768: typedef typename _Rep_type::difference_type difference_type; 8768: # 164 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: multiset() = default; 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: explicit 8768: multiset(const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Key_alloc_type(__a)) { } 8768: # 186 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: multiset(_InputIterator __first, _InputIterator __last) 8768: : _M_t() 8768: { _M_t._M_insert_equal(__first, __last); } 8768: # 202 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: multiset(_InputIterator __first, _InputIterator __last, 8768: const _Compare& __comp, 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Key_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__first, __last); } 8768: # 218 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: multiset(const multiset&) = default; 8768: # 227 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: multiset(multiset&&) = default; 8768: # 239 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: multiset(initializer_list __l, 8768: const _Compare& __comp = _Compare(), 8768: const allocator_type& __a = allocator_type()) 8768: : _M_t(__comp, _Key_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8768: 8768: 8768: explicit 8768: multiset(const allocator_type& __a) 8768: : _M_t(_Compare(), _Key_alloc_type(__a)) { } 8768: 8768: 8768: multiset(const multiset& __m, const allocator_type& __a) 8768: : _M_t(__m._M_t, _Key_alloc_type(__a)) { } 8768: 8768: 8768: multiset(multiset&& __m, const allocator_type& __a) 8768: noexcept(is_nothrow_copy_constructible<_Compare>::value 8768: && _Alloc_traits::_S_always_equal()) 8768: : _M_t(std::move(__m._M_t), _Key_alloc_type(__a)) { } 8768: 8768: 8768: multiset(initializer_list __l, const allocator_type& __a) 8768: : _M_t(_Compare(), _Key_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__l.begin(), __l.end()); } 8768: 8768: 8768: template 8768: multiset(_InputIterator __first, _InputIterator __last, 8768: const allocator_type& __a) 8768: : _M_t(_Compare(), _Key_alloc_type(__a)) 8768: { _M_t._M_insert_equal(__first, __last); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: ~multiset() = default; 8768: # 293 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: multiset& 8768: operator=(const multiset&) = default; 8768: 8768: 8768: multiset& 8768: operator=(multiset&&) = default; 8768: # 311 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: multiset& 8768: operator=(initializer_list __l) 8768: { 8768: _M_t._M_assign_equal(__l.begin(), __l.end()); 8768: return *this; 8768: } 8768: 8768: 8768: 8768: 8768: 8768: key_compare 8768: key_comp() const 8768: { return _M_t.key_comp(); } 8768: 8768: value_compare 8768: value_comp() const 8768: { return _M_t.key_comp(); } 8768: 8768: allocator_type 8768: get_allocator() const noexcept 8768: { return allocator_type(_M_t.get_allocator()); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: begin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: end() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: rend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: cbegin() const noexcept 8768: { return _M_t.begin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: iterator 8768: cend() const noexcept 8768: { return _M_t.end(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: crbegin() const noexcept 8768: { return _M_t.rbegin(); } 8768: 8768: 8768: 8768: 8768: 8768: 8768: reverse_iterator 8768: crend() const noexcept 8768: { return _M_t.rend(); } 8768: 8768: 8768: 8768: bool 8768: empty() const noexcept 8768: { return _M_t.empty(); } 8768: 8768: 8768: size_type 8768: size() const noexcept 8768: { return _M_t.size(); } 8768: 8768: 8768: size_type 8768: max_size() const noexcept 8768: { return _M_t.max_size(); } 8768: # 436 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: void 8768: swap(multiset& __x) 8768: noexcept(__is_nothrow_swappable<_Compare>::value) 8768: { _M_t.swap(__x._M_t); } 8768: # 455 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: iterator 8768: emplace(_Args&&... __args) 8768: { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); } 8768: # 481 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: iterator 8768: emplace_hint(const_iterator __pos, _Args&&... __args) 8768: { 8768: return _M_t._M_emplace_hint_equal(__pos, 8768: std::forward<_Args>(__args)...); 8768: } 8768: # 501 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: iterator 8768: insert(const value_type& __x) 8768: { return _M_t._M_insert_equal(__x); } 8768: 8768: 8768: iterator 8768: insert(value_type&& __x) 8768: { return _M_t._M_insert_equal(std::move(__x)); } 8768: # 531 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: iterator 8768: insert(const_iterator __position, const value_type& __x) 8768: { return _M_t._M_insert_equal_(__position, __x); } 8768: 8768: 8768: iterator 8768: insert(const_iterator __position, value_type&& __x) 8768: { return _M_t._M_insert_equal_(__position, std::move(__x)); } 8768: # 549 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: void 8768: insert(_InputIterator __first, _InputIterator __last) 8768: { _M_t._M_insert_equal(__first, __last); } 8768: # 562 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: void 8768: insert(initializer_list __l) 8768: { this->insert(__l.begin(), __l.end()); } 8768: # 637 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(const_iterator __position) 8768: { return _M_t.erase(__position); } 8768: # 668 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: size_type 8768: erase(const key_type& __x) 8768: { return _M_t.erase(__x); } 8768: # 689 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: __attribute ((__abi_tag__ ("cxx11"))) 8768: iterator 8768: erase(const_iterator __first, const_iterator __last) 8768: { return _M_t.erase(__first, __last); } 8768: # 717 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: void 8768: clear() noexcept 8768: { _M_t.clear(); } 8768: # 729 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: size_type 8768: count(const key_type& __x) const 8768: { return _M_t.count(__x); } 8768: # 755 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: iterator 8768: find(const key_type& __x) 8768: { return _M_t.find(__x); } 8768: 8768: const_iterator 8768: find(const key_type& __x) const 8768: { return _M_t.find(__x); } 8768: # 790 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: iterator 8768: lower_bound(const key_type& __x) 8768: { return _M_t.lower_bound(__x); } 8768: 8768: const_iterator 8768: lower_bound(const key_type& __x) const 8768: { return _M_t.lower_bound(__x); } 8768: # 820 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: iterator 8768: upper_bound(const key_type& __x) 8768: { return _M_t.upper_bound(__x); } 8768: 8768: const_iterator 8768: upper_bound(const key_type& __x) const 8768: { return _M_t.upper_bound(__x); } 8768: # 859 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: std::pair 8768: equal_range(const key_type& __x) 8768: { return _M_t.equal_range(__x); } 8768: 8768: std::pair 8768: equal_range(const key_type& __x) const 8768: { return _M_t.equal_range(__x); } 8768: # 882 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: friend bool 8768: operator==(const multiset<_K1, _C1, _A1>&, 8768: const multiset<_K1, _C1, _A1>&); 8768: 8768: template 8768: friend bool 8768: operator< (const multiset<_K1, _C1, _A1>&, 8768: const multiset<_K1, _C1, _A1>&); 8768: }; 8768: # 941 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: inline bool 8768: operator==(const multiset<_Key, _Compare, _Alloc>& __x, 8768: const multiset<_Key, _Compare, _Alloc>& __y) 8768: { return __x._M_t == __y._M_t; } 8768: # 958 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: template 8768: inline bool 8768: operator<(const multiset<_Key, _Compare, _Alloc>& __x, 8768: const multiset<_Key, _Compare, _Alloc>& __y) 8768: { return __x._M_t < __y._M_t; } 8768: 8768: 8768: template 8768: inline bool 8768: operator!=(const multiset<_Key, _Compare, _Alloc>& __x, 8768: const multiset<_Key, _Compare, _Alloc>& __y) 8768: { return !(__x == __y); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>(const multiset<_Key,_Compare,_Alloc>& __x, 8768: const multiset<_Key,_Compare,_Alloc>& __y) 8768: { return __y < __x; } 8768: 8768: 8768: template 8768: inline bool 8768: operator<=(const multiset<_Key, _Compare, _Alloc>& __x, 8768: const multiset<_Key, _Compare, _Alloc>& __y) 8768: { return !(__y < __x); } 8768: 8768: 8768: template 8768: inline bool 8768: operator>=(const multiset<_Key, _Compare, _Alloc>& __x, 8768: const multiset<_Key, _Compare, _Alloc>& __y) 8768: { return !(__x < __y); } 8768: 8768: 8768: template 8768: inline void 8768: swap(multiset<_Key, _Compare, _Alloc>& __x, 8768: multiset<_Key, _Compare, _Alloc>& __y) 8768: noexcept(noexcept(__x.swap(__y))) 8768: { __x.swap(__y); } 8768: 8768: 8768: # 1023 "/usr/include/c++/8/bits/stl_multiset.h" 3 8768: 8768: } 8768: # 63 "/usr/include/c++/8/set" 2 3 8768: # 330 "/usr/include/x86_64-linux-gnu/qt5/QtTest/qtest.h" 2 3 4 8768: # 1 "/usr/include/x86_64-linux-gnu/qt5/QtTest/QTest" 2 3 4 8768: # 34 "/<>/templates/tests/testgenericcontainers.cpp" 2 8768: 8768: 8768: # 35 "/<>/templates/tests/testgenericcontainers.cpp" 8768: class TestGenericContainers : public CoverageObject 8768: { 8768: 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: public: 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: #pragma GCC diagnostic push 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: #pragma GCC diagnostic ignored "-Wsuggest-override" 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: 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: 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: #pragma GCC diagnostic ignored "-Wattributes" 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: #pragma GCC diagnostic pop 8768: # 37 "/<>/templates/tests/testgenericcontainers.cpp" 8768: struct QPrivateSignal {}; 8768: 8768: # 38 "/<>/templates/tests/testgenericcontainers.cpp" 8768: public: 8768: explicit TestGenericContainers(QObject *parent = 0); 8768: 8768: private : 8768: void testContainer_Builtins(); 8768: }; 8768: 8768: TestGenericContainers::TestGenericContainers(QObject *parent) 8768: : CoverageObject(parent) 8768: { 8768: } 8768: 8768: template QVector getItems() 8768: { 8768: QVector items; 8768: items.push_back(9); 8768: items.push_back(7); 8768: items.push_back(5); 8768: return items; 8768: } 8768: 8768: template <> QVector getItems() 8768: { 8768: QVector items; 8768: 8768: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const int item 8768: # 62 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: # 63 "/<>/templates/tests/testgenericcontainers.cpp" 8768: items.push_back(QString::number(item)); 8768: return items; 8768: } 8768: 8768: template <> QVector getItems() 8768: { 8768: QVector items; 8768: 8768: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const int item 8768: # 70 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: # 71 "/<>/templates/tests/testgenericcontainers.cpp" 8768: items.push_back(item); 8768: return items; 8768: } 8768: 8768: template <> QVector getItems() 8768: { 8768: QVector items; 8768: items.reserve(3); 8768: for (auto i = 0; i < 3; ++i) { 8768: QDateTime d; 8768: d.setTime_t(0); 8768: d = d.addDays(i); 8768: items.push_back(d); 8768: } 8768: return items; 8768: } 8768: 8768: template <> QVector getItems() 8768: { 8768: QVector items; 8768: items.reserve(3); 8768: for (auto i = 9; i > 4; i -= 2) { 8768: auto obj = new QObject; 8768: 8768: obj->setObjectName(QString::number(i)); 8768: items.push_back(obj); 8768: } 8768: return items; 8768: } 8768: 8768: template struct ContainerPopulator { 8768: static void populateSequential(Container &container) 8768: { 8768: 8768: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const typename Container::value_type item 8768: # 104 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: 8768: # 106 "/<>/templates/tests/testgenericcontainers.cpp" 8768: container.push_back(item); 8768: } 8768: static void populateAssociative(Container &container) 8768: { 8768: auto i = 0; 8768: 8768: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const typename Container::mapped_type item 8768: # 111 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: 8768: # 113 "/<>/templates/tests/testgenericcontainers.cpp" 8768: container[i++] = item; 8768: } 8768: }; 8768: 8768: template struct ContainerPopulator> { 8768: static void populateSequential(QSet &container) 8768: { 8768: 8768: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const T item 8768: # 120 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: # 121 "/<>/templates/tests/testgenericcontainers.cpp" 8768: container.insert(item); 8768: } 8768: }; 8768: 8768: template struct ContainerPopulator> { 8768: static void populateAssociative(QMap &container) 8768: { 8768: auto i = 0; 8768: 8768: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const T item 8768: # 129 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: # 130 "/<>/templates/tests/testgenericcontainers.cpp" 8768: container.insert(QString::number(i++), item); 8768: } 8768: }; 8768: 8768: template struct ContainerPopulator> { 8768: static void populateAssociative(QHash &container) 8768: { 8768: auto i = 0; 8768: 8768: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const T item 8768: # 138 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: # 139 "/<>/templates/tests/testgenericcontainers.cpp" 8768: container.insert(QString::number(i++), item); 8768: } 8768: }; 8768: 8768: template struct ContainerPopulator> { 8768: static void populateAssociative(std::map &container) 8768: { 8768: auto i = 0; 8768: 8768: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 8768: getItems() 8768: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const T item 8768: # 147 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: 8768: # 148 "/<>/templates/tests/testgenericcontainers.cpp" 8768: container[QString::number(i++)] = item; 8768: } 8768: }; 8768: 8768: template QString getTemplate() 8768: { 8768: return 8768: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}" 8768: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item }},{% endfor %}" 8768: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 154 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template <> QString getTemplate() 8768: { 8768: return 8768: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item|date }},{% endfor %}" 8768: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item|date }},{% endfor %}" 8768: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 159 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template <> QString getTemplate() 8768: { 8768: return 8768: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item.objectName }},{% endfor %}" 8768: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container %}{{ item.objectName }},{% endfor %}" 8768: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 164 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template QString getAssociativeTemplate() 8768: { 8768: return 8768: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item }},{% endfor %}" 8768: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item }},{% endfor %}" 8768: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 169 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template <> QString getAssociativeTemplate() 8768: { 8768: return 8768: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item|date }},{% endfor %}" 8768: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item|date }},{% endfor %}" 8768: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 174 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template <> QString getAssociativeTemplate() 8768: { 8768: return 8768: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item.objectName }},{% endfor %}" 8768: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "{{ container.size }};{{ container.count }};{% for item in container.values %}{{ item.objectName }},{% endfor %}" 8768: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 179 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template QStringList getResults() 8768: { 8768: return QStringList() << 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "3;3;" 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "3;3;" 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8768: << 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "9," 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "9," 8768: # 184 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: << 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "7," 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "7," 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: << 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "5," 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "5," 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 185 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template <> QStringList getResults() 8768: { 8768: return QStringList() << 8768: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "3;3;" 8768: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "3;3;" 8768: # 190 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: 8768: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 8768: << 8768: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "Jan. 1, 1970," 8768: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "Jan. 1, 1970," 8768: # 191 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: 8768: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 8768: << 8768: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "Jan. 2, 1970," 8768: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "Jan. 2, 1970," 8768: # 192 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8768: << 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "Jan. 3, 1970," 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "Jan. 3, 1970," 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 193 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template 8768: struct CleanupSequentialContainer { 8768: static void clean(Container &) {} 8768: }; 8768: 8768: template 8768: struct CleanupAssociativeContainer { 8768: static void clean(Container &) {} 8768: }; 8768: 8768: template 8768: struct CleanupSequentialContainer { 8768: static void clean(Container &c) { qDeleteAll(c); } 8768: }; 8768: 8768: template 8768: struct CleanupAssociativeContainer { 8768: static void clean(Container &c) { qDeleteAll(c); } 8768: }; 8768: 8768: template 8768: struct CleanupAssociativeContainer, QObject *> { 8768: static void clean(std::map &c) 8768: { 8768: typename std::map::iterator it = c.begin(); 8768: const typename std::map::iterator end = c.end(); 8768: for (; it != end; ++it) { 8768: delete it->second; 8768: it->second = 0; 8768: } 8768: } 8768: }; 8768: 8768: template void cleanupSequential(Container c) 8768: { 8768: CleanupSequentialContainer::clean(c); 8768: } 8768: 8768: template void cleanupAssociative(Container c) 8768: { 8768: CleanupAssociativeContainer::clean(c); 8768: } 8768: 8768: void testContainer(const QString &stringTemplate, 8768: const QVariant &containerVariant, 8768: const QStringList &expectedResults, bool unordered) 8768: { 8768: Grantlee::Engine engine; 8768: 8768: engine.setPluginPaths(QStringList() << 8768: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "/<>/obj-x86_64-linux-gnu/" 8768: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "/<>/obj-x86_64-linux-gnu/" 8768: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 245 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ); 8768: 8768: Grantlee::Context c; 8768: c.insert( 8768: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "container" 8768: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "container" 8768: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 248 "/<>/templates/tests/testgenericcontainers.cpp" 8768: , containerVariant); 8768: 8768: auto t1 = engine.newTemplate(stringTemplate, 8768: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "template1" 8768: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "template1" 8768: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 250 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ); 8768: 8768: auto result = t1->render(&c); 8768: if (!unordered) 8768: 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: do { if (!QTest::qCompare( 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8768: result 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8768: expectedResults.join(QString()) 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "result" 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "expectedResults.join(QString())" 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , "/<>/templates/tests/testgenericcontainers.cpp", 254)) return;} while (false) 8768: # 254 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: else { 8768: 8768: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: do { if (!QTest::qVerify(static_cast( 8768: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 8768: result.size() == expectedResults.join(QString()).size() 8768: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ), 8768: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "result.size() == expectedResults.join(QString()).size()" 8768: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , "", "/<>/templates/tests/testgenericcontainers.cpp", 256)) return;} while (false) 8768: # 256 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: 8768: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: for (auto _container_ = QtPrivate::qMakeForeachContainer( 8768: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 8768: expectedResults 8768: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for ( 8768: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 8768: const QString &expectedResult 8768: # 257 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: = *_container_.i; _container_.control; _container_.control = 0) 8768: do { if (!QTest::qVerify(static_cast( 8768: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 8768: result.contains(expectedResult) 8768: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ), 8768: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "result.contains(expectedResult)" 8768: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , "", "/<>/templates/tests/testgenericcontainers.cpp", 258)) return;} while (false) 8768: # 258 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: auto t2 = engine.newTemplate( 8768: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "-{{ container.doesnotexist }}-" 8768: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "-{{ container.doesnotexist }}-" 8768: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 261 "/<>/templates/tests/testgenericcontainers.cpp" 8768: , 8768: 8768: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "template2" 8768: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "template2" 8768: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()) 8768: # 262 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ); 8768: 8768: auto result2 = t2->render(&c); 8768: 8768: 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: do { if (!QTest::qCompare( 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8768: result2 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , ([]() noexcept -> QString { enum { Size = sizeof(u"" 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "--" 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: )/2 - 1 }; static const QStaticStringData qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "--" 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "result2" 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "QStringLiteral(\"--\")" 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: , "/<>/templates/tests/testgenericcontainers.cpp", 266)) return;} while (false) 8768: # 266 "/<>/templates/tests/testgenericcontainers.cpp" 8768: ; 8768: } 8768: 8768: template 8768: void doTestSequentialContainer(bool unordered = false) 8768: { 8768: Container container; 8768: ContainerPopulator::populateSequential(container); 8768: 8768: testContainer(getTemplate(), 8768: QVariant::fromValue(container), 8768: getResults(), unordered); 8768: cleanupSequential(container); 8768: } 8768: 8768: template 8768: void doTestAssociativeContainer(bool unordered = false) 8768: { 8768: Container container; 8768: ContainerPopulator::populateAssociative(container); 8768: 8768: testContainer(getAssociativeTemplate(), 8768: QVariant::fromValue(container), 8768: getResults(), unordered); 8768: cleanupAssociative(container); 8768: } 8768: 8768: template void doTestNonHashableContainers() 8768: { 8768: doTestSequentialContainer>(); 8768: doTestSequentialContainer>(); 8768: doTestSequentialContainer>(); 8768: doTestSequentialContainer>(); 8768: doTestSequentialContainer>(); 8768: doTestSequentialContainer>(); 8768: doTestAssociativeContainer>(); 8768: doTestAssociativeContainer>(); 8768: doTestAssociativeContainer>(true); 8768: # 324 "/<>/templates/tests/testgenericcontainers.cpp" 8768: } 8768: 8768: template void doTestContainers() 8768: { 8768: doTestNonHashableContainers(); 8768: doTestSequentialContainer>(true); 8768: } 8768: 8768: void TestGenericContainers::testContainer_Builtins() 8768: { 8768: doTestContainers(); 8768: # 348 "/<>/templates/tests/testgenericcontainers.cpp" 8768: } 8768: 8768: 8768: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); app.setAttribute(Qt::AA_Use96Dpi, true); 8768: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 8768: TestGenericContainers 8768: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: tc; QTest::setMainSourcePath("/<>/templates/tests/testgenericcontainers.cpp", 8768: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 8768: "/<>/obj-x86_64-linux-gnu" 8768: # 350 "/<>/templates/tests/testgenericcontainers.cpp" 3 4 8768: ); return QTest::qExec(&tc, argc, argv); } 8768: # 1 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 1 8768: # 19 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 8768: 8768: # 20 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: #pragma GCC diagnostic push 8768: # 20 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 8768: 8768: # 21 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 8768: # 21 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 8768: 8768: # 22 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: struct qt_meta_stringdata_TestGenericContainers_t { 8768: QByteArrayData data[3]; 8768: char stringdata0[46]; 8768: }; 8768: 8768: 8768: 8768: 8768: 8768: static const qt_meta_stringdata_TestGenericContainers_t qt_meta_stringdata_TestGenericContainers = { 8768: { 8768: 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: { { { -1 } }, 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 21 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: , 0, 0, 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: qptrdiff( 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: __builtin_offsetof ( 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: qt_meta_stringdata_TestGenericContainers_t 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: , 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: stringdata0 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: ) 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: + 0 - 0 * sizeof(QByteArrayData)) 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: } 8768: # 33 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: , 8768: 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: { { { -1 } }, 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 22 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: , 0, 0, 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: qptrdiff( 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: __builtin_offsetof ( 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: qt_meta_stringdata_TestGenericContainers_t 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: , 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: stringdata0 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: ) 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: + 22 - 1 * sizeof(QByteArrayData)) 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: } 8768: # 34 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: , 8768: 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: { { { -1 } }, 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 0 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: , 0, 0, 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: qptrdiff( 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: __builtin_offsetof ( 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: qt_meta_stringdata_TestGenericContainers_t 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: , 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: stringdata0 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: ) 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: + 45 - 2 * sizeof(QByteArrayData)) 8768: # 35 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: } 8768: 8768: 8768: # 37 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: }, 8768: "TestGenericContainers\0testContainer_Builtins\0" 8768: "" 8768: }; 8768: 8768: 8768: static const uint qt_meta_data_TestGenericContainers[] = { 8768: 8768: 8768: 7, 8768: 0, 8768: 0, 0, 8768: 1, 14, 8768: 0, 0, 8768: 0, 0, 8768: 0, 0, 8768: 0, 8768: 0, 8768: 8768: 8768: 1, 0, 19, 2, 0x08 , 8768: 8768: 8768: QMetaType::Void, 8768: 8768: 0 8768: }; 8768: 8768: void TestGenericContainers::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 8768: { 8768: if (_c == QMetaObject::InvokeMetaMethod) { 8768: TestGenericContainers *_t = static_cast(_o); 8768: 8768: # 69 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: (void) 8768: # 69 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: _t 8768: # 69 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: ; 8768: 8768: # 70 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: switch (_id) { 8768: case 0: _t->testContainer_Builtins(); break; 8768: default: ; 8768: } 8768: } 8768: 8768: # 75 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: (void) 8768: # 75 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: _a 8768: # 75 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 3 4 8768: ; 8768: # 75 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: ; 8768: } 8768: 8768: const QMetaObject TestGenericContainers::staticMetaObject = { 8768: { &CoverageObject::staticMetaObject, qt_meta_stringdata_TestGenericContainers.data, 8768: qt_meta_data_TestGenericContainers, qt_static_metacall, nullptr, nullptr} 8768: }; 8768: 8768: 8768: const QMetaObject *TestGenericContainers::metaObject() const 8768: { 8768: return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; 8768: } 8768: 8768: void *TestGenericContainers::qt_metacast(const char *_clname) 8768: { 8768: if (!_clname) return nullptr; 8768: if (!strcmp(_clname, qt_meta_stringdata_TestGenericContainers.stringdata0)) 8768: return static_cast(this); 8768: return CoverageObject::qt_metacast(_clname); 8768: } 8768: 8768: int TestGenericContainers::qt_metacall(QMetaObject::Call _c, int _id, void **_a) 8768: { 8768: _id = CoverageObject::qt_metacall(_c, _id, _a); 8768: if (_id < 0) 8768: return _id; 8768: if (_c == QMetaObject::InvokeMetaMethod) { 8768: if (_id < 1) 8768: qt_static_metacall(this, _c, _id, _a); 8768: _id -= 1; 8768: } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { 8768: if (_id < 1) 8768: *reinterpret_cast(_a[0]) = -1; 8768: _id -= 1; 8768: } 8768: return _id; 8768: } 8768: 8768: # 113 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: #pragma GCC diagnostic pop 8768: # 113 "/<>/obj-x86_64-linux-gnu/templates/tests/testgenericcontainers_exec_autogen/include/testgenericcontainers.moc" 8768: 8768: 8768: # 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-x86_64-linux-gnu' CMakeFiles/Makefile2:1046: recipe for target 'templates/tests/CMakeFiles/testgenericcontainers_exec.dir/all' failed make[2]: *** [templates/tests/CMakeFiles/testgenericcontainers_exec.dir/all] Error 2 [ 96%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/regroup.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 96%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/spaceless.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 97%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/templatetag.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 97%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/widthratio.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 98%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/with.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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 [ 99%] Building CXX object templates/defaulttags/CMakeFiles/grantlee_defaulttags.dir/grantlee_defaulttags_autogen/mocs_compilation.cpp.o cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags -I/<>/templates/defaulttags -I/<>/obj-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/include -I/<>/obj-x86_64-linux-gnu/templates/lib -I/<>/templates/lib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/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-x86_64-linux-gnu/templates/defaulttags/grantlee_defaulttags_autogen/mocs_compilation.cpp [ 99%] Linking CXX shared module ../../grantlee/5.1/grantlee_defaulttags.so cd /<>/obj-x86_64-linux-gnu/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-x86_64-linux-gnu/templates/lib: ../lib/libGrantlee_Templates.so.5.1.0 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.3 make[3]: Leaving directory '/<>/obj-x86_64-linux-gnu' [ 99%] Built target grantlee_defaulttags make[2]: Leaving directory '/<>/obj-x86_64-linux-gnu' Makefile:165: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/<>/obj-x86_64-linux-gnu' dh_auto_build: cd obj-x86_64-linux-gnu && make -j4 returned exit code 2 debian/rules:12: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 20180113-2325 Finished -------- E: Build failure (dpkg-buildpackage died) +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<> Not removing build depends: as requested +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build-Space: 147900 Build-Time: 194 Distribution: bionic Fail-Stage: build Host Architecture: amd64 Install-Time: 86 Job: grantlee5_5.1.0-2.dsc Machine Architecture: amd64 Package: grantlee5 Package-Time: 282 Source-Version: 5.1.0-2 Space: 147900 Status: attempted Version: 5.1.0-2 -------------------------------------------------------------------------------- Finished at 20180113-2325 Build needed 00:04:42, 147900k disc space RUN: /usr/share/launchpad-buildd/slavebin/in-target scan-for-processes --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 Scanning for processes to kill in build PACKAGEBUILD-14100382 RUN: /usr/share/launchpad-buildd/slavebin/in-target umount-chroot --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 Stopping target for build PACKAGEBUILD-14100382 RUN: /usr/share/launchpad-buildd/slavebin/in-target remove-build --backend=chroot --series=bionic --arch=amd64 PACKAGEBUILD-14100382 Removing build PACKAGEBUILD-14100382