--- /srv/reproducible-results/rbuild-debian/r-b-build.NszaiF3k/b1/dune-common_2.9.0-8_armhf.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.NszaiF3k/b2/dune-common_2.9.0-8_armhf.changes ├── Files │ @@ -1,4 +1,4 @@ │ │ 512ee69e4b8c95a2d7c46fb74662e923 532588 debug optional libdune-common-dev-dbgsym_2.9.0-8_armhf.deb │ 7fa183cbfd395045d011aea7339caf80 376192 libdevel optional libdune-common-dev_2.9.0-8_armhf.deb │ - 7832b19421c54472ef825bb6137b1924 3066116 doc optional libdune-common-doc_2.9.0-8_all.deb │ + 53161a6b27bd1cf8e1503cdb95e56afa 3064752 doc optional libdune-common-doc_2.9.0-8_all.deb ├── libdune-common-doc_2.9.0-8_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-11-07 15:59:08.000000 debian-binary │ │ --rw-r--r-- 0 0 0 26992 2024-11-07 15:59:08.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 3038932 2024-11-07 15:59:08.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 26912 2024-11-07 15:59:08.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 3037648 2024-11-07 15:59:08.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ │ │ │ ├── line order │ │ │ │ │ @@ -25,28 +25,29 @@ │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00011.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00011_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00014.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00014_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00017.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00017_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00020.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00020_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00023.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00023_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00026.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00026_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00029.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00029_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00032.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00032_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00035.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00035_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00038.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00038_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00041.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00044.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00041_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00047.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00047_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00050.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00050_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00053.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00053_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00056.html │ │ │ │ │ @@ -87,25 +88,26 @@ │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00110.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00110_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00113.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00113_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00116.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00116_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00119.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00119_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00122.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00122_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00125.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00125_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00128.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00128_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00131.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00131_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00134.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00134_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00137.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00137_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00140.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00140_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00143.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00143_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00146.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00146_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00149.html │ │ │ │ │ @@ -113,51 +115,49 @@ │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00152.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00152_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00155.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00155_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00158.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00158_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00161.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00161_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00164.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00164_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00167.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00167_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00170.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00170_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00173.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00173_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00176.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00176_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00179.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00179_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00182.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00182_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00185.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00185_source.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00188.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00191.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00191_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00194.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00194_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00197.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00197_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00200.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00200_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00203.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00203_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00206.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00206_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00209.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00209_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00212.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00212_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00215.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00215_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00218.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00218_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00221.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00221_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00224.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00224_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00227.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00227_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00230.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00230_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00233.html │ │ │ │ │ @@ -177,20 +177,20 @@ │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00254.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00254_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00257.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00257_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00260.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00260_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00263.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00263_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00266.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00266_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00269.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00269_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00272.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00272_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00275.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00275_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00278.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00278_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00281.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00281_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00284.html │ │ │ │ │ @@ -230,15 +230,14 @@ │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00335.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00335_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00338.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00338_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00341.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00341_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00344.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00344_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00347.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00347_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00350.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00350_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00353.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00353_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00356.html │ │ │ │ │ @@ -246,29 +245,30 @@ │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00359.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00359_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00362.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00362_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00365.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00365_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00368.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00368_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00371.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00371_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00374.html │ │ │ │ │ -usr/share/doc/libdune-common-doc/doxygen/a00374_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00377.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00377_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00380.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00380_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00383.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00383_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00386.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00386_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00389.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00389_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00392.html │ │ │ │ │ +usr/share/doc/libdune-common-doc/doxygen/a00392_source.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00395.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00396.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00397.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00397.png │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00398.html │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00398.png │ │ │ │ │ usr/share/doc/libdune-common-doc/doxygen/a00399.html │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -26,259 +26,259 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2825 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/buildsystem/html/search.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10550 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/buildsystem/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2092 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/changelog.Debian.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7231 2022-10-20 18:41:15.000000 ./usr/share/doc/libdune-common-doc/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9815 2023-01-12 15:06:30.000000 ./usr/share/doc/libdune-common-doc/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3045 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00002.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7783 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12397 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6662 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52852 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5458 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8314 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6380 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19421 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6970 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00020.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94215 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16771 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48543 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14770 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23217 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5214 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15233 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5668 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10965 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7919 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 126603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3899 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00041.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4128 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00044.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7494 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31467 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5278 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22235 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26496 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00056.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33493 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4310 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17898 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8194 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41231 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5275 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11331 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9909 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 240955 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15576 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4655 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7486 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5043 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6951 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14995 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 142940 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7345 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18651 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12096 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 108064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26419 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61788 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14506 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 54081 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7124 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23206 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10991 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22884 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20708 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66287 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4366 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4748 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00119.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33175 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 60433 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 127266 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8828 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21252 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00131.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 132735 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00131_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7234 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00137.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7626 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5777 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10089 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7628 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8943 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4672 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6796 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17652 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42086 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5767 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16722 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3949 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00161.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6781 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00164.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8264 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00164_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3372 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 88030 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17902 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 167223 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4768 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14349 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8812 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6187 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00179.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17742 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00179_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24039 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00182.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00182_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20797 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6713 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00191.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11004 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00191_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14005 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 86153 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 81300 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 145342 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3818 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6526 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20199 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 357109 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00209.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6807 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45459 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29707 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8196 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00221.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 148986 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00221_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7265 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14139 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5325 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10220 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6819 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 55191 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7195 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 151469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6229 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21246 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6556 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18103 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4959 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4993 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31445 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6435 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9499 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 250589 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00263.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9512 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00263_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8170 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 63385 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28676 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4979 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00272.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6158 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19960 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24718 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 121580 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41539 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5049 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10687 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 108967 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 51921 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14288 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 63256 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16097 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6856 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 112071 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5247 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9926 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20821 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29928 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6240 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6782 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9141 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 172723 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5984 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 51317 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3658 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9019 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5638 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33611 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6398 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33437 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19865 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 179606 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 101374 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6612 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13149 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 178064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7409 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33439 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6505 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00344.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39913 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00344_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8399 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46563 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46321 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7592 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 136353 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 58092 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8766 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 71932 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11420 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 290483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4983 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23075 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00368.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5082 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8080 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19607 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00374.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 104969 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00374_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8731 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61450 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8323 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40740 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6586 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44038 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8836 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10533 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17882 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 79073 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9165 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00392.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8196 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 148986 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7783 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12397 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5275 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11331 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6240 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6782 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3372 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00020.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 88030 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00020_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8828 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4655 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7486 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17882 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 79073 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7124 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23206 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19865 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 179606 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7409 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00041.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33439 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00041_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 101374 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8766 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 71932 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3658 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23075 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00056.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11420 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 290483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6398 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33437 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4983 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7592 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 136353 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9141 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 172723 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5984 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 51317 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5638 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33611 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46321 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9019 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8399 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46563 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13149 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 178064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6505 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39913 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 58092 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6612 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 51921 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7919 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33175 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5247 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9926 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6807 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6229 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21246 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00119.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15576 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00119_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45459 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6586 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44038 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16771 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48543 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9165 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00131.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5043 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6951 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26419 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00137.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61788 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00137_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6556 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18103 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5278 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22235 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6781 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8264 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14770 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23217 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 240955 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14506 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54081 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9512 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5082 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00161.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8080 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00161_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6970 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00164.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14995 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 142940 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20821 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29928 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8812 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3949 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00179.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00182.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33493 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4128 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00188.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4979 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00191.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4993 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31445 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6158 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19960 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7345 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18651 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6187 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17742 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16097 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8194 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00209.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41231 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00209_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8323 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40740 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3818 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6526 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8836 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10533 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00221.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4768 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14349 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14288 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 63256 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26496 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8943 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17652 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42086 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5777 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10089 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7628 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4672 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6796 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7626 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6380 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19421 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20199 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24039 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81300 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 145342 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00263.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20797 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 357109 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14005 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00272.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 86153 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00272_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6713 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11004 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 55191 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9499 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 250589 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5458 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8314 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5668 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10965 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5049 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7265 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14139 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10991 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22884 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17902 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 167223 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6662 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52852 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21252 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 132735 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 94215 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10687 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 108967 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4366 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4959 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5214 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15233 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41539 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6819 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 100137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20708 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66287 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8731 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61450 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8170 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 63385 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3899 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00344.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5767 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16722 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9909 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4310 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17898 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6435 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7234 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12096 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 108064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7494 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31467 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00368.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29707 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00368_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7195 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 151469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4748 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00374.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5325 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10220 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24718 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 121580 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28676 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6856 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 112071 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19607 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 104969 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 60433 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00392.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 127266 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00392_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7897 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00395.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5736 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00396.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 261282 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00397.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 27946 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00397.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 39665 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00398.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2473 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00398.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9343 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00399.html │ │ │ │ @@ -1127,15 +1127,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5016 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_ade7f944fd3a163752f5cc1af55c988a_dep.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4572 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_be46aaae597ce098e36afa8d6ef4f49b.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2402 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_be46aaae597ce098e36afa8d6ef4f49b_dep.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48471 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_e151556194dc695299293609645e9437.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_e151556194dc695299293609645e9437_dep.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3669 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_e68e8157741866f444e17edd764ebbae.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 45631 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/doxygen.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 149308 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dune-common.tag.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 149383 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dune-common.tag.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dynsections.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 51296 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/files.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1145 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_0.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1167 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_0_dark.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1153 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_1.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 403 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_10.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 422 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_10_dark.png │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00008.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: shared_ptr.hh File Reference │ │ │ │ +dune-common: bitsetvector.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -71,57 +71,59 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Classes | │ │ │ │ -Namespaces | │ │ │ │ -Functions
│ │ │ │ -
shared_ptr.hh File Reference
│ │ │ │ +Namespaces
│ │ │ │ +
bitsetvector.hh File Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ -

This file implements several utilities related to std::shared_ptr. │ │ │ │ +

Efficient implementation of a dynamic array of static arrays of booleans. │ │ │ │ More...

│ │ │ │ -
#include <memory>
│ │ │ │ -#include <dune/common/typetraits.hh>
│ │ │ │ +
#include <vector>
│ │ │ │ +#include <bitset>
│ │ │ │ +#include <iostream>
│ │ │ │ +#include <algorithm>
│ │ │ │ +#include <dune/common/boundschecking.hh>
│ │ │ │ +#include <dune/common/genericiterator.hh>
│ │ │ │ +#include <dune/common/exceptions.hh>
│ │ │ │
│ │ │ │

Go to the source code of this file.

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

│ │ │ │ Classes

struct  Dune::null_deleter< T >
 implements the Deleter concept of shared_ptr without deleting anything More...
class  Dune::BitSetVectorConstReference< block_size, Alloc >
 A proxy class that acts as a const reference to a single bitset in a BitSetVector. More...
 
class  Dune::BitSetVectorReference< block_size, Alloc >
 A proxy class that acts as a mutable reference to a single bitset in a BitSetVector. More...
 
struct  Dune::const_reference< BitSetVectorReference< block_size, Alloc > >
 
struct  Dune::const_reference< BitSetVectorConstReference< block_size, Alloc > >
 
struct  Dune::mutable_reference< BitSetVectorReference< block_size, Alloc > >
 
struct  Dune::mutable_reference< BitSetVectorConstReference< block_size, Alloc > >
 
class  Dune::BitSetVector< block_size, Allocator >
 A dynamic array of blocks of booleans. More...
 
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

│ │ │ │ Namespaces

namespace  Dune
 Dune namespace.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │

│ │ │ │ -Functions

template<typename T >
std::shared_ptr< T > Dune::stackobject_to_shared_ptr (T &t)
 Create a shared_ptr for a stack-allocated object.
 
template<class T >
auto Dune::wrap_or_move (T &&t)
 Capture R-value reference to shared_ptr.
 
template<class T >
auto Dune::wrap_or_move (T &t)
 Capture L-value reference to std::shared_ptr.
 
│ │ │ │

Detailed Description

│ │ │ │ -

This file implements several utilities related to std::shared_ptr.

│ │ │ │ -
Author
Markus Blatt
│ │ │ │ +

Efficient implementation of a dynamic array of static arrays of booleans.

│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,40 +1,48 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -shared_ptr.hh File Reference │ │ │ │ │ -This file implements several utilities related to std::shared_ptr. _M_o_r_e_._._. │ │ │ │ │ -#include │ │ │ │ │ -#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ +_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s │ │ │ │ │ +bitsetvector.hh File Reference │ │ │ │ │ +Efficient implementation of a dynamic array of static arrays of booleans. │ │ │ │ │ +_M_o_r_e_._._. │ │ │ │ │ +#include │ │ │ │ │ +#include │ │ │ │ │ +#include │ │ │ │ │ +#include │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_b_o_u_n_d_s_c_h_e_c_k_i_n_g_._h_h> │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_g_e_n_e_r_i_c_i_t_e_r_a_t_o_r_._h_h> │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_e_x_c_e_p_t_i_o_n_s_._h_h> │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ CCllaasssseess │ │ │ │ │ -struct   _D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r_<_ _T_ _> │ │ │ │ │ -  implements the Deleter concept of shared_ptr without deleting anything │ │ │ │ │ - _M_o_r_e_._._. │ │ │ │ │ + class   _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _> │ │ │ │ │ +  A proxy class that acts as a const reference to a single bitset in a │ │ │ │ │ + _B_i_t_S_e_t_V_e_c_t_o_r. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ + class   _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _> │ │ │ │ │ +  A proxy class that acts as a mutable reference to a single bitset in a │ │ │ │ │ + _B_i_t_S_e_t_V_e_c_t_o_r. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _>_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _> │ │ │ │ │ + _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _>_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c │ │ │ │ │ + _>_ _> │ │ │ │ │ +  │ │ │ │ │ + class   _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_a_t_o_r_ _> │ │ │ │ │ +  A dynamic array of blocks of booleans. _M_o_r_e_._._. │ │ │ │ │   │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _D_u_n_e │ │ │ │ │   _D_u_n_e namespace. │ │ │ │ │   │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ -std::shared_ptr< T >  _D_u_n_e_:_:_s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r (T &t) │ │ │ │ │ -  Create a shared_ptr for a stack-allocated object. │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - auto  _D_u_n_e_:_:_w_r_a_p___o_r___m_o_v_e (T &&t) │ │ │ │ │ -  Capture R-value reference to shared_ptr. │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - auto  _D_u_n_e_:_:_w_r_a_p___o_r___m_o_v_e (T &t) │ │ │ │ │ -  Capture L-value reference to std::shared_ptr. │ │ │ │ │ -  │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -This file implements several utilities related to std::shared_ptr. │ │ │ │ │ - Author │ │ │ │ │ - Markus Blatt │ │ │ │ │ +Efficient implementation of a dynamic array of static arrays of booleans. │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: shared_ptr.hh Source File │ │ │ │ +dune-common: bitsetvector.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,72 +74,787 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
shared_ptr.hh
│ │ │ │ +
bitsetvector.hh
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ -
5
│ │ │ │ -
6#ifndef DUNE_SHARED_PTR_HH
│ │ │ │ -
7#define DUNE_SHARED_PTR_HH
│ │ │ │ -
8
│ │ │ │ -
9#include <memory>
│ │ │ │ -
10
│ │ │ │ - │ │ │ │ -
17namespace Dune
│ │ │ │ -
18{
│ │ │ │ -
47 template<class T>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
49 {
│ │ │ │ -
50 void operator() (T*) const {}
│ │ │ │ -
51 };
│ │ │ │ +
5#ifndef DUNE_BLOCK_BITFIELD_HH
│ │ │ │ +
6#define DUNE_BLOCK_BITFIELD_HH
│ │ │ │ +
7
│ │ │ │ +
12#include <vector>
│ │ │ │ +
13#include <bitset>
│ │ │ │ +
14#include <iostream>
│ │ │ │ +
15#include <algorithm>
│ │ │ │ +
16
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
20
│ │ │ │ +
21namespace Dune {
│ │ │ │ +
22
│ │ │ │ +
23 template <int block_size, class Alloc> class BitSetVector;
│ │ │ │ +
24 template <int block_size, class Alloc> class BitSetVectorReference;
│ │ │ │ +
25
│ │ │ │ +
36 template <int block_size, class Alloc>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
38 {
│ │ │ │ +
39 protected:
│ │ │ │ +
40
│ │ │ │ + │ │ │ │ +
42 friend class Dune::BitSetVector<block_size, Alloc>;
│ │ │ │ +
43
│ │ │ │ +
│ │ │ │ +
44 BitSetVectorConstReference(const BitSetVector& blockBitField_, int block_number_) :
│ │ │ │ +
45 blockBitField(blockBitField_),
│ │ │ │ +
46 block_number(block_number_)
│ │ │ │ +
47 {
│ │ │ │ +
48 DUNE_ASSERT_BOUNDS(blockBitField_.size() > static_cast<size_t>(block_number_));
│ │ │ │ +
49 }
│ │ │ │ +
│ │ │ │ +
50
│ │ │ │ + │ │ │ │ +
53
│ │ │ │ +
54 public:
│ │ │ │ +
55
│ │ │ │ +
56 typedef std::bitset<block_size> bitset;
│ │ │ │ +
57
│ │ │ │ +
58 // bitset interface typedefs
│ │ │ │ +
59 typedef typename std::vector<bool, Alloc>::const_reference reference;
│ │ │ │ +
60 typedef typename std::vector<bool, Alloc>::const_reference const_reference;
│ │ │ │ +
61 typedef size_t size_type;
│ │ │ │ +
62
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
65 {
│ │ │ │ +
66 bitset b = *this;
│ │ │ │ +
67 b <<= n;
│ │ │ │ +
68 return b;
│ │ │ │ +
69 }
│ │ │ │
│ │ │ │ -
52
│ │ │ │ -
71 template<typename T>
│ │ │ │ +
70
│ │ │ │
│ │ │ │ -
72 inline std::shared_ptr<T> stackobject_to_shared_ptr(T & t)
│ │ │ │ -
73 {
│ │ │ │ -
74 return std::shared_ptr<T>(&t, null_deleter<T>());
│ │ │ │ -
75 }
│ │ │ │ -
│ │ │ │ -
76
│ │ │ │ -
77
│ │ │ │ -
95 template<class T>
│ │ │ │ -
│ │ │ │ -
96 auto wrap_or_move(T&& t)
│ │ │ │ -
97 {
│ │ │ │ -
98 return std::make_shared<std::decay_t<T>>(std::forward<T>(t));
│ │ │ │ -
99 }
│ │ │ │ -
│ │ │ │ -
100
│ │ │ │ -
118 template<class T>
│ │ │ │ -
│ │ │ │ -
119 auto wrap_or_move(T& t)
│ │ │ │ -
120 {
│ │ │ │ - │ │ │ │ -
122 }
│ │ │ │ -
│ │ │ │ -
123
│ │ │ │ -
124}
│ │ │ │ -
125#endif
│ │ │ │ -
Traits for type conversions and type information.
│ │ │ │ + │ │ │ │ +
73 {
│ │ │ │ +
74 bitset b = *this;
│ │ │ │ +
75 b >>= n;
│ │ │ │ +
76 return b;
│ │ │ │ +
77 }
│ │ │ │ +
│ │ │ │ +
78
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
81 {
│ │ │ │ +
82 bitset b = *this;
│ │ │ │ +
83 b.flip();
│ │ │ │ +
84 return b;
│ │ │ │ +
85 }
│ │ │ │ +
│ │ │ │ +
86
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
89 {
│ │ │ │ +
90 return block_size;
│ │ │ │ +
91 }
│ │ │ │ +
│ │ │ │ +
92
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
95 {
│ │ │ │ +
96 size_type n = 0;
│ │ │ │ +
97 for(size_type i=0; i<block_size; ++i)
│ │ │ │ +
98 n += getBit(i);
│ │ │ │ +
99 return n;
│ │ │ │ +
100 }
│ │ │ │ +
│ │ │ │ +
101
│ │ │ │ +
│ │ │ │ +
103 bool any() const
│ │ │ │ +
104 {
│ │ │ │ +
105 return count();
│ │ │ │ +
106 }
│ │ │ │ +
│ │ │ │ +
107
│ │ │ │ +
│ │ │ │ +
109 bool none() const
│ │ │ │ +
110 {
│ │ │ │ +
111 return ! any();
│ │ │ │ +
112 }
│ │ │ │ +
│ │ │ │ +
113
│ │ │ │ +
│ │ │ │ +
115 bool all() const
│ │ │ │ +
116 {
│ │ │ │ +
117 for(size_type i=0; i<block_size; ++i)
│ │ │ │ +
118 if(not test(i))
│ │ │ │ +
119 return false;
│ │ │ │ +
120 return true;
│ │ │ │ +
121 }
│ │ │ │ +
│ │ │ │ +
122
│ │ │ │ +
│ │ │ │ +
124 bool test(size_type n) const
│ │ │ │ +
125 {
│ │ │ │ +
126 return getBit(n);
│ │ │ │ +
127 }
│ │ │ │ +
│ │ │ │ +
128
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
131 {
│ │ │ │ +
132 return getBit(i);
│ │ │ │ +
133 }
│ │ │ │ +
│ │ │ │ +
134
│ │ │ │ +
│ │ │ │ +
136 operator bitset() const
│ │ │ │ +
137 {
│ │ │ │ +
138 return blockBitField.getRepr(block_number);
│ │ │ │ +
139 }
│ │ │ │ +
│ │ │ │ +
140
│ │ │ │ +
│ │ │ │ +
142 bool operator== (const bitset& bs) const
│ │ │ │ +
143 {
│ │ │ │ +
144 return equals(bs);
│ │ │ │ +
145 }
│ │ │ │ +
│ │ │ │ +
146
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
149 {
│ │ │ │ +
150 return equals(bs);
│ │ │ │ +
151 }
│ │ │ │ +
│ │ │ │ +
152
│ │ │ │ +
│ │ │ │ +
154 bool operator!= (const bitset& bs) const
│ │ │ │ +
155 {
│ │ │ │ +
156 return ! equals(bs);
│ │ │ │ +
157 }
│ │ │ │ +
│ │ │ │ +
158
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
161 {
│ │ │ │ +
162 return ! equals(bs);
│ │ │ │ +
163 }
│ │ │ │ +
│ │ │ │ +
164
│ │ │ │ +
│ │ │ │ +
171 friend std::ostream& operator<< (std::ostream& s, const BitSetVectorConstReference& v)
│ │ │ │ +
172 {
│ │ │ │ +
173 s << "(";
│ │ │ │ +
174 for(int i=0; i<block_size; ++i)
│ │ │ │ +
175 s << v[i];
│ │ │ │ +
176 s << ")";
│ │ │ │ +
177 return s;
│ │ │ │ +
178 }
│ │ │ │ +
│ │ │ │ +
179
│ │ │ │ +
180 protected:
│ │ │ │ + │ │ │ │ + │ │ │ │ +
183
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
185 {
│ │ │ │ +
186 return blockBitField.getBit(block_number,i);
│ │ │ │ +
187 }
│ │ │ │ +
│ │ │ │ +
188
│ │ │ │ +
189 template<class BS>
│ │ │ │ +
│ │ │ │ +
190 bool equals(const BS & bs) const
│ │ │ │ +
191 {
│ │ │ │ +
192 bool eq = true;
│ │ │ │ +
193 for(int i=0; i<block_size; ++i)
│ │ │ │ +
194 eq &= (getBit(i) == bs[i]);
│ │ │ │ +
195 return eq;
│ │ │ │ +
196 }
│ │ │ │ +
│ │ │ │ +
197
│ │ │ │ +
198 private:
│ │ │ │ +
203 void operator & () = delete;
│ │ │ │ +
204
│ │ │ │ +
205 friend class BitSetVectorReference<block_size, Alloc>;
│ │ │ │ +
206 };
│ │ │ │ +
│ │ │ │ +
207
│ │ │ │ +
220 template <int block_size, class Alloc>
│ │ │ │ +
│ │ │ │ +
221 class BitSetVectorReference : public BitSetVectorConstReference<block_size,Alloc>
│ │ │ │ +
222 {
│ │ │ │ +
223 protected:
│ │ │ │ +
224
│ │ │ │ + │ │ │ │ +
226 friend class Dune::BitSetVector<block_size, Alloc>;
│ │ │ │ +
227
│ │ │ │ + │ │ │ │ +
229
│ │ │ │ +
│ │ │ │ +
230 BitSetVectorReference(BitSetVector& blockBitField_, int block_number_) :
│ │ │ │ +
231 BitSetVectorConstReference(blockBitField_, block_number_),
│ │ │ │ +
232 blockBitField(blockBitField_)
│ │ │ │ +
233 {}
│ │ │ │ +
│ │ │ │ +
234
│ │ │ │ +
235 public:
│ │ │ │ +
236 typedef std::bitset<block_size> bitset;
│ │ │ │ +
237
│ │ │ │ +
241 typedef typename std::vector<bool, Alloc>::reference reference;
│ │ │ │ +
243 typedef typename std::vector<bool, Alloc>::const_reference const_reference;
│ │ │ │ +
245
│ │ │ │ +
247 typedef size_t size_type;
│ │ │ │ +
248
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
251 {
│ │ │ │ +
252 for(int i=0; i<block_size; ++i)
│ │ │ │ +
253 getBit(i) = b;
│ │ │ │ +
254 return (*this);
│ │ │ │ +
255 }
│ │ │ │ +
│ │ │ │ +
256
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
259 {
│ │ │ │ +
260 for(int i=0; i<block_size; ++i)
│ │ │ │ +
261 getBit(i) = b.test(i);
│ │ │ │ +
262 return (*this);
│ │ │ │ +
263 }
│ │ │ │ +
│ │ │ │ +
264
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
267 {
│ │ │ │ +
268 for(int i=0; i<block_size; ++i)
│ │ │ │ +
269 getBit(i) = b.test(i);
│ │ │ │ +
270 return (*this);
│ │ │ │ +
271 }
│ │ │ │ +
│ │ │ │ +
272
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
275 {
│ │ │ │ +
276 for(int i=0; i<block_size; ++i)
│ │ │ │ +
277 getBit(i) = b.test(i);
│ │ │ │ +
278 return (*this);
│ │ │ │ +
279 }
│ │ │ │ +
│ │ │ │ +
280
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
283 {
│ │ │ │ +
284 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
285 getBit(i) = (test(i) & x.test(i));
│ │ │ │ +
286 return *this;
│ │ │ │ +
287 }
│ │ │ │ +
│ │ │ │ +
288
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
291 {
│ │ │ │ +
292 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
293 getBit(i) = (test(i) & x.test(i));
│ │ │ │ +
294 return *this;
│ │ │ │ +
295 }
│ │ │ │ +
│ │ │ │ +
296
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
299 {
│ │ │ │ +
300 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
301 getBit(i) = (test(i) | x.test(i));
│ │ │ │ +
302 return *this;
│ │ │ │ +
303 }
│ │ │ │ +
│ │ │ │ +
304
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
307 {
│ │ │ │ +
308 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
309 getBit(i) = (test(i) | x.test(i));
│ │ │ │ +
310 return *this;
│ │ │ │ +
311 }
│ │ │ │ +
│ │ │ │ +
312
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
315 {
│ │ │ │ +
316 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
317 getBit(i) = (test(i) ^ x.test(i));
│ │ │ │ +
318 return *this;
│ │ │ │ +
319 }
│ │ │ │ +
│ │ │ │ +
320
│ │ │ │ +
321 private:
│ │ │ │ +
322
│ │ │ │ +
323 // For some reason, the following variant of operator^= triggers an ICE or a hanging
│ │ │ │ +
324 // compiler on Debian 9 with GCC 6.3 and full optimizations enabled (-O3).
│ │ │ │ +
325 // The only way to reliably avoid the issue is by making sure that the compiler does not
│ │ │ │ +
326 // see the XOR in the context of the function, so here is a little helper that will normally
│ │ │ │ +
327 // be inlined, but not on the broken compiler. This incurs a substantial overhead (a function
│ │ │ │ +
328 // call), but until someone else has a better idea, it's the only way to make it work reliably.
│ │ │ │ +
329
│ │ │ │ +
330 static bool xor_helper(bool a, bool b)
│ │ │ │ +
331#if defined(__GNUC__) && ! defined(__clang__) && __GNUC__ == 6 && __GNUC_MINOR__ == 3 && __cplusplus \
│ │ │ │ +
332 == 201402L
│ │ │ │ +
333 __attribute__((noinline))
│ │ │ │ +
334#endif
│ │ │ │ +
335 ;
│ │ │ │ +
336
│ │ │ │ +
337 public:
│ │ │ │ +
338
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
341 {
│ │ │ │ +
342 // This uses the helper from above to hoist the actual XOR computation out of the function for
│ │ │ │ +
343 // the buggy version of GCC.
│ │ │ │ +
344 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
345 getBit(i) = xor_helper(test(i),x.test(i));
│ │ │ │ +
346 return *this;
│ │ │ │ +
347 }
│ │ │ │ +
│ │ │ │ +
348
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
351 {
│ │ │ │ +
352 for (size_type i=0; i<block_size-n; i++)
│ │ │ │ +
353 getBit(i) = test(i+n);
│ │ │ │ +
354 return *this;
│ │ │ │ +
355 }
│ │ │ │ +
│ │ │ │ +
356
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
359 {
│ │ │ │ +
360 for (size_type i=0; i<block_size-n; i++)
│ │ │ │ +
361 getBit(i+n) = test(i);
│ │ │ │ +
362 return *this;
│ │ │ │ +
363 }
│ │ │ │ +
│ │ │ │ +
364
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
367 {
│ │ │ │ +
368 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
369 set(i);
│ │ │ │ +
370 return *this;
│ │ │ │ +
371 }
│ │ │ │ +
│ │ │ │ +
372
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
375 {
│ │ │ │ +
376 for (size_type i=0; i<block_size; i++)
│ │ │ │ +
377 flip(i);
│ │ │ │ +
378 return *this;
│ │ │ │ +
379 }
│ │ │ │ +
│ │ │ │ +
380
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
383 {
│ │ │ │ +
384 *this = false;
│ │ │ │ +
385 return *this;
│ │ │ │ +
386 }
│ │ │ │ +
│ │ │ │ +
387
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
390 {
│ │ │ │ +
391 getBit(n) = val;
│ │ │ │ +
392 return *this;
│ │ │ │ +
393 }
│ │ │ │ +
│ │ │ │ +
394
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
397 {
│ │ │ │ +
398 set(n, false);
│ │ │ │ +
399 return *this;
│ │ │ │ +
400 }
│ │ │ │ +
│ │ │ │ +
401
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
404 {
│ │ │ │ +
405 getBit(n).flip();
│ │ │ │ +
406 return *this;
│ │ │ │ +
407 }
│ │ │ │ +
│ │ │ │ +
408
│ │ │ │ + │ │ │ │ +
410 using BitSetVectorConstReference::operator[];
│ │ │ │ +
411
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
414 {
│ │ │ │ +
415 return getBit(i);
│ │ │ │ +
416 }
│ │ │ │ +
│ │ │ │ +
417
│ │ │ │ +
418 protected:
│ │ │ │ + │ │ │ │ +
420
│ │ │ │ + │ │ │ │ +
422
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
424 {
│ │ │ │ +
425 return blockBitField.getBit(this->block_number,i);
│ │ │ │ +
426 }
│ │ │ │ +
│ │ │ │ +
427 };
│ │ │ │ +
│ │ │ │ +
428
│ │ │ │ +
429 // implementation of helper - I put it into the template to avoid having
│ │ │ │ +
430 // to compile it in a dedicated compilation unit
│ │ │ │ +
431 template<int block_size, class Alloc>
│ │ │ │ +
432 bool BitSetVectorReference<block_size,Alloc>::xor_helper(bool a, bool b)
│ │ │ │ +
433 {
│ │ │ │ +
434 return a ^ b;
│ │ │ │ +
435 }
│ │ │ │ +
436
│ │ │ │ +
440 template<int block_size, class Alloc>
│ │ │ │ +
│ │ │ │ +
441 struct const_reference< BitSetVectorReference<block_size,Alloc> >
│ │ │ │ +
442 {
│ │ │ │ + │ │ │ │ +
444 };
│ │ │ │ +
│ │ │ │ +
445
│ │ │ │ +
446 template<int block_size, class Alloc>
│ │ │ │ +
│ │ │ │ +
447 struct const_reference< BitSetVectorConstReference<block_size,Alloc> >
│ │ │ │ +
448 {
│ │ │ │ + │ │ │ │ +
450 };
│ │ │ │ +
│ │ │ │ +
451
│ │ │ │ +
452 template<int block_size, class Alloc>
│ │ │ │ +
│ │ │ │ +
453 struct mutable_reference< BitSetVectorReference<block_size,Alloc> >
│ │ │ │ +
454 {
│ │ │ │ + │ │ │ │ +
456 };
│ │ │ │ +
│ │ │ │ +
457
│ │ │ │ +
458 template<int block_size, class Alloc>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
460 {
│ │ │ │ + │ │ │ │ +
462 };
│ │ │ │ +
│ │ │ │ +
463
│ │ │ │ +
467 template <int block_size, class Allocator=std::allocator<bool> >
│ │ │ │ +
│ │ │ │ +
468 class BitSetVector : private std::vector<bool, Allocator>
│ │ │ │ +
469 {
│ │ │ │ +
471 typedef std::vector<bool, Allocator> BlocklessBaseClass;
│ │ │ │ +
472
│ │ │ │ +
473 public:
│ │ │ │ +
476
│ │ │ │ +
478 typedef std::bitset<block_size> value_type;
│ │ │ │ +
479
│ │ │ │ + │ │ │ │ +
482
│ │ │ │ + │ │ │ │ +
485
│ │ │ │ + │ │ │ │ +
488
│ │ │ │ + │ │ │ │ +
491
│ │ │ │ +
493 typedef typename std::vector<bool, Allocator>::size_type size_type;
│ │ │ │ +
494
│ │ │ │ +
496 typedef Allocator allocator_type;
│ │ │ │ +
498
│ │ │ │ + │ │ │ │ + │ │ │ │ +
504
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
507 return iterator(*this, 0);
│ │ │ │ +
508 }
│ │ │ │ +
│ │ │ │ +
509
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
512 return const_iterator(*this, 0);
│ │ │ │ +
513 }
│ │ │ │ +
│ │ │ │ +
514
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
517 return iterator(*this, size());
│ │ │ │ +
518 }
│ │ │ │ +
│ │ │ │ +
519
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
522 return const_iterator(*this, size());
│ │ │ │ +
523 }
│ │ │ │ +
│ │ │ │ +
524
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
527 BlocklessBaseClass()
│ │ │ │ +
528 {}
│ │ │ │ +
│ │ │ │ +
529
│ │ │ │ +
│ │ │ │ +
531 BitSetVector(const BlocklessBaseClass& blocklessBitField) :
│ │ │ │ +
532 BlocklessBaseClass(blocklessBitField)
│ │ │ │ +
533 {
│ │ │ │ +
534 if (blocklessBitField.size()%block_size != 0)
│ │ │ │ +
535 DUNE_THROW(RangeError, "Vector size is not a multiple of the block size!");
│ │ │ │ +
536 }
│ │ │ │ +
│ │ │ │ +
537
│ │ │ │ +
│ │ │ │ +
541 explicit BitSetVector(int n) :
│ │ │ │ +
542 BlocklessBaseClass(n*block_size)
│ │ │ │ +
543 {}
│ │ │ │ +
│ │ │ │ +
544
│ │ │ │ +
│ │ │ │ +
546 BitSetVector(int n, bool v) :
│ │ │ │ +
547 BlocklessBaseClass(n*block_size,v)
│ │ │ │ +
548 {}
│ │ │ │ +
│ │ │ │ +
549
│ │ │ │ +
│ │ │ │ +
551 void clear()
│ │ │ │ +
552 {
│ │ │ │ +
553 BlocklessBaseClass::clear();
│ │ │ │ +
554 }
│ │ │ │ +
│ │ │ │ +
555
│ │ │ │ +
│ │ │ │ +
557 void resize(int n, bool v = bool())
│ │ │ │ +
558 {
│ │ │ │ +
559 BlocklessBaseClass::resize(n*block_size, v);
│ │ │ │ +
560 }
│ │ │ │ +
│ │ │ │ +
561
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
564 {
│ │ │ │ +
565 return BlocklessBaseClass::size()/block_size;
│ │ │ │ +
566 }
│ │ │ │ +
│ │ │ │ +
567
│ │ │ │ +
│ │ │ │ +
569 void setAll() {
│ │ │ │ +
570 this->assign(BlocklessBaseClass::size(), true);
│ │ │ │ +
571 }
│ │ │ │ +
│ │ │ │ +
572
│ │ │ │ +
│ │ │ │ +
574 void unsetAll() {
│ │ │ │ +
575 this->assign(BlocklessBaseClass::size(), false);
│ │ │ │ +
576 }
│ │ │ │ +
│ │ │ │ +
577
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
580 {
│ │ │ │ +
581 return reference(*this, i);
│ │ │ │ +
582 }
│ │ │ │ +
│ │ │ │ +
583
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
586 {
│ │ │ │ +
587 return const_reference(*this, i);
│ │ │ │ +
588 }
│ │ │ │ +
│ │ │ │ +
589
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
592 {
│ │ │ │ +
593 return reference(*this, size()-1);
│ │ │ │ +
594 }
│ │ │ │ +
│ │ │ │ +
595
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
598 {
│ │ │ │ +
599 return const_reference(*this, size()-1);
│ │ │ │ +
600 }
│ │ │ │ +
│ │ │ │ +
601
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
604 {
│ │ │ │ +
605 return std::count(BlocklessBaseClass::begin(), BlocklessBaseClass::end(), true);
│ │ │ │ +
606 }
│ │ │ │ +
│ │ │ │ +
607
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
610 {
│ │ │ │ +
611 size_type n = 0;
│ │ │ │ +
612 size_type blocks = size();
│ │ │ │ +
613 for(size_type i=0; i<blocks; ++i)
│ │ │ │ +
614 n += getBit(i,j);
│ │ │ │ +
615 return n;
│ │ │ │ +
616 }
│ │ │ │ +
│ │ │ │ +
617
│ │ │ │ +
│ │ │ │ +
619 friend std::ostream& operator<< (std::ostream& s, const BitSetVector& v)
│ │ │ │ +
620 {
│ │ │ │ +
621 for (size_t i=0; i<v.size(); i++)
│ │ │ │ +
622 s << v[i] << " ";
│ │ │ │ +
623 return s;
│ │ │ │ +
624 }
│ │ │ │ +
│ │ │ │ +
625
│ │ │ │ +
626 private:
│ │ │ │ +
627
│ │ │ │ +
629 value_type getRepr(int i) const
│ │ │ │ +
630 {
│ │ │ │ +
631 value_type bits;
│ │ │ │ +
632 for(int j=0; j<block_size; ++j)
│ │ │ │ +
633 bits.set(j, getBit(i,j));
│ │ │ │ +
634 return bits;
│ │ │ │ +
635 }
│ │ │ │ +
636
│ │ │ │ +
637 typename std::vector<bool>::reference getBit(size_type i, size_type j) {
│ │ │ │ +
638 DUNE_ASSERT_BOUNDS(j < block_size);
│ │ │ │ + │ │ │ │ +
640 return BlocklessBaseClass::operator[](i*block_size+j);
│ │ │ │ +
641 }
│ │ │ │ +
642
│ │ │ │ +
643 typename std::vector<bool>::const_reference getBit(size_type i, size_type j) const {
│ │ │ │ +
644 DUNE_ASSERT_BOUNDS(j < block_size);
│ │ │ │ + │ │ │ │ +
646 return BlocklessBaseClass::operator[](i*block_size+j);
│ │ │ │ +
647 }
│ │ │ │ +
648
│ │ │ │ +
649 friend class BitSetVectorReference<block_size,Allocator>;
│ │ │ │ +
650 friend class BitSetVectorConstReference<block_size,Allocator>;
│ │ │ │ +
651 };
│ │ │ │ +
│ │ │ │ +
652
│ │ │ │ +
653} // namespace Dune
│ │ │ │ +
654
│ │ │ │ +
655#endif
│ │ │ │ +
Macro for wrapping boundary checks.
│ │ │ │ +
Implements a generic iterator class for writing stl conformant iterators.
│ │ │ │ +
A few common exception classes.
│ │ │ │ +
#define DUNE_ASSERT_BOUNDS(cond)
If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
Definition boundschecking.hh:30
│ │ │ │ +
#define DUNE_THROW(E, m)
Definition exceptions.hh:218
│ │ │ │
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ -
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
│ │ │ │ -
auto wrap_or_move(T &&t)
Capture R-value reference to shared_ptr.
Definition shared_ptr.hh:96
│ │ │ │ -
implements the Deleter concept of shared_ptr without deleting anything
Definition shared_ptr.hh:49
│ │ │ │ -
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
│ │ │ │ -
void operator()(T *) const
Definition shared_ptr.hh:50
│ │ │ │ +
void assign(T &dst, const T &src, bool mask)
masked Simd assignment (scalar version)
Definition simd.hh:447
│ │ │ │ +
A dynamic array of blocks of booleans.
Definition bitsetvector.hh:469
│ │ │ │ +
const_reference operator[](int i) const
Return const reference to i-th block.
Definition bitsetvector.hh:585
│ │ │ │ +
iterator begin()
Returns a iterator pointing to the beginning of the vector.
Definition bitsetvector.hh:506
│ │ │ │ +
BitSetVectorConstReference< block_size, Allocator > * const_pointer
Const pointer to a small block of bits.
Definition bitsetvector.hh:490
│ │ │ │ +
const_iterator end() const
Returns a const_iterator pointing to the end of the vector.
Definition bitsetvector.hh:521
│ │ │ │ +
BitSetVectorReference< block_size, Allocator > reference
Reference to a small block of bits.
Definition bitsetvector.hh:481
│ │ │ │ +
size_type countmasked(int j) const
Returns the number of set bits, while each block is masked with 1<<i.
Definition bitsetvector.hh:609
│ │ │ │ +
BitSetVectorConstReference< block_size, Allocator > const_reference
Const reference to a small block of bits.
Definition bitsetvector.hh:484
│ │ │ │ +
iterator end()
Returns an iterator pointing to the end of the vector.
Definition bitsetvector.hh:516
│ │ │ │ +
size_type count() const
Returns the number of bits that are set.
Definition bitsetvector.hh:603
│ │ │ │ +
BitSetVector()
Default constructor.
Definition bitsetvector.hh:526
│ │ │ │ +
void setAll()
Sets all entries to true
Definition bitsetvector.hh:569
│ │ │ │ +
Dune::GenericIterator< const BitSetVector< block_size, Allocator >, const value_type, const_reference, std::ptrdiff_t, ForwardIteratorFacade > const_iterator
Definition bitsetvector.hh:502
│ │ │ │ +
std::bitset< block_size > value_type
Type of the values stored by the container.
Definition bitsetvector.hh:478
│ │ │ │ +
reference back()
Return reference to last block.
Definition bitsetvector.hh:591
│ │ │ │ +
BitSetVector(const BlocklessBaseClass &blocklessBitField)
Construction from an unblocked bitfield.
Definition bitsetvector.hh:531
│ │ │ │ +
friend std::ostream & operator<<(std::ostream &s, const BitSetVector &v)
Send bitfield to an output stream.
Definition bitsetvector.hh:619
│ │ │ │ +
const_reference back() const
Return const reference to last block.
Definition bitsetvector.hh:597
│ │ │ │ +
void clear()
Erases all of the elements.
Definition bitsetvector.hh:551
│ │ │ │ +
BitSetVectorReference< block_size, Allocator > * pointer
Pointer to a small block of bits.
Definition bitsetvector.hh:487
│ │ │ │ +
reference operator[](int i)
Return reference to i-th block.
Definition bitsetvector.hh:579
│ │ │ │ +
size_type size() const
Return the number of blocks.
Definition bitsetvector.hh:563
│ │ │ │ +
std::vector< bool, Allocator >::size_type size_type
size type
Definition bitsetvector.hh:493
│ │ │ │ +
BitSetVector(int n, bool v)
Constructor which initializes the field with true or false.
Definition bitsetvector.hh:546
│ │ │ │ +
const_iterator begin() const
Returns a const_iterator pointing to the beginning of the vector.
Definition bitsetvector.hh:511
│ │ │ │ +
Dune::GenericIterator< BitSetVector< block_size, Allocator >, value_type, reference, std::ptrdiff_t, ForwardIteratorFacade > iterator
Definition bitsetvector.hh:501
│ │ │ │ +
void resize(int n, bool v=bool())
Resize field.
Definition bitsetvector.hh:557
│ │ │ │ +
Allocator allocator_type
The type of the allocator.
Definition bitsetvector.hh:496
│ │ │ │ +
BitSetVector(int n)
Definition bitsetvector.hh:541
│ │ │ │ +
void unsetAll()
Sets all entries to false
Definition bitsetvector.hh:574
│ │ │ │ +
A proxy class that acts as a mutable reference to a single bitset in a BitSetVector.
Definition bitsetvector.hh:222
│ │ │ │ +
bool test(size_type n) const
Returns true if bit n is set.
Definition bitsetvector.hh:124
│ │ │ │ +
BitSetVectorReference & operator=(const BitSetVectorConstReference &b)
Assignment from BitSetVectorConstReference.
Definition bitsetvector.hh:266
│ │ │ │ +
reference operator[](size_type i)
Return reference to the i-th bit.
Definition bitsetvector.hh:413
│ │ │ │ +
BitSetVectorReference & reset(size_type n)
Clears bit n.
Definition bitsetvector.hh:396
│ │ │ │ +
BitSetVectorReference & operator<<=(size_type n)
Left shift.
Definition bitsetvector.hh:350
│ │ │ │ +
Dune::BitSetVector< block_size, Alloc > BitSetVector
Definition bitsetvector.hh:225
│ │ │ │ +
std::vector< bool, Alloc >::const_reference const_reference
A proxy class that acts as a const reference to a single bit.
Definition bitsetvector.hh:243
│ │ │ │ +
BitSetVectorReference & operator=(const BitSetVectorReference &b)
Assignment from BitSetVectorReference.
Definition bitsetvector.hh:274
│ │ │ │ +
reference getBit(size_type i)
Definition bitsetvector.hh:423
│ │ │ │ +
BitSetVectorReference & operator&=(const BitSetVectorConstReference &x)
Bitwise and (for BitSetVectorConstReference and BitSetVectorReference)
Definition bitsetvector.hh:290
│ │ │ │ +
BitSetVectorReference(BitSetVector &blockBitField_, int block_number_)
Definition bitsetvector.hh:230
│ │ │ │ +
size_t size_type
size_type typedef (an unsigned integral type)
Definition bitsetvector.hh:247
│ │ │ │ +
BitSetVectorReference & operator=(const bitset &b)
Assignment from bitset.
Definition bitsetvector.hh:258
│ │ │ │ +
Dune::BitSetVectorConstReference< block_size, Alloc > BitSetVectorConstReference
Definition bitsetvector.hh:228
│ │ │ │ +
BitSetVectorReference & reset()
Clears every bit.
Definition bitsetvector.hh:382
│ │ │ │ +
BitSetVector & blockBitField
Definition bitsetvector.hh:419
│ │ │ │ +
BitSetVectorReference & operator|=(const BitSetVectorConstReference &x)
Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference)
Definition bitsetvector.hh:306
│ │ │ │ +
BitSetVectorReference & set(size_type n, int val=1)
Sets bit n if val is nonzero, and clears bit n if val is zero.
Definition bitsetvector.hh:389
│ │ │ │ +
std::bitset< block_size > bitset
Definition bitsetvector.hh:236
│ │ │ │ +
BitSetVectorReference & operator^=(const bitset &x)
Bitwise exclusive or (for bitset).
Definition bitsetvector.hh:314
│ │ │ │ +
std::vector< bool, Alloc >::reference reference
Definition bitsetvector.hh:241
│ │ │ │ +
BitSetVectorReference & operator|=(const bitset &x)
Bitwise inclusive or (for bitset)
Definition bitsetvector.hh:298
│ │ │ │ +
BitSetVectorReference & operator>>=(size_type n)
Right shift.
Definition bitsetvector.hh:358
│ │ │ │ +
BitSetVectorReference & operator^=(const BitSetVectorConstReference &x)
Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference)
Definition bitsetvector.hh:340
│ │ │ │ +
BitSetVectorReference & flip(size_type n)
Flips bit n.
Definition bitsetvector.hh:403
│ │ │ │ +
BitSetVectorReference & flip()
Flips the value of every bit.
Definition bitsetvector.hh:374
│ │ │ │ +
BitSetVectorReference & set()
Sets every bit.
Definition bitsetvector.hh:366
│ │ │ │ +
BitSetVectorReference & operator&=(const bitset &x)
Bitwise and (for bitset).
Definition bitsetvector.hh:282
│ │ │ │ +
BitSetVectorReference & operator=(bool b)
Assignment from bool, sets each bit in the bitset to b.
Definition bitsetvector.hh:250
│ │ │ │ +
A proxy class that acts as a const reference to a single bitset in a BitSetVector.
Definition bitsetvector.hh:38
│ │ │ │ +
bool operator==(const bitset &bs) const
Equality of reference and std::bitset.
Definition bitsetvector.hh:142
│ │ │ │ +
bool test(size_type n) const
Returns true if bit n is set.
Definition bitsetvector.hh:124
│ │ │ │ +
const_reference operator[](size_type i) const
Return reference to the i-th bit.
Definition bitsetvector.hh:130
│ │ │ │ +
bitset operator<<(size_type n) const
Returns a copy of *this shifted left by n bits.
Definition bitsetvector.hh:64
│ │ │ │ +
BitSetVectorConstReference & operator=(const BitSetVectorConstReference &b)
hide assignment operator
│ │ │ │ +
BitSetVectorConstReference(const BitSetVector &blockBitField_, int block_number_)
Definition bitsetvector.hh:44
│ │ │ │ +
const BitSetVector & blockBitField
Definition bitsetvector.hh:181
│ │ │ │ +
bitset operator>>(size_type n) const
Returns a copy of *this shifted right by n bits.
Definition bitsetvector.hh:72
│ │ │ │ +
const_reference getBit(size_type i) const
Definition bitsetvector.hh:184
│ │ │ │ +
bool operator!=(const bitset &bs) const
Inequality of reference and std::bitset.
Definition bitsetvector.hh:154
│ │ │ │ +
bool equals(const BS &bs) const
Definition bitsetvector.hh:190
│ │ │ │ +
Dune::BitSetVector< block_size, Alloc > BitSetVector
Definition bitsetvector.hh:41
│ │ │ │ +
std::bitset< block_size > bitset
Definition bitsetvector.hh:56
│ │ │ │ +
bool all() const
Returns true if all bits are set.
Definition bitsetvector.hh:115
│ │ │ │ +
size_t size_type
Definition bitsetvector.hh:61
│ │ │ │ +
bitset operator~() const
Returns a copy of *this with all of its bits flipped.
Definition bitsetvector.hh:80
│ │ │ │ +
std::vector< bool, Alloc >::const_reference reference
Definition bitsetvector.hh:59
│ │ │ │ +
size_type size() const
Returns block_size.
Definition bitsetvector.hh:88
│ │ │ │ +
size_type count() const
Returns the number of bits that are set.
Definition bitsetvector.hh:94
│ │ │ │ +
bool none() const
Returns true if no bits are set.
Definition bitsetvector.hh:109
│ │ │ │ +
bool any() const
Returns true if any bits are set.
Definition bitsetvector.hh:103
│ │ │ │ +
int block_number
Definition bitsetvector.hh:182
│ │ │ │ +
std::vector< bool, Alloc >::const_reference const_reference
Definition bitsetvector.hh:60
│ │ │ │ +
friend std::ostream & operator<<(std::ostream &s, const BitSetVectorConstReference &v)
Definition bitsetvector.hh:171
│ │ │ │ +
BitSetVectorConstReference< block_size, Alloc > type
Definition bitsetvector.hh:443
│ │ │ │ +
BitSetVectorConstReference< block_size, Alloc > type
Definition bitsetvector.hh:449
│ │ │ │ +
BitSetVectorReference< block_size, Alloc > type
Definition bitsetvector.hh:455
│ │ │ │ +
BitSetVectorReference< block_size, Alloc > type
Definition bitsetvector.hh:461
│ │ │ │ +
Default exception class for range errors.
Definition exceptions.hh:254
│ │ │ │ +
Get the 'const' version of a reference to a mutable object.
Definition genericiterator.hh:87
│ │ │ │ +
get the 'mutable' version of a reference to a const object
Definition genericiterator.hh:116
│ │ │ │ +
Generic class for stl-conforming iterators for container classes with operator[].
Definition genericiterator.hh:153
│ │ │ │ +
Base class for stl conformant forward iterators.
Definition iteratorfacades.hh:141
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,74 +1,936 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -shared_ptr.hh │ │ │ │ │ +bitsetvector.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ 2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ -5 │ │ │ │ │ -6#ifndef DUNE_SHARED_PTR_HH │ │ │ │ │ -7#define DUNE_SHARED_PTR_HH │ │ │ │ │ -8 │ │ │ │ │ -9#include │ │ │ │ │ -10 │ │ │ │ │ -11#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ -17namespace _D_u_n_e │ │ │ │ │ -18{ │ │ │ │ │ -47 template │ │ │ │ │ -_4_8 struct _n_u_l_l___d_e_l_e_t_e_r │ │ │ │ │ -49 { │ │ │ │ │ -_5_0 void _o_p_e_r_a_t_o_r_(_)_ (T*) const {} │ │ │ │ │ -51 }; │ │ │ │ │ -52 │ │ │ │ │ -71 template │ │ │ │ │ -_7_2 inline std::shared_ptr _s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r(T & t) │ │ │ │ │ +5#ifndef DUNE_BLOCK_BITFIELD_HH │ │ │ │ │ +6#define DUNE_BLOCK_BITFIELD_HH │ │ │ │ │ +7 │ │ │ │ │ +12#include │ │ │ │ │ +13#include │ │ │ │ │ +14#include │ │ │ │ │ +15#include │ │ │ │ │ +16 │ │ │ │ │ +17#include <_d_u_n_e_/_c_o_m_m_o_n_/_b_o_u_n_d_s_c_h_e_c_k_i_n_g_._h_h> │ │ │ │ │ +18#include <_d_u_n_e_/_c_o_m_m_o_n_/_g_e_n_e_r_i_c_i_t_e_r_a_t_o_r_._h_h> │ │ │ │ │ +19#include <_d_u_n_e_/_c_o_m_m_o_n_/_e_x_c_e_p_t_i_o_n_s_._h_h> │ │ │ │ │ +20 │ │ │ │ │ +21namespace _D_u_n_e { │ │ │ │ │ +22 │ │ │ │ │ +23 template class BitSetVector; │ │ │ │ │ +24 template class BitSetVectorReference; │ │ │ │ │ +25 │ │ │ │ │ +36 template │ │ │ │ │ +_3_7 class _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e │ │ │ │ │ +38 { │ │ │ │ │ +39 protected: │ │ │ │ │ +40 │ │ │ │ │ +_4_1 typedef _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_<_b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_> _B_i_t_S_e_t_V_e_c_t_o_r; │ │ │ │ │ +42 friend class _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r; │ │ │ │ │ +43 │ │ │ │ │ +_4_4 _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e(const _B_i_t_S_e_t_V_e_c_t_o_r& blockBitField_, int │ │ │ │ │ +block_number_) : │ │ │ │ │ +45 _b_l_o_c_k_B_i_t_F_i_e_l_d(blockBitField_), │ │ │ │ │ +46 _b_l_o_c_k___n_u_m_b_e_r(block_number_) │ │ │ │ │ +47 { │ │ │ │ │ +48 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(blockBitField_._s_i_z_e() > static_cast │ │ │ │ │ +(block_number_)); │ │ │ │ │ +49 } │ │ │ │ │ +50 │ │ │ │ │ +_5_2 _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e& _o_p_e_r_a_t_o_r_=(const _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e & b); │ │ │ │ │ +53 │ │ │ │ │ +54 public: │ │ │ │ │ +55 │ │ │ │ │ +_5_6 typedef std::bitset _b_i_t_s_e_t; │ │ │ │ │ +57 │ │ │ │ │ +58 // bitset interface typedefs │ │ │ │ │ +_5_9 typedef typename std::vector::const_reference _r_e_f_e_r_e_n_c_e; │ │ │ │ │ +_6_0 typedef typename std::vector::const_reference _c_o_n_s_t___r_e_f_e_r_e_n_c_e; │ │ │ │ │ +_6_1 typedef size_t _s_i_z_e___t_y_p_e; │ │ │ │ │ +62 │ │ │ │ │ +_6_4 _b_i_t_s_e_t _o_p_e_r_a_t_o_r_<_<(_s_i_z_e___t_y_p_e n) const │ │ │ │ │ +65 { │ │ │ │ │ +66 _b_i_t_s_e_t b = *this; │ │ │ │ │ +67 b <<= n; │ │ │ │ │ +68 return b; │ │ │ │ │ +69 } │ │ │ │ │ +70 │ │ │ │ │ +_7_2 _b_i_t_s_e_t _o_p_e_r_a_t_o_r_>_>(_s_i_z_e___t_y_p_e n) const │ │ │ │ │ 73 { │ │ │ │ │ -74 return std::shared_ptr(&t, _n_u_l_l___d_e_l_e_t_e_r_<_T_>()); │ │ │ │ │ -75 } │ │ │ │ │ -76 │ │ │ │ │ -77 │ │ │ │ │ -95 template │ │ │ │ │ -_9_6 auto _w_r_a_p___o_r___m_o_v_e(T&& t) │ │ │ │ │ -97 { │ │ │ │ │ -98 return std::make_shared>(std::forward(t)); │ │ │ │ │ -99 } │ │ │ │ │ -100 │ │ │ │ │ -118 template │ │ │ │ │ -_1_1_9 auto _w_r_a_p___o_r___m_o_v_e(T& t) │ │ │ │ │ -120 { │ │ │ │ │ -121 return _s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r(t); │ │ │ │ │ -122 } │ │ │ │ │ -123 │ │ │ │ │ -124} │ │ │ │ │ -125#endif │ │ │ │ │ -_t_y_p_e_t_r_a_i_t_s_._h_h │ │ │ │ │ -Traits for type conversions and type information. │ │ │ │ │ +74 _b_i_t_s_e_t b = *this; │ │ │ │ │ +75 b >>= n; │ │ │ │ │ +76 return b; │ │ │ │ │ +77 } │ │ │ │ │ +78 │ │ │ │ │ +_8_0 _b_i_t_s_e_t _o_p_e_r_a_t_o_r_~() const │ │ │ │ │ +81 { │ │ │ │ │ +82 _b_i_t_s_e_t b = *this; │ │ │ │ │ +83 b.flip(); │ │ │ │ │ +84 return b; │ │ │ │ │ +85 } │ │ │ │ │ +86 │ │ │ │ │ +_8_8 _s_i_z_e___t_y_p_e _s_i_z_e() const │ │ │ │ │ +89 { │ │ │ │ │ +90 return block_size; │ │ │ │ │ +91 } │ │ │ │ │ +92 │ │ │ │ │ +_9_4 _s_i_z_e___t_y_p_e _c_o_u_n_t() const │ │ │ │ │ +95 { │ │ │ │ │ +96 _s_i_z_e___t_y_p_e n = 0; │ │ │ │ │ +97 for(_s_i_z_e___t_y_p_e i=0; i │ │ │ │ │ +_1_9_0 bool _e_q_u_a_l_s(const BS & bs) const │ │ │ │ │ +191 { │ │ │ │ │ +192 bool eq = true; │ │ │ │ │ +193 for(int i=0; i; │ │ │ │ │ +206 }; │ │ │ │ │ +207 │ │ │ │ │ +220 template │ │ │ │ │ +_2_2_1 class _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e : public │ │ │ │ │ +_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e │ │ │ │ │ +222 { │ │ │ │ │ +223 protected: │ │ │ │ │ +224 │ │ │ │ │ +_2_2_5 typedef _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_<_b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_> _B_i_t_S_e_t_V_e_c_t_o_r; │ │ │ │ │ +226 friend class _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r; │ │ │ │ │ +227 │ │ │ │ │ +_2_2_8 typedef _D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_> │ │ │ │ │ +_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e; │ │ │ │ │ +229 │ │ │ │ │ +_2_3_0 _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e(_B_i_t_S_e_t_V_e_c_t_o_r& blockBitField_, int block_number_) : │ │ │ │ │ +231 _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e(blockBitField_, block_number_), │ │ │ │ │ +232 _b_l_o_c_k_B_i_t_F_i_e_l_d(blockBitField_) │ │ │ │ │ +233 {} │ │ │ │ │ +234 │ │ │ │ │ +235 public: │ │ │ │ │ +_2_3_6 typedef std::bitset _b_i_t_s_e_t; │ │ │ │ │ +237 │ │ │ │ │ +_2_4_1 typedef typename std::vector::reference _r_e_f_e_r_e_n_c_e; │ │ │ │ │ +_2_4_3 typedef typename std::vector::const_reference _c_o_n_s_t___r_e_f_e_r_e_n_c_e; │ │ │ │ │ +245 │ │ │ │ │ +_2_4_7 typedef size_t _s_i_z_e___t_y_p_e; │ │ │ │ │ +248 │ │ │ │ │ +_2_5_0 _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e& _o_p_e_r_a_t_o_r_=(bool b) │ │ │ │ │ +251 { │ │ │ │ │ +252 for(int i=0; i_>_=(_s_i_z_e___t_y_p_e n) │ │ │ │ │ +359 { │ │ │ │ │ +360 for (_s_i_z_e___t_y_p_e i=0; i_b_l_o_c_k___n_u_m_b_e_r,i); │ │ │ │ │ +426 } │ │ │ │ │ +427 }; │ │ │ │ │ +428 │ │ │ │ │ +429 // implementation of helper - I put it into the template to avoid having │ │ │ │ │ +430 // to compile it in a dedicated compilation unit │ │ │ │ │ +431 template │ │ │ │ │ +432 bool BitSetVectorReference::xor_helper(bool a, bool b) │ │ │ │ │ +433 { │ │ │ │ │ +434 return a ^ b; │ │ │ │ │ +435 } │ │ │ │ │ +436 │ │ │ │ │ +440 template │ │ │ │ │ +_4_4_1 struct _c_o_n_s_t___r_e_f_e_r_e_n_c_e< _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e > │ │ │ │ │ +442 { │ │ │ │ │ +_4_4_3 typedef _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_> _t_y_p_e; │ │ │ │ │ +444 }; │ │ │ │ │ +445 │ │ │ │ │ +446 template │ │ │ │ │ +_4_4_7 struct _c_o_n_s_t___r_e_f_e_r_e_n_c_e< _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e > │ │ │ │ │ +448 { │ │ │ │ │ +_4_4_9 typedef _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_> _t_y_p_e; │ │ │ │ │ +450 }; │ │ │ │ │ +451 │ │ │ │ │ +452 template │ │ │ │ │ +_4_5_3 struct _m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e< _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e > │ │ │ │ │ +454 { │ │ │ │ │ +_4_5_5 typedef _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_> _t_y_p_e; │ │ │ │ │ +456 }; │ │ │ │ │ +457 │ │ │ │ │ +458 template │ │ │ │ │ +_4_5_9 struct _m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e< _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e > │ │ │ │ │ +460 { │ │ │ │ │ +_4_6_1 typedef _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_> _t_y_p_e; │ │ │ │ │ +462 }; │ │ │ │ │ +463 │ │ │ │ │ +467 template > │ │ │ │ │ +_4_6_8 class _B_i_t_S_e_t_V_e_c_t_o_r : private std::vector │ │ │ │ │ +469 { │ │ │ │ │ +471 typedef std::vector BlocklessBaseClass; │ │ │ │ │ +472 │ │ │ │ │ +473 public: │ │ │ │ │ +476 │ │ │ │ │ +_4_7_8 typedef std::bitset _v_a_l_u_e___t_y_p_e; │ │ │ │ │ +479 │ │ │ │ │ +_4_8_1 typedef _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_a_t_o_r_> _r_e_f_e_r_e_n_c_e; │ │ │ │ │ +482 │ │ │ │ │ +_4_8_4 typedef _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_a_t_o_r_> _c_o_n_s_t___r_e_f_e_r_e_n_c_e; │ │ │ │ │ +485 │ │ │ │ │ +_4_8_7 typedef _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_a_t_o_r_>* _p_o_i_n_t_e_r; │ │ │ │ │ +488 │ │ │ │ │ +_4_9_0 typedef _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_a_t_o_r_>* _c_o_n_s_t___p_o_i_n_t_e_r; │ │ │ │ │ +491 │ │ │ │ │ +_4_9_3 typedef typename std::vector::size_type _s_i_z_e___t_y_p_e; │ │ │ │ │ +494 │ │ │ │ │ +_4_9_6 typedef Allocator _a_l_l_o_c_a_t_o_r___t_y_p_e; │ │ │ │ │ +498 │ │ │ │ │ +_5_0_1 typedef _D_u_n_e_:_:_G_e_n_e_r_i_c_I_t_e_r_a_t_o_r_<_B_i_t_S_e_t_V_e_c_t_o_r_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_a_t_o_r_>, │ │ │ │ │ +_v_a_l_u_e___t_y_p_e, _r_e_f_e_r_e_n_c_e, std::ptrdiff_t, _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_F_a_c_a_d_e> _i_t_e_r_a_t_o_r; │ │ │ │ │ +_5_0_2 typedef _D_u_n_e_:_:_G_e_n_e_r_i_c_I_t_e_r_a_t_o_r_<_c_o_n_s_t_ _B_i_t_S_e_t_V_e_c_t_o_r_<_b_l_o_c_k___s_i_z_e_,_A_l_l_o_c_a_t_o_r_>, │ │ │ │ │ +const _v_a_l_u_e___t_y_p_e, _c_o_n_s_t___r_e_f_e_r_e_n_c_e, std::ptrdiff_t, _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_F_a_c_a_d_e> │ │ │ │ │ +_c_o_n_s_t___i_t_e_r_a_t_o_r; │ │ │ │ │ +504 │ │ │ │ │ +_5_0_6 _i_t_e_r_a_t_o_r _b_e_g_i_n(){ │ │ │ │ │ +507 return _i_t_e_r_a_t_o_r(*this, 0); │ │ │ │ │ +508 } │ │ │ │ │ +509 │ │ │ │ │ +_5_1_1 _c_o_n_s_t___i_t_e_r_a_t_o_r _b_e_g_i_n() const { │ │ │ │ │ +512 return _c_o_n_s_t___i_t_e_r_a_t_o_r(*this, 0); │ │ │ │ │ +513 } │ │ │ │ │ +514 │ │ │ │ │ +_5_1_6 _i_t_e_r_a_t_o_r _e_n_d(){ │ │ │ │ │ +517 return _i_t_e_r_a_t_o_r(*this, _s_i_z_e()); │ │ │ │ │ +518 } │ │ │ │ │ +519 │ │ │ │ │ +_5_2_1 _c_o_n_s_t___i_t_e_r_a_t_o_r _e_n_d() const { │ │ │ │ │ +522 return _c_o_n_s_t___i_t_e_r_a_t_o_r(*this, _s_i_z_e()); │ │ │ │ │ +523 } │ │ │ │ │ +524 │ │ │ │ │ +_5_2_6 _B_i_t_S_e_t_V_e_c_t_o_r() : │ │ │ │ │ +527 BlocklessBaseClass() │ │ │ │ │ +528 {} │ │ │ │ │ +529 │ │ │ │ │ +_5_3_1 _B_i_t_S_e_t_V_e_c_t_o_r(const BlocklessBaseClass& blocklessBitField) : │ │ │ │ │ +532 BlocklessBaseClass(blocklessBitField) │ │ │ │ │ +533 { │ │ │ │ │ +534 if (blocklessBitField.size()%block_size != 0) │ │ │ │ │ +535 _D_U_N_E___T_H_R_O_W(_R_a_n_g_e_E_r_r_o_r, "Vector size is not a multiple of the block size!"); │ │ │ │ │ +536 } │ │ │ │ │ +537 │ │ │ │ │ +_5_4_1 explicit _B_i_t_S_e_t_V_e_c_t_o_r(int n) : │ │ │ │ │ +542 BlocklessBaseClass(n*block_size) │ │ │ │ │ +543 {} │ │ │ │ │ +544 │ │ │ │ │ +_5_4_6 _B_i_t_S_e_t_V_e_c_t_o_r(int n, bool v) : │ │ │ │ │ +547 BlocklessBaseClass(n*block_size,v) │ │ │ │ │ +548 {} │ │ │ │ │ +549 │ │ │ │ │ +_5_5_1 void _c_l_e_a_r() │ │ │ │ │ +552 { │ │ │ │ │ +553 BlocklessBaseClass::clear(); │ │ │ │ │ +554 } │ │ │ │ │ +555 │ │ │ │ │ +_5_5_7 void _r_e_s_i_z_e(int n, bool v = bool()) │ │ │ │ │ +558 { │ │ │ │ │ +559 BlocklessBaseClass::resize(n*block_size, v); │ │ │ │ │ +560 } │ │ │ │ │ +561 │ │ │ │ │ +_5_6_3 _s_i_z_e___t_y_p_e _s_i_z_e() const │ │ │ │ │ +564 { │ │ │ │ │ +565 return BlocklessBaseClass::size()/block_size; │ │ │ │ │ +566 } │ │ │ │ │ +567 │ │ │ │ │ +_5_6_9 void _s_e_t_A_l_l() { │ │ │ │ │ +570 this->_a_s_s_i_g_n(BlocklessBaseClass::size(), true); │ │ │ │ │ +571 } │ │ │ │ │ +572 │ │ │ │ │ +_5_7_4 void _u_n_s_e_t_A_l_l() { │ │ │ │ │ +575 this->_a_s_s_i_g_n(BlocklessBaseClass::size(), false); │ │ │ │ │ +576 } │ │ │ │ │ +577 │ │ │ │ │ +_5_7_9 _r_e_f_e_r_e_n_c_e _o_p_e_r_a_t_o_r_[_](int i) │ │ │ │ │ +580 { │ │ │ │ │ +581 return _r_e_f_e_r_e_n_c_e(*this, i); │ │ │ │ │ +582 } │ │ │ │ │ +583 │ │ │ │ │ +_5_8_5 _c_o_n_s_t___r_e_f_e_r_e_n_c_e _o_p_e_r_a_t_o_r_[_](int i) const │ │ │ │ │ +586 { │ │ │ │ │ +587 return _c_o_n_s_t___r_e_f_e_r_e_n_c_e(*this, i); │ │ │ │ │ +588 } │ │ │ │ │ +589 │ │ │ │ │ +_5_9_1 _r_e_f_e_r_e_n_c_e _b_a_c_k() │ │ │ │ │ +592 { │ │ │ │ │ +593 return _r_e_f_e_r_e_n_c_e(*this, _s_i_z_e()-1); │ │ │ │ │ +594 } │ │ │ │ │ +595 │ │ │ │ │ +_5_9_7 _c_o_n_s_t___r_e_f_e_r_e_n_c_e _b_a_c_k() const │ │ │ │ │ +598 { │ │ │ │ │ +599 return _c_o_n_s_t___r_e_f_e_r_e_n_c_e(*this, _s_i_z_e()-1); │ │ │ │ │ +600 } │ │ │ │ │ +601 │ │ │ │ │ +_6_0_3 _s_i_z_e___t_y_p_e _c_o_u_n_t() const │ │ │ │ │ +604 { │ │ │ │ │ +605 return std::count(BlocklessBaseClass::begin(), BlocklessBaseClass::end(), │ │ │ │ │ +true); │ │ │ │ │ +606 } │ │ │ │ │ +607 │ │ │ │ │ +_6_0_9 _s_i_z_e___t_y_p_e _c_o_u_n_t_m_a_s_k_e_d(int j) const │ │ │ │ │ +610 { │ │ │ │ │ +611 _s_i_z_e___t_y_p_e n = 0; │ │ │ │ │ +612 _s_i_z_e___t_y_p_e blocks = _s_i_z_e(); │ │ │ │ │ +613 for(_s_i_z_e___t_y_p_e i=0; i::reference getBit(_s_i_z_e___t_y_p_e i, _s_i_z_e___t_y_p_e j) { │ │ │ │ │ +638 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(j < block_size); │ │ │ │ │ +639 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(i < _s_i_z_e()); │ │ │ │ │ +640 return BlocklessBaseClass::operator[](i*block_size+j); │ │ │ │ │ +641 } │ │ │ │ │ +642 │ │ │ │ │ +_6_4_3 typename std::vector::const_reference getBit(_s_i_z_e___t_y_p_e i, _s_i_z_e___t_y_p_e │ │ │ │ │ +j) const { │ │ │ │ │ +644 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(j < block_size); │ │ │ │ │ +645 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(i < _s_i_z_e()); │ │ │ │ │ +646 return BlocklessBaseClass::operator[](i*block_size+j); │ │ │ │ │ +647 } │ │ │ │ │ +648 │ │ │ │ │ +649 friend class _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e; │ │ │ │ │ +650 friend class _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e; │ │ │ │ │ +651 }; │ │ │ │ │ +652 │ │ │ │ │ +653} // namespace Dune │ │ │ │ │ +654 │ │ │ │ │ +655#endif │ │ │ │ │ +_b_o_u_n_d_s_c_h_e_c_k_i_n_g_._h_h │ │ │ │ │ +Macro for wrapping boundary checks. │ │ │ │ │ +_g_e_n_e_r_i_c_i_t_e_r_a_t_o_r_._h_h │ │ │ │ │ +Implements a generic iterator class for writing stl conformant iterators. │ │ │ │ │ +_e_x_c_e_p_t_i_o_n_s_._h_h │ │ │ │ │ +A few common exception classes. │ │ │ │ │ +_D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S │ │ │ │ │ +#define DUNE_ASSERT_BOUNDS(cond) │ │ │ │ │ +If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do │ │ │ │ │ +nothing. │ │ │ │ │ +DDeeffiinniittiioonn boundschecking.hh:30 │ │ │ │ │ +_D_U_N_E___T_H_R_O_W │ │ │ │ │ +#define DUNE_THROW(E, m) │ │ │ │ │ +DDeeffiinniittiioonn exceptions.hh:218 │ │ │ │ │ _D_u_n_e │ │ │ │ │ Dune namespace. │ │ │ │ │ DDeeffiinniittiioonn alignedallocator.hh:13 │ │ │ │ │ -_D_u_n_e_:_:_s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r │ │ │ │ │ -std::shared_ptr< T > stackobject_to_shared_ptr(T &t) │ │ │ │ │ -Create a shared_ptr for a stack-allocated object. │ │ │ │ │ -DDeeffiinniittiioonn shared_ptr.hh:72 │ │ │ │ │ -_D_u_n_e_:_:_w_r_a_p___o_r___m_o_v_e │ │ │ │ │ -auto wrap_or_move(T &&t) │ │ │ │ │ -Capture R-value reference to shared_ptr. │ │ │ │ │ -DDeeffiinniittiioonn shared_ptr.hh:96 │ │ │ │ │ -_D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r │ │ │ │ │ -implements the Deleter concept of shared_ptr without deleting anything │ │ │ │ │ -DDeeffiinniittiioonn shared_ptr.hh:49 │ │ │ │ │ -_D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r_:_:_s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r │ │ │ │ │ -std::shared_ptr< T > stackobject_to_shared_ptr(T &t) │ │ │ │ │ -Create a shared_ptr for a stack-allocated object. │ │ │ │ │ -DDeeffiinniittiioonn shared_ptr.hh:72 │ │ │ │ │ -_D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r_:_:_o_p_e_r_a_t_o_r_(_) │ │ │ │ │ -void operator()(T *) const │ │ │ │ │ -DDeeffiinniittiioonn shared_ptr.hh:50 │ │ │ │ │ +_D_u_n_e_:_:_a_s_s_i_g_n │ │ │ │ │ +void assign(T &dst, const T &src, bool mask) │ │ │ │ │ +masked Simd assignment (scalar version) │ │ │ │ │ +DDeeffiinniittiioonn simd.hh:447 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +A dynamic array of blocks of booleans. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:469 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_[_] │ │ │ │ │ +const_reference operator[](int i) const │ │ │ │ │ +Return const reference to i-th block. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:585 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_b_e_g_i_n │ │ │ │ │ +iterator begin() │ │ │ │ │ +Returns a iterator pointing to the beginning of the vector. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:506 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_c_o_n_s_t___p_o_i_n_t_e_r │ │ │ │ │ +BitSetVectorConstReference< block_size, Allocator > * const_pointer │ │ │ │ │ +Const pointer to a small block of bits. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:490 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_e_n_d │ │ │ │ │ +const_iterator end() const │ │ │ │ │ +Returns a const_iterator pointing to the end of the vector. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:521 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_r_e_f_e_r_e_n_c_e │ │ │ │ │ +BitSetVectorReference< block_size, Allocator > reference │ │ │ │ │ +Reference to a small block of bits. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:481 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_c_o_u_n_t_m_a_s_k_e_d │ │ │ │ │ +size_type countmasked(int j) const │ │ │ │ │ +Returns the number of set bits, while each block is masked with 1< const_reference │ │ │ │ │ +Const reference to a small block of bits. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:484 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_e_n_d │ │ │ │ │ +iterator end() │ │ │ │ │ +Returns an iterator pointing to the end of the vector. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:516 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_c_o_u_n_t │ │ │ │ │ +size_type count() const │ │ │ │ │ +Returns the number of bits that are set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:603 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +BitSetVector() │ │ │ │ │ +Default constructor. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:526 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_s_e_t_A_l_l │ │ │ │ │ +void setAll() │ │ │ │ │ +Sets all entries to true │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:569 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_c_o_n_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ +Dune::GenericIterator< const BitSetVector< block_size, Allocator >, const │ │ │ │ │ +value_type, const_reference, std::ptrdiff_t, ForwardIteratorFacade > │ │ │ │ │ +const_iterator │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:502 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +std::bitset< block_size > value_type │ │ │ │ │ +Type of the values stored by the container. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:478 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_b_a_c_k │ │ │ │ │ +reference back() │ │ │ │ │ +Return reference to last block. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:591 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +BitSetVector(const BlocklessBaseClass &blocklessBitField) │ │ │ │ │ +Construction from an unblocked bitfield. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:531 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_<_< │ │ │ │ │ +friend std::ostream & operator<<(std::ostream &s, const BitSetVector &v) │ │ │ │ │ +Send bitfield to an output stream. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:619 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_b_a_c_k │ │ │ │ │ +const_reference back() const │ │ │ │ │ +Return const reference to last block. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:597 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_c_l_e_a_r │ │ │ │ │ +void clear() │ │ │ │ │ +Erases all of the elements. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:551 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_p_o_i_n_t_e_r │ │ │ │ │ +BitSetVectorReference< block_size, Allocator > * pointer │ │ │ │ │ +Pointer to a small block of bits. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:487 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_[_] │ │ │ │ │ +reference operator[](int i) │ │ │ │ │ +Return reference to i-th block. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:579 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_s_i_z_e │ │ │ │ │ +size_type size() const │ │ │ │ │ +Return the number of blocks. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:563 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +std::vector< bool, Allocator >::size_type size_type │ │ │ │ │ +size type │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:493 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +BitSetVector(int n, bool v) │ │ │ │ │ +Constructor which initializes the field with true or false. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:546 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_b_e_g_i_n │ │ │ │ │ +const_iterator begin() const │ │ │ │ │ +Returns a const_iterator pointing to the beginning of the vector. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:511 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_i_t_e_r_a_t_o_r │ │ │ │ │ +Dune::GenericIterator< BitSetVector< block_size, Allocator >, value_type, │ │ │ │ │ +reference, std::ptrdiff_t, ForwardIteratorFacade > iterator │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:501 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_r_e_s_i_z_e │ │ │ │ │ +void resize(int n, bool v=bool()) │ │ │ │ │ +Resize field. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:557 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_a_l_l_o_c_a_t_o_r___t_y_p_e │ │ │ │ │ +Allocator allocator_type │ │ │ │ │ +The type of the allocator. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:496 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +BitSetVector(int n) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:541 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_:_:_u_n_s_e_t_A_l_l │ │ │ │ │ +void unsetAll() │ │ │ │ │ +Sets all entries to false │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:574 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │ +A proxy class that acts as a mutable reference to a single bitset in a │ │ │ │ │ +BitSetVector. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:222 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_t_e_s_t │ │ │ │ │ +bool test(size_type n) const │ │ │ │ │ +Returns true if bit n is set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:124 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +BitSetVectorReference & operator=(const BitSetVectorConstReference &b) │ │ │ │ │ +Assignment from BitSetVectorConstReference. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:266 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_[_] │ │ │ │ │ +reference operator[](size_type i) │ │ │ │ │ +Return reference to the i-th bit. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:413 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_r_e_s_e_t │ │ │ │ │ +BitSetVectorReference & reset(size_type n) │ │ │ │ │ +Clears bit n. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:396 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_<_<_= │ │ │ │ │ +BitSetVectorReference & operator<<=(size_type n) │ │ │ │ │ +Left shift. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:350 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +Dune::BitSetVector< block_size, Alloc > BitSetVector │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:225 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e │ │ │ │ │ +std::vector< bool, Alloc >::const_reference const_reference │ │ │ │ │ +A proxy class that acts as a const reference to a single bit. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:243 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +BitSetVectorReference & operator=(const BitSetVectorReference &b) │ │ │ │ │ +Assignment from BitSetVectorReference. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:274 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_g_e_t_B_i_t │ │ │ │ │ +reference getBit(size_type i) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:423 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_&_= │ │ │ │ │ +BitSetVectorReference & operator&=(const BitSetVectorConstReference &x) │ │ │ │ │ +Bitwise and (for BitSetVectorConstReference and BitSetVectorReference) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:290 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │ +BitSetVectorReference(BitSetVector &blockBitField_, int block_number_) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:230 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +size_t size_type │ │ │ │ │ +size_type typedef (an unsigned integral type) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:247 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +BitSetVectorReference & operator=(const bitset &b) │ │ │ │ │ +Assignment from bitset. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:258 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e │ │ │ │ │ +Dune::BitSetVectorConstReference< block_size, Alloc > │ │ │ │ │ +BitSetVectorConstReference │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:228 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_r_e_s_e_t │ │ │ │ │ +BitSetVectorReference & reset() │ │ │ │ │ +Clears every bit. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:382 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_b_l_o_c_k_B_i_t_F_i_e_l_d │ │ │ │ │ +BitSetVector & blockBitField │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:419 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_|_= │ │ │ │ │ +BitSetVectorReference & operator|=(const BitSetVectorConstReference &x) │ │ │ │ │ +Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:306 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_s_e_t │ │ │ │ │ +BitSetVectorReference & set(size_type n, int val=1) │ │ │ │ │ +Sets bit n if val is nonzero, and clears bit n if val is zero. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:389 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_b_i_t_s_e_t │ │ │ │ │ +std::bitset< block_size > bitset │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:236 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_^_= │ │ │ │ │ +BitSetVectorReference & operator^=(const bitset &x) │ │ │ │ │ +Bitwise exclusive or (for bitset). │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:314 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_r_e_f_e_r_e_n_c_e │ │ │ │ │ +std::vector< bool, Alloc >::reference reference │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:241 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_|_= │ │ │ │ │ +BitSetVectorReference & operator|=(const bitset &x) │ │ │ │ │ +Bitwise inclusive or (for bitset) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:298 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_>_>_= │ │ │ │ │ +BitSetVectorReference & operator>>=(size_type n) │ │ │ │ │ +Right shift. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:358 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_^_= │ │ │ │ │ +BitSetVectorReference & operator^=(const BitSetVectorConstReference &x) │ │ │ │ │ +Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:340 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_f_l_i_p │ │ │ │ │ +BitSetVectorReference & flip(size_type n) │ │ │ │ │ +Flips bit n. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:403 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_f_l_i_p │ │ │ │ │ +BitSetVectorReference & flip() │ │ │ │ │ +Flips the value of every bit. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:374 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_s_e_t │ │ │ │ │ +BitSetVectorReference & set() │ │ │ │ │ +Sets every bit. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:366 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_&_= │ │ │ │ │ +BitSetVectorReference & operator&=(const bitset &x) │ │ │ │ │ +Bitwise and (for bitset). │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:282 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +BitSetVectorReference & operator=(bool b) │ │ │ │ │ +Assignment from bool, sets each bit in the bitset to b. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:250 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e │ │ │ │ │ +A proxy class that acts as a const reference to a single bitset in a │ │ │ │ │ +BitSetVector. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:38 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_=_= │ │ │ │ │ +bool operator==(const bitset &bs) const │ │ │ │ │ +Equality of reference and std::bitset. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:142 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_t_e_s_t │ │ │ │ │ +bool test(size_type n) const │ │ │ │ │ +Returns true if bit n is set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:124 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_[_] │ │ │ │ │ +const_reference operator[](size_type i) const │ │ │ │ │ +Return reference to the i-th bit. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:130 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_<_< │ │ │ │ │ +bitset operator<<(size_type n) const │ │ │ │ │ +Returns a copy of *this shifted left by n bits. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:64 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +BitSetVectorConstReference & operator=(const BitSetVectorConstReference &b) │ │ │ │ │ +hide assignment operator │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e │ │ │ │ │ +BitSetVectorConstReference(const BitSetVector &blockBitField_, int │ │ │ │ │ +block_number_) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:44 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_b_l_o_c_k_B_i_t_F_i_e_l_d │ │ │ │ │ +const BitSetVector & blockBitField │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:181 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_>_> │ │ │ │ │ +bitset operator>>(size_type n) const │ │ │ │ │ +Returns a copy of *this shifted right by n bits. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:72 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_g_e_t_B_i_t │ │ │ │ │ +const_reference getBit(size_type i) const │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:184 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_!_= │ │ │ │ │ +bool operator!=(const bitset &bs) const │ │ │ │ │ +Inequality of reference and std::bitset. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:154 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_e_q_u_a_l_s │ │ │ │ │ +bool equals(const BS &bs) const │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:190 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r │ │ │ │ │ +Dune::BitSetVector< block_size, Alloc > BitSetVector │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:41 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_b_i_t_s_e_t │ │ │ │ │ +std::bitset< block_size > bitset │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:56 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_a_l_l │ │ │ │ │ +bool all() const │ │ │ │ │ +Returns true if all bits are set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:115 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +size_t size_type │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:61 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_~ │ │ │ │ │ +bitset operator~() const │ │ │ │ │ +Returns a copy of *this with all of its bits flipped. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:80 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_r_e_f_e_r_e_n_c_e │ │ │ │ │ +std::vector< bool, Alloc >::const_reference reference │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:59 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_s_i_z_e │ │ │ │ │ +size_type size() const │ │ │ │ │ +Returns block_size. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:88 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_c_o_u_n_t │ │ │ │ │ +size_type count() const │ │ │ │ │ +Returns the number of bits that are set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:94 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_n_o_n_e │ │ │ │ │ +bool none() const │ │ │ │ │ +Returns true if no bits are set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:109 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_a_n_y │ │ │ │ │ +bool any() const │ │ │ │ │ +Returns true if any bits are set. │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:103 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_b_l_o_c_k___n_u_m_b_e_r │ │ │ │ │ +int block_number │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:182 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e │ │ │ │ │ +std::vector< bool, Alloc >::const_reference const_reference │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:60 │ │ │ │ │ +_D_u_n_e_:_:_B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_:_:_o_p_e_r_a_t_o_r_<_< │ │ │ │ │ +friend std::ostream & operator<<(std::ostream &s, const │ │ │ │ │ +BitSetVectorConstReference &v) │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:171 │ │ │ │ │ +_D_u_n_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _>_ _>_:_:_t_y_p_e │ │ │ │ │ +BitSetVectorConstReference< block_size, Alloc > type │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:443 │ │ │ │ │ +_D_u_n_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _>_ _>_:_:_t_y_p_e │ │ │ │ │ +BitSetVectorConstReference< block_size, Alloc > type │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:449 │ │ │ │ │ +_D_u_n_e_:_:_m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _>_ _>_:_:_t_y_p_e │ │ │ │ │ +BitSetVectorReference< block_size, Alloc > type │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:455 │ │ │ │ │ +_D_u_n_e_:_:_m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e_<_ _B_i_t_S_e_t_V_e_c_t_o_r_C_o_n_s_t_R_e_f_e_r_e_n_c_e_<_ _b_l_o_c_k___s_i_z_e_,_ _A_l_l_o_c_ _>_ _>_:_: │ │ │ │ │ +_t_y_p_e │ │ │ │ │ +BitSetVectorReference< block_size, Alloc > type │ │ │ │ │ +DDeeffiinniittiioonn bitsetvector.hh:461 │ │ │ │ │ +_D_u_n_e_:_:_R_a_n_g_e_E_r_r_o_r │ │ │ │ │ +Default exception class for range errors. │ │ │ │ │ +DDeeffiinniittiioonn exceptions.hh:254 │ │ │ │ │ +_D_u_n_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e │ │ │ │ │ +Get the 'const' version of a reference to a mutable object. │ │ │ │ │ +DDeeffiinniittiioonn genericiterator.hh:87 │ │ │ │ │ +_D_u_n_e_:_:_m_u_t_a_b_l_e___r_e_f_e_r_e_n_c_e │ │ │ │ │ +get the 'mutable' version of a reference to a const object │ │ │ │ │ +DDeeffiinniittiioonn genericiterator.hh:116 │ │ │ │ │ +_D_u_n_e_:_:_G_e_n_e_r_i_c_I_t_e_r_a_t_o_r │ │ │ │ │ +Generic class for stl-conforming iterators for container classes with operator │ │ │ │ │ +[]. │ │ │ │ │ +DDeeffiinniittiioonn genericiterator.hh:153 │ │ │ │ │ +_D_u_n_e_:_:_F_o_r_w_a_r_d_I_t_e_r_a_t_o_r_F_a_c_a_d_e │ │ │ │ │ +Base class for stl conformant forward iterators. │ │ │ │ │ +DDeeffiinniittiioonn iteratorfacades.hh:141 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00011.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: dynvector.hh File Reference │ │ │ │ +dune-common: shared_ptr.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -71,55 +71,57 @@ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Classes | │ │ │ │ -Namespaces
│ │ │ │ -
dynvector.hh File Reference
│ │ │ │ +Namespaces | │ │ │ │ +Functions
│ │ │ │ +
shared_ptr.hh File Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ -

This file implements a dense vector with a dynamic size. │ │ │ │ +

This file implements several utilities related to std::shared_ptr. │ │ │ │ More...

│ │ │ │ -
#include <cmath>
│ │ │ │ -#include <cstddef>
│ │ │ │ -#include <cstdlib>
│ │ │ │ -#include <complex>
│ │ │ │ -#include <cstring>
│ │ │ │ -#include <initializer_list>
│ │ │ │ -#include <limits>
│ │ │ │ -#include <utility>
│ │ │ │ -#include "boundschecking.hh"
│ │ │ │ -#include "exceptions.hh"
│ │ │ │ -#include "genericiterator.hh"
│ │ │ │ -#include <vector>
│ │ │ │ -#include "densevector.hh"
│ │ │ │ +
#include <memory>
│ │ │ │ +#include <dune/common/typetraits.hh>
│ │ │ │
│ │ │ │

Go to the source code of this file.

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

│ │ │ │ Classes

struct  Dune::DenseMatVecTraits< DynamicVector< K, Allocator > >
 
struct  Dune::FieldTraits< DynamicVector< K, Allocator > >
 
class  Dune::DynamicVector< K, Allocator >
 Construct a vector with a dynamic size. More...
struct  Dune::null_deleter< T >
 implements the Deleter concept of shared_ptr without deleting anything More...
 
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +

│ │ │ │ Namespaces

namespace  Dune
 Dune namespace.
 
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ +Functions

template<typename T >
std::shared_ptr< T > Dune::stackobject_to_shared_ptr (T &t)
 Create a shared_ptr for a stack-allocated object.
 
template<class T >
auto Dune::wrap_or_move (T &&t)
 Capture R-value reference to shared_ptr.
 
template<class T >
auto Dune::wrap_or_move (T &t)
 Capture L-value reference to std::shared_ptr.
 
│ │ │ │

Detailed Description

│ │ │ │ -

This file implements a dense vector with a dynamic size.

│ │ │ │ +

This file implements several utilities related to std::shared_ptr.

│ │ │ │ +
Author
Markus Blatt
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,40 +1,40 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s │ │ │ │ │ -dynvector.hh File Reference │ │ │ │ │ -_C_o_m_m_o_n » _D_e_n_s_e_ _M_a_t_r_i_x_ _a_n_d_ _V_e_c_t_o_r_ _T_e_m_p_l_a_t_e_ _L_i_b_r_a_r_y │ │ │ │ │ -This file implements a dense vector with a dynamic size. _M_o_r_e_._._. │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include "_b_o_u_n_d_s_c_h_e_c_k_i_n_g_._h_h" │ │ │ │ │ -#include "_e_x_c_e_p_t_i_o_n_s_._h_h" │ │ │ │ │ -#include "_g_e_n_e_r_i_c_i_t_e_r_a_t_o_r_._h_h" │ │ │ │ │ -#include │ │ │ │ │ -#include "_d_e_n_s_e_v_e_c_t_o_r_._h_h" │ │ │ │ │ +_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ +shared_ptr.hh File Reference │ │ │ │ │ +This file implements several utilities related to std::shared_ptr. _M_o_r_e_._._. │ │ │ │ │ +#include │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ CCllaasssseess │ │ │ │ │ -struct   _D_u_n_e_:_:_D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _> │ │ │ │ │ -  │ │ │ │ │ -struct   _D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _> │ │ │ │ │ -  │ │ │ │ │ - class   _D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _> │ │ │ │ │ -  Construct a vector with a dynamic size. _M_o_r_e_._._. │ │ │ │ │ +struct   _D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r_<_ _T_ _> │ │ │ │ │ +  implements the Deleter concept of shared_ptr without deleting anything │ │ │ │ │ + _M_o_r_e_._._. │ │ │ │ │   │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _D_u_n_e │ │ │ │ │   _D_u_n_e namespace. │ │ │ │ │   │ │ │ │ │ +FFuunnccttiioonnss │ │ │ │ │ +template │ │ │ │ │ +std::shared_ptr< T >  _D_u_n_e_:_:_s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r (T &t) │ │ │ │ │ +  Create a shared_ptr for a stack-allocated object. │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ + auto  _D_u_n_e_:_:_w_r_a_p___o_r___m_o_v_e (T &&t) │ │ │ │ │ +  Capture R-value reference to shared_ptr. │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ + auto  _D_u_n_e_:_:_w_r_a_p___o_r___m_o_v_e (T &t) │ │ │ │ │ +  Capture L-value reference to std::shared_ptr. │ │ │ │ │ +  │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -This file implements a dense vector with a dynamic size. │ │ │ │ │ +This file implements several utilities related to std::shared_ptr. │ │ │ │ │ + Author │ │ │ │ │ + Markus Blatt │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: dynvector.hh Source File │ │ │ │ +dune-common: shared_ptr.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,271 +74,72 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
dynvector.hh
│ │ │ │ +
shared_ptr.hh
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ -
5#ifndef DUNE_DYNVECTOR_HH
│ │ │ │ -
6#define DUNE_DYNVECTOR_HH
│ │ │ │ -
7
│ │ │ │ -
8#include <cmath>
│ │ │ │ -
9#include <cstddef>
│ │ │ │ -
10#include <cstdlib>
│ │ │ │ -
11#include <complex>
│ │ │ │ -
12#include <cstring>
│ │ │ │ -
13#include <initializer_list>
│ │ │ │ -
14#include <limits>
│ │ │ │ -
15#include <utility>
│ │ │ │ -
16
│ │ │ │ -
17#include "boundschecking.hh"
│ │ │ │ -
18#include "exceptions.hh"
│ │ │ │ -
19#include "genericiterator.hh"
│ │ │ │ -
20
│ │ │ │ -
21#include <vector>
│ │ │ │ -
22#include "densevector.hh"
│ │ │ │ -
23
│ │ │ │ -
24namespace Dune {
│ │ │ │ -
25
│ │ │ │ -
34 template< class K, class Allocator > class DynamicVector;
│ │ │ │ -
35 template< class K, class Allocator >
│ │ │ │ -
│ │ │ │ -
36 struct DenseMatVecTraits< DynamicVector< K, Allocator > >
│ │ │ │ -
37 {
│ │ │ │ - │ │ │ │ -
39 typedef std::vector< K, Allocator > container_type;
│ │ │ │ -
40 typedef K value_type;
│ │ │ │ -
41 typedef typename container_type::size_type size_type;
│ │ │ │ -
42 };
│ │ │ │ -
│ │ │ │ -
43
│ │ │ │ -
44 template< class K, class Allocator >
│ │ │ │ -
│ │ │ │ -
45 struct FieldTraits< DynamicVector< K, Allocator > >
│ │ │ │ -
46 {
│ │ │ │ - │ │ │ │ - │ │ │ │ -
49 };
│ │ │ │ -
│ │ │ │ -
50
│ │ │ │ -
57 template< class K, class Allocator = std::allocator< K > >
│ │ │ │ -
│ │ │ │ -
58 class DynamicVector : public DenseVector< DynamicVector< K, Allocator > >
│ │ │ │ -
59 {
│ │ │ │ -
60 std::vector< K, Allocator > _data;
│ │ │ │ -
61
│ │ │ │ - │ │ │ │ -
63 public:
│ │ │ │ -
64 typedef typename Base::size_type size_type;
│ │ │ │ -
65 typedef typename Base::value_type value_type;
│ │ │ │ -
66
│ │ │ │ -
67 typedef std::vector< K, Allocator > container_type;
│ │ │ │ -
68
│ │ │ │ -
69 typedef Allocator allocator_type;
│ │ │ │ -
70
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
73 _data( a )
│ │ │ │ -
74 {}
│ │ │ │ -
│ │ │ │ -
75
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
77 _data( n, value_type(), a )
│ │ │ │ -
78 {}
│ │ │ │ -
│ │ │ │ -
79
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
82 _data( n, c, a )
│ │ │ │ -
83 {}
│ │ │ │ -
│ │ │ │ -
84
│ │ │ │ -
│ │ │ │ -
86 DynamicVector (std::initializer_list<K> const &l) :
│ │ │ │ -
87 _data(l)
│ │ │ │ -
88 {}
│ │ │ │ -
│ │ │ │ -
89
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
92 Base(), _data(x._data)
│ │ │ │ -
93 {}
│ │ │ │ +
5
│ │ │ │ +
6#ifndef DUNE_SHARED_PTR_HH
│ │ │ │ +
7#define DUNE_SHARED_PTR_HH
│ │ │ │ +
8
│ │ │ │ +
9#include <memory>
│ │ │ │ +
10
│ │ │ │ + │ │ │ │ +
17namespace Dune
│ │ │ │ +
18{
│ │ │ │ +
47 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
49 {
│ │ │ │ +
50 void operator() (T*) const {}
│ │ │ │ +
51 };
│ │ │ │
│ │ │ │ -
94
│ │ │ │ +
52
│ │ │ │ +
71 template<typename T>
│ │ │ │ +
│ │ │ │ +
72 inline std::shared_ptr<T> stackobject_to_shared_ptr(T & t)
│ │ │ │ +
73 {
│ │ │ │ +
74 return std::shared_ptr<T>(&t, null_deleter<T>());
│ │ │ │ +
75 }
│ │ │ │ +
│ │ │ │ +
76
│ │ │ │ +
77
│ │ │ │ +
95 template<class T>
│ │ │ │
│ │ │ │ - │ │ │ │ -
97 _data(std::move(x._data))
│ │ │ │ -
98 {}
│ │ │ │ -
│ │ │ │ -
99
│ │ │ │ -
100 template< class T >
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
102 _data(x.begin(), x.end(), x.get_allocator())
│ │ │ │ -
103 {}
│ │ │ │ -
│ │ │ │ -
104
│ │ │ │ -
106 template< class X >
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
108 _data(a)
│ │ │ │ -
109 {
│ │ │ │ -
110 const size_type n = x.size();
│ │ │ │ -
111 _data.reserve(n);
│ │ │ │ -
112 for( size_type i =0; i<n ;++i)
│ │ │ │ -
113 _data.push_back( x[ i ] );
│ │ │ │ -
114 }
│ │ │ │ -
│ │ │ │ -
115
│ │ │ │ -
116 using Base::operator=;
│ │ │ │ -
117
│ │ │ │ +
96 auto wrap_or_move(T&& t)
│ │ │ │ +
97 {
│ │ │ │ +
98 return std::make_shared<std::decay_t<T>>(std::forward<T>(t));
│ │ │ │ +
99 }
│ │ │ │ +
│ │ │ │ +
100
│ │ │ │ +
118 template<class T>
│ │ │ │
│ │ │ │ - │ │ │ │ -
120 {
│ │ │ │ -
121 _data = other._data;
│ │ │ │ -
122 return *this;
│ │ │ │ -
123 }
│ │ │ │ -
│ │ │ │ -
124
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
127 {
│ │ │ │ -
128 _data = std::move(other._data);
│ │ │ │ -
129 return *this;
│ │ │ │ -
130 }
│ │ │ │ -
│ │ │ │ -
131
│ │ │ │ -
132 //==== forward some methods of std::vector
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
138 {
│ │ │ │ -
139 return _data.capacity();
│ │ │ │ -
140 }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
142 {
│ │ │ │ -
143 _data.resize(n,c);
│ │ │ │ -
144 }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
146 {
│ │ │ │ -
147 _data.reserve(n);
│ │ │ │ -
148 }
│ │ │ │ -
│ │ │ │ -
149
│ │ │ │ -
150 //==== make this thing a vector
│ │ │ │ -
151 size_type size() const { return _data.size(); }
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ -
154 return _data[i];
│ │ │ │ -
155 }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
156 const K & operator[](size_type i) const {
│ │ │ │ - │ │ │ │ -
158 return _data[i];
│ │ │ │ -
159 }
│ │ │ │ -
│ │ │ │ -
160
│ │ │ │ -
│ │ │ │ -
162 K* data() noexcept
│ │ │ │ -
163 {
│ │ │ │ -
164 return _data.data();
│ │ │ │ -
165 }
│ │ │ │ -
│ │ │ │ -
166
│ │ │ │ -
│ │ │ │ -
168 const K* data() const noexcept
│ │ │ │ -
169 {
│ │ │ │ -
170 return _data.data();
│ │ │ │ -
171 }
│ │ │ │ -
│ │ │ │ -
172
│ │ │ │ -
173 const container_type &container () const { return _data; }
│ │ │ │ -
174 container_type &container () { return _data; }
│ │ │ │ -
175 };
│ │ │ │ -
│ │ │ │ -
176
│ │ │ │ -
188 template< class K, class Allocator >
│ │ │ │ -
│ │ │ │ -
189 inline std::istream &operator>> ( std::istream &in,
│ │ │ │ - │ │ │ │ -
191 {
│ │ │ │ - │ │ │ │ -
193 for( typename DynamicVector< K, Allocator >::size_type i = 0; i < w.size(); ++i )
│ │ │ │ -
194 in >> w[ i ];
│ │ │ │ -
195 if(in)
│ │ │ │ -
196 v = std::move(w);
│ │ │ │ -
197 return in;
│ │ │ │ -
198 }
│ │ │ │ -
│ │ │ │ -
199
│ │ │ │ -
202} // end namespace
│ │ │ │ -
203
│ │ │ │ -
204#endif
│ │ │ │ -
Implements a generic iterator class for writing stl conformant iterators.
│ │ │ │ -
Macro for wrapping boundary checks.
│ │ │ │ -
A few common exception classes.
│ │ │ │ -
Implements the dense vector interface, with an exchangeable storage class.
│ │ │ │ -
Stream & operator>>(Stream &stream, std::tuple< Ts... > &t)
Read a std::tuple.
Definition streamoperators.hh:43
│ │ │ │ -
#define DUNE_ASSERT_BOUNDS(cond)
If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
Definition boundschecking.hh:30
│ │ │ │ -
STL namespace.
│ │ │ │ +
119 auto wrap_or_move(T& t)
│ │ │ │ +
120 {
│ │ │ │ + │ │ │ │ +
122 }
│ │ │ │ +
│ │ │ │ +
123
│ │ │ │ +
124}
│ │ │ │ +
125#endif
│ │ │ │ +
Traits for type conversions and type information.
│ │ │ │
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ -
Interface for a class of dense vectors over a given field.
Definition densevector.hh:229
│ │ │ │ -
Traits::value_type value_type
export the type representing the field
Definition densevector.hh:250
│ │ │ │ -
Iterator begin()
begin iterator
Definition densevector.hh:347
│ │ │ │ -
size_type size() const
size method
Definition densevector.hh:336
│ │ │ │ -
Iterator end()
end iterator
Definition densevector.hh:353
│ │ │ │ -
Traits::size_type size_type
The type used for the index access and size operation.
Definition densevector.hh:259
│ │ │ │ -
Construct a vector with a dynamic size.
Definition dynvector.hh:59
│ │ │ │ -
void resize(size_type n, value_type c=value_type())
Definition dynvector.hh:141
│ │ │ │ -
DynamicVector(const DynamicVector &x)
Constructor making vector with identical coordinates.
Definition dynvector.hh:91
│ │ │ │ -
Base::size_type size_type
Definition dynvector.hh:64
│ │ │ │ -
std::vector< K, Allocator > container_type
Definition dynvector.hh:67
│ │ │ │ -
size_type size() const
Definition dynvector.hh:151
│ │ │ │ -
K & operator[](size_type i)
Definition dynvector.hh:152
│ │ │ │ -
container_type & container()
Definition dynvector.hh:174
│ │ │ │ -
Base::value_type value_type
Definition dynvector.hh:65
│ │ │ │ -
const K * data() const noexcept
return pointer to underlying array
Definition dynvector.hh:168
│ │ │ │ -
Allocator allocator_type
Definition dynvector.hh:69
│ │ │ │ -
DynamicVector(const allocator_type &a=allocator_type())
Constructor making uninitialized vector.
Definition dynvector.hh:72
│ │ │ │ -
DynamicVector(DynamicVector &&x)
Move constructor.
Definition dynvector.hh:96
│ │ │ │ -
K * data() noexcept
return pointer to underlying array
Definition dynvector.hh:162
│ │ │ │ -
DynamicVector & operator=(DynamicVector &&other)
Move assignment operator.
Definition dynvector.hh:126
│ │ │ │ -
DynamicVector & operator=(const DynamicVector &other)
Copy assignment operator.
Definition dynvector.hh:119
│ │ │ │ -
size_type capacity() const
Number of elements for which memory has been allocated.
Definition dynvector.hh:137
│ │ │ │ -
const container_type & container() const
Definition dynvector.hh:173
│ │ │ │ -
DynamicVector(size_type n, const allocator_type &a=allocator_type())
Definition dynvector.hh:76
│ │ │ │ -
DynamicVector(std::initializer_list< K > const &l)
Construct from a std::initializer_list.
Definition dynvector.hh:86
│ │ │ │ -
DynamicVector(const DynamicVector< T, Allocator > &x)
Definition dynvector.hh:101
│ │ │ │ -
const K & operator[](size_type i) const
Definition dynvector.hh:156
│ │ │ │ -
void reserve(size_type n)
Definition dynvector.hh:145
│ │ │ │ -
DynamicVector(size_type n, value_type c, const allocator_type &a=allocator_type())
Constructor making vector with identical coordinates.
Definition dynvector.hh:81
│ │ │ │ -
DynamicVector(const DenseVector< X > &x, const allocator_type &a=allocator_type())
Copy constructor from another DenseVector.
Definition dynvector.hh:107
│ │ │ │ - │ │ │ │ -
DynamicVector< K, Allocator > derived_type
Definition dynvector.hh:38
│ │ │ │ -
std::vector< K, Allocator > container_type
Definition dynvector.hh:39
│ │ │ │ -
container_type::size_type size_type
Definition dynvector.hh:41
│ │ │ │ -
FieldTraits< K >::real_type real_type
Definition dynvector.hh:48
│ │ │ │ -
FieldTraits< K >::field_type field_type
Definition dynvector.hh:47
│ │ │ │ -
Definition ftraits.hh:26
│ │ │ │ -
T field_type
export the type representing the field
Definition ftraits.hh:28
│ │ │ │ -
T real_type
export the type representing the real type of the field
Definition ftraits.hh:30
│ │ │ │ -
Definition matvectraits.hh:31
│ │ │ │ +
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
│ │ │ │ +
auto wrap_or_move(T &&t)
Capture R-value reference to shared_ptr.
Definition shared_ptr.hh:96
│ │ │ │ +
implements the Deleter concept of shared_ptr without deleting anything
Definition shared_ptr.hh:49
│ │ │ │ +
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
│ │ │ │ +
void operator()(T *) const
Definition shared_ptr.hh:50
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,341 +1,74 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -dynvector.hh │ │ │ │ │ +shared_ptr.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ 2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ -5#ifndef DUNE_DYNVECTOR_HH │ │ │ │ │ -6#define DUNE_DYNVECTOR_HH │ │ │ │ │ -7 │ │ │ │ │ -8#include │ │ │ │ │ -9#include │ │ │ │ │ -10#include │ │ │ │ │ -11#include │ │ │ │ │ -12#include │ │ │ │ │ -13#include │ │ │ │ │ -14#include │ │ │ │ │ -15#include │ │ │ │ │ -16 │ │ │ │ │ -17#include "_b_o_u_n_d_s_c_h_e_c_k_i_n_g_._h_h" │ │ │ │ │ -18#include "_e_x_c_e_p_t_i_o_n_s_._h_h" │ │ │ │ │ -19#include "_g_e_n_e_r_i_c_i_t_e_r_a_t_o_r_._h_h" │ │ │ │ │ -20 │ │ │ │ │ -21#include │ │ │ │ │ -22#include "_d_e_n_s_e_v_e_c_t_o_r_._h_h" │ │ │ │ │ -23 │ │ │ │ │ -24namespace _D_u_n_e { │ │ │ │ │ -25 │ │ │ │ │ -34 template< class K, class Allocator > class DynamicVector; │ │ │ │ │ -35 template< class K, class Allocator > │ │ │ │ │ -_3_6 struct _D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s< _D_y_n_a_m_i_c_V_e_c_t_o_r< K, Allocator > > │ │ │ │ │ -37 { │ │ │ │ │ -_3_8 typedef _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _> _d_e_r_i_v_e_d___t_y_p_e; │ │ │ │ │ -_3_9 typedef std::vector< K, Allocator > _c_o_n_t_a_i_n_e_r___t_y_p_e; │ │ │ │ │ -_4_0 typedef K _v_a_l_u_e___t_y_p_e; │ │ │ │ │ -_4_1 typedef typename container_type::size_type _s_i_z_e___t_y_p_e; │ │ │ │ │ -42 }; │ │ │ │ │ -43 │ │ │ │ │ -44 template< class K, class Allocator > │ │ │ │ │ -_4_5 struct _F_i_e_l_d_T_r_a_i_t_s< _D_y_n_a_m_i_c_V_e_c_t_o_r< K, Allocator > > │ │ │ │ │ -46 { │ │ │ │ │ -_4_7 typedef typename _F_i_e_l_d_T_r_a_i_t_s_<_ _K_ _>_:_:_f_i_e_l_d___t_y_p_e _f_i_e_l_d___t_y_p_e; │ │ │ │ │ -_4_8 typedef typename _F_i_e_l_d_T_r_a_i_t_s_<_ _K_ _>_:_:_r_e_a_l___t_y_p_e _r_e_a_l___t_y_p_e; │ │ │ │ │ -49 }; │ │ │ │ │ -50 │ │ │ │ │ -57 template< class K, class Allocator = std::allocator< K > > │ │ │ │ │ -_5_8 class _D_y_n_a_m_i_c_V_e_c_t_o_r : public _D_e_n_s_e_V_e_c_t_o_r< DynamicVector< K, Allocator > > │ │ │ │ │ -59 { │ │ │ │ │ -60 std::vector< K, Allocator > _data; │ │ │ │ │ -61 │ │ │ │ │ -62 typedef _D_e_n_s_e_V_e_c_t_o_r_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _> > _B_a_s_e; │ │ │ │ │ -63 public: │ │ │ │ │ -_6_4 typedef typename _B_a_s_e_:_:_s_i_z_e___t_y_p_e _s_i_z_e___t_y_p_e; │ │ │ │ │ -_6_5 typedef typename _B_a_s_e_:_:_v_a_l_u_e___t_y_p_e _v_a_l_u_e___t_y_p_e; │ │ │ │ │ -66 │ │ │ │ │ -_6_7 typedef std::vector< K, Allocator > _c_o_n_t_a_i_n_e_r___t_y_p_e; │ │ │ │ │ -68 │ │ │ │ │ -_6_9 typedef Allocator _a_l_l_o_c_a_t_o_r___t_y_p_e; │ │ │ │ │ -70 │ │ │ │ │ -_7_2 explicit _D_y_n_a_m_i_c_V_e_c_t_o_r(const _a_l_l_o_c_a_t_o_r___t_y_p_e &a = _a_l_l_o_c_a_t_o_r___t_y_p_e() ) : │ │ │ │ │ -73 _data( a ) │ │ │ │ │ -74 {} │ │ │ │ │ -75 │ │ │ │ │ -_7_6 explicit _D_y_n_a_m_i_c_V_e_c_t_o_r(_s_i_z_e___t_y_p_e n, const _a_l_l_o_c_a_t_o_r___t_y_p_e &a = _a_l_l_o_c_a_t_o_r___t_y_p_e │ │ │ │ │ -() ) : │ │ │ │ │ -77 _data( n, _v_a_l_u_e___t_y_p_e(), a ) │ │ │ │ │ -78 {} │ │ │ │ │ -79 │ │ │ │ │ -_8_1 _D_y_n_a_m_i_c_V_e_c_t_o_r( _s_i_z_e___t_y_p_e n, _v_a_l_u_e___t_y_p_e c, const _a_l_l_o_c_a_t_o_r___t_y_p_e &a = │ │ │ │ │ -_a_l_l_o_c_a_t_o_r___t_y_p_e() ) : │ │ │ │ │ -82 _data( n, c, a ) │ │ │ │ │ -83 {} │ │ │ │ │ -84 │ │ │ │ │ -_8_6 _D_y_n_a_m_i_c_V_e_c_t_o_r (std::initializer_list const &l) : │ │ │ │ │ -87 _data(l) │ │ │ │ │ -88 {} │ │ │ │ │ -89 │ │ │ │ │ -_9_1 _D_y_n_a_m_i_c_V_e_c_t_o_r(const _D_y_n_a_m_i_c_V_e_c_t_o_r & x) : │ │ │ │ │ -92 _B_a_s_e(), _data(x._data) │ │ │ │ │ -93 {} │ │ │ │ │ -94 │ │ │ │ │ -_9_6 _D_y_n_a_m_i_c_V_e_c_t_o_r(_D_y_n_a_m_i_c_V_e_c_t_o_r && x) : │ │ │ │ │ -97 _data(_s_t_d::move(x._data)) │ │ │ │ │ -98 {} │ │ │ │ │ -99 │ │ │ │ │ -100 template< class T > │ │ │ │ │ -_1_0_1 _D_y_n_a_m_i_c_V_e_c_t_o_r(const _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _T_,_ _A_l_l_o_c_a_t_o_r_ _> & x) : │ │ │ │ │ -102 _data(x._b_e_g_i_n(), x._e_n_d(), x.get_allocator()) │ │ │ │ │ -103 {} │ │ │ │ │ -104 │ │ │ │ │ -106 template< class X > │ │ │ │ │ -_1_0_7 _D_y_n_a_m_i_c_V_e_c_t_o_r(const _D_e_n_s_e_V_e_c_t_o_r_<_ _X_ _> & x, const _a_l_l_o_c_a_t_o_r___t_y_p_e &a = │ │ │ │ │ -_a_l_l_o_c_a_t_o_r___t_y_p_e() ) : │ │ │ │ │ -108 _data(a) │ │ │ │ │ -109 { │ │ │ │ │ -110 const _s_i_z_e___t_y_p_e n = x._s_i_z_e(); │ │ │ │ │ -111 _data.reserve(n); │ │ │ │ │ -112 for( _s_i_z_e___t_y_p_e i =0; i │ │ │ │ │ +10 │ │ │ │ │ +11#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ +17namespace _D_u_n_e │ │ │ │ │ +18{ │ │ │ │ │ +47 template │ │ │ │ │ +_4_8 struct _n_u_l_l___d_e_l_e_t_e_r │ │ │ │ │ +49 { │ │ │ │ │ +_5_0 void _o_p_e_r_a_t_o_r_(_)_ (T*) const {} │ │ │ │ │ +51 }; │ │ │ │ │ +52 │ │ │ │ │ +71 template │ │ │ │ │ +_7_2 inline std::shared_ptr _s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r(T & t) │ │ │ │ │ +73 { │ │ │ │ │ +74 return std::shared_ptr(&t, _n_u_l_l___d_e_l_e_t_e_r_<_T_>()); │ │ │ │ │ +75 } │ │ │ │ │ +76 │ │ │ │ │ +77 │ │ │ │ │ +95 template │ │ │ │ │ +_9_6 auto _w_r_a_p___o_r___m_o_v_e(T&& t) │ │ │ │ │ +97 { │ │ │ │ │ +98 return std::make_shared>(std::forward(t)); │ │ │ │ │ +99 } │ │ │ │ │ +100 │ │ │ │ │ +118 template │ │ │ │ │ +_1_1_9 auto _w_r_a_p___o_r___m_o_v_e(T& t) │ │ │ │ │ 120 { │ │ │ │ │ -121 _data = other._data; │ │ │ │ │ -122 return *this; │ │ │ │ │ -123 } │ │ │ │ │ -124 │ │ │ │ │ -_1_2_6 _D_y_n_a_m_i_c_V_e_c_t_o_r &_o_p_e_r_a_t_o_r_=(_D_y_n_a_m_i_c_V_e_c_t_o_r &&other) │ │ │ │ │ -127 { │ │ │ │ │ -128 _data = std::move(other._data); │ │ │ │ │ -129 return *this; │ │ │ │ │ -130 } │ │ │ │ │ -131 │ │ │ │ │ -132 //==== forward some methods of std::vector │ │ │ │ │ -_1_3_7 _s_i_z_e___t_y_p_e _c_a_p_a_c_i_t_y() const │ │ │ │ │ -138 { │ │ │ │ │ -139 return _data.capacity(); │ │ │ │ │ -140 } │ │ │ │ │ -_1_4_1 void _r_e_s_i_z_e (_s_i_z_e___t_y_p_e n, _v_a_l_u_e___t_y_p_e c = _v_a_l_u_e___t_y_p_e() ) │ │ │ │ │ -142 { │ │ │ │ │ -143 _data.resize(n,c); │ │ │ │ │ -144 } │ │ │ │ │ -_1_4_5 void _r_e_s_e_r_v_e (_s_i_z_e___t_y_p_e n) │ │ │ │ │ -146 { │ │ │ │ │ -147 _data.reserve(n); │ │ │ │ │ -148 } │ │ │ │ │ -149 │ │ │ │ │ -150 //==== make this thing a vector │ │ │ │ │ -_1_5_1 _s_i_z_e___t_y_p_e _s_i_z_e() const { return _data.size(); } │ │ │ │ │ -_1_5_2 K & _o_p_e_r_a_t_o_r_[_](_s_i_z_e___t_y_p_e i) { │ │ │ │ │ -153 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(i < _s_i_z_e()); │ │ │ │ │ -154 return _data[i]; │ │ │ │ │ -155 } │ │ │ │ │ -_1_5_6 const K & _o_p_e_r_a_t_o_r_[_](_s_i_z_e___t_y_p_e i) const { │ │ │ │ │ -157 _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(i < _s_i_z_e()); │ │ │ │ │ -158 return _data[i]; │ │ │ │ │ -159 } │ │ │ │ │ -160 │ │ │ │ │ -_1_6_2 K* _d_a_t_a() noexcept │ │ │ │ │ -163 { │ │ │ │ │ -164 return _data.data(); │ │ │ │ │ -165 } │ │ │ │ │ -166 │ │ │ │ │ -_1_6_8 const K* _d_a_t_a() const noexcept │ │ │ │ │ -169 { │ │ │ │ │ -170 return _data.data(); │ │ │ │ │ -171 } │ │ │ │ │ -172 │ │ │ │ │ -_1_7_3 const _c_o_n_t_a_i_n_e_r___t_y_p_e &_c_o_n_t_a_i_n_e_r () const { return _data; } │ │ │ │ │ -_1_7_4 _c_o_n_t_a_i_n_e_r___t_y_p_e &_c_o_n_t_a_i_n_e_r () { return _data; } │ │ │ │ │ -175 }; │ │ │ │ │ -176 │ │ │ │ │ -188 template< class K, class Allocator > │ │ │ │ │ -_1_8_9 inline std::istream &_o_p_e_r_a_t_o_r_>_>_ ( std::istream &in, │ │ │ │ │ -190 _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _> &v ) │ │ │ │ │ -191 { │ │ │ │ │ -192 _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _> w(v); │ │ │ │ │ -193 for( typename _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_:_:_s_i_z_e___t_y_p_e i = 0; i < w._s_i_z_e(); │ │ │ │ │ -++i ) │ │ │ │ │ -194 in >> w[ i ]; │ │ │ │ │ -195 if(in) │ │ │ │ │ -196 v = std::move(w); │ │ │ │ │ -197 return in; │ │ │ │ │ -198 } │ │ │ │ │ -199 │ │ │ │ │ -202} // end namespace │ │ │ │ │ -203 │ │ │ │ │ -204#endif │ │ │ │ │ -_g_e_n_e_r_i_c_i_t_e_r_a_t_o_r_._h_h │ │ │ │ │ -Implements a generic iterator class for writing stl conformant iterators. │ │ │ │ │ -_b_o_u_n_d_s_c_h_e_c_k_i_n_g_._h_h │ │ │ │ │ -Macro for wrapping boundary checks. │ │ │ │ │ -_e_x_c_e_p_t_i_o_n_s_._h_h │ │ │ │ │ -A few common exception classes. │ │ │ │ │ -_d_e_n_s_e_v_e_c_t_o_r_._h_h │ │ │ │ │ -Implements the dense vector interface, with an exchangeable storage class. │ │ │ │ │ -_D_u_n_e_:_:_o_p_e_r_a_t_o_r_>_> │ │ │ │ │ -Stream & operator>>(Stream &stream, std::tuple< Ts... > &t) │ │ │ │ │ -Read a std::tuple. │ │ │ │ │ -DDeeffiinniittiioonn streamoperators.hh:43 │ │ │ │ │ -_D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S │ │ │ │ │ -#define DUNE_ASSERT_BOUNDS(cond) │ │ │ │ │ -If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do │ │ │ │ │ -nothing. │ │ │ │ │ -DDeeffiinniittiioonn boundschecking.hh:30 │ │ │ │ │ -_s_t_d │ │ │ │ │ -STL namespace. │ │ │ │ │ +121 return _s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r(t); │ │ │ │ │ +122 } │ │ │ │ │ +123 │ │ │ │ │ +124} │ │ │ │ │ +125#endif │ │ │ │ │ +_t_y_p_e_t_r_a_i_t_s_._h_h │ │ │ │ │ +Traits for type conversions and type information. │ │ │ │ │ _D_u_n_e │ │ │ │ │ Dune namespace. │ │ │ │ │ DDeeffiinniittiioonn alignedallocator.hh:13 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_V_e_c_t_o_r │ │ │ │ │ -Interface for a class of dense vectors over a given field. │ │ │ │ │ -DDeeffiinniittiioonn densevector.hh:229 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -Traits::value_type value_type │ │ │ │ │ -export the type representing the field │ │ │ │ │ -DDeeffiinniittiioonn densevector.hh:250 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_V_e_c_t_o_r_:_:_b_e_g_i_n │ │ │ │ │ -Iterator begin() │ │ │ │ │ -begin iterator │ │ │ │ │ -DDeeffiinniittiioonn densevector.hh:347 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_V_e_c_t_o_r_:_:_s_i_z_e │ │ │ │ │ -size_type size() const │ │ │ │ │ -size method │ │ │ │ │ -DDeeffiinniittiioonn densevector.hh:336 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_V_e_c_t_o_r_:_:_e_n_d │ │ │ │ │ -Iterator end() │ │ │ │ │ -end iterator │ │ │ │ │ -DDeeffiinniittiioonn densevector.hh:353 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ -Traits::size_type size_type │ │ │ │ │ -The type used for the index access and size operation. │ │ │ │ │ -DDeeffiinniittiioonn densevector.hh:259 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -Construct a vector with a dynamic size. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:59 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_r_e_s_i_z_e │ │ │ │ │ -void resize(size_type n, value_type c=value_type()) │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:141 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(const DynamicVector &x) │ │ │ │ │ -Constructor making vector with identical coordinates. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:91 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ -Base::size_type size_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:64 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_c_o_n_t_a_i_n_e_r___t_y_p_e │ │ │ │ │ -std::vector< K, Allocator > container_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:67 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_s_i_z_e │ │ │ │ │ -size_type size() const │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:151 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_[_] │ │ │ │ │ -K & operator[](size_type i) │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:152 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_c_o_n_t_a_i_n_e_r │ │ │ │ │ -container_type & container() │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:174 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -Base::value_type value_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:65 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_d_a_t_a │ │ │ │ │ -const K * data() const noexcept │ │ │ │ │ -return pointer to underlying array │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:168 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_a_l_l_o_c_a_t_o_r___t_y_p_e │ │ │ │ │ -Allocator allocator_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:69 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(const allocator_type &a=allocator_type()) │ │ │ │ │ -Constructor making uninitialized vector. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:72 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(DynamicVector &&x) │ │ │ │ │ -Move constructor. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:96 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_d_a_t_a │ │ │ │ │ -K * data() noexcept │ │ │ │ │ -return pointer to underlying array │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:162 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ -DynamicVector & operator=(DynamicVector &&other) │ │ │ │ │ -Move assignment operator. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:126 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ -DynamicVector & operator=(const DynamicVector &other) │ │ │ │ │ -Copy assignment operator. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:119 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_c_a_p_a_c_i_t_y │ │ │ │ │ -size_type capacity() const │ │ │ │ │ -Number of elements for which memory has been allocated. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:137 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_c_o_n_t_a_i_n_e_r │ │ │ │ │ -const container_type & container() const │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:173 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(size_type n, const allocator_type &a=allocator_type()) │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:76 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(std::initializer_list< K > const &l) │ │ │ │ │ -Construct from a std::initializer_list. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:86 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(const DynamicVector< T, Allocator > &x) │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:101 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_[_] │ │ │ │ │ -const K & operator[](size_type i) const │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:156 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_r_e_s_e_r_v_e │ │ │ │ │ -void reserve(size_type n) │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:145 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(size_type n, value_type c, const allocator_type &a=allocator_type │ │ │ │ │ -()) │ │ │ │ │ -Constructor making vector with identical coordinates. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:81 │ │ │ │ │ -_D_u_n_e_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r_:_:_D_y_n_a_m_i_c_V_e_c_t_o_r │ │ │ │ │ -DynamicVector(const DenseVector< X > &x, const allocator_type &a=allocator_type │ │ │ │ │ -()) │ │ │ │ │ -Copy constructor from another DenseVector. │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:107 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -K value_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:40 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _>_:_:_d_e_r_i_v_e_d___t_y_p_e │ │ │ │ │ -DynamicVector< K, Allocator > derived_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:38 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _>_:_:_c_o_n_t_a_i_n_e_r___t_y_p_e │ │ │ │ │ -std::vector< K, Allocator > container_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:39 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _>_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ -container_type::size_type size_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:41 │ │ │ │ │ -_D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _>_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ -FieldTraits< K >::real_type real_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:48 │ │ │ │ │ -_D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s_<_ _D_y_n_a_m_i_c_V_e_c_t_o_r_<_ _K_,_ _A_l_l_o_c_a_t_o_r_ _>_ _>_:_:_f_i_e_l_d___t_y_p_e │ │ │ │ │ -FieldTraits< K >::field_type field_type │ │ │ │ │ -DDeeffiinniittiioonn dynvector.hh:47 │ │ │ │ │ -_D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s │ │ │ │ │ -DDeeffiinniittiioonn ftraits.hh:26 │ │ │ │ │ -_D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s_:_:_f_i_e_l_d___t_y_p_e │ │ │ │ │ -T field_type │ │ │ │ │ -export the type representing the field │ │ │ │ │ -DDeeffiinniittiioonn ftraits.hh:28 │ │ │ │ │ -_D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ -T real_type │ │ │ │ │ -export the type representing the real type of the field │ │ │ │ │ -DDeeffiinniittiioonn ftraits.hh:30 │ │ │ │ │ -_D_u_n_e_:_:_D_e_n_s_e_M_a_t_V_e_c_T_r_a_i_t_s │ │ │ │ │ -DDeeffiinniittiioonn matvectraits.hh:31 │ │ │ │ │ +_D_u_n_e_:_:_s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r │ │ │ │ │ +std::shared_ptr< T > stackobject_to_shared_ptr(T &t) │ │ │ │ │ +Create a shared_ptr for a stack-allocated object. │ │ │ │ │ +DDeeffiinniittiioonn shared_ptr.hh:72 │ │ │ │ │ +_D_u_n_e_:_:_w_r_a_p___o_r___m_o_v_e │ │ │ │ │ +auto wrap_or_move(T &&t) │ │ │ │ │ +Capture R-value reference to shared_ptr. │ │ │ │ │ +DDeeffiinniittiioonn shared_ptr.hh:96 │ │ │ │ │ +_D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r │ │ │ │ │ +implements the Deleter concept of shared_ptr without deleting anything │ │ │ │ │ +DDeeffiinniittiioonn shared_ptr.hh:49 │ │ │ │ │ +_D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r_:_:_s_t_a_c_k_o_b_j_e_c_t___t_o___s_h_a_r_e_d___p_t_r │ │ │ │ │ +std::shared_ptr< T > stackobject_to_shared_ptr(T &t) │ │ │ │ │ +Create a shared_ptr for a stack-allocated object. │ │ │ │ │ +DDeeffiinniittiioonn shared_ptr.hh:72 │ │ │ │ │ +_D_u_n_e_:_:_n_u_l_l___d_e_l_e_t_e_r_:_:_o_p_e_r_a_t_o_r_(_) │ │ │ │ │ +void operator()(T *) const │ │ │ │ │ +DDeeffiinniittiioonn shared_ptr.hh:50 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00014.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: filledarray.hh File Reference │ │ │ │ +dune-common: singleton.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,42 +70,41 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -Namespaces | │ │ │ │ -Functions
│ │ │ │ -
filledarray.hh File Reference
│ │ │ │ +Classes | │ │ │ │ +Namespaces
│ │ │ │ +
singleton.hh File Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ -

Utility to generate an array with a certain value. │ │ │ │ +

Useful wrapper for creating singletons. │ │ │ │ More...

│ │ │ │ -
#include <array>
│ │ │ │ -#include <cstddef>
│ │ │ │ +
#include <dune/common/visibility.hh>
│ │ │ │
│ │ │ │

Go to the source code of this file.

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

│ │ │ │ +Classes

class  Dune::Singleton< T >
 An adapter to turn a class into a singleton. More...
 
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

│ │ │ │ Namespaces

namespace  Dune
 Dune namespace.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │

│ │ │ │ -Functions

template<std::size_t n, class T >
constexpr std::array< T, n > Dune::filledArray (const T &t)
 Return an array filled with the provided value.
 
│ │ │ │

Detailed Description

│ │ │ │ -

Utility to generate an array with a certain value.

│ │ │ │ +

Useful wrapper for creating singletons.

│ │ │ │ +

Inspired by the article CodeGuru: A Leak-Free Singleton class

│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,25 +1,24 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -filledarray.hh File Reference │ │ │ │ │ -Utility to generate an array with a certain value. _M_o_r_e_._._. │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ +_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s │ │ │ │ │ +singleton.hh File Reference │ │ │ │ │ +Useful wrapper for creating singletons. _M_o_r_e_._._. │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_v_i_s_i_b_i_l_i_t_y_._h_h> │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ +CCllaasssseess │ │ │ │ │ +class   _D_u_n_e_:_:_S_i_n_g_l_e_t_o_n_<_ _T_ _> │ │ │ │ │ +  An adapter to turn a class into a singleton. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _D_u_n_e │ │ │ │ │   _D_u_n_e namespace. │ │ │ │ │   │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ -constexpr std::array< T, n >  _D_u_n_e_:_:_f_i_l_l_e_d_A_r_r_a_y (const T &t) │ │ │ │ │ -  Return an array filled with the provided value. │ │ │ │ │ -  │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -Utility to generate an array with a certain value. │ │ │ │ │ +Useful wrapper for creating singletons. │ │ │ │ │ +Inspired by the article _C_o_d_e_G_u_r_u_:_ _A_ _L_e_a_k_-_F_r_e_e_ _S_i_n_g_l_e_t_o_n_ _c_l_a_s_s │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: filledarray.hh Source File │ │ │ │ +dune-common: singleton.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,48 +74,62 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
filledarray.hh
│ │ │ │ +
singleton.hh
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ -
5
│ │ │ │ -
6#ifndef DUNE_COMMON_FILLED_ARRAY_HH
│ │ │ │ -
7#define DUNE_COMMON_FILLED_ARRAY_HH
│ │ │ │ -
8
│ │ │ │ -
13#include <array>
│ │ │ │ -
14#include <cstddef>
│ │ │ │ -
15
│ │ │ │ -
16namespace Dune
│ │ │ │ -
17{
│ │ │ │ -
24
│ │ │ │ -
32 template<std::size_t n, class T>
│ │ │ │ -
│ │ │ │ -
33 constexpr std::array<T, n> filledArray(const T& t)
│ │ │ │ -
34 {
│ │ │ │ -
35 std::array<T, n> arr{};
│ │ │ │ -
36 // this is constexpr in c++17, `arr.fill(t)` is not
│ │ │ │ -
37 for(auto &el : arr)
│ │ │ │ -
38 el = t;
│ │ │ │ -
39 return arr;
│ │ │ │ -
40 }
│ │ │ │ -
│ │ │ │ -
41
│ │ │ │ -
44} // end namespace Dune
│ │ │ │ -
45
│ │ │ │ -
46#endif // DUNE_COMMON_FILLED_ARRAY_HH
│ │ │ │ -
constexpr std::array< T, n > filledArray(const T &t)
Return an array filled with the provided value.
Definition filledarray.hh:33
│ │ │ │ +
5#ifndef DUNE_SINGLETON_HH
│ │ │ │ +
6#define DUNE_SINGLETON_HH
│ │ │ │ +
7
│ │ │ │ + │ │ │ │ +
9
│ │ │ │ +
17namespace Dune
│ │ │ │ +
18{
│ │ │ │ +
54 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
56 {
│ │ │ │ +
57 protected:
│ │ │ │ +
58 /* @brief Protected constructor. */
│ │ │ │ +
59 Singleton() = default;
│ │ │ │ +
60
│ │ │ │ +
61 public:
│ │ │ │ +
62
│ │ │ │ +
63 Singleton(const Singleton&) = delete;
│ │ │ │ +
64 void operator=(const Singleton&) = delete;
│ │ │ │ +
65
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
71 {
│ │ │ │ +
72 static T instance_;
│ │ │ │ +
73 return instance_;
│ │ │ │ +
74 }
│ │ │ │ +
│ │ │ │ +
75 };
│ │ │ │ +
│ │ │ │ +
76
│ │ │ │ +
77} // namespace Dune
│ │ │ │ +
78
│ │ │ │ +
79#endif
│ │ │ │ +
Definition of macros controlling symbol visibility at the ABI level.
│ │ │ │ +
#define DUNE_EXPORT
Export a symbol as part of the public ABI.
Definition visibility.hh:20
│ │ │ │
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ +
An adapter to turn a class into a singleton.
Definition singleton.hh:56
│ │ │ │ +
Singleton()=default
│ │ │ │ +
Singleton(const Singleton &)=delete
│ │ │ │ +
void operator=(const Singleton &)=delete
│ │ │ │ +
static DUNE_EXPORT T & instance()
Get the instance of the singleton.
Definition singleton.hh:70
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,45 +1,66 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -filledarray.hh │ │ │ │ │ +singleton.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ 2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ -5 │ │ │ │ │ -6#ifndef DUNE_COMMON_FILLED_ARRAY_HH │ │ │ │ │ -7#define DUNE_COMMON_FILLED_ARRAY_HH │ │ │ │ │ -8 │ │ │ │ │ -13#include │ │ │ │ │ -14#include │ │ │ │ │ -15 │ │ │ │ │ -16namespace _D_u_n_e │ │ │ │ │ -17{ │ │ │ │ │ -24 │ │ │ │ │ -32 template │ │ │ │ │ -_3_3 constexpr std::array _f_i_l_l_e_d_A_r_r_a_y(const T& t) │ │ │ │ │ -34 { │ │ │ │ │ -35 std::array arr{}; │ │ │ │ │ -36 // this is constexpr in c++17, `arr.fill(t)` is not │ │ │ │ │ -37 for(auto &el : arr) │ │ │ │ │ -38 el = t; │ │ │ │ │ -39 return arr; │ │ │ │ │ -40 } │ │ │ │ │ -41 │ │ │ │ │ -44} // end namespace Dune │ │ │ │ │ -45 │ │ │ │ │ -46#endif // DUNE_COMMON_FILLED_ARRAY_HH │ │ │ │ │ -_D_u_n_e_:_:_f_i_l_l_e_d_A_r_r_a_y │ │ │ │ │ -constexpr std::array< T, n > filledArray(const T &t) │ │ │ │ │ -Return an array filled with the provided value. │ │ │ │ │ -DDeeffiinniittiioonn filledarray.hh:33 │ │ │ │ │ +5#ifndef DUNE_SINGLETON_HH │ │ │ │ │ +6#define DUNE_SINGLETON_HH │ │ │ │ │ +7 │ │ │ │ │ +8#include <_d_u_n_e_/_c_o_m_m_o_n_/_v_i_s_i_b_i_l_i_t_y_._h_h> │ │ │ │ │ +9 │ │ │ │ │ +17namespace _D_u_n_e │ │ │ │ │ +18{ │ │ │ │ │ +54 template │ │ │ │ │ +_5_5 class _S_i_n_g_l_e_t_o_n │ │ │ │ │ +56 { │ │ │ │ │ +57 protected: │ │ │ │ │ +58 /* @brief Protected constructor. */ │ │ │ │ │ +_5_9 _S_i_n_g_l_e_t_o_n() = default; │ │ │ │ │ +60 │ │ │ │ │ +61 public: │ │ │ │ │ +62 │ │ │ │ │ +_6_3 _S_i_n_g_l_e_t_o_n(const _S_i_n_g_l_e_t_o_n&) = delete; │ │ │ │ │ +_6_4 void _o_p_e_r_a_t_o_r_=(const _S_i_n_g_l_e_t_o_n&) = delete; │ │ │ │ │ +65 │ │ │ │ │ +_7_0 _D_U_N_E___E_X_P_O_R_T static T& _i_n_s_t_a_n_c_e() │ │ │ │ │ +71 { │ │ │ │ │ +72 static T instance_; │ │ │ │ │ +73 return instance_; │ │ │ │ │ +74 } │ │ │ │ │ +75 }; │ │ │ │ │ +76 │ │ │ │ │ +77} // namespace Dune │ │ │ │ │ +78 │ │ │ │ │ +79#endif │ │ │ │ │ +_v_i_s_i_b_i_l_i_t_y_._h_h │ │ │ │ │ +Definition of macros controlling symbol visibility at the ABI level. │ │ │ │ │ +_D_U_N_E___E_X_P_O_R_T │ │ │ │ │ +#define DUNE_EXPORT │ │ │ │ │ +Export a symbol as part of the public ABI. │ │ │ │ │ +DDeeffiinniittiioonn visibility.hh:20 │ │ │ │ │ _D_u_n_e │ │ │ │ │ Dune namespace. │ │ │ │ │ DDeeffiinniittiioonn alignedallocator.hh:13 │ │ │ │ │ +_D_u_n_e_:_:_S_i_n_g_l_e_t_o_n │ │ │ │ │ +An adapter to turn a class into a singleton. │ │ │ │ │ +DDeeffiinniittiioonn singleton.hh:56 │ │ │ │ │ +_D_u_n_e_:_:_S_i_n_g_l_e_t_o_n_:_:_S_i_n_g_l_e_t_o_n │ │ │ │ │ +Singleton()=default │ │ │ │ │ +_D_u_n_e_:_:_S_i_n_g_l_e_t_o_n_:_:_S_i_n_g_l_e_t_o_n │ │ │ │ │ +Singleton(const Singleton &)=delete │ │ │ │ │ +_D_u_n_e_:_:_S_i_n_g_l_e_t_o_n_:_:_o_p_e_r_a_t_o_r_= │ │ │ │ │ +void operator=(const Singleton &)=delete │ │ │ │ │ +_D_u_n_e_:_:_S_i_n_g_l_e_t_o_n_:_:_i_n_s_t_a_n_c_e │ │ │ │ │ +static DUNE_EXPORT T & instance() │ │ │ │ │ +Get the instance of the singleton. │ │ │ │ │ +DDeeffiinniittiioonn singleton.hh:70 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00017.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: tuplevector.hh File Reference │ │ │ │ +dune-common: keywords.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,52 +70,63 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ -Classes | │ │ │ │ -Namespaces | │ │ │ │ -Functions
│ │ │ │ -
tuplevector.hh File Reference
│ │ │ │ +Macros
│ │ │ │ +
keywords.hh File Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ -

Provides the TupleVector class that augments std::tuple by operator[]. │ │ │ │ +

Definitions of several macros that conditionally make C++ syntax available. │ │ │ │ More...

│ │ │ │ -
#include <tuple>
│ │ │ │ -#include <utility>
│ │ │ │ -#include <dune/common/indices.hh>
│ │ │ │ -#include <dune/common/typetraits.hh>
│ │ │ │ -#include <dune/common/std/type_traits.hh>
│ │ │ │ -
│ │ │ │ + │ │ │ │

Go to the source code of this file.

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

│ │ │ │ -Classes

class  Dune::TupleVector< T >
 A class augmenting std::tuple by element access via operator[]. More...
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Namespaces

namespace  Dune
 Dune namespace.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ -Functions

template<class... T>
constexpr auto Dune::makeTupleVector (T &&... t)
 

│ │ │ │ +Macros

#define DUNE_INLINE_VARIABLE   inline
 
#define DUNE_GENERALIZED_CONSTEXPR   constexpr
 
│ │ │ │

Detailed Description

│ │ │ │ -

Provides the TupleVector class that augments std::tuple by operator[].

│ │ │ │ -
Author
Carsten Gräser
│ │ │ │ -
│ │ │ │ +

Definitions of several macros that conditionally make C++ syntax available.

│ │ │ │ +

This header contains several macros that enable C++ features depending on your compiler. Most of these features are optional and provide additional functionality like making code constexpr.

│ │ │ │ +

Macro Definition Documentation

│ │ │ │ + │ │ │ │ +

◆ DUNE_GENERALIZED_CONSTEXPR

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define DUNE_GENERALIZED_CONSTEXPR   constexpr
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ +

◆ DUNE_INLINE_VARIABLE

│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
#define DUNE_INLINE_VARIABLE   inline
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
│ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── encoding │ │ │ │ │ @@ -1 +1 @@ │ │ │ │ │ -utf-8 │ │ │ │ │ +us-ascii │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,33 +1,29 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -tuplevector.hh File Reference │ │ │ │ │ -Provides the TupleVector class that augments std::tuple by operator[]. _M_o_r_e_._._. │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include <_d_u_n_e_/_c_o_m_m_o_n_/_i_n_d_i_c_e_s_._h_h> │ │ │ │ │ -#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ -#include <_d_u_n_e_/_c_o_m_m_o_n_/_s_t_d_/_t_y_p_e___t_r_a_i_t_s_._h_h> │ │ │ │ │ +_M_a_c_r_o_s │ │ │ │ │ +keywords.hh File Reference │ │ │ │ │ +_C_o_m_m_o_n » _U_t_i_l_i_t_i_e_s » _C_+_+_ _u_t_i_l_i_t_i_e_s_ _a_n_d_ _b_a_c_k_p_o_r_t_s │ │ │ │ │ +Definitions of several macros that conditionally make C++ syntax available. │ │ │ │ │ +_M_o_r_e_._._. │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -CCllaasssseess │ │ │ │ │ -class   _D_u_n_e_:_:_T_u_p_l_e_V_e_c_t_o_r_<_ _T_ _> │ │ │ │ │ -  A class augmenting std::tuple by element access via operator[]. _M_o_r_e_._._. │ │ │ │ │ +MMaaccrrooss │ │ │ │ │ +#define  _D_U_N_E___I_N_L_I_N_E___V_A_R_I_A_B_L_E   inline │ │ │ │ │   │ │ │ │ │ -NNaammeessppaacceess │ │ │ │ │ -namespace   _D_u_n_e │ │ │ │ │ -  _D_u_n_e namespace. │ │ │ │ │ -  │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ -constexpr auto  _D_u_n_e_:_:_m_a_k_e_T_u_p_l_e_V_e_c_t_o_r (T &&... t) │ │ │ │ │ +#define  _D_U_N_E___G_E_N_E_R_A_L_I_Z_E_D___C_O_N_S_T_E_X_P_R   constexpr │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -Provides the TupleVector class that augments std::tuple by operator[]. │ │ │ │ │ - Author │ │ │ │ │ - Carsten Gräser │ │ │ │ │ +Definitions of several macros that conditionally make C++ syntax available. │ │ │ │ │ +This header contains several macros that enable C++ features depending on your │ │ │ │ │ +compiler. Most of these features are optional and provide additional │ │ │ │ │ +functionality like making code constexpr. │ │ │ │ │ +********** MMaaccrroo DDeeffiinniittiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ +********** _?◆_? DDUUNNEE__GGEENNEERRAALLIIZZEEDD__CCOONNSSTTEEXXPPRR ********** │ │ │ │ │ +#define DUNE_GENERALIZED_CONSTEXPR   constexpr │ │ │ │ │ +********** _?◆_? DDUUNNEE__IINNLLIINNEE__VVAARRIIAABBLLEE ********** │ │ │ │ │ +#define DUNE_INLINE_VARIABLE   inline │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: tuplevector.hh Source File │ │ │ │ +dune-common: keywords.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,120 +74,39 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
tuplevector.hh
│ │ │ │ +
keywords.hh
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │ -
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │ -
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │ -
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ -
5#ifndef DUNE_COMMON_TUPLEVECTOR_HH
│ │ │ │ -
6#define DUNE_COMMON_TUPLEVECTOR_HH
│ │ │ │ -
7
│ │ │ │ -
8#include <tuple>
│ │ │ │ -
9#include <utility>
│ │ │ │ -
10
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
14
│ │ │ │ -
15
│ │ │ │ -
16
│ │ │ │ -
23namespace Dune
│ │ │ │ -
24{
│ │ │ │ -
25
│ │ │ │ -
26
│ │ │ │ +Go to the documentation of this file.
1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │ +
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ +
3#ifndef DUNE_COMMON_KEYWORDS_HH
│ │ │ │ +
4#define DUNE_COMMON_KEYWORDS_HH
│ │ │ │ +
5
│ │ │ │ +
18#if __cpp_inline_variables >= 201606
│ │ │ │ +
19#define DUNE_INLINE_VARIABLE inline
│ │ │ │ +
20#else
│ │ │ │ +
22
│ │ │ │ +
25#define DUNE_INLINE_VARIABLE
│ │ │ │ +
26#endif
│ │ │ │
27
│ │ │ │ -
33template<class... T>
│ │ │ │ -
│ │ │ │ -
34class TupleVector : public std::tuple<T...>
│ │ │ │ -
35{
│ │ │ │ -
36 using Base = std::tuple<T...>;
│ │ │ │ -
37
│ │ │ │ -
38 template<class... TT>
│ │ │ │ -
39 using TupleConstructorDetector = decltype(Base(std::declval<TT&&>()...));
│ │ │ │ -
40
│ │ │ │ -
41 template<class... TT>
│ │ │ │ -
42 using hasTupleConstructor = Dune::Std::is_detected<TupleConstructorDetector, TT...>;
│ │ │ │ -
43
│ │ │ │ -
44
│ │ │ │ -
45public:
│ │ │ │ -
46
│ │ │ │ -
53 template<class... TT,
│ │ │ │ -
54 std::enable_if_t<hasTupleConstructor<TT...>::value, int> = 0>
│ │ │ │ -
│ │ │ │ -
55 constexpr TupleVector(TT&&... tt) :
│ │ │ │ -
56 Base(std::forward<TT>(tt)...)
│ │ │ │ -
57 {}
│ │ │ │ -
│ │ │ │ -
58
│ │ │ │ -
│ │ │ │ -
61 constexpr TupleVector()
│ │ │ │ -
62 {}
│ │ │ │ -
│ │ │ │ -
63
│ │ │ │ -
66 template<std::size_t i>
│ │ │ │ -
│ │ │ │ -
67 constexpr decltype(auto) operator[](const Dune::index_constant<i>&) const
│ │ │ │ -
68 {
│ │ │ │ -
69 return std::get<i>(*this);
│ │ │ │ -
70 }
│ │ │ │ -
│ │ │ │ -
71
│ │ │ │ -
74 template<std::size_t i>
│ │ │ │ -
│ │ │ │ -
75 decltype(auto) operator[](const Dune::index_constant<i>&)
│ │ │ │ -
76 {
│ │ │ │ -
77 return std::get<i>(*this);
│ │ │ │ -
78 }
│ │ │ │ -
│ │ │ │ -
79
│ │ │ │ -
│ │ │ │ -
81 static constexpr std::size_t size()
│ │ │ │ -
82 {
│ │ │ │ -
83 return std::tuple_size<Base>::value;
│ │ │ │ -
84 }
│ │ │ │ -
│ │ │ │ -
85};
│ │ │ │ -
│ │ │ │ -
86
│ │ │ │ -
87
│ │ │ │ -
88
│ │ │ │ -
89template<class... T>
│ │ │ │ -
│ │ │ │ -
90constexpr auto makeTupleVector(T&&... t)
│ │ │ │ -
91{
│ │ │ │ -
92 // The std::decay_t<T> is is a slight simplification,
│ │ │ │ -
93 // because std::reference_wrapper needs special care.
│ │ │ │ -
94 return TupleVector<std::decay_t<T>...>(std::forward<T>(t)...);
│ │ │ │ -
95}
│ │ │ │ -
│ │ │ │ -
96
│ │ │ │ -
97
│ │ │ │ -
98
│ │ │ │ -
99} // namespace Dune
│ │ │ │ -
100
│ │ │ │ -
101#endif // DUNE_COMMON_TUPLEVECTOR_HH
│ │ │ │ -
Traits for type conversions and type information.
│ │ │ │ - │ │ │ │ - │ │ │ │ -
std::integral_constant< std::size_t, i > index_constant
An index constant with value i.
Definition indices.hh:30
│ │ │ │ -
typename detected_or< nonesuch, Op, Args... >::value_t is_detected
Detects whether Op<Args...> is valid.
Definition type_traits.hh:141
│ │ │ │ -
STL namespace.
│ │ │ │ -
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ -
constexpr auto makeTupleVector(T &&... t)
Definition tuplevector.hh:90
│ │ │ │ -
A class augmenting std::tuple by element access via operator[].
Definition tuplevector.hh:35
│ │ │ │ -
static constexpr std::size_t size()
Number of elements of the tuple.
Definition tuplevector.hh:81
│ │ │ │ -
constexpr TupleVector(TT &&... tt)
Construct from a set of arguments.
Definition tuplevector.hh:55
│ │ │ │ -
constexpr TupleVector()
Default constructor.
Definition tuplevector.hh:61
│ │ │ │ +
28
│ │ │ │ +
29#if __cpp_constexpr >= 201304
│ │ │ │ +
30#define DUNE_GENERALIZED_CONSTEXPR constexpr
│ │ │ │ +
31#else
│ │ │ │ +
33
│ │ │ │ +
36#define DUNE_GENERALIZED_CONSTEXPR
│ │ │ │ +
37#endif
│ │ │ │ +
38
│ │ │ │ +
39
│ │ │ │ +
40#endif // DUNE_COMMON_KEYWORDS_HH
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,124 +1,33 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -tuplevector.hh │ │ │ │ │ +keywords.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ -2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ -3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ +1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ -4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ -5#ifndef DUNE_COMMON_TUPLEVECTOR_HH │ │ │ │ │ -6#define DUNE_COMMON_TUPLEVECTOR_HH │ │ │ │ │ -7 │ │ │ │ │ -8#include │ │ │ │ │ -9#include │ │ │ │ │ -10 │ │ │ │ │ -11#include <_d_u_n_e_/_c_o_m_m_o_n_/_i_n_d_i_c_e_s_._h_h> │ │ │ │ │ -12#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ -13#include <_d_u_n_e_/_c_o_m_m_o_n_/_s_t_d_/_t_y_p_e___t_r_a_i_t_s_._h_h> │ │ │ │ │ -14 │ │ │ │ │ -15 │ │ │ │ │ -16 │ │ │ │ │ -23namespace _D_u_n_e │ │ │ │ │ -24{ │ │ │ │ │ -25 │ │ │ │ │ -26 │ │ │ │ │ +2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ +3#ifndef DUNE_COMMON_KEYWORDS_HH │ │ │ │ │ +4#define DUNE_COMMON_KEYWORDS_HH │ │ │ │ │ +5 │ │ │ │ │ +18#if __cpp_inline_variables >= 201606 │ │ │ │ │ +_1_9#define DUNE_INLINE_VARIABLE inline │ │ │ │ │ +20#else │ │ │ │ │ +22 │ │ │ │ │ +25#define DUNE_INLINE_VARIABLE │ │ │ │ │ +26#endif │ │ │ │ │ 27 │ │ │ │ │ -33template │ │ │ │ │ -_3_4class _T_u_p_l_e_V_e_c_t_o_r : public std::tuple │ │ │ │ │ -35{ │ │ │ │ │ -36 using Base = std::tuple; │ │ │ │ │ -37 │ │ │ │ │ -38 template │ │ │ │ │ -39 using TupleConstructorDetector = decltype(Base(std::declval()...)); │ │ │ │ │ -40 │ │ │ │ │ -41 template │ │ │ │ │ -42 using hasTupleConstructor = _D_u_n_e_:_:_S_t_d_:_:_i_s___d_e_t_e_c_t_e_d; │ │ │ │ │ -43 │ │ │ │ │ -44 │ │ │ │ │ -45public: │ │ │ │ │ -46 │ │ │ │ │ -53 template::value, int> = 0> │ │ │ │ │ -_5_5 constexpr _T_u_p_l_e_V_e_c_t_o_r(TT&&... tt) : │ │ │ │ │ -56 Base(_s_t_d::forward(tt)...) │ │ │ │ │ -57 {} │ │ │ │ │ -58 │ │ │ │ │ -_6_1 constexpr _T_u_p_l_e_V_e_c_t_o_r() │ │ │ │ │ -62 {} │ │ │ │ │ -63 │ │ │ │ │ -66 template │ │ │ │ │ -_6_7 constexpr decltype(auto) operator[](const _D_u_n_e_:_:_i_n_d_e_x___c_o_n_s_t_a_n_t_<_i_>&) const │ │ │ │ │ -68 { │ │ │ │ │ -69 return std::get(*this); │ │ │ │ │ -70 } │ │ │ │ │ -71 │ │ │ │ │ -74 template │ │ │ │ │ -_7_5 decltype(auto) operator[](const _D_u_n_e_:_:_i_n_d_e_x___c_o_n_s_t_a_n_t_<_i_>&) │ │ │ │ │ -76 { │ │ │ │ │ -77 return std::get(*this); │ │ │ │ │ -78 } │ │ │ │ │ -79 │ │ │ │ │ -_8_1 static constexpr std::size_t _s_i_z_e() │ │ │ │ │ -82 { │ │ │ │ │ -83 return std::tuple_size::value; │ │ │ │ │ -84 } │ │ │ │ │ -85}; │ │ │ │ │ -86 │ │ │ │ │ -87 │ │ │ │ │ -88 │ │ │ │ │ -89template │ │ │ │ │ -_9_0constexpr auto _m_a_k_e_T_u_p_l_e_V_e_c_t_o_r(T&&... t) │ │ │ │ │ -91{ │ │ │ │ │ -92 // The std::decay_t is is a slight simplification, │ │ │ │ │ -93 // because std::reference_wrapper needs special care. │ │ │ │ │ -94 return _T_u_p_l_e_V_e_c_t_o_r_<_s_t_d_:_:_d_e_c_a_y___t_<_T_>...>(std::forward(t)...); │ │ │ │ │ -95} │ │ │ │ │ -96 │ │ │ │ │ -97 │ │ │ │ │ -98 │ │ │ │ │ -99} // namespace Dune │ │ │ │ │ -100 │ │ │ │ │ -101#endif // DUNE_COMMON_TUPLEVECTOR_HH │ │ │ │ │ -_t_y_p_e_t_r_a_i_t_s_._h_h │ │ │ │ │ -Traits for type conversions and type information. │ │ │ │ │ -_t_y_p_e___t_r_a_i_t_s_._h_h │ │ │ │ │ -_i_n_d_i_c_e_s_._h_h │ │ │ │ │ -_D_u_n_e_:_:_i_n_d_e_x___c_o_n_s_t_a_n_t │ │ │ │ │ -std::integral_constant< std::size_t, i > index_constant │ │ │ │ │ -An index constant with value i. │ │ │ │ │ -DDeeffiinniittiioonn indices.hh:30 │ │ │ │ │ -_D_u_n_e_:_:_S_t_d_:_:_i_s___d_e_t_e_c_t_e_d │ │ │ │ │ -typename detected_or< nonesuch, Op, Args... >::value_t is_detected │ │ │ │ │ -Detects whether Op is valid. │ │ │ │ │ -DDeeffiinniittiioonn type_traits.hh:141 │ │ │ │ │ -_s_t_d │ │ │ │ │ -STL namespace. │ │ │ │ │ -_D_u_n_e │ │ │ │ │ -Dune namespace. │ │ │ │ │ -DDeeffiinniittiioonn alignedallocator.hh:13 │ │ │ │ │ -_D_u_n_e_:_:_m_a_k_e_T_u_p_l_e_V_e_c_t_o_r │ │ │ │ │ -constexpr auto makeTupleVector(T &&... t) │ │ │ │ │ -DDeeffiinniittiioonn tuplevector.hh:90 │ │ │ │ │ -_D_u_n_e_:_:_T_u_p_l_e_V_e_c_t_o_r │ │ │ │ │ -A class augmenting std::tuple by element access via operator[]. │ │ │ │ │ -DDeeffiinniittiioonn tuplevector.hh:35 │ │ │ │ │ -_D_u_n_e_:_:_T_u_p_l_e_V_e_c_t_o_r_:_:_s_i_z_e │ │ │ │ │ -static constexpr std::size_t size() │ │ │ │ │ -Number of elements of the tuple. │ │ │ │ │ -DDeeffiinniittiioonn tuplevector.hh:81 │ │ │ │ │ -_D_u_n_e_:_:_T_u_p_l_e_V_e_c_t_o_r_:_:_T_u_p_l_e_V_e_c_t_o_r │ │ │ │ │ -constexpr TupleVector(TT &&... tt) │ │ │ │ │ -Construct from a set of arguments. │ │ │ │ │ -DDeeffiinniittiioonn tuplevector.hh:55 │ │ │ │ │ -_D_u_n_e_:_:_T_u_p_l_e_V_e_c_t_o_r_:_:_T_u_p_l_e_V_e_c_t_o_r │ │ │ │ │ -constexpr TupleVector() │ │ │ │ │ -Default constructor. │ │ │ │ │ -DDeeffiinniittiioonn tuplevector.hh:61 │ │ │ │ │ +28 │ │ │ │ │ +29#if __cpp_constexpr >= 201304 │ │ │ │ │ +_3_0#define DUNE_GENERALIZED_CONSTEXPR constexpr │ │ │ │ │ +31#else │ │ │ │ │ +33 │ │ │ │ │ +36#define DUNE_GENERALIZED_CONSTEXPR │ │ │ │ │ +37#endif │ │ │ │ │ +38 │ │ │ │ │ +39 │ │ │ │ │ +40#endif // DUNE_COMMON_KEYWORDS_HH │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00020.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: debugalign.cc File Reference │ │ │ │ +dune-common: quadmath.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -69,47 +69,19 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
│ │ │ │ -Namespaces | │ │ │ │ -Functions
│ │ │ │ -
debugalign.cc File Reference
│ │ │ │ +
quadmath.hh File Reference
│ │ │ │
│ │ │ │
│ │ │ │ -
#include <config.h>
│ │ │ │ -#include <cstddef>
│ │ │ │ -#include <cstdlib>
│ │ │ │ -#include <functional>
│ │ │ │ -#include <ios>
│ │ │ │ -#include <iostream>
│ │ │ │ -#include <utility>
│ │ │ │ -#include <dune/common/debugalign.hh>
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Namespaces

namespace  Dune
 Dune namespace.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Functions

static void Dune::defaultViolatedAlignment (const char *className, std::size_t expectedAlignment, const void *address)
 default alignment violation handler
 
ViolatedAlignmentHandlerDune::violatedAlignmentHandler ()
 access the handler called by violatedAlignment()
 
void Dune::violatedAlignment (const char *className, std::size_t expectedAlignment, const void *address)
 called when an alignment violation is detected
 
│ │ │ │ + │ │ │ │ +

Go to the source code of this file.

│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,35 +1,10 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -debugalign.cc File Reference │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include <_d_u_n_e_/_c_o_m_m_o_n_/_d_e_b_u_g_a_l_i_g_n_._h_h> │ │ │ │ │ -NNaammeessppaacceess │ │ │ │ │ -namespace   _D_u_n_e │ │ │ │ │ -  _D_u_n_e namespace. │ │ │ │ │ -  │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ - static void  _D_u_n_e_:_:_d_e_f_a_u_l_t_V_i_o_l_a_t_e_d_A_l_i_g_n_m_e_n_t (const char │ │ │ │ │ - *_c_l_a_s_s_N_a_m_e, std::size_t expectedAlignment, const │ │ │ │ │ - void *address) │ │ │ │ │ -  default alignment violation handler │ │ │ │ │ -  │ │ │ │ │ -_V_i_o_l_a_t_e_d_A_l_i_g_n_m_e_n_t_H_a_n_d_l_e_r &  _D_u_n_e_:_:_v_i_o_l_a_t_e_d_A_l_i_g_n_m_e_n_t_H_a_n_d_l_e_r () │ │ │ │ │ -  access the handler called by _v_i_o_l_a_t_e_d_A_l_i_g_n_m_e_n_t_(_) │ │ │ │ │ -  │ │ │ │ │ - void  _D_u_n_e_:_:_v_i_o_l_a_t_e_d_A_l_i_g_n_m_e_n_t (const char *_c_l_a_s_s_N_a_m_e, │ │ │ │ │ - std::size_t expectedAlignment, const void *address) │ │ │ │ │ -  called when an alignment violation is detected │ │ │ │ │ -  │ │ │ │ │ +quadmath.hh File Reference │ │ │ │ │ +_G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00023.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: poolallocator.hh File Reference │ │ │ │ +dune-common: dotproduct.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -73,83 +73,52 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Classes | │ │ │ │ Namespaces | │ │ │ │ Functions
│ │ │ │ -
poolallocator.hh File Reference
│ │ │ │ +
dotproduct.hh File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ -

An stl-compliant pool allocator. │ │ │ │ +

Provides the functions dot(a,b) := $a^H \cdot b $ and dotT(a,b) := $a^T \cdot b $. │ │ │ │ More...

│ │ │ │ -
#include <numeric>
│ │ │ │ -#include <typeinfo>
│ │ │ │ -#include <iostream>
│ │ │ │ -#include <cassert>
│ │ │ │ -#include <new>
│ │ │ │ +
#include "ftraits.hh"
│ │ │ │ +#include "typetraits.hh"
│ │ │ │
│ │ │ │

Go to the source code of this file.

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

│ │ │ │ Classes

class  Dune::Pool< T, s >
 A memory pool of objects. More...
struct  Dune::IsVector< T, class >
 
class  Dune::PoolAllocator< T, s >
 An allocator managing a pool of objects for reuse. More...
 
struct  Dune::PoolAllocator< T, s >::rebind< U >
 Rebind the allocator to another type. More...
 
class  Dune::PoolAllocator< void, s >
 
struct  Dune::PoolAllocator< void, s >::rebind< U >
struct  Dune::IsVector< T, std::void_t< typename T::field_type > >
 
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │

│ │ │ │ Namespaces

namespace  Dune
 Dune namespace.
 
namespace  std
 STL namespace.
 
│ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ Functions

template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator== (const PoolAllocator< T1, t1 > &, const PoolAllocator< T2, t2 > &)
 
template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator!= (const PoolAllocator< T1, t1 > &, const PoolAllocator< T2, t2 > &)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< T, t1 > &p1, const PoolAllocator< T, t2 > &p2)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< T, t1 > &p1, const PoolAllocator< T, t2 > &p2)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< void, t1 > &, const PoolAllocator< T, t2 > &)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< void, t1 > &, const PoolAllocator< T, t2 > &)
 
template<std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< void, t1 > &p1, const PoolAllocator< void, t2 > &p2)
 
template<std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< void, t1 > &p1, const PoolAllocator< void, t2 > &p2)
 
template<class A , class B >
auto Dune::dot (const A &a, const B &b) -> typename std::enable_if< IsNumber< A >::value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >::field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a) *b)>::type
 computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,b) := std::conj(a)*b
 
template<class A , class B >
auto Dune::dotT (const A &a, const B &b) -> decltype(a *b)
 Computes an indefinite vector dot product for fundamental data types according to Petsc's VectTDot function: dotT(a,b) := a*b.
 
│ │ │ │

Detailed Description

│ │ │ │ -

An stl-compliant pool allocator.

│ │ │ │ -

This file implements the classes Pool and PoolAllocator providing memory allocation for objects in chunks.

Author
Markus Blatt
│ │ │ │ +

Provides the functions dot(a,b) := $a^H \cdot b $ and dotT(a,b) := $a^T \cdot b $.

│ │ │ │ +

The provided dot products dot,dotT are used to compute (indefinite) dot products for fundamental types as well as DUNE vector types, such as DenseVector, FieldVector, ISTLVector. Note that the definition of dot(a,b) conjugates the first argument. This agrees with the behaviour of Matlab and Petsc, but not with BLAS.

Author
Jö Fahlke, Matthias Wohlmuth
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── encoding │ │ │ │ │ @@ -1 +1 @@ │ │ │ │ │ -us-ascii │ │ │ │ │ +utf-8 │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,77 +1,48 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ _C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -poolallocator.hh File Reference │ │ │ │ │ -An stl-compliant pool allocator. _M_o_r_e_._._. │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ -#include │ │ │ │ │ +dotproduct.hh File Reference │ │ │ │ │ +Provides the functions dot(a,b) := [$a^H \cdot b $]and dotT(a,b) := [$a^T \cdot │ │ │ │ │ +b $]. _M_o_r_e_._._. │ │ │ │ │ +#include "_f_t_r_a_i_t_s_._h_h" │ │ │ │ │ +#include "_t_y_p_e_t_r_a_i_t_s_._h_h" │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ CCllaasssseess │ │ │ │ │ - class   _D_u_n_e_:_:_P_o_o_l_<_ _T_,_ _s_ _> │ │ │ │ │ -  A memory pool of objects. _M_o_r_e_._._. │ │ │ │ │ +struct   _D_u_n_e_:_:_I_s_V_e_c_t_o_r_<_ _T_,_ _c_l_a_s_s_ _> │ │ │ │ │   │ │ │ │ │ - class   _D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _T_,_ _s_ _> │ │ │ │ │ -  An allocator managing a pool of objects for reuse. _M_o_r_e_._._. │ │ │ │ │ -  │ │ │ │ │ -struct   _D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _T_,_ _s_ _>_:_:_r_e_b_i_n_d_<_ _U_ _> │ │ │ │ │ -  Rebind the allocator to another type. _M_o_r_e_._._. │ │ │ │ │ -  │ │ │ │ │ - class   _D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _v_o_i_d_,_ _s_ _> │ │ │ │ │ -  │ │ │ │ │ -struct   _D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _v_o_i_d_,_ _s_ _>_:_:_r_e_b_i_n_d_<_ _U_ _> │ │ │ │ │ +struct   _D_u_n_e_:_:_I_s_V_e_c_t_o_r_<_ _T_,_ _s_t_d_:_:_v_o_i_d___t_<_ _t_y_p_e_n_a_m_e_ _T_:_:_f_i_e_l_d___t_y_p_e_ _>_ _> │ │ │ │ │   │ │ │ │ │ NNaammeessppaacceess │ │ │ │ │ namespace   _D_u_n_e │ │ │ │ │   _D_u_n_e namespace. │ │ │ │ │   │ │ │ │ │ -namespace   _s_t_d │ │ │ │ │ -  STL namespace. │ │ │ │ │ -  │ │ │ │ │ FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_=_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< T1, t1 > &, const _P_o_o_l_A_l_l_o_c_a_t_o_r< │ │ │ │ │ - T2, t2 > &) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_!_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< T1, t1 > &, const _P_o_o_l_A_l_l_o_c_a_t_o_r< │ │ │ │ │ - T2, t2 > &) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_=_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< T, t1 > &p1, const _P_o_o_l_A_l_l_o_c_a_t_o_r< │ │ │ │ │ - T, t2 > &p2) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_!_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< T, t1 > &p1, const _P_o_o_l_A_l_l_o_c_a_t_o_r< │ │ │ │ │ - T, t2 > &p2) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_=_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< void, t1 > &, const _P_o_o_l_A_l_l_o_c_a_t_o_r< │ │ │ │ │ - T, t2 > &) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_!_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< void, t1 > &, const _P_o_o_l_A_l_l_o_c_a_t_o_r< │ │ │ │ │ - T, t2 > &) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_=_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< void, t1 > &p1, const │ │ │ │ │ - _P_o_o_l_A_l_l_o_c_a_t_o_r< void, t2 > &p2) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_o_p_e_r_a_t_o_r_!_= (const _P_o_o_l_A_l_l_o_c_a_t_o_r< void, t1 > &p1, const │ │ │ │ │ - _P_o_o_l_A_l_l_o_c_a_t_o_r< void, t2 > &p2) │ │ │ │ │ +template │ │ │ │ │ +auto  _D_u_n_e_:_:_d_o_t (const A &a, const B &b) -> typename std::enable_if< _I_s_N_u_m_b_e_r< │ │ │ │ │ + A >::value &&!_I_s_V_e_c_t_o_r< A >::value &&!std::is_same< typename _F_i_e_l_d_T_r_a_i_t_s< │ │ │ │ │ + A >::field_type, typename _F_i_e_l_d_T_r_a_i_t_s< A >::real_type > ::value, decltype │ │ │ │ │ + (conj(a) *b)>::type │ │ │ │ │ +  computes the dot product for fundamental data types according to Petsc's │ │ │ │ │ + VectDot function: dot(a,b) := std::conj(a)*b │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ +auto  _D_u_n_e_:_:_d_o_t_T (const A &a, const B &b) -> decltype(a *b) │ │ │ │ │ +  Computes an indefinite vector dot product for fundamental data types │ │ │ │ │ + according to Petsc's VectTDot function: dotT(a,b) := a*b. │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -An stl-compliant pool allocator. │ │ │ │ │ -This file implements the classes Pool and PoolAllocator providing memory │ │ │ │ │ -allocation for objects in chunks. │ │ │ │ │ +Provides the functions dot(a,b) := [$a^H \cdot b $]and dotT(a,b) := [$a^T \cdot │ │ │ │ │ +b $]. │ │ │ │ │ +The provided dot products dot,dotT are used to compute (indefinite) dot │ │ │ │ │ +products for fundamental types as well as DUNE vector types, such as │ │ │ │ │ +DenseVector, FieldVector, ISTLVector. Note that the definition of dot(a,b) │ │ │ │ │ +conjugates the first argument. This agrees with the behaviour of Matlab and │ │ │ │ │ +Petsc, but not with BLAS. │ │ │ │ │ Author │ │ │ │ │ - Markus Blatt │ │ │ │ │ + Jö Fahlke, Matthias Wohlmuth │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: poolallocator.hh Source File │ │ │ │ +dune-common: dotproduct.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,519 +74,81 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
poolallocator.hh
│ │ │ │ +
dotproduct.hh
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ -
5#ifndef DUNE_COMMON_POOLALLOCATOR_HH
│ │ │ │ -
6#define DUNE_COMMON_POOLALLOCATOR_HH
│ │ │ │ +
5#ifndef DUNE_DOTPRODUCT_HH
│ │ │ │ +
6#define DUNE_DOTPRODUCT_HH
│ │ │ │
7
│ │ │ │ -
12#include <numeric>
│ │ │ │ -
13#include <typeinfo>
│ │ │ │ -
14#include <iostream>
│ │ │ │ -
15#include <cassert>
│ │ │ │ -
16#include <new>
│ │ │ │ -
17
│ │ │ │ -
18#ifndef DOXYGEN
│ │ │ │ -
19// forward declarations.
│ │ │ │ -
20// we need to know the test function to declare it friend
│ │ │ │ -
21template<std::size_t size, typename T>
│ │ │ │ -
22struct testPoolMain;
│ │ │ │ -
23#endif
│ │ │ │ -
24
│ │ │ │ -
25namespace Dune
│ │ │ │ -
26{
│ │ │ │ -
27
│ │ │ │ -
28 template<typename T, std::size_t s>
│ │ │ │ -
29 class Pool;
│ │ │ │ -
30
│ │ │ │ -
31 template<typename T, std::size_t s>
│ │ │ │ -
32 class PoolAllocator;
│ │ │ │ -
33
│ │ │ │ -
34}
│ │ │ │ -
35
│ │ │ │ -
36namespace std
│ │ │ │ -
37{
│ │ │ │ -
38 /*
│ │ │ │ -
39 template<class T, std::size_t S>
│ │ │ │ -
40 inline ostream& operator<<(ostream& os, Dune::Pool<T,S>& pool)
│ │ │ │ -
41 {
│ │ │ │ -
42 os<<"pool="<<&pool<<" allocated_="<<pool.allocated_;
│ │ │ │ -
43 return os;
│ │ │ │ -
44 }
│ │ │ │ -
45
│ │ │ │ -
46 template<class T, std::size_t S>
│ │ │ │ -
47 inline ostream& operator<<(ostream& os, Dune::PoolAllocator<T,S>& pool)
│ │ │ │ -
48 {
│ │ │ │ -
49 os<<pool.memoryPool_<<std::endl;
│ │ │ │ -
50 return os;
│ │ │ │ -
51 }
│ │ │ │ -
52 */
│ │ │ │ -
53}
│ │ │ │ -
54
│ │ │ │ -
55
│ │ │ │ -
56namespace Dune
│ │ │ │ -
57{
│ │ │ │ -
88 template<class T, std::size_t s>
│ │ │ │ -
│ │ │ │ -
89 class Pool
│ │ │ │ -
90 {
│ │ │ │ -
91 // make the test function friend
│ │ │ │ -
92 friend struct ::testPoolMain<s,T>;
│ │ │ │ -
93
│ │ │ │ -
94 //friend std::ostream& std::operator<<<>(std::ostream&,Pool<T,s>&);
│ │ │ │ -
95 template< class, std::size_t > friend class PoolAllocator;
│ │ │ │ -
96
│ │ │ │ -
97 private:
│ │ │ │ -
98
│ │ │ │ -
100 struct Reference
│ │ │ │ -
101 {
│ │ │ │ -
102 Reference *next_;
│ │ │ │ -
103 };
│ │ │ │ -
104
│ │ │ │ -
105 public:
│ │ │ │ -
106
│ │ │ │ -
108 typedef T MemberType;
│ │ │ │ -
109
│ │ │ │ -
113 constexpr static int unionSize = (sizeof(MemberType) < sizeof(Reference)) ?
│ │ │ │ -
114 sizeof(Reference) : sizeof(MemberType);
│ │ │ │ -
115
│ │ │ │ -
120 constexpr static int size = (sizeof(MemberType) <= s && sizeof(Reference) <= s) ?
│ │ │ │ -
121 s : unionSize;
│ │ │ │ -
122
│ │ │ │ -
127 constexpr static int alignment = std::lcm(alignof(MemberType), alignof(Reference));
│ │ │ │ -
128
│ │ │ │ -
135 constexpr static int alignedSize = (unionSize % alignment == 0) ?
│ │ │ │ -
136 unionSize :
│ │ │ │ -
137 ((unionSize / alignment + 1) * alignment);
│ │ │ │ -
138
│ │ │ │ -
144 constexpr static int chunkSize = (size % alignment == 0) ?
│ │ │ │ -
145 size : ((size / alignment + 1)* alignment);
│ │ │ │ -
146
│ │ │ │ -
150 constexpr static int elements = (chunkSize / alignedSize);
│ │ │ │ -
151
│ │ │ │ -
152 private:
│ │ │ │ -
154 struct Chunk
│ │ │ │ -
155 {
│ │ │ │ -
156
│ │ │ │ -
157 //friend int testPool<s,T>();
│ │ │ │ -
158
│ │ │ │ -
160 alignas(alignment) char chunk_[chunkSize];
│ │ │ │ -
161
│ │ │ │ -
163 Chunk *next_;
│ │ │ │ -
164 };
│ │ │ │ -
165
│ │ │ │ -
166 public:
│ │ │ │ -
│ │ │ │ -
168 inline Pool();
│ │ │ │ -
│ │ │ │ -
170 inline ~Pool();
│ │ │ │ -
│ │ │ │ -
175 inline void* allocate();
│ │ │ │ -
│ │ │ │ -
180 inline void free(void* o);
│ │ │ │ -
181
│ │ │ │ -
│ │ │ │ -
185 inline void print(std::ostream& os);
│ │ │ │ -
186
│ │ │ │ -
187 private:
│ │ │ │ -
188
│ │ │ │ -
189 // Prevent Copying!
│ │ │ │ -
190 Pool(const Pool<MemberType,s>&);
│ │ │ │ -
191
│ │ │ │ -
192 void operator=(const Pool<MemberType,s>& pool) const;
│ │ │ │ -
194 inline void grow();
│ │ │ │ -
196 Reference *head_;
│ │ │ │ -
198 Chunk *chunks_;
│ │ │ │ -
199 /* @brief The number of currently allocated elements. */
│ │ │ │ -
200 //size_t allocated_;
│ │ │ │ -
201
│ │ │ │ -
202 };
│ │ │ │ -
203
│ │ │ │ -
221 template<class T, std::size_t s>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
223 {
│ │ │ │ -
224 //friend std::ostream& std::operator<<<>(std::ostream&,PoolAllocator<T,s>&);
│ │ │ │ -
225
│ │ │ │ -
226 public:
│ │ │ │ -
230 typedef T value_type;
│ │ │ │ -
231
│ │ │ │ -
236 constexpr static int size = s * sizeof(value_type);
│ │ │ │ -
237
│ │ │ │ -
241 typedef T* pointer;
│ │ │ │ -
242
│ │ │ │ -
246 typedef const T* const_pointer;
│ │ │ │ -
247
│ │ │ │ -
251 typedef T& reference;
│ │ │ │ -
252
│ │ │ │ -
256 typedef const T& const_reference;
│ │ │ │ -
257
│ │ │ │ -
261 typedef std::size_t size_type;
│ │ │ │ -
262
│ │ │ │ -
266 typedef std::ptrdiff_t difference_type;
│ │ │ │ -
267
│ │ │ │ -
271 inline PoolAllocator();
│ │ │ │ -
272
│ │ │ │ -
276 template<typename U, std::size_t u>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
278 {
│ │ │ │ -
279 // we allow copying but never copy the pool
│ │ │ │ -
280 // to have a clear ownership of allocated pointers.
│ │ │ │ -
281 }
│ │ │ │ -
│ │ │ │ -
282
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
285 {
│ │ │ │ -
286 // we allow copying but never copy the pool
│ │ │ │ -
287 // to have a clear ownership of allocated pointers.
│ │ │ │ -
288 // For this behaviour we have to implement
│ │ │ │ -
289 // the copy constructor, because the default
│ │ │ │ -
290 // one would copy the pool and deallocation
│ │ │ │ -
291 // of it would break.
│ │ │ │ -
292 }
│ │ │ │ -
│ │ │ │ -
299 inline pointer allocate(std::size_t n, const_pointer hint=0);
│ │ │ │ -
300
│ │ │ │ -
308 inline void deallocate(pointer p, std::size_t n);
│ │ │ │ -
309
│ │ │ │ -
315 inline void construct(pointer p, const_reference value);
│ │ │ │ -
316
│ │ │ │ -
321 inline void destroy(pointer p);
│ │ │ │ -
322
│ │ │ │ -
326 inline pointer address(reference x) const { return &x; }
│ │ │ │ -
327
│ │ │ │ -
328
│ │ │ │ -
332 inline const_pointer address(const_reference x) const { return &x; }
│ │ │ │ -
333
│ │ │ │ -
337 inline int max_size() const noexcept { return 1; }
│ │ │ │ -
338
│ │ │ │ -
342 template<class U>
│ │ │ │ -
│ │ │ │ -
343 struct rebind
│ │ │ │ -
344 {
│ │ │ │ - │ │ │ │ -
346 };
│ │ │ │ -
│ │ │ │ -
347
│ │ │ │ - │ │ │ │ -
350
│ │ │ │ -
351 private:
│ │ │ │ -
355 PoolType memoryPool_;
│ │ │ │ -
356 };
│ │ │ │ -
│ │ │ │ -
357
│ │ │ │ -
358 // specialization for void
│ │ │ │ -
359 template <std::size_t s>
│ │ │ │ -
│ │ │ │ -
360 class PoolAllocator<void,s>
│ │ │ │ -
361 {
│ │ │ │ -
362 public:
│ │ │ │ -
363 typedef void* pointer;
│ │ │ │ -
364 typedef const void* const_pointer;
│ │ │ │ -
365 // reference to void members are impossible.
│ │ │ │ -
366 typedef void value_type;
│ │ │ │ -
│ │ │ │ -
367 template <class U> struct rebind
│ │ │ │ -
368 {
│ │ │ │ - │ │ │ │ -
370 };
│ │ │ │ -
│ │ │ │ -
371 };
│ │ │ │ -
│ │ │ │ -
372
│ │ │ │ -
373
│ │ │ │ -
374 template<typename T1, std::size_t t1, typename T2, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
376 {
│ │ │ │ -
377 return false;
│ │ │ │ -
378 }
│ │ │ │ -
│ │ │ │ -
379
│ │ │ │ -
380
│ │ │ │ -
381 template<typename T1, std::size_t t1, typename T2, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
383 {
│ │ │ │ -
384 return true;
│ │ │ │ -
385 }
│ │ │ │ -
│ │ │ │ -
386
│ │ │ │ -
387 template<typename T, std::size_t t1, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
389 {
│ │ │ │ -
390 return &p1==&p2;
│ │ │ │ -
391 }
│ │ │ │ -
│ │ │ │ -
392
│ │ │ │ -
393
│ │ │ │ -
394 template<typename T, std::size_t t1, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
396 {
│ │ │ │ -
397 return &p1 != &p2;
│ │ │ │ -
398 }
│ │ │ │ -
│ │ │ │ -
399
│ │ │ │ -
400 template<typename T, std::size_t t1, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
402 {
│ │ │ │ -
403 return false;
│ │ │ │ -
404 }
│ │ │ │ -
│ │ │ │ -
405
│ │ │ │ -
406
│ │ │ │ -
407 template<typename T, std::size_t t1, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
409 {
│ │ │ │ -
410 return true;
│ │ │ │ -
411 }
│ │ │ │ -
│ │ │ │ -
412
│ │ │ │ -
413 template<std::size_t t1, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
415 {
│ │ │ │ -
416 return &p1==&p2;
│ │ │ │ -
417 }
│ │ │ │ -
│ │ │ │ -
418
│ │ │ │ -
419 template<std::size_t t1, std::size_t t2>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
421 {
│ │ │ │ -
422 return &p1!=&p2;
│ │ │ │ -
423 }
│ │ │ │ -
│ │ │ │ -
424
│ │ │ │ -
425 template<class T, std::size_t S>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
427 : head_(0), chunks_(0) //, allocated_(0)
│ │ │ │ -
428 {
│ │ │ │ -
429 static_assert(sizeof(T)<=unionSize, "Library Error: type T is too big");
│ │ │ │ -
430 static_assert(sizeof(Reference)<=unionSize, "Library Error: type of reference is too big");
│ │ │ │ -
431 static_assert(unionSize<=alignedSize, "Library Error: alignedSize too small");
│ │ │ │ -
432 static_assert(sizeof(T)<=chunkSize, "Library Error: chunkSize must be able to hold at least one value");
│ │ │ │ -
433 static_assert(sizeof(Reference)<=chunkSize, "Library Error: chunkSize must be able to hold at least one reference");
│ │ │ │ -
434 static_assert(chunkSize % alignment == 0, "Library Error: compiler cannot calculate!");
│ │ │ │ -
435 static_assert(elements>=1, "Library Error: we need to hold at least one element!");
│ │ │ │ -
436 static_assert(elements*alignedSize<=chunkSize, "Library Error: aligned elements must fit into chuck!");
│ │ │ │ -
437 }
│ │ │ │ -
│ │ │ │ -
438
│ │ │ │ -
439 template<class T, std::size_t S>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
441 {
│ │ │ │ -
442 /*
│ │ │ │ -
443 if(allocated_!=0)
│ │ │ │ -
444 std::cerr<<"There are still "<<allocated_<<" allocated elements by the Pool<"<<typeid(T).name()<<","<<S<<"> "
│ │ │ │ -
445 <<static_cast<void*>(this)<<"! This is a memory leak and might result in segfaults"
│ │ │ │ -
446 <<std::endl;
│ │ │ │ -
447 */
│ │ │ │ -
448 // delete the allocated chunks.
│ │ │ │ -
449 Chunk *current=chunks_;
│ │ │ │ -
450
│ │ │ │ -
451 while(current!=0)
│ │ │ │ -
452 {
│ │ │ │ -
453 Chunk *tmp = current;
│ │ │ │ -
454 current = current->next_;
│ │ │ │ -
455 delete tmp;
│ │ │ │ -
456 }
│ │ │ │ -
457 }
│ │ │ │ -
│ │ │ │ -
458
│ │ │ │ -
459 template<class T, std::size_t S>
│ │ │ │ -
│ │ │ │ -
460 inline void Pool<T,S>::print(std::ostream& os)
│ │ │ │ -
461 {
│ │ │ │ -
462 Chunk* current=chunks_;
│ │ │ │ -
463 while(current) {
│ │ │ │ -
464 os<<current<<" ";
│ │ │ │ -
465 current=current->next_;
│ │ │ │ -
466 }
│ │ │ │ -
467 os<<current<<" ";
│ │ │ │ -
468 }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
469
│ │ │ │ -
470 template<class T, std::size_t S>
│ │ │ │ -
471 inline void Pool<T,S>::grow()
│ │ │ │ -
472 {
│ │ │ │ -
473 Chunk *newChunk = new Chunk;
│ │ │ │ -
474 newChunk->next_ = chunks_;
│ │ │ │ -
475 chunks_ = newChunk;
│ │ │ │ -
476
│ │ │ │ -
477 char* start = chunks_->chunk_;
│ │ │ │ -
478 char* last = &start[elements*alignedSize];
│ │ │ │ -
479 Reference* ref = new (start) (Reference);
│ │ │ │ -
480
│ │ │ │ -
481 // grow is only called if head==0,
│ │ │ │ -
482 assert(!head_);
│ │ │ │ -
483
│ │ │ │ -
484 head_ = ref;
│ │ │ │ -
485
│ │ │ │ -
486 for(char* element=start+alignedSize; element<last; element=element+alignedSize) {
│ │ │ │ -
487 Reference* next = new (element) (Reference);
│ │ │ │ -
488 ref->next_ = next;
│ │ │ │ -
489 ref = next;
│ │ │ │ -
490 }
│ │ │ │ -
491 ref->next_=0;
│ │ │ │ -
492 }
│ │ │ │ -
493
│ │ │ │ -
494 template<class T, std::size_t S>
│ │ │ │ -
│ │ │ │ -
495 inline void Pool<T,S>::free(void* b)
│ │ │ │ -
496 {
│ │ │ │ -
497 if(b) {
│ │ │ │ -
498#ifndef NDEBUG
│ │ │ │ -
499 Chunk* current=chunks_;
│ │ │ │ -
500 while(current) {
│ │ │ │ -
501 if(static_cast<void*>(current->chunk_)<=b &&
│ │ │ │ -
502 static_cast<void*>(current->chunk_+chunkSize)>b)
│ │ │ │ -
503 break;
│ │ │ │ -
504 current=current->next_;
│ │ │ │ -
505 }
│ │ │ │ -
506 if(!current)
│ │ │ │ -
507 throw std::bad_alloc();
│ │ │ │ -
508#endif
│ │ │ │ -
509 Reference* freed = static_cast<Reference*>(b);
│ │ │ │ -
510 freed->next_ = head_;
│ │ │ │ -
511 head_ = freed;
│ │ │ │ -
512 //--allocated_;
│ │ │ │ -
513 }
│ │ │ │ -
514 else
│ │ │ │ -
515 {
│ │ │ │ -
516 std::cerr<< "Tried to free null pointer! "<<b<<std::endl;
│ │ │ │ -
517 throw std::bad_alloc();
│ │ │ │ -
518 }
│ │ │ │ -
519 }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
520
│ │ │ │ -
521 template<class T, std::size_t S>
│ │ │ │ -
│ │ │ │ -
522 inline void* Pool<T,S>::allocate()
│ │ │ │ -
523 {
│ │ │ │ -
524 if(!head_)
│ │ │ │ -
525 grow();
│ │ │ │ -
526
│ │ │ │ -
527 Reference* p = head_;
│ │ │ │ -
528 head_ = p->next_;
│ │ │ │ -
529 //++allocated_;
│ │ │ │ -
530 return p;
│ │ │ │ -
531 }
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
532
│ │ │ │ -
533 template<class T, std::size_t s>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
535 { }
│ │ │ │ -
│ │ │ │ -
536
│ │ │ │ -
537 template<class T, std::size_t s>
│ │ │ │ -
538 inline typename PoolAllocator<T,s>::pointer
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
540 {
│ │ │ │ -
541 if(n==1)
│ │ │ │ -
542 return static_cast<T*>(memoryPool_.allocate());
│ │ │ │ -
543 else
│ │ │ │ -
544 throw std::bad_alloc();
│ │ │ │ -
545 }
│ │ │ │ -
│ │ │ │ -
546
│ │ │ │ -
547 template<class T, std::size_t s>
│ │ │ │ -
│ │ │ │ -
548 inline void PoolAllocator<T,s>::deallocate(pointer p, std::size_t n)
│ │ │ │ -
549 {
│ │ │ │ -
550 for(size_t i=0; i<n; i++)
│ │ │ │ -
551 memoryPool_.free(p++);
│ │ │ │ -
552 }
│ │ │ │ -
│ │ │ │ -
553
│ │ │ │ -
554 template<class T, std::size_t s>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
556 {
│ │ │ │ -
557 ::new (static_cast<void*>(p))T(value);
│ │ │ │ -
558 }
│ │ │ │ -
│ │ │ │ -
559
│ │ │ │ -
560 template<class T, std::size_t s>
│ │ │ │ -
561 inline void PoolAllocator<T,s>::destroy(pointer p)
│ │ │ │ -
562 {
│ │ │ │ -
563 p->~T();
│ │ │ │ -
564 }
│ │ │ │ -
565
│ │ │ │ -
567}
│ │ │ │ -
568#endif
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
void construct(pointer p, const_reference value)
Construct an object.
Definition poolallocator.hh:555
│ │ │ │ -
void free(void *o)
Free an object.
Definition poolallocator.hh:495
│ │ │ │ -
~Pool()
Destructor.
Definition poolallocator.hh:440
│ │ │ │ -
void * allocate()
Get a new or recycled object.
Definition poolallocator.hh:522
│ │ │ │ -
void print(std::ostream &os)
Print elements in pool for debugging.
Definition poolallocator.hh:460
│ │ │ │ -
pointer allocate(std::size_t n, const_pointer hint=0)
Allocates objects.
Definition poolallocator.hh:539
│ │ │ │ -
Pool()
Constructor.
Definition poolallocator.hh:426
│ │ │ │ -
void deallocate(pointer p, std::size_t n)
Free objects.
Definition poolallocator.hh:548
│ │ │ │ -
void destroy(pointer p)
Destroy an object without freeing memory.
Definition poolallocator.hh:561
│ │ │ │ -
PoolAllocator()
Constructor.
Definition poolallocator.hh:534
│ │ │ │ -
EnableIfInterOperable< T1, T2, bool >::type operator==(const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
Checks for equality.
Definition iteratorfacades.hh:237
│ │ │ │ -
EnableIfInterOperable< T1, T2, bool >::type operator!=(const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
Checks for inequality.
Definition iteratorfacades.hh:259
│ │ │ │ +
8#include "ftraits.hh"
│ │ │ │ +
9#include "typetraits.hh"
│ │ │ │ +
10
│ │ │ │ +
11namespace Dune {
│ │ │ │ +
26 template<class T, class = void>
│ │ │ │ +
27 struct IsVector : std::false_type {};
│ │ │ │ +
28
│ │ │ │ +
29 template<class T>
│ │ │ │ +
│ │ │ │ +
30 struct IsVector<T, std::void_t<typename T::field_type> >
│ │ │ │ +
31 : std::true_type {};
│ │ │ │ +
│ │ │ │ +
32
│ │ │ │ +
40 template<class A, class B>
│ │ │ │ +
41 auto
│ │ │ │ +
│ │ │ │ +
42 dot(const A & a, const B & b) -> typename std::enable_if<IsNumber<A>::value && !IsVector<A>::value && !std::is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type> ::value, decltype(conj(a)*b)>::type
│ │ │ │ +
43 {
│ │ │ │ +
44 return conj(a)*b;
│ │ │ │ +
45 }
│ │ │ │ +
│ │ │ │ +
46
│ │ │ │ +
56 // fundamental type with A being a real type
│ │ │ │ +
57 template<class A, class B>
│ │ │ │ +
58 auto
│ │ │ │ +
59 dot(const A & a, const B & b) -> typename std::enable_if<IsNumber<A>::value && !IsVector<A>::value && std::is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type>::value, decltype(a*b)>::type
│ │ │ │ +
60 {
│ │ │ │ +
61 return a*b;
│ │ │ │ +
62 }
│ │ │ │ +
63
│ │ │ │ +
73 template<typename A, typename B>
│ │ │ │ +
74 auto
│ │ │ │ +
75 dot(const A & a, const B & b) -> typename std::enable_if<IsVector<A>::value, decltype(a.dot(b))>::type
│ │ │ │ +
76 {
│ │ │ │ +
77 return a.dot(b);
│ │ │ │ +
78 }
│ │ │ │ +
88 template<class A, class B>
│ │ │ │ +
89 auto
│ │ │ │ +
│ │ │ │ +
90 dotT(const A & a, const B & b) -> decltype(a*b)
│ │ │ │ +
91 {
│ │ │ │ +
92 return a*b;
│ │ │ │ +
93 }
│ │ │ │ +
│ │ │ │ +
94
│ │ │ │ +
96} // end namespace DUNE
│ │ │ │ +
97
│ │ │ │ +
98#endif // DUNE_DOTPRODUCT_HH
│ │ │ │ +
Type traits to determine the type of reals (when working with complex numbers)
│ │ │ │ +
Traits for type conversions and type information.
│ │ │ │ +
auto dot(const A &a, const B &b) -> typename std::enable_if< IsNumber< A >::value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >::field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a) *b)>::type
computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,...
Definition dotproduct.hh:42
│ │ │ │ +
typename Impl::voider< Types... >::type void_t
Is void for all valid input types. The workhorse for C++11 SFINAE-techniques.
Definition typetraits.hh:40
│ │ │ │
STL namespace.
│ │ │ │
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ -
Get the 'const' version of a reference to a mutable object.
Definition genericiterator.hh:87
│ │ │ │ -
A memory pool of objects.
Definition poolallocator.hh:90
│ │ │ │ -
static constexpr int alignment
The alignment that suits both the MemberType and the Reference (i.e. their least common multiple).
Definition poolallocator.hh:127
│ │ │ │ -
static constexpr int alignedSize
The aligned size of the type.
Definition poolallocator.hh:135
│ │ │ │ -
static constexpr int chunkSize
The size of each chunk memory chunk.
Definition poolallocator.hh:144
│ │ │ │ -
static constexpr int size
Size requirement. At least one object has to stored.
Definition poolallocator.hh:120
│ │ │ │ -
static constexpr int unionSize
The size of a union of Reference and MemberType.
Definition poolallocator.hh:113
│ │ │ │ -
T MemberType
The type of object we allocate memory for.
Definition poolallocator.hh:108
│ │ │ │ -
static constexpr int elements
The number of element each chunk can hold.
Definition poolallocator.hh:150
│ │ │ │ -
An allocator managing a pool of objects for reuse.
Definition poolallocator.hh:223
│ │ │ │ -
Pool< T, size > PoolType
The type of the memory pool we use.
Definition poolallocator.hh:349
│ │ │ │ -
const_pointer address(const_reference x) const
Convert a reference to a pointer.
Definition poolallocator.hh:332
│ │ │ │ -
const T & const_reference
The constant reference type.
Definition poolallocator.hh:256
│ │ │ │ -
std::size_t size_type
The size type.
Definition poolallocator.hh:261
│ │ │ │ -
T value_type
Type of the values we construct and allocate.
Definition poolallocator.hh:230
│ │ │ │ -
T & reference
The reference type.
Definition poolallocator.hh:251
│ │ │ │ -
PoolAllocator(const PoolAllocator &)
Copy constructor that does not copy the memory pool.
Definition poolallocator.hh:284
│ │ │ │ -
const T * const_pointer
The constant pointer type.
Definition poolallocator.hh:246
│ │ │ │ -
pointer address(reference x) const
Convert a reference to a pointer.
Definition poolallocator.hh:326
│ │ │ │ -
T * pointer
The pointer type.
Definition poolallocator.hh:241
│ │ │ │ -
PoolAllocator(const PoolAllocator< U, u > &)
Copy Constructor that does not copy the memory pool.
Definition poolallocator.hh:277
│ │ │ │ -
std::ptrdiff_t difference_type
The difference_type.
Definition poolallocator.hh:266
│ │ │ │ -
int max_size() const noexcept
Not correctly implemented, yet!
Definition poolallocator.hh:337
│ │ │ │ -
static constexpr int size
The number of objects to fit into one memory chunk allocated.
Definition poolallocator.hh:236
│ │ │ │ -
Rebind the allocator to another type.
Definition poolallocator.hh:344
│ │ │ │ -
PoolAllocator< U, s > other
Definition poolallocator.hh:345
│ │ │ │ -
void value_type
Definition poolallocator.hh:366
│ │ │ │ -
void * pointer
Definition poolallocator.hh:363
│ │ │ │ -
const void * const_pointer
Definition poolallocator.hh:364
│ │ │ │ -
PoolAllocator< U, s > other
Definition poolallocator.hh:369
│ │ │ │ +
auto dotT(const A &a, const B &b) -> decltype(a *b)
Computes an indefinite vector dot product for fundamental data types according to Petsc's VectTDot fu...
Definition dotproduct.hh:90
│ │ │ │ +
Definition dotproduct.hh:27
│ │ │ │ +
T real_type
export the type representing the real type of the field
Definition ftraits.hh:30
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,597 +1,98 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -poolallocator.hh │ │ │ │ │ +dotproduct.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ 2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ -5#ifndef DUNE_COMMON_POOLALLOCATOR_HH │ │ │ │ │ -6#define DUNE_COMMON_POOLALLOCATOR_HH │ │ │ │ │ +5#ifndef DUNE_DOTPRODUCT_HH │ │ │ │ │ +6#define DUNE_DOTPRODUCT_HH │ │ │ │ │ 7 │ │ │ │ │ -12#include │ │ │ │ │ -13#include │ │ │ │ │ -14#include │ │ │ │ │ -15#include │ │ │ │ │ -16#include │ │ │ │ │ -17 │ │ │ │ │ -18#ifndef DOXYGEN │ │ │ │ │ -19// forward declarations. │ │ │ │ │ -20// we need to know the test function to declare it friend │ │ │ │ │ -21template │ │ │ │ │ -22struct testPoolMain; │ │ │ │ │ -23#endif │ │ │ │ │ -24 │ │ │ │ │ -25namespace _D_u_n_e │ │ │ │ │ -26{ │ │ │ │ │ -27 │ │ │ │ │ -28 template │ │ │ │ │ -29 class Pool; │ │ │ │ │ -30 │ │ │ │ │ -31 template │ │ │ │ │ -32 class PoolAllocator; │ │ │ │ │ -33 │ │ │ │ │ -34} │ │ │ │ │ -35 │ │ │ │ │ -36namespace _s_t_d │ │ │ │ │ -37{ │ │ │ │ │ -38 /* │ │ │ │ │ -39 template │ │ │ │ │ -40 inline ostream& operator<<(ostream& os, Dune::Pool& pool) │ │ │ │ │ -41 { │ │ │ │ │ -42 os<<"pool="<<&pool<<" allocated_="< │ │ │ │ │ -47 inline ostream& operator<<(ostream& os, Dune::PoolAllocator& pool) │ │ │ │ │ -48 { │ │ │ │ │ -49 os< │ │ │ │ │ -_8_9 class _P_o_o_l │ │ │ │ │ -90 { │ │ │ │ │ -91 // make the test function friend │ │ │ │ │ -92 friend struct ::testPoolMain; │ │ │ │ │ -93 │ │ │ │ │ -94 //friend std::ostream& std::operator<<<>(std::ostream&,Pool&); │ │ │ │ │ -_9_5 template< class, std::size_t > friend class _P_o_o_l_A_l_l_o_c_a_t_o_r; │ │ │ │ │ -96 │ │ │ │ │ -97 private: │ │ │ │ │ -98 │ │ │ │ │ -100 struct Reference │ │ │ │ │ -101 { │ │ │ │ │ -102 Reference *next_; │ │ │ │ │ -103 }; │ │ │ │ │ -104 │ │ │ │ │ -105 public: │ │ │ │ │ -106 │ │ │ │ │ -_1_0_8 typedef T _M_e_m_b_e_r_T_y_p_e; │ │ │ │ │ -109 │ │ │ │ │ -_1_1_3 constexpr static int _u_n_i_o_n_S_i_z_e = (sizeof(_M_e_m_b_e_r_T_y_p_e) < sizeof(Reference)) ? │ │ │ │ │ -114 sizeof(Reference) : sizeof(_M_e_m_b_e_r_T_y_p_e); │ │ │ │ │ -115 │ │ │ │ │ -_1_2_0 constexpr static int _s_i_z_e = (sizeof(_M_e_m_b_e_r_T_y_p_e) <= s && sizeof(Reference) │ │ │ │ │ -<= s) ? │ │ │ │ │ -121 s : _u_n_i_o_n_S_i_z_e; │ │ │ │ │ -122 │ │ │ │ │ -_1_2_7 constexpr static int _a_l_i_g_n_m_e_n_t = std::lcm(alignof(_M_e_m_b_e_r_T_y_p_e), alignof │ │ │ │ │ -(Reference)); │ │ │ │ │ -128 │ │ │ │ │ -_1_3_5 constexpr static int _a_l_i_g_n_e_d_S_i_z_e = (_u_n_i_o_n_S_i_z_e % _a_l_i_g_n_m_e_n_t == 0) ? │ │ │ │ │ -136 _u_n_i_o_n_S_i_z_e : │ │ │ │ │ -137 ((_u_n_i_o_n_S_i_z_e / _a_l_i_g_n_m_e_n_t + 1) * _a_l_i_g_n_m_e_n_t); │ │ │ │ │ -138 │ │ │ │ │ -_1_4_4 constexpr static int _c_h_u_n_k_S_i_z_e = (_s_i_z_e % _a_l_i_g_n_m_e_n_t == 0) ? │ │ │ │ │ -145 _s_i_z_e : ((_s_i_z_e / _a_l_i_g_n_m_e_n_t + 1)* _a_l_i_g_n_m_e_n_t); │ │ │ │ │ -146 │ │ │ │ │ -_1_5_0 constexpr static int _e_l_e_m_e_n_t_s = (_c_h_u_n_k_S_i_z_e / _a_l_i_g_n_e_d_S_i_z_e); │ │ │ │ │ -151 │ │ │ │ │ -152 private: │ │ │ │ │ -154 struct Chunk │ │ │ │ │ -155 { │ │ │ │ │ -156 │ │ │ │ │ -157 //friend int testPool(); │ │ │ │ │ -158 │ │ │ │ │ -160 alignas(_a_l_i_g_n_m_e_n_t) char chunk_[_c_h_u_n_k_S_i_z_e]; │ │ │ │ │ -161 │ │ │ │ │ -163 Chunk *next_; │ │ │ │ │ -164 }; │ │ │ │ │ -165 │ │ │ │ │ -166 public: │ │ │ │ │ -_1_6_8 inline _P_o_o_l(); │ │ │ │ │ -_1_7_0 inline _~_P_o_o_l(); │ │ │ │ │ -_1_7_5 inline void* _a_l_l_o_c_a_t_e(); │ │ │ │ │ -_1_8_0 inline void _f_r_e_e(void* o); │ │ │ │ │ -181 │ │ │ │ │ -_1_8_5 inline void _p_r_i_n_t(std::ostream& os); │ │ │ │ │ -186 │ │ │ │ │ -187 private: │ │ │ │ │ -188 │ │ │ │ │ -189 // Prevent Copying! │ │ │ │ │ -190 _P_o_o_l(const _P_o_o_l_<_M_e_m_b_e_r_T_y_p_e_,_s_>&); │ │ │ │ │ -191 │ │ │ │ │ -192 void operator=(const _P_o_o_l_<_M_e_m_b_e_r_T_y_p_e_,_s_>& pool) const; │ │ │ │ │ -194 inline void grow(); │ │ │ │ │ -196 Reference *head_; │ │ │ │ │ -198 Chunk *chunks_; │ │ │ │ │ -199 /* @brief The number of currently allocated elements. */ │ │ │ │ │ -200 //size_t allocated_; │ │ │ │ │ -201 │ │ │ │ │ -202 }; │ │ │ │ │ -203 │ │ │ │ │ -221 template │ │ │ │ │ -_2_2_2 class _P_o_o_l_A_l_l_o_c_a_t_o_r │ │ │ │ │ -223 { │ │ │ │ │ -224 //friend std::ostream& std::operator<<<>(std:: │ │ │ │ │ -ostream&,PoolAllocator&); │ │ │ │ │ -225 │ │ │ │ │ -226 public: │ │ │ │ │ -_2_3_0 typedef T _v_a_l_u_e___t_y_p_e; │ │ │ │ │ -231 │ │ │ │ │ -_2_3_6 constexpr static int _s_i_z_e = s * sizeof(_v_a_l_u_e___t_y_p_e); │ │ │ │ │ -237 │ │ │ │ │ -_2_4_1 typedef T* _p_o_i_n_t_e_r; │ │ │ │ │ -242 │ │ │ │ │ -_2_4_6 typedef const T* _c_o_n_s_t___p_o_i_n_t_e_r; │ │ │ │ │ -247 │ │ │ │ │ -_2_5_1 typedef T& _r_e_f_e_r_e_n_c_e; │ │ │ │ │ -252 │ │ │ │ │ -_2_5_6 typedef const T& _c_o_n_s_t___r_e_f_e_r_e_n_c_e; │ │ │ │ │ -257 │ │ │ │ │ -_2_6_1 typedef std::size_t _s_i_z_e___t_y_p_e; │ │ │ │ │ -262 │ │ │ │ │ -_2_6_6 typedef std::ptrdiff_t _d_i_f_f_e_r_e_n_c_e___t_y_p_e; │ │ │ │ │ -267 │ │ │ │ │ -271 inline _P_o_o_l_A_l_l_o_c_a_t_o_r(); │ │ │ │ │ -272 │ │ │ │ │ -276 template │ │ │ │ │ -_2_7_7 inline _P_o_o_l_A_l_l_o_c_a_t_o_r(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_U_,_u_>&) │ │ │ │ │ -278 { │ │ │ │ │ -279 // we allow copying but never copy the pool │ │ │ │ │ -280 // to have a clear ownership of allocated pointers. │ │ │ │ │ -281 } │ │ │ │ │ -282 │ │ │ │ │ -_2_8_4 _P_o_o_l_A_l_l_o_c_a_t_o_r(const _P_o_o_l_A_l_l_o_c_a_t_o_r&) │ │ │ │ │ -285 { │ │ │ │ │ -286 // we allow copying but never copy the pool │ │ │ │ │ -287 // to have a clear ownership of allocated pointers. │ │ │ │ │ -288 // For this behaviour we have to implement │ │ │ │ │ -289 // the copy constructor, because the default │ │ │ │ │ -290 // one would copy the pool and deallocation │ │ │ │ │ -291 // of it would break. │ │ │ │ │ -292 } │ │ │ │ │ -299 inline _p_o_i_n_t_e_r _a_l_l_o_c_a_t_e(std::size_t n, _c_o_n_s_t___p_o_i_n_t_e_r hint=0); │ │ │ │ │ -300 │ │ │ │ │ -308 inline void _d_e_a_l_l_o_c_a_t_e(_p_o_i_n_t_e_r p, std::size_t n); │ │ │ │ │ -309 │ │ │ │ │ -315 inline void _c_o_n_s_t_r_u_c_t(_p_o_i_n_t_e_r p, _c_o_n_s_t___r_e_f_e_r_e_n_c_e value); │ │ │ │ │ -316 │ │ │ │ │ -321 inline void _d_e_s_t_r_o_y(_p_o_i_n_t_e_r p); │ │ │ │ │ -322 │ │ │ │ │ -_3_2_6 inline _p_o_i_n_t_e_r _a_d_d_r_e_s_s(_r_e_f_e_r_e_n_c_e x) const { return &x; } │ │ │ │ │ -327 │ │ │ │ │ -328 │ │ │ │ │ -_3_3_2 inline _c_o_n_s_t___p_o_i_n_t_e_r _a_d_d_r_e_s_s(_c_o_n_s_t___r_e_f_e_r_e_n_c_e x) const { return &x; } │ │ │ │ │ -333 │ │ │ │ │ -_3_3_7 inline int _m_a_x___s_i_z_e() const noexcept { return 1; } │ │ │ │ │ -338 │ │ │ │ │ -342 template │ │ │ │ │ -_3_4_3 struct _r_e_b_i_n_d │ │ │ │ │ -344 { │ │ │ │ │ -_3_4_5 typedef _P_o_o_l_A_l_l_o_c_a_t_o_r_<_U_,_s_> _o_t_h_e_r; │ │ │ │ │ -346 }; │ │ │ │ │ -347 │ │ │ │ │ -_3_4_9 typedef _P_o_o_l_<_T_,_s_i_z_e_> _P_o_o_l_T_y_p_e; │ │ │ │ │ -350 │ │ │ │ │ -351 private: │ │ │ │ │ -355 _P_o_o_l_T_y_p_e memoryPool_; │ │ │ │ │ -356 }; │ │ │ │ │ -357 │ │ │ │ │ -358 // specialization for void │ │ │ │ │ -359 template │ │ │ │ │ -_3_6_0 class _P_o_o_l_A_l_l_o_c_a_t_o_r │ │ │ │ │ -361 { │ │ │ │ │ -362 public: │ │ │ │ │ -_3_6_3 typedef void* _p_o_i_n_t_e_r; │ │ │ │ │ -_3_6_4 typedef const void* _c_o_n_s_t___p_o_i_n_t_e_r; │ │ │ │ │ -365 // reference to void members are impossible. │ │ │ │ │ -_3_6_6 typedef void _v_a_l_u_e___t_y_p_e; │ │ │ │ │ -_3_6_7 template struct rebind │ │ │ │ │ -368 { │ │ │ │ │ -_3_6_9 typedef _P_o_o_l_A_l_l_o_c_a_t_o_r_<_U_,_s_> _o_t_h_e_r; │ │ │ │ │ -370 }; │ │ │ │ │ -371 }; │ │ │ │ │ -372 │ │ │ │ │ -373 │ │ │ │ │ -374 template │ │ │ │ │ -_3_7_5 bool _o_p_e_r_a_t_o_r_=_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_1_,_t_1_>&, const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_2_,_t_2_>&) │ │ │ │ │ -376 { │ │ │ │ │ -377 return false; │ │ │ │ │ -378 } │ │ │ │ │ -379 │ │ │ │ │ -380 │ │ │ │ │ -381 template │ │ │ │ │ -_3_8_2 bool _o_p_e_r_a_t_o_r_!_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_1_,_t_1_>&, const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_2_,_t_2_>&) │ │ │ │ │ -383 { │ │ │ │ │ -384 return true; │ │ │ │ │ -385 } │ │ │ │ │ -386 │ │ │ │ │ -387 template │ │ │ │ │ -_3_8_8 bool _o_p_e_r_a_t_o_r_=_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_t_1_>& p1, const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_t_2_>& │ │ │ │ │ -p2) │ │ │ │ │ -389 { │ │ │ │ │ -390 return &p1==&p2; │ │ │ │ │ -391 } │ │ │ │ │ -392 │ │ │ │ │ -393 │ │ │ │ │ -394 template │ │ │ │ │ -_3_9_5 bool _o_p_e_r_a_t_o_r_!_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_t_1_>& p1, const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_t_2_>& │ │ │ │ │ -p2) │ │ │ │ │ -396 { │ │ │ │ │ -397 return &p1 != &p2; │ │ │ │ │ -398 } │ │ │ │ │ -399 │ │ │ │ │ -400 template │ │ │ │ │ -_4_0_1 bool _o_p_e_r_a_t_o_r_=_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_v_o_i_d_,_t_1_>&, const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_t_2_>&) │ │ │ │ │ -402 { │ │ │ │ │ -403 return false; │ │ │ │ │ -404 } │ │ │ │ │ -405 │ │ │ │ │ -406 │ │ │ │ │ -407 template │ │ │ │ │ -_4_0_8 bool _o_p_e_r_a_t_o_r_!_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_v_o_i_d_,_t_1_>&, const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_t_2_>&) │ │ │ │ │ -409 { │ │ │ │ │ -410 return true; │ │ │ │ │ -411 } │ │ │ │ │ -412 │ │ │ │ │ -413 template │ │ │ │ │ -_4_1_4 bool _o_p_e_r_a_t_o_r_=_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_v_o_i_d_,_t_1_>& p1, const │ │ │ │ │ -_P_o_o_l_A_l_l_o_c_a_t_o_r_<_v_o_i_d_,_t_2_>& p2) │ │ │ │ │ -415 { │ │ │ │ │ -416 return &p1==&p2; │ │ │ │ │ -417 } │ │ │ │ │ -418 │ │ │ │ │ -419 template │ │ │ │ │ -_4_2_0 bool _o_p_e_r_a_t_o_r_!_=(const _P_o_o_l_A_l_l_o_c_a_t_o_r_<_v_o_i_d_,_t_1_>& p1, const │ │ │ │ │ -_P_o_o_l_A_l_l_o_c_a_t_o_r_<_v_o_i_d_,_t_2_>& p2) │ │ │ │ │ -421 { │ │ │ │ │ -422 return &p1!=&p2; │ │ │ │ │ -423 } │ │ │ │ │ -424 │ │ │ │ │ -425 template │ │ │ │ │ -_4_2_6 inline _P_o_o_l_<_T_,_S_>_:_:_P_o_o_l() │ │ │ │ │ -427 : head_(0), chunks_(0) //, allocated_(0) │ │ │ │ │ -428 { │ │ │ │ │ -429 static_assert(sizeof(T)<=_u_n_i_o_n_S_i_z_e, "Library Error: type T is too big"); │ │ │ │ │ -430 static_assert(sizeof(Reference)<=_u_n_i_o_n_S_i_z_e, "Library Error: type of │ │ │ │ │ -reference is too big"); │ │ │ │ │ -431 static_assert(_u_n_i_o_n_S_i_z_e<=_a_l_i_g_n_e_d_S_i_z_e, "Library Error: alignedSize too │ │ │ │ │ -small"); │ │ │ │ │ -432 static_assert(sizeof(T)<=_c_h_u_n_k_S_i_z_e, "Library Error: chunkSize must be able │ │ │ │ │ -to hold at least one value"); │ │ │ │ │ -433 static_assert(sizeof(Reference)<=_c_h_u_n_k_S_i_z_e, "Library Error: chunkSize must │ │ │ │ │ -be able to hold at least one reference"); │ │ │ │ │ -434 static_assert(_c_h_u_n_k_S_i_z_e % _a_l_i_g_n_m_e_n_t == 0, "Library Error: compiler cannot │ │ │ │ │ -calculate!"); │ │ │ │ │ -435 static_assert(_e_l_e_m_e_n_t_s>=1, "Library Error: we need to hold at least one │ │ │ │ │ -element!"); │ │ │ │ │ -436 static_assert(_e_l_e_m_e_n_t_s*_a_l_i_g_n_e_d_S_i_z_e<=_c_h_u_n_k_S_i_z_e, "Library Error: aligned │ │ │ │ │ -elements must fit into chuck!"); │ │ │ │ │ -437 } │ │ │ │ │ -438 │ │ │ │ │ -439 template │ │ │ │ │ -_4_4_0 inline _P_o_o_l_<_T_,_S_>_:_:_~_P_o_o_l() │ │ │ │ │ -441 { │ │ │ │ │ -442 /* │ │ │ │ │ -443 if(allocated_!=0) │ │ │ │ │ -444 std::cerr<<"There are still "< " │ │ │ │ │ -445 <(this)<<"! This is a memory leak and might result in │ │ │ │ │ -segfaults" │ │ │ │ │ -446 <next_; │ │ │ │ │ -455 delete tmp; │ │ │ │ │ -456 } │ │ │ │ │ -457 } │ │ │ │ │ -458 │ │ │ │ │ -459 template │ │ │ │ │ -_4_6_0 inline void _P_o_o_l_<_T_,_S_>_:_:_p_r_i_n_t(std::ostream& os) │ │ │ │ │ -461 { │ │ │ │ │ -462 Chunk* current=chunks_; │ │ │ │ │ -463 while(current) { │ │ │ │ │ -464 os<next_; │ │ │ │ │ -466 } │ │ │ │ │ -467 os< │ │ │ │ │ -471 inline void _P_o_o_l_<_T_,_S_>_:_:_g_r_o_w() │ │ │ │ │ -472 { │ │ │ │ │ -473 Chunk *newChunk = new Chunk; │ │ │ │ │ -474 newChunk->next_ = chunks_; │ │ │ │ │ -475 chunks_ = newChunk; │ │ │ │ │ -476 │ │ │ │ │ -477 char* start = chunks_->chunk_; │ │ │ │ │ -478 char* last = &start[elements*alignedSize]; │ │ │ │ │ -479 Reference* ref = new (start) (Reference); │ │ │ │ │ -480 │ │ │ │ │ -481 // grow is only called if head==0, │ │ │ │ │ -482 assert(!head_); │ │ │ │ │ -483 │ │ │ │ │ -484 head_ = ref; │ │ │ │ │ -485 │ │ │ │ │ -486 for(char* element=start+alignedSize; elementnext_ = next; │ │ │ │ │ -489 ref = next; │ │ │ │ │ -490 } │ │ │ │ │ -491 ref->next_=0; │ │ │ │ │ -492 } │ │ │ │ │ -493 │ │ │ │ │ -494 template │ │ │ │ │ -_4_9_5 inline void _P_o_o_l_<_T_,_S_>_:_:_f_r_e_e(void* b) │ │ │ │ │ -496 { │ │ │ │ │ -497 if(b) { │ │ │ │ │ -498#ifndef NDEBUG │ │ │ │ │ -499 Chunk* current=chunks_; │ │ │ │ │ -500 while(current) { │ │ │ │ │ -501 if(static_cast(current->chunk_)<=b && │ │ │ │ │ -502 static_cast(current->chunk_+chunkSize)>b) │ │ │ │ │ -503 break; │ │ │ │ │ -504 current=current->next_; │ │ │ │ │ -505 } │ │ │ │ │ -506 if(!current) │ │ │ │ │ -507 throw std::bad_alloc(); │ │ │ │ │ -508#endif │ │ │ │ │ -509 Reference* freed = static_cast(b); │ │ │ │ │ -510 freed->next_ = head_; │ │ │ │ │ -511 head_ = freed; │ │ │ │ │ -512 //--allocated_; │ │ │ │ │ -513 } │ │ │ │ │ -514 else │ │ │ │ │ -515 { │ │ │ │ │ -516 std::cerr<< "Tried to free null pointer! "< │ │ │ │ │ -_5_2_2 inline void* _P_o_o_l_<_T_,_S_>_:_:_a_l_l_o_c_a_t_e() │ │ │ │ │ -523 { │ │ │ │ │ -524 if(!head_) │ │ │ │ │ -525 grow(); │ │ │ │ │ -526 │ │ │ │ │ -527 Reference* p = head_; │ │ │ │ │ -528 head_ = p->next_; │ │ │ │ │ -529 //++allocated_; │ │ │ │ │ -530 return p; │ │ │ │ │ -531 } │ │ │ │ │ -532 │ │ │ │ │ -533 template │ │ │ │ │ -_5_3_4 inline _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_s_>_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r() │ │ │ │ │ -535 { } │ │ │ │ │ -536 │ │ │ │ │ -537 template │ │ │ │ │ -538 inline typename _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_s_>_:_:_p_o_i_n_t_e_r │ │ │ │ │ -_5_3_9 _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_s_>_:_:_a_l_l_o_c_a_t_e(std::size_t n, _c_o_n_s_t___p_o_i_n_t_e_r) │ │ │ │ │ -540 { │ │ │ │ │ -541 if(n==1) │ │ │ │ │ -542 return static_cast(memoryPool_.allocate()); │ │ │ │ │ -543 else │ │ │ │ │ -544 throw std::bad_alloc(); │ │ │ │ │ -545 } │ │ │ │ │ -546 │ │ │ │ │ -547 template │ │ │ │ │ -_5_4_8 inline void _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_s_>_:_:_d_e_a_l_l_o_c_a_t_e(_p_o_i_n_t_e_r p, std::size_t n) │ │ │ │ │ -549 { │ │ │ │ │ -550 for(size_t i=0; i │ │ │ │ │ -_5_5_5 inline void _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_s_>_:_:_c_o_n_s_t_r_u_c_t(_p_o_i_n_t_e_r p, _c_o_n_s_t___r_e_f_e_r_e_n_c_e value) │ │ │ │ │ -556 { │ │ │ │ │ -557 ::new (static_cast(p))T(value); │ │ │ │ │ -558 } │ │ │ │ │ -559 │ │ │ │ │ -560 template │ │ │ │ │ -_5_6_1 inline void _P_o_o_l_A_l_l_o_c_a_t_o_r_<_T_,_s_>_:_:_d_e_s_t_r_o_y(pointer p) │ │ │ │ │ -562 { │ │ │ │ │ -563 p->~T(); │ │ │ │ │ -564 } │ │ │ │ │ -565 │ │ │ │ │ -567} │ │ │ │ │ -568#endif │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_c_o_n_s_t_r_u_c_t │ │ │ │ │ -void construct(pointer p, const_reference value) │ │ │ │ │ -Construct an object. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:555 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_f_r_e_e │ │ │ │ │ -void free(void *o) │ │ │ │ │ -Free an object. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:495 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_~_P_o_o_l │ │ │ │ │ -~Pool() │ │ │ │ │ -Destructor. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:440 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_a_l_l_o_c_a_t_e │ │ │ │ │ -void * allocate() │ │ │ │ │ -Get a new or recycled object. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:522 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_p_r_i_n_t │ │ │ │ │ -void print(std::ostream &os) │ │ │ │ │ -Print elements in pool for debugging. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:460 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_a_l_l_o_c_a_t_e │ │ │ │ │ -pointer allocate(std::size_t n, const_pointer hint=0) │ │ │ │ │ -Allocates objects. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:539 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_P_o_o_l │ │ │ │ │ -Pool() │ │ │ │ │ -Constructor. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:426 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_d_e_a_l_l_o_c_a_t_e │ │ │ │ │ -void deallocate(pointer p, std::size_t n) │ │ │ │ │ -Free objects. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:548 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_d_e_s_t_r_o_y │ │ │ │ │ -void destroy(pointer p) │ │ │ │ │ -Destroy an object without freeing memory. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:561 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r │ │ │ │ │ -PoolAllocator() │ │ │ │ │ -Constructor. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:534 │ │ │ │ │ -_D_u_n_e_:_:_o_p_e_r_a_t_o_r_=_= │ │ │ │ │ -EnableIfInterOperable< T1, T2, bool >::type operator==(const │ │ │ │ │ -ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, │ │ │ │ │ -V2, R2, D > &rhs) │ │ │ │ │ -Checks for equality. │ │ │ │ │ -DDeeffiinniittiioonn iteratorfacades.hh:237 │ │ │ │ │ -_D_u_n_e_:_:_o_p_e_r_a_t_o_r_!_= │ │ │ │ │ -EnableIfInterOperable< T1, T2, bool >::type operator!=(const │ │ │ │ │ -ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, │ │ │ │ │ -V2, R2, D > &rhs) │ │ │ │ │ -Checks for inequality. │ │ │ │ │ -DDeeffiinniittiioonn iteratorfacades.hh:259 │ │ │ │ │ +8#include "_f_t_r_a_i_t_s_._h_h" │ │ │ │ │ +9#include "_t_y_p_e_t_r_a_i_t_s_._h_h" │ │ │ │ │ +10 │ │ │ │ │ +11namespace _D_u_n_e { │ │ │ │ │ +26 template │ │ │ │ │ +_2_7 struct _I_s_V_e_c_t_o_r : std::false_type {}; │ │ │ │ │ +28 │ │ │ │ │ +29 template │ │ │ │ │ +_3_0 struct _I_s_V_e_c_t_o_r > │ │ │ │ │ +31 : std::true_type {}; │ │ │ │ │ +32 │ │ │ │ │ +40 template │ │ │ │ │ +41 auto │ │ │ │ │ +_4_2 _d_o_t(const A & a, const B & b) -> typename std::enable_if::value │ │ │ │ │ +&& !_I_s_V_e_c_t_o_r_<_A_>_:_:_v_a_l_u_e && !std::is_same:: │ │ │ │ │ +field_type,typename _F_i_e_l_d_T_r_a_i_t_s_<_A_>_:_:_r_e_a_l___t_y_p_e> ::value, decltype(conj(a)*b)>:: │ │ │ │ │ +type │ │ │ │ │ +43 { │ │ │ │ │ +44 return conj(a)*b; │ │ │ │ │ +45 } │ │ │ │ │ +46 │ │ │ │ │ +56 // fundamental type with A being a real type │ │ │ │ │ +57 template │ │ │ │ │ +58 auto │ │ │ │ │ +59 _d_o_t(const A & a, const B & b) -> typename std::enable_if::value │ │ │ │ │ +&& !IsVector::value && std::is_same:: │ │ │ │ │ +field_type,typename _F_i_e_l_d_T_r_a_i_t_s_<_A_>_:_:_r_e_a_l___t_y_p_e>::value, decltype(a*b)>::type │ │ │ │ │ +60 { │ │ │ │ │ +61 return a*b; │ │ │ │ │ +62 } │ │ │ │ │ +63 │ │ │ │ │ +73 template │ │ │ │ │ +74 auto │ │ │ │ │ +75 _d_o_t(const A & a, const B & b) -> typename std::enable_if::value, │ │ │ │ │ +decltype(a.dot(b))>::type │ │ │ │ │ +76 { │ │ │ │ │ +77 return a.dot(b); │ │ │ │ │ +78 } │ │ │ │ │ +88 template │ │ │ │ │ +89 auto │ │ │ │ │ +_9_0 _d_o_t_T(const A & a, const B & b) -> decltype(a*b) │ │ │ │ │ +91 { │ │ │ │ │ +92 return a*b; │ │ │ │ │ +93 } │ │ │ │ │ +94 │ │ │ │ │ +96} // end namespace DUNE │ │ │ │ │ +97 │ │ │ │ │ +98#endif // DUNE_DOTPRODUCT_HH │ │ │ │ │ +_f_t_r_a_i_t_s_._h_h │ │ │ │ │ +Type traits to determine the type of reals (when working with complex numbers) │ │ │ │ │ +_t_y_p_e_t_r_a_i_t_s_._h_h │ │ │ │ │ +Traits for type conversions and type information. │ │ │ │ │ +_D_u_n_e_:_:_d_o_t │ │ │ │ │ +auto dot(const A &a, const B &b) -> typename std::enable_if< IsNumber< A >:: │ │ │ │ │ +value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >:: │ │ │ │ │ +field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a) │ │ │ │ │ +*b)>::type │ │ │ │ │ +computes the dot product for fundamental data types according to Petsc's │ │ │ │ │ +VectDot function: dot(a,... │ │ │ │ │ +DDeeffiinniittiioonn dotproduct.hh:42 │ │ │ │ │ +_D_u_n_e_:_:_v_o_i_d___t │ │ │ │ │ +typename Impl::voider< Types... >::type void_t │ │ │ │ │ +Is void for all valid input types. The workhorse for C++11 SFINAE-techniques. │ │ │ │ │ +DDeeffiinniittiioonn typetraits.hh:40 │ │ │ │ │ _s_t_d │ │ │ │ │ STL namespace. │ │ │ │ │ _D_u_n_e │ │ │ │ │ Dune namespace. │ │ │ │ │ DDeeffiinniittiioonn alignedallocator.hh:13 │ │ │ │ │ -_D_u_n_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e │ │ │ │ │ -Get the 'const' version of a reference to a mutable object. │ │ │ │ │ -DDeeffiinniittiioonn genericiterator.hh:87 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l │ │ │ │ │ -A memory pool of objects. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:90 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_a_l_i_g_n_m_e_n_t │ │ │ │ │ -static constexpr int alignment │ │ │ │ │ -The alignment that suits both the MemberType and the Reference (i.e. their │ │ │ │ │ -least common multiple). │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:127 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_a_l_i_g_n_e_d_S_i_z_e │ │ │ │ │ -static constexpr int alignedSize │ │ │ │ │ -The aligned size of the type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:135 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_c_h_u_n_k_S_i_z_e │ │ │ │ │ -static constexpr int chunkSize │ │ │ │ │ -The size of each chunk memory chunk. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:144 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_s_i_z_e │ │ │ │ │ -static constexpr int size │ │ │ │ │ -Size requirement. At least one object has to stored. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:120 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_u_n_i_o_n_S_i_z_e │ │ │ │ │ -static constexpr int unionSize │ │ │ │ │ -The size of a union of Reference and MemberType. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:113 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_M_e_m_b_e_r_T_y_p_e │ │ │ │ │ -T MemberType │ │ │ │ │ -The type of object we allocate memory for. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:108 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_:_:_e_l_e_m_e_n_t_s │ │ │ │ │ -static constexpr int elements │ │ │ │ │ -The number of element each chunk can hold. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:150 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r │ │ │ │ │ -An allocator managing a pool of objects for reuse. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:223 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_P_o_o_l_T_y_p_e │ │ │ │ │ -Pool< T, size > PoolType │ │ │ │ │ -The type of the memory pool we use. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:349 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_a_d_d_r_e_s_s │ │ │ │ │ -const_pointer address(const_reference x) const │ │ │ │ │ -Convert a reference to a pointer. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:332 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e │ │ │ │ │ -const T & const_reference │ │ │ │ │ -The constant reference type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:256 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ -std::size_t size_type │ │ │ │ │ -The size type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:261 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -T value_type │ │ │ │ │ -Type of the values we construct and allocate. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:230 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_r_e_f_e_r_e_n_c_e │ │ │ │ │ -T & reference │ │ │ │ │ -The reference type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:251 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r │ │ │ │ │ -PoolAllocator(const PoolAllocator &) │ │ │ │ │ -Copy constructor that does not copy the memory pool. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:284 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_c_o_n_s_t___p_o_i_n_t_e_r │ │ │ │ │ -const T * const_pointer │ │ │ │ │ -The constant pointer type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:246 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_a_d_d_r_e_s_s │ │ │ │ │ -pointer address(reference x) const │ │ │ │ │ -Convert a reference to a pointer. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:326 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_p_o_i_n_t_e_r │ │ │ │ │ -T * pointer │ │ │ │ │ -The pointer type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:241 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r │ │ │ │ │ -PoolAllocator(const PoolAllocator< U, u > &) │ │ │ │ │ -Copy Constructor that does not copy the memory pool. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:277 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_d_i_f_f_e_r_e_n_c_e___t_y_p_e │ │ │ │ │ -std::ptrdiff_t difference_type │ │ │ │ │ -The difference_type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:266 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_m_a_x___s_i_z_e │ │ │ │ │ -int max_size() const noexcept │ │ │ │ │ -Not correctly implemented, yet! │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:337 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_s_i_z_e │ │ │ │ │ -static constexpr int size │ │ │ │ │ -The number of objects to fit into one memory chunk allocated. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:236 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_r_e_b_i_n_d │ │ │ │ │ -Rebind the allocator to another type. │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:344 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_:_:_r_e_b_i_n_d_:_:_o_t_h_e_r │ │ │ │ │ -PoolAllocator< U, s > other │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:345 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _v_o_i_d_,_ _s_ _>_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ -void value_type │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:366 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _v_o_i_d_,_ _s_ _>_:_:_p_o_i_n_t_e_r │ │ │ │ │ -void * pointer │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:363 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _v_o_i_d_,_ _s_ _>_:_:_c_o_n_s_t___p_o_i_n_t_e_r │ │ │ │ │ -const void * const_pointer │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:364 │ │ │ │ │ -_D_u_n_e_:_:_P_o_o_l_A_l_l_o_c_a_t_o_r_<_ _v_o_i_d_,_ _s_ _>_:_:_r_e_b_i_n_d_:_:_o_t_h_e_r │ │ │ │ │ -PoolAllocator< U, s > other │ │ │ │ │ -DDeeffiinniittiioonn poolallocator.hh:369 │ │ │ │ │ +_D_u_n_e_:_:_d_o_t_T │ │ │ │ │ +auto dotT(const A &a, const B &b) -> decltype(a *b) │ │ │ │ │ +Computes an indefinite vector dot product for fundamental data types according │ │ │ │ │ +to Petsc's VectTDot fu... │ │ │ │ │ +DDeeffiinniittiioonn dotproduct.hh:90 │ │ │ │ │ +_D_u_n_e_:_:_I_s_V_e_c_t_o_r │ │ │ │ │ +DDeeffiinniittiioonn dotproduct.hh:27 │ │ │ │ │ +_D_u_n_e_:_:_F_i_e_l_d_T_r_a_i_t_s_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ +T real_type │ │ │ │ │ +export the type representing the real type of the field │ │ │ │ │ +DDeeffiinniittiioonn ftraits.hh:30 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00026.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: float_cmp.hh File Reference │ │ │ │ +dune-common: boundschecking.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,101 +70,33 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ -Classes | │ │ │ │ -Namespaces | │ │ │ │ -Enumerations | │ │ │ │ -Functions
│ │ │ │ -
float_cmp.hh File Reference
│ │ │ │ +Macros
│ │ │ │ +
boundschecking.hh File Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ -

Various ways to compare floating-point numbers. │ │ │ │ +

Macro for wrapping boundary checks. │ │ │ │ More...

│ │ │ │ -
#include "float_cmp.cc"
│ │ │ │ +
#include <dune/common/exceptions.hh>
│ │ │ │
│ │ │ │

Go to the source code of this file.

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

│ │ │ │ -Classes

struct  Dune::FloatCmp::DefaultEpsilon< T, style >
 mapping from a value type and a compare style to a default epsilon More...
 
class  Dune::FloatCmpOps< T, cstyle_, rstyle_ >
 Class encapsulating a default epsilon. More...
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Namespaces

namespace  Dune
 Dune namespace.
 
namespace  Dune::FloatCmp
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Enumerations

enum  Dune::FloatCmp::CmpStyle { Dune::FloatCmp::relativeWeak │ │ │ │ -, Dune::FloatCmp::relativeStrong │ │ │ │ -, Dune::FloatCmp::absolute │ │ │ │ -, Dune::FloatCmp::defaultCmpStyle = relativeWeak │ │ │ │ - }
 
enum  Dune::FloatCmp::RoundingStyle {
│ │ │ │ -  Dune::FloatCmp::towardZero │ │ │ │ -, Dune::FloatCmp::towardInf │ │ │ │ -, Dune::FloatCmp::downward │ │ │ │ -, Dune::FloatCmp::upward │ │ │ │ -,
│ │ │ │ -  Dune::FloatCmp::defaultRoundingStyle = towardZero │ │ │ │ -
│ │ │ │ - }
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ -Functions

template<class T , CmpStyle style>
bool Dune::FloatCmp::eq (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test for equality using epsilon
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::ne (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test for inequality using epsilon
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::gt (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first greater than second
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::lt (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first lesser than second
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::ge (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first greater or equal second
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::le (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first lesser or equal second
 
template<class I , class T , CmpStyle cstyle, RoundingStyle rstyle>
Dune::FloatCmp::round (const T &val, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, cstyle >::value())
 round using epsilon
 
template<class I , class T , CmpStyle cstyle, RoundingStyle rstyle>
Dune::FloatCmp::trunc (const T &val, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, cstyle >::value())
 truncate using epsilon
 

│ │ │ │ +Macros

#define DUNE_ASSERT_BOUNDS(cond)
 If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
 
│ │ │ │

Detailed Description

│ │ │ │ -

Various ways to compare floating-point numbers.

│ │ │ │ +

Macro for wrapping boundary checks.

│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,81 +1,20 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _E_n_u_m_e_r_a_t_i_o_n_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ -float_cmp.hh File Reference │ │ │ │ │ -Various ways to compare floating-point numbers. _M_o_r_e_._._. │ │ │ │ │ -#include "_f_l_o_a_t___c_m_p_._c_c" │ │ │ │ │ +_M_a_c_r_o_s │ │ │ │ │ +boundschecking.hh File Reference │ │ │ │ │ +Macro for wrapping boundary checks. _M_o_r_e_._._. │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_e_x_c_e_p_t_i_o_n_s_._h_h> │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -CCllaasssseess │ │ │ │ │ -struct   _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_ _T_,_ _s_t_y_l_e_ _> │ │ │ │ │ -  mapping from a value type and a compare style to a default epsilon │ │ │ │ │ - _M_o_r_e_._._. │ │ │ │ │ -  │ │ │ │ │ - class   _D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_<_ _T_,_ _c_s_t_y_l_e___,_ _r_s_t_y_l_e___ _> │ │ │ │ │ -  Class encapsulating a default epsilon. _M_o_r_e_._._. │ │ │ │ │ -  │ │ │ │ │ -NNaammeessppaacceess │ │ │ │ │ -namespace   _D_u_n_e │ │ │ │ │ -  _D_u_n_e namespace. │ │ │ │ │ -  │ │ │ │ │ -namespace   _D_u_n_e_:_:_F_l_o_a_t_C_m_p │ │ │ │ │ -  │ │ │ │ │ -EEnnuummeerraattiioonnss │ │ │ │ │ -enum   _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_C_m_p_S_t_y_l_e { _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_r_e_l_a_t_i_v_e_W_e_a_k , _D_u_n_e_:_: │ │ │ │ │ - _F_l_o_a_t_C_m_p_:_:_r_e_l_a_t_i_v_e_S_t_r_o_n_g , _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_a_b_s_o_l_u_t_e , _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_: │ │ │ │ │ - _d_e_f_a_u_l_t_C_m_p_S_t_y_l_e = relativeWeak } │ │ │ │ │ -  │ │ │ │ │ -enum   _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_R_o_u_n_d_i_n_g_S_t_y_l_e { │ │ │ │ │ -   _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_t_o_w_a_r_d_Z_e_r_o , _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_t_o_w_a_r_d_I_n_f , _D_u_n_e_:_: │ │ │ │ │ - _F_l_o_a_t_C_m_p_:_:_d_o_w_n_w_a_r_d , _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_u_p_w_a_r_d , │ │ │ │ │ -   _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_d_e_f_a_u_l_t_R_o_u_n_d_i_n_g_S_t_y_l_e = towardZero │ │ │ │ │ - } │ │ │ │ │ -  │ │ │ │ │ -FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_e_q (const T &first, const T &second, typename │ │ │ │ │ - _E_p_s_i_l_o_n_T_y_p_e< T >::Type epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, style >::value()) │ │ │ │ │ -  test for equality using epsilon │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_n_e (const T &first, const T &second, typename │ │ │ │ │ - _E_p_s_i_l_o_n_T_y_p_e< T >::Type epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, style >::value()) │ │ │ │ │ -  test for inequality using epsilon │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_g_t (const T &first, const T &second, typename │ │ │ │ │ - _E_p_s_i_l_o_n_T_y_p_e< T >::Type epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, style >::value()) │ │ │ │ │ -  test if first greater than second │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_l_t (const T &first, const T &second, typename │ │ │ │ │ - _E_p_s_i_l_o_n_T_y_p_e< T >::Type epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, style >::value()) │ │ │ │ │ -  test if first lesser than second │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_g_e (const T &first, const T &second, typename │ │ │ │ │ - _E_p_s_i_l_o_n_T_y_p_e< T >::Type epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, style >::value()) │ │ │ │ │ -  test if first greater or equal second │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -bool  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_l_e (const T &first, const T &second, typename │ │ │ │ │ - _E_p_s_i_l_o_n_T_y_p_e< T >::Type epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, style >::value()) │ │ │ │ │ -  test if first lesser or equal second │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - I  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_r_o_u_n_d (const T &val, typename _E_p_s_i_l_o_n_T_y_p_e< T >::Type │ │ │ │ │ - epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, cstyle >::value()) │ │ │ │ │ -  round using epsilon │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - I  _D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_t_r_u_n_c (const T &val, typename _E_p_s_i_l_o_n_T_y_p_e< T >::Type │ │ │ │ │ - epsilon=_D_e_f_a_u_l_t_E_p_s_i_l_o_n< T, cstyle >::value()) │ │ │ │ │ -  truncate using epsilon │ │ │ │ │ +MMaaccrrooss │ │ │ │ │ +#define  _D_U_N_E___A_S_S_E_R_T___B_O_U_N_D_S(cond) │ │ │ │ │ +  If DUNE_CHECK_BOUNDS is defined: check if condition ccoonndd holds; │ │ │ │ │ + otherwise, do nothing. │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -Various ways to compare floating-point numbers. │ │ │ │ │ +Macro for wrapping boundary checks. │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: float_cmp.hh Source File │ │ │ │ +dune-common: boundschecking.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,197 +74,44 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
float_cmp.hh
│ │ │ │ +
boundschecking.hh
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │ -
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │ -
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │ -
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ -
5#ifndef DUNE_COMMON_FLOAT_CMP_HH
│ │ │ │ -
6#define DUNE_COMMON_FLOAT_CMP_HH
│ │ │ │ +Go to the documentation of this file.
1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │ +
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │ +
3#ifndef DUNE_BOUNDSCHECKING_HH
│ │ │ │ +
4#define DUNE_BOUNDSCHECKING_HH
│ │ │ │ +
5
│ │ │ │ + │ │ │ │
7
│ │ │ │ -
97namespace Dune {
│ │ │ │ -
100 namespace FloatCmp {
│ │ │ │ -
101 // basic constants
│ │ │ │ -
│ │ │ │ -
104 enum CmpStyle {
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
113 };
│ │ │ │ -
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
127 };
│ │ │ │ -
│ │ │ │ -
128
│ │ │ │ -
129 template<class T> struct EpsilonType;
│ │ │ │ -
130
│ │ │ │ -
132
│ │ │ │ -
137 template<class T, CmpStyle style = defaultCmpStyle>
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
140 static typename EpsilonType<T>::Type value();
│ │ │ │ -
141 };
│ │ │ │ -
│ │ │ │ -
142
│ │ │ │ -
143 // operations in functional style
│ │ │ │ -
144
│ │ │ │ -
147
│ │ │ │ -
149
│ │ │ │ -
156 template <class T, CmpStyle style /*= defaultCmpStyle*/>
│ │ │ │ -
157 bool eq(const T &first,
│ │ │ │ -
158 const T &second,
│ │ │ │ - │ │ │ │ -
161
│ │ │ │ -
169 template <class T, CmpStyle style /*= defaultCmpStyle*/>
│ │ │ │ -
170 bool ne(const T &first,
│ │ │ │ -
171 const T &second,
│ │ │ │ - │ │ │ │ -
174
│ │ │ │ -
185 template <class T, CmpStyle style /*= defaultCmpStyle*/>
│ │ │ │ -
186 bool gt(const T &first,
│ │ │ │ -
187 const T &second,
│ │ │ │ - │ │ │ │ -
190
│ │ │ │ -
201 template <class T, CmpStyle style /*= defaultCmpStyle*/>
│ │ │ │ -
202 bool lt(const T &first,
│ │ │ │ -
203 const T &second,
│ │ │ │ - │ │ │ │ -
206
│ │ │ │ -
217 template <class T, CmpStyle style /*= defaultCmpStyle*/>
│ │ │ │ -
218 bool ge(const T &first,
│ │ │ │ -
219 const T &second,
│ │ │ │ - │ │ │ │ -
222
│ │ │ │ -
233 template <class T, CmpStyle style /*= defaultCmpStyle*/>
│ │ │ │ -
234 bool le(const T &first,
│ │ │ │ -
235 const T &second,
│ │ │ │ - │ │ │ │ -
237
│ │ │ │ -
238 // rounding operations
│ │ │ │ -
240
│ │ │ │ -
253 template<class I, class T, CmpStyle cstyle /*= defaultCmpStyle*/, RoundingStyle rstyle /*= defaultRoundingStyle*/>
│ │ │ │ -
254 I round(const T &val, typename EpsilonType<T>::Type epsilon = DefaultEpsilon<T, cstyle>::value());
│ │ │ │ -
255 // truncation
│ │ │ │ -
257
│ │ │ │ -
270 template<class I, class T, CmpStyle cstyle /*= defaultCmpStyle*/, RoundingStyle rstyle /*= defaultRoundingStyle*/>
│ │ │ │ -
271 I trunc(const T &val, typename EpsilonType<T>::Type epsilon = DefaultEpsilon<T, cstyle>::value());
│ │ │ │ -
272
│ │ │ │ -
274 // group FloatCmp
│ │ │ │ -
275 } //namespace FloatCmp
│ │ │ │ -
276
│ │ │ │ -
277
│ │ │ │ -
278 // oo interface
│ │ │ │ -
280
│ │ │ │ -
286 template<class T, FloatCmp::CmpStyle cstyle_ = FloatCmp::defaultCmpStyle,
│ │ │ │ - │ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
291
│ │ │ │ -
292 public:
│ │ │ │ -
293 // record template parameters
│ │ │ │ -
295 static const CmpStyle cstyle = cstyle_;
│ │ │ │ -
297 static const RoundingStyle rstyle = rstyle_;
│ │ │ │ -
299 typedef T ValueType;
│ │ │ │ -
301
│ │ │ │ - │ │ │ │ -
305
│ │ │ │ -
306 private:
│ │ │ │ -
307 EpsilonType epsilon_;
│ │ │ │ -
308
│ │ │ │ - │ │ │ │ -
310
│ │ │ │ -
311 public:
│ │ │ │ -
313
│ │ │ │ - │ │ │ │ -
317
│ │ │ │ -
319 EpsilonType epsilon() const;
│ │ │ │ -
321 void epsilon(EpsilonType epsilon__);
│ │ │ │ -
322
│ │ │ │ -
324 bool eq(const ValueType &first, const ValueType &second) const;
│ │ │ │ -
326
│ │ │ │ -
329 bool ne(const ValueType &first, const ValueType &second) const;
│ │ │ │ -
331
│ │ │ │ -
335 bool gt(const ValueType &first, const ValueType &second) const;
│ │ │ │ -
337
│ │ │ │ -
341 bool lt(const ValueType &first, const ValueType &second) const;
│ │ │ │ -
343
│ │ │ │ -
347 bool ge(const ValueType &first, const ValueType &second) const;
│ │ │ │ -
349
│ │ │ │ -
353 bool le(const ValueType &first, const ValueType &second) const;
│ │ │ │ -
354
│ │ │ │ -
356
│ │ │ │ -
365 template<class I>
│ │ │ │ -
366 I round(const ValueType &val) const;
│ │ │ │ -
367
│ │ │ │ -
369
│ │ │ │ -
378 template<class I>
│ │ │ │ -
379 I trunc(const ValueType &val) const;
│ │ │ │ -
380
│ │ │ │ -
381 };
│ │ │ │ -
│ │ │ │ -
382
│ │ │ │ -
383} //namespace Dune
│ │ │ │ -
384
│ │ │ │ -
385#include "float_cmp.cc"
│ │ │ │ -
386
│ │ │ │ -
387#endif //DUNE_COMMON_FLOAT_CMP_HH
│ │ │ │ - │ │ │ │ -
bool ne(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test for inequality using epsilon
Definition float_cmp.cc:151
│ │ │ │ -
CmpStyle
Definition float_cmp.hh:104
│ │ │ │ -
bool eq(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test for equality using epsilon
Definition float_cmp.cc:144
│ │ │ │ -
I round(const T &val, typename EpsilonType< T >::Type epsilon)
round using epsilon
Definition float_cmp.cc:311
│ │ │ │ -
I trunc(const T &val, typename EpsilonType< T >::Type epsilon)
truncate using epsilon
Definition float_cmp.cc:407
│ │ │ │ -
RoundingStyle
Definition float_cmp.hh:116
│ │ │ │ -
bool lt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first lesser than second
Definition float_cmp.cc:165
│ │ │ │ -
bool gt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first greater than second
Definition float_cmp.cc:158
│ │ │ │ -
bool ge(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first greater or equal second
Definition float_cmp.cc:172
│ │ │ │ -
bool le(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first lesser or equal second
Definition float_cmp.cc:179
│ │ │ │ -
@ defaultCmpStyle
the global default compare style (relative_weak)
Definition float_cmp.hh:112
│ │ │ │ -
@ relativeStrong
|a-b|/|a| <= epsilon && |a-b|/|b| <= epsilon
Definition float_cmp.hh:108
│ │ │ │ -
@ relativeWeak
|a-b|/|a| <= epsilon || |a-b|/|b| <= epsilon
Definition float_cmp.hh:106
│ │ │ │ -
@ absolute
|a-b| <= epsilon
Definition float_cmp.hh:110
│ │ │ │ -
@ towardZero
always round toward 0
Definition float_cmp.hh:118
│ │ │ │ -
@ towardInf
always round away from 0
Definition float_cmp.hh:120
│ │ │ │ -
@ upward
round toward
Definition float_cmp.hh:124
│ │ │ │ -
@ downward
round toward
Definition float_cmp.hh:122
│ │ │ │ -
@ defaultRoundingStyle
the global default rounding style (toward_zero)
Definition float_cmp.hh:126
│ │ │ │ -
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ -
T Type
The epsilon type corresponding to value type T.
Definition float_cmp.cc:25
│ │ │ │ -
mapping from a value type and a compare style to a default epsilon
Definition float_cmp.hh:138
│ │ │ │ -
static EpsilonType< T >::Type value()
Returns the default epsilon for the given value type and compare style.
│ │ │ │ -
Class encapsulating a default epsilon.
Definition float_cmp.hh:288
│ │ │ │ -
bool le(const ValueType &first, const ValueType &second) const
test if first lesser or equal second
Definition float_cmp.cc:486
│ │ │ │ -
bool eq(const ValueType &first, const ValueType &second) const
test for equality using epsilon
Definition float_cmp.cc:451
│ │ │ │ -
static const CmpStyle cstyle
How comparisons are done.
Definition float_cmp.hh:295
│ │ │ │ -
bool lt(const ValueType &first, const ValueType &second) const
test if first lesser than second
Definition float_cmp.cc:472
│ │ │ │ -
bool ge(const ValueType &first, const ValueType &second) const
test if first greater or equal second
Definition float_cmp.cc:479
│ │ │ │ -
static const RoundingStyle rstyle
How rounding is done.
Definition float_cmp.hh:297
│ │ │ │ -
FloatCmp::EpsilonType< T >::Type EpsilonType
Type of the epsilon.
Definition float_cmp.hh:304
│ │ │ │ -
bool ne(const ValueType &first, const ValueType &second) const
test for inequality using epsilon
Definition float_cmp.cc:458
│ │ │ │ -
T ValueType
Type of the values to compare.
Definition float_cmp.hh:299
│ │ │ │ -
EpsilonType epsilon() const
return the current epsilon
Definition float_cmp.cc:436
│ │ │ │ -
I round(const ValueType &val) const
round using epsilon
Definition float_cmp.cc:495
│ │ │ │ -
I trunc(const ValueType &val) const
truncate using epsilon
Definition float_cmp.cc:503
│ │ │ │ -
bool gt(const ValueType &first, const ValueType &second) const
test if first greater than second
Definition float_cmp.cc:465
│ │ │ │ +
19#ifndef DUNE_ASSERT_BOUNDS
│ │ │ │ +
20#if defined(DUNE_CHECK_BOUNDS) || defined(DOXYGEN)
│ │ │ │ +
21
│ │ │ │ +
│ │ │ │ +
30#define DUNE_ASSERT_BOUNDS(cond) \
│ │ │ │ +
31 do { \
│ │ │ │ +
32 if (!(cond)) \
│ │ │ │ +
33 DUNE_THROW(Dune::RangeError, "Index out of bounds."); \
│ │ │ │ +
34 } while (false)
│ │ │ │ +
│ │ │ │ +
35
│ │ │ │ +
36#else
│ │ │ │ +
37#define DUNE_ASSERT_BOUNDS(cond)
│ │ │ │ +
38#endif
│ │ │ │ +
39#endif
│ │ │ │ +
40
│ │ │ │ +
41/* @} */
│ │ │ │ +
42
│ │ │ │ +
43#endif // DUNE_BOUNDSCHECKING_HH
│ │ │ │ +
A few common exception classes.
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,298 +1,37 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -float_cmp.hh │ │ │ │ │ +boundschecking.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ -2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ -3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ +1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ -4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ -5#ifndef DUNE_COMMON_FLOAT_CMP_HH │ │ │ │ │ -6#define DUNE_COMMON_FLOAT_CMP_HH │ │ │ │ │ +2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ +3#ifndef DUNE_BOUNDSCHECKING_HH │ │ │ │ │ +4#define DUNE_BOUNDSCHECKING_HH │ │ │ │ │ +5 │ │ │ │ │ +6#include <_d_u_n_e_/_c_o_m_m_o_n_/_e_x_c_e_p_t_i_o_n_s_._h_h> │ │ │ │ │ 7 │ │ │ │ │ -97namespace _D_u_n_e { │ │ │ │ │ -100 namespace FloatCmp { │ │ │ │ │ -101 // basic constants │ │ │ │ │ -_1_0_4 enum _C_m_p_S_t_y_l_e { │ │ │ │ │ -_1_0_6 _r_e_l_a_t_i_v_e_W_e_a_k, │ │ │ │ │ -_1_0_8 _r_e_l_a_t_i_v_e_S_t_r_o_n_g, │ │ │ │ │ -_1_1_0 _a_b_s_o_l_u_t_e, │ │ │ │ │ -112 _d_e_f_a_u_l_t_C_m_p_S_t_y_l_e = _r_e_l_a_t_i_v_e_W_e_a_k │ │ │ │ │ -_1_1_3 }; │ │ │ │ │ -_1_1_6 enum _R_o_u_n_d_i_n_g_S_t_y_l_e { │ │ │ │ │ -_1_1_8 _t_o_w_a_r_d_Z_e_r_o, │ │ │ │ │ -_1_2_0 _t_o_w_a_r_d_I_n_f, │ │ │ │ │ -_1_2_2 _d_o_w_n_w_a_r_d, │ │ │ │ │ -_1_2_4 _u_p_w_a_r_d, │ │ │ │ │ -126 _d_e_f_a_u_l_t_R_o_u_n_d_i_n_g_S_t_y_l_e = _t_o_w_a_r_d_Z_e_r_o │ │ │ │ │ -_1_2_7 }; │ │ │ │ │ -128 │ │ │ │ │ -129 template struct EpsilonType; │ │ │ │ │ -130 │ │ │ │ │ -132 │ │ │ │ │ -137 template │ │ │ │ │ -_1_3_8 struct _D_e_f_a_u_l_t_E_p_s_i_l_o_n { │ │ │ │ │ -_1_4_0 static typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e _v_a_l_u_e(); │ │ │ │ │ -141 }; │ │ │ │ │ -142 │ │ │ │ │ -143 // operations in functional style │ │ │ │ │ -144 │ │ │ │ │ -147 │ │ │ │ │ -149 │ │ │ │ │ -156 template │ │ │ │ │ -157 bool _e_q(const T &first, │ │ │ │ │ -158 const T &second, │ │ │ │ │ -159 typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -161 │ │ │ │ │ -169 template │ │ │ │ │ -170 bool _n_e(const T &first, │ │ │ │ │ -171 const T &second, │ │ │ │ │ -172 typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -174 │ │ │ │ │ -185 template │ │ │ │ │ -186 bool _g_t(const T &first, │ │ │ │ │ -187 const T &second, │ │ │ │ │ -188 typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -190 │ │ │ │ │ -201 template │ │ │ │ │ -202 bool _l_t(const T &first, │ │ │ │ │ -203 const T &second, │ │ │ │ │ -204 typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -206 │ │ │ │ │ -217 template │ │ │ │ │ -218 bool _g_e(const T &first, │ │ │ │ │ -219 const T &second, │ │ │ │ │ -220 typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -222 │ │ │ │ │ -233 template │ │ │ │ │ -234 bool _l_e(const T &first, │ │ │ │ │ -235 const T &second, │ │ │ │ │ -236 typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -237 │ │ │ │ │ -238 // rounding operations │ │ │ │ │ -240 │ │ │ │ │ -253 template │ │ │ │ │ -254 I _r_o_u_n_d(const T &val, typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = │ │ │ │ │ -_D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _c_s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -255 // truncation │ │ │ │ │ -257 │ │ │ │ │ -270 template │ │ │ │ │ -271 I _t_r_u_n_c(const T &val, typename _E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e epsilon = │ │ │ │ │ -_D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_T_,_ _c_s_t_y_l_e_>_:_:_v_a_l_u_e()); │ │ │ │ │ -272 │ │ │ │ │ -274 // group FloatCmp │ │ │ │ │ -275 } //namespace FloatCmp │ │ │ │ │ -276 │ │ │ │ │ -277 │ │ │ │ │ -278 // oo interface │ │ │ │ │ -280 │ │ │ │ │ -286 template │ │ │ │ │ -_2_8_8 class _F_l_o_a_t_C_m_p_O_p_s { │ │ │ │ │ -289 typedef _F_l_o_a_t_C_m_p_:_:_C_m_p_S_t_y_l_e _C_m_p_S_t_y_l_e; │ │ │ │ │ -290 typedef _F_l_o_a_t_C_m_p_:_:_R_o_u_n_d_i_n_g_S_t_y_l_e _R_o_u_n_d_i_n_g_S_t_y_l_e; │ │ │ │ │ -291 │ │ │ │ │ -292 public: │ │ │ │ │ -293 // record template parameters │ │ │ │ │ -_2_9_5 static const _C_m_p_S_t_y_l_e _c_s_t_y_l_e = cstyle_; │ │ │ │ │ -_2_9_7 static const _R_o_u_n_d_i_n_g_S_t_y_l_e _r_s_t_y_l_e = rstyle_; │ │ │ │ │ -_2_9_9 typedef T _V_a_l_u_e_T_y_p_e; │ │ │ │ │ -301 │ │ │ │ │ -_3_0_4 typedef typename _F_l_o_a_t_C_m_p_:_:_E_p_s_i_l_o_n_T_y_p_e_<_T_>_:_:_T_y_p_e _E_p_s_i_l_o_n_T_y_p_e; │ │ │ │ │ -305 │ │ │ │ │ -306 private: │ │ │ │ │ -307 _E_p_s_i_l_o_n_T_y_p_e epsilon_; │ │ │ │ │ -308 │ │ │ │ │ -309 typedef _F_l_o_a_t_C_m_p_:_:_D_e_f_a_u_l_t_E_p_s_i_l_o_n_<_E_p_s_i_l_o_n_T_y_p_e_,_ _c_s_t_y_l_e_> _D_e_f_a_u_l_t_E_p_s_i_l_o_n; │ │ │ │ │ -310 │ │ │ │ │ -311 public: │ │ │ │ │ -313 │ │ │ │ │ -316 _F_l_o_a_t_C_m_p_O_p_s(_E_p_s_i_l_o_n_T_y_p_e _e_p_s_i_l_o_n = _D_e_f_a_u_l_t_E_p_s_i_l_o_n_:_:_v_a_l_u_e()); │ │ │ │ │ -317 │ │ │ │ │ -319 _E_p_s_i_l_o_n_T_y_p_e _e_p_s_i_l_o_n() const; │ │ │ │ │ -321 void _e_p_s_i_l_o_n(_E_p_s_i_l_o_n_T_y_p_e epsilon__); │ │ │ │ │ -322 │ │ │ │ │ -324 bool _e_q(const _V_a_l_u_e_T_y_p_e &first, const _V_a_l_u_e_T_y_p_e &second) const; │ │ │ │ │ -326 │ │ │ │ │ -329 bool _n_e(const _V_a_l_u_e_T_y_p_e &first, const _V_a_l_u_e_T_y_p_e &second) const; │ │ │ │ │ -331 │ │ │ │ │ -335 bool _g_t(const _V_a_l_u_e_T_y_p_e &first, const _V_a_l_u_e_T_y_p_e &second) const; │ │ │ │ │ -337 │ │ │ │ │ -341 bool _l_t(const _V_a_l_u_e_T_y_p_e &first, const _V_a_l_u_e_T_y_p_e &second) const; │ │ │ │ │ -343 │ │ │ │ │ -347 bool _g_e(const _V_a_l_u_e_T_y_p_e &first, const _V_a_l_u_e_T_y_p_e &second) const; │ │ │ │ │ -349 │ │ │ │ │ -353 bool _l_e(const _V_a_l_u_e_T_y_p_e &first, const _V_a_l_u_e_T_y_p_e &second) const; │ │ │ │ │ -354 │ │ │ │ │ -356 │ │ │ │ │ -365 template │ │ │ │ │ -366 I _r_o_u_n_d(const _V_a_l_u_e_T_y_p_e &val) const; │ │ │ │ │ -367 │ │ │ │ │ -369 │ │ │ │ │ -378 template │ │ │ │ │ -379 I _t_r_u_n_c(const _V_a_l_u_e_T_y_p_e &val) const; │ │ │ │ │ -380 │ │ │ │ │ -381 }; │ │ │ │ │ -382 │ │ │ │ │ -383} //namespace Dune │ │ │ │ │ -384 │ │ │ │ │ -385#include "_f_l_o_a_t___c_m_p_._c_c" │ │ │ │ │ -386 │ │ │ │ │ -387#endif //DUNE_COMMON_FLOAT_CMP_HH │ │ │ │ │ -_f_l_o_a_t___c_m_p_._c_c │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_n_e │ │ │ │ │ -bool ne(const T &first, const T &second, typename EpsilonType< T >::Type │ │ │ │ │ -epsilon) │ │ │ │ │ -test for inequality using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:151 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_C_m_p_S_t_y_l_e │ │ │ │ │ -CmpStyle │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:104 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_e_q │ │ │ │ │ -bool eq(const T &first, const T &second, typename EpsilonType< T >::Type │ │ │ │ │ -epsilon) │ │ │ │ │ -test for equality using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:144 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_r_o_u_n_d │ │ │ │ │ -I round(const T &val, typename EpsilonType< T >::Type epsilon) │ │ │ │ │ -round using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:311 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_t_r_u_n_c │ │ │ │ │ -I trunc(const T &val, typename EpsilonType< T >::Type epsilon) │ │ │ │ │ -truncate using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:407 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_R_o_u_n_d_i_n_g_S_t_y_l_e │ │ │ │ │ -RoundingStyle │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:116 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_l_t │ │ │ │ │ -bool lt(const T &first, const T &second, typename EpsilonType< T >::Type │ │ │ │ │ -epsilon) │ │ │ │ │ -test if first lesser than second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:165 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_g_t │ │ │ │ │ -bool gt(const T &first, const T &second, typename EpsilonType< T >::Type │ │ │ │ │ -epsilon) │ │ │ │ │ -test if first greater than second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:158 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_g_e │ │ │ │ │ -bool ge(const T &first, const T &second, typename EpsilonType< T >::Type │ │ │ │ │ -epsilon) │ │ │ │ │ -test if first greater or equal second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:172 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_l_e │ │ │ │ │ -bool le(const T &first, const T &second, typename EpsilonType< T >::Type │ │ │ │ │ -epsilon) │ │ │ │ │ -test if first lesser or equal second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:179 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_d_e_f_a_u_l_t_C_m_p_S_t_y_l_e │ │ │ │ │ -@ defaultCmpStyle │ │ │ │ │ -the global default compare style (relative_weak) │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:112 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_r_e_l_a_t_i_v_e_S_t_r_o_n_g │ │ │ │ │ -@ relativeStrong │ │ │ │ │ -|a-b|/|a| <= epsilon && |a-b|/|b| <= epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:108 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_r_e_l_a_t_i_v_e_W_e_a_k │ │ │ │ │ -@ relativeWeak │ │ │ │ │ -|a-b|/|a| <= epsilon || |a-b|/|b| <= epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:106 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_a_b_s_o_l_u_t_e │ │ │ │ │ -@ absolute │ │ │ │ │ -|a-b| <= epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:110 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_t_o_w_a_r_d_Z_e_r_o │ │ │ │ │ -@ towardZero │ │ │ │ │ -always round toward 0 │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:118 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_t_o_w_a_r_d_I_n_f │ │ │ │ │ -@ towardInf │ │ │ │ │ -always round away from 0 │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:120 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_u_p_w_a_r_d │ │ │ │ │ -@ upward │ │ │ │ │ -round toward │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:124 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_d_o_w_n_w_a_r_d │ │ │ │ │ -@ downward │ │ │ │ │ -round toward │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:122 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_d_e_f_a_u_l_t_R_o_u_n_d_i_n_g_S_t_y_l_e │ │ │ │ │ -@ defaultRoundingStyle │ │ │ │ │ -the global default rounding style (toward_zero) │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:126 │ │ │ │ │ -_D_u_n_e │ │ │ │ │ -Dune namespace. │ │ │ │ │ -DDeeffiinniittiioonn alignedallocator.hh:13 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_E_p_s_i_l_o_n_T_y_p_e_:_:_T_y_p_e │ │ │ │ │ -T Type │ │ │ │ │ -The epsilon type corresponding to value type T. │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:25 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_D_e_f_a_u_l_t_E_p_s_i_l_o_n │ │ │ │ │ -mapping from a value type and a compare style to a default epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:138 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_:_:_D_e_f_a_u_l_t_E_p_s_i_l_o_n_:_:_v_a_l_u_e │ │ │ │ │ -static EpsilonType< T >::Type value() │ │ │ │ │ -Returns the default epsilon for the given value type and compare style. │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s │ │ │ │ │ -Class encapsulating a default epsilon. │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:288 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_l_e │ │ │ │ │ -bool le(const ValueType &first, const ValueType &second) const │ │ │ │ │ -test if first lesser or equal second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:486 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_e_q │ │ │ │ │ -bool eq(const ValueType &first, const ValueType &second) const │ │ │ │ │ -test for equality using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:451 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_c_s_t_y_l_e │ │ │ │ │ -static const CmpStyle cstyle │ │ │ │ │ -How comparisons are done. │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:295 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_l_t │ │ │ │ │ -bool lt(const ValueType &first, const ValueType &second) const │ │ │ │ │ -test if first lesser than second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:472 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_g_e │ │ │ │ │ -bool ge(const ValueType &first, const ValueType &second) const │ │ │ │ │ -test if first greater or equal second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:479 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_r_s_t_y_l_e │ │ │ │ │ -static const RoundingStyle rstyle │ │ │ │ │ -How rounding is done. │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:297 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_E_p_s_i_l_o_n_T_y_p_e │ │ │ │ │ -FloatCmp::EpsilonType< T >::Type EpsilonType │ │ │ │ │ -Type of the epsilon. │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:304 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_n_e │ │ │ │ │ -bool ne(const ValueType &first, const ValueType &second) const │ │ │ │ │ -test for inequality using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:458 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_V_a_l_u_e_T_y_p_e │ │ │ │ │ -T ValueType │ │ │ │ │ -Type of the values to compare. │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.hh:299 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_e_p_s_i_l_o_n │ │ │ │ │ -EpsilonType epsilon() const │ │ │ │ │ -return the current epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:436 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_r_o_u_n_d │ │ │ │ │ -I round(const ValueType &val) const │ │ │ │ │ -round using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:495 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_t_r_u_n_c │ │ │ │ │ -I trunc(const ValueType &val) const │ │ │ │ │ -truncate using epsilon │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:503 │ │ │ │ │ -_D_u_n_e_:_:_F_l_o_a_t_C_m_p_O_p_s_:_:_g_t │ │ │ │ │ -bool gt(const ValueType &first, const ValueType &second) const │ │ │ │ │ -test if first greater than second │ │ │ │ │ -DDeeffiinniittiioonn float_cmp.cc:465 │ │ │ │ │ +19#ifndef DUNE_ASSERT_BOUNDS │ │ │ │ │ +20#if defined(DUNE_CHECK_BOUNDS) || defined(DOXYGEN) │ │ │ │ │ +21 │ │ │ │ │ +_3_0#define DUNE_ASSERT_BOUNDS(cond) \ │ │ │ │ │ +31 do { \ │ │ │ │ │ +32 if (!(cond)) \ │ │ │ │ │ +33 DUNE_THROW(Dune::RangeError, "Index out of bounds."); \ │ │ │ │ │ +34 } while (false) │ │ │ │ │ +35 │ │ │ │ │ +36#else │ │ │ │ │ +37#define DUNE_ASSERT_BOUNDS(cond) │ │ │ │ │ +38#endif │ │ │ │ │ +39#endif │ │ │ │ │ +40 │ │ │ │ │ +41/* @} */ │ │ │ │ │ +42 │ │ │ │ │ +43#endif // DUNE_BOUNDSCHECKING_HH │ │ │ │ │ +_e_x_c_e_p_t_i_o_n_s_._h_h │ │ │ │ │ +A few common exception classes. │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00029.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: stdstreams.hh File Reference │ │ │ │ +dune-common: tupleutility.hh File Reference │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,84 +70,118 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ +Classes | │ │ │ │ Namespaces | │ │ │ │ -Macros | │ │ │ │ -Typedefs | │ │ │ │ -Variables
│ │ │ │ -
stdstreams.hh File Reference
│ │ │ │ +Functions
│ │ │ │ +
tupleutility.hh File Reference
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ -

Standard Dune debug streams. │ │ │ │ +

Contains utility classes which can be used with std::tuple. │ │ │ │ More...

│ │ │ │ -
#include "debugstream.hh"
│ │ │ │ +
#include <cstddef>
│ │ │ │ +#include <tuple>
│ │ │ │ +#include <type_traits>
│ │ │ │ +#include <utility>
│ │ │ │ +#include <dune/common/hybridutilities.hh>
│ │ │ │ +#include <dune/common/typetraits.hh>
│ │ │ │
│ │ │ │

Go to the source code of this file.

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

│ │ │ │ +Classes

struct  Dune::TupleAccessTraits< T >
 
struct  Dune::TupleAccessTraits< T * >
 
struct  Dune::TupleAccessTraits< T & >
 
struct  Dune::NullPointerInitialiser< std::tuple< Args... > >
 
struct  Dune::ForEachType< TE, std::tuple< Args... > >
 
class  Dune::TransformTupleFunctor< TE, Args >
 
struct  Dune::TransformTupleFunctor< TE, Args >::TypeEvaluator< T >
 
struct  Dune::AddRefTypeEvaluator< T >
 TypeEvaluator to turn a type T into a reference to T More...
 
struct  Dune::AddPtrTypeEvaluator< T >
 TypeEvaluator to turn a type T into a pointer to T More...
 
struct  Dune::AddPtrTypeEvaluator< T & >
 
struct  Dune::AtType< N, Tuple >
 Type for reverse element access. More...
 
struct  Dune::At< N >
 Reverse element access. More...
 
struct  Dune::PointerPairDeletor< Tuple >
 Deletes all objects pointed to in a std::tuple of pointers. More...
 
class  Dune::FirstPredicateIndex< Tuple, Predicate, start, size >
 Finding the index of a certain type in a std::tuple. More...
 
struct  Dune::IsType< T >
 Generator for predicates accepting one particular type. More...
 
struct  Dune::IsType< T >::Predicate< U >
 The actual predicate. More...
 
struct  Dune::FirstTypeIndex< Tuple, T, start >
 Find the first occurrence of a type in a std::tuple. More...
 
struct  Dune::PushBackTuple< typename std::tuple< Args... >, T >
 
struct  Dune::PushFrontTuple< typename std::tuple< Args... >, T >
 
struct  Dune::ReduceTuple< F, Tuple, Seed, N >
 Apply reduce with meta binary function to template. More...
 
struct  Dune::ReduceTuple< F, Tuple, Seed, 0 >
 Apply reduce with meta binary function to template. More...
 
struct  Dune::JoinTuples< Head, Tail >
 Join two std::tuple's. More...
 
struct  Dune::FlattenTuple< Tuple >
 Flatten a std::tuple of std::tuple's. More...
 
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Namespaces

namespace  Dune
 Dune namespace.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Macros

#define DUNE_MINIMAL_DEBUG_LEVEL   4
 The default minimum debug level.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -

│ │ │ │ -Typedefs

typedef DebugStream< VERY_VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DVVerbType
 Type of very verbose debug stream.
 
typedef DebugStream< VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DVerbType
 Type of more verbose debug stream.
 
typedef DebugStream< INFO_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DInfoType
 Type of debug stream with info level.
 
typedef DebugStream< WARN_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DWarnType
 Type of debug stream with warn level.
 
typedef DebugStream< GRAVE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DGraveType
 Type of debug stream for fatal errors.
 
typedef DebugStream< 1 > Dune::DErrType
 The type of the stream used for error messages.
 
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

│ │ │ │ -Variables

static const DebugLevel Dune::MINIMAL_DEBUG_LEVEL = DUNE_MINIMAL_DEBUG_LEVEL
 
static const DebugLevel Dune::VERY_VERBOSE_DEBUG_LEVEL = 1
 The level of the very verbose debug stream.
 
static const DebugLevel Dune::VERBOSE_DEBUG_LEVEL = 2
 The level of the verbose debug stream.
 
static const DebugLevel Dune::INFO_DEBUG_LEVEL = 3
 The level of the informative debug stream.
 
static const DebugLevel Dune::WARN_DEBUG_LEVEL = 4
 The level of the debug stream for warnings.
 
static const DebugLevel Dune::GRAVE_DEBUG_LEVEL = 5
 The level of the debug stream for fatal errors.
 

│ │ │ │ +Functions

template<class F , class ArgTuple , class I , I... i>
decltype(auto) Dune::applyPartial (F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
 Apply function with arguments from a given tuple.
 
template<class Tuple , class Functor >
auto Dune::genericTransformTuple (Tuple &&t, Functor &&f) -> decltype(genericTransformTupleBackend(t, f))
 
template<template< class > class TE, class... Args>
TransformTupleFunctor< TE, Args... > Dune::makeTransformTupleFunctor (Args &&... args)
 
template<template< class > class TypeEvaluator, class Tuple , class... Args>
auto Dune::transformTuple (Tuple &&orig, Args &&... args) -> decltype(genericTransformTuple(orig, makeTransformTupleFunctor< TypeEvaluator >(args...)))
 
│ │ │ │

Detailed Description

│ │ │ │ -

Standard Dune debug streams.

│ │ │ │ -

The standard debug streams are compiled into libdune to exist globally. This file declares the stream types and the global debug level.

│ │ │ │ +

Contains utility classes which can be used with std::tuple.

│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,70 +1,108 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -_N_a_m_e_s_p_a_c_e_s | _M_a_c_r_o_s | _T_y_p_e_d_e_f_s | _V_a_r_i_a_b_l_e_s │ │ │ │ │ -stdstreams.hh File Reference │ │ │ │ │ -Standard _D_u_n_e debug streams. _M_o_r_e_._._. │ │ │ │ │ -#include "_d_e_b_u_g_s_t_r_e_a_m_._h_h" │ │ │ │ │ +_C_l_a_s_s_e_s | _N_a_m_e_s_p_a_c_e_s | _F_u_n_c_t_i_o_n_s │ │ │ │ │ +tupleutility.hh File Reference │ │ │ │ │ +_C_o_m_m_o_n » _U_t_i_l_i_t_i_e_s » _T_u_p_l_e_ _U_t_i_l_i_t_i_e_s │ │ │ │ │ +Contains utility classes which can be used with std::tuple. _M_o_r_e_._._. │ │ │ │ │ +#include │ │ │ │ │ +#include │ │ │ │ │ +#include │ │ │ │ │ +#include │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_h_y_b_r_i_d_u_t_i_l_i_t_i_e_s_._h_h> │ │ │ │ │ +#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _s_o_u_r_c_e_ _c_o_d_e_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ -NNaammeessppaacceess │ │ │ │ │ -namespace   _D_u_n_e │ │ │ │ │ -  _D_u_n_e namespace. │ │ │ │ │ +CCllaasssseess │ │ │ │ │ +struct   _D_u_n_e_:_:_T_u_p_l_e_A_c_c_e_s_s_T_r_a_i_t_s_<_ _T_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_T_u_p_l_e_A_c_c_e_s_s_T_r_a_i_t_s_<_ _T_ _*_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_T_u_p_l_e_A_c_c_e_s_s_T_r_a_i_t_s_<_ _T_ _&_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_N_u_l_l_P_o_i_n_t_e_r_I_n_i_t_i_a_l_i_s_e_r_<_ _s_t_d_:_:_t_u_p_l_e_<_ _A_r_g_s_._._._ _>_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_F_o_r_E_a_c_h_T_y_p_e_<_ _T_E_,_ _s_t_d_:_:_t_u_p_l_e_<_ _A_r_g_s_._._._ _>_ _> │ │ │ │ │ +  │ │ │ │ │ + class   _D_u_n_e_:_:_T_r_a_n_s_f_o_r_m_T_u_p_l_e_F_u_n_c_t_o_r_<_ _T_E_,_ _A_r_g_s_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_T_r_a_n_s_f_o_r_m_T_u_p_l_e_F_u_n_c_t_o_r_<_ _T_E_,_ _A_r_g_s_ _>_:_:_T_y_p_e_E_v_a_l_u_a_t_o_r_<_ _T_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_A_d_d_R_e_f_T_y_p_e_E_v_a_l_u_a_t_o_r_<_ _T_ _> │ │ │ │ │ +  TypeEvaluator to turn a type T into a reference to T _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_A_d_d_P_t_r_T_y_p_e_E_v_a_l_u_a_t_o_r_<_ _T_ _> │ │ │ │ │ +  TypeEvaluator to turn a type T into a pointer to T _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_A_d_d_P_t_r_T_y_p_e_E_v_a_l_u_a_t_o_r_<_ _T_ _&_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_A_t_T_y_p_e_<_ _N_,_ _T_u_p_l_e_ _> │ │ │ │ │ +  Type for reverse element access. _M_o_r_e_._._. │ │ │ │ │   │ │ │ │ │ -MMaaccrrooss │ │ │ │ │ -#define  _D_U_N_E___M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L   4 │ │ │ │ │ -  The default minimum debug level. │ │ │ │ │ -  │ │ │ │ │ -TTyyppeeddeeffss │ │ │ │ │ - typedef _D_e_b_u_g_S_t_r_e_a_m< │ │ │ │ │ - _V_E_R_Y___V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L, │ │ │ │ │ - _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L >  _D_u_n_e_:_:_D_V_V_e_r_b_T_y_p_e │ │ │ │ │ -  Type of very verbose debug stream. │ │ │ │ │ -  │ │ │ │ │ - typedef _D_e_b_u_g_S_t_r_e_a_m< │ │ │ │ │ -_V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L, _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L │ │ │ │ │ - >  _D_u_n_e_:_:_D_V_e_r_b_T_y_p_e │ │ │ │ │ -  Type of more verbose debug stream. │ │ │ │ │ -  │ │ │ │ │ - typedef _D_e_b_u_g_S_t_r_e_a_m< _I_N_F_O___D_E_B_U_G___L_E_V_E_L, │ │ │ │ │ - _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L >  _D_u_n_e_:_:_D_I_n_f_o_T_y_p_e │ │ │ │ │ -  Type of debug stream with info level. │ │ │ │ │ -  │ │ │ │ │ - typedef _D_e_b_u_g_S_t_r_e_a_m< _W_A_R_N___D_E_B_U_G___L_E_V_E_L, │ │ │ │ │ - _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L >  _D_u_n_e_:_:_D_W_a_r_n_T_y_p_e │ │ │ │ │ -  Type of debug stream with warn level. │ │ │ │ │ -  │ │ │ │ │ - typedef _D_e_b_u_g_S_t_r_e_a_m< _G_R_A_V_E___D_E_B_U_G___L_E_V_E_L, │ │ │ │ │ - _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L >  _D_u_n_e_:_:_D_G_r_a_v_e_T_y_p_e │ │ │ │ │ -  Type of debug stream for fatal errors. │ │ │ │ │ -  │ │ │ │ │ - typedef _D_e_b_u_g_S_t_r_e_a_m< 1 >  _D_u_n_e_:_:_D_E_r_r_T_y_p_e │ │ │ │ │ -  The type of the stream used for error │ │ │ │ │ - messages. │ │ │ │ │ -  │ │ │ │ │ -VVaarriiaabblleess │ │ │ │ │ -static const _D_e_b_u_g_L_e_v_e_l  _D_u_n_e_:_:_M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L = _D_U_N_E___M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L │ │ │ │ │ -  │ │ │ │ │ -static const _D_e_b_u_g_L_e_v_e_l  _D_u_n_e_:_:_V_E_R_Y___V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L = 1 │ │ │ │ │ -  The level of the very verbose debug stream. │ │ │ │ │ -  │ │ │ │ │ -static const _D_e_b_u_g_L_e_v_e_l  _D_u_n_e_:_:_V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L = 2 │ │ │ │ │ -  The level of the verbose debug stream. │ │ │ │ │ +struct   _D_u_n_e_:_:_A_t_<_ _N_ _> │ │ │ │ │ +  Reverse element access. _M_o_r_e_._._. │ │ │ │ │   │ │ │ │ │ -static const _D_e_b_u_g_L_e_v_e_l  _D_u_n_e_:_:_I_N_F_O___D_E_B_U_G___L_E_V_E_L = 3 │ │ │ │ │ -  The level of the informative debug stream. │ │ │ │ │ +struct   _D_u_n_e_:_:_P_o_i_n_t_e_r_P_a_i_r_D_e_l_e_t_o_r_<_ _T_u_p_l_e_ _> │ │ │ │ │ +  Deletes all objects pointed to in a std::tuple of pointers. _M_o_r_e_._._. │ │ │ │ │   │ │ │ │ │ -static const _D_e_b_u_g_L_e_v_e_l  _D_u_n_e_:_:_W_A_R_N___D_E_B_U_G___L_E_V_E_L = 4 │ │ │ │ │ -  The level of the debug stream for warnings. │ │ │ │ │ + class   _D_u_n_e_:_:_F_i_r_s_t_P_r_e_d_i_c_a_t_e_I_n_d_e_x_<_ _T_u_p_l_e_,_ _P_r_e_d_i_c_a_t_e_,_ _s_t_a_r_t_,_ _s_i_z_e_ _> │ │ │ │ │ +  Finding the index of a certain type in a std::tuple. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_I_s_T_y_p_e_<_ _T_ _> │ │ │ │ │ +  Generator for predicates accepting one particular type. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_I_s_T_y_p_e_<_ _T_ _>_:_:_P_r_e_d_i_c_a_t_e_<_ _U_ _> │ │ │ │ │ +  The actual predicate. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_F_i_r_s_t_T_y_p_e_I_n_d_e_x_<_ _T_u_p_l_e_,_ _T_,_ _s_t_a_r_t_ _> │ │ │ │ │ +  Find the first occurrence of a type in a std::tuple. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_P_u_s_h_B_a_c_k_T_u_p_l_e_<_ _t_y_p_e_n_a_m_e_ _s_t_d_:_:_t_u_p_l_e_<_ _A_r_g_s_._._._ _>_,_ _T_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_P_u_s_h_F_r_o_n_t_T_u_p_l_e_<_ _t_y_p_e_n_a_m_e_ _s_t_d_:_:_t_u_p_l_e_<_ _A_r_g_s_._._._ _>_,_ _T_ _> │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_R_e_d_u_c_e_T_u_p_l_e_<_ _F_,_ _T_u_p_l_e_,_ _S_e_e_d_,_ _N_ _> │ │ │ │ │ +  Apply reduce with meta binary function to template. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_R_e_d_u_c_e_T_u_p_l_e_<_ _F_,_ _T_u_p_l_e_,_ _S_e_e_d_,_ _0_ _> │ │ │ │ │ +  Apply reduce with meta binary function to template. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_J_o_i_n_T_u_p_l_e_s_<_ _H_e_a_d_,_ _T_a_i_l_ _> │ │ │ │ │ +  Join two std::tuple's. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +struct   _D_u_n_e_:_:_F_l_a_t_t_e_n_T_u_p_l_e_<_ _T_u_p_l_e_ _> │ │ │ │ │ +  Flatten a std::tuple of std::tuple's. _M_o_r_e_._._. │ │ │ │ │ +  │ │ │ │ │ +NNaammeessppaacceess │ │ │ │ │ +namespace   _D_u_n_e │ │ │ │ │ +  _D_u_n_e namespace. │ │ │ │ │   │ │ │ │ │ -static const _D_e_b_u_g_L_e_v_e_l  _D_u_n_e_:_:_G_R_A_V_E___D_E_B_U_G___L_E_V_E_L = 5 │ │ │ │ │ -  The level of the debug stream for fatal errors. │ │ │ │ │ +FFuunnccttiioonnss │ │ │ │ │ +template │ │ │ │ │ + decltype(auto)  _D_u_n_e_:_:_a_p_p_l_y_P_a_r_t_i_a_l (F &&f, ArgTuple │ │ │ │ │ + &&args, std::integer_sequence< I, i... >) │ │ │ │ │ +  Apply function with arguments from a │ │ │ │ │ + given tuple. │ │ │ │ │ +  │ │ │ │ │ +template │ │ │ │ │ + auto  _D_u_n_e_:_:_g_e_n_e_r_i_c_T_r_a_n_s_f_o_r_m_T_u_p_l_e (Tuple &&t, │ │ │ │ │ + Functor &&f) -> decltype │ │ │ │ │ + (genericTransformTupleBackend(t, f)) │ │ │ │ │ +  │ │ │ │ │ +template class TE, class... Args> │ │ │ │ │ +_T_r_a_n_s_f_o_r_m_T_u_p_l_e_F_u_n_c_t_o_r< TE, Args... >  _D_u_n_e_:_:_m_a_k_e_T_r_a_n_s_f_o_r_m_T_u_p_l_e_F_u_n_c_t_o_r (Args │ │ │ │ │ + &&... args) │ │ │ │ │ +  │ │ │ │ │ +template class TypeEvaluator, class Tuple , class... Args> │ │ │ │ │ + auto  _D_u_n_e_:_:_t_r_a_n_s_f_o_r_m_T_u_p_l_e (Tuple &&orig, Args │ │ │ │ │ + &&... args) -> decltype │ │ │ │ │ + (_g_e_n_e_r_i_c_T_r_a_n_s_f_o_r_m_T_u_p_l_e(orig, │ │ │ │ │ + _m_a_k_e_T_r_a_n_s_f_o_r_m_T_u_p_l_e_F_u_n_c_t_o_r< TypeEvaluator │ │ │ │ │ + >(args...))) │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -Standard _D_u_n_e debug streams. │ │ │ │ │ -The standard debug streams are compiled into libdune to exist globally. This │ │ │ │ │ -file declares the stream types and the global debug level. │ │ │ │ │ +Contains utility classes which can be used with std::tuple. │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -dune-common: stdstreams.hh Source File │ │ │ │ +dune-common: tupleutility.hh Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,94 +74,447 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
stdstreams.hh
│ │ │ │ +
tupleutility.hh
│ │ │ │
│ │ │ │
│ │ │ │ Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
│ │ │ │
2// vi: set et ts=4 sw=2 sts=2:
│ │ │ │
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
│ │ │ │
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
│ │ │ │
5
│ │ │ │ -
15#ifndef DUNE_COMMON_STDSTREAMS_HH
│ │ │ │ -
16#define DUNE_COMMON_STDSTREAMS_HH
│ │ │ │ -
17
│ │ │ │ -
18#include "debugstream.hh"
│ │ │ │ -
19
│ │ │ │ -
20namespace Dune {
│ │ │ │ -
21
│ │ │ │ -
66#ifndef DUNE_MINIMAL_DEBUG_LEVEL
│ │ │ │ -
67#define DUNE_MINIMAL_DEBUG_LEVEL 4
│ │ │ │ -
68#endif
│ │ │ │ - │ │ │ │ +
6#ifndef DUNE_TUPLE_UTILITY_HH
│ │ │ │ +
7#define DUNE_TUPLE_UTILITY_HH
│ │ │ │ +
8
│ │ │ │ +
9#include <cstddef>
│ │ │ │ +
10#include <tuple>
│ │ │ │ +
11#include <type_traits>
│ │ │ │ +
12#include <utility>
│ │ │ │ +
13
│ │ │ │ + │ │ │ │ + │ │ │ │ +
16
│ │ │ │ +
17namespace Dune {
│ │ │ │ +
18
│ │ │ │ +
41 template<class F, class ArgTuple, class I, I... i>
│ │ │ │ +
│ │ │ │ +
42 decltype(auto) applyPartial(F&& f, ArgTuple&& args, std::integer_sequence<I, i...> /*indices*/)
│ │ │ │ +
43 {
│ │ │ │ +
44 return f(std::get<i>(args)...);
│ │ │ │ +
45 }
│ │ │ │ +
│ │ │ │ +
46
│ │ │ │ +
47 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
49 {
│ │ │ │ +
50 typedef typename std::add_const<T>::type& ConstType;
│ │ │ │ +
51 typedef T& NonConstType;
│ │ │ │ +
52 typedef const typename std::remove_const<T>::type& ParameterType;
│ │ │ │ +
53 };
│ │ │ │ +
│ │ │ │ +
54
│ │ │ │ +
55 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
57 {
│ │ │ │ +
58 typedef typename std::add_const<T>::type* ConstType;
│ │ │ │ +
59 typedef T* NonConstType;
│ │ │ │ +
60 typedef T* ParameterType;
│ │ │ │ +
61 };
│ │ │ │ +
│ │ │ │ +
62
│ │ │ │ +
63 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
65 {
│ │ │ │ +
66 typedef T& ConstType;
│ │ │ │ +
67 typedef T& NonConstType;
│ │ │ │ +
68 typedef T& ParameterType;
│ │ │ │ +
69 };
│ │ │ │ +
│ │ │ │
70
│ │ │ │ - │ │ │ │ -
76
│ │ │ │ - │ │ │ │ -
82
│ │ │ │ - │ │ │ │ -
96
│ │ │ │ - │ │ │ │ -
102
│ │ │ │ - │ │ │ │ -
108
│ │ │ │ - │ │ │ │ +
78 template<class T>
│ │ │ │ + │ │ │ │ +
80
│ │ │ │ +
81 template<class... Args>
│ │ │ │ +
│ │ │ │ +
82 struct NullPointerInitialiser<std::tuple<Args...> >
│ │ │ │ +
83 {
│ │ │ │ +
84 typedef std::tuple<Args...> ResultType;
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
86 {
│ │ │ │ +
87 return ResultType(static_cast<Args>(nullptr)...);
│ │ │ │ +
88 }
│ │ │ │ +
│ │ │ │ +
89 };
│ │ │ │ +
│ │ │ │ +
90
│ │ │ │ +
115 template<template <class> class TE, class T>
│ │ │ │ + │ │ │ │
117
│ │ │ │ -
122 static const DebugLevel INFO_DEBUG_LEVEL = 3;
│ │ │ │ +
118 template<template <class> class TE, class... Args>
│ │ │ │ +
│ │ │ │ +
119 struct ForEachType<TE, std::tuple<Args...> >
│ │ │ │ +
120 {
│ │ │ │ +
121 typedef std::tuple<typename TE<Args>::Type...> Type;
│ │ │ │ +
122 };
│ │ │ │ +
│ │ │ │
123
│ │ │ │ - │ │ │ │ -
129
│ │ │ │ - │ │ │ │ -
141
│ │ │ │ -
146 static const DebugLevel WARN_DEBUG_LEVEL = 4;
│ │ │ │ -
147
│ │ │ │ - │ │ │ │ -
153
│ │ │ │ - │ │ │ │ -
162
│ │ │ │ - │ │ │ │ -
168
│ │ │ │ - │ │ │ │ -
171
│ │ │ │ - │ │ │ │ -
180
│ │ │ │ - │ │ │ │ -
183
│ │ │ │ - │ │ │ │ -
196
│ │ │ │ -
198}
│ │ │ │ -
199
│ │ │ │ -
200#endif
│ │ │ │ -
Defines several output streams for messages of different importance.
│ │ │ │ -
unsigned int DebugLevel
Type for debug levels.
Definition debugstream.hh:118
│ │ │ │ -
DebugStream< VERY_VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DVVerbType
Type of very verbose debug stream.
Definition stdstreams.hh:81
│ │ │ │ -
DebugStream< WARN_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DWarnType
Type of debug stream with warn level.
Definition stdstreams.hh:152
│ │ │ │ -
DVVerbType dvverb(std::cout)
stream for very verbose output.
Definition stdstreams.hh:95
│ │ │ │ -
static const DebugLevel MINIMAL_DEBUG_LEVEL
Definition stdstreams.hh:69
│ │ │ │ -
#define DUNE_MINIMAL_DEBUG_LEVEL
The default minimum debug level.
Definition stdstreams.hh:67
│ │ │ │ -
static const DebugLevel VERY_VERBOSE_DEBUG_LEVEL
The level of the very verbose debug stream.
Definition stdstreams.hh:75
│ │ │ │ -
DWarnType dwarn(std::cerr)
Stream for warnings indicating problems.
Definition stdstreams.hh:161
│ │ │ │ -
static const DebugLevel GRAVE_DEBUG_LEVEL
The level of the debug stream for fatal errors.
Definition stdstreams.hh:167
│ │ │ │ -
DebugStream< VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DVerbType
Type of more verbose debug stream.
Definition stdstreams.hh:107
│ │ │ │ -
DebugStream< GRAVE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DGraveType
Type of debug stream for fatal errors.
Definition stdstreams.hh:170
│ │ │ │ -
DGraveType dgrave(std::cerr)
Stream for warnings indicating fatal errors.
Definition stdstreams.hh:179
│ │ │ │ -
DebugStream< 1 > DErrType
The type of the stream used for error messages.
Definition stdstreams.hh:182
│ │ │ │ -
static const DebugLevel INFO_DEBUG_LEVEL
The level of the informative debug stream.
Definition stdstreams.hh:122
│ │ │ │ -
DebugStream< INFO_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DInfoType
Type of debug stream with info level.
Definition stdstreams.hh:128
│ │ │ │ -
DInfoType dinfo(std::cout)
Stream for informative output.
Definition stdstreams.hh:140
│ │ │ │ -
DVerbType dverb(std::cout)
Singleton of verbose debug stream.
Definition stdstreams.hh:116
│ │ │ │ -
static const DebugLevel VERBOSE_DEBUG_LEVEL
The level of the verbose debug stream.
Definition stdstreams.hh:101
│ │ │ │ -
DErrType derr(std::cerr)
Stream for error messages.
Definition stdstreams.hh:195
│ │ │ │ -
static const DebugLevel WARN_DEBUG_LEVEL
The level of the debug stream for warnings.
Definition stdstreams.hh:146
│ │ │ │ +
124#ifndef DOXYGEN
│ │ │ │ +
125 template<class Tuple, class Functor, std::size_t... I>
│ │ │ │ +
126 inline auto genericTransformTupleBackendImpl(Tuple& t, Functor& f, const std::index_sequence<I...>& )
│ │ │ │ +
127 -> std::tuple<decltype(f(std::get<I>(t)))...>
│ │ │ │ +
128 {
│ │ │ │ +
129 return std::tuple<decltype(f(std::get<I>(t)))...>(f(std::get<I>(t))...);
│ │ │ │ +
130 }
│ │ │ │ +
131
│ │ │ │ +
132 template<class... Args, class Functor>
│ │ │ │ +
133 auto genericTransformTupleBackend(std::tuple<Args...>& t, Functor& f) ->
│ │ │ │ +
134 decltype(genericTransformTupleBackendImpl(t, f,std::index_sequence_for<Args...>{}))
│ │ │ │ +
135 {
│ │ │ │ +
136 return genericTransformTupleBackendImpl(t, f,std::index_sequence_for<Args...>{});
│ │ │ │ +
137 }
│ │ │ │ +
138
│ │ │ │ +
139 template<class... Args, class Functor>
│ │ │ │ +
140 auto genericTransformTupleBackend(const std::tuple<Args...>& t, Functor& f) ->
│ │ │ │ +
141 decltype(genericTransformTupleBackendImpl(t, f, std::index_sequence_for<Args...>{}))
│ │ │ │ +
142 {
│ │ │ │ +
143 return genericTransformTupleBackendImpl(t, f, std::index_sequence_for<Args...>{});
│ │ │ │ +
144 }
│ │ │ │ +
145#endif
│ │ │ │ +
146
│ │ │ │ +
185 template<class Tuple, class Functor>
│ │ │ │ +
│ │ │ │ +
186 auto genericTransformTuple(Tuple&& t, Functor&& f) ->
│ │ │ │ +
187 decltype(genericTransformTupleBackend(t, f))
│ │ │ │ +
188 {
│ │ │ │ +
189 return genericTransformTupleBackend(t, f);
│ │ │ │ +
190 }
│ │ │ │ +
│ │ │ │ +
191
│ │ │ │ +
224 template<template<class> class TE, class... Args>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
226 {
│ │ │ │ +
227 mutable std::tuple<Args&...> tup;
│ │ │ │ +
228
│ │ │ │ +
229 template<class T, std::size_t... I>
│ │ │ │ +
230 inline auto apply(T&& t, const std::index_sequence<I...>& ) ->
│ │ │ │ +
231 decltype(TE<T>::apply(t,std::get<I>(tup)...)) const
│ │ │ │ +
232 {
│ │ │ │ +
233 return TE<T>::apply(t,std::get<I>(tup)...);
│ │ │ │ +
234 }
│ │ │ │ +
235
│ │ │ │ +
236 public:
│ │ │ │ +
237 template<class T>
│ │ │ │ +
│ │ │ │ +
238 struct TypeEvaluator : public TE<T>
│ │ │ │ +
239 {};
│ │ │ │ +
│ │ │ │ +
240
│ │ │ │ +
│ │ │ │ +
241 TransformTupleFunctor(Args&&... args)
│ │ │ │ +
242 : tup(args...)
│ │ │ │ +
243 { }
│ │ │ │ +
│ │ │ │ +
244
│ │ │ │ +
245 template<class T>
│ │ │ │ +
│ │ │ │ +
246 inline auto operator()(T&& t) ->
│ │ │ │ +
247 decltype(this->apply(t,std::index_sequence_for<Args...>{})) const
│ │ │ │ +
248 {
│ │ │ │ +
249 return apply(t,std::index_sequence_for<Args...>{});
│ │ │ │ +
250 }
│ │ │ │ +
│ │ │ │ +
251 };
│ │ │ │ +
│ │ │ │ +
252
│ │ │ │ +
253 template<template<class> class TE, class... Args>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
255 {
│ │ │ │ +
256 return TransformTupleFunctor<TE, Args...>(args...);
│ │ │ │ +
257 }
│ │ │ │ +
│ │ │ │ +
258
│ │ │ │ +
291 template<template<class> class TypeEvaluator, class Tuple, class... Args>
│ │ │ │ +
│ │ │ │ +
292 auto transformTuple(Tuple&& orig, Args&&... args) ->
│ │ │ │ +
293 decltype(genericTransformTuple(orig, makeTransformTupleFunctor<TypeEvaluator>(args...)))
│ │ │ │ +
294 {
│ │ │ │ +
295 return genericTransformTuple(orig, makeTransformTupleFunctor<TypeEvaluator>(args...));
│ │ │ │ +
296 }
│ │ │ │ +
│ │ │ │ +
297
│ │ │ │ +
299
│ │ │ │ +
303 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
305 {
│ │ │ │ +
306 typedef T& Type;
│ │ │ │ +
│ │ │ │ +
307 static Type apply(T& t)
│ │ │ │ +
308 {
│ │ │ │ +
309 return t;
│ │ │ │ +
310 }
│ │ │ │ +
│ │ │ │ +
311 };
│ │ │ │ +
│ │ │ │ +
312
│ │ │ │ +
314
│ │ │ │ +
318 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
320 {
│ │ │ │ +
321 typedef typename std::remove_reference<T>::type* Type;
│ │ │ │ +
│ │ │ │ +
322 static Type apply(T& t)
│ │ │ │ +
323 {
│ │ │ │ +
324 return &t;
│ │ │ │ +
325 }
│ │ │ │ +
│ │ │ │ +
326 };
│ │ │ │ +
│ │ │ │ +
327
│ │ │ │ +
328 // Specialization, in case the type is already a reference
│ │ │ │ +
329 template<class T>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
331 {
│ │ │ │ +
332 typedef typename std::remove_reference<T>::type* Type;
│ │ │ │ +
│ │ │ │ +
333 static Type apply(T& t)
│ │ │ │ +
334 {
│ │ │ │ +
335 return &t;
│ │ │ │ +
336 }
│ │ │ │ +
│ │ │ │ +
337 };
│ │ │ │ +
│ │ │ │ +
338
│ │ │ │ +
344 template<int N, class Tuple>
│ │ │ │ +
│ │ │ │ +
345 struct AtType
│ │ │ │ +
346 {
│ │ │ │ +
347 typedef typename std::tuple_element<std::tuple_size<Tuple>::value - N - 1, Tuple>::type Type;
│ │ │ │ +
348 };
│ │ │ │ +
│ │ │ │ +
349
│ │ │ │ +
357 template<int N>
│ │ │ │ +
│ │ │ │ +
358 struct At
│ │ │ │ +
359 {
│ │ │ │ +
360 template<typename Tuple>
│ │ │ │ +
361 static typename TupleAccessTraits<typename AtType<N, Tuple>::Type>::NonConstType
│ │ │ │ +
│ │ │ │ +
362 get(Tuple& t)
│ │ │ │ +
363 {
│ │ │ │ +
364 return std::get<std::tuple_size<Tuple>::value - N - 1>(t);
│ │ │ │ +
365 }
│ │ │ │ +
│ │ │ │ +
366
│ │ │ │ +
367 template<typename Tuple>
│ │ │ │ +
368 static typename TupleAccessTraits<typename AtType<N, Tuple>::Type>::ConstType
│ │ │ │ +
│ │ │ │ +
369 get(const Tuple& t)
│ │ │ │ +
370 {
│ │ │ │ +
371 return std::get<std::tuple_size<Tuple>::value - N - 1>(t);
│ │ │ │ +
372 }
│ │ │ │ +
│ │ │ │ +
373 };
│ │ │ │ +
│ │ │ │ +
374
│ │ │ │ +
378 template<class Tuple>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
380 {
│ │ │ │ +
381 template<typename... Ts>
│ │ │ │ +
│ │ │ │ +
382 static void apply(std::tuple<Ts...>& t)
│ │ │ │ +
383 {
│ │ │ │ +
384 Hybrid::forEach(t,[&](auto&& ti){delete ti; ti=nullptr;});
│ │ │ │ +
385 }
│ │ │ │ +
│ │ │ │ +
386 };
│ │ │ │ +
│ │ │ │ +
387
│ │ │ │ +
411 template<class Tuple, template<class> class Predicate, std::size_t start = 0,
│ │ │ │ +
412 std::size_t size = std::tuple_size<Tuple>::value>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
414 public std::conditional<Predicate<typename std::tuple_element<start,
│ │ │ │ +
415 Tuple>::type>::value,
│ │ │ │ +
416 std::integral_constant<std::size_t, start>,
│ │ │ │ +
417 FirstPredicateIndex<Tuple, Predicate, start+1> >::type
│ │ │ │ +
418 {
│ │ │ │ +
419 static_assert(std::tuple_size<Tuple>::value == size, "The \"size\" "
│ │ │ │ +
420 "template parameter of FirstPredicateIndex is an "
│ │ │ │ +
421 "implementation detail and should never be set "
│ │ │ │ +
422 "explicitly!");
│ │ │ │ +
423 };
│ │ │ │ +
│ │ │ │ +
424
│ │ │ │ +
425#ifndef DOXYGEN
│ │ │ │ +
426 template<class Tuple, template<class> class Predicate, std::size_t size>
│ │ │ │ +
427 class FirstPredicateIndex<Tuple, Predicate, size, size>
│ │ │ │ +
428 {
│ │ │ │ +
429 static_assert(AlwaysFalse<Tuple>::value, "None of the std::tuple element "
│ │ │ │ +
430 "types matches the predicate!");
│ │ │ │ +
431 };
│ │ │ │ +
432#endif // !DOXYGEN
│ │ │ │ +
433
│ │ │ │ +
443 template<class T>
│ │ │ │ +
│ │ │ │ +
444 struct IsType
│ │ │ │ +
445 {
│ │ │ │ +
447 template<class U>
│ │ │ │ +
448 struct Predicate : public std::is_same<T, U> {};
│ │ │ │ +
449 };
│ │ │ │ +
│ │ │ │ +
450
│ │ │ │ +
464 template<class Tuple, class T, std::size_t start = 0>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
466 public FirstPredicateIndex<Tuple, IsType<T>::template Predicate, start>
│ │ │ │ +
467 { };
│ │ │ │ +
│ │ │ │ +
468
│ │ │ │ +
475 template<class Tuple, class T>
│ │ │ │ + │ │ │ │ +
477
│ │ │ │ +
478 template<class... Args, class T>
│ │ │ │ +
│ │ │ │ +
479 struct PushBackTuple<typename std::tuple<Args...>, T>
│ │ │ │ +
480 {
│ │ │ │ +
481 typedef typename std::tuple<Args..., T> type;
│ │ │ │ +
482 };
│ │ │ │ +
│ │ │ │ +
483
│ │ │ │ +
490 template<class Tuple, class T>
│ │ │ │ + │ │ │ │ +
492
│ │ │ │ +
493 template<class... Args, class T>
│ │ │ │ +
│ │ │ │ +
494 struct PushFrontTuple<typename std::tuple<Args...>, T>
│ │ │ │ +
495 {
│ │ │ │ +
496 typedef typename std::tuple<T, Args...> type;
│ │ │ │ +
497 };
│ │ │ │ +
│ │ │ │ +
498
│ │ │ │ +
511 template<
│ │ │ │ +
512 template <class, class> class F,
│ │ │ │ +
513 class Tuple,
│ │ │ │ +
514 class Seed=std::tuple<>,
│ │ │ │ +
515 int N=std::tuple_size<Tuple>::value>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
517 {
│ │ │ │ +
518 typedef typename ReduceTuple<F, Tuple, Seed, N-1>::type Accumulated;
│ │ │ │ +
519 typedef typename std::tuple_element<N-1, Tuple>::type Value;
│ │ │ │ +
520
│ │ │ │ +
522 typedef typename F<Accumulated, Value>::type type;
│ │ │ │ +
523 };
│ │ │ │ +
│ │ │ │ +
524
│ │ │ │ +
535 template<
│ │ │ │ +
536 template <class, class> class F,
│ │ │ │ +
537 class Tuple,
│ │ │ │ +
538 class Seed>
│ │ │ │ +
│ │ │ │ +
539 struct ReduceTuple<F, Tuple, Seed, 0>
│ │ │ │ +
540 {
│ │ │ │ +
542 typedef Seed type;
│ │ │ │ +
543 };
│ │ │ │ +
│ │ │ │ +
544
│ │ │ │ +
554 template<class Head, class Tail>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
556 {
│ │ │ │ + │ │ │ │ +
559 };
│ │ │ │ +
│ │ │ │ +
560
│ │ │ │ +
569 template<class Tuple>
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
571 {
│ │ │ │ + │ │ │ │ +
574 };
│ │ │ │ +
│ │ │ │ +
575
│ │ │ │ +
577}
│ │ │ │ +
578
│ │ │ │ +
579#endif
│ │ │ │ + │ │ │ │ +
Traits for type conversions and type information.
│ │ │ │ +
std::add_const< T >::type & ConstType
Definition tupleutility.hh:50
│ │ │ │ +
static void apply(std::tuple< Ts... > &t)
Definition tupleutility.hh:382
│ │ │ │ +
T * ParameterType
Definition tupleutility.hh:60
│ │ │ │ +
auto transformTuple(Tuple &&orig, Args &&... args) -> decltype(genericTransformTuple(orig, makeTransformTupleFunctor< TypeEvaluator >(args...)))
Definition tupleutility.hh:292
│ │ │ │ +
T & ConstType
Definition tupleutility.hh:66
│ │ │ │ +
ReduceTuple< F, Tuple, Seed, N-1 >::type Accumulated
Definition tupleutility.hh:518
│ │ │ │ +
T * NonConstType
Definition tupleutility.hh:59
│ │ │ │ +
Seed type
Result of the reduce operation.
Definition tupleutility.hh:542
│ │ │ │ +
std::remove_reference< T >::type * Type
Definition tupleutility.hh:321
│ │ │ │ +
static Type apply(T &t)
Definition tupleutility.hh:307
│ │ │ │ +
static ResultType apply()
Definition tupleutility.hh:85
│ │ │ │ +
std::tuple< Args... > ResultType
Definition tupleutility.hh:84
│ │ │ │ +
std::remove_reference< T >::type * Type
Definition tupleutility.hh:332
│ │ │ │ +
TransformTupleFunctor(Args &&... args)
Definition tupleutility.hh:241
│ │ │ │ +
std::tuple_element< std::tuple_size< Tuple >::value-N-1, Tuple >::type Type
Definition tupleutility.hh:347
│ │ │ │ +
static Type apply(T &t)
Definition tupleutility.hh:333
│ │ │ │ +
auto operator()(T &&t) -> decltype(this->apply(t, std::index_sequence_for< Args... >{})) const
Definition tupleutility.hh:246
│ │ │ │ +
T & NonConstType
Definition tupleutility.hh:67
│ │ │ │ +
T & NonConstType
Definition tupleutility.hh:51
│ │ │ │ +
static TupleAccessTraits< typenameAtType< N, Tuple >::Type >::ConstType get(const Tuple &t)
Definition tupleutility.hh:369
│ │ │ │ +
T & Type
Definition tupleutility.hh:306
│ │ │ │ +
static TupleAccessTraits< typenameAtType< N, Tuple >::Type >::NonConstType get(Tuple &t)
Definition tupleutility.hh:362
│ │ │ │ +
std::tuple< Args..., T > type
Definition tupleutility.hh:481
│ │ │ │ +
std::tuple_element< N-1, Tuple >::type Value
Definition tupleutility.hh:519
│ │ │ │ +
std::tuple< T, Args... > type
Definition tupleutility.hh:496
│ │ │ │ +
ReduceTuple< JoinTuples, Tuple >::type type
Result of the flatten operation.
Definition tupleutility.hh:573
│ │ │ │ +
static Type apply(T &t)
Definition tupleutility.hh:322
│ │ │ │ +
F< Accumulated, Value >::type type
Result of the reduce operation.
Definition tupleutility.hh:522
│ │ │ │ +
ReduceTuple< PushBackTuple, Tail, Head >::type type
Result of the join operation.
Definition tupleutility.hh:558
│ │ │ │ +
std::tuple< typename TE< Args >::Type... > Type
Definition tupleutility.hh:121
│ │ │ │ +
auto genericTransformTuple(Tuple &&t, Functor &&f) -> decltype(genericTransformTupleBackend(t, f))
Definition tupleutility.hh:186
│ │ │ │ +
decltype(auto) applyPartial(F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
Apply function with arguments from a given tuple.
Definition tupleutility.hh:42
│ │ │ │ +
T & ParameterType
Definition tupleutility.hh:68
│ │ │ │ +
const std::remove_const< T >::type & ParameterType
Definition tupleutility.hh:52
│ │ │ │ +
std::add_const< T >::type * ConstType
Definition tupleutility.hh:58
│ │ │ │ +
TransformTupleFunctor< TE, Args... > makeTransformTupleFunctor(Args &&... args)
Definition tupleutility.hh:254
│ │ │ │ +
constexpr void forEach(Range &&range, F &&f)
Range based for loop.
Definition hybridutilities.hh:268
│ │ │ │ +
STL namespace.
│ │ │ │
Dune namespace.
Definition alignedallocator.hh:13
│ │ │ │ -
Generic class to implement debug output streams.
Definition debugstream.hh:192
│ │ │ │ +
Definition tupleutility.hh:49
│ │ │ │ +
A helper template that initializes a std::tuple consisting of pointers to nullptr.
Definition tupleutility.hh:79
│ │ │ │ +
Helper template to clone the type definition of a std::tuple with the storage types replaced by a use...
Definition tupleutility.hh:116
│ │ │ │ +
Definition tupleutility.hh:226
│ │ │ │ +
Definition tupleutility.hh:239
│ │ │ │ +
TypeEvaluator to turn a type T into a reference to T
Definition tupleutility.hh:305
│ │ │ │ +
TypeEvaluator to turn a type T into a pointer to T
Definition tupleutility.hh:320
│ │ │ │ +
Type for reverse element access.
Definition tupleutility.hh:346
│ │ │ │ +
Reverse element access.
Definition tupleutility.hh:359
│ │ │ │ +
Deletes all objects pointed to in a std::tuple of pointers.
Definition tupleutility.hh:380
│ │ │ │ +
Finding the index of a certain type in a std::tuple.
Definition tupleutility.hh:418
│ │ │ │ +
Generator for predicates accepting one particular type.
Definition tupleutility.hh:445
│ │ │ │ +
The actual predicate.
Definition tupleutility.hh:448
│ │ │ │ +
Find the first occurrence of a type in a std::tuple.
Definition tupleutility.hh:467
│ │ │ │ +
Helper template to append a type to a std::tuple.
Definition tupleutility.hh:476
│ │ │ │ +
Helper template to prepend a type to a std::tuple.
Definition tupleutility.hh:491
│ │ │ │ +
Apply reduce with meta binary function to template.
Definition tupleutility.hh:517
│ │ │ │ +
Join two std::tuple's.
Definition tupleutility.hh:556
│ │ │ │ +
Flatten a std::tuple of std::tuple's.
Definition tupleutility.hh:571
│ │ │ │ +
template which always yields a false value
Definition typetraits.hh:124
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,153 +1,515 @@ │ │ │ │ │ dune-common 2.9.0 │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _d_u_n_e │ │ │ │ │ * _c_o_m_m_o_n │ │ │ │ │ -stdstreams.hh │ │ │ │ │ +tupleutility.hh │ │ │ │ │ _G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- │ │ │ │ │ 2// vi: set et ts=4 sw=2 sts=2: │ │ │ │ │ 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file │ │ │ │ │ LICENSE.md in module root │ │ │ │ │ 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception │ │ │ │ │ 5 │ │ │ │ │ -15#ifndef DUNE_COMMON_STDSTREAMS_HH │ │ │ │ │ -16#define DUNE_COMMON_STDSTREAMS_HH │ │ │ │ │ -17 │ │ │ │ │ -18#include "_d_e_b_u_g_s_t_r_e_a_m_._h_h" │ │ │ │ │ -19 │ │ │ │ │ -20namespace _D_u_n_e { │ │ │ │ │ -21 │ │ │ │ │ -66#ifndef DUNE_MINIMAL_DEBUG_LEVEL │ │ │ │ │ -_6_7#define DUNE_MINIMAL_DEBUG_LEVEL 4 │ │ │ │ │ -68#endif │ │ │ │ │ -_6_9 static const _D_e_b_u_g_L_e_v_e_l _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L = _D_U_N_E___M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L; │ │ │ │ │ +6#ifndef DUNE_TUPLE_UTILITY_HH │ │ │ │ │ +7#define DUNE_TUPLE_UTILITY_HH │ │ │ │ │ +8 │ │ │ │ │ +9#include │ │ │ │ │ +10#include │ │ │ │ │ +11#include │ │ │ │ │ +12#include │ │ │ │ │ +13 │ │ │ │ │ +14#include <_d_u_n_e_/_c_o_m_m_o_n_/_h_y_b_r_i_d_u_t_i_l_i_t_i_e_s_._h_h> │ │ │ │ │ +15#include <_d_u_n_e_/_c_o_m_m_o_n_/_t_y_p_e_t_r_a_i_t_s_._h_h> │ │ │ │ │ +16 │ │ │ │ │ +17namespace _D_u_n_e { │ │ │ │ │ +18 │ │ │ │ │ +41 template │ │ │ │ │ +_4_2 decltype(auto) _a_p_p_l_y_P_a_r_t_i_a_l(F&& f, ArgTuple&& args, std::integer_sequence /*indices*/) │ │ │ │ │ +43 { │ │ │ │ │ +44 return f(std::get(args)...); │ │ │ │ │ +45 } │ │ │ │ │ +46 │ │ │ │ │ +47 template │ │ │ │ │ +_4_8 struct _T_u_p_l_e_A_c_c_e_s_s_T_r_a_i_t_s │ │ │ │ │ +49 { │ │ │ │ │ +_5_0 typedef typename std::add_const::type& _C_o_n_s_t_T_y_p_e; │ │ │ │ │ +_5_1 typedef T& _N_o_n_C_o_n_s_t_T_y_p_e; │ │ │ │ │ +_5_2 typedef const typename std::remove_const::type& _P_a_r_a_m_e_t_e_r_T_y_p_e; │ │ │ │ │ +53 }; │ │ │ │ │ +54 │ │ │ │ │ +55 template │ │ │ │ │ +_5_6 struct _T_u_p_l_e_A_c_c_e_s_s_T_r_a_i_t_s │ │ │ │ │ +57 { │ │ │ │ │ +_5_8 typedef typename std::add_const::type* _C_o_n_s_t_T_y_p_e; │ │ │ │ │ +_5_9 typedef T* _N_o_n_C_o_n_s_t_T_y_p_e; │ │ │ │ │ +_6_0 typedef T* _P_a_r_a_m_e_t_e_r_T_y_p_e; │ │ │ │ │ +61 }; │ │ │ │ │ +62 │ │ │ │ │ +63 template │ │ │ │ │ +_6_4 struct _T_u_p_l_e_A_c_c_e_s_s_T_r_a_i_t_s │ │ │ │ │ +65 { │ │ │ │ │ +_6_6 typedef T& _C_o_n_s_t_T_y_p_e; │ │ │ │ │ +_6_7 typedef T& _N_o_n_C_o_n_s_t_T_y_p_e; │ │ │ │ │ +_6_8 typedef T& _P_a_r_a_m_e_t_e_r_T_y_p_e; │ │ │ │ │ +69 }; │ │ │ │ │ 70 │ │ │ │ │ -_7_5 static const _D_e_b_u_g_L_e_v_e_l _V_E_R_Y___V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L = 1; │ │ │ │ │ -76 │ │ │ │ │ -_8_1 typedef _D_e_b_u_g_S_t_r_e_a_m_<_V_E_R_Y___V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L_,_ _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L_> │ │ │ │ │ -_D_V_V_e_r_b_T_y_p_e; │ │ │ │ │ -82 │ │ │ │ │ -_9_5 extern _D_V_V_e_r_b_T_y_p_e _d_v_v_e_r_b; │ │ │ │ │ -96 │ │ │ │ │ -_1_0_1 static const _D_e_b_u_g_L_e_v_e_l _V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L = 2; │ │ │ │ │ -102 │ │ │ │ │ -_1_0_7 typedef _D_e_b_u_g_S_t_r_e_a_m_<_V_E_R_B_O_S_E___D_E_B_U_G___L_E_V_E_L_,_ _M_I_N_I_M_A_L___D_E_B_U_G___L_E_V_E_L_> _D_V_e_r_b_T_y_p_e; │ │ │ │ │ -108 │ │ │ │ │ -_1_1_6 extern _D_V_e_r_b_T_y_p_e _d_v_e_r_b; │ │ │ │ │ +78 template │ │ │ │ │ +_7_9 struct _N_u_l_l_P_o_i_n_t_e_r_I_n_i_t_i_a_l_i_s_e_r; │ │ │ │ │ +80 │ │ │ │ │ +81 template │ │ │ │ │ +_8_2 struct _N_u_l_l_P_o_i_n_t_e_r_I_n_i_t_i_a_l_i_s_e_r<_s_t_d::tuple > │ │ │ │ │ +83 { │ │ │ │ │ +_8_4 typedef std::tuple _R_e_s_u_l_t_T_y_p_e; │ │ │ │ │ +_8_5 static _R_e_s_u_l_t_T_y_p_e _a_p_p_l_y() │ │ │ │ │ +86 { │ │ │ │ │ +87 return _R_e_s_u_l_t_T_y_p_e(static_cast(nullptr)...); │ │ │ │ │ +88 } │ │ │ │ │ +89 }; │ │ │ │ │ +90 │ │ │ │ │ +115 template