From 33a7d87f2d8ac8b47d3d2a4497a6d85022188e80 Mon Sep 17 00:00:00 2001 From: Joel Falcou Date: Sat, 28 May 2022 17:15:56 +0200 Subject: [PATCH] Update doxygen setup and clarified documentations --- .clang-format | 4 +- .github/actions/run_tests/Dockerfile | 2 +- .github/actions/run_tests/entrypoint.sh | 2 +- .github/workflows/main.yml | 4 +- CMakeLists.txt | 27 +- appveyor.yml | 4 +- doc/Doxyfile | 913 +++++++ doc/base.html | 78 + doc/custom.css | 78 + doc/doxygen-awesome-sidebar-only.css | 113 + doc/doxygen-awesome.css | 2187 +++++++++++++++++ doc/footer.html | 19 + doc/fragment.js | 85 + doc/godbolt.js | 81 + doc/index.hpp | 61 + doc/layout.xml | 218 ++ doc/logo.png | Bin 0 -> 15590 bytes docs/setup.md => doc/page01_setup.md | 23 +- doc/page02_tutorial.hpp | 132 + doc/page03_custom.hpp | 98 + docs/changelog.md => doc/page10_changelog.md | 3 + docs/index.md => doc/page10_licence.md | 38 +- doc/paragraph.js | 51 + docs/_config.yml | 8 - docs/_layouts/default.html | 74 - docs/annotated.html | 155 ++ docs/annotated_dup.js | 19 + docs/assets/css/extra.css | 28 - docs/bc_s.png | Bin 0 -> 662 bytes docs/bdwn.png | Bin 0 -> 146 bytes docs/changelog.html | 166 ++ docs/classes.html | 164 ++ docs/closed.png | Bin 0 -> 131 bytes docs/conceptrbr_1_1concepts_1_1exactly.html | 159 ++ docs/conceptrbr_1_1concepts_1_1keyword.html | 154 ++ docs/conceptrbr_1_1concepts_1_1option.html | 154 ++ docs/conceptrbr_1_1concepts_1_1settings.html | 153 ++ docs/concepts.html | 147 ++ docs/concepts.js | 11 + docs/concepts.md | 46 - docs/custom.css | 78 + docs/custom.html | 249 ++ docs/custom.md | 118 - .../dir_e68e8157741866f444e17edd764ebbae.html | 138 ++ docs/doc.png | Bin 0 -> 734 bytes docs/doxygen-awesome-sidebar-only.css | 113 + docs/doxygen-awesome.css | 2187 +++++++++++++++++ docs/doxygen.css | 1841 ++++++++++++++ docs/doxygen.svg | 26 + docs/dynsections.js | 121 + docs/folderclosed.png | Bin 0 -> 568 bytes docs/folderopen.png | Bin 0 -> 582 bytes docs/fragment.js | 85 + docs/functions.html | 158 ++ docs/functions_func.html | 155 ++ docs/functions_rela.html | 137 ++ docs/functions_type.html | 138 ++ docs/godbolt.js | 81 + docs/group__kwds.html | 184 ++ docs/group__kwds.js | 51 + ...ds_ga111cd0aae8b0ddc48b0682cb57be4601.html | 189 ++ ...ds_ga1defddc866f08ffe48f8cede54d6c662.html | 197 ++ ...ds_ga22ca1174daaba7df70425196133e015d.html | 197 ++ ...ds_ga582ef0aad9a0b99f141d2ba30828ec18.html | 188 ++ docs/group__main.html | 149 ++ docs/group__main.js | 5 + docs/group__stng.html | 176 ++ docs/group__stng.js | 18 + ...ng_ga1a96173fdab96c73cf6540d48f779fe7.html | 200 ++ ...ng_ga39cbfeb49cdec50141e18847dde121da.html | 206 ++ ...ng_ga8487db857a35dde88ff0f5a74f575215.html | 205 ++ ...ng_gab9ee73c2f143fc87e4f572624d671f29.html | 223 ++ ...ng_gad36681b05136221ae61651ccbc4b3ddb.html | 211 ++ docs/group__udls.html | 158 ++ docs/group__udls.js | 6 + ...ls_ga0cdec845c68884472bb41b79f7912db5.html | 165 ++ ...ls_ga86a979e01a966f4538cedfd2082bc797.html | 165 ++ ...ls_ga8b614b5edfe2ff77c9165656ba9a7dfe.html | 165 ++ docs/group__utility.html | 162 ++ docs/group__utility.js | 9 + docs/hierarchy.html | 156 ++ docs/hierarchy.js | 21 + docs/index.html | 187 ++ docs/jquery.js | 35 + docs/keywords.md | 213 -- docs/licence.html | 156 ++ docs/md_raberu_doc_page01_setup.html | 184 ++ docs/modules.html | 146 ++ docs/modules.js | 5 + docs/namespacemembers.html | 141 ++ docs/namespacemembers_func.html | 141 ++ docs/namespacerbr.html | 226 ++ docs/namespacerbr.js | 23 + docs/namespacerbr_1_1concepts.html | 161 ++ docs/namespacerbr_1_1concepts.js | 7 + docs/namespacerbr_1_1literals.html | 160 ++ docs/namespacerbr_1_1literals.js | 5 + docs/namespacerbr_1_1result.html | 143 ++ docs/namespaces.html | 161 ++ docs/namespaces_dup.js | 4 + docs/nav_f.png | Bin 0 -> 144 bytes docs/nav_g.png | Bin 0 -> 95 bytes docs/nav_h.png | Bin 0 -> 96 bytes docs/navtree.css | 147 ++ docs/navtree.js | 549 +++++ docs/navtreedata.js | 95 + docs/navtreeindex0.js | 123 + docs/open.png | Bin 0 -> 122 bytes docs/pages.html | 146 ++ docs/paragraph.js | 51 + docs/resize.js | 150 ++ docs/search/all_0.html | 37 + docs/search/all_0.js | 9 + docs/search/all_1.html | 37 + docs/search/all_1.js | 10 + docs/search/all_2.html | 37 + docs/search/all_2.js | 4 + docs/search/all_3.html | 37 + docs/search/all_3.js | 6 + docs/search/all_4.html | 37 + docs/search/all_4.js | 4 + docs/search/all_5.html | 37 + docs/search/all_5.js | 5 + docs/search/all_6.html | 37 + docs/search/all_6.js | 6 + docs/search/all_7.html | 37 + docs/search/all_7.js | 4 + docs/search/all_8.html | 37 + docs/search/all_8.js | 5 + docs/search/all_9.html | 37 + docs/search/all_9.js | 13 + docs/search/all_a.html | 37 + docs/search/all_a.js | 11 + docs/search/all_b.html | 37 + docs/search/all_b.js | 9 + docs/search/all_c.html | 37 + docs/search/all_c.js | 9 + docs/search/all_d.html | 37 + docs/search/all_d.js | 5 + docs/search/all_e.html | 37 + docs/search/all_e.js | 4 + docs/search/classes_0.html | 37 + docs/search/classes_0.js | 8 + docs/search/classes_1.html | 37 + docs/search/classes_1.js | 5 + docs/search/classes_2.html | 37 + docs/search/classes_2.js | 4 + docs/search/classes_3.html | 37 + docs/search/classes_3.js | 4 + docs/search/classes_4.html | 37 + docs/search/classes_4.js | 4 + docs/search/classes_5.html | 37 + docs/search/classes_5.js | 5 + docs/search/classes_6.html | 37 + docs/search/classes_6.js | 5 + docs/search/classes_7.html | 37 + docs/search/classes_7.js | 4 + docs/search/close.svg | 31 + docs/search/concepts_0.html | 37 + docs/search/concepts_0.js | 7 + docs/search/functions_0.html | 37 + docs/search/functions_0.js | 4 + docs/search/functions_1.html | 37 + docs/search/functions_1.js | 7 + docs/search/functions_2.html | 37 + docs/search/functions_2.js | 4 + docs/search/functions_3.html | 37 + docs/search/functions_3.js | 5 + docs/search/functions_4.html | 37 + docs/search/functions_4.js | 5 + docs/search/functions_5.html | 37 + docs/search/functions_5.js | 4 + docs/search/functions_6.html | 37 + docs/search/functions_6.js | 11 + docs/search/functions_7.html | 37 + docs/search/functions_7.js | 6 + docs/search/functions_8.html | 37 + docs/search/functions_8.js | 4 + docs/search/groups_0.html | 37 + docs/search/groups_0.js | 4 + docs/search/groups_1.html | 37 + docs/search/groups_1.js | 4 + docs/search/groups_2.html | 37 + docs/search/groups_2.js | 4 + docs/search/groups_3.html | 37 + docs/search/groups_3.js | 4 + docs/search/groups_4.html | 37 + docs/search/groups_4.js | 4 + docs/search/mag_sel.svg | 74 + docs/search/namespaces_0.html | 37 + docs/search/namespaces_0.js | 7 + docs/search/nomatches.html | 13 + docs/search/pages_0.html | 37 + docs/search/pages_0.js | 4 + docs/search/pages_1.html | 37 + docs/search/pages_1.js | 4 + docs/search/pages_2.html | 37 + docs/search/pages_2.js | 4 + docs/search/pages_3.html | 37 + docs/search/pages_3.js | 6 + docs/search/related_0.html | 37 + docs/search/related_0.js | 4 + docs/search/search.css | 274 +++ docs/search/search.js | 802 ++++++ docs/search/search_l.png | Bin 0 -> 567 bytes docs/search/search_m.png | Bin 0 -> 158 bytes docs/search/search_r.png | Bin 0 -> 553 bytes docs/search/searchdata.js | 39 + docs/search/typedefs_0.html | 37 + docs/search/typedefs_0.js | 4 + docs/search/typedefs_1.html | 37 + docs/search/typedefs_1.js | 4 + docs/settings.md | 282 --- docs/splitbar.png | Bin 0 -> 294 bytes docs/structrbr_1_1any__keyword-members.html | 151 ++ docs/structrbr_1_1any__keyword.html | 211 ++ docs/structrbr_1_1any__keyword.js | 12 + docs/structrbr_1_1as__keyword-members.html | 148 ++ docs/structrbr_1_1as__keyword.html | 204 ++ docs/structrbr_1_1as__keyword.js | 10 + ...ord_a40466d5e41a179d4ba59dc36ba2ee36b.html | 189 ++ ...ord_a408555e0cfdbfb75c48d690f30ee97c5.html | 176 ++ ...ord_aa5f2825b11a01b5cf8680759d8bf6177.html | 200 ++ ...ord_ae5420c9dd19d328b53c23f2768b4a7df.html | 186 ++ docs/structrbr_1_1call-members.html | 139 ++ docs/structrbr_1_1call.html | 154 ++ ...structrbr_1_1checked__keyword-members.html | 149 ++ docs/structrbr_1_1checked__keyword.html | 204 ++ docs/structrbr_1_1checked__keyword.js | 10 + docs/structrbr_1_1flag__keyword-members.html | 143 ++ docs/structrbr_1_1flag__keyword.html | 179 ++ docs/structrbr_1_1flag__keyword.js | 6 + docs/structrbr_1_1id__-members.html | 141 ++ docs/structrbr_1_1id__.html | 163 ++ docs/structrbr_1_1id__.js | 4 + ...tructrbr_1_1literals_1_1str__-members.html | 139 ++ docs/structrbr_1_1literals_1_1str__.html | 154 ++ docs/structrbr_1_1option-members.html | 139 ++ docs/structrbr_1_1option.html | 154 ++ docs/structrbr_1_1settings-members.html | 152 ++ docs/structrbr_1_1settings.html | 220 ++ docs/structrbr_1_1settings.js | 10 + ...ngs_a1c758db63574313d7308f978a0e92e6c.html | 201 ++ ...ngs_a7a99be5f170a42c9af2ce44ab368fe8a.html | 199 ++ ...ngs_ae0298902e927c3477caae7057002f477.html | 199 ++ ...ngs_af0ba5c226275e238abf83b15f463f77d.html | 200 ++ ...ngs_afa76f4135cb4516fa6641c0d3a5758d9.html | 201 ++ docs/structrbr_1_1typed__keyword-members.html | 149 ++ docs/structrbr_1_1typed__keyword.html | 204 ++ docs/structrbr_1_1typed__keyword.js | 10 + docs/structrbr_1_1types.html | 146 ++ docs/structrbr_1_1unknown__key.html | 145 ++ docs/sync_off.png | Bin 0 -> 836 bytes docs/sync_on.png | Bin 0 -> 825 bytes docs/tab_a.png | Bin 0 -> 144 bytes docs/tab_b.png | Bin 0 -> 163 bytes docs/tab_h.png | Bin 0 -> 167 bytes docs/tab_s.png | Bin 0 -> 177 bytes docs/tabs.css | 61 + docs/tutorial.html | 279 +++ docs/tutorial.md | 42 - include/raberu.hpp | 572 ++++- test/CMakeLists.txt | 30 +- test/doc.cmake | 25 + test/doc/accept.cpp | 28 + test/doc/checked.cpp | 19 + test/doc/contains.cpp | 25 + test/doc/contains_any.cpp | 26 + test/doc/contains_none.cpp | 27 + test/doc/contains_only.cpp | 27 + test/doc/drop.cpp | 26 + test/doc/fetch.cpp | 25 + test/doc/flag.cpp | 16 + test/doc/keyword_fetch.cpp | 20 + test/doc/keywords.cpp | 23 + test/doc/merge.cpp | 22 + test/doc/regular.cpp | 17 + test/doc/show.cpp | 36 + test/doc/subscript.cpp | 22 + test/doc/tutorial01.cpp | 25 + test/doc/tutorial02.cpp | 29 + test/doc/tutorial03.cpp | 22 + test/doc/tutorial04.cpp | 24 + test/doc/tutorial05.cpp | 35 + test/doc/values.cpp | 18 + test/tts/tts.hpp | 652 ++++- test/unit.cmake | 16 + test/{ => unit}/access.cpp | 0 test/{ => unit}/common.hpp | 6 +- test/{ => unit}/concepts.cpp | 0 test/{ => unit}/constraints.cpp | 14 +- test/{ => unit}/contains.cpp | 0 test/{ => unit}/doc.cpp | 0 test/{ => unit}/drop.cpp | 0 test/{ => unit}/extract_types.cpp | 0 test/{ => unit}/fetch.cpp | 0 test/{ => unit}/interface.cpp | 0 test/{ => unit}/merge.cpp | 0 test/{ => unit}/size.cpp | 0 299 files changed, 28104 insertions(+), 1029 deletions(-) create mode 100644 doc/Doxyfile create mode 100644 doc/base.html create mode 100644 doc/custom.css create mode 100644 doc/doxygen-awesome-sidebar-only.css create mode 100644 doc/doxygen-awesome.css create mode 100644 doc/footer.html create mode 100644 doc/fragment.js create mode 100644 doc/godbolt.js create mode 100644 doc/index.hpp create mode 100644 doc/layout.xml create mode 100644 doc/logo.png rename docs/setup.md => doc/page01_setup.md (71%) create mode 100644 doc/page02_tutorial.hpp create mode 100644 doc/page03_custom.hpp rename docs/changelog.md => doc/page10_changelog.md (97%) rename docs/index.md => doc/page10_licence.md (55%) create mode 100644 doc/paragraph.js delete mode 100644 docs/_config.yml delete mode 100644 docs/_layouts/default.html create mode 100644 docs/annotated.html create mode 100644 docs/annotated_dup.js delete mode 100644 docs/assets/css/extra.css create mode 100644 docs/bc_s.png create mode 100644 docs/bdwn.png create mode 100644 docs/changelog.html create mode 100644 docs/classes.html create mode 100644 docs/closed.png create mode 100644 docs/conceptrbr_1_1concepts_1_1exactly.html create mode 100644 docs/conceptrbr_1_1concepts_1_1keyword.html create mode 100644 docs/conceptrbr_1_1concepts_1_1option.html create mode 100644 docs/conceptrbr_1_1concepts_1_1settings.html create mode 100644 docs/concepts.html create mode 100644 docs/concepts.js delete mode 100644 docs/concepts.md create mode 100644 docs/custom.css create mode 100644 docs/custom.html delete mode 100644 docs/custom.md create mode 100644 docs/dir_e68e8157741866f444e17edd764ebbae.html create mode 100644 docs/doc.png create mode 100644 docs/doxygen-awesome-sidebar-only.css create mode 100644 docs/doxygen-awesome.css create mode 100644 docs/doxygen.css create mode 100644 docs/doxygen.svg create mode 100644 docs/dynsections.js create mode 100644 docs/folderclosed.png create mode 100644 docs/folderopen.png create mode 100644 docs/fragment.js create mode 100644 docs/functions.html create mode 100644 docs/functions_func.html create mode 100644 docs/functions_rela.html create mode 100644 docs/functions_type.html create mode 100644 docs/godbolt.js create mode 100644 docs/group__kwds.html create mode 100644 docs/group__kwds.js create mode 100644 docs/group__kwds_ga111cd0aae8b0ddc48b0682cb57be4601.html create mode 100644 docs/group__kwds_ga1defddc866f08ffe48f8cede54d6c662.html create mode 100644 docs/group__kwds_ga22ca1174daaba7df70425196133e015d.html create mode 100644 docs/group__kwds_ga582ef0aad9a0b99f141d2ba30828ec18.html create mode 100644 docs/group__main.html create mode 100644 docs/group__main.js create mode 100644 docs/group__stng.html create mode 100644 docs/group__stng.js create mode 100644 docs/group__stng_ga1a96173fdab96c73cf6540d48f779fe7.html create mode 100644 docs/group__stng_ga39cbfeb49cdec50141e18847dde121da.html create mode 100644 docs/group__stng_ga8487db857a35dde88ff0f5a74f575215.html create mode 100644 docs/group__stng_gab9ee73c2f143fc87e4f572624d671f29.html create mode 100644 docs/group__stng_gad36681b05136221ae61651ccbc4b3ddb.html create mode 100644 docs/group__udls.html create mode 100644 docs/group__udls.js create mode 100644 docs/group__udls_ga0cdec845c68884472bb41b79f7912db5.html create mode 100644 docs/group__udls_ga86a979e01a966f4538cedfd2082bc797.html create mode 100644 docs/group__udls_ga8b614b5edfe2ff77c9165656ba9a7dfe.html create mode 100644 docs/group__utility.html create mode 100644 docs/group__utility.js create mode 100644 docs/hierarchy.html create mode 100644 docs/hierarchy.js create mode 100644 docs/index.html create mode 100644 docs/jquery.js delete mode 100644 docs/keywords.md create mode 100644 docs/licence.html create mode 100644 docs/md_raberu_doc_page01_setup.html create mode 100644 docs/modules.html create mode 100644 docs/modules.js create mode 100644 docs/namespacemembers.html create mode 100644 docs/namespacemembers_func.html create mode 100644 docs/namespacerbr.html create mode 100644 docs/namespacerbr.js create mode 100644 docs/namespacerbr_1_1concepts.html create mode 100644 docs/namespacerbr_1_1concepts.js create mode 100644 docs/namespacerbr_1_1literals.html create mode 100644 docs/namespacerbr_1_1literals.js create mode 100644 docs/namespacerbr_1_1result.html create mode 100644 docs/namespaces.html create mode 100644 docs/namespaces_dup.js create mode 100644 docs/nav_f.png create mode 100644 docs/nav_g.png create mode 100644 docs/nav_h.png create mode 100644 docs/navtree.css create mode 100644 docs/navtree.js create mode 100644 docs/navtreedata.js create mode 100644 docs/navtreeindex0.js create mode 100644 docs/open.png create mode 100644 docs/pages.html create mode 100644 docs/paragraph.js create mode 100644 docs/resize.js create mode 100644 docs/search/all_0.html create mode 100644 docs/search/all_0.js create mode 100644 docs/search/all_1.html create mode 100644 docs/search/all_1.js create mode 100644 docs/search/all_2.html create mode 100644 docs/search/all_2.js create mode 100644 docs/search/all_3.html create mode 100644 docs/search/all_3.js create mode 100644 docs/search/all_4.html create mode 100644 docs/search/all_4.js create mode 100644 docs/search/all_5.html create mode 100644 docs/search/all_5.js create mode 100644 docs/search/all_6.html create mode 100644 docs/search/all_6.js create mode 100644 docs/search/all_7.html create mode 100644 docs/search/all_7.js create mode 100644 docs/search/all_8.html create mode 100644 docs/search/all_8.js create mode 100644 docs/search/all_9.html create mode 100644 docs/search/all_9.js create mode 100644 docs/search/all_a.html create mode 100644 docs/search/all_a.js create mode 100644 docs/search/all_b.html create mode 100644 docs/search/all_b.js create mode 100644 docs/search/all_c.html create mode 100644 docs/search/all_c.js create mode 100644 docs/search/all_d.html create mode 100644 docs/search/all_d.js create mode 100644 docs/search/all_e.html create mode 100644 docs/search/all_e.js create mode 100644 docs/search/classes_0.html create mode 100644 docs/search/classes_0.js create mode 100644 docs/search/classes_1.html create mode 100644 docs/search/classes_1.js create mode 100644 docs/search/classes_2.html create mode 100644 docs/search/classes_2.js create mode 100644 docs/search/classes_3.html create mode 100644 docs/search/classes_3.js create mode 100644 docs/search/classes_4.html create mode 100644 docs/search/classes_4.js create mode 100644 docs/search/classes_5.html create mode 100644 docs/search/classes_5.js create mode 100644 docs/search/classes_6.html create mode 100644 docs/search/classes_6.js create mode 100644 docs/search/classes_7.html create mode 100644 docs/search/classes_7.js create mode 100644 docs/search/close.svg create mode 100644 docs/search/concepts_0.html create mode 100644 docs/search/concepts_0.js create mode 100644 docs/search/functions_0.html create mode 100644 docs/search/functions_0.js create mode 100644 docs/search/functions_1.html create mode 100644 docs/search/functions_1.js create mode 100644 docs/search/functions_2.html create mode 100644 docs/search/functions_2.js create mode 100644 docs/search/functions_3.html create mode 100644 docs/search/functions_3.js create mode 100644 docs/search/functions_4.html create mode 100644 docs/search/functions_4.js create mode 100644 docs/search/functions_5.html create mode 100644 docs/search/functions_5.js create mode 100644 docs/search/functions_6.html create mode 100644 docs/search/functions_6.js create mode 100644 docs/search/functions_7.html create mode 100644 docs/search/functions_7.js create mode 100644 docs/search/functions_8.html create mode 100644 docs/search/functions_8.js create mode 100644 docs/search/groups_0.html create mode 100644 docs/search/groups_0.js create mode 100644 docs/search/groups_1.html create mode 100644 docs/search/groups_1.js create mode 100644 docs/search/groups_2.html create mode 100644 docs/search/groups_2.js create mode 100644 docs/search/groups_3.html create mode 100644 docs/search/groups_3.js create mode 100644 docs/search/groups_4.html create mode 100644 docs/search/groups_4.js create mode 100644 docs/search/mag_sel.svg create mode 100644 docs/search/namespaces_0.html create mode 100644 docs/search/namespaces_0.js create mode 100644 docs/search/nomatches.html create mode 100644 docs/search/pages_0.html create mode 100644 docs/search/pages_0.js create mode 100644 docs/search/pages_1.html create mode 100644 docs/search/pages_1.js create mode 100644 docs/search/pages_2.html create mode 100644 docs/search/pages_2.js create mode 100644 docs/search/pages_3.html create mode 100644 docs/search/pages_3.js create mode 100644 docs/search/related_0.html create mode 100644 docs/search/related_0.js create mode 100644 docs/search/search.css create mode 100644 docs/search/search.js create mode 100644 docs/search/search_l.png create mode 100644 docs/search/search_m.png create mode 100644 docs/search/search_r.png create mode 100644 docs/search/searchdata.js create mode 100644 docs/search/typedefs_0.html create mode 100644 docs/search/typedefs_0.js create mode 100644 docs/search/typedefs_1.html create mode 100644 docs/search/typedefs_1.js delete mode 100644 docs/settings.md create mode 100644 docs/splitbar.png create mode 100644 docs/structrbr_1_1any__keyword-members.html create mode 100644 docs/structrbr_1_1any__keyword.html create mode 100644 docs/structrbr_1_1any__keyword.js create mode 100644 docs/structrbr_1_1as__keyword-members.html create mode 100644 docs/structrbr_1_1as__keyword.html create mode 100644 docs/structrbr_1_1as__keyword.js create mode 100644 docs/structrbr_1_1as__keyword_a40466d5e41a179d4ba59dc36ba2ee36b.html create mode 100644 docs/structrbr_1_1as__keyword_a408555e0cfdbfb75c48d690f30ee97c5.html create mode 100644 docs/structrbr_1_1as__keyword_aa5f2825b11a01b5cf8680759d8bf6177.html create mode 100644 docs/structrbr_1_1as__keyword_ae5420c9dd19d328b53c23f2768b4a7df.html create mode 100644 docs/structrbr_1_1call-members.html create mode 100644 docs/structrbr_1_1call.html create mode 100644 docs/structrbr_1_1checked__keyword-members.html create mode 100644 docs/structrbr_1_1checked__keyword.html create mode 100644 docs/structrbr_1_1checked__keyword.js create mode 100644 docs/structrbr_1_1flag__keyword-members.html create mode 100644 docs/structrbr_1_1flag__keyword.html create mode 100644 docs/structrbr_1_1flag__keyword.js create mode 100644 docs/structrbr_1_1id__-members.html create mode 100644 docs/structrbr_1_1id__.html create mode 100644 docs/structrbr_1_1id__.js create mode 100644 docs/structrbr_1_1literals_1_1str__-members.html create mode 100644 docs/structrbr_1_1literals_1_1str__.html create mode 100644 docs/structrbr_1_1option-members.html create mode 100644 docs/structrbr_1_1option.html create mode 100644 docs/structrbr_1_1settings-members.html create mode 100644 docs/structrbr_1_1settings.html create mode 100644 docs/structrbr_1_1settings.js create mode 100644 docs/structrbr_1_1settings_a1c758db63574313d7308f978a0e92e6c.html create mode 100644 docs/structrbr_1_1settings_a7a99be5f170a42c9af2ce44ab368fe8a.html create mode 100644 docs/structrbr_1_1settings_ae0298902e927c3477caae7057002f477.html create mode 100644 docs/structrbr_1_1settings_af0ba5c226275e238abf83b15f463f77d.html create mode 100644 docs/structrbr_1_1settings_afa76f4135cb4516fa6641c0d3a5758d9.html create mode 100644 docs/structrbr_1_1typed__keyword-members.html create mode 100644 docs/structrbr_1_1typed__keyword.html create mode 100644 docs/structrbr_1_1typed__keyword.js create mode 100644 docs/structrbr_1_1types.html create mode 100644 docs/structrbr_1_1unknown__key.html create mode 100644 docs/sync_off.png create mode 100644 docs/sync_on.png create mode 100644 docs/tab_a.png create mode 100644 docs/tab_b.png create mode 100644 docs/tab_h.png create mode 100644 docs/tab_s.png create mode 100644 docs/tabs.css create mode 100644 docs/tutorial.html delete mode 100644 docs/tutorial.md create mode 100644 test/doc.cmake create mode 100644 test/doc/accept.cpp create mode 100644 test/doc/checked.cpp create mode 100644 test/doc/contains.cpp create mode 100644 test/doc/contains_any.cpp create mode 100644 test/doc/contains_none.cpp create mode 100644 test/doc/contains_only.cpp create mode 100644 test/doc/drop.cpp create mode 100644 test/doc/fetch.cpp create mode 100644 test/doc/flag.cpp create mode 100644 test/doc/keyword_fetch.cpp create mode 100644 test/doc/keywords.cpp create mode 100644 test/doc/merge.cpp create mode 100644 test/doc/regular.cpp create mode 100644 test/doc/show.cpp create mode 100644 test/doc/subscript.cpp create mode 100644 test/doc/tutorial01.cpp create mode 100644 test/doc/tutorial02.cpp create mode 100644 test/doc/tutorial03.cpp create mode 100644 test/doc/tutorial04.cpp create mode 100644 test/doc/tutorial05.cpp create mode 100644 test/doc/values.cpp create mode 100644 test/unit.cmake rename test/{ => unit}/access.cpp (100%) rename test/{ => unit}/common.hpp (94%) rename test/{ => unit}/concepts.cpp (100%) rename test/{ => unit}/constraints.cpp (66%) rename test/{ => unit}/contains.cpp (100%) rename test/{ => unit}/doc.cpp (100%) rename test/{ => unit}/drop.cpp (100%) rename test/{ => unit}/extract_types.cpp (100%) rename test/{ => unit}/fetch.cpp (100%) rename test/{ => unit}/interface.cpp (100%) rename test/{ => unit}/merge.cpp (100%) rename test/{ => unit}/size.cpp (100%) diff --git a/.clang-format b/.clang-format index c8ec332..3647483 100644 --- a/.clang-format +++ b/.clang-format @@ -36,10 +36,8 @@ ExperimentalAutoDetectBinPacking: false FixNamespaceComments: false IncludeBlocks: Regroup IncludeCategories: - - Regex: '^' - Priority: 1 + Priority: 0 #IndentCaseBlocks: true IndentCaseLabels: false IndentPPDirectives: AfterHash diff --git a/.github/actions/run_tests/Dockerfile b/.github/actions/run_tests/Dockerfile index 406970a..5d08a32 100644 --- a/.github/actions/run_tests/Dockerfile +++ b/.github/actions/run_tests/Dockerfile @@ -1,5 +1,5 @@ # Container image that runs your code -FROM jfalcou/compilers:v3 +FROM jfalcou/compilers:v4 # Copies your code file from your action repository to the filesystem path `/` of the container COPY entrypoint.sh /entrypoint.sh diff --git a/.github/actions/run_tests/entrypoint.sh b/.github/actions/run_tests/entrypoint.sh index 66fff5a..0574901 100755 --- a/.github/actions/run_tests/entrypoint.sh +++ b/.github/actions/run_tests/entrypoint.sh @@ -7,7 +7,7 @@ cmake .. -G Ninja -DCMAKE_CXX_COMPILER="$1" echo "::endgroup::" echo "::group::Compiling test" ; -ninja unit -k 0 ; +ninja -k 0 ; if [ "$?" -ne "0" ] then echo "::error Tests can not be compiled!" ; diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e3ce9c3..36c527f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,7 +8,7 @@ on: - main jobs: - gcc-11: + gcc: runs-on: ubuntu-latest steps: - name: Fetch current branch @@ -18,7 +18,7 @@ jobs: with: compiler: 'g++-11' - clang-12: + clang: runs-on: ubuntu-latest steps: - name: Fetch current branch diff --git a/CMakeLists.txt b/CMakeLists.txt index 286632e..6e3bdc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,8 @@ add_library(raberu::raberu ALIAS raberu_lib) ##================================================================================================== ## Options ##================================================================================================== -option( RABERU_BUILD_TEST "Build tests for raberu" ON ) +option( RABERU_BUILD_TEST "Build tests for raberu" ON ) +option( RABERU_BUILD_DOCS "Build docs for raberu" OFF ) ##================================================================================================== ## Test target @@ -48,3 +49,27 @@ if( RABERU_BUILD_TEST ) include(CTest) add_subdirectory(${PROJECT_SOURCE_DIR}/test/) endif() + + +##================================================================================================== +## Add Doxygen building target +##================================================================================================== +if( RABERU_BUILD_DOCS ) + find_package(Doxygen QUIET) + + if (DOXYGEN_FOUND) + message( STATUS "[raberu] Doxygen available") + else (DOXYGEN_FOUND) + message( STATUS "[raberu] Doxygen need to be installed to generate the doxygen documentation") + endif (DOXYGEN_FOUND) + + if (DOXYGEN_FOUND) + set(DOXYGEN_CONFIG ${PROJECT_SOURCE_DIR}/doc/Doxyfile) + add_custom_target ( rbr-doxygen + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc + COMMENT "[raberu] Generating API documentation with Doxygen" + VERBATIM + ) + endif (DOXYGEN_FOUND) +endif() diff --git a/appveyor.yml b/appveyor.yml index fd8bd7e..6d819b7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,8 +9,8 @@ build_script: - mkdir build - cd build - cmake -G "Visual Studio 17 2022" -A x64 .. -- cmake --build . --target unit --verbose --config Debug -- cmake --build . --target unit --verbose --config Release +- cmake --build . --verbose --config Debug +- cmake --build . --verbose --config Release test_script: - ctest -C Release -VV diff --git a/doc/Doxyfile b/doc/Doxyfile new file mode 100644 index 0000000..bdd3ff5 --- /dev/null +++ b/doc/Doxyfile @@ -0,0 +1,913 @@ +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 + +PROJECT_NAME = Raberu +PROJECT_NUMBER = +PROJECT_BRIEF = v2.0 - Past Prologue +PROJECT_LOGO = logo.png + +OUTPUT_DIRECTORY = ../docs +CREATE_SUBDIRS = NO +ALLOW_UNICODE_NAMES = NO + +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = YES + +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = ../include +STRIP_FROM_PATH += /home/jt/falcoudev +STRIP_FROM_PATH += /home/falcou/dev +STRIP_FROM_INC_PATH = ../include + +SEPARATE_MEMBER_PAGES = YES +TAB_SIZE = 2 + +ALIASES = +EXTENSION_MAPPING = +MARKDOWN_SUPPORT = YES +TOC_INCLUDE_HEADINGS = 5 +AUTOLINK_SUPPORT = YES +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_PRIV_VIRTUAL = NO +EXTRACT_PACKAGE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = NO +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +HIDE_COMPOUND_REFERENCE= NO +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = YES +SORT_MEMBERS_CTORS_1ST = YES +SORT_GROUP_NAMES = YES + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = NO + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = layout.xml + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = ../include \ + . + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.l \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = detail* + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = ../test +EXAMPLE_PATH += . + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = ./ + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = base.html + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = footer.html + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = custom.css +HTML_EXTRA_STYLESHEET += doxygen-awesome.css +HTML_EXTRA_STYLESHEET += doxygen-awesome-sidebar-only.css + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = godbolt.js +HTML_EXTRA_FILES += fragment.js +HTML_EXTRA_FILES += paragraph.js +HTML_COLORSTYLE_HUE = 293 +HTML_COLORSTYLE_SAT = 40 +HTML_COLORSTYLE_GAMMA = 60 +HTML_TIMESTAMP = NO +HTML_DYNAMIC_MENUS = NO +HTML_DYNAMIC_SECTIONS = NO +HTML_INDEX_NUM_ENTRIES = 100 +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_NAME = Publisher +GENERATE_HTMLHELP = NO +GENERATE_CHI = NO +GENERATE_QHP = NO +GENERATE_ECLIPSEHELP = NO + +DISABLE_INDEX = YES +GENERATE_TREEVIEW = YES +ENUM_VALUES_PER_LINE = 4 +TREEVIEW_WIDTH = 250 + +EXT_LINKS_IN_WINDOW = NO +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = YES + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1 + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /