From 03353997717df8a94f3c30c72264e2064f1f7638 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sat, 8 Apr 2023 09:23:11 +0200 Subject: [PATCH 001/176] [external] Fix pass Qt version to external build. --- external/Gui/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/external/Gui/CMakeLists.txt b/external/Gui/CMakeLists.txt index 5156484ed95..ac0ee22e5a7 100644 --- a/external/Gui/CMakeLists.txt +++ b/external/Gui/CMakeLists.txt @@ -39,7 +39,7 @@ endif() if(DEFINED QT_DEFAULT_MAJOR_VERSION) set(Qt_CONFIGURATION - "${Qt_CONFIGURATION} -DQT_DEFAULT_MAJOR_VERSION=${QT_DEFAULT_MAJOR_VERSION}" + "${Qt_CONFIGURATION};-DQT_DEFAULT_MAJOR_VERSION=${QT_DEFAULT_MAJOR_VERSION}" ) endif() @@ -71,7 +71,7 @@ if(NOT DEFINED PowerSlider_DIR) INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" CMAKE_ARGS ${RADIUM_EXTERNAL_CMAKE_OPTIONS} ${Qt_CONFIGURATION} -DBUILD_DESIGNER_PLUGIN=OFF ${RPATH_CONFIG} -DBUILD_EXAMPLE_APP=OFF - -DCMAKE_MESSAGE_INDENT=${indent_string}\; + "-DCMAKE_MESSAGE_INDENT=${indent_string}\;" ) set_external_dir(PowerSlider "lib/cmake/PowerSlider/") From 88aca60c2e0b71d00cdafc7b76616135a87aa3e4 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 12:37:06 +0000 Subject: [PATCH 002/176] Update version to 1.5.1 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index bc80560fad6..26ca594609a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.0 +1.5.1 From f4c752f0223b4b071f4af5330f380356c5e3aa1f Mon Sep 17 00:00:00 2001 From: Mathias Paulin Date: Thu, 15 Jun 2023 11:48:15 +0200 Subject: [PATCH 003/176] [cmake] request version 3.18 --- CMakeLists.txt | 2 +- cmake/FindFilesystem.cmake | 2 +- cmake/QtFunctions.cmake | 2 +- cmake/RadiumSetupFunctions.cmake | 2 +- doc/CMakeLists.txt | 2 +- doc/basics/compilation.md | 4 ++-- doc/developer/cmakeutilities.md | 4 ++-- doc/developer/plugin.md | 2 +- examples/CMakeLists.txt | 2 +- examples/CoreExample/CMakeLists.txt | 2 +- examples/CustomCameraManipulator/CMakeLists.txt | 2 +- examples/DrawPrimitives/CMakeLists.txt | 2 +- examples/EntityAnimation/CMakeLists.txt | 2 +- examples/EnvMap/CMakeLists.txt | 2 +- examples/HeadlessExample/CMakeLists.txt | 2 +- examples/HelloRadium/CMakeLists.txt | 2 +- examples/KeyEvent/CMakeLists.txt | 2 +- examples/MaterialEdition/CMakeLists.txt | 2 +- examples/ParameterEdition/CMakeLists.txt | 2 +- examples/Picking/CMakeLists.txt | 2 +- examples/PluginsWithLib/CMakeLists.txt | 2 +- examples/PluginsWithLib/Downstream/CMakeLists.txt | 2 +- examples/PluginsWithLib/Upstream/CMakeLists.txt | 2 +- examples/PluginsWithLib/Upstream/Library/CMakeLists.txt | 2 +- examples/PluginsWithLib/Upstream/Plugin/CMakeLists.txt | 2 +- examples/RawShaderMaterial/CMakeLists.txt | 2 +- examples/SimpleAnimation/CMakeLists.txt | 2 +- examples/SimpleSimulation/CMakeLists.txt | 2 +- examples/SimpleSkinning/CMakeLists.txt | 2 +- examples/TexturedQuad/CMakeLists.txt | 2 +- examples/TexturedQuadDynamic/CMakeLists.txt | 2 +- examples/Volume/CMakeLists.txt | 2 +- external/CMakeLists.txt | 2 +- external/Core/CMakeLists.txt | 2 +- external/Engine/CMakeLists.txt | 2 +- external/Gui/CMakeLists.txt | 2 +- external/IO/CMakeLists.txt | 2 +- src/Headless/CMakeLists.txt | 2 +- 38 files changed, 40 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd42714e5ec..d80b1bddacb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.18 FATAL_ERROR) # ------------------------------------------------------------------------------ # Policies and global parameters for CMake diff --git a/cmake/FindFilesystem.cmake b/cmake/FindFilesystem.cmake index ce8aeaa2bb3..2fd8fc39dbf 100644 --- a/cmake/FindFilesystem.cmake +++ b/cmake/FindFilesystem.cmake @@ -101,7 +101,7 @@ if(TARGET std::filesystem) return() endif() -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.18) include(CMakePushCheckState) include(CheckIncludeFileCXX) diff --git a/cmake/QtFunctions.cmake b/cmake/QtFunctions.cmake index 661cf4f16c3..9ffbd210a86 100644 --- a/cmake/QtFunctions.cmake +++ b/cmake/QtFunctions.cmake @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.18) # Find Qt5 or Qt6 packages Parameters: COMPONENTS : optional parameter listing the # Qt packages (e.g. Core, Widgets REQUIRED: optional parameter propagated to find_package diff --git a/cmake/RadiumSetupFunctions.cmake b/cmake/RadiumSetupFunctions.cmake index d9e75ae7f41..9c4c861422e 100644 --- a/cmake/RadiumSetupFunctions.cmake +++ b/cmake/RadiumSetupFunctions.cmake @@ -6,7 +6,7 @@ # Minimum version: 3.16: install target from different directory see # https://github.com/STORM-IRIT/Radium-Engine/pull/550#issuecomment-637415860 -cmake_minimum_required(VERSION 3.16 FATAL_ERROR) +cmake_minimum_required(VERSION 3.18 FATAL_ERROR) if(MSVC OR MSVC_IDE OR MINGW) include(${CMAKE_CURRENT_LIST_DIR}/Windeployqt.cmake) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 7932340578f..0a2d6911052 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -4,7 +4,7 @@ # * dot = for automatically generated UML diagrams (class, include, caller, call, collaboration) # * PlantUML = for easy generation of custom diagrams -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.18) project(radium-doc) if(POLICY CMP0077) diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index 858b5cb555f..4b4dc78bf1d 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -6,7 +6,7 @@ The following platforms and tool chains have been tested and should work : * *Windows* : IDEs: Visual Studio 2019, 2022 (2017 is not supported due to embedded cmake version), QtCreator. Command Line: cmake+ninja+MSVC(2017, 2019, 2022) . -* *Mac OSX* : gcc 10 or higher, Apple clang +* *Mac OSX* : gcc 10 or higher, Apple clang, llvm clang 11 or higher * *Linux* : gcc 8 or higher, clang See also our Continuous Integration system at . @@ -14,7 +14,7 @@ See also our Continuous Integration system at Date: Fri, 16 Jun 2023 13:44:54 +0200 Subject: [PATCH 004/176] [cmake] fix compilation on windows --- cmake/ExternalInclude.cmake | 58 +++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/cmake/ExternalInclude.cmake b/cmake/ExternalInclude.cmake index 7df2601dd39..07d415f9a11 100644 --- a/cmake/ExternalInclude.cmake +++ b/cmake/ExternalInclude.cmake @@ -5,34 +5,50 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") else() set(EXTERNAL_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") endif() + set(RADIUM_EXTERNAL_CMAKE_OPTIONS + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_MESSAGE=${EXTERNAL_INSTALL_MESSAGE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_CXX_FLAGS=${EXTERNAL_CMAKE_CXX_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} + -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} + -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} + -DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX} + -DCMAKE_MACOSX_RPATH=TRUE + --no-warn-unused-cli + ) else() set(EXTERNAL_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") + set(RADIUM_EXTERNAL_CMAKE_OPTIONS + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_MESSAGE=${EXTERNAL_INSTALL_MESSAGE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_CXX_FLAGS=${EXTERNAL_CMAKE_CXX_FLAGS} + -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} + -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} + -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} + -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} + -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} + -DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX} + -DCMAKE_MACOSX_RPATH=TRUE + --no-warn-unused-cli + ) endif() # if we are in a radium process, use radium specific option, else use cmake option. set(EXTERNAL_INSTALL_MESSAGE ${CMAKE_INSTALL_MESSAGE}) -set(RADIUM_EXTERNAL_CMAKE_OPTIONS - -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_INSTALL_MESSAGE=${EXTERNAL_INSTALL_MESSAGE} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_CXX_FLAGS=${EXTERNAL_CMAKE_CXX_FLAGS} - -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} - -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} - -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} - -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} - -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} - -DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX} - -DCMAKE_MACOSX_RPATH=TRUE - --no-warn-unused-cli -) - # First message formating function, need other to have better consistency macro(status_message MODULE NAME VAR) message(STATUS "${MODULE} Using ${NAME} from ${VAR}") From 6128344c4d6770df0fe5049251ee1e93dee53a49 Mon Sep 17 00:00:00 2001 From: Mathias Paulin Date: Mon, 19 Jun 2023 09:30:26 +0200 Subject: [PATCH 005/176] [cmake] remove code redundancy --- cmake/ExternalInclude.cmake | 51 +++++++++++++++---------------------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/cmake/ExternalInclude.cmake b/cmake/ExternalInclude.cmake index 07d415f9a11..6395005964e 100644 --- a/cmake/ExternalInclude.cmake +++ b/cmake/ExternalInclude.cmake @@ -1,48 +1,37 @@ -#set the compile definition for current directory (i.e. externals) +#set the compile definition for current directory (i.e. +set(RADIUM_EXTERNAL_CMAKE_OPTIONS + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DCMAKE_INSTALL_MESSAGE=${EXTERNAL_INSTALL_MESSAGE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} + -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} + -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} + -DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX} + -DCMAKE_MACOSX_RPATH=TRUE + --no-warn-unused-cli +) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" EXTERNAL_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() set(EXTERNAL_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") endif() - set(RADIUM_EXTERNAL_CMAKE_OPTIONS - -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_INSTALL_MESSAGE=${EXTERNAL_INSTALL_MESSAGE} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_CXX_FLAGS=${EXTERNAL_CMAKE_CXX_FLAGS} - -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} - -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} - -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} - -DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX} - -DCMAKE_MACOSX_RPATH=TRUE - --no-warn-unused-cli + set(RADIUM_EXTERNAL_CMAKE_OPTIONS ${RADIUM_EXTERNAL_CMAKE_OPTIONS} + -DCMAKE_CXX_FLAGS=${EXTERNAL_CMAKE_CXX_FLAGS} ) else() set(EXTERNAL_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") set(RADIUM_EXTERNAL_CMAKE_OPTIONS - -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} - -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_INSTALL_MESSAGE=${EXTERNAL_INSTALL_MESSAGE} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + ${RADIUM_EXTERNAL_CMAKE_OPTIONS} -DCMAKE_CXX_FLAGS=${EXTERNAL_CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} - -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS} - -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} - -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH} - -DCMAKE_OBJECT_PATH_MAX=${CMAKE_OBJECT_PATH_MAX} - -DCMAKE_MACOSX_RPATH=TRUE - --no-warn-unused-cli ) endif() From 378603c66bd331dd5858c331d372db35ac014ed7 Mon Sep 17 00:00:00 2001 From: Mathias Paulin Date: Mon, 19 Jun 2023 09:31:09 +0200 Subject: [PATCH 006/176] [cmake] remove custom patch on cpplocate external --- doc/basics/compilation.md | 6 ++--- external/Core/CMakeLists.txt | 10 ++++---- external/Core/patches/cpplocate.patch | 35 --------------------------- 3 files changed, 8 insertions(+), 43 deletions(-) delete mode 100644 external/Core/patches/cpplocate.patch diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index 4b4dc78bf1d..be764a85a24 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -205,7 +205,7 @@ For instance, with directory structure for externals as defined in \ref dependen { "QtDir": "C:/Qt/6.3.0/msvc2019_64/" "glfwDir" : "C:/path/to/glfwInstallation", - "ExternalInstallDir": "${projectDir}/../radium-externals/install" + "ExternalInstallDir": "${projectDir}/../radium-externals/install;${projectDir}/../radium-externals/install/${name}/cpplocate;" } ], "configurations": [ @@ -222,7 +222,7 @@ For instance, with directory structure for externals as defined in \ref dependen "environments": [ { "environment": "RadiumDllsLocations", - "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", + "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/cpplocate;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", "QtDllsDIR": "${env.QtDir}/bin", "RadiumDlls": "${buildRoot}/src/Core;${buildRoot}/src/Engine;${buildRoot}/src/Gui;${buildRoot}/src/Headless;${buildRoot}/src/IO;${buildRoot}/src/PluginBase" } @@ -241,7 +241,7 @@ For instance, with directory structure for externals as defined in \ref dependen "environments": [ { "environment": "RadiumDllsLocations", - "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", + "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/cpplocate;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", "QtDllsDIR": "${env.QtDir}/bin", "RadiumDlls": "${buildRoot}/src/Core;${buildRoot}/src/Engine;${buildRoot}/src/Gui;${buildRoot}/src/Headless;${buildRoot}/src/IO;${buildRoot}/src/PluginBase" } diff --git a/external/Core/CMakeLists.txt b/external/Core/CMakeLists.txt index 28cbe761805..06fd9589787 100644 --- a/external/Core/CMakeLists.txt +++ b/external/Core/CMakeLists.txt @@ -70,15 +70,15 @@ if(NOT DEFINED cpplocate_DIR OR NOT cpplocate_DIR) GIT_TAG tags/v2.2.0 GIT_SHALLOW TRUE GIT_PROGRESS TRUE - PATCH_COMMAND git reset --hard && git apply -v --ignore-whitespace - "${CMAKE_CURRENT_LIST_DIR}/patches/cpplocate.patch" - INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" + INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/cpplocate" CMAKE_ARGS ${RADIUM_EXTERNAL_CMAKE_OPTIONS} -DOPTION_BUILD_TESTS=OFF - -DOPTION_BUILD_DOCS=OFF -DCMAKE_MESSAGE_INDENT=${indent_string}\; + -DOPTION_BUILD_DOCS=OFF -DCMAKE_INSTALL_PREFIX= + "-DCMAKE_MESSAGE_INDENT=${indent_string}\;" ) add_dependencies(CoreExternals cpplocate) - set_external_dir(cpplocate "share/cpplocate/") + set_external_dir(cpplocate "cpplocate/") else() + add_custom_target(cpplocate) status_message("" "cpplocate" ${cpplocate_DIR}) endif() diff --git a/external/Core/patches/cpplocate.patch b/external/Core/patches/cpplocate.patch deleted file mode 100644 index 2ad15da849f..00000000000 --- a/external/Core/patches/cpplocate.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- cpplocate/CMakeLists.txt 2020-06-26 14:40:30.000000000 +0200 -+++ cpplocate/CMakeLists.txt.Radium 2020-06-26 14:44:55.000000000 +0200 -@@ -123,8 +123,6 @@ - endif() - - # Installation paths --if(UNIX AND SYSTEM_DIR_INSTALL) -- # Install into the system (/usr/bin or /usr/local/bin) - set(INSTALL_ROOT "share/${project}") # /usr/[local]/share/ - set(INSTALL_CMAKE "share/${project}/cmake") # /usr/[local]/share//cmake - set(INSTALL_EXAMPLES "share/${project}") # /usr/[local]/share/ -@@ -136,22 +134,7 @@ - set(INSTALL_DOC "share/doc/${project}") # /usr/[local]/share/doc/ - set(INSTALL_SHORTCUTS "share/applications") # /usr/[local]/share/applications - set(INSTALL_ICONS "share/pixmaps") # /usr/[local]/share/pixmaps -- set(INSTALL_INIT "/etc/init") # /etc/init (upstart init scripts) --else() -- # Install into local directory -- set(INSTALL_ROOT ".") # ./ -- set(INSTALL_CMAKE "cmake") # ./cmake -- set(INSTALL_EXAMPLES ".") # ./ -- set(INSTALL_DATA ".") # ./ -- set(INSTALL_BIN ".") # ./ -- set(INSTALL_SHARED "lib") # ./lib -- set(INSTALL_LIB "lib") # ./lib -- set(INSTALL_INCLUDE "include") # ./include -- set(INSTALL_DOC "doc") # ./doc -- set(INSTALL_SHORTCUTS "misc") # ./misc -- set(INSTALL_ICONS "misc") # ./misc -- set(INSTALL_INIT "misc") # ./misc --endif() -+ set(INSTALL_INIT "etc/init") # /etc/init (upstart init scripts) - - # Set runtime path - set(CMAKE_SKIP_BUILD_RPATH FALSE) # Add absolute path to all dependencies for BUILD From fb297b1005956c39f27e63fe140bd8a836b33d4d Mon Sep 17 00:00:00 2001 From: Mathias Paulin Date: Mon, 19 Jun 2023 14:13:16 +0200 Subject: [PATCH 007/176] [ci] fix cpplocate path on windows --- .github/workflows/build-matrix.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-matrix.yml b/.github/workflows/build-matrix.yml index d8061758eee..264c2553647 100644 --- a/.github/workflows/build-matrix.yml +++ b/.github/workflows/build-matrix.yml @@ -172,6 +172,7 @@ jobs: echo "${{ env.ext-dir }}/bin" >> $GITHUB_PATH echo "${{ env.ext-dir }}/glbinding" >> $GITHUB_PATH echo "${{ env.ext-dir }}/globjects" >> $GITHUB_PATH + echo "${{ env.ext-dir }}/cpplocate" >> $GITHUB_PATH - name: Prepare directories run: | mkdir -p install/ From 0b8bc7c851ebc17c58eb77730d4e3cdcf5894fb7 Mon Sep 17 00:00:00 2001 From: David Vanderhaeghe Date: Wed, 21 Jun 2023 13:54:26 +0200 Subject: [PATCH 008/176] [cmake] fix typo. --- cmake/ExternalInclude.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/ExternalInclude.cmake b/cmake/ExternalInclude.cmake index 6395005964e..712d83881f5 100644 --- a/cmake/ExternalInclude.cmake +++ b/cmake/ExternalInclude.cmake @@ -1,4 +1,4 @@ -#set the compile definition for current directory (i.e. +#set the compile definition for current directory (i.e. externals) set(RADIUM_EXTERNAL_CMAKE_OPTIONS -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED} From 4ec639f0292ce372ae7d0988277019ac499dd47e Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:28:18 +0000 Subject: [PATCH 009/176] Update version to 1.5.2 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 26ca594609a..4cda8f19edc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.1 +1.5.2 From 1495138b6bcbf2585690f326704b7c9697359d37 Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 11:10:18 +0200 Subject: [PATCH 010/176] [doc] Fix json typo for VS configuration. --- doc/basics/compilation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index be764a85a24..29200a8e329 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -203,9 +203,9 @@ For instance, with directory structure for externals as defined in \ref dependen { "environments": [ { - "QtDir": "C:/Qt/6.3.0/msvc2019_64/" + "QtDir": "C:/Qt/6.3.0/msvc2019_64/", "glfwDir" : "C:/path/to/glfwInstallation", - "ExternalInstallDir": "${projectDir}/../radium-externals/install;${projectDir}/../radium-externals/install/${name}/cpplocate;" + "ExternalInstallDir": "${projectDir}/../radium-externals/install/${name}/bin;${projectDir}/../radium-externals/install/${name}/cpplocate;${projectDir}/../radium-externals/install/${name}/globjects;${projectDir}/../radium-externals/install/${name}/glbinding", } ], "configurations": [ @@ -275,7 +275,7 @@ Then, select in the menu `/Debug and Launch Settings for DrawPrimmitives` "project": "CMakeLists.txt", "projectTarget": "DrawPrimitives.exe (examples\\DrawPrimitives\\DrawPrimitives.exe)", "name": "DrawPrimitives.exe (examples\\DrawPrimitives\\DrawPrimitives.exe)", - "inheritEnvironments": [ "RadiumDllLocations" ], + "inheritEnvironments": [ "RadiumDllsLocations" ], "env": { "PATH": "${env.QtDllsDIR};${env.ExternalDllsDIR};${env.RadiumDlls};${env.PATH}" } @@ -287,7 +287,7 @@ Then, select in the menu `/Debug and Launch Settings for DrawPrimmitives` For any target you want to execute, the same should be done, i.e. adding the following to the target configuration ~~~{.json} - "inheritEnvironments": [ "RadiumDllLocations" ], + "inheritEnvironments": [ "RadiumDllsLocations" ], "env": { "PATH": "${env.QtDllsDIR};${env.ExternalDllsDIR};${env.RadiumDlls};${env.PATH}" } From e159439b41354104d17dd54b29e575411f176b19 Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 11:40:17 +0200 Subject: [PATCH 011/176] [doc] Refactor compilations doc. --- doc/basics/compilation.md | 246 +++++++++++++++++++------------------- 1 file changed, 125 insertions(+), 121 deletions(-) diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index 29200a8e329..1f21d7db195 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -22,6 +22,7 @@ Minimal requirements If not already done, follow instructions at \ref dependenciesmanagement. Radium follows a standard cmake structure, so any IDE supporting cmake should be able to configure and build it. +**Out-of source builds are mandatory**. Several targets allowing to build or install only a specific part of Radium-Engine are defined by the cmake configuration. The standard targets `all` and `install` are also available as a shortcut to build all the configured components and to install the main components. @@ -30,134 +31,19 @@ The standard targets `all` and `install` are also available as a shortcut to bui Remember that compiling Radium in Debug mode needs to have the dependencies compiled and installed in Debug mode (due to a limitation in assimp). -## Folder structure - -Radium-Engine relies on CMake build-chain on all supported platforms. -In most cases, building should be pretty straightforward, provided that cmake can locate the dependencies. - -### Installation directory - -By default, `${CMAKE_INSTALL_PREFIX}` is set as follow: - -* For release build : - -~~~{.cmake} - set(RADIUM_BUNDLE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}) -~~~ - -* For Debug or RelWithDebInfo build - -~~~{.cmake} - set(RADIUM_BUNDLE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}-${CMAKE_BUILD_TYPE}) -~~~ - -It has the following structure - -~~~{.txt} -Bundle-* - - bin/ include/ lib/ LICENSE README.md Resources/ -~~~ - -### Configure build options - -Radium offers the following build options: - -~~~{.bash} -// Enable coverage, gcc only. Experimental, need ENABLE_TESTING -RADIUM_ENABLE_COVERAGE:BOOL=OFF - -// Enable examples app build. To install examples, build explicitly the target Install_RadiumExamples. -RADIUM_ENABLE_EXAMPLES:BOOL=OFF - -// Enable precompiled headers. -RADIUM_ENABLE_PCH:BOOL=OFF - -// Enable testing. Tests are automatically built with target all, run with target check or test. -RADIUM_ENABLE_TESTING:BOOL=ON - -// Enable testing of OpenGL functionalities. Option only available if RADIUM_ENABLE_TESTING is ON. -RADIUM_ENABLE_GL_TESTING:BOOL=OFF - -// Include Radium::Core in CMake project. -RADIUM_GENERATE_LIB_CORE:BOOL=ON - -// Include Radium::Engine in CMake project. -RADIUM_GENERATE_LIB_ENGINE:BOOL=ON - -// Include Radium::Gui in CMake project. -RADIUM_GENERATE_LIB_GUI:BOOL=ON - -// Include Radium::Headless in CMake project. -RADIUM_GENERATE_LIB_HEADLESS:BOOL=ON +## Command line instructions (linux, macos, windows) -// Include Radium::IO in CMake project. -RADIUM_GENERATE_LIB_IO:BOOL=ON - -// Include Radium::PluginBase in CMake project. -RADIUM_GENERATE_LIB_PLUGINBASE:BOOL=ON - -// Install documentation. If RadiumDoc is compiled, install documentation to bundle directory for install target. -RADIUM_INSTALL_DOC:BOOL=ON - -// Provide loaders based on Assimp library -RADIUM_IO_ASSIMP:BOOL=ON - -// Provide deprecated loaders (to be removed without notice) -RADIUM_IO_DEPRECATED:BOOL=ON - -// Provide loaders based on TinyPly library -RADIUM_IO_TINYPLY:BOOL=ON - -// Provide loader for volume pvm file format -RADIUM_IO_VOLUMES:BOOL=ON - -// Disable Radium Log messages -RADIUM_QUIET:BOOL=OFF - -// Update version file each time the project is compiled (update compilation time in version.cpp). -RADIUM_UPDATE_VERSION:BOOL=ON - -// Use double precision for Scalar. -RADIUM_USE_DOUBLE:BOOL=OFF -~~~ - -All radium related cmake options (with their current values) can be printed with `cmake -LAH | grep -B1 RADIUM` (on linux like system) - -\warning For computers with low RAM capacities (under 12G) we recommend to set the `CMAKE_BUILD_PARALLEL_LEVEL` environment variable to a reasonable value (i.e. 2) to prevent the computer from swapping. +For command line, tested on Linux and mac OS, **for windows might need more configuration options**. -### Precompiled headers - -Radium build can take benefit of precompiled headers. To do so, set `RADIUM_ENABLE_PCH=ON` (OFF by default) at cmake configure time. -Compilation speedup depends on what files you are currently editing, and full compilation is roughly 20% less with precompiled header enabled. - -### Dependencies between libraries - -The options `RADIUM_GENERATE_LIB_XXXX` allows to enable/disable each Radium library. -The dependencies between libraries are set as follow: - -~~~{.cmake} -add_dependencies (${ra_engine_target} PUBLIC Radium::Core) -add_dependencies (${ra_io_target} PUBLIC Radium::Core) -add_dependencies (${ra_pluginbase_target} Radium::Core Radium::Engine) -add_dependencies (${ra_gui_target} PUBLIC Radium::Core Radium::Engine Radium::PluginBase Radium::IO) -~~~ - -\warning Consistency of `RADIUM_GENERATE_LIB_***` options is not checked wrt. the dependencies. - -* When enabled using `RADIUM_GENERATE_LIB_***`, each library has a compilation target: `Core`, `Engine`, ... - -## Command line instructions for building (on windows, mac and linux) - -Out-of source builds are mandatory, we recommend to follow the usual sequence, assuming you have build dependecies as explained [here](@ref builddep): +Follow the usual sequence, assuming you have build dependecies as explained [here](@ref builddep): ~~~{.bash} cmake -S Radium-Engine -B builds/radium-build-r -DCMAKE_BUILD_TYPE=Release -C installs/radium-external-r/radium-options.cmake cmake --build builds/radium-build-r --config Release --parallel -DQt5_DIR=path/to/qt5 cmake --install builds/radium-build-r - ~~~ -If qt is installed system wide (likely on linux), `-DQt5_DIR` is not needed. +If Qt is installed system wide (likely on linux), `-DQt5_DIR` is not needed. \note Qt6 is also supported. To enable it, replace `-DQt5_DIR=path/to/qt5` by `-DQt6_DIR=path/to/qt6`. To ease maintenance accross Qt versions, you should also configure the path to Qt cmake package using `-DCMAKE_PREFIX_PATH=path/to/qtX` where `X` is the Qt version you want to use. @@ -187,8 +73,8 @@ You will probably have to manually point cmake to the Qt folder. ### Getting started with Visual Studio -Thanks to the integrated support of CMake in Visual Studio, you don't need a VS solution to build your project: open the Radium folder (via *File* > *Open* > *Folder ...* or `devenv.exe `). -VS should run cmake, generate the target builds (Debug and Release by default). +Open the Radium folder (via "File > Open > Folder..." or `devenv.exe `). +VS will run cmake, generate the target builds (Debug and Release by default). Other build types can be added by editing `CMakeSettings.json`. Configure cmake option (see official doc [here](https://docs.microsoft.com/cpp/build/customize-cmake-settings)) @@ -302,3 +188,121 @@ If you plan to execute the 'unittest.exe' target, you should also add the follow ### installation To install, you need to run any installation target, e.g. `Engine.dll (install)` or to select the menu `/` + +# Configuration details + +## Folder structure + +Radium-Engine relies on CMake build-chain on all supported platforms. +In most cases, building should be pretty straightforward, provided that cmake can locate the dependencies. + +### Installation directory + +By default, `${CMAKE_INSTALL_PREFIX}` is set as follow: + +* For release build : + +~~~{.cmake} + set(RADIUM_BUNDLE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}) +~~~ + +* For Debug or RelWithDebInfo build + +~~~{.cmake} + set(RADIUM_BUNDLE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}-${CMAKE_BUILD_TYPE}) +~~~ + +It has the following structure + +~~~{.txt} +Bundle-* + - bin/ include/ lib/ LICENSE README.md Resources/ +~~~ + +## Configure build options + +Radium offers the following build options: + +~~~{.bash} +// Enable coverage, gcc only. Experimental, need ENABLE_TESTING +RADIUM_ENABLE_COVERAGE:BOOL=OFF + +// Enable examples app build. To install examples, build explicitly the target Install_RadiumExamples. +RADIUM_ENABLE_EXAMPLES:BOOL=OFF + +// Enable precompiled headers. +RADIUM_ENABLE_PCH:BOOL=OFF + +// Enable testing. Tests are automatically built with target all, run with target check or test. +RADIUM_ENABLE_TESTING:BOOL=ON + +// Enable testing of OpenGL functionalities. Option only available if RADIUM_ENABLE_TESTING is ON. +RADIUM_ENABLE_GL_TESTING:BOOL=OFF + +// Include Radium::Core in CMake project. +RADIUM_GENERATE_LIB_CORE:BOOL=ON + +// Include Radium::Engine in CMake project. +RADIUM_GENERATE_LIB_ENGINE:BOOL=ON + +// Include Radium::Gui in CMake project. +RADIUM_GENERATE_LIB_GUI:BOOL=ON + +// Include Radium::Headless in CMake project. +RADIUM_GENERATE_LIB_HEADLESS:BOOL=ON + +// Include Radium::IO in CMake project. +RADIUM_GENERATE_LIB_IO:BOOL=ON + +// Include Radium::PluginBase in CMake project. +RADIUM_GENERATE_LIB_PLUGINBASE:BOOL=ON + +// Install documentation. If RadiumDoc is compiled, install documentation to bundle directory for install target. +RADIUM_INSTALL_DOC:BOOL=ON + +// Provide loaders based on Assimp library +RADIUM_IO_ASSIMP:BOOL=ON + +// Provide deprecated loaders (to be removed without notice) +RADIUM_IO_DEPRECATED:BOOL=ON + +// Provide loaders based on TinyPly library +RADIUM_IO_TINYPLY:BOOL=ON + +// Provide loader for volume pvm file format +RADIUM_IO_VOLUMES:BOOL=ON + +// Disable Radium Log messages +RADIUM_QUIET:BOOL=OFF + +// Update version file each time the project is compiled (update compilation time in version.cpp). +RADIUM_UPDATE_VERSION:BOOL=ON + +// Use double precision for Scalar. +RADIUM_USE_DOUBLE:BOOL=OFF +~~~ + +All radium related cmake options (with their current values) can be printed with `cmake -LAH | grep -B1 RADIUM` (on linux like system) + +\warning For computers with low RAM capacities (under 12G) we recommend to set the `CMAKE_BUILD_PARALLEL_LEVEL` environment variable to a reasonable value (i.e. 2) to prevent the computer from swapping. + +### Precompiled headers + +Radium build can take benefit of precompiled headers. To do so, set `RADIUM_ENABLE_PCH=ON` (OFF by default) at cmake configure time. +Compilation speedup depends on what files you are currently editing, and full compilation is roughly 20% less with precompiled header enabled. + +### Dependencies between libraries + +The options `RADIUM_GENERATE_LIB_XXXX` allows to enable/disable each Radium library. +The dependencies between libraries are set as follow: + +~~~{.cmake} +add_dependencies (${ra_engine_target} PUBLIC Radium::Core) +add_dependencies (${ra_io_target} PUBLIC Radium::Core) +add_dependencies (${ra_pluginbase_target} Radium::Core Radium::Engine) +add_dependencies (${ra_gui_target} PUBLIC Radium::Core Radium::Engine Radium::PluginBase Radium::IO) +~~~ + +\warning Consistency of `RADIUM_GENERATE_LIB_***` options is not checked wrt. the dependencies. + +* When enabled using `RADIUM_GENERATE_LIB_***`, each library has a compilation target: `Core`, `Engine`, ... From 8e9f571c32e98a70e10729650d8c015a5e4c33c1 Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 11:45:20 +0200 Subject: [PATCH 012/176] [doc] Fix and improve dependencies doc. --- doc/basics/dependencies.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/basics/dependencies.md b/doc/basics/dependencies.md index ab706eebad4..e163edb7a7a 100644 --- a/doc/basics/dependencies.md +++ b/doc/basics/dependencies.md @@ -30,6 +30,8 @@ We provide a standalone cmake project (`Radium-Engine/external/CMakeLists.txt`) ## Configuration and compilation of the dependencies +For command line, tested on Linux and mac OS, **for windows might need more configuration options**. + External dependencies have to be installed outside Radium-Engine source tree. ~~~{.bash} @@ -45,9 +47,9 @@ cmake --build builds/radium-external-build-d --config Debug --parallel If not given on the command line, the installation directory is set by default to `Radium-Engine/{CMAKE_CURRENT_BINARY_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}` for `CMAKE_BUILD_TYPE=Release`, and `Radium-Engine/{CMAKE_CURRENT_BINARY_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}-${CMAKE_BUILD_TYPE}` for any other `CMAKE_BUILD_TYPE`. -### Getting started with Visual Studio +### Visual Studio configuration -Open `external/CMakeLists.txt` and edit cmake settings or `CMakeSettings.json`. External build and install have to be outside Radium-Engine source directory. For instance +Open the external folder in VS using "Open a local folder" and edit cmake settings or `CMakeSettings.json`. External build and install have to be outside Radium-Engine source directory. For instance ~~~{.json} { @@ -120,7 +122,7 @@ You can use your own installation of a local dependency instead of letting cmak To this end, just provide the corresponding '*_DIR' to cmake at configuration time as show before (with '-D' option, configuration file or toolchain file, please refer to cmake documentation). Currently supported (note that these paths must refer to the installation directory of the corresponding library): - + * `assimp_DIR` * `tinyply_DIR` From 41ed3664e8b30e20f31880ccba8664af680b7d2c Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 11:52:48 +0200 Subject: [PATCH 013/176] [doc] Fix small typos, and prepare for doxygen update. --- doc/basics/troubleshooting.md | 1 + doc/concepts/componentMessenger.md | 2 +- doc/concepts/eventSystem.md | 2 +- doc/developer/animation.md | 2 +- doc/developer/material.md | 6 ++++-- doc/developer/oldmanual.md | 4 ++-- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/basics/troubleshooting.md b/doc/basics/troubleshooting.md index bca6a8ea363..b6fcbd9f8aa 100644 --- a/doc/basics/troubleshooting.md +++ b/doc/basics/troubleshooting.md @@ -1,4 +1,5 @@ \page basicsTroubleshooting Troubleshooting +[TOC] # Qt cmake errors diff --git a/doc/concepts/componentMessenger.md b/doc/concepts/componentMessenger.md index e27dd755483..eb27355d1a6 100644 --- a/doc/concepts/componentMessenger.md +++ b/doc/concepts/componentMessenger.md @@ -1,4 +1,4 @@ -\page componentMessenger [deprecated] Component Messenger +\page componentMessenger _deprecated_ Component Messenger \todo check and update [TOC] diff --git a/doc/concepts/eventSystem.md b/doc/concepts/eventSystem.md index b01cd168ab1..d743417bfbe 100644 --- a/doc/concepts/eventSystem.md +++ b/doc/concepts/eventSystem.md @@ -1,4 +1,4 @@ -\page eventSystem [deprecated] Event System +\page eventSystem _deprecated_ Event System \todo check and update [TOC] diff --git a/doc/developer/animation.md b/doc/developer/animation.md index c1529b82b48..0b49d4166ff 100644 --- a/doc/developer/animation.md +++ b/doc/developer/animation.md @@ -74,7 +74,7 @@ handles local transformations to deform the mesh vertices. #### Skeleton-Based Character Animation in Radium The Radium Engine provides a system specific to the skeleton-based animation of a -character, the `Ra::Engine::Scene::SkeletonBasedAnimationSystem. +character, the `Ra::Engine::Scene::SkeletonBasedAnimationSystem`. This system is responsible for transmitting calls to/from animation-related processes to 2 specific`Ra::Engine::Scene::Component`: diff --git a/doc/developer/material.md b/doc/developer/material.md index 215960e914d..99ed85b2fc5 100644 --- a/doc/developer/material.md +++ b/doc/developer/material.md @@ -266,7 +266,7 @@ In order to keep the appearance computation agnostic on the way vertex attribs a propose an abstract interface. But, and this is particular to these attributes, one can access to the attributes himself, on the vertex, or to the attributes interpolated by the rasterizer, on the fragment. Accessing the Attribute directly on the vertex (i.e. on a vertex shader) does not necessitate an interface as -each shader must define its attributes and as the [Mesh API](./mesh.md) allows to communicate between C++ and GLSL. +each shader must define its attributes and as the [Mesh API](\ref develmeshes) allows to communicate between C++ and GLSL. Note that the attributes accessed through the Vertex attrib interface **must** be defined in world space. Even if not necessarily efficient (some transformations might be computed twice), this will ensure more simple @@ -646,7 +646,9 @@ addRenderObject( renderObject ); Then the draw call of ``renderObject`` uses the ``myConfig`` as shader configuration. Before rendering, the method ``updateGL`` on the ``parameterProvider`` instance is called so that the shader's uniforms values are updated according the one stored in ``parameterProvider``. -# \todo TO UPDATE +# TO UPDATE + +\todo TO UPDATE Shader programs are managed through their `ShaderConfiguration`, which contains the _shader objects_ (vertex, fragment, ... shader) and the _shader properties_ (not used for now though). diff --git a/doc/developer/oldmanual.md b/doc/developer/oldmanual.md index 1bd4e91d330..5df202fe9eb 100644 --- a/doc/developer/oldmanual.md +++ b/doc/developer/oldmanual.md @@ -1,4 +1,4 @@ -\page develoldmanual [deprecated] Radium Engine programmer manual +\page develoldmanual _deprecated_ Radium Engine programmer manual \todo pick relevant part, update and move to corresponding page [TOC] @@ -116,7 +116,7 @@ Render objects are stored together by the _render object manager_ for efficiency The Render Objects are drawn by the _Renderer_ which may live in a separated thread. Each frame it grabs all the drawable (which should be double-buffered in case we are mid-VBO update) and calls `draw()` on them. -(TODO : a nice class schema). +\todo a nice class schema ## ItemEntry : Handles to engine objects From 7919083abbb6975743c3db4414ba2674f9034426 Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 12:01:49 +0200 Subject: [PATCH 014/176] [doc] Fix bad link (missing namespace, bad template use). --- doc/concepts/componentMessenger.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/concepts/componentMessenger.md b/doc/concepts/componentMessenger.md index eb27355d1a6..9a93ba04599 100644 --- a/doc/concepts/componentMessenger.md +++ b/doc/concepts/componentMessenger.md @@ -8,8 +8,7 @@ a data. # Read # -The **suscriber** must define and register some `ComponentMessenger::CallbackTypes::Setter` that will -be used by the `ComponentMessenger` to set the data to the +The **suscriber** must define and register some `Ra::Engine::Scene::ComponentMessenger::CallbackTypes::Setter` that will be used by the `ComponentMessenger` to set the data to the former. // definition of callback @@ -32,7 +31,7 @@ former. // registration ComponentMessenger::getInstance()->registerOutput( entity, this, "name", data_out ); -The **publisher** will define and register a `ComponentMessenger::CallbackTypes::Getter` that will be used +The **publisher** will define and register a `Ra::Engine::Scene::ComponentMessenger::CallbackTypes::Getter` that will be used by the `ComponentMessenger` to fetch data from the former. # Read'n'Write # From 53327d5c51b10be3f5ef7b396b37724aec98d31b Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 12:02:13 +0200 Subject: [PATCH 015/176] [doc] cmake utils fix/uniformize ref. --- doc/developer/cmakeutilities.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/developer/cmakeutilities.md b/doc/developer/cmakeutilities.md index 60416f4a5c4..8744f6f2503 100644 --- a/doc/developer/cmakeutilities.md +++ b/doc/developer/cmakeutilities.md @@ -364,7 +364,7 @@ install_target_resources( ) ~~~ -### configure_radium_package {#configurePackage} +### configure_radium_package {#configure_radium_package} ~~~{.cmake} configure_radium_package( @@ -716,7 +716,7 @@ When configuring a library, a cmake package configuration file should be written Meanwhile, when several libraries must be used as components in a single package (e.g. the Radium internal libraries are all gathered into the single Radium package), a more general configuration module has to be defined. For this, instead of defining a configuration package for each configured library, the parameter `PACKAGE_CONFIG` of the function [`configure_radium_library`](#configure_radium_library) should be omitted -and the function [`configure_radium_package`](#configurePackage) should be used. +and the function [`configure_radium_package`](#configure_radium_package) should be used. Standard usage of this function requires to have some libraries configured like the following: From 6aa395442d49a88092af2bd2f6f7d7cdf64be017 Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 15 Jun 2023 12:02:48 +0200 Subject: [PATCH 016/176] [github] Update CI doxygen 1.9.1 -> 1.9.7 --- .github/workflows/deploy-doc.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml index d80677c11aa..43b98dbca74 100644 --- a/.github/workflows/deploy-doc.yml +++ b/.github/workflows/deploy-doc.yml @@ -39,11 +39,11 @@ jobs: - name: Install packages run : | sudo apt-get install graphviz - - name: Fetch recent doxygen (1.9.1) + - name: Fetch recent doxygen (1.9.7) run: | sudo apt-get install clang-9 libclang-9-dev - wget https://sourceforge.net/projects/doxygen/files/rel-1.9.1/doxygen-1.9.1.linux.bin.tar.gz - tar -xvzf doxygen-1.9.1.linux.bin.tar.gz + wget https://sourceforge.net/projects/doxygen/files/rel-1.9.7/doxygen-1.9.7.linux.bin.tar.gz + tar -xvzf doxygen-1.9.7.linux.bin.tar.gz - name: Extract ref for badges prefix if: always() shell: bash @@ -54,7 +54,7 @@ jobs: - name: Configure Doc run: | cd build/Radium-Engine - cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen-1.9.1/bin/doxygen + cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen-1.9.7/bin/doxygen - name: Build Doc run: | export GITHUB_REF="${{ steps.extract-branch.outputs.branch }}" From a25ddd811ab1ffe19c62293e7441e1d55c3d3d9e Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 19 Jun 2023 07:45:15 +0200 Subject: [PATCH 017/176] [doc] Fix render technique ref --- doc/developer/material.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/developer/material.md b/doc/developer/material.md index 99ed85b2fc5..963f567a88c 100644 --- a/doc/developer/material.md +++ b/doc/developer/material.md @@ -63,7 +63,7 @@ to the material Note that this way of using the _Radium Material Library_ is very related to the default Radium rendering capabilities exposed by the [Radium forward renderer](@ref forwardRenderer). -See the [Render technique management](./rendertechnique) documentation to learn how to create your own +See the [Render technique management](#render-technique) documentation to learn how to create your own Ra::Engine::Rendering::RenderTechnique, potentially without associated material. If one wants to render objects without BSDF computation but with a specific color computation for the fragment, @@ -123,7 +123,7 @@ public: } ~~~ -See the [Render technique management](./rendertechnique) for documentation on how to build such an helper function. +See the [Render technique management](#render-technique) for documentation on how to build such an helper function. ### Making a material editable {#editable-interface} @@ -496,7 +496,7 @@ auto theConfig = Ra::Engine::Data::ShaderConfigurationFactory::getConfiguration( "ConfigName" ); ~~~ -### Registering a RenderTechnique +### Registering a RenderTechnique {#render-technique} A Ra::Engine::Rendering::RenderTechnique describes which Ra::Engine::Data::ShaderConfiguration a renderer will use for each of its rendering passes. Such a render technique could encompass a Ra::Engine::Data::Material but its meaning is larger than just From e4ecaa9093eefb992190cb3bb086cce1e0be9295 Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 19 Jun 2023 08:22:41 +0200 Subject: [PATCH 018/176] [doc] update doxygen-awesome-css --- external/doxygen-awesome-css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/doxygen-awesome-css b/external/doxygen-awesome-css index 4cd62308d82..df83fbf22cf 160000 --- a/external/doxygen-awesome-css +++ b/external/doxygen-awesome-css @@ -1 +1 @@ -Subproject commit 4cd62308d825fe0396d2f66ffbab45d0e247724c +Subproject commit df83fbf22cfff76b875c13d324baf584c74e96d0 From a8278394e82014edae3294dcdce34f38ad006f92 Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 19 Jun 2023 08:28:36 +0200 Subject: [PATCH 019/176] [doc] Add tag file to reslove std:: to cppreference. --- doc/CMakeLists.txt | 5 + doc/cppreference-doxygen-web.tag.xml | 35489 +++++++++++++++++++++++++ 2 files changed, 35494 insertions(+) create mode 100644 doc/cppreference-doxygen-web.tag.xml diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 0a2d6911052..91584614515 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -166,6 +166,11 @@ if(DOXYGEN_FOUND) set(DOXYGEN_DOT_GRAPH_MAX_NODES "60") set(DOXYGEN_ALIASES [[complexity="@par Complexity:^^"]]) set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) + # resolve std to cpp ref + # https://upload.cppreference.com/mwiki/images/f/f8/cppreference-doxygen-web.tag.xml + set(DOXYGEN_TAGFILES + "${CMAKE_CURRENT_SOURCE_DIR}/cppreference-doxygen-web.tag.xml=http://en.cppreference.com/w/" + ) doxygen_add_docs( RadiumDoc ${md_pages_order} ${md_files} ${CMAKE_CURRENT_SOURCE_DIR}/../src/ diff --git a/doc/cppreference-doxygen-web.tag.xml b/doc/cppreference-doxygen-web.tag.xml new file mode 100644 index 00000000000..ea8388b8b8e --- /dev/null +++ b/doc/cppreference-doxygen-web.tag.xml @@ -0,0 +1,35489 @@ + + + + std + + std::is_function + + T + atomic_fetch_and_explicit + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + atomic_fetch_xor_explicit + cpp/atomic/atomic_fetch_xor + + (T... args) + + + T + set_unexpected + cpp/error/set_unexpected + + (T... args) + + std::input_iterator_tag + std::logical_and + std::is_integral + std::money_get + + T + fputs + cpp/io/c/fputs + + (T... args) + + std::basic_ofstream + std::ratio_subtract + + T + modf + cpp/numeric/math/modf + + (T... args) + + std::size_t + + T + not2 + cpp/utility/functional/not2 + + (T... args) + + + T + strlen + cpp/string/byte/strlen + + (T... args) + + + T + exp2 + cpp/numeric/math/exp2 + + (T... args) + + std::ctype_byname + std::wcout + + T + setiosflags + cpp/io/manip/setiosflags + + (T... args) + + + T + adjacent_difference + cpp/algorithm/adjacent_difference + + (T... args) + + + T + cos + cpp/numeric/math/cos + + (T... args) + + + T + fwscanf + cpp/io/c/fwscanf + + (T... args) + + + T + atomic_init + cpp/atomic/atomic_init + + (T... args) + + std::fstream + std::valarray + std::ratio_greater_equal + + T + forward_as_tuple + cpp/utility/tuple/forward_as_tuple + + (T... args) + + std::remove_extent + std::ratio_greater + + T + abort + cpp/utility/program/abort + + (T... args) + + + T + wcsncmp + cpp/string/wide/wcsncmp + + (T... args) + + std::intptr_t + std::regex_iterator + + T + set_intersection + cpp/algorithm/set_intersection + + (T... args) + + std::lock_guard + std::wbuffer_convert + std::modulus + std::ratio_divide + + T + atomic_signal_fence + cpp/atomic/atomic_signal_fence + + (T... args) + + + T + llabs + cpp/numeric/math/abs + + (T... args) + + + T + make_move_iterator + cpp/iterator/make_move_iterator + + (T... args) + + std::ostreambuf_iterator + std::dynarray + std::is_nothrow_move_constructible + std::vector + + T + scanf + cpp/io/c/fscanf + + (T... args) + + std::match_results + std::back_insert_iterator + + T + nextafter + cpp/numeric/math/nextafter + + (T... args) + + std::iterator + std::int8_t + + T + stol + cpp/string/basic_string/stol + + (T... args) + + + T + strcspn + cpp/string/byte/strcspn + + (T... args) + + + T + ungetwc + cpp/io/c/ungetwc + + (T... args) + + + T + transform + cpp/algorithm/transform + + (T... args) + + std::student_t_distribution + std::mt19937_64 + std::runtime_error + + T + putc + cpp/io/c/fputc + + (T... args) + + + T + iswdigit + cpp/string/wide/iswdigit + + (T... args) + + std::ranlux24_base + + T + rint + cpp/numeric/math/rint + + (T... args) + + std::allocator_traits + + T + memset + cpp/string/byte/memset + + (T... args) + + + T + isgraph + cpp/string/byte/isgraph + + (T... args) + + std::codecvt + std::ratio_less_equal + + T + replace_copy_if + cpp/algorithm/replace_copy + + (T... args) + + + T + scalbn + cpp/numeric/math/scalbn + + (T... args) + + std::condition_variable_any + + T + partial_sort_copy + cpp/algorithm/partial_sort_copy + + (T... args) + + std::deca + std::extreme_value_distribution + std::cout + std::decay + std::is_trivially_move_assignable + std::adopt_lock_t + + T + make_exception_ptr + cpp/error/make_exception_ptr + + (T... args) + + std::wcerr + + T + frexp + cpp/numeric/math/frexp + + (T... args) + + std::lognormal_distribution + + T + isxdigit + cpp/string/byte/isxdigit + + (T... args) + + std::wclog + + T + atomic_exchange_explicit + cpp/atomic/atomic_exchange + + (T... args) + + + T + wprintf + cpp/io/c/fwprintf + + (T... args) + + std::char_traits + std::remove_reference + + T + fdim + cpp/numeric/math/fdim + + (T... args) + + std::num_get + + T + wctype + cpp/string/wide/wctype + + (T... args) + + std::is_pointer + + T + mbrtoc32 + cpp/string/multibyte/mbrtoc32 + + (T... args) + + + T + setw + cpp/io/manip/setw + + (T... args) + + + T + get_temporary_buffer + cpp/memory/get_temporary_buffer + + (T... args) + + + T + fmax + cpp/numeric/math/fmax + + (T... args) + + std::multiset + + T + atomic_thread_fence + cpp/atomic/atomic_thread_fence + + (T... args) + + + T + atomic_exchange + cpp/atomic/atomic_exchange + + (T... args) + + std::weak_ptr + std::bidirectional_iterator_tag + std::wstring_convert + + T + fgetwc + cpp/io/c/fgetwc + + (T... args) + + + T + swprintf + cpp/io/c/fwprintf + + (T... args) + + + T + prev_permutation + cpp/algorithm/prev_permutation + + (T... args) + + std::greater_equal + std::is_trivially_constructible + + T + max_element + cpp/algorithm/max_element + + (T... args) + + std::string + std::discrete_distribution + std::wostream + std::is_polymorphic + + T + set_symmetric_difference + cpp/algorithm/set_symmetric_difference + + (T... args) + + + T + wcscpy + cpp/string/wide/wcscpy + + (T... args) + + + T + const_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + minmax_element + cpp/algorithm/minmax_element + + (T... args) + + + T + wcstok + cpp/string/wide/wcstok + + (T... args) + + + T + ref + cpp/utility/functional/ref + + (T... args) + + std::reverse_iterator + + T + feupdateenv + cpp/numeric/fenv/feupdateenv + + (T... args) + + std::bad_array_new_length + + T + endl + cpp/io/manip/endl + + (T... args) + + + T + end + cpp/iterator/end + + (T... args) + + std::condition_variable + + T + wmemmove + cpp/string/wide/wmemmove + + (T... args) + + + T + fmin + cpp/numeric/math/fmin + + (T... args) + + + T + uninitialized_fill_n + cpp/memory/uninitialized_fill_n + + (T... args) + + std::ranlux48 + + T + nouppercase + cpp/io/manip/uppercase + + (T... args) + + + T + noshowpos + cpp/io/manip/showpos + + (T... args) + + + T + ctime + cpp/chrono/c/ctime + + (T... args) + + + T + wmemset + cpp/string/wide/wmemset + + (T... args) + + std::unexpected_handler + + T + iswpunct + cpp/string/wide/iswpunct + + (T... args) + + std::piecewise_constant_distribution + std::codecvt_base + std::set + + T + pop_heap + cpp/algorithm/pop_heap + + (T... args) + + + T + sprintf + cpp/io/c/fprintf + + (T... args) + + + T + fixed + cpp/io/manip/fixed + + (T... args) + + + T + make_shared + cpp/memory/shared_ptr/make_shared + + (T... args) + + std::forward_iterator_tag + std::codecvt_byname + std::pointer_safety + std::uint_least64_t + std::placeholders + std::nothrow_t + std::is_nothrow_copy_assignable + std::is_same + + T + make_heap + cpp/algorithm/make_heap + + (T... args) + + + T + fmod + cpp/numeric/math/fmod + + (T... args) + + std::unique_lock + std::basic_ostringstream + + T + atol + cpp/string/byte/atoi + + (T... args) + + std::is_error_code_enum + std::time_put_byname + + T + uninitialized_copy + cpp/memory/uninitialized_copy + + (T... args) + + std::time_get + + T + dynamic_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + set_union + cpp/algorithm/set_union + + (T... args) + + std::regex + std::cin + + T + hexfloat + cpp/io/manip/fixed + + (T... args) + + + T + vswprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + asctime + cpp/chrono/c/asctime + + (T... args) + + std::unordered_map + + T + iswspace + cpp/string/wide/iswspace + + (T... args) + + std::initializer_list + + T + nan + cpp/numeric/math/nan + + (T... args) + + + T + sort + cpp/algorithm/sort + + (T... args) + + + T + quick_exit + cpp/utility/program/quick_exit + + (T... args) + + std::is_const + + T + log10 + cpp/numeric/math/log10 + + (T... args) + + std::basic_regex + + T + mbstowcs + cpp/string/multibyte/mbstowcs + + (T... args) + + + T + isspace + cpp/string/byte/isspace + + (T... args) + + std::poisson_distribution + std::bad_typeid + + T + strncat + cpp/string/byte/strncat + + (T... args) + + std::less_equal + + T + isinf + cpp/numeric/math/isinf + + (T... args) + + + T + atof + cpp/string/byte/atof + + (T... args) + + std::sig_atomic_t + + T + erf + cpp/numeric/math/erf + + (T... args) + + + T + is_sorted_until + cpp/algorithm/is_sorted_until + + (T... args) + + + T + cbrt + cpp/numeric/math/cbrt + + (T... args) + + + T + log1p + cpp/numeric/math/log1p + + (T... args) + + + T + return_temporary_buffer + cpp/memory/return_temporary_buffer + + (T... args) + + + T + mbsrtowcs + cpp/string/multibyte/mbsrtowcs + + (T... args) + + + T + feraiseexcept + cpp/numeric/fenv/feraiseexcept + + (T... args) + + + T + fseek + cpp/io/c/fseek + + (T... args) + + std::make_unsigned + std::basic_filebuf + + T + atomic_fetch_or_explicit + cpp/atomic/atomic_fetch_or + + (T... args) + + std::logical_or + + T + log + cpp/numeric/math/log + + (T... args) + + + T + putchar + cpp/io/c/putchar + + (T... args) + + + T + make_tuple + cpp/utility/tuple/make_tuple + + (T... args) + + + T + expm1 + cpp/numeric/math/expm1 + + (T... args) + + std::wstringbuf + + T + fma + cpp/numeric/math/fma + + (T... args) + + std::kilo + std::bernoulli_distribution + + T + remove_copy_if + cpp/algorithm/remove_copy + + (T... args) + + + T + showpoint + cpp/io/manip/showpoint + + (T... args) + + std::int16_t + + T + fscanf + cpp/io/c/fscanf + + (T... args) + + + T + stable_partition + cpp/algorithm/stable_partition + + (T... args) + + std::basic_ios + std::int32_t + + T + fill_n + cpp/algorithm/fill_n + + (T... args) + + std::is_rvalue_reference + + T + remove_copy + cpp/algorithm/remove_copy + + (T... args) + + + T + atomic_compare_exchange_strong_explicit + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::integral_constant + std::wsmatch + + T + wctomb + cpp/string/multibyte/wctomb + + (T... args) + + + T + fgets + cpp/io/c/fgets + + (T... args) + + + T + remainder + cpp/numeric/math/remainder + + (T... args) + + std::cerr + std::codecvt_utf8 + + T + allocate_shared + cpp/memory/shared_ptr/allocate_shared + + (T... args) + + std::ratio_add + + T + unique + cpp/algorithm/unique + + (T... args) + + std::is_trivially_move_constructible + + T + includes + cpp/algorithm/includes + + (T... args) + + + T + iswalnum + cpp/string/wide/iswalnum + + (T... args) + + std::wcsub_match + + T + exit + cpp/utility/program/exit + + (T... args) + + + T + put_time + cpp/io/manip/put_time + + (T... args) + + + T + to_string + cpp/string/basic_string/to_string + + (T... args) + + + T + is_heap_until + cpp/algorithm/is_heap_until + + (T... args) + + std::is_member_pointer + + T + wcstold + cpp/string/wide/wcstof + + (T... args) + + std::wstreampos + std::uint_least16_t + + T + stold + cpp/string/basic_string/stof + + (T... args) + + + T + ftell + cpp/io/c/ftell + + (T... args) + + std::tuple + + T + copy_backward + cpp/algorithm/copy_backward + + (T... args) + + + T + wcstoll + cpp/string/wide/wcstol + + (T... args) + + + T + perror + cpp/io/c/perror + + (T... args) + + + T + vwscanf + cpp/io/c/vfwscanf + + (T... args) + + + T + stable_sort + cpp/algorithm/stable_sort + + (T... args) + + std::make_signed + + T + generic_category + cpp/error/generic_category + + (T... args) + + + T + abs(int) + cpp/numeric/math/abs + + (T... args) + + + T + fgetws + cpp/io/c/fgetws + + (T... args) + + std::logic_error + std::sregex_iterator + + T + showpos + cpp/io/manip/showpos + + (T... args) + + std::int_least64_t + + T + exp + cpp/numeric/math/exp + + (T... args) + + std::binary_negate + + T + fill + cpp/algorithm/fill + + (T... args) + + + T + isalpha + cpp/string/byte/isalpha + + (T... args) + + std::discard_block_engine + std::is_trivially_assignable + std::add_cv + + T + lgamma + cpp/numeric/math/lgamma + + (T... args) + + std::pico + std::iterator_traits + std::is_trivially_default_constructible + + T + feclearexcept + cpp/numeric/fenv/feclearexcept + + (T... args) + + + T + wcsncpy + cpp/string/wide/wcsncpy + + (T... args) + + + T + undeclare_reachable + cpp/memory/gc/undeclare_reachable + + (T... args) + + std::shared_ptr + + T + oct + cpp/io/manip/hex + + (T... args) + + std::bad_alloc + std::ostringstream + std::basic_fstream + std::stringbuf + std::exponential_distribution + std::uint32_t + + T + strspn + cpp/string/byte/strspn + + (T... args) + + std::wcregex_iterator + std::bad_function_call + + T + realloc + cpp/memory/c/realloc + + (T... args) + + + T + copy + cpp/algorithm/copy + + (T... args) + + + T + binary_search + cpp/algorithm/binary_search + + (T... args) + + + T + system_category + cpp/error/system_category + + (T... args) + + + T + mbrtowc + cpp/string/multibyte/mbrtowc + + (T... args) + + std::false_type + + T + strtof + cpp/string/byte/strtof + + (T... args) + + + T + mem_fn + cpp/utility/functional/mem_fn + + (T... args) + + std::wregex + + T + distance + cpp/iterator/distance + + (T... args) + + + T + lock + cpp/thread/lock + + (T... args) + + + T + strcmp + cpp/string/byte/strcmp + + (T... args) + + + T + tmpfile + cpp/io/c/tmpfile + + (T... args) + + + T + hypot + cpp/numeric/math/hypot + + (T... args) + + + T + getenv + cpp/utility/program/getenv + + (T... args) + + + T + strrchr + cpp/string/byte/strrchr + + (T... args) + + + T + count + cpp/algorithm/count + + (T... args) + + std::uint_least8_t + + T + tan + cpp/numeric/math/tan + + (T... args) + + + T + strftime + cpp/chrono/c/strftime + + (T... args) + + std::uniform_real_distribution + + T + stod + cpp/string/basic_string/stof + + (T... args) + + + T + towupper + cpp/string/wide/towupper + + (T... args) + + std::smatch + std::cregex_token_iterator + std::range_error + std::is_assignable + + T + atoll + cpp/string/byte/atoi + + (T... args) + + std::is_copy_assignable + std::invalid_argument + + T + atomic_store + cpp/atomic/atomic_store + + (T... args) + + std::is_unsigned + std::jmp_buf + std::is_class + std::geometric_distribution + + T + stoi + cpp/string/basic_string/stol + + (T... args) + + + T + rethrow_exception + cpp/error/rethrow_exception + + (T... args) + + std::uint_fast8_t + + T + sin + cpp/numeric/math/sin + + (T... args) + + + T + atomic_fetch_sub_explicit + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + unexpected + cpp/error/unexpected + + (T... args) + + + T + mbtowc + cpp/string/multibyte/mbtowc + + (T... args) + + std::mersenne_twister_engine + + T + get_time + cpp/io/manip/get_time + + (T... args) + + + T + partition + cpp/algorithm/partition + + (T... args) + + + T + next + cpp/iterator/next + + (T... args) + + std::is_arithmetic + std::negate + std::try_to_lock_t + std::wfilebuf + std::is_compound + std::iostream + std::is_object + + T + isfinite + cpp/numeric/math/isfinite + + (T... args) + + + T + boolalpha + cpp/io/manip/boolalpha + + (T... args) + + + T + fetestexcept + cpp/numeric/fenv/fetestexcept + + (T... args) + + + T + mbrlen + cpp/string/multibyte/mbrlen + + (T... args) + + std::recursive_mutex + std::is_copy_constructible + + T + iswgraph + cpp/string/wide/iswgraph + + (T... args) + + std::codecvt_utf8_utf16 + std::not_equal_to + std::is_destructible + std::int_fast32_t + + T + time + cpp/chrono/c/time + + (T... args) + + + T + atomic_compare_exchange_strong + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::rank + + T + wcschr + cpp/string/wide/wcschr + + (T... args) + + + T + uppercase + cpp/io/manip/uppercase + + (T... args) + + std::milli + std::deci + + T + lower_bound + cpp/algorithm/lower_bound + + (T... args) + + std::add_lvalue_reference + std::is_bind_expression + std::ios_base + + T + copy_if + cpp/algorithm/copy + + (T... args) + + std::ratio_less + std::int64_t + std::nullptr_t + + T + isnan + cpp/numeric/math/isnan + + (T... args) + + + T + has_facet + cpp/locale/has_facet + + (T... args) + + + T + kill_dependency + cpp/atomic/kill_dependency + + (T... args) + + + T + uninitialized_copy_n + cpp/memory/uninitialized_copy_n + + (T... args) + + std::stack + + T + feholdexcept + cpp/numeric/fenv/feholdexcept + + (T... args) + + + T + div + cpp/numeric/math/div + + (T... args) + + + T + at_quick_exit + cpp/utility/program/at_quick_exit + + (T... args) + + std::uint_fast64_t + std::is_reference + std::ratio + std::shared_future + std::u16streampos + + T + wcspbrk + cpp/string/wide/wcspbrk + + (T... args) + + + T + search + cpp/algorithm/search + + (T... args) + + std::wistream + std::aligned_storage + + T + find_first_of + cpp/algorithm/find_first_of + + (T... args) + + + T + iota + cpp/algorithm/iota + + (T... args) + + std::wstreambuf + + T + declare_reachable + cpp/memory/gc/declare_reachable + + (T... args) + + + T + atomic_compare_exchange_weak + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::binary_function + + T + strtod + cpp/string/byte/strtof + + (T... args) + + + T + accumulate + cpp/algorithm/accumulate + + (T... args) + + + T + wcsrchr + cpp/string/wide/wcsrchr + + (T... args) + + std::out_of_range + + T + min_element + cpp/algorithm/min_element + + (T... args) + + std::independent_bits_engine + + T + clearerr + cpp/io/c/clearerr + + (T... args) + + + T + random_shuffle + cpp/algorithm/random_shuffle + + (T... args) + + std::stringstream + std::tera + + T + iswalpha + cpp/string/wide/iswalpha + + (T... args) + + std::recursive_timed_mutex + std::nano + + T + atomic_fetch_and + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + wmemchr + cpp/string/wide/wmemchr + + (T... args) + + std::unordered_multimap + std::normal_distribution + + T + bsearch + cpp/algorithm/bsearch + + (T... args) + + + T + ilogb + cpp/numeric/math/ilogb + + (T... args) + + std::minstd_rand + std::is_signed + + T + unique_copy + cpp/algorithm/unique_copy + + (T... args) + + + T + _Exit + cpp/utility/program/_Exit + + (T... args) + + + T + move + cpp/utility/move + + (T... args) + + + T + find_end + cpp/algorithm/find_end + + (T... args) + + std::is_move_constructible + std::unique_ptr + + T + fesetexceptflag + cpp/numeric/fenv/feexceptflag + + (T... args) + + std::is_nothrow_copy_constructible + std::forward_list + std::errc + std::lconv + + T + nth_element + cpp/algorithm/nth_element + + (T... args) + + + T + gets + cpp/io/c/gets + + (T... args) + + + T + lexicographical_compare + cpp/algorithm/lexicographical_compare + + (T... args) + + + T + nearbyint + cpp/numeric/math/nearbyint + + (T... args) + + std::strstreambuf + std::locale + std::equal_to + + T + memcpy + cpp/string/byte/memcpy + + (T... args) + + + T + fwrite + cpp/io/c/fwrite + + (T... args) + + std::divides + std::collate_byname + + T + unitbuf + cpp/io/manip/unitbuf + + (T... args) + + + T + iswlower + cpp/string/wide/iswlower + + (T... args) + + + T + mblen + cpp/string/multibyte/mblen + + (T... args) + + + T + swscanf + cpp/io/c/fwscanf + + (T... args) + + + T + wcstoimax + cpp/string/wide/wcstoimax + + (T... args) + + std::domain_error + + T + fprintf + cpp/io/c/fprintf + + (T... args) + + + T + find_if + cpp/algorithm/find + + (T... args) + + std::is_empty + + T + strtoimax + cpp/string/byte/strtoimax + + (T... args) + + + T + isalnum + cpp/string/byte/isalnum + + (T... args) + + + T + atomic_fetch_add_explicit + cpp/atomic/atomic_fetch_add + + (T... args) + + std::is_nothrow_default_constructible + std::ratio_equal + + T + push_heap + cpp/algorithm/push_heap + + (T... args) + + + T + min + cpp/algorithm/min + + (T... args) + + + T + fwprintf + cpp/io/c/fwprintf + + (T... args) + + std::ostream + std::streamsize + + T + uncaught_exception + cpp/error/uncaught_exception + + (T... args) + + std::shared_lock + + T + strtoll + cpp/string/byte/strtol + + (T... args) + + std::uint8_t + + T + throw_with_nested + cpp/error/throw_with_nested + + (T... args) + + + T + shuffle + cpp/algorithm/random_shuffle + + (T... args) + + + T + isprint + cpp/string/byte/isprint + + (T... args) + + + T + get_new_handler + cpp/memory/new/get_new_handler + + (T... args) + + + T + call_once + cpp/thread/call_once + + (T... args) + + + T + trunc + cpp/numeric/math/trunc + + (T... args) + + + T + wcscspn + cpp/string/wide/wcscspn + + (T... args) + + std::enable_shared_from_this + std::ptrdiff_t + + T + mbrtoc16 + cpp/string/multibyte/mbrtoc16 + + (T... args) + + std::int_fast8_t + std::aligned_union + + T + lround + cpp/numeric/math/round + + (T... args) + + std::future + std::wcmatch + std::overflow_error + std::centi + + T + pow + cpp/numeric/math/pow + + (T... args) + + std::wssub_match + std::is_nothrow_move_assignable + std::pair + + T + tgamma + cpp/numeric/math/tgamma + + (T... args) + + + T + erfc + cpp/numeric/math/erfc + + (T... args) + + + T + llround + cpp/numeric/math/round + + (T... args) + + + T + abs(float) + cpp/numeric/math/fabs + + (T... args) + + + T + asinh + cpp/numeric/math/asinh + + (T... args) + + + T + feof + cpp/io/c/feof + + (T... args) + + std::wsregex_token_iterator + std::weibull_distribution + + T + noskipws + cpp/io/manip/skipws + + (T... args) + + std::less + std::multiplies + + T + find + cpp/algorithm/find + + (T... args) + + + T + atoi + cpp/string/byte/atoi + + (T... args) + + std::is_enum + + T + not1 + cpp/utility/functional/not1 + + (T... args) + + + T + vfscanf + cpp/io/c/vfscanf + + (T... args) + + std::unary_function + + T + stof + cpp/string/basic_string/stof + + (T... args) + + + T + regex_search + cpp/regex/regex_search + + (T... args) + + std::error_code + std::yocto + std::streampos + std::istream_iterator + + T + rotate_copy + cpp/algorithm/rotate_copy + + (T... args) + + + T + set_new_handler + cpp/memory/new/set_new_handler + + (T... args) + + + T + undeclare_no_pointers + cpp/memory/gc/undeclare_no_pointers + + (T... args) + + std::wifstream + + T + async + cpp/thread/async + + (T... args) + + + T + partition_point + cpp/algorithm/partition_point + + (T... args) + + std::moneypunct_byname + + T + vsscanf + cpp/io/c/vfscanf + + (T... args) + + std::terminate_handler + std::ctype_base + std::reference_wrapper + + T + fesetround + cpp/numeric/fenv/feround + + (T... args) + + + T + atomic_is_lock_free + cpp/atomic/atomic_is_lock_free + + (T... args) + + std::ranlux48_base + + T + tanh + cpp/numeric/math/tanh + + (T... args) + + std::bit_not + std::int_fast16_t + + T + ldiv + cpp/numeric/math/div + + (T... args) + + + T + setbase + cpp/io/manip/setbase + + (T... args) + + + T + remove + cpp/algorithm/remove + + (T... args) + + + T + strtol + cpp/string/byte/strtol + + (T... args) + + + T + strpbrk + cpp/string/byte/strpbrk + + (T... args) + + std::error_category + std::regex_traits + + T + signbit + cpp/numeric/math/signbit + + (T... args) + + + T + wcsncat + cpp/string/wide/wcsncat + + (T... args) + + + T + get_money + cpp/io/manip/get_money + + (T... args) + + std::regex_constants + + T + set_difference + cpp/algorithm/set_difference + + (T... args) + + std::negative_binomial_distribution + + T + cref + cpp/utility/functional/ref + + (T... args) + + std::is_union + + T + getline + cpp/string/basic_string/getline + + (T... args) + + std::mt19937 + std::enable_if + + T + to_wstring + cpp/string/basic_string/to_wstring + + (T... args) + + std::chi_squared_distribution + std::add_rvalue_reference + + T + system + cpp/utility/program/system + + (T... args) + + + T + static_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + std::basic_istream + std::ostream_iterator + + T + wcstoumax + cpp/string/wide/wcstoimax + + (T... args) + + + T + memmove + cpp/string/byte/memmove + + (T... args) + + + T + getwchar + cpp/io/c/getwchar + + (T... args) + + + T + scientific + cpp/io/manip/fixed + + (T... args) + + + T + wcsftime + cpp/chrono/c/wcsftime + + (T... args) + + + T + begin + cpp/iterator/begin + + (T... args) + + + T + ceil + cpp/numeric/math/ceil + + (T... args) + + + T + sinh + cpp/numeric/math/sinh + + (T... args) + + + T + is_permutation + cpp/algorithm/is_permutation + + (T... args) + + std::is_trivially_copy_assignable + + T + generate_n + cpp/algorithm/generate_n + + (T... args) + + + T + acosh + cpp/numeric/math/acosh + + (T... args) + + std::clog + std::is_scalar + + T + advance + cpp/iterator/advance + + (T... args) + + std::uses_allocator + std::piecewise_linear_distribution + std::hash + + T + flush + cpp/io/manip/flush + + (T... args) + + std::shuffle_order_engine + std::chrono + std::greater + std::csub_match + std::uintmax_t + + T + atomic_fetch_xor + cpp/atomic/atomic_fetch_xor + + (T... args) + + std::remove_pointer + std::numeric_limits + + T + ws + cpp/io/manip/ws + + (T... args) + + std::add_volatile + std::once_flag + std::is_literal_type + std::money_base + + T + signal + cpp/utility/program/signal + + (T... args) + + + T + noshowbase + cpp/io/manip/showbase + + (T... args) + + std::peta + std::is_placeholder + + T + generate + cpp/algorithm/generate + + (T... args) + + + T + ldexp + cpp/numeric/math/ldexp + + (T... args) + + std::add_const + std::basic_stringbuf + std::tm + std::is_abstract + std::deque + + T + vsnprintf + cpp/io/c/vfprintf + + (T... args) + + std::allocator + + T + remove_if + cpp/algorithm/remove + + (T... args) + + std::scoped_allocator_adaptor + std::ssub_match + + T + stoull + cpp/string/basic_string/stoul + + (T... args) + + std::messages_byname + + T + fegetexceptflag + cpp/numeric/fenv/feexceptflag + + (T... args) + + + T + find_if_not + cpp/algorithm/find + + (T... args) + + std::promise + + T + merge + cpp/algorithm/merge + + (T... args) + + + T + free + cpp/memory/c/free + + (T... args) + + + T + count_if + cpp/algorithm/count + + (T... args) + + + T + clock + cpp/chrono/c/clock + + (T... args) + + + T + mktime + cpp/chrono/c/mktime + + (T... args) + + std::add_pointer + std::uintptr_t + + T + inserter + cpp/iterator/inserter + + (T... args) + + + T + puts + cpp/io/c/puts + + (T... args) + + std::bit_and + + T + asin + cpp/numeric/math/asin + + (T... args) + + std::uniform_int_distribution + std::type_info + + T + iscntrl + cpp/string/byte/iscntrl + + (T... args) + + + T + difftime + cpp/chrono/c/difftime + + (T... args) + + + T + terminate + cpp/error/terminate + + (T... args) + + + T + memcmp + cpp/string/byte/memcmp + + (T... args) + + std::fisher_f_distribution + + T + uninitialized_fill + cpp/memory/uninitialized_fill + + (T... args) + + std::strstream + + T + hex + cpp/io/manip/hex + + (T... args) + + + T + tie + cpp/utility/tuple/tie + + (T... args) + + + T + back_inserter + cpp/iterator/back_inserter + + (T... args) + + + T + upper_bound + cpp/algorithm/upper_bound + + (T... args) + + std::time_get_byname + std::basic_streambuf + + T + adjacent_find + cpp/algorithm/adjacent_find + + (T... args) + + std::is_nothrow_constructible + + T + use_facet + cpp/locale/use_facet + + (T... args) + + std::queue + std::is_base_of + std::intmax_t + std::ranlux24 + + T + vfwprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + atomic_fetch_add + cpp/atomic/atomic_fetch_add + + (T... args) + + std::remove_cv + + T + fsetpos + cpp/io/c/fsetpos + + (T... args) + + + T + malloc + cpp/memory/c/malloc + + (T... args) + + + T + localtime + cpp/chrono/c/localtime + + (T... args) + + std::is_trivially_destructible + std::wcin + + T + wcscmp + cpp/string/wide/wcscmp + + (T... args) + + + T + c32rtomb + cpp/string/multibyte/c32rtomb + + (T... args) + + + T + isupper + cpp/string/byte/isupper + + (T... args) + + std::atomic + std::basic_stringstream + + T + wcstod + cpp/string/wide/wcstof + + (T... args) + + + T + tolower + cpp/string/byte/tolower + + (T... args) + + std::is_void + + T + sort_heap + cpp/algorithm/sort_heap + + (T... args) + + std::plus + + T + isdigit + cpp/string/byte/isdigit + + (T... args) + + std::bitset + + T + wcslen + cpp/string/wide/wcslen + + (T... args) + + + T + wmemcmp + cpp/string/wide/wmemcmp + + (T... args) + + std::FILE + + T + move_if_noexcept + cpp/utility/move_if_noexcept + + (T... args) + + + T + declval + cpp/utility/declval + + (T... args) + + + T + fpclassify + cpp/numeric/math/fpclassify + + (T... args) + + + T + iswupper + cpp/string/wide/iswupper + + (T... args) + + std::thread + std::future_error + std::time_base + std::alignment_of + std::time_put + std::bit_or + + T + rand + cpp/numeric/random/rand + + (T... args) + + + T + atomic_compare_exchange_weak_explicit + cpp/atomic/atomic_compare_exchange + + (T... args) + + std::pointer_traits + + T + partial_sort + cpp/algorithm/partial_sort + + (T... args) + + std::basic_string + + T + llrint + cpp/numeric/math/rint + + (T... args) + + std::priority_queue + + T + fclose + cpp/io/c/fclose + + (T... args) + + + T + reverse + cpp/algorithm/reverse + + (T... args) + + std::exa + + T + partial_sum + cpp/algorithm/partial_sum + + (T... args) + + std::wostringstream + + T + showbase + cpp/io/manip/showbase + + (T... args) + + std::is_default_constructible + std::cregex_iterator + + T + vswscanf + cpp/io/c/vfwscanf + + (T... args) + + std::wstring + + T + atan + cpp/numeric/math/atan + + (T... args) + + + T + atanh + cpp/numeric/math/atanh + + (T... args) + + std::remove_all_extents + + T + iter_swap + cpp/algorithm/iter_swap + + (T... args) + + + T + scalbln + cpp/numeric/math/scalbn + + (T... args) + + std::istrstream + + T + reverse_copy + cpp/algorithm/reverse_copy + + (T... args) + + std::unary_negate + std::unordered_multiset + std::basic_ostream + std::wsregex_iterator + std::uint_fast16_t + std::is_nothrow_assignable + + T + forward + cpp/utility/forward + + (T... args) + + std::moneypunct + + T + getc + cpp/io/c/fgetc + + (T... args) + + std::type_index + + T + equal_range + cpp/algorithm/equal_range + + (T... args) + + + T + atomic_fetch_sub + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + is_partitioned + cpp/algorithm/is_partitioned + + (T... args) + + + T + next_permutation + cpp/algorithm/next_permutation + + (T... args) + + + T + isblank + cpp/string/byte/isblank + + (T... args) + + + T + noshowpoint + cpp/io/manip/showpoint + + (T... args) + + + T + atan2 + cpp/numeric/math/atan2 + + (T... args) + + + T + nanf + cpp/numeric/math/nan + + (T... args) + + + T + towctrans + cpp/string/wide/towctrans + + (T... args) + + std::is_standard_layout + std::timed_mutex + + T + right + cpp/io/manip/left + + (T... args) + + + T + fputwc + cpp/io/c/fputwc + + (T... args) + + + T + strtoul + cpp/string/byte/strtoul + + (T... args) + + + T + is_heap + cpp/algorithm/is_heap + + (T... args) + + std::bad_exception + + T + fflush + cpp/io/c/fflush + + (T... args) + + + T + strtoumax + cpp/string/byte/strtoimax + + (T... args) + + + T + nexttoward + cpp/numeric/math/nextafter + + (T... args) + + std::int_fast64_t + std::function + + T + nounitbuf + cpp/io/manip/unitbuf + + (T... args) + + std::bad_cast + std::error_condition + std::filebuf + std::int_least16_t + + T + ispunct + cpp/string/byte/ispunct + + (T... args) + + std::istreambuf_iterator + std::u16string + + T + noboolalpha + cpp/io/manip/boolalpha + + (T... args) + + + T + make_pair + cpp/utility/pair/make_pair + + (T... args) + + std::is_error_condition_enum + std::is_nothrow_destructible + std::wiostream + + T + iswctype + cpp/string/wide/iswctype + + (T... args) + + std::allocator_arg_t + + T + srand + cpp/numeric/random/srand + + (T... args) + + std::rel_ops + std::uint_least32_t + std::collate + + T + replace_copy + cpp/algorithm/replace_copy + + (T... args) + + + T + future_category + cpp/thread/future/future_category + + (T... args) + + std::remove_const + + T + resetiosflags + cpp/io/manip/resetiosflags + + (T... args) + + + T + vprintf + cpp/io/c/vfprintf + + (T... args) + + std::u32string + std::uint_fast32_t + + T + gmtime + cpp/chrono/c/gmtime + + (T... args) + + std::is_lvalue_reference + + T + align + cpp/memory/align + + (T... args) + + + T + tuple_cat + cpp/utility/tuple/tuple_cat + + (T... args) + + + T + ends + cpp/io/manip/ends + + (T... args) + + + T + set_terminate + cpp/error/set_terminate + + (T... args) + + + T + lrint + cpp/numeric/math/rint + + (T... args) + + std::complex + std::ofstream + std::insert_iterator + std::bad_array_length + + T + none_of + cpp/algorithm/all_any_none_of + + (T... args) + + std::this_thread + + T + wscanf + cpp/io/c/fwscanf + + (T... args) + + + T + fputc + cpp/io/c/fputc + + (T... args) + + + T + dec + cpp/io/manip/hex + + (T... args) + + + T + strcat + cpp/string/byte/strcat + + (T... args) + + std::is_trivially_copyable + std::basic_istringstream + std::basic_ifstream + std::list + + T + raise + cpp/utility/program/raise + + (T... args) + + std::minus + + T + wcsspn + cpp/string/wide/wcsspn + + (T... args) + + + T + fabs + cpp/numeric/math/fabs + + (T... args) + + + T + wmemcpy + cpp/string/wide/wmemcpy + + (T... args) + + + T + copy_n + cpp/algorithm/copy_n + + (T... args) + + std::map + std::linear_congruential_engine + + T + rethrow_if_nested + cpp/error/rethrow_if_nested + + (T... args) + + + T + setlocale + cpp/locale/setlocale + + (T... args) + + std::codecvt_utf16 + + T + addressof + cpp/memory/addressof + + (T... args) + + + T + calloc + cpp/memory/c/calloc + + (T... args) + + std::cmatch + + T + strerror + cpp/string/byte/strerror + + (T... args) + + std::defer_lock_t + + T + strcpy + cpp/string/byte/strcpy + + (T... args) + + std::exception + + T + wcstoull + cpp/string/wide/wcstoul + + (T... args) + + + T + c16rtomb + cpp/string/multibyte/c16rtomb + + (T... args) + + std::front_insert_iterator + + T + generate_canonical + cpp/numeric/random/generate_canonical + + (T... args) + + + T + vfprintf + cpp/io/c/vfprintf + + (T... args) + + + T + notify_all_at_thread_exit + cpp/thread/notify_all_at_thread_exit + + (T... args) + + + T + rotate + cpp/algorithm/rotate + + (T... args) + + + T + current_exception + cpp/error/current_exception + + (T... args) + + + T + strtok + cpp/string/byte/strtok + + (T... args) + + + T + wcscat + cpp/string/wide/wcscat + + (T... args) + + + T + strncpy + cpp/string/byte/strncpy + + (T... args) + + + T + towlower + cpp/string/wide/towlower + + (T... args) + + + T + floor + cpp/numeric/math/floor + + (T... args) + + std::zetta + + T + left + cpp/io/manip/left + + (T... args) + + + T + ferror + cpp/io/c/ferror + + (T... args) + + std::streambuf + + T + atomic_load_explicit + cpp/atomic/atomic_load + + (T... args) + + std::experimental + std::num_put + + T + swap + cpp/algorithm/swap + + (T... args) + + + T + acos + cpp/numeric/math/acos + + (T... args) + + std::owner_less + + T + wcscoll + cpp/string/wide/wcscoll + + (T... args) + + + T + sqrt + cpp/numeric/math/sqrt + + (T... args) + + std::extent + + T + mbsinit + cpp/string/multibyte/mbsinit + + (T... args) + + std::bad_optional_access + + T + qsort + cpp/algorithm/qsort + + (T... args) + + + T + stoll + cpp/string/basic_string/stol + + (T... args) + + + T + put_money + cpp/io/manip/put_money + + (T... args) + + + T + wcstoul + cpp/string/wide/wcstoul + + (T... args) + + + T + wcstol + cpp/string/wide/wcstol + + (T... args) + + + T + atexit + cpp/utility/program/atexit + + (T... args) + + + T + atomic_fetch_or + cpp/atomic/atomic_fetch_or + + (T... args) + + + T + rewind + cpp/io/c/rewind + + (T... args) + + + T + wcsxfrm + cpp/string/wide/wcsxfrm + + (T... args) + + std::yotta + std::wcregex_token_iterator + + T + round + cpp/numeric/math/round + + (T... args) + + std::uint64_t + std::messages + + T + vwprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + all_of + cpp/algorithm/all_any_none_of + + (T... args) + + std::regex_token_iterator + + T + replace + cpp/algorithm/replace + + (T... args) + + std::move_iterator + + T + remquo + cpp/numeric/math/remquo + + (T... args) + + + T + setbuf + cpp/io/c/setbuf + + (T... args) + + std::messages_base + + T + strncmp + cpp/string/byte/strncmp + + (T... args) + + + T + localeconv + cpp/locale/localeconv + + (T... args) + + + T + wctrans + cpp/string/wide/wctrans + + (T... args) + + std::istringstream + std::giga + + T + any_of + cpp/algorithm/all_any_none_of + + (T... args) + + std::integer_sequence + + T + equal + cpp/algorithm/equal + + (T... args) + + + T + max + cpp/algorithm/max + + (T... args) + + + T + strxfrm + cpp/string/byte/strxfrm + + (T... args) + + std::has_virtual_destructor + std::max_align_t + std::remove_volatile + std::underlying_type + + T + iswxdigit + cpp/string/wide/iswxdigit + + (T... args) + + + T + labs + cpp/numeric/math/abs + + (T... args) + + std::hecto + + T + regex_match + cpp/regex/regex_match + + (T... args) + + std::is_member_object_pointer + std::exception_ptr + + T + fputws + cpp/io/c/fputws + + (T... args) + + + T + wcrtomb + cpp/string/multibyte/wcrtomb + + (T... args) + + + T + setprecision + cpp/io/manip/setprecision + + (T... args) + + + T + setvbuf + cpp/io/c/setvbuf + + (T... args) + + std::nested_exception + std::random_access_iterator_tag + + T + regex_replace + cpp/regex/regex_replace + + (T... args) + + std::ctype + + T + freopen + cpp/io/c/freopen + + (T... args) + + + T + logb + cpp/numeric/math/logb + + (T... args) + + std::time_t + + T + wctob + cpp/string/multibyte/wctob + + (T... args) + + std::knuth_b + + T + atomic_load + cpp/atomic/atomic_load + + (T... args) + + + T + search_n + cpp/algorithm/search_n + + (T... args) + + + T + toupper + cpp/string/byte/toupper + + (T... args) + + std::auto_ptr + + T + move_backward + cpp/algorithm/move_backward + + (T... args) + + + T + is_sorted + cpp/algorithm/is_sorted + + (T... args) + + std::minstd_rand0 + + T + strtoull + cpp/string/byte/strtoul + + (T... args) + + std::sregex_token_iterator + std::logical_not + std::fpos_t + + T + iswblank + cpp/string/wide/iswblank + + (T... args) + + std::istream + std::seed_seq + std::default_delete + std::femto + std::clock_t + std::true_type + + T + get_pointer_safety + cpp/memory/gc/get_pointer_safety + + (T... args) + + std::mbstate_t + + T + get_unexpected + cpp/error/get_unexpected + + (T... args) + + + T + sscanf + cpp/io/c/fscanf + + (T... args) + + std::ostrstream + std::gamma_distribution + std::bad_weak_ptr + std::output_iterator_tag + std::micro + std::is_trivial + + T + fesetenv + cpp/numeric/fenv/feenv + + (T... args) + + + T + atomic_store_explicit + cpp/atomic/atomic_store + + (T... args) + + + T + strtold + cpp/string/byte/strtof + + (T... args) + + + T + fread + cpp/io/c/fread + + (T... args) + + std::packaged_task + std::unordered_set + std::is_volatile + + T + memchr + cpp/string/byte/memchr + + (T... args) + + + T + btowc + cpp/string/multibyte/btowc + + (T... args) + + std::wfstream + + T + replace_if + cpp/algorithm/replace + + (T... args) + + std::multimap + + T + strcoll + cpp/string/byte/strcoll + + (T... args) + + + T + vsprintf + cpp/io/c/vfprintf + + (T... args) + + + T + mismatch + cpp/algorithm/mismatch + + (T... args) + + + T + getchar + cpp/io/c/getchar + + (T... args) + + std::atomic_flag + + T + islower + cpp/string/byte/islower + + (T... args) + + + T + tmpnam + cpp/io/c/tmpnam + + (T... args) + + std::numpunct_byname + + T + nanl + cpp/numeric/math/nan + + (T... args) + + std::binomial_distribution + + T + fopen + cpp/io/c/fopen + + (T... args) + + std::basic_iostream + std::wofstream + std::fpos + std::underflow_error + + T + for_each + cpp/algorithm/for_each + + (T... args) + + + T + fegetround + cpp/numeric/fenv/feround + + (T... args) + + + T + ungetc + cpp/io/c/ungetc + + (T... args) + + std::cauchy_distribution + std::is_trivially_copy_constructible + std::conditional + std::is_pod + + T + internal + cpp/io/manip/left + + (T... args) + + + T + vfwscanf + cpp/io/c/vfwscanf + + (T... args) + + std::int_least8_t + + T + fgetc + cpp/io/c/fgetc + + (T... args) + + std::streamoff + std::is_move_assignable + std::int_least32_t + + T + wcstof + cpp/string/wide/wcstof + + (T... args) + + std::wstringstream + std::subtract_with_carry_engine + std::regex_error + + T + bind + cpp/utility/functional/bind + + (T... args) + + + T + skipws + cpp/io/manip/skipws + + (T... args) + + std::is_constructible + std::piecewise_construct_t + + T + iswprint + cpp/string/wide/iswprint + + (T... args) + + + T + wcstombs + cpp/string/multibyte/wcstombs + + (T... args) + + + T + inplace_merge + cpp/algorithm/inplace_merge + + (T... args) + + + T + copysign + cpp/numeric/math/copysign + + (T... args) + + + T + putwchar + cpp/io/c/putwchar + + (T... args) + + std::mutex + + T + wcsstr + cpp/string/wide/wcsstr + + (T... args) + + + T + fegetenv + cpp/numeric/fenv/feenv + + (T... args) + + + T + longjmp + cpp/utility/program/longjmp + + (T... args) + + + T + iswcntrl + cpp/string/wide/iswcntrl + + (T... args) + + std::system_error + + T + declare_no_pointers + cpp/memory/gc/declare_no_pointers + + (T... args) + + + T + isnormal + cpp/numeric/math/isnormal + + (T... args) + + + T + swap_ranges + cpp/algorithm/swap_ranges + + (T... args) + + std::wistringstream + std::is_floating_point + + T + minmax + cpp/algorithm/minmax + + (T... args) + + + T + defaultfloat + cpp/io/manip/fixed + + (T... args) + + + T + rename + cpp/io/c/rename + + (T... args) + + + T + snprintf + cpp/io/c/fprintf + + (T... args) + + + T + try_lock + cpp/thread/try_lock + + (T... args) + + std::ratio_not_equal + std::ratio_multiply + std::result_of + std::is_fundamental + + T + stoul + cpp/string/basic_string/stoul + + (T... args) + + std::ifstream + std::u32streampos + + T + fgetpos + cpp/io/c/fgetpos + + (T... args) + + std::length_error + + T + partition_copy + cpp/algorithm/partition_copy + + (T... args) + + + T + vscanf + cpp/io/c/vfscanf + + (T... args) + + + T + front_inserter + cpp/iterator/front_inserter + + (T... args) + + std::sub_match + std::common_type + + T + get_terminate + cpp/error/get_terminate + + (T... args) + + + T + cosh + cpp/numeric/math/cosh + + (T... args) + + std::shared_timed_mutex + std::array + std::random_device + std::default_random_engine + std::raw_storage_iterator + std::is_convertible + + T + prev + cpp/iterator/prev + + (T... args) + + std::uint16_t + + T + strchr + cpp/string/byte/strchr + + (T... args) + + std::is_array + + T + strstr + cpp/string/byte/strstr + + (T... args) + + std::mega + + T + printf + cpp/io/c/fprintf + + (T... args) + + std::numpunct + std::money_put + std::new_handler + std::is_member_function_pointer + + T + setfill + cpp/io/manip/setfill + + (T... args) + + + T + inner_product + cpp/algorithm/inner_product + + (T... args) + + + + std::is_function + cpp/types/is_function + + + std::input_iterator_tag + cpp/iterator/iterator_tags + + + std::logical_and + cpp/utility/functional/logical_and + + T + operator() + cpp/utility/functional/logical_and + + (T... args) + + + + std::is_integral + cpp/types/is_integral + + + std::money_get + cpp/locale/money_get + + T + do_get + cpp/locale/money_get/get + + (T... args) + + std::money_get::char_type + std::money_get::pattern + + T + get + cpp/locale/money_get/get + + (T... args) + + + T + ~money_get + cpp/locale/money_get/~money_get + + (T... args) + + std::money_get::string_type + std::money_get::iter_type + + T + money_get + cpp/locale/money_get/money_get + + (T... args) + + + + std::money_get::char_type + cpp/locale/money_get + + + std::money_get::pattern + cpp/locale/money_base + + + std::money_get::string_type + cpp/locale/money_get + + + std::money_get::iter_type + cpp/locale/money_get + + + std::basic_ofstream + cpp/io/basic_ofstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + basic_ofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_ofstream::event_callback + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_ofstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::basic_ofstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ofstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ofstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ofstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::ratio_subtract + cpp/numeric/ratio/ratio_subtract + + + std::size_t + cpp/types/size_t + + + std::ctype_byname + cpp/locale/ctype_byname + + T + ~ctype_byname + cpp/locale/ctype_byname + + (T... args) + + + T + ctype_byname + cpp/locale/ctype_byname + + (T... args) + + + T + do_toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + do_scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + do_tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + widen + cpp/locale/ctype/widen + + (T... args) + + + T + is + cpp/locale/ctype/is + + (T... args) + + + T + scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_is + cpp/locale/ctype/is + + (T... args) + + + T + narrow + cpp/locale/ctype/narrow + + (T... args) + + std::ctype_byname::mask + + T + do_widen + cpp/locale/ctype/widen + + (T... args) + + + + std::ctype_byname::mask + cpp/locale/ctype_base + + + std::wcout + cpp/io/basic_ostream + + + std::fstream + cpp/io/basic_fstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + fstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::fstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::fstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::fstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::fstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::fstream::event_callback + cpp/io/ios_base/event_callback + + + std::fstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::valarray + cpp/numeric/valarray + + + std::ratio_greater_equal + cpp/numeric/ratio/ratio_greater_equal + + + std::remove_extent + cpp/types/remove_extent + + + std::ratio_greater + cpp/numeric/ratio/ratio_greater + + + std::intptr_t + cpp/types/integer + + + std::regex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + regex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::lock_guard + cpp/thread/lock_guard + + T + ~lock_guard + cpp/thread/lock_guard/~lock_guard + + (T... args) + + + T + lock_guard + cpp/thread/lock_guard/lock_guard + + (T... args) + + + + std::wbuffer_convert + cpp/locale/wbuffer_convert + + T + state + cpp/locale/wbuffer_convert/state + + (T... args) + + + T + wbuffer_convert + cpp/locale/wbuffer_convert/wbuffer_convert + + (T... args) + + + T + rdbuf + cpp/locale/wbuffer_convert/rdbuf + + (T... args) + + + T + ~wbuffer_convert + cpp/locale/wbuffer_convert/~wbuffer_convert + + (T... args) + + + + std::modulus + cpp/utility/functional/modulus + + T + operator() + cpp/utility/functional/modulus + + (T... args) + + + + std::ratio_divide + cpp/numeric/ratio/ratio_divide + + + std::ostreambuf_iterator + cpp/iterator/ostreambuf_iterator + + + std::dynarray + cpp/container/dynarray + + T + rbegin + cpp/container/dynarray/rbegin + + (T... args) + + + T + crend + cpp/container/dynarray/rend + + (T... args) + + + T + begin + cpp/container/dynarray/begin + + (T... args) + + + T + data + cpp/container/dynarray/data + + (T... args) + + + T + at + cpp/container/dynarray/at + + (T... args) + + + T + back + cpp/container/dynarray/back + + (T... args) + + + T + end + cpp/container/dynarray/end + + (T... args) + + + T + fill + cpp/container/dynarray/fill + + (T... args) + + + T + empty + cpp/container/dynarray/empty + + (T... args) + + + T + size + cpp/container/dynarray/size + + (T... args) + + + T + cend + cpp/container/dynarray/end + + (T... args) + + + T + ~dynarray + cpp/container/dynarray/~dynarray + + (T... args) + + + T + max_size + cpp/container/dynarray/max_size + + (T... args) + + + T + rend + cpp/container/dynarray/rend + + (T... args) + + + T + front + cpp/container/dynarray/front + + (T... args) + + + T + dynarray + cpp/container/dynarray/dynarray + + (T... args) + + + T + operator[] + cpp/container/dynarray/operator_at + + (T... args) + + + T + crbegin + cpp/container/dynarray/rbegin + + (T... args) + + + T + cbegin + cpp/container/dynarray/begin + + (T... args) + + + + std::is_nothrow_move_constructible + cpp/types/is_move_constructible + + + std::vector + cpp/container/vector + + T + push_back + cpp/container/vector/push_back + + (T... args) + + + T + crbegin + cpp/container/vector/rbegin + + (T... args) + + + T + erase + cpp/container/vector/erase + + (T... args) + + + T + data + cpp/container/vector/data + + (T... args) + + + T + insert + cpp/container/vector/insert + + (T... args) + + + T + pop_back + cpp/container/vector/pop_back + + (T... args) + + + T + shrink_to_fit + cpp/container/vector/shrink_to_fit + + (T... args) + + + T + back + cpp/container/vector/back + + (T... args) + + + T + end + cpp/container/vector/end + + (T... args) + + + T + resize + cpp/container/vector/resize + + (T... args) + + + T + emplace_back + cpp/container/vector/emplace_back + + (T... args) + + + T + size + cpp/container/vector/size + + (T... args) + + + T + cbegin + cpp/container/vector/begin + + (T... args) + + + T + front + cpp/container/vector/front + + (T... args) + + + T + ~vector + cpp/container/vector/~vector + + (T... args) + + + T + rbegin + cpp/container/vector/rbegin + + (T... args) + + + T + crend + cpp/container/vector/rend + + (T... args) + + + T + assign + cpp/container/vector/assign + + (T... args) + + + T + operator= + cpp/container/vector/operator= + + (T... args) + + + T + vector + cpp/container/vector/vector + + (T... args) + + + T + reserve + cpp/container/vector/reserve + + (T... args) + + + T + capacity + cpp/container/vector/capacity + + (T... args) + + + T + empty + cpp/container/vector/empty + + (T... args) + + + T + cend + cpp/container/vector/end + + (T... args) + + + T + swap + cpp/container/vector/swap + + (T... args) + + + T + max_size + cpp/container/vector/max_size + + (T... args) + + + T + rend + cpp/container/vector/rend + + (T... args) + + + T + get_allocator + cpp/container/vector/get_allocator + + (T... args) + + + T + clear + cpp/container/vector/clear + + (T... args) + + + T + at + cpp/container/vector/at + + (T... args) + + + T + emplace + cpp/container/vector/emplace + + (T... args) + + + T + operator[] + cpp/container/vector/operator_at + + (T... args) + + + T + begin + cpp/container/vector/begin + + (T... args) + + + + std::match_results + cpp/regex/match_results + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + ~match_results + cpp/regex/match_results/~match_results + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + match_results + cpp/regex/match_results/match_results + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + + std::back_insert_iterator + cpp/iterator/back_insert_iterator + + + std::iterator + cpp/iterator/iterator + + + std::int8_t + cpp/types/integer + + + std::student_t_distribution + cpp/numeric/random/student_t_distribution + + T + n + cpp/numeric/random/student_t_distribution/n + + (T... args) + + + T + reset + cpp/numeric/random/student_t_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/student_t_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/student_t_distribution/operator() + + (T... args) + + + T + student_t_distribution + cpp/numeric/random/student_t_distribution/student_t_distribution + + (T... args) + + + T + param + cpp/numeric/random/student_t_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/student_t_distribution/min + + (T... args) + + + + std::mt19937_64 + cpp/numeric/random/mersenne_twister_engine + + T + discard + cpp/numeric/random/mersenne_twister_engine/discard + + (T... args) + + + T + mt19937_64 + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + max + cpp/numeric/random/mersenne_twister_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + + std::runtime_error + cpp/error/runtime_error + + T + runtime_error + cpp/error/runtime_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ranlux24_base + cpp/numeric/random/subtract_with_carry_engine + + T + discard + cpp/numeric/random/subtract_with_carry_engine/discard + + (T... args) + + + T + ranlux24_base + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + + std::allocator_traits + cpp/memory/allocator_traits + + T + destroy + cpp/memory/allocator_traits/destroy + + (T... args) + + + T + select_on_container_copy_construction + cpp/memory/allocator_traits/select_on_container_copy_construction + + (T... args) + + + T + max_size + cpp/memory/allocator_traits/max_size + + (T... args) + + + T + allocate + cpp/memory/allocator_traits/allocate + + (T... args) + + + T + deallocate + cpp/memory/allocator_traits/deallocate + + (T... args) + + + T + construct + cpp/memory/allocator_traits/construct + + (T... args) + + + + std::codecvt + cpp/locale/codecvt + std::codecvt::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + std::codecvt::state_type + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + codecvt + cpp/locale/codecvt/codecvt + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + ~codecvt + cpp/locale/codecvt/~codecvt + + (T... args) + + + + std::codecvt::extern_type + cpp/locale/codecvt + + + std::codecvt::state_type + cpp/locale/codecvt + + + std::codecvt::intern_type + cpp/locale/codecvt + + + std::ratio_less_equal + cpp/numeric/ratio/ratio_less_equal + + + std::condition_variable_any + cpp/thread/condition_variable_any + + T + condition_variable_any + cpp/thread/condition_variable_any/condition_variable_any + + (T... args) + + + T + notify_one + cpp/thread/condition_variable_any/notify_one + + (T... args) + + + T + wait_for + cpp/thread/condition_variable_any/wait_for + + (T... args) + + + T + native_handle + cpp/thread/condition_variable_any/native_handle + + (T... args) + + + T + notify_all + cpp/thread/condition_variable_any/notify_all + + (T... args) + + + T + ~condition_variable_any + cpp/thread/condition_variable_any/~condition_variable_any + + (T... args) + + + T + wait_until + cpp/thread/condition_variable_any/wait_until + + (T... args) + + + T + wait + cpp/thread/condition_variable_any/wait + + (T... args) + + + + std::deca + cpp/numeric/ratio/ratio + + + std::extreme_value_distribution + cpp/numeric/random/extreme_value_distribution + + T + max + cpp/numeric/random/extreme_value_distribution/max + + (T... args) + + + T + b + cpp/numeric/random/extreme_value_distribution/params + + (T... args) + + + T + a + cpp/numeric/random/extreme_value_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/extreme_value_distribution/operator() + + (T... args) + + + T + extreme_value_distribution + cpp/numeric/random/extreme_value_distribution/extreme_value_distribution + + (T... args) + + + T + param + cpp/numeric/random/extreme_value_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/extreme_value_distribution/min + + (T... args) + + + T + reset + cpp/numeric/random/extreme_value_distribution/reset + + (T... args) + + + + std::cout + cpp/io/basic_ostream + + + std::decay + cpp/types/decay + + + std::is_trivially_move_assignable + cpp/types/is_move_assignable + + + std::adopt_lock_t + cpp/thread/lock_tag_t + + + std::wcerr + cpp/io/basic_ostream + + + std::lognormal_distribution + cpp/numeric/random/lognormal_distribution + + T + max + cpp/numeric/random/lognormal_distribution/max + + (T... args) + + + T + reset + cpp/numeric/random/lognormal_distribution/reset + + (T... args) + + + T + lognormal_distribution + cpp/numeric/random/lognormal_distribution/lognormal_distribution + + (T... args) + + + T + m + cpp/numeric/random/lognormal_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/lognormal_distribution/operator() + + (T... args) + + + T + s + cpp/numeric/random/lognormal_distribution/params + + (T... args) + + + T + param + cpp/numeric/random/lognormal_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/lognormal_distribution/min + + (T... args) + + + + std::wclog + cpp/io/basic_ostream + + + std::char_traits + cpp/string/char_traits + + T + assign + cpp/string/char_traits/assign + + (T... args) + + + T + not_eof + cpp/string/char_traits/not_eof + + (T... args) + + + T + to_int_type + cpp/string/char_traits/to_int_type + + (T... args) + + + T + to_char_type + cpp/string/char_traits/to_char_type + + (T... args) + + + T + eq + cpp/string/char_traits/cmp + + (T... args) + + + T + copy + cpp/string/char_traits/copy + + (T... args) + + + T + length + cpp/string/char_traits/length + + (T... args) + + + T + lt + cpp/string/char_traits/cmp + + (T... args) + + + T + eof + cpp/string/char_traits/eof + + (T... args) + + + T + find + cpp/string/char_traits/find + + (T... args) + + + T + move + cpp/string/char_traits/move + + (T... args) + + + T + compare + cpp/string/char_traits/compare + + (T... args) + + + T + eq_int_type + cpp/string/char_traits/eq_int_type + + (T... args) + + + + std::remove_reference + cpp/types/remove_reference + + + std::num_get + cpp/locale/num_get + + T + do_get + cpp/locale/num_get/get + + (T... args) + + std::num_get::char_type + std::num_get::iter_type + + T + num_get + cpp/locale/num_get/num_get + + (T... args) + + + T + ~num_get + cpp/locale/num_get/~num_get + + (T... args) + + + T + get + cpp/locale/num_get/get + + (T... args) + + + + std::num_get::char_type + cpp/locale/num_get + + + std::num_get::iter_type + cpp/locale/num_get + + + std::is_pointer + cpp/types/is_pointer + + + std::multiset + cpp/container/multiset + + T + begin + cpp/container/multiset/begin + + (T... args) + + + T + erase + cpp/container/multiset/erase + + (T... args) + + + T + insert + cpp/container/multiset/insert + + (T... args) + + + T + swap + cpp/container/multiset/swap + + (T... args) + + + T + end + cpp/container/multiset/end + + (T... args) + + + T + emplace_hint + cpp/container/multiset/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/multiset/key_comp + + (T... args) + + + T + cbegin + cpp/container/multiset/begin + + (T... args) + + + T + count + cpp/container/multiset/count + + (T... args) + + + T + find + cpp/container/multiset/find + + (T... args) + + + T + crbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + multiset + cpp/container/multiset/multiset + + (T... args) + + + T + upper_bound + cpp/container/multiset/upper_bound + + (T... args) + + + T + rbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + crend + cpp/container/multiset/rend + + (T... args) + + + T + size + cpp/container/multiset/size + + (T... args) + + + T + operator= + cpp/container/multiset/operator= + + (T... args) + + + T + ~multiset + cpp/container/multiset/~multiset + + (T... args) + + + T + value_comp + cpp/container/multiset/value_comp + + (T... args) + + + T + empty + cpp/container/multiset/empty + + (T... args) + + + T + lower_bound + cpp/container/multiset/lower_bound + + (T... args) + + + T + get_allocator + cpp/container/multiset/get_allocator + + (T... args) + + + T + max_size + cpp/container/multiset/max_size + + (T... args) + + + T + rend + cpp/container/multiset/rend + + (T... args) + + + T + cend + cpp/container/multiset/end + + (T... args) + + + T + clear + cpp/container/multiset/clear + + (T... args) + + + T + equal_range + cpp/container/multiset/equal_range + + (T... args) + + + T + emplace + cpp/container/multiset/emplace + + (T... args) + + + + std::weak_ptr + cpp/memory/weak_ptr + + T + operator= + cpp/memory/weak_ptr/operator= + + (T... args) + + + T + swap + cpp/memory/weak_ptr/swap + + (T... args) + + + T + weak_ptr + cpp/memory/weak_ptr/weak_ptr + + (T... args) + + + T + owner_before + cpp/memory/weak_ptr/owner_before + + (T... args) + + + T + ~weak_ptr + cpp/memory/weak_ptr/~weak_ptr + + (T... args) + + + T + use_count + cpp/memory/weak_ptr/use_count + + (T... args) + + + T + expired + cpp/memory/weak_ptr/expired + + (T... args) + + + T + lock + cpp/memory/weak_ptr/lock + + (T... args) + + + T + reset + cpp/memory/weak_ptr/reset + + (T... args) + + + + std::bidirectional_iterator_tag + cpp/iterator/iterator_tags + + + std::wstring_convert + cpp/locale/wstring_convert + + T + converted + cpp/locale/wstring_convert/converted + + (T... args) + + + T + to_bytes + cpp/locale/wstring_convert/to_bytes + + (T... args) + + + T + ~wstring_convert + cpp/locale/wstring_convert/~wstring_convert + + (T... args) + + + T + state + cpp/locale/wstring_convert/state + + (T... args) + + + T + wstring_convert + cpp/locale/wstring_convert/wstring_convert + + (T... args) + + + T + from_bytes + cpp/locale/wstring_convert/from_bytes + + (T... args) + + + + std::greater_equal + cpp/utility/functional/greater_equal + + T + operator() + cpp/utility/functional/greater_equal + + (T... args) + + + + std::is_trivially_constructible + cpp/types/is_constructible + + + std::string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + string + cpp/string/basic_string/basic_string + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::discrete_distribution + cpp/numeric/random/discrete_distribution + + T + probabilities + cpp/numeric/random/discrete_distribution/probabilities + + (T... args) + + + T + reset + cpp/numeric/random/discrete_distribution/reset + + (T... args) + + + T + operator() + cpp/numeric/random/discrete_distribution/operator() + + (T... args) + + + T + discrete_distribution + cpp/numeric/random/discrete_distribution/discrete_distribution + + (T... args) + + + T + max + cpp/numeric/random/discrete_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/discrete_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/discrete_distribution/min + + (T... args) + + + + std::wostream + cpp/io/basic_ostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + std::wostream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + ~wostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + wostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wostream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wostream::event_callback + cpp/io/ios_base/event_callback + + + std::wostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::is_polymorphic + cpp/types/is_polymorphic + + + std::reverse_iterator + cpp/iterator/reverse_iterator + + + std::bad_array_new_length + cpp/memory/new/bad_array_new_length + + T + bad_array_new_length + cpp/memory/new/bad_array_new_length/bad_array_new_length + + (T... args) + + + T + what + cpp/memory/new/bad_alloc + + (T... args) + + + + std::condition_variable + cpp/thread/condition_variable + + T + wait + cpp/thread/condition_variable/wait + + (T... args) + + + T + notify_one + cpp/thread/condition_variable/notify_one + + (T... args) + + + T + wait_for + cpp/thread/condition_variable/wait_for + + (T... args) + + + T + notify_all + cpp/thread/condition_variable/notify_all + + (T... args) + + + T + native_handle + cpp/thread/condition_variable/native_handle + + (T... args) + + + T + wait_until + cpp/thread/condition_variable/wait_until + + (T... args) + + + T + condition_variable + cpp/thread/condition_variable/condition_variable + + (T... args) + + + T + ~condition_variable + cpp/thread/condition_variable/~condition_variable + + (T... args) + + + + std::ranlux48 + cpp/numeric/random/discard_block_engine + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + ranlux48 + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + + std::unexpected_handler + cpp/error/unexpected_handler + + + std::piecewise_constant_distribution + cpp/numeric/random/piecewise_constant_distribution + + T + densities + cpp/numeric/random/piecewise_constant_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/piecewise_constant_distribution/max + + (T... args) + + + T + intervals + cpp/numeric/random/piecewise_constant_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/piecewise_constant_distribution/reset + + (T... args) + + + T + piecewise_constant_distribution + cpp/numeric/random/piecewise_constant_distribution/piecewise_constant_distribution + + (T... args) + + + T + operator() + cpp/numeric/random/piecewise_constant_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/piecewise_constant_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/piecewise_constant_distribution/min + + (T... args) + + + + std::codecvt_base + cpp/locale/codecvt_base + + + std::set + cpp/container/set + + T + begin + cpp/container/set/begin + + (T... args) + + + T + erase + cpp/container/set/erase + + (T... args) + + + T + insert + cpp/container/set/insert + + (T... args) + + + T + ~set + cpp/container/set/~set + + (T... args) + + + T + rbegin + cpp/container/set/rbegin + + (T... args) + + + T + end + cpp/container/set/end + + (T... args) + + + T + emplace_hint + cpp/container/set/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/set/key_comp + + (T... args) + + + T + count + cpp/container/set/count + + (T... args) + + + T + find + cpp/container/set/find + + (T... args) + + + T + crbegin + cpp/container/set/rbegin + + (T... args) + + + T + cbegin + cpp/container/set/begin + + (T... args) + + + T + upper_bound + cpp/container/set/upper_bound + + (T... args) + + + T + swap + cpp/container/set/swap + + (T... args) + + + T + crend + cpp/container/set/rend + + (T... args) + + + T + size + cpp/container/set/size + + (T... args) + + + T + set + cpp/container/set/set + + (T... args) + + + T + operator= + cpp/container/set/operator= + + (T... args) + + + T + value_comp + cpp/container/set/value_comp + + (T... args) + + + T + empty + cpp/container/set/empty + + (T... args) + + + T + lower_bound + cpp/container/set/lower_bound + + (T... args) + + + T + get_allocator + cpp/container/set/get_allocator + + (T... args) + + + T + max_size + cpp/container/set/max_size + + (T... args) + + + T + rend + cpp/container/set/rend + + (T... args) + + + T + cend + cpp/container/set/end + + (T... args) + + + T + clear + cpp/container/set/clear + + (T... args) + + + T + equal_range + cpp/container/set/equal_range + + (T... args) + + + T + emplace + cpp/container/set/emplace + + (T... args) + + + + std::forward_iterator_tag + cpp/iterator/iterator_tags + + + std::codecvt_byname + cpp/locale/codecvt_byname + std::codecvt_byname::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_byname::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + codecvt_byname + cpp/locale/codecvt_byname + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_byname::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + ~codecvt_byname + cpp/locale/codecvt_byname + + (T... args) + + + + std::codecvt_byname::extern_type + cpp/locale/codecvt + + + std::codecvt_byname::state_type + cpp/locale/codecvt + + + std::codecvt_byname::intern_type + cpp/locale/codecvt + + + std::pointer_safety + cpp/memory/gc/pointer_safety + + + std::uint_least64_t + cpp/types/integer + + + std::placeholders + cpp/utility/functional/placeholders + + + std::nothrow_t + cpp/memory/new/nothrow_t + + + std::is_nothrow_copy_assignable + cpp/types/is_copy_assignable + + + std::is_same + cpp/types/is_same + + + std::unique_lock + cpp/thread/unique_lock + + T + mutex + cpp/thread/unique_lock/mutex + + (T... args) + + + T + swap + cpp/thread/unique_lock/swap + + (T... args) + + + T + owns_lock + cpp/thread/unique_lock/owns_lock + + (T... args) + + + T + try_lock_for + cpp/thread/unique_lock/try_lock_for + + (T... args) + + + T + release + cpp/thread/unique_lock/release + + (T... args) + + + T + lock + cpp/thread/unique_lock/lock + + (T... args) + + + T + operator bool + cpp/thread/unique_lock/operator_bool + + (T... args) + + + T + ~unique_lock + cpp/thread/unique_lock/~unique_lock + + (T... args) + + + T + unlock + cpp/thread/unique_lock/unlock + + (T... args) + + + T + operator= + cpp/thread/unique_lock/operator= + + (T... args) + + + T + try_lock_until + cpp/thread/unique_lock/try_lock_until + + (T... args) + + + T + try_lock + cpp/thread/unique_lock/try_lock + + (T... args) + + + T + unique_lock + cpp/thread/unique_lock/unique_lock + + (T... args) + + + + std::basic_ostringstream + cpp/io/basic_ostringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_ostringstream::event_callback + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_ostringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + basic_ostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::basic_ostringstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ostringstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ostringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ostringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::is_error_code_enum + cpp/error/error_code/is_error_code_enum + + + std::time_put_byname + cpp/locale/time_put_byname + + T + time_put_byname + cpp/locale/time_put_byname + + (T... args) + + std::time_put_byname::char_type + + T + do_put + cpp/locale/time_put/put + + (T... args) + + + T + put + cpp/locale/time_put/put + + (T... args) + + + T + ~time_put_byname + cpp/locale/time_put_byname + + (T... args) + + std::time_put_byname::iter_type + + + std::time_put_byname::char_type + cpp/locale/time_put + + + std::time_put_byname::iter_type + cpp/locale/time_put + + + std::time_get + cpp/locale/time_get + + T + do_date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + do_get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + do_get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + ~time_get + cpp/locale/time_get/~time_get + + (T... args) + + + T + do_get_year + cpp/locale/time_get/get_year + + (T... args) + + std::time_get::iter_type + + T + get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + time_get + cpp/locale/time_get/time_get + + (T... args) + + + T + do_get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + get_date + cpp/locale/time_get/get_date + + (T... args) + + std::time_get::char_type + + T + date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + + std::time_get::iter_type + cpp/locale/time_get + + + std::time_get::char_type + cpp/locale/time_get + + + std::regex + cpp/regex/basic_regex + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + regex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + T + ~regex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + + std::cin + cpp/io/basic_istream + + + std::unordered_map + cpp/container/unordered_map + + T + max_bucket_count + cpp/container/unordered_map/max_bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_map/begin + + (T... args) + + + T + erase + cpp/container/unordered_map/erase + + (T... args) + + + T + insert + cpp/container/unordered_map/insert + + (T... args) + + + T + bucket_count + cpp/container/unordered_map/bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_map/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_map/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_map/emplace_hint + + (T... args) + + + T + end(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + load_factor + cpp/container/unordered_map/load_factor + + (T... args) + + + T + get_allocator + cpp/container/unordered_map/get_allocator + + (T... args) + + + T + key_eq + cpp/container/unordered_map/key_eq + + (T... args) + + + T + ~unordered_map + cpp/container/unordered_map/~unordered_map + + (T... args) + + + T + hash_function + cpp/container/unordered_map/hash_function + + (T... args) + + + T + find + cpp/container/unordered_map/find + + (T... args) + + + T + at + cpp/container/unordered_map/at + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_map/swap + + (T... args) + + + T + begin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + unordered_map + cpp/container/unordered_map/unordered_map + + (T... args) + + + T + size + cpp/container/unordered_map/size + + (T... args) + + + T + operator= + cpp/container/unordered_map/operator= + + (T... args) + + + T + cend(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + reserve + cpp/container/unordered_map/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_map/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_map/bucket + + (T... args) + + + T + empty + cpp/container/unordered_map/empty + + (T... args) + + + T + cend + cpp/container/unordered_map/end + + (T... args) + + + T + max_size + cpp/container/unordered_map/max_size + + (T... args) + + + T + count + cpp/container/unordered_map/count + + (T... args) + + + T + clear + cpp/container/unordered_map/clear + + (T... args) + + + T + equal_range + cpp/container/unordered_map/equal_range + + (T... args) + + + T + emplace + cpp/container/unordered_map/emplace + + (T... args) + + + T + operator[] + cpp/container/unordered_map/operator_at + + (T... args) + + + T + begin + cpp/container/unordered_map/begin + + (T... args) + + + T + bucket_size + cpp/container/unordered_map/bucket_size + + (T... args) + + + + std::initializer_list + cpp/utility/initializer_list + + T + end + cpp/utility/initializer_list/end + + (T... args) + + + T + size + cpp/utility/initializer_list/size + + (T... args) + + + T + initializer_list + cpp/utility/initializer_list/initializer_list + + (T... args) + + + T + begin + cpp/utility/initializer_list/begin + + (T... args) + + + + std::is_const + cpp/types/is_const + + + std::basic_regex + cpp/regex/basic_regex + + T + basic_regex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + ~basic_regex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + + std::poisson_distribution + cpp/numeric/random/poisson_distribution + + T + poisson_distribution + cpp/numeric/random/poisson_distribution/poisson_distribution + + (T... args) + + + T + mean + cpp/numeric/random/poisson_distribution/mean + + (T... args) + + + T + max + cpp/numeric/random/poisson_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/poisson_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/poisson_distribution/min + + (T... args) + + + T + reset + cpp/numeric/random/poisson_distribution/reset + + (T... args) + + + + std::bad_typeid + cpp/types/bad_typeid + + T + bad_typeid + cpp/types/bad_typeid/bad_typeid + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::less_equal + cpp/utility/functional/less_equal + + T + operator() + cpp/utility/functional/less_equal + + (T... args) + + + + std::sig_atomic_t + cpp/utility/program/sig_atomic_t + + + std::make_unsigned + cpp/types/make_unsigned + + + std::basic_filebuf + cpp/io/basic_filebuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + basic_filebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + ~basic_filebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + + std::logical_or + cpp/utility/functional/logical_or + + T + operator() + cpp/utility/functional/logical_or + + (T... args) + + + + std::wstringbuf + cpp/io/basic_stringbuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + wstringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + + std::kilo + cpp/numeric/ratio/ratio + + + std::bernoulli_distribution + cpp/numeric/random/bernoulli_distribution + + T + bernoulli_distribution + cpp/numeric/random/bernoulli_distribution/bernoulli_distribution + + (T... args) + + + T + p + cpp/numeric/random/bernoulli_distribution/p + + (T... args) + + + T + reset + cpp/numeric/random/bernoulli_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/bernoulli_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/bernoulli_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/bernoulli_distribution/min + + (T... args) + + + + std::int16_t + cpp/types/integer + + + std::basic_ios + cpp/io/basic_ios + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + std::basic_ios::failure + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + basic_ios + cpp/io/basic_ios/basic_ios + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + ~basic_ios + cpp/io/basic_ios/~basic_ios + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + std::basic_ios::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ios::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ios::event_callback + cpp/io/ios_base/event_callback + + + std::int32_t + cpp/types/integer + + + std::is_rvalue_reference + cpp/types/is_rvalue_reference + + + std::integral_constant + cpp/types/integral_constant + + + std::wsmatch + cpp/regex/match_results + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + wsmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + ~wsmatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::cerr + cpp/io/basic_ostream + + + std::codecvt_utf8 + cpp/locale/codecvt_utf8 + std::codecvt_utf8::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_utf8::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf8::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + + std::codecvt_utf8::extern_type + cpp/locale/codecvt + + + std::codecvt_utf8::state_type + cpp/locale/codecvt + + + std::codecvt_utf8::intern_type + cpp/locale/codecvt + + + std::ratio_add + cpp/numeric/ratio/ratio_add + + + std::is_trivially_move_constructible + cpp/types/is_move_constructible + + + std::wcsub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + wcsub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::is_member_pointer + cpp/types/is_member_pointer + + + std::wstreampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::uint_least16_t + cpp/types/integer + + + std::tuple + cpp/utility/tuple + + T + operator= + cpp/utility/tuple/operator= + + (T... args) + + + T + swap + cpp/utility/tuple/swap + + (T... args) + + + T + tuple + cpp/utility/tuple/tuple + + (T... args) + + + + std::make_signed + cpp/types/make_signed + + + std::logic_error + cpp/error/logic_error + + T + logic_error + cpp/error/logic_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::sregex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + sregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::int_least64_t + cpp/types/integer + + + std::binary_negate + cpp/utility/functional/binary_negate + + T + operator() + cpp/utility/functional/binary_negate + + (T... args) + + + T + binary_negate + cpp/utility/functional/binary_negate + + (T... args) + + + + std::discard_block_engine + cpp/numeric/random/discard_block_engine + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + T + discard_block_engine + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + + std::is_trivially_assignable + cpp/types/is_assignable + + + std::add_cv + cpp/types/add_cv + + + std::pico + cpp/numeric/ratio/ratio + + + std::iterator_traits + cpp/iterator/iterator_traits + + + std::is_trivially_default_constructible + cpp/types/is_default_constructible + + + std::shared_ptr + cpp/memory/shared_ptr + + T + shared_ptr + cpp/memory/shared_ptr/shared_ptr + + (T... args) + + + T + ~shared_ptr + cpp/memory/shared_ptr/~shared_ptr + + (T... args) + + + T + swap + cpp/memory/shared_ptr/swap + + (T... args) + + + T + owner_before + cpp/memory/shared_ptr/owner_before + + (T... args) + + + T + reset + cpp/memory/shared_ptr/reset + + (T... args) + + + T + operator-> + cpp/memory/shared_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/shared_ptr/operator= + + (T... args) + + + T + unique + cpp/memory/shared_ptr/unique + + (T... args) + + + T + operator* + cpp/memory/shared_ptr/operator* + + (T... args) + + + T + operator bool + cpp/memory/shared_ptr/operator_bool + + (T... args) + + + T + get + cpp/memory/shared_ptr/get + + (T... args) + + + + std::bad_alloc + cpp/memory/new/bad_alloc + + T + operator= + cpp/memory/new/bad_alloc + + (T... args) + + + T + bad_alloc + cpp/memory/new/bad_alloc + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostringstream + cpp/io/basic_ostringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ostringstream::event_callback + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + ostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ostringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::ostringstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ostringstream::event_callback + cpp/io/ios_base/event_callback + + + std::ostringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::basic_fstream + cpp/io/basic_fstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + basic_fstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::basic_fstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::basic_fstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_fstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_fstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_fstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_fstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::stringbuf + cpp/io/basic_stringbuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + stringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::exponential_distribution + cpp/numeric/random/exponential_distribution + + T + exponential_distribution + cpp/numeric/random/exponential_distribution/exponential_distribution + + (T... args) + + + T + min + cpp/numeric/random/exponential_distribution/min + + (T... args) + + + T + max + cpp/numeric/random/exponential_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/exponential_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/exponential_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/exponential_distribution/reset + + (T... args) + + + T + lambda + cpp/numeric/random/exponential_distribution/lambda + + (T... args) + + + + std::uint32_t + cpp/types/integer + + + std::wcregex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + wcregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::bad_function_call + cpp/utility/functional/bad_function_call + + T + bad_function_call + cpp/utility/functional/bad_function_call + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::false_type + cpp/types/integral_constant + + + std::wregex + cpp/regex/basic_regex + + T + wregex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + ~wregex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + + std::uint_least8_t + cpp/types/integer + + + std::uniform_real_distribution + cpp/numeric/random/uniform_real_distribution + + T + uniform_real_distribution + cpp/numeric/random/uniform_real_distribution/uniform_real_distribution + + (T... args) + + + T + reset + cpp/numeric/random/uniform_real_distribution/reset + + (T... args) + + + T + a + cpp/numeric/random/uniform_real_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/uniform_real_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/uniform_real_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/uniform_real_distribution/min + + (T... args) + + + T + b + cpp/numeric/random/uniform_real_distribution/params + + (T... args) + + + + std::smatch + cpp/regex/match_results + + T + smatch + cpp/regex/match_results/match_results + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + ~smatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::cregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + cregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::range_error + cpp/error/range_error + + T + range_error + cpp/error/range_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_assignable + cpp/types/is_assignable + + + std::is_copy_assignable + cpp/types/is_copy_assignable + + + std::invalid_argument + cpp/error/invalid_argument + + T + invalid_argument + cpp/error/invalid_argument + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_unsigned + cpp/types/is_unsigned + + + std::jmp_buf + cpp/utility/program/jmp_buf + + + std::is_class + cpp/types/is_class + + + std::geometric_distribution + cpp/numeric/random/geometric_distribution + + T + p + cpp/numeric/random/geometric_distribution/p + + (T... args) + + + T + reset + cpp/numeric/random/geometric_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/geometric_distribution/max + + (T... args) + + + T + geometric_distribution + cpp/numeric/random/geometric_distribution/geometric_distribution + + (T... args) + + + T + param + cpp/numeric/random/geometric_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/geometric_distribution/min + + (T... args) + + + + std::uint_fast8_t + cpp/types/integer + + + std::mersenne_twister_engine + cpp/numeric/random/mersenne_twister_engine + + T + discard + cpp/numeric/random/mersenne_twister_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/mersenne_twister_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + mersenne_twister_engine + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + + std::is_arithmetic + cpp/types/is_arithmetic + + + std::negate + cpp/utility/functional/negate + + T + operator() + cpp/utility/functional/negate + + (T... args) + + + + std::try_to_lock_t + cpp/thread/lock_tag_t + + + std::wfilebuf + cpp/io/basic_filebuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + ~wfilebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + wfilebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + + std::is_compound + cpp/types/is_compound + + + std::iostream + cpp/io/basic_iostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + ~iostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::iostream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::iostream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::iostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + iostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::iostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::iostream::event_callback + cpp/io/ios_base/event_callback + + + std::iostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_object + cpp/types/is_object + + + std::recursive_mutex + cpp/thread/recursive_mutex + + T + unlock + cpp/thread/recursive_mutex/unlock + + (T... args) + + + T + native_handle + cpp/thread/recursive_mutex/native_handle + + (T... args) + + + T + recursive_mutex + cpp/thread/recursive_mutex/recursive_mutex + + (T... args) + + + T + lock + cpp/thread/recursive_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/recursive_mutex/try_lock + + (T... args) + + + + std::is_copy_constructible + cpp/types/is_copy_constructible + + + std::codecvt_utf8_utf16 + cpp/locale/codecvt_utf8_utf16 + std::codecvt_utf8_utf16::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_utf8_utf16::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf8_utf16::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + + std::codecvt_utf8_utf16::extern_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16::state_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16::intern_type + cpp/locale/codecvt + + + std::not_equal_to + cpp/utility/functional/not_equal_to + + T + operator() + cpp/utility/functional/not_equal_to + + (T... args) + + + + std::is_destructible + cpp/types/is_destructible + + + std::int_fast32_t + cpp/types/integer + + + std::rank + cpp/types/rank + + + std::milli + cpp/numeric/ratio/ratio + + + std::deci + cpp/numeric/ratio/ratio + + + std::add_lvalue_reference + cpp/types/add_reference + + + std::is_bind_expression + cpp/utility/functional/is_bind_expression + + + std::ios_base + cpp/io/ios_base + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + std::ios_base::event_callback + std::ios_base::failure + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + ios_base + cpp/io/ios_base/ios_base + + (T... args) + + + T + ~ios_base + cpp/io/ios_base/~ios_base + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + + std::ios_base::event_callback + cpp/io/ios_base/event_callback + + + std::ios_base::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ratio_less + cpp/numeric/ratio/ratio_less + + + std::int64_t + cpp/types/integer + + + std::nullptr_t + cpp/types/nullptr_t + + + std::stack + cpp/container/stack + + T + operator= + cpp/container/stack/operator= + + (T... args) + + + T + swap + cpp/container/stack/swap + + (T... args) + + + T + size + cpp/container/stack/size + + (T... args) + + + T + empty + cpp/container/stack/empty + + (T... args) + + + T + pop + cpp/container/stack/pop + + (T... args) + + + T + emplace + cpp/container/stack/emplace + + (T... args) + + + T + ~stack + cpp/container/stack/~stack + + (T... args) + + + T + top + cpp/container/stack/top + + (T... args) + + + T + stack + cpp/container/stack/stack + + (T... args) + + + T + push + cpp/container/stack/push + + (T... args) + + + + std::uint_fast64_t + cpp/types/integer + + + std::is_reference + cpp/types/is_reference + + + std::ratio + cpp/numeric/ratio/ratio + + + std::shared_future + cpp/thread/shared_future + + T + ~shared_future + cpp/thread/shared_future/~shared_future + + (T... args) + + + T + operator= + cpp/thread/shared_future/operator= + + (T... args) + + + T + wait + cpp/thread/shared_future/wait + + (T... args) + + + T + wait_until + cpp/thread/shared_future/wait_until + + (T... args) + + + T + wait_for + cpp/thread/shared_future/wait_for + + (T... args) + + + T + shared_future + cpp/thread/shared_future/shared_future + + (T... args) + + + T + valid + cpp/thread/shared_future/valid + + (T... args) + + + T + get + cpp/thread/shared_future/get + + (T... args) + + + + std::u16streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::wistream + cpp/io/basic_istream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::wistream::event_callback + + T + wistream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ~wistream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wistream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::wistream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wistream::event_callback + cpp/io/ios_base/event_callback + + + std::wistream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wistream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::aligned_storage + cpp/types/aligned_storage + + + std::wstreambuf + cpp/io/basic_streambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + wstreambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + ~wstreambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::binary_function + cpp/utility/functional/binary_function + + + std::out_of_range + cpp/error/out_of_range + + T + out_of_range + cpp/error/out_of_range + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::independent_bits_engine + cpp/numeric/random/independent_bits_engine + + T + discard + cpp/numeric/random/independent_bits_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/independent_bits_engine/max + + (T... args) + + + T + independent_bits_engine + cpp/numeric/random/independent_bits_engine/independent_bits_engine + + (T... args) + + + T + operator() + cpp/numeric/random/independent_bits_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/independent_bits_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/independent_bits_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/independent_bits_engine/min + + (T... args) + + + + std::stringstream + cpp/io/basic_stringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + stringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::stringstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::stringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::stringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::stringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::stringstream::event_callback + cpp/io/ios_base/event_callback + + + std::stringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::tera + cpp/numeric/ratio/ratio + + + std::recursive_timed_mutex + cpp/thread/recursive_timed_mutex + + T + unlock + cpp/thread/recursive_timed_mutex/unlock + + (T... args) + + + T + native_handle + cpp/thread/recursive_timed_mutex/native_handle + + (T... args) + + + T + try_lock_until + cpp/thread/recursive_timed_mutex/try_lock_until + + (T... args) + + + T + try_lock_for + cpp/thread/recursive_timed_mutex/try_lock_for + + (T... args) + + + T + recursive_timed_mutex + cpp/thread/recursive_timed_mutex/recursive_timed_mutex + + (T... args) + + + T + lock + cpp/thread/recursive_timed_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/recursive_timed_mutex/try_lock + + (T... args) + + + + std::nano + cpp/numeric/ratio/ratio + + + std::unordered_multimap + cpp/container/unordered_multimap + + T + ~unordered_multimap + cpp/container/unordered_multimap/~unordered_multimap + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_multimap/max_bucket_count + + (T... args) + + + T + bucket_count + cpp/container/unordered_multimap/bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + erase + cpp/container/unordered_multimap/erase + + (T... args) + + + T + insert + cpp/container/unordered_multimap/insert + + (T... args) + + + T + unordered_multimap + cpp/container/unordered_multimap/unordered_multimap + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multimap/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_multimap/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multimap/emplace_hint + + (T... args) + + + T + end(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + key_eq + cpp/container/unordered_multimap/key_eq + + (T... args) + + + T + hash_function + cpp/container/unordered_multimap/hash_function + + (T... args) + + + T + find + cpp/container/unordered_multimap/find + + (T... args) + + + T + begin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_multimap/swap + + (T... args) + + + T + begin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + load_factor + cpp/container/unordered_multimap/load_factor + + (T... args) + + + T + size + cpp/container/unordered_multimap/size + + (T... args) + + + T + operator= + cpp/container/unordered_multimap/operator= + + (T... args) + + + T + cend + cpp/container/unordered_multimap/end + + (T... args) + + + T + reserve + cpp/container/unordered_multimap/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_multimap/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_multimap/bucket + + (T... args) + + + T + empty + cpp/container/unordered_multimap/empty + + (T... args) + + + T + get_allocator + cpp/container/unordered_multimap/get_allocator + + (T... args) + + + T + max_size + cpp/container/unordered_multimap/max_size + + (T... args) + + + T + cend(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + count + cpp/container/unordered_multimap/count + + (T... args) + + + T + clear + cpp/container/unordered_multimap/clear + + (T... args) + + + T + equal_range + cpp/container/unordered_multimap/equal_range + + (T... args) + + + T + emplace + cpp/container/unordered_multimap/emplace + + (T... args) + + + T + bucket_size + cpp/container/unordered_multimap/bucket_size + + (T... args) + + + + std::normal_distribution + cpp/numeric/random/normal_distribution + + T + min + cpp/numeric/random/normal_distribution/min + + (T... args) + + + T + stddev + cpp/numeric/random/normal_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/normal_distribution/reset + + (T... args) + + + T + mean + cpp/numeric/random/normal_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/normal_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/normal_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/normal_distribution/param + + (T... args) + + + T + normal_distribution + cpp/numeric/random/normal_distribution/normal_distribution + + (T... args) + + + + std::minstd_rand + cpp/numeric/random/linear_congruential_engine + + T + discard + cpp/numeric/random/linear_congruential_engine/discard + + (T... args) + + + T + minstd_rand + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + T + max + cpp/numeric/random/linear_congruential_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + + std::is_signed + cpp/types/is_signed + + + std::is_move_constructible + cpp/types/is_move_constructible + + + std::unique_ptr + cpp/memory/unique_ptr + + T + unique_ptr + cpp/memory/unique_ptr/unique_ptr + + (T... args) + + + T + operator= + cpp/memory/unique_ptr/operator= + + (T... args) + + + T + swap + cpp/memory/unique_ptr/swap + + (T... args) + + + T + operator* + cpp/memory/unique_ptr/operator* + + (T... args) + + + T + ~unique_ptr + cpp/memory/unique_ptr/~unique_ptr + + (T... args) + + + T + operator-> + cpp/memory/unique_ptr/operator* + + (T... args) + + + T + release + cpp/memory/unique_ptr/release + + (T... args) + + + T + get_deleter + cpp/memory/unique_ptr/get_deleter + + (T... args) + + + T + operator bool + cpp/memory/unique_ptr/operator_bool + + (T... args) + + + T + get + cpp/memory/unique_ptr/get + + (T... args) + + + T + reset + cpp/memory/unique_ptr/reset + + (T... args) + + + + std::is_nothrow_copy_constructible + cpp/types/is_copy_constructible + + + std::forward_list + cpp/container/forward_list + + T + pop_front + cpp/container/forward_list/pop_front + + (T... args) + + + T + unique + cpp/container/forward_list/unique + + (T... args) + + + T + sort + cpp/container/forward_list/sort + + (T... args) + + + T + cbegin + cpp/container/forward_list/begin + + (T... args) + + + T + splice_after + cpp/container/forward_list/splice_after + + (T... args) + + + T + reverse + cpp/container/forward_list/reverse + + (T... args) + + + T + remove_if + cpp/container/forward_list/remove + + (T... args) + + + T + end + cpp/container/forward_list/end + + (T... args) + + + T + remove + cpp/container/forward_list/remove + + (T... args) + + + T + push_front + cpp/container/forward_list/push_front + + (T... args) + + + T + emplace_after + cpp/container/forward_list/emplace_after + + (T... args) + + + T + get_allocator + cpp/container/forward_list/get_allocator + + (T... args) + + + T + front + cpp/container/forward_list/front + + (T... args) + + + T + begin + cpp/container/forward_list/begin + + (T... args) + + + T + resize + cpp/container/forward_list/resize + + (T... args) + + + T + emplace_front + cpp/container/forward_list/emplace_front + + (T... args) + + + T + swap + cpp/container/forward_list/swap + + (T... args) + + + T + erase_after + cpp/container/forward_list/erase_after + + (T... args) + + + T + assign + cpp/container/forward_list/assign + + (T... args) + + + T + forward_list + cpp/container/forward_list/forward_list + + (T... args) + + + T + ~forward_list + cpp/container/forward_list/~forward_list + + (T... args) + + + T + before_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + cbefore_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + merge + cpp/container/forward_list/merge + + (T... args) + + + T + operator= + cpp/container/forward_list/operator= + + (T... args) + + + T + insert_after + cpp/container/forward_list/insert_after + + (T... args) + + + T + empty + cpp/container/forward_list/empty + + (T... args) + + + T + max_size + cpp/container/forward_list/max_size + + (T... args) + + + T + cend + cpp/container/forward_list/end + + (T... args) + + + T + clear + cpp/container/forward_list/clear + + (T... args) + + + + std::errc + cpp/error/errc + + + std::lconv + cpp/locale/lconv + + + std::strstreambuf + cpp/io/strstreambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/strstreambuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pcount + cpp/io/strstreambuf/pcount + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + ~strstreambuf + cpp/io/strstreambuf/~strstreambuf + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + freeze + cpp/io/strstreambuf/freeze + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + strstreambuf + cpp/io/strstreambuf/strstreambuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::locale + cpp/locale/locale + + T + name + cpp/locale/locale/name + + (T... args) + + + T + combine + cpp/locale/locale/combine + + (T... args) + + + T + operator() + cpp/locale/locale/operator() + + (T... args) + + + T + classic + cpp/locale/locale/classic + + (T... args) + + + T + global + cpp/locale/locale/global + + (T... args) + + + T + operator!= + cpp/locale/locale/operator_cmp + + (T... args) + + + T + operator= + cpp/locale/locale/operator= + + (T... args) + + std::locale::facet + + T + operator== + cpp/locale/locale/operator_cmp + + (T... args) + + + T + locale + cpp/locale/locale/locale + + (T... args) + + std::locale::id + + T + ~locale + cpp/locale/locale/~locale + + (T... args) + + + + std::locale::facet + cpp/locale/locale/facet + + T + facet + cpp/locale/locale/facet/facet + + (T... args) + + + + std::locale::id + cpp/locale/locale/id + + T + id + cpp/locale/locale/id/id + + (T... args) + + + + std::equal_to + cpp/utility/functional/equal_to + + T + operator() + cpp/utility/functional/equal_to + + (T... args) + + + + std::divides + cpp/utility/functional/divides + + T + operator() + cpp/utility/functional/divides + + (T... args) + + + + std::collate_byname + cpp/locale/collate_byname + + T + hash + cpp/locale/collate/hash + + (T... args) + + + T + do_hash + cpp/locale/collate/hash + + (T... args) + + std::collate_byname::char_type + + T + do_transform + cpp/locale/collate/transform + + (T... args) + + + T + transform + cpp/locale/collate/transform + + (T... args) + + + T + do_compare + cpp/locale/collate/compare + + (T... args) + + + T + ~collate_byname + cpp/locale/collate_byname + + (T... args) + + std::collate_byname::string_type + + T + collate_byname + cpp/locale/collate_byname + + (T... args) + + + T + compare + cpp/locale/collate/compare + + (T... args) + + + + std::collate_byname::char_type + cpp/locale/collate + + + std::collate_byname::string_type + cpp/locale/collate + + + std::domain_error + cpp/error/domain_error + + T + domain_error + cpp/error/domain_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_empty + cpp/types/is_empty + + + std::is_nothrow_default_constructible + cpp/types/is_default_constructible + + + std::ratio_equal + cpp/numeric/ratio/ratio_equal + + + std::ostream + cpp/io/basic_ostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ostream::event_callback + + T + ostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + ~ostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ostream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ostream::event_callback + cpp/io/ios_base/event_callback + + + std::ostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::streamsize + cpp/io/streamsize + + + std::shared_lock + cpp/thread/shared_lock + + T + mutex + cpp/thread/shared_lock/mutex + + (T... args) + + + T + swap + cpp/thread/shared_lock/swap + + (T... args) + + + T + shared_lock + cpp/thread/shared_lock/shared_lock + + (T... args) + + + T + try_lock_for + cpp/thread/shared_lock/try_lock_for + + (T... args) + + + T + release + cpp/thread/shared_lock/release + + (T... args) + + + T + lock + cpp/thread/shared_lock/lock + + (T... args) + + + T + operator bool + cpp/thread/shared_lock/operator_bool + + (T... args) + + + T + unlock + cpp/thread/shared_lock/unlock + + (T... args) + + + T + operator= + cpp/thread/shared_lock/operator= + + (T... args) + + + T + ~shared_lock + cpp/thread/shared_lock/~shared_lock + + (T... args) + + + T + try_lock_until + cpp/thread/shared_lock/try_lock_until + + (T... args) + + + T + try_lock + cpp/thread/shared_lock/try_lock + + (T... args) + + + T + owns_lock + cpp/thread/shared_lock/owns_lock + + (T... args) + + + + std::uint8_t + cpp/types/integer + + + std::enable_shared_from_this + cpp/memory/enable_shared_from_this + + T + enable_shared_from_this + cpp/memory/enable_shared_from_this/enable_shared_from_this + + (T... args) + + + T + operator= + cpp/memory/enable_shared_from_this/operator= + + (T... args) + + + T + shared_from_this + cpp/memory/enable_shared_from_this/shared_from_this + + (T... args) + + + T + ~enable_shared_from_this + cpp/memory/enable_shared_from_this/~enable_shared_from_this + + (T... args) + + + + std::ptrdiff_t + cpp/types/ptrdiff_t + + + std::int_fast8_t + cpp/types/integer + + + std::aligned_union + cpp/types/aligned_union + + + std::future + cpp/thread/future + + T + operator= + cpp/thread/future/operator= + + (T... args) + + + T + wait + cpp/thread/future/wait + + (T... args) + + + T + wait_until + cpp/thread/future/wait_until + + (T... args) + + + T + wait_for + cpp/thread/future/wait_for + + (T... args) + + + T + ~future + cpp/thread/future/~future + + (T... args) + + + T + share + cpp/thread/future/share + + (T... args) + + + T + future + cpp/thread/future/future + + (T... args) + + + T + valid + cpp/thread/future/valid + + (T... args) + + + T + get + cpp/thread/future/get + + (T... args) + + + + std::wcmatch + cpp/regex/match_results + + T + wcmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + ~wcmatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::overflow_error + cpp/error/overflow_error + + T + overflow_error + cpp/error/overflow_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::centi + cpp/numeric/ratio/ratio + + + std::wssub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + wssub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::is_nothrow_move_assignable + cpp/types/is_move_assignable + + + std::pair + cpp/utility/pair + + T + pair + cpp/utility/pair/pair + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + T + operator= + cpp/utility/pair/operator= + + (T... args) + + + + std::wsregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + wsregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::weibull_distribution + cpp/numeric/random/weibull_distribution + + T + reset + cpp/numeric/random/weibull_distribution/reset + + (T... args) + + + T + a + cpp/numeric/random/weibull_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/weibull_distribution/max + + (T... args) + + + T + weibull_distribution + cpp/numeric/random/weibull_distribution/weibull_distribution + + (T... args) + + + T + operator() + cpp/numeric/random/weibull_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/weibull_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/weibull_distribution/min + + (T... args) + + + T + b + cpp/numeric/random/weibull_distribution/params + + (T... args) + + + + std::less + cpp/utility/functional/less + + T + operator() + cpp/utility/functional/less + + (T... args) + + + + std::multiplies + cpp/utility/functional/multiplies + + T + operator() + cpp/utility/functional/multiplies + + (T... args) + + + + std::is_enum + cpp/types/is_enum + + + std::unary_function + cpp/utility/functional/unary_function + + + std::error_code + cpp/error/error_code + + T + value + cpp/error/error_code/value + + (T... args) + + + T + operator bool + cpp/error/error_code/operator_bool + + (T... args) + + + T + assign + cpp/error/error_code/assign + + (T... args) + + + T + operator= + cpp/error/error_code/operator= + + (T... args) + + + T + error_code + cpp/error/error_code/error_code + + (T... args) + + + T + clear + cpp/error/error_code/clear + + (T... args) + + + T + default_error_condition + cpp/error/error_code/default_error_condition + + (T... args) + + + T + message + cpp/error/error_code/message + + (T... args) + + + T + category + cpp/error/error_code/category + + (T... args) + + + + std::yocto + cpp/numeric/ratio/ratio + + + std::streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::istream_iterator + cpp/iterator/istream_iterator + + + std::wifstream + cpp/io/basic_ifstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::wifstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wifstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + wifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + std::wifstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wifstream::event_callback + cpp/io/ios_base/event_callback + + + std::wifstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wifstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::moneypunct_byname + cpp/locale/moneypunct_byname + + T + do_curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + moneypunct_byname + cpp/locale/moneypunct_byname + + (T... args) + + + T + curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + do_negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + do_frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + std::moneypunct_byname::string_type + std::moneypunct_byname::pattern + + T + do_positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct_byname::char_type + + T + ~moneypunct_byname + cpp/locale/moneypunct_byname + + (T... args) + + + T + do_grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + + std::moneypunct_byname::string_type + cpp/locale/moneypunct + + + std::moneypunct_byname::pattern + cpp/locale/money_base + + + std::moneypunct_byname::char_type + cpp/locale/moneypunct + + + std::terminate_handler + cpp/error/terminate_handler + + + std::ctype_base + cpp/locale/ctype_base + std::ctype_base::mask + + + std::ctype_base::mask + cpp/locale/ctype_base + + + std::reference_wrapper + cpp/utility/functional/reference_wrapper + + T + operator= + cpp/utility/functional/reference_wrapper/operator= + + (T... args) + + + T + operator() + cpp/utility/functional/reference_wrapper/operator() + + (T... args) + + + T + get + cpp/utility/functional/reference_wrapper/get + + (T... args) + + + T + reference_wrapper + cpp/utility/functional/reference_wrapper/reference_wrapper + + (T... args) + + + T + operator T& + cpp/utility/functional/reference_wrapper/get + + (T... args) + + + + std::ranlux48_base + cpp/numeric/random/subtract_with_carry_engine + + T + discard + cpp/numeric/random/subtract_with_carry_engine/discard + + (T... args) + + + T + ranlux48_base + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + + std::bit_not + cpp/utility/functional/bit_not + + T + operator() + cpp/utility/functional/bit_not + + (T... args) + + + + std::int_fast16_t + cpp/types/integer + + + std::error_category + cpp/error/error_category + + T + name + cpp/error/error_category/name + + (T... args) + + + T + operator!= + cpp/error/error_category/operator_cmp + + (T... args) + + + T + operator< + cpp/error/error_category/operator_cmp + + (T... args) + + + T + error_category + cpp/error/error_category/error_category + + (T... args) + + + T + equivalent + cpp/error/error_category/equivalent + + (T... args) + + + T + operator== + cpp/error/error_category/operator_cmp + + (T... args) + + + T + ~error_category + cpp/error/error_category/~error_category + + (T... args) + + + T + default_error_condition + cpp/error/error_category/default_error_condition + + (T... args) + + + T + message + cpp/error/error_category/message + + (T... args) + + + + std::regex_traits + cpp/regex/regex_traits + + T + value + cpp/regex/regex_traits/value + + (T... args) + + + T + lookup_collatename + cpp/regex/regex_traits/lookup_collatename + + (T... args) + + + T + isctype + cpp/regex/regex_traits/isctype + + (T... args) + + + T + getloc + cpp/regex/regex_traits/getloc + + (T... args) + + + T + regex_traits + cpp/regex/regex_traits/regex_traits + + (T... args) + + + T + transform_primary + cpp/regex/regex_traits/transform_primary + + (T... args) + + + T + translate + cpp/regex/regex_traits/translate + + (T... args) + + + T + imbue + cpp/regex/regex_traits/imbue + + (T... args) + + + T + lookup_classname + cpp/regex/regex_traits/lookup_classname + + (T... args) + + + T + transform + cpp/regex/regex_traits/transform + + (T... args) + + + T + length + cpp/regex/regex_traits/length + + (T... args) + + + T + translate_nocase + cpp/regex/regex_traits/translate_nocase + + (T... args) + + + + std::regex_constants + + + + std::negative_binomial_distribution + cpp/numeric/random/negative_binomial_distribution + + T + p + cpp/numeric/random/negative_binomial_distribution/params + + (T... args) + + + T + negative_binomial_distribution + cpp/numeric/random/negative_binomial_distribution/negative_binomial_distribution + + (T... args) + + + T + min + cpp/numeric/random/negative_binomial_distribution/min + + (T... args) + + + T + max + cpp/numeric/random/negative_binomial_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/negative_binomial_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/negative_binomial_distribution/reset + + (T... args) + + + T + k + cpp/numeric/random/negative_binomial_distribution/params + + (T... args) + + + + std::is_union + cpp/types/is_union + + + std::mt19937 + cpp/numeric/random/mersenne_twister_engine + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + T + discard + cpp/numeric/random/mersenne_twister_engine/discard + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + mt19937 + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + max + cpp/numeric/random/mersenne_twister_engine/max + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + + std::enable_if + cpp/types/enable_if + + + std::chi_squared_distribution + cpp/numeric/random/chi_squared_distribution + + T + n + cpp/numeric/random/chi_squared_distribution/n + + (T... args) + + + T + reset + cpp/numeric/random/chi_squared_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/chi_squared_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/chi_squared_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/chi_squared_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/chi_squared_distribution/min + + (T... args) + + + T + chi_squared_distribution + cpp/numeric/random/chi_squared_distribution/chi_squared_distribution + + (T... args) + + + + std::add_rvalue_reference + cpp/types/add_reference + + + std::basic_istream + cpp/io/basic_istream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_istream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + basic_istream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + ~basic_istream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_istream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::basic_istream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_istream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_istream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_istream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::ostream_iterator + cpp/iterator/ostream_iterator + + + std::is_trivially_copy_assignable + cpp/types/is_copy_assignable + + + std::clog + cpp/io/basic_ostream + + + std::is_scalar + cpp/types/is_scalar + + + std::uses_allocator + cpp/memory/uses_allocator + + + std::piecewise_linear_distribution + cpp/numeric/random/piecewise_linear_distribution + + T + piecewise_linear_distribution + cpp/numeric/random/piecewise_linear_distribution/piecewise_linear_distribution + + (T... args) + + + T + densities + cpp/numeric/random/piecewise_linear_distribution/params + + (T... args) + + + T + intervals + cpp/numeric/random/piecewise_linear_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/piecewise_linear_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/piecewise_linear_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/piecewise_linear_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/piecewise_linear_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/piecewise_linear_distribution/min + + (T... args) + + + + std::hash + cpp/utility/hash + + T + hash + cpp/utility/hash/hash + + (T... args) + + + T + operator() + cpp/utility/hash/operator() + + (T... args) + + + + std::shuffle_order_engine + cpp/numeric/random/shuffle_order_engine + + T + discard + cpp/numeric/random/shuffle_order_engine/discard + + (T... args) + + + T + shuffle_order_engine + cpp/numeric/random/shuffle_order_engine/shuffle_order_engine + + (T... args) + + + T + max + cpp/numeric/random/shuffle_order_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/shuffle_order_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/shuffle_order_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/shuffle_order_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/shuffle_order_engine/min + + (T... args) + + + + std::chrono + + std::chrono::minutes + + T + time_point_cast + cpp/chrono/time_point/time_point_cast + + (T... args) + + std::chrono::seconds + std::chrono::treat_as_floating_point + std::chrono::duration + std::chrono::milliseconds + std::chrono::steady_clock + std::chrono::system_clock + std::chrono::hours + std::chrono::time_point + std::chrono::high_resolution_clock + std::chrono::duration_values + std::chrono::microseconds + std::chrono::nanoseconds + + T + duration_cast + cpp/chrono/duration/duration_cast + + (T... args) + + + + std::chrono::minutes + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + minutes + cpp/chrono/duration/duration + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::seconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + seconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::treat_as_floating_point + cpp/chrono/treat_as_floating_point + + + std::chrono::duration + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + duration + cpp/chrono/duration/duration + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::milliseconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + milliseconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::steady_clock + cpp/chrono/steady_clock + + T + now + cpp/chrono/steady_clock/now + + (T... args) + + + + std::chrono::system_clock + cpp/chrono/system_clock + + T + now + cpp/chrono/system_clock/now + + (T... args) + + + T + to_time_t + cpp/chrono/system_clock/to_time_t + + (T... args) + + + T + from_time_t + cpp/chrono/system_clock/from_time_t + + (T... args) + + + + std::chrono::hours + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + hours + cpp/chrono/duration/duration + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::time_point + cpp/chrono/time_point + + T + time_since_epoch + cpp/chrono/time_point/time_since_epoch + + (T... args) + + + T + min + cpp/chrono/time_point/min + + (T... args) + + + T + operator- + cpp/chrono/time_point/operator_arith + + (T... args) + + + T + max + cpp/chrono/time_point/max + + (T... args) + + + T + operator+ + cpp/chrono/time_point/operator_arith + + (T... args) + + + T + time_point + cpp/chrono/time_point/time_point + + (T... args) + + + + std::chrono::high_resolution_clock + cpp/chrono/high_resolution_clock + + T + now + cpp/chrono/high_resolution_clock/now + + (T... args) + + + + std::chrono::duration_values + cpp/chrono/duration_values + + T + max + cpp/chrono/duration_values/max + + (T... args) + + + T + zero + cpp/chrono/duration_values/zero + + (T... args) + + + T + min + cpp/chrono/duration_values/min + + (T... args) + + + + std::chrono::microseconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + microseconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::chrono::nanoseconds + cpp/chrono/duration + + T + operator--(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + T + operator-- + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator+= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator++ + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator++(int) + cpp/chrono/duration/operator_arith2 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + operator*= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator+ + cpp/chrono/duration/operator_arith + + (T... args) + + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + operator%= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + nanoseconds + cpp/chrono/duration/duration + + (T... args) + + + T + operator-= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + + std::greater + cpp/utility/functional/greater + + T + operator() + cpp/utility/functional/greater + + (T... args) + + + + std::csub_match + cpp/regex/sub_match + + T + csub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::uintmax_t + cpp/types/integer + + + std::remove_pointer + cpp/types/remove_pointer + + + std::numeric_limits + cpp/types/numeric_limits + + T + lowest + cpp/types/numeric_limits/lowest + + (T... args) + + + T + infinity + cpp/types/numeric_limits/infinity + + (T... args) + + + T + signaling_NaN + cpp/types/numeric_limits/signaling_NaN + + (T... args) + + + T + quiet_NaN + cpp/types/numeric_limits/quiet_NaN + + (T... args) + + + T + denorm_min + cpp/types/numeric_limits/denorm_min + + (T... args) + + + T + max + cpp/types/numeric_limits/max + + (T... args) + + + T + round_error + cpp/types/numeric_limits/round_error + + (T... args) + + + T + min + cpp/types/numeric_limits/min + + (T... args) + + + T + epsilon + cpp/types/numeric_limits/epsilon + + (T... args) + + + + std::add_volatile + cpp/types/add_cv + + + std::once_flag + cpp/thread/once_flag + + T + once_flag + cpp/thread/once_flag + + (T... args) + + + + std::is_literal_type + cpp/types/is_literal_type + + + std::money_base + cpp/locale/money_base + std::money_base::pattern + + + std::money_base::pattern + cpp/locale/money_base + + + std::peta + cpp/numeric/ratio/ratio + + + std::is_placeholder + cpp/utility/functional/is_placeholder + + + std::add_const + cpp/types/add_cv + + + std::basic_stringbuf + cpp/io/basic_stringbuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + basic_stringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::tm + cpp/chrono/c/tm + + + std::is_abstract + cpp/types/is_abstract + + + std::deque + cpp/container/deque + + T + pop_front + cpp/container/deque/pop_front + + (T... args) + + + T + push_back + cpp/container/deque/push_back + + (T... args) + + + T + shrink_to_fit + cpp/container/deque/shrink_to_fit + + (T... args) + + + T + crbegin + cpp/container/deque/rbegin + + (T... args) + + + T + erase + cpp/container/deque/erase + + (T... args) + + + T + insert + cpp/container/deque/insert + + (T... args) + + + T + ~deque + cpp/container/deque/~deque + + (T... args) + + + T + back + cpp/container/deque/back + + (T... args) + + + T + end + cpp/container/deque/end + + (T... args) + + + T + push_front + cpp/container/deque/push_front + + (T... args) + + + T + emplace_back + cpp/container/deque/emplace_back + + (T... args) + + + T + pop_back + cpp/container/deque/pop_back + + (T... args) + + + T + cbegin + cpp/container/deque/begin + + (T... args) + + + T + front + cpp/container/deque/front + + (T... args) + + + T + deque + cpp/container/deque/deque + + (T... args) + + + T + size + cpp/container/deque/size + + (T... args) + + + T + resize + cpp/container/deque/resize + + (T... args) + + + T + emplace_front + cpp/container/deque/emplace_front + + (T... args) + + + T + rbegin + cpp/container/deque/rbegin + + (T... args) + + + T + crend + cpp/container/deque/rend + + (T... args) + + + T + assign + cpp/container/deque/assign + + (T... args) + + + T + operator= + cpp/container/deque/operator= + + (T... args) + + + T + empty + cpp/container/deque/empty + + (T... args) + + + T + cend + cpp/container/deque/end + + (T... args) + + + T + swap + cpp/container/deque/swap + + (T... args) + + + T + max_size + cpp/container/deque/max_size + + (T... args) + + + T + rend + cpp/container/deque/rend + + (T... args) + + + T + get_allocator + cpp/container/deque/get_allocator + + (T... args) + + + T + clear + cpp/container/deque/clear + + (T... args) + + + T + at + cpp/container/deque/at + + (T... args) + + + T + emplace + cpp/container/deque/emplace + + (T... args) + + + T + operator[] + cpp/container/deque/operator_at + + (T... args) + + + T + begin + cpp/container/deque/begin + + (T... args) + + + + std::allocator + cpp/memory/allocator + + T + allocator + cpp/memory/allocator/allocator + + (T... args) + + + T + allocate + cpp/memory/allocator/allocate + + (T... args) + + + T + destroy + cpp/memory/allocator/destroy + + (T... args) + + + T + ~allocator + cpp/memory/allocator/~allocator + + (T... args) + + + T + max_size + cpp/memory/allocator/max_size + + (T... args) + + + T + address + cpp/memory/allocator/address + + (T... args) + + + T + deallocate + cpp/memory/allocator/deallocate + + (T... args) + + + T + construct + cpp/memory/allocator/construct + + (T... args) + + + + std::scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor + + T + deallocate + cpp/memory/scoped_allocator_adaptor/deallocate + + (T... args) + + + T + scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor/scoped_allocator_adaptor + + (T... args) + + + T + destroy + cpp/memory/scoped_allocator_adaptor/destroy + + (T... args) + + + T + construct + cpp/memory/scoped_allocator_adaptor/construct + + (T... args) + + + T + max_size + cpp/memory/scoped_allocator_adaptor/max_size + + (T... args) + + + T + inner_allocator + cpp/memory/scoped_allocator_adaptor/inner_allocator + + (T... args) + + + T + select_on_container_copy_construction + cpp/memory/scoped_allocator_adaptor/select_on_container_copy_construction + + (T... args) + + + T + allocate + cpp/memory/scoped_allocator_adaptor/allocate + + (T... args) + + + T + outer_allocator + cpp/memory/scoped_allocator_adaptor/outer_allocator + + (T... args) + + + T + ~scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor/~scoped_allocator_adaptor + + (T... args) + + + + std::ssub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + ssub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::messages_byname + cpp/locale/messages_byname + + T + do_get + cpp/locale/messages/get + + (T... args) + + std::messages_byname::char_type + std::messages_byname::catalog + + T + ~messages_byname + cpp/locale/messages_byname + + (T... args) + + + T + messages_byname + cpp/locale/messages_byname + + (T... args) + + + T + do_open + cpp/locale/messages/open + + (T... args) + + + T + do_close + cpp/locale/messages/close + + (T... args) + + + T + open + cpp/locale/messages/open + + (T... args) + + std::messages_byname::string_type + + T + get + cpp/locale/messages/get + + (T... args) + + + T + close + cpp/locale/messages/close + + (T... args) + + + + std::messages_byname::char_type + cpp/locale/messages + + + std::messages_byname::catalog + cpp/locale/messages_base + + + std::messages_byname::string_type + cpp/locale/messages + + + std::promise + cpp/thread/promise + + T + set_exception + cpp/thread/promise/set_exception + + (T... args) + + + T + operator= + cpp/thread/promise/operator= + + (T... args) + + + T + swap + cpp/thread/promise/swap + + (T... args) + + + T + set_exception_at_thread_exit + cpp/thread/promise/set_exception_at_thread_exit + + (T... args) + + + T + set_value + cpp/thread/promise/set_value + + (T... args) + + + T + get_future + cpp/thread/promise/get_future + + (T... args) + + + T + promise + cpp/thread/promise/promise + + (T... args) + + + T + ~promise + cpp/thread/promise/~promise + + (T... args) + + + T + set_value_at_thread_exit + cpp/thread/promise/set_value_at_thread_exit + + (T... args) + + + + std::add_pointer + cpp/types/add_pointer + + + std::uintptr_t + cpp/types/integer + + + std::bit_and + cpp/utility/functional/bit_and + + T + operator() + cpp/utility/functional/bit_and + + (T... args) + + + + std::uniform_int_distribution + cpp/numeric/random/uniform_int_distribution + + T + min + cpp/numeric/random/uniform_int_distribution/min + + (T... args) + + + T + b + cpp/numeric/random/uniform_int_distribution/params + + (T... args) + + + T + a + cpp/numeric/random/uniform_int_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/uniform_int_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/uniform_int_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/uniform_int_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/uniform_int_distribution/reset + + (T... args) + + + T + uniform_int_distribution + cpp/numeric/random/uniform_int_distribution/uniform_int_distribution + + (T... args) + + + + std::type_info + cpp/types/type_info + + T + operator!= + cpp/types/type_info/operator_cmp + + (T... args) + + + T + before + cpp/types/type_info/before + + (T... args) + + + T + name + cpp/types/type_info/name + + (T... args) + + + T + operator== + cpp/types/type_info/operator_cmp + + (T... args) + + + T + hash_code + cpp/types/type_info/hash_code + + (T... args) + + + + std::fisher_f_distribution + cpp/numeric/random/fisher_f_distribution + + T + fisher_f_distribution + cpp/numeric/random/fisher_f_distribution/fisher_f_distribution + + (T... args) + + + T + n + cpp/numeric/random/fisher_f_distribution/params + + (T... args) + + + T + reset + cpp/numeric/random/fisher_f_distribution/reset + + (T... args) + + + T + m + cpp/numeric/random/fisher_f_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/fisher_f_distribution/operator() + + (T... args) + + + T + max + cpp/numeric/random/fisher_f_distribution/max + + (T... args) + + + T + param + cpp/numeric/random/fisher_f_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/fisher_f_distribution/min + + (T... args) + + + + std::strstream + cpp/io/strstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/strstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + pcount + cpp/io/strstream/pcount + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::strstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::strstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::strstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + strstream + cpp/io/strstream/strstream + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + freeze + cpp/io/strstream/freeze + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + ~strstream + cpp/io/strstream/~strstream + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::strstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::strstream::event_callback + cpp/io/ios_base/event_callback + + + std::strstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::time_get_byname + cpp/locale/time_get_byname + + T + do_get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + do_get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + time_get_byname + cpp/locale/time_get_byname + + (T... args) + + + T + do_get_year + cpp/locale/time_get/get_year + + (T... args) + + std::time_get_byname::iter_type + + T + get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + ~time_get_byname + cpp/locale/time_get_byname + + (T... args) + + + T + get_time + cpp/locale/time_get/get_time + + (T... args) + + std::time_get_byname::char_type + + T + do_get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + do_date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + date_order + cpp/locale/time_get/date_order + + (T... args) + + + T + get + cpp/locale/time_get/get + + (T... args) + + + T + do_get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + + std::time_get_byname::iter_type + cpp/locale/time_get + + + std::time_get_byname::char_type + cpp/locale/time_get + + + std::basic_streambuf + cpp/io/basic_streambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + basic_streambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + ~basic_streambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + + std::is_nothrow_constructible + cpp/types/is_constructible + + + std::queue + cpp/container/queue + + T + operator= + cpp/container/queue/operator= + + (T... args) + + + T + swap + cpp/container/queue/swap + + (T... args) + + + T + emplace + cpp/container/queue/emplace + + (T... args) + + + T + empty + cpp/container/queue/empty + + (T... args) + + + T + ~queue + cpp/container/queue/~queue + + (T... args) + + + T + pop + cpp/container/queue/pop + + (T... args) + + + T + front + cpp/container/queue/front + + (T... args) + + + T + push + cpp/container/queue/push + + (T... args) + + + T + queue + cpp/container/queue/queue + + (T... args) + + + T + back + cpp/container/queue/back + + (T... args) + + + T + size + cpp/container/queue/size + + (T... args) + + + + std::is_base_of + cpp/types/is_base_of + + + std::intmax_t + cpp/types/integer + + + std::ranlux24 + cpp/numeric/random/discard_block_engine + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + ranlux24 + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + + std::remove_cv + cpp/types/remove_cv + + + std::is_trivially_destructible + cpp/types/is_destructible + + + std::wcin + cpp/io/basic_istream + + + std::atomic + cpp/atomic/atomic + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + atomic + cpp/atomic/atomic/atomic + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + + std::basic_stringstream + cpp/io/basic_stringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + basic_stringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::basic_stringstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::basic_stringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_stringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_stringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_stringstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_stringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_void + cpp/types/is_void + + + std::plus + cpp/utility/functional/plus + + T + operator() + cpp/utility/functional/plus + + (T... args) + + + + std::bitset + cpp/utility/bitset + + T + none + cpp/utility/bitset/all_any_none + + (T... args) + + + T + operator<< + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator>> + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + std::bitset::reference + + T + reset + cpp/utility/bitset/reset + + (T... args) + + + T + count + cpp/utility/bitset/count + + (T... args) + + + T + operator<<= + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator|= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator&= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + bitset + cpp/utility/bitset/bitset + + (T... args) + + + T + size + cpp/utility/bitset/size + + (T... args) + + + T + set + cpp/utility/bitset/set + + (T... args) + + + T + all + cpp/utility/bitset/all_any_none + + (T... args) + + + T + to_string + cpp/utility/bitset/to_string + + (T... args) + + + T + operator!= + cpp/utility/bitset/operator_cmp + + (T... args) + + + T + any + cpp/utility/bitset/all_any_none + + (T... args) + + + T + test + cpp/utility/bitset/test + + (T... args) + + + T + operator== + cpp/utility/bitset/operator_cmp + + (T... args) + + + T + operator>>= + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + to_ulong + cpp/utility/bitset/to_ulong + + (T... args) + + + T + operator^= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator~ + cpp/utility/bitset/operator_logic + + (T... args) + + + T + to_ullong + cpp/utility/bitset/to_ullong + + (T... args) + + + T + operator[] + cpp/utility/bitset/operator_at + + (T... args) + + + T + flip + cpp/utility/bitset/flip + + (T... args) + + + + std::bitset::reference + cpp/utility/bitset/reference + + + std::FILE + cpp/io/c + + + std::thread + cpp/thread/thread + + T + joinable + cpp/thread/thread/joinable + + (T... args) + + + T + operator= + cpp/thread/thread/operator= + + (T... args) + + + T + native_handle + cpp/thread/thread/native_handle + + (T... args) + + + T + ~thread + cpp/thread/thread/~thread + + (T... args) + + + T + swap + cpp/thread/thread/swap + + (T... args) + + + T + hardware_concurrency + cpp/thread/thread/hardware_concurrency + + (T... args) + + std::thread::id + + T + thread + cpp/thread/thread/thread + + (T... args) + + + T + join + cpp/thread/thread/join + + (T... args) + + + T + detach + cpp/thread/thread/detach + + (T... args) + + + T + get_id + cpp/thread/thread/get_id + + (T... args) + + + + std::thread::id + cpp/thread/thread/id + + T + operator!= + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator>= + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator<= + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator< + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator== + cpp/thread/thread/id/operator_cmp + + (T... args) + + + T + operator<< + cpp/thread/thread/id/operator_ltlt + + (T... args) + + + T + id + cpp/thread/thread/id/id + + (T... args) + + + T + operator> + cpp/thread/thread/id/operator_cmp + + (T... args) + + + + std::future_error + cpp/thread/future_error + + T + code + cpp/thread/future_error/code + + (T... args) + + + T + future_error + cpp/thread/future_error/future_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::time_base + cpp/locale/time_base + + + std::alignment_of + cpp/types/alignment_of + + + std::time_put + cpp/locale/time_put + std::time_put::char_type + std::time_put::iter_type + + T + do_put + cpp/locale/time_put/put + + (T... args) + + + T + ~time_put + cpp/locale/time_put/~time_put + + (T... args) + + + T + put + cpp/locale/time_put/put + + (T... args) + + + T + time_put + cpp/locale/time_put/time_put + + (T... args) + + + + std::time_put::char_type + cpp/locale/time_put + + + std::time_put::iter_type + cpp/locale/time_put + + + std::bit_or + cpp/utility/functional/bit_or + + T + operator() + cpp/utility/functional/bit_or + + (T... args) + + + + std::pointer_traits + cpp/memory/pointer_traits + + T + pointer_to + cpp/memory/pointer_traits/pointer_to + + (T... args) + + + + std::basic_string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + basic_string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::priority_queue + cpp/container/priority_queue + + T + empty + cpp/container/priority_queue/empty + + (T... args) + + + T + swap + cpp/container/priority_queue/swap + + (T... args) + + + T + priority_queue + cpp/container/priority_queue/priority_queue + + (T... args) + + + T + size + cpp/container/priority_queue/size + + (T... args) + + + T + operator= + cpp/container/priority_queue/operator= + + (T... args) + + + T + pop + cpp/container/priority_queue/pop + + (T... args) + + + T + emplace + cpp/container/priority_queue/emplace + + (T... args) + + + T + push + cpp/container/priority_queue/push + + (T... args) + + + T + top + cpp/container/priority_queue/top + + (T... args) + + + T + ~priority_queue + cpp/container/priority_queue/~priority_queue + + (T... args) + + + + std::exa + cpp/numeric/ratio/ratio + + + std::wostringstream + cpp/io/basic_ostringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::wostringstream::event_callback + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + wostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wostringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::wostringstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wostringstream::event_callback + cpp/io/ios_base/event_callback + + + std::wostringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wostringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::is_default_constructible + cpp/types/is_default_constructible + + + std::cregex_iterator + cpp/regex/regex_iterator + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + cregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::wstring + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + wstring + cpp/string/basic_string/basic_string + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::remove_all_extents + cpp/types/remove_all_extents + + + std::istrstream + cpp/io/istrstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + ~istrstream + cpp/io/istrstream/~istrstream + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/istrstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::istrstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istrstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + istrstream + cpp/io/istrstream/istrstream + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::istrstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::istrstream::event_callback + cpp/io/ios_base/event_callback + + + std::istrstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::istrstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::unary_negate + cpp/utility/functional/unary_negate + + T + operator() + cpp/utility/functional/unary_negate + + (T... args) + + + T + unary_negate + cpp/utility/functional/unary_negate + + (T... args) + + + + std::unordered_multiset + cpp/container/unordered_multiset + + T + max_bucket_count + cpp/container/unordered_multiset/max_bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + erase + cpp/container/unordered_multiset/erase + + (T... args) + + + T + insert + cpp/container/unordered_multiset/insert + + (T... args) + + + T + bucket_count + cpp/container/unordered_multiset/bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multiset/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_multiset/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multiset/emplace_hint + + (T... args) + + + T + unordered_multiset + cpp/container/unordered_multiset/unordered_multiset + + (T... args) + + + T + end(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + key_eq + cpp/container/unordered_multiset/key_eq + + (T... args) + + + T + hash_function + cpp/container/unordered_multiset/hash_function + + (T... args) + + + T + equal_range + cpp/container/unordered_multiset/equal_range + + (T... args) + + + T + begin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_multiset/swap + + (T... args) + + + T + ~unordered_multiset + cpp/container/unordered_multiset/~unordered_multiset + + (T... args) + + + T + load_factor + cpp/container/unordered_multiset/load_factor + + (T... args) + + + T + size + cpp/container/unordered_multiset/size + + (T... args) + + + T + operator= + cpp/container/unordered_multiset/operator= + + (T... args) + + + T + cend + cpp/container/unordered_multiset/end + + (T... args) + + + T + reserve + cpp/container/unordered_multiset/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_multiset/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_multiset/bucket + + (T... args) + + + T + find + cpp/container/unordered_multiset/find + + (T... args) + + + T + empty + cpp/container/unordered_multiset/empty + + (T... args) + + + T + get_allocator + cpp/container/unordered_multiset/get_allocator + + (T... args) + + + T + max_size + cpp/container/unordered_multiset/max_size + + (T... args) + + + T + cend(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + count + cpp/container/unordered_multiset/count + + (T... args) + + + T + clear + cpp/container/unordered_multiset/clear + + (T... args) + + + T + begin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + emplace + cpp/container/unordered_multiset/emplace + + (T... args) + + + T + bucket_size + cpp/container/unordered_multiset/bucket_size + + (T... args) + + + + std::basic_ostream + cpp/io/basic_ostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::basic_ostream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_ostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + basic_ostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + ~basic_ostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + std::basic_ostream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ostream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::wsregex_iterator + cpp/regex/regex_iterator + + T + wsregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator!= + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + + std::uint_fast16_t + cpp/types/integer + + + std::is_nothrow_assignable + cpp/types/is_assignable + + + std::moneypunct + cpp/locale/moneypunct + + T + do_curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + do_pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + do_negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + ~moneypunct + cpp/locale/moneypunct/~moneypunct + + (T... args) + + + T + pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + do_frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + std::moneypunct::string_type + std::moneypunct::pattern + + T + do_positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct::char_type + + T + moneypunct + cpp/locale/moneypunct/moneypunct + + (T... args) + + + T + do_grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + + std::moneypunct::string_type + cpp/locale/moneypunct + + + std::moneypunct::pattern + cpp/locale/money_base + + + std::moneypunct::char_type + cpp/locale/moneypunct + + + std::type_index + cpp/types/type_index + + T + operator!= + cpp/types/type_index/operator_cmp + + (T... args) + + + T + hash_code + cpp/types/type_index/hash_code + + (T... args) + + + T + operator<= + cpp/types/type_index/operator_cmp + + (T... args) + + + T + operator< + cpp/types/type_index/operator_cmp + + (T... args) + + + T + operator== + cpp/types/type_index/operator_cmp + + (T... args) + + + T + operator>= + cpp/types/type_index/operator_cmp + + (T... args) + + + T + type_index + cpp/types/type_index/type_index + + (T... args) + + + T + name + cpp/types/type_index/name + + (T... args) + + + T + operator> + cpp/types/type_index/operator_cmp + + (T... args) + + + + std::is_standard_layout + cpp/types/is_standard_layout + + + std::timed_mutex + cpp/thread/timed_mutex + + T + unlock + cpp/thread/timed_mutex/unlock + + (T... args) + + + T + native_handle + cpp/thread/timed_mutex/native_handle + + (T... args) + + + T + try_lock_until + cpp/thread/timed_mutex/try_lock_until + + (T... args) + + + T + try_lock_for + cpp/thread/timed_mutex/try_lock_for + + (T... args) + + + T + lock + cpp/thread/timed_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/timed_mutex/try_lock + + (T... args) + + + T + timed_mutex + cpp/thread/timed_mutex/timed_mutex + + (T... args) + + + + std::bad_exception + cpp/error/bad_exception + + + std::int_fast64_t + cpp/types/integer + + + std::function + cpp/utility/functional/function + + T + operator= + cpp/utility/functional/function/operator= + + (T... args) + + + T + swap + cpp/utility/functional/function/swap + + (T... args) + + + T + assign + cpp/utility/functional/function/assign + + (T... args) + + + T + target + cpp/utility/functional/function/target + + (T... args) + + + T + operator() + cpp/utility/functional/function/operator() + + (T... args) + + + T + target_type + cpp/utility/functional/function/target_type + + (T... args) + + + T + function + cpp/utility/functional/function/function + + (T... args) + + + T + operator bool + cpp/utility/functional/function/operator_bool + + (T... args) + + + T + ~function + cpp/utility/functional/function/~function + + (T... args) + + + + std::bad_cast + cpp/types/bad_cast + + T + bad_cast + cpp/types/bad_cast/bad_cast + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::error_condition + cpp/error/error_condition + + T + error_condition + cpp/error/error_condition/error_condition + + (T... args) + + + T + operator= + cpp/error/error_condition/operator= + + (T... args) + + + T + operator bool + cpp/error/error_condition/operator_bool + + (T... args) + + + T + assign + cpp/error/error_condition/assign + + (T... args) + + + T + value + cpp/error/error_condition/value + + (T... args) + + + T + clear + cpp/error/error_condition/clear + + (T... args) + + + T + message + cpp/error/error_condition/message + + (T... args) + + + T + category + cpp/error/error_condition/category + + (T... args) + + + + std::filebuf + cpp/io/basic_filebuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + filebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + ~filebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + + std::int_least16_t + cpp/types/integer + + + std::istreambuf_iterator + cpp/iterator/istreambuf_iterator + + + std::u16string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + u16string + cpp/string/basic_string/basic_string + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::is_error_condition_enum + cpp/error/error_condition/is_error_condition_enum + + + std::is_nothrow_destructible + cpp/types/is_destructible + + + std::wiostream + cpp/io/basic_iostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::wiostream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::wiostream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + wiostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wiostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + ~wiostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wiostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wiostream::event_callback + cpp/io/ios_base/event_callback + + + std::wiostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::allocator_arg_t + cpp/memory/allocator_arg_t + + + std::rel_ops + + + T + operator!= + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + T + operator>= + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + T + operator<= + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + T + operator> + cpp/utility/rel_ops/operator_cmp + + (T... args) + + + + std::uint_least32_t + cpp/types/integer + + + std::collate + cpp/locale/collate + + T + hash + cpp/locale/collate/hash + + (T... args) + + + T + do_hash + cpp/locale/collate/hash + + (T... args) + + + T + collate + cpp/locale/collate/collate + + (T... args) + + std::collate::char_type + + T + ~collate + cpp/locale/collate/~collate + + (T... args) + + + T + do_transform + cpp/locale/collate/transform + + (T... args) + + + T + transform + cpp/locale/collate/transform + + (T... args) + + + T + do_compare + cpp/locale/collate/compare + + (T... args) + + std::collate::string_type + + T + compare + cpp/locale/collate/compare + + (T... args) + + + + std::collate::char_type + cpp/locale/collate + + + std::collate::string_type + cpp/locale/collate + + + std::remove_const + cpp/types/remove_cv + + + std::u32string + cpp/string/basic_string + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + u32string + cpp/string/basic_string/basic_string + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + + std::uint_fast32_t + cpp/types/integer + + + std::is_lvalue_reference + cpp/types/is_lvalue_reference + + + std::complex + cpp/numeric/complex + + T + operator= + cpp/numeric/complex/operator= + + (T... args) + + + T + complex + cpp/numeric/complex/complex + + (T... args) + + + T + operator-= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + imag + cpp/numeric/complex/imag + + (T... args) + + + T + operator+= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + operator/= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + operator*= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + real + cpp/numeric/complex/real + + (T... args) + + + + std::ofstream + cpp/io/basic_ofstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ofstream::event_callback + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ofstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::ofstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + ofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ofstream::event_callback + cpp/io/ios_base/event_callback + + + std::ofstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ofstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::insert_iterator + cpp/iterator/insert_iterator + + + std::bad_array_length + cpp/memory/new/bad_array_length + + T + bad_array_length + cpp/memory/new/bad_array_length + + (T... args) + + + T + what + cpp/memory/new/bad_alloc + + (T... args) + + + + std::this_thread + + + T + yield + cpp/thread/yield + + (T... args) + + + T + sleep_for + cpp/thread/sleep_for + + (T... args) + + + T + sleep_until + cpp/thread/sleep_until + + (T... args) + + + T + get_id + cpp/thread/get_id + + (T... args) + + + + std::is_trivially_copyable + cpp/types/is_trivially_copyable + + + std::basic_istringstream + cpp/io/basic_istringstream + + T + basic_istringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::basic_istringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_istringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + std::basic_istringstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_istringstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_istringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_istringstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_ifstream + cpp/io/basic_ifstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + basic_ifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::basic_ifstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_ifstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + std::basic_ifstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_ifstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_ifstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::basic_ifstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::list + cpp/container/list + + T + pop_front + cpp/container/list/pop_front + + (T... args) + + + T + push_back + cpp/container/list/push_back + + (T... args) + + + T + splice + cpp/container/list/splice + + (T... args) + + + T + crbegin + cpp/container/list/rbegin + + (T... args) + + + T + erase + cpp/container/list/erase + + (T... args) + + + T + emplace_front + cpp/container/list/emplace_front + + (T... args) + + + T + insert + cpp/container/list/insert + + (T... args) + + + T + reverse + cpp/container/list/reverse + + (T... args) + + + T + back + cpp/container/list/back + + (T... args) + + + T + end + cpp/container/list/end + + (T... args) + + + T + remove + cpp/container/list/remove + + (T... args) + + + T + list + cpp/container/list/list + + (T... args) + + + T + emplace_back + cpp/container/list/emplace_back + + (T... args) + + + T + pop_back + cpp/container/list/pop_back + + (T... args) + + + T + cbegin + cpp/container/list/begin + + (T... args) + + + T + front + cpp/container/list/front + + (T... args) + + + T + unique + cpp/container/list/unique + + (T... args) + + + T + size + cpp/container/list/size + + (T... args) + + + T + resize + cpp/container/list/resize + + (T... args) + + + T + push_front + cpp/container/list/push_front + + (T... args) + + + T + rbegin + cpp/container/list/rbegin + + (T... args) + + + T + crend + cpp/container/list/rend + + (T... args) + + + T + assign + cpp/container/list/assign + + (T... args) + + + T + operator= + cpp/container/list/operator= + + (T... args) + + + T + sort + cpp/container/list/sort + + (T... args) + + + T + ~list + cpp/container/list/~list + + (T... args) + + + T + merge + cpp/container/list/merge + + (T... args) + + + T + empty + cpp/container/list/empty + + (T... args) + + + T + remove_if + cpp/container/list/remove + + (T... args) + + + T + cend + cpp/container/list/end + + (T... args) + + + T + swap + cpp/container/list/swap + + (T... args) + + + T + max_size + cpp/container/list/max_size + + (T... args) + + + T + rend + cpp/container/list/rend + + (T... args) + + + T + get_allocator + cpp/container/list/get_allocator + + (T... args) + + + T + clear + cpp/container/list/clear + + (T... args) + + + T + emplace + cpp/container/list/emplace + + (T... args) + + + T + begin + cpp/container/list/begin + + (T... args) + + + + std::minus + cpp/utility/functional/minus + + T + operator() + cpp/utility/functional/minus + + (T... args) + + + + std::map + cpp/container/map + + T + begin + cpp/container/map/begin + + (T... args) + + + T + erase + cpp/container/map/erase + + (T... args) + + + T + insert + cpp/container/map/insert + + (T... args) + + + T + swap + cpp/container/map/swap + + (T... args) + + + T + end + cpp/container/map/end + + (T... args) + + + T + emplace_hint + cpp/container/map/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/map/key_comp + + (T... args) + + std::map::value_compare + + T + cbegin + cpp/container/map/begin + + (T... args) + + + T + count + cpp/container/map/count + + (T... args) + + + T + find + cpp/container/map/find + + (T... args) + + + T + map + cpp/container/map/map + + (T... args) + + + T + crbegin + cpp/container/map/rbegin + + (T... args) + + + T + at + cpp/container/map/at + + (T... args) + + + T + upper_bound + cpp/container/map/upper_bound + + (T... args) + + + T + rbegin + cpp/container/map/rbegin + + (T... args) + + + T + crend + cpp/container/map/rend + + (T... args) + + + T + size + cpp/container/map/size + + (T... args) + + + T + operator= + cpp/container/map/operator= + + (T... args) + + + T + ~map + cpp/container/map/~map + + (T... args) + + + T + value_comp + cpp/container/map/value_comp + + (T... args) + + + T + empty + cpp/container/map/empty + + (T... args) + + + T + lower_bound + cpp/container/map/lower_bound + + (T... args) + + + T + cend + cpp/container/map/end + + (T... args) + + + T + max_size + cpp/container/map/max_size + + (T... args) + + + T + rend + cpp/container/map/rend + + (T... args) + + + T + get_allocator + cpp/container/map/get_allocator + + (T... args) + + + T + clear + cpp/container/map/clear + + (T... args) + + + T + equal_range + cpp/container/map/equal_range + + (T... args) + + + T + emplace + cpp/container/map/emplace + + (T... args) + + + T + operator[] + cpp/container/map/operator_at + + (T... args) + + + + std::map::value_compare + cpp/container/map/value_compare + + + std::linear_congruential_engine + cpp/numeric/random/linear_congruential_engine + + T + discard + cpp/numeric/random/linear_congruential_engine/discard + + (T... args) + + + T + linear_congruential_engine + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + T + max + cpp/numeric/random/linear_congruential_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + + std::codecvt_utf16 + cpp/locale/codecvt_utf16 + std::codecvt_utf16::extern_type + + T + out + cpp/locale/codecvt/out + + (T... args) + + + T + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + do_encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + do_in + cpp/locale/codecvt/in + + (T... args) + + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + std::codecvt_utf16::state_type + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf16::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + + std::codecvt_utf16::extern_type + cpp/locale/codecvt + + + std::codecvt_utf16::state_type + cpp/locale/codecvt + + + std::codecvt_utf16::intern_type + cpp/locale/codecvt + + + std::cmatch + cpp/regex/match_results + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + ~cmatch + cpp/regex/match_results/~match_results + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + cmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + + std::defer_lock_t + cpp/thread/lock_tag_t + + + std::exception + cpp/error/exception + + T + what + cpp/error/exception/what + + (T... args) + + + T + ~exception + cpp/error/exception/~exception + + (T... args) + + + T + operator= + cpp/error/exception/operator= + + (T... args) + + + T + exception + cpp/error/exception/exception + + (T... args) + + + + std::front_insert_iterator + cpp/iterator/front_insert_iterator + + + std::zetta + cpp/numeric/ratio/ratio + + + std::streambuf + cpp/io/basic_streambuf + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + ~streambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + streambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + + std::experimental + + + T + make_optional + cpp/experimental/optional/make_optional + + (T... args) + + std::experimental::optional + + + std::experimental::optional + cpp/experimental/optional + + T + operator= + cpp/experimental/optional/operator= + + (T... args) + + + T + operator bool + cpp/experimental/optional/operator_bool + + (T... args) + + + T + optional + cpp/experimental/optional/optional + + (T... args) + + + T + ~optional + cpp/experimental/optional/~optional + + (T... args) + + + T + operator-> + cpp/experimental/optional/operator* + + (T... args) + + + T + value + cpp/experimental/optional/value + + (T... args) + + + T + value_or + cpp/experimental/optional/value_or + + (T... args) + + + T + operator* + cpp/experimental/optional/operator* + + (T... args) + + + T + emplace + cpp/experimental/optional/emplace + + (T... args) + + + T + swap + cpp/experimental/optional/swap + + (T... args) + + + + std::num_put + cpp/locale/num_put + + T + num_put + cpp/locale/num_put/num_put + + (T... args) + + std::num_put::char_type + + T + ~num_put + cpp/locale/num_put/~num_put + + (T... args) + + + T + do_put + cpp/locale/num_put/put + + (T... args) + + + T + put + cpp/locale/num_put/put + + (T... args) + + std::num_put::iter_type + + + std::num_put::char_type + cpp/locale/num_put + + + std::num_put::iter_type + cpp/locale/num_put + + + std::owner_less + cpp/memory/owner_less + + T + operator() + cpp/memory/owner_less + + (T... args) + + + + std::extent + cpp/types/extent + + + std::bad_optional_access + cpp/utility/bad_optional_access + + T + bad_optional_access + cpp/utility/bad_optional_access + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::yotta + cpp/numeric/ratio/ratio + + + std::wcregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + wcregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + + std::uint64_t + cpp/types/integer + + + std::messages + cpp/locale/messages + + T + do_get + cpp/locale/messages/get + + (T... args) + + + T + do_close + cpp/locale/messages/close + + (T... args) + + std::messages::char_type + + T + get + cpp/locale/messages/get + + (T... args) + + + T + ~messages + cpp/locale/messages/~messages + + (T... args) + + + T + do_open + cpp/locale/messages/open + + (T... args) + + + T + messages + cpp/locale/messages/messages + + (T... args) + + + T + open + cpp/locale/messages/open + + (T... args) + + std::messages::string_type + std::messages::catalog + + T + close + cpp/locale/messages/close + + (T... args) + + + + std::messages::char_type + cpp/locale/messages + + + std::messages::string_type + cpp/locale/messages + + + std::messages::catalog + cpp/locale/messages_base + + + std::regex_token_iterator + cpp/regex/regex_token_iterator + + T + regex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::move_iterator + cpp/iterator/move_iterator + + + std::messages_base + cpp/locale/messages_base + std::messages_base::catalog + + + std::messages_base::catalog + cpp/locale/messages_base + + + std::istringstream + cpp/io/basic_istringstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + istringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::istringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + std::istringstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::istringstream::event_callback + cpp/io/ios_base/event_callback + + + std::istringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::istringstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::giga + cpp/numeric/ratio/ratio + + + std::integer_sequence + cpp/utility/integer_sequence + + + std::has_virtual_destructor + cpp/types/has_virtual_destructor + + + std::max_align_t + cpp/types/max_align_t + + + std::remove_volatile + cpp/types/remove_cv + + + std::underlying_type + cpp/types/underlying_type + + + std::hecto + cpp/numeric/ratio/ratio + + + std::is_member_object_pointer + cpp/types/is_member_object_pointer + + + std::exception_ptr + cpp/error/exception_ptr + + + std::nested_exception + cpp/error/nested_exception + + T + operator= + cpp/error/nested_exception/operator= + + (T... args) + + + T + ~nested_exception + cpp/error/nested_exception/~nested_exception + + (T... args) + + + T + rethrow_nested + cpp/error/nested_exception/rethrow_nested + + (T... args) + + + T + nested_exception + cpp/error/nested_exception/nested_exception + + (T... args) + + + T + nested_ptr + cpp/error/nested_exception/nested_ptr + + (T... args) + + + + std::random_access_iterator_tag + cpp/iterator/iterator_tags + + + std::ctype + cpp/locale/ctype + + T + do_toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + ~ctype + cpp/locale/ctype/~ctype + + (T... args) + + + T + do_narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + widen + cpp/locale/ctype/widen + + (T... args) + + + T + is + cpp/locale/ctype/is + + (T... args) + + + T + do_scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_is + cpp/locale/ctype/is + + (T... args) + + + T + do_tolower + cpp/locale/ctype/tolower + + (T... args) + + std::ctype::mask + + T + do_widen + cpp/locale/ctype/widen + + (T... args) + + + T + ctype + cpp/locale/ctype/ctype + + (T... args) + + + + std::ctype::mask + cpp/locale/ctype_base + + + std::time_t + cpp/chrono/c/time_t + + + std::knuth_b + cpp/numeric/random/shuffle_order_engine + + T + discard + cpp/numeric/random/shuffle_order_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/shuffle_order_engine/max + + (T... args) + + + T + knuth_b + cpp/numeric/random/shuffle_order_engine/shuffle_order_engine + + (T... args) + + + T + operator() + cpp/numeric/random/shuffle_order_engine/operator() + + (T... args) + + + T + base + cpp/numeric/random/shuffle_order_engine/base + + (T... args) + + + T + seed + cpp/numeric/random/shuffle_order_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/shuffle_order_engine/min + + (T... args) + + + + std::auto_ptr + cpp/memory/auto_ptr + + T + release + cpp/memory/auto_ptr/release + + (T... args) + + + T + operator* + cpp/memory/auto_ptr/operator* + + (T... args) + + + T + operator auto_ptr<Y> + cpp/memory/auto_ptr/operator_auto_ptr + + (T... args) + + + T + reset + cpp/memory/auto_ptr/reset + + (T... args) + + + T + operator-> + cpp/memory/auto_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/auto_ptr/operator= + + (T... args) + + + T + auto_ptr + cpp/memory/auto_ptr/auto_ptr + + (T... args) + + + T + ~auto_ptr + cpp/memory/auto_ptr/~auto_ptr + + (T... args) + + + T + get + cpp/memory/auto_ptr/get + + (T... args) + + + + std::minstd_rand0 + cpp/numeric/random/linear_congruential_engine + + T + discard + cpp/numeric/random/linear_congruential_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/linear_congruential_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + T + minstd_rand0 + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + + std::sregex_token_iterator + cpp/regex/regex_token_iterator + + T + operator!= + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator= + cpp/regex/regex_token_iterator/operator= + + (T... args) + + + T + sregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + operator-> + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator* + cpp/regex/regex_token_iterator/operator* + + (T... args) + + + T + operator++(int) + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + + std::logical_not + cpp/utility/functional/logical_not + + T + operator() + cpp/utility/functional/logical_not + + (T... args) + + + + std::fpos_t + cpp/io/c + + + std::istream + cpp/io/basic_istream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + ~istream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + T + istream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::istream::event_callback + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::istream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + std::istream::sentry + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::istream::event_callback + cpp/io/ios_base/event_callback + + + std::istream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::istream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::seed_seq + cpp/numeric/random/seed_seq + + T + generate + cpp/numeric/random/seed_seq/generate + + (T... args) + + + T + param + cpp/numeric/random/seed_seq/param + + (T... args) + + + T + size + cpp/numeric/random/seed_seq/size + + (T... args) + + + T + seed_seq + cpp/numeric/random/seed_seq/seed_seq + + (T... args) + + + + std::default_delete + cpp/memory/default_delete + + T + default_delete + cpp/memory/default_delete + + (T... args) + + + T + operator() + cpp/memory/default_delete + + (T... args) + + + + std::femto + cpp/numeric/ratio/ratio + + + std::clock_t + cpp/chrono/c/clock_t + + + std::true_type + cpp/types/integral_constant + + + std::mbstate_t + cpp/string/multibyte/mbstate_t + + + std::ostrstream + cpp/io/ostrstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/ostrstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::ostrstream::event_callback + + T + pcount + cpp/io/ostrstream/pcount + + (T... args) + + + T + ostrstream + cpp/io/ostrstream/ostrstream + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::ostrstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + freeze + cpp/io/ostrstream/freeze + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + ~ostrstream + cpp/io/ostrstream/~ostrstream + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::ostrstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ostrstream::event_callback + cpp/io/ios_base/event_callback + + + std::ostrstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ostrstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::gamma_distribution + cpp/numeric/random/gamma_distribution + + T + gamma_distribution + cpp/numeric/random/gamma_distribution/gamma_distribution + + (T... args) + + + T + max + cpp/numeric/random/gamma_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/gamma_distribution/operator() + + (T... args) + + + T + reset + cpp/numeric/random/gamma_distribution/reset + + (T... args) + + + T + alpha + cpp/numeric/random/gamma_distribution/params + + (T... args) + + + T + beta + cpp/numeric/random/gamma_distribution/params + + (T... args) + + + T + param + cpp/numeric/random/gamma_distribution/param + + (T... args) + + + T + min + cpp/numeric/random/gamma_distribution/min + + (T... args) + + + + std::bad_weak_ptr + cpp/memory/bad_weak_ptr + + T + bad_weak_ptr + cpp/memory/bad_weak_ptr/bad_weak_ptr + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::output_iterator_tag + cpp/iterator/iterator_tags + + + std::micro + cpp/numeric/ratio/ratio + + + std::is_trivial + cpp/types/is_trivial + + + std::packaged_task + cpp/thread/packaged_task + + T + operator= + cpp/thread/packaged_task/operator= + + (T... args) + + + T + swap + cpp/thread/packaged_task/swap + + (T... args) + + + T + reset + cpp/thread/packaged_task/reset + + (T... args) + + + T + packaged_task + cpp/thread/packaged_task/packaged_task + + (T... args) + + + T + make_ready_at_thread_exit + cpp/thread/packaged_task/make_ready_at_thread_exit + + (T... args) + + + T + operator() + cpp/thread/packaged_task/operator() + + (T... args) + + + T + get_future + cpp/thread/packaged_task/get_future + + (T... args) + + + T + valid + cpp/thread/packaged_task/valid + + (T... args) + + + T + ~packaged_task + cpp/thread/packaged_task/~packaged_task + + (T... args) + + + + std::unordered_set + cpp/container/unordered_set + + T + max_bucket_count + cpp/container/unordered_set/max_bucket_count + + (T... args) + + + T + cbegin + cpp/container/unordered_set/begin + + (T... args) + + + T + erase + cpp/container/unordered_set/erase + + (T... args) + + + T + insert + cpp/container/unordered_set/insert + + (T... args) + + + T + bucket_count + cpp/container/unordered_set/bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_set/max_load_factor + + (T... args) + + + T + end + cpp/container/unordered_set/end + + (T... args) + + + T + emplace_hint + cpp/container/unordered_set/emplace_hint + + (T... args) + + + T + end(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + ~unordered_set + cpp/container/unordered_set/~unordered_set + + (T... args) + + + T + key_eq + cpp/container/unordered_set/key_eq + + (T... args) + + + T + hash_function + cpp/container/unordered_set/hash_function + + (T... args) + + + T + find + cpp/container/unordered_set/find + + (T... args) + + + T + clear + cpp/container/unordered_set/clear + + (T... args) + + + T + begin + cpp/container/unordered_set/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + swap + cpp/container/unordered_set/swap + + (T... args) + + + T + begin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + load_factor + cpp/container/unordered_set/load_factor + + (T... args) + + + T + size + cpp/container/unordered_set/size + + (T... args) + + + T + operator= + cpp/container/unordered_set/operator= + + (T... args) + + + T + cend + cpp/container/unordered_set/end + + (T... args) + + + T + reserve + cpp/container/unordered_set/reserve + + (T... args) + + + T + rehash + cpp/container/unordered_set/rehash + + (T... args) + + + T + bucket + cpp/container/unordered_set/bucket + + (T... args) + + + T + empty + cpp/container/unordered_set/empty + + (T... args) + + + T + get_allocator + cpp/container/unordered_set/get_allocator + + (T... args) + + + T + max_size + cpp/container/unordered_set/max_size + + (T... args) + + + T + cend(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + count + cpp/container/unordered_set/count + + (T... args) + + + T + unordered_set + cpp/container/unordered_set/unordered_set + + (T... args) + + + T + equal_range + cpp/container/unordered_set/equal_range + + (T... args) + + + T + emplace + cpp/container/unordered_set/emplace + + (T... args) + + + T + bucket_size + cpp/container/unordered_set/bucket_size + + (T... args) + + + + std::is_volatile + cpp/types/is_volatile + + + std::wfstream + cpp/io/basic_fstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::wfstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + wfstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::wfstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wfstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wfstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wfstream::event_callback + cpp/io/ios_base/event_callback + + + std::wfstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::multimap + cpp/container/multimap + + T + multimap + cpp/container/multimap/multimap + + (T... args) + + + T + begin + cpp/container/multimap/begin + + (T... args) + + + T + erase + cpp/container/multimap/erase + + (T... args) + + + T + insert + cpp/container/multimap/insert + + (T... args) + + + T + swap + cpp/container/multimap/swap + + (T... args) + + + T + end + cpp/container/multimap/end + + (T... args) + + + T + ~multimap + cpp/container/multimap/~multimap + + (T... args) + + + T + emplace_hint + cpp/container/multimap/emplace_hint + + (T... args) + + + T + key_comp + cpp/container/multimap/key_comp + + (T... args) + + std::multimap::value_compare + + T + cbegin + cpp/container/multimap/begin + + (T... args) + + + T + count + cpp/container/multimap/count + + (T... args) + + + T + find + cpp/container/multimap/find + + (T... args) + + + T + crbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + upper_bound + cpp/container/multimap/upper_bound + + (T... args) + + + T + rbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + crend + cpp/container/multimap/rend + + (T... args) + + + T + size + cpp/container/multimap/size + + (T... args) + + + T + operator= + cpp/container/multimap/operator= + + (T... args) + + + T + value_comp + cpp/container/multimap/value_comp + + (T... args) + + + T + empty + cpp/container/multimap/empty + + (T... args) + + + T + lower_bound + cpp/container/multimap/lower_bound + + (T... args) + + + T + cend + cpp/container/multimap/end + + (T... args) + + + T + max_size + cpp/container/multimap/max_size + + (T... args) + + + T + rend + cpp/container/multimap/rend + + (T... args) + + + T + get_allocator + cpp/container/multimap/get_allocator + + (T... args) + + + T + clear + cpp/container/multimap/clear + + (T... args) + + + T + equal_range + cpp/container/multimap/equal_range + + (T... args) + + + T + emplace + cpp/container/multimap/emplace + + (T... args) + + + + std::multimap::value_compare + cpp/container/multimap/value_compare + + + std::atomic_flag + cpp/atomic/atomic_flag + + T + operator= + cpp/atomic/atomic_flag/operator= + + (T... args) + + + T + clear + cpp/atomic/atomic_flag/clear + + (T... args) + + + T + atomic_flag + cpp/atomic/atomic_flag/atomic_flag + + (T... args) + + + T + test_and_set + cpp/atomic/atomic_flag/test_and_set + + (T... args) + + + + std::numpunct_byname + cpp/locale/numpunct_byname + + T + grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + do_decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct_byname::string_type + + T + numpunct_byname + cpp/locale/numpunct_byname + + (T... args) + + + T + truename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct_byname::char_type + + T + do_truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + ~numpunct_byname + cpp/locale/numpunct_byname + + (T... args) + + + + std::numpunct_byname::string_type + cpp/locale/numpunct + + + std::numpunct_byname::char_type + cpp/locale/numpunct + + + std::binomial_distribution + cpp/numeric/random/binomial_distribution + + T + t + cpp/numeric/random/binomial_distribution/params + + (T... args) + + + T + binomial_distribution + cpp/numeric/random/binomial_distribution/binomial_distribution + + (T... args) + + + T + reset + cpp/numeric/random/binomial_distribution/reset + + (T... args) + + + T + max + cpp/numeric/random/binomial_distribution/max + + (T... args) + + + T + p + cpp/numeric/random/binomial_distribution/params + + (T... args) + + + T + min + cpp/numeric/random/binomial_distribution/min + + (T... args) + + + T + param + cpp/numeric/random/binomial_distribution/param + + (T... args) + + + + std::basic_iostream + cpp/io/basic_iostream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + ~basic_iostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::basic_iostream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::basic_iostream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + basic_iostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::basic_iostream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::basic_iostream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_iostream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_iostream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wofstream + cpp/io/basic_ofstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + std::wofstream::event_callback + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + wofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wofstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + std::wofstream::sentry + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wofstream::event_callback + cpp/io/ios_base/event_callback + + + std::wofstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wofstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::fpos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::underflow_error + cpp/error/underflow_error + + T + underflow_error + cpp/error/underflow_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::cauchy_distribution + cpp/numeric/random/cauchy_distribution + + T + min + cpp/numeric/random/cauchy_distribution/min + + (T... args) + + + T + reset + cpp/numeric/random/cauchy_distribution/reset + + (T... args) + + + T + a + cpp/numeric/random/cauchy_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/cauchy_distribution/max + + (T... args) + + + T + operator() + cpp/numeric/random/cauchy_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/cauchy_distribution/param + + (T... args) + + + T + cauchy_distribution + cpp/numeric/random/cauchy_distribution/cauchy_distribution + + (T... args) + + + T + b + cpp/numeric/random/cauchy_distribution/params + + (T... args) + + + + std::is_trivially_copy_constructible + cpp/types/is_copy_constructible + + + std::conditional + cpp/types/conditional + + + std::is_pod + cpp/types/is_pod + + + std::int_least8_t + cpp/types/integer + + + std::streamoff + cpp/io/streamoff + + + std::is_move_assignable + cpp/types/is_move_assignable + + + std::int_least32_t + cpp/types/integer + + + std::wstringstream + cpp/io/basic_stringstream + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + std::wstringstream::sentry + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + std::wstringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + std::wstringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + wstringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wstringstream::sentry + cpp/io/basic_ostream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wstringstream::event_callback + cpp/io/ios_base/event_callback + + + std::wstringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::subtract_with_carry_engine + cpp/numeric/random/subtract_with_carry_engine + + T + discard + cpp/numeric/random/subtract_with_carry_engine/discard + + (T... args) + + + T + subtract_with_carry_engine + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + + std::regex_error + cpp/regex/regex_error + + T + code + cpp/regex/regex_error/code + + (T... args) + + + T + regex_error + cpp/regex/regex_error/regex_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::is_constructible + cpp/types/is_constructible + + + std::piecewise_construct_t + cpp/utility/piecewise_construct_t + + + std::mutex + cpp/thread/mutex + + T + mutex + cpp/thread/mutex/mutex + + (T... args) + + + T + unlock + cpp/thread/mutex/unlock + + (T... args) + + + T + lock + cpp/thread/mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/mutex/try_lock + + (T... args) + + + T + native_handle + cpp/thread/mutex/native_handle + + (T... args) + + + + std::system_error + cpp/error/system_error + + T + code + cpp/error/system_error/code + + (T... args) + + + T + system_error + cpp/error/system_error/system_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wistringstream + cpp/io/basic_istringstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + wistringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::wistringstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wistringstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + std::wistringstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::wistringstream::event_callback + cpp/io/ios_base/event_callback + + + std::wistringstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wistringstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::is_floating_point + cpp/types/is_floating_point + + + std::ratio_not_equal + cpp/numeric/ratio/ratio_not_equal + + + std::ratio_multiply + cpp/numeric/ratio/ratio_multiply + + + std::result_of + cpp/types/result_of + + + std::is_fundamental + cpp/types/is_fundamental + + + std::ifstream + cpp/io/basic_ifstream + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + std::ifstream::event_callback + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + ifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::ifstream::failure + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + std::ifstream::sentry + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + + std::ifstream::event_callback + cpp/io/ios_base/event_callback + + + std::ifstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::ifstream::sentry + cpp/io/basic_istream/sentry + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::u32streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::length_error + cpp/error/length_error + + T + length_error + cpp/error/length_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::sub_match + cpp/regex/sub_match + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + sub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + + std::common_type + cpp/types/common_type + + + std::shared_timed_mutex + cpp/thread/shared_timed_mutex + + T + unlock + cpp/thread/shared_timed_mutex/unlock + + (T... args) + + + T + unlock_shared + cpp/thread/shared_timed_mutex/unlock_shared + + (T... args) + + + T + try_lock_until + cpp/thread/shared_timed_mutex/try_lock_until + + (T... args) + + + T + try_lock_for + cpp/thread/shared_timed_mutex/try_lock_for + + (T... args) + + + T + try_lock_shared_until + cpp/thread/shared_timed_mutex/try_lock_shared_until + + (T... args) + + + T + shared_timed_mutex + cpp/thread/shared_timed_mutex/shared_timed_mutex + + (T... args) + + + T + lock_shared + cpp/thread/shared_timed_mutex/lock_shared + + (T... args) + + + T + lock + cpp/thread/shared_timed_mutex/lock + + (T... args) + + + T + try_lock + cpp/thread/shared_timed_mutex/try_lock + + (T... args) + + + T + try_lock_shared + cpp/thread/shared_timed_mutex/try_lock_shared + + (T... args) + + + T + try_lock_shared_for + cpp/thread/shared_timed_mutex/try_lock_shared_for + + (T... args) + + + + std::array + cpp/container/array + + T + max_size + cpp/container/array/max_size + + (T... args) + + + T + rbegin + cpp/container/array/rbegin + + (T... args) + + + T + crend + cpp/container/array/rend + + (T... args) + + + T + crbegin + cpp/container/array/rbegin + + (T... args) + + + T + swap + cpp/container/array/swap + + (T... args) + + + T + data + cpp/container/array/data + + (T... args) + + + T + back + cpp/container/array/back + + (T... args) + + + T + end + cpp/container/array/end + + (T... args) + + + T + fill + cpp/container/array/fill + + (T... args) + + + T + empty + cpp/container/array/empty + + (T... args) + + + T + cend + cpp/container/array/end + + (T... args) + + + T + size + cpp/container/array/size + + (T... args) + + + T + cbegin + cpp/container/array/begin + + (T... args) + + + T + rend + cpp/container/array/rend + + (T... args) + + + T + front + cpp/container/array/front + + (T... args) + + + T + at + cpp/container/array/at + + (T... args) + + + T + operator[] + cpp/container/array/operator_at + + (T... args) + + + T + begin + cpp/container/array/begin + + (T... args) + + + + std::random_device + cpp/numeric/random/random_device + + T + operator() + cpp/numeric/random/random_device/operator() + + (T... args) + + + T + random_device + cpp/numeric/random/random_device/random_device + + (T... args) + + + T + entropy + cpp/numeric/random/random_device/entropy + + (T... args) + + + T + min + cpp/numeric/random/random_device/min + + (T... args) + + + T + max + cpp/numeric/random/random_device/max + + (T... args) + + + + std::default_random_engine + cpp/numeric/random + + + std::raw_storage_iterator + cpp/memory/raw_storage_iterator + + T + operator= + cpp/memory/raw_storage_iterator/operator= + + (T... args) + + + T + raw_storage_iterator + cpp/memory/raw_storage_iterator/raw_storage_iterator + + (T... args) + + + T + operator* + cpp/memory/raw_storage_iterator/operator* + + (T... args) + + + T + operator++ + cpp/memory/raw_storage_iterator/operator_arith + + (T... args) + + + + std::is_convertible + cpp/types/is_convertible + + + std::uint16_t + cpp/types/integer + + + std::is_array + cpp/types/is_array + + + std::mega + cpp/numeric/ratio/ratio + + + std::numpunct + cpp/locale/numpunct + + T + grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + do_decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + numpunct + cpp/locale/numpunct/numpunct + + (T... args) + + + T + do_falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct::string_type + + T + do_grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + truename + cpp/locale/numpunct/truefalsename + + (T... args) + + std::numpunct::char_type + + T + falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + ~numpunct + cpp/locale/numpunct/~numpunct + + (T... args) + + + T + decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + + std::numpunct::string_type + cpp/locale/numpunct + + + std::numpunct::char_type + cpp/locale/numpunct + + + std::money_put + cpp/locale/money_put + std::money_put::char_type + std::money_put::pattern + + T + do_put + cpp/locale/money_put/put + + (T... args) + + + T + money_put + cpp/locale/money_put/money_put + + (T... args) + + + T + ~money_put + cpp/locale/money_put/~money_put + + (T... args) + + + T + put + cpp/locale/money_put/put + + (T... args) + + std::money_put::string_type + std::money_put::iter_type + + + std::money_put::char_type + cpp/locale/money_put + + + std::money_put::pattern + cpp/locale/money_base + + + std::money_put::string_type + cpp/locale/money_put + + + std::money_put::iter_type + cpp/locale/money_put + + + std::new_handler + cpp/memory/new/new_handler + + + std::is_member_function_pointer + cpp/types/is_member_function_pointer + + + va_list + cpp/utility/variadic/va_list + + From a60f5043caee74c692cb550de71cdc9efb9dca3c Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 19 Jun 2023 08:30:32 +0200 Subject: [PATCH 020/176] [core][engine][gui][doc] Fix ref errors. --- src/Core/Asset/Camera.hpp | 6 ++++-- src/Engine/Rendering/RenderTechnique.hpp | 4 ++-- src/Gui/Viewer/Viewer.hpp | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Core/Asset/Camera.hpp b/src/Core/Asset/Camera.hpp index 6fb6b8cfcce..6aa9c782ec3 100644 --- a/src/Core/Asset/Camera.hpp +++ b/src/Core/Asset/Camera.hpp @@ -108,8 +108,10 @@ class RA_CORE_API Camera /// Set the Field Of View to 'fov' in the x (horizontal) direction. /// If you have an vertical field of view, you can convert it to horizontal as - /// Scalar fovx = 2_ra*std::atan( radiumCam->getAspect() * std::tan( cam.yfov / 2_ra ) ); - // if ( fovxDiv2 < 0_ra ) { fovxDiv2 = Ra::Core::Math::PiDiv2; } + /// \code{.cpp} + /// Scalar fovx = 2_ra * std::atan( radiumCam->getAspect() * std::tan( cam.yfov / 2_ra ) ); + /// if ( fovxDiv2 < 0_ra ) { fovxDiv2 = Ra::Core::Math::PiDiv2; } + /// \endcode /// \note Meaningless for orthogonal projection. /// \warning Trigger a rebuild of the projection matrix. inline void setFOV( Scalar fov ); diff --git a/src/Engine/Rendering/RenderTechnique.hpp b/src/Engine/Rendering/RenderTechnique.hpp index 06e41897f61..0b88c714d05 100644 --- a/src/Engine/Rendering/RenderTechnique.hpp +++ b/src/Engine/Rendering/RenderTechnique.hpp @@ -160,8 +160,8 @@ class RA_ENGINE_API RenderTechnique final inline void clearDirty( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ); /** - * Add properties (several #define in the shader) for the given pass - * @param props the properties list, only strings without the #define + * Add properties (several \#define in the shader) for the given pass + * @param props the properties list, only strings without the \#define * @param pass the pass. If left by default, all active passes will get the properties */ void addPassProperties( const std::list& props, diff --git a/src/Gui/Viewer/Viewer.hpp b/src/Gui/Viewer/Viewer.hpp index 3f8a5ff0cab..a294b2540f0 100644 --- a/src/Gui/Viewer/Viewer.hpp +++ b/src/Gui/Viewer/Viewer.hpp @@ -225,7 +225,7 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable /// Initialize openGL. Called on by the first "show" call to the main window. /// \warning This function is NOT reentrant, and may behave incorrectly - /// if called at the same time than #intializeRenderer + /// if called at the same time than initializeRenderer() /// @note Must be called only when a valid openGLContext is bound (see WindowsQt::initialize) bool initializeGL() override; From a47d76217cdb80b5844fba282920cf11686c573d Mon Sep 17 00:00:00 2001 From: David Vanderhaeghe Date: Fri, 30 Jun 2023 11:31:51 +0200 Subject: [PATCH 021/176] [doc] Fix typo in compilation.md Co-authored-by: Mathias Paulin --- doc/basics/compilation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index 1f21d7db195..6d340bcdeaa 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -35,7 +35,7 @@ Remember that compiling Radium in Debug mode needs to have the dependencies comp For command line, tested on Linux and mac OS, **for windows might need more configuration options**. -Follow the usual sequence, assuming you have build dependecies as explained [here](@ref builddep): +Follow the usual sequence, assuming you have build dependencies as explained [here](@ref builddep): ~~~{.bash} cmake -S Radium-Engine -B builds/radium-build-r -DCMAKE_BUILD_TYPE=Release -C installs/radium-external-r/radium-options.cmake From 40838441a2fa6fc6348221d5607ba43944b22669 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:00:30 +0000 Subject: [PATCH 022/176] Update version to 1.5.3 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 4cda8f19edc..8af85beb515 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.2 +1.5.3 From 35422ddb835fedfb629820184e77cdfb828b1649 Mon Sep 17 00:00:00 2001 From: vanderha Date: Wed, 14 Jun 2023 17:13:12 +0200 Subject: [PATCH 023/176] [tests] Add _ra suffix on literals. fix msvc warning --- tests/unittest/Engine/environmentmap.cpp | 70 ++++++++++++------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/tests/unittest/Engine/environmentmap.cpp b/tests/unittest/Engine/environmentmap.cpp index 096eb458366..dd7db75ade7 100644 --- a/tests/unittest/Engine/environmentmap.cpp +++ b/tests/unittest/Engine/environmentmap.cpp @@ -13,7 +13,7 @@ TEST_CASE( "Engine/Data/EnvironmentTexture/Equirectangular", REQUIRE( tex.getImageType() == EnvironmentTexture::EnvMapType::ENVMAP_LATLON ); REQUIRE( tex.isSkybox() ); - auto redShCoefs = tex.getShMatrix( 0 ); + auto& redShCoefs = tex.getShMatrix( 0 ); Ra::Core::Matrix4 refCoefs = ( Ra::Core::Matrix4() << -0.514535, 1.08883, -0.923322, @@ -44,23 +44,23 @@ TEST_CASE( "Engine/Data/EnvironmentTexture/PFM", REQUIRE( tex.getImageType() == EnvironmentTexture::EnvMapType::ENVMAP_PFM ); REQUIRE( !tex.isSkybox() ); - auto greenShCoefs = tex.getShMatrix( 1 ); - Ra::Core::Matrix4 refCoefs = ( Ra::Core::Matrix4() << -1.53315, - 0.036986, - 0.0020611, - 0.0118119, - 0.036986, - 1.53315, - 0.0824425, - 1.87627, - 0.0020611, - 0.0824425, - -0.524398, - 0.0441319, - 0.0118119, - 1.87627, - 0.0441319, - 2.90152 ) + auto& greenShCoefs = tex.getShMatrix( 1 ); + Ra::Core::Matrix4 refCoefs = ( Ra::Core::Matrix4() << -1.53315_ra, + 0.036986_ra, + 0.0020611_ra, + 0.0118119_ra, + 0.036986_ra, + 1.53315_ra, + 0.0824425_ra, + 1.87627_ra, + 0.0020611_ra, + 0.0824425_ra, + -0.524398_ra, + 0.0441319_ra, + 0.0118119_ra, + 1.87627_ra, + 0.0441319_ra, + 2.90152_ra ) .finished(); auto diff = greenShCoefs - refCoefs; REQUIRE( diff.norm() <= 1e-3 ); @@ -76,23 +76,23 @@ TEST_CASE( "Engine/Data/EnvironmentTexture/CubeMap", REQUIRE( tex.getImageType() == EnvironmentTexture::EnvMapType::ENVMAP_CUBE ); REQUIRE( !tex.isSkybox() ); - auto blueShCoefs = tex.getShMatrix( 2 ); - Ra::Core::Matrix4 refCoefs = ( Ra::Core::Matrix4() << -0.0150307, - -0.0389637, - -0.0589842, - -0.0352475, - -0.0389637, - 0.0150307, - -0.014953, - 0.30222, - -0.0589842, - -0.014953, - -0.0621052, - -0.0119704, - -0.0352475, - 0.30222, - -0.0119704, - 0.585438 ) + auto& blueShCoefs = tex.getShMatrix( 2 ); + Ra::Core::Matrix4 refCoefs = ( Ra::Core::Matrix4() << -0.0150307_ra, + -0.0389637_ra, + -0.0589842_ra, + -0.0352475_ra, + -0.0389637_ra, + 0.0150307_ra, + -0.014953_ra, + 0.30222_ra, + -0.0589842_ra, + -0.014953_ra, + -0.0621052_ra, + -0.0119704_ra, + -0.0352475_ra, + 0.30222_ra, + -0.0119704_ra, + 0.585438_ra ) .finished(); auto diff = blueShCoefs - refCoefs; REQUIRE( diff.norm() <= 1e-3 ); From b1750d5ae3400bcdb80d8c9f5d495f700134101e Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 10 Jul 2023 18:30:11 +0200 Subject: [PATCH 024/176] [core] Skeleton: Fix switch warning. --- src/Core/Animation/Skeleton.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Core/Animation/Skeleton.cpp b/src/Core/Animation/Skeleton.cpp index c4b81ff3159..99d48372604 100644 --- a/src/Core/Animation/Skeleton.cpp +++ b/src/Core/Animation/Skeleton.cpp @@ -95,6 +95,9 @@ void Skeleton::setTransform( const uint i, const Transform& T, const SpaceType M // update bone transform and also children's transform setLocalTransform( i, m_pose[i] * m_modelSpace[i].inverse() * modelT ); } break; + default: + // nothing can be done, error + break; } } From e722f9ba601b38d162d568ff8f4ac82a03ce78bd Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 10 Jul 2023 17:17:22 +0200 Subject: [PATCH 025/176] [core] VariableSet: Fix warning shadow variable in lambda. --- src/Core/Containers/VariableSet.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Core/Containers/VariableSet.hpp b/src/Core/Containers/VariableSet.hpp index 885470a8301..d016137be2a 100644 --- a/src/Core/Containers/VariableSet.hpp +++ b/src/Core/Containers/VariableSet.hpp @@ -722,8 +722,8 @@ auto VariableSet::addVariableType() -> Utils::optional*> { -> std::pair> { auto id = getVariableVisitTypeIndex(); if ( v.accept( id ) ) { - auto& storage = c.getVariableStorage(); - auto coll = std::ref( storage ); + auto& visitedStorage = c.getVariableStorage(); + auto coll = std::ref( visitedStorage ); return { true, [coll]( DynamicVisitorBase& visitor, std::any&& userParam ) { for ( auto&& t : coll.get() ) { visitor( { std::ref( t ) }, From 58f3c9307da00d5b9d1945def74a95eb14b4741a Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 10 Jul 2023 17:19:08 +0200 Subject: [PATCH 026/176] [tests] CMakeList: Remove empty custom target, add tests dependency. --- tests/integration/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/integration/CMakeLists.txt b/tests/integration/CMakeLists.txt index a2d59d32116..b0ba54f915b 100644 --- a/tests/integration/CMakeLists.txt +++ b/tests/integration/CMakeLists.txt @@ -79,7 +79,6 @@ if(LIBXML2_XMLLINT_EXECUTABLE AND SED_EXECUTABLE) -DCXX_FILESYSTEM_NAMESPACE=${CXX_FILESYSTEM_NAMESPACE} ) - add_custom_target(integration_${INTEGRATION_TEST}_create_ref) add_test( NAME integration_${INTEGRATION_TEST}_save_output WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${INTEGRATION_TEST}/ @@ -103,6 +102,11 @@ if(LIBXML2_XMLLINT_EXECUTABLE AND SED_EXECUTABLE) ${CMAKE_CURRENT_BINARY_DIR}/keymapping-valid-in-lint.xml ) + set_tests_properties( + integration_${INTEGRATION_TEST}_compare_to_ref + PROPERTIES DEPENDS integration_${INTEGRATION_TEST}_save_output + ) + add_dependencies(integration integration_${INTEGRATION_TEST}) else() message( From a2035eb8f528c50f3e871f1dfc10cc7d3a5fc957 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 19:27:18 +0000 Subject: [PATCH 027/176] Update version to 1.5.4 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 8af85beb515..94fe62c2740 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.3 +1.5.4 From f28bf8bc7020211727eef30c429fbd46a3a04d85 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 08:58:57 +0200 Subject: [PATCH 028/176] [doc] Split windows and command line instructions. Merge dependencies and radium build. --- doc/basics.md | 66 +++++++++++++- doc/basics/commandline.md | 45 +++++++++ doc/basics/compilation.md | 182 +------------------------------------ doc/basics/dependencies.md | 99 +------------------- doc/basics/vs.md | 155 +++++++++++++++++++++++++++++++ 5 files changed, 268 insertions(+), 279 deletions(-) create mode 100644 doc/basics/commandline.md create mode 100644 doc/basics/vs.md diff --git a/doc/basics.md b/doc/basics.md index 202e8150078..370f5705446 100644 --- a/doc/basics.md +++ b/doc/basics.md @@ -3,7 +3,65 @@ This part of the documentation describes how to compile Radium and use it in your own project. -TL;DR; command line version. +## Supported system and compilers + +The following platforms and tool chains have been tested and should work : + +* CMake 3.18+ +* *Windows* : IDEs: Visual Studio 2019, 2022 (2017 is not supported due to embedded cmake version), QtCreator. Command Line: cmake+ninja+MSVC(2017, 2019, 2022) . +* *Mac OSX* : gcc 10 or higher, Apple clang, llvm clang 11 or higher +* *Linux* : gcc 8 or higher, clang + +See also our Continuous Integration system at . + +## System wide dependencies + +Radium expects the following dependencies to be available during compilation. + +* [Engine] + * OpenGL 4.1+ / GLSL 410+ +* [Gui] + * Qt Core/Widgets/OpenGL 5.15 or 6.2+ +* [Headless] One, or both of + * EGL + * glfw 3.3 + +## External dependencies (included with radium) + +These dependencies are shipped with radium, fetching external git sources. + + +* [IO] + * assimp: https://github.com/assimp/assimp.git, [tags/v5.0.1], + * with options `-DASSIMP_BUILD_ASSIMP_TOOLS=False -DASSIMP_BUILD_SAMPLES=False -DASSIMP_BUILD_TESTS=False -DIGNORE_GIT_HASH=True -DASSIMP_NO_EXPORT=True` + * tinyply: https://github.com/ddiakopoulos/tinyply.git, [tags/2.3.2], + * with options `-DSHARED_LIB=TRUE` +* [Gui] + * PowerSlider: https://github.com/dlyr/PowerSlider.git, [origin/master], + * with options `-DBUILD_DESIGNER_PLUGIN=OFF -DBUILD_EXAMPLE_APP=OFF` +* [Engine] + * glm: https://github.com/g-truc/glm.git, [cc98465e3508535ba8c7f6208df934c156a018dc], + * with options `-DGLM_TEST_ENABLE=OFF -DBUILD_STATIC_LIBS=OFF -DCMAKE_INSTALL_PREFIX=` + * glbinding: https://github.com/cginternals/glbinding.git, [758d33b4d4f1815d46d91fcf4ca4914d837267fa], + * with options `-DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_DOCS=OFF -DOPTION_BUILD_TOOLS=OFF -DOPTION_BUILD_EXAMPLES=OFF -DOPTION_BUILD_OWN_KHR_HEADERS=ON -DCMAKE_INSTALL_PREFIX=` + * globjects: https://github.com/cginternals/globjects.git, [4363356ae2ef5c936ab078fba48d1ea507c295c4], + * with options `-DOPTION_BUILD_DOCS=OFF -DOPTION_BUILD_EXAMPLES=OFF -DOPTION_USE_EIGEN=ON -Dglbinding_DIR=${glbinding_DIR} -Dglm_DIR=${glm_DIR} -DEigen3_DIR=${Eigen3_DIR} -DCMAKE_INSTALL_PREFIX=` + * stb: https://github.com/nothings/stb.git, [1034f5e5c4809ea0a7f4387e0cd37c5184de3cdd], + * with options `None` + * tinyEXR: https://github.com/MathiasPaulin/tinyexr.git, [origin/radium], + * with options `-DBUILD_INSTALLABLE_LIB=ON` +* [Core] + * Eigen3: https://gitlab.com/libeigen/eigen.git, [tags/3.4.0], + * with options `-DEIGEN_TEST_CXX11=OFF -DBUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF` + * OpenMesh: https://www.graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh.git, [tags/OpenMesh-8.1], + * with options `-DBUILD_APPS=OFF` + * cpplocate: https://github.com/cginternals/cpplocate.git, [tags/v2.2.0], + * with options `-DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_DOCS=OFF -DCMAKE_INSTALL_PREFIX=` + * nlohmann_json: https://github.com/nlohmann/json.git, [tags/v3.10.5], + * with options `-DJSON_Install=ON -DJSON_BuildTests=OFF` + + +## TL;DR; command line version ```bash git clone --recurse-submodules https://github.com/STORM-IRIT/Radium-Engine.git @@ -30,7 +88,9 @@ default Radium-Engine install prefix is `Radium-Engine/Bundle-${CMAKE_CXX_COMPIL More details and other systems information (including visual studio setup) are in the following pages, to be read in order. -* \subpage dependenciesmanagement : Fetch and compile dependencies -* \subpage basicsCompileRadium : Compile and install Radium +* \subpage basicsCompileRadiumVs +* \subpage basicsCompileRadiumCommand * \subpage basicsRadiumSubmodule : Link to Radium using cmake package +* \subpage depencenciesmanagement +* \subpage basicsCompileRadiumDetails * \subpage basicsTroubleshooting : Handle usual errors diff --git a/doc/basics/commandline.md b/doc/basics/commandline.md new file mode 100644 index 00000000000..018c87c2133 --- /dev/null +++ b/doc/basics/commandline.md @@ -0,0 +1,45 @@ +\page basicsCompileCommand Commandline Compilation Instructions (Linux, macos...) + +# Building and installing Radium dependencies once for all {#builddep} + +We provide a standalone cmake project (`Radium-Engine/external/CMakeLists.txt`) to compile and install the Radium dependencies at any location. + +## Configuration and compilation of the dependencies + +For command line, tested on Linux and mac OS, **for windows might need more configuration options**. + +External dependencies have to be installed outside Radium-Engine source tree. + +~~~{.bash} +# from wherever you want outside radium source tree +# in release +cmake -S Radium-Engine/external -B builds/radium-external-build-r -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=installs/radium-external-r +cmake --build builds/radium-external-build-r --config Release --parallel + +# in debug +cmake -S Radium-Engine/external -B builds/radium-external-build-d -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=installs/radium-external-d +cmake --build builds/radium-external-build-d --config Debug --parallel +~~~ + +If not given on the command line, the installation directory is set by default to `Radium-Engine/{CMAKE_CURRENT_BINARY_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}` for `CMAKE_BUILD_TYPE=Release`, and `Radium-Engine/{CMAKE_CURRENT_BINARY_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}-${CMAKE_BUILD_TYPE}` for any other `CMAKE_BUILD_TYPE`. + +## Command line instructions (linux, macos, windows) + +For command line, tested on Linux and mac OS, **for windows might need more configuration options**. + +Follow the usual sequence, assuming you have build dependencies as explained [here](@ref builddep): + +~~~{.bash} +cmake -S Radium-Engine -B builds/radium-build-r -DCMAKE_BUILD_TYPE=Release -C installs/radium-external-r/radium-options.cmake +cmake --build builds/radium-build-r --config Release --parallel -DQt5_DIR=path/to/qt5 +cmake --install builds/radium-build-r +~~~ + +If Qt is installed system wide (likely on linux), `-DQt5_DIR` is not needed. + +\note Qt6 is also supported. To enable it, replace `-DQt5_DIR=path/to/qt5` by `-DQt6_DIR=path/to/qt6`. To ease maintenance accross Qt versions, you should also configure the path to Qt cmake package using `-DCMAKE_PREFIX_PATH=path/to/qtX` where `X` is the Qt version you want to use. + +If both Qt5 and Qt6 are installed system wide, Qt6 is the default, `-DQT_DEFAULT_MAJOR_VERSION=5` allow select Qt5. During client application cmake setup `find_package(Radium COMPONENTS ... Gui ...)` will check Qt version consistency. + +\note Running `cmake --install` is recommended as it will copy all the radium related library in the same place, +generate the cmake packages and bundle applications with their dependencies (on macos and windows). diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index 6d340bcdeaa..017fe9fbba7 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -1,26 +1,8 @@ -\page basicsCompileRadium Radium Compilation instructions +\page basicsCompileRadiumDetails Radium Compilation Details [TOC] -# Supported compiler and platforms - -The following platforms and tool chains have been tested and should work : - -* *Windows* : IDEs: Visual Studio 2019, 2022 (2017 is not supported due to embedded cmake version), QtCreator. Command Line: cmake+ninja+MSVC(2017, 2019, 2022) . -* *Mac OSX* : gcc 10 or higher, Apple clang, llvm clang 11 or higher -* *Linux* : gcc 8 or higher, clang - -See also our Continuous Integration system at . - -Minimal requirements - -* OpenGL 4.1+ / GLSL 410+ -* CMake 3.18+ -* Qt5 (minimal version 5.15) or Qt6 (experimental) - # Build instructions -If not already done, follow instructions at \ref dependenciesmanagement. - Radium follows a standard cmake structure, so any IDE supporting cmake should be able to configure and build it. **Out-of source builds are mandatory**. @@ -28,169 +10,9 @@ Several targets allowing to build or install only a specific part of Radium-Engi The standard targets `all` and `install` are also available as a shortcut to build all the configured components and to install the main components. \note We strongly recommend to have dedicated build and install directories for each build type (Release, Debug). -Remember that compiling Radium in Debug mode needs to have the dependencies compiled and installed in Debug mode +To compile Radium in Debug mode, the dependencies must be compiled and installed in Debug mode (due to a limitation in assimp). -## Command line instructions (linux, macos, windows) - -For command line, tested on Linux and mac OS, **for windows might need more configuration options**. - -Follow the usual sequence, assuming you have build dependencies as explained [here](@ref builddep): - -~~~{.bash} -cmake -S Radium-Engine -B builds/radium-build-r -DCMAKE_BUILD_TYPE=Release -C installs/radium-external-r/radium-options.cmake -cmake --build builds/radium-build-r --config Release --parallel -DQt5_DIR=path/to/qt5 -cmake --install builds/radium-build-r -~~~ - -If Qt is installed system wide (likely on linux), `-DQt5_DIR` is not needed. - -\note Qt6 is also supported. To enable it, replace `-DQt5_DIR=path/to/qt5` by `-DQt6_DIR=path/to/qt6`. To ease maintenance accross Qt versions, you should also configure the path to Qt cmake package using `-DCMAKE_PREFIX_PATH=path/to/qtX` where `X` is the Qt version you want to use. - -If both Qt5 and Qt6 are installed system wide, Qt6 is the default, `-DQT_DEFAULT_MAJOR_VERSION=5` allow select Qt5. During client application cmake setup `find_package(Radium COMPONENTS ... Gui ...)` will check Qt version consistency. - -\note Running `cmake --install` is recommended as it will copy all the radium related library in the same place, -generate the cmake packages and bundle applications with their dependencies (on macos and windows). - -## Integration with Visual Studio (Microsoft Windows) - -### Supported versions of MSVC - -Radium requires MSVC 2019 or superior, as it relies on: - -* C++11/C++14/C++17 features such as `constexpr`, -* cmake built-in support -* Ninja built-in support - -Our Continuous Integration systems uses Microsoft Compiler 2017, in combination with cmake and ninja. -Using Visual Studio 2017 with cmake support is however not possible: VS is shipped with cmake: 3.12, while Radium requires cmake 3.13 at least. We recommend to use Visual Studio 2019 in that case. -Qt 5.15+ is distributed with binaries precompiled with MSVC 2019, but Qt binaries precompiled with MSVC2017 does not break the build. - -### Qt Dependency - -Use precompiled libraries for VS 2017 or 2019 - 64 bits (minimal version required: 5.14). -You will probably have to manually point cmake to the Qt folder. - -### Getting started with Visual Studio - -Open the Radium folder (via "File > Open > Folder..." or `devenv.exe `). -VS will run cmake, generate the target builds (Debug and Release by default). -Other build types can be added by editing `CMakeSettings.json`. - -Configure cmake option (see official doc [here](https://docs.microsoft.com/cpp/build/customize-cmake-settings)) -You have to provide path to Qt installation, glfw installation (for headless support) and external dependencies configuration. -In order to execute Radium demos from the buildtree (installing them takes time due to qt deployement procedure), -you also need to define environment variables that point to the various dlls used by Radium components that will be used on the per-target `launch.vs.json` configuration file. -Note that it is recommended to compile or install glfw as a static library, the example below assume that. - -For instance, with directory structure for externals as defined in \ref dependenciesmanagement, the configuration is - -~~~{.json} -{ - "environments": [ - { - "QtDir": "C:/Qt/6.3.0/msvc2019_64/", - "glfwDir" : "C:/path/to/glfwInstallation", - "ExternalInstallDir": "${projectDir}/../radium-externals/install/${name}/bin;${projectDir}/../radium-externals/install/${name}/cpplocate;${projectDir}/../radium-externals/install/${name}/globjects;${projectDir}/../radium-externals/install/${name}/glbinding", - } - ], - "configurations": [ - { - "name": "x64-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}/out/build/${name}", - "installRoot": "${projectDir}/out/install/${name}", - "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=\"${env.QtDir};${env.glfwDir}/lib/cmake\" -C ${projectDir}/../radium-externals/install/${name}/radium-options.cmake", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "environments": [ - { - "environment": "RadiumDllsLocations", - "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/cpplocate;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", - "QtDllsDIR": "${env.QtDir}/bin", - "RadiumDlls": "${buildRoot}/src/Core;${buildRoot}/src/Engine;${buildRoot}/src/Gui;${buildRoot}/src/Headless;${buildRoot}/src/IO;${buildRoot}/src/PluginBase" - } - ] - }, - { - "name": "x64-Release", - "generator": "Ninja", - "configurationType": "Release", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}/out/build/${name}", - "installRoot": "${projectDir}/out/install/${name}", - "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=\"${env.QtDir};${env.glfwDir}/lib/cmake\" -C ${projectDir}/../radium-externals/install/${name}/radium-options.cmake", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "environments": [ - { - "environment": "RadiumDllsLocations", - "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/cpplocate;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", - "QtDllsDIR": "${env.QtDir}/bin", - "RadiumDlls": "${buildRoot}/src/Core;${buildRoot}/src/Engine;${buildRoot}/src/Gui;${buildRoot}/src/Headless;${buildRoot}/src/IO;${buildRoot}/src/PluginBase" - } - ] - } - ] -} -~~~ - -\note It is strongly encouraged to use `/` separators in your path, instead of `\\`. See - -\note When compiling the dependencies you may hit the max path length fixed by Microsoft OS (260 characters). To fix this, you might need to change the path of your build dir to shorten it, or to change the limit on your system, see: - -### Compilation - -Right click on `CMakeList.txt > build > all`. - -### Execution of a demo app - -To execute a demo application, select in the `Startup Item` list the target you want to execute. -For instance, `DrawPrimitives.exe (examples/...)`. -Then, select in the menu `/Debug and Launch Settings for DrawPrimmitives` and modify the `launch.vs.json` file that is opened so that it contains the following. - -~~~{.json} -{ - "version": "0.2.1", - "defaults": {}, - "configurations": [ - { - "type": "default", - "project": "CMakeLists.txt", - "projectTarget": "DrawPrimitives.exe (examples\\DrawPrimitives\\DrawPrimitives.exe)", - "name": "DrawPrimitives.exe (examples\\DrawPrimitives\\DrawPrimitives.exe)", - "inheritEnvironments": [ "RadiumDllsLocations" ], - "env": { - "PATH": "${env.QtDllsDIR};${env.ExternalDllsDIR};${env.RadiumDlls};${env.PATH}" - } - } - ] -} -~~~ - -For any target you want to execute, the same should be done, i.e. adding the following to the target configuration - -~~~{.json} - "inheritEnvironments": [ "RadiumDllsLocations" ], - "env": { - "PATH": "${env.QtDllsDIR};${env.ExternalDllsDIR};${env.RadiumDlls};${env.PATH}" - } -~~~ - -If you plan to execute the 'unittest.exe' target, you should also add the following configuration for the working directory - -~~~{.json} - "currentDir": "${projectDir}/tests/unittest" -~~~ - -### installation - -To install, you need to run any installation target, e.g. `Engine.dll (install)` or to select the menu `/` - -# Configuration details - ## Folder structure Radium-Engine relies on CMake build-chain on all supported platforms. diff --git a/doc/basics/dependencies.md b/doc/basics/dependencies.md index e163edb7a7a..bfda42d2764 100644 --- a/doc/basics/dependencies.md +++ b/doc/basics/dependencies.md @@ -1,15 +1,6 @@ -\page dependenciesmanagement Radium Dependencies Management +\page dependenciesmanagement Radium Dependencies Management Details [TOC] -Radium relies on several external libraries to load files or to represent some data: - -* [Core] Eigen, OpenMesh, nlohmann_json -* [Engine] glm, globjects, glbindings, tinyEXR -* [IO] Assimp -* [Gui] Qt Core, Qt Widgets and Qt OpenGL v5.5+ (5.14 at least, Qt6 support is experimental), PowerSlider -* [doc] Doxygen-awesome-css -* stb_image - We developed a series of tools to fetch and compile these dependencies easily, except for Qt, which needs to be installed and passed to cmake through the variables `CMAKE_PREFIX_PATH` or `Qt5_DIR` `Qt6_DIR` (see documentation at ). @@ -19,73 +10,16 @@ Qt, which needs to be installed and passed to cmake through the variables `CMAKE We offer two different systems to handle external dependencies (see details and how-to in the following sections): 1. **[recommended]** external build: the user compiles and installs once for all the dependencies using a dedicated - cmake project. Then, Radium cmake project is configured to link with installed dependencies. + cmake project. Then, Radium cmake project is configured to link with installed dependencies, as described in compilation instructions. 2. manual management: users can also provide their own version of the dependencies through cmake packages. \warning Dependencies need to be built with the same build type (ie. Release, Debug) than Radium. -# Building and installing Radium dependencies once for all {#builddep} - -We provide a standalone cmake project (`Radium-Engine/external/CMakeLists.txt`) to compile and install the Radium dependencies at any location. - -## Configuration and compilation of the dependencies - -For command line, tested on Linux and mac OS, **for windows might need more configuration options**. - -External dependencies have to be installed outside Radium-Engine source tree. - -~~~{.bash} -# from wherever you want outside radium source tree -# in release -cmake -S Radium-Engine/external -B builds/radium-external-build-r -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=installs/radium-external-r -cmake --build builds/radium-external-build-r --config Release --parallel - -# in debug -cmake -S Radium-Engine/external -B builds/radium-external-build-d -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=installs/radium-external-d -cmake --build builds/radium-external-build-d --config Debug --parallel -~~~ - -If not given on the command line, the installation directory is set by default to `Radium-Engine/{CMAKE_CURRENT_BINARY_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}` for `CMAKE_BUILD_TYPE=Release`, and `Radium-Engine/{CMAKE_CURRENT_BINARY_DIR}/Bundle-${CMAKE_CXX_COMPILER_ID}-${CMAKE_BUILD_TYPE}` for any other `CMAKE_BUILD_TYPE`. - -### Visual Studio configuration - -Open the external folder in VS using "Open a local folder" and edit cmake settings or `CMakeSettings.json`. External build and install have to be outside Radium-Engine source directory. For instance - -~~~{.json} -{ - "configurations": [ - { - "name": "x64-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}/../../radium-externals/build/${name}", - "installRoot": "${projectDir}/../../radium-externals/install/${name}", - "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=C:/Qt/6.3.0/msvc2019_64", - "buildCommandArgs": "", - "ctestCommandArgs": "" - }, - { - "name": "x64-Release", - "generator": "Ninja", - "configurationType": "Release", - "buildRoot": "${projectDir}/../../radium-externals/build/${name}", - "installRoot": "${projectDir}/../../radium-externals/install/${name}", - "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=C:/Qt/6.3.0/msvc2019_64", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x64_x64" ], - "variables": [] - } - ] -} -~~~ - ## Configuration of Radium To compile Radium-Engine, you have to indicate where cmake can find each dependency. -For convenience, dependencies install procedure create a configuration file, you can use this configuration with the `-C` option of cmake. +For convenience, dependencies install procedure create a configuration file, to be used with the `-C` option of cmake. The cmake config file `/path/to/installs/radium-external-r/radium-options.cmake` contains, depending on your dependency configuration: ~~~{.cmake} @@ -137,33 +71,6 @@ Currently supported (note that these paths must refer to the installation direct * `cpplocate_DIR` * `nlohmann_json_DIR` -Radium is compiled and tested with specific version of dependencies, as given in the external's folder CMakeLists.txt and state here for the record - -* assimp: https://github.com/assimp/assimp.git, [tags/v5.0.1], - * with options `-DASSIMP_BUILD_ASSIMP_TOOLS=False -DASSIMP_BUILD_SAMPLES=False -DASSIMP_BUILD_TESTS=False -DIGNORE_GIT_HASH=True -DASSIMP_NO_EXPORT=True` -* tinyply: https://github.com/ddiakopoulos/tinyply.git, [tags/2.3.2], - * with options `-DSHARED_LIB=TRUE` -* PowerSlider: https://github.com/dlyr/PowerSlider.git, [origin/master], - * with options `-DBUILD_DESIGNER_PLUGIN=OFF -DBUILD_EXAMPLE_APP=OFF` -* glm: https://github.com/g-truc/glm.git, [cc98465e3508535ba8c7f6208df934c156a018dc], - * with options `-DGLM_TEST_ENABLE=OFF -DBUILD_STATIC_LIBS=OFF -DCMAKE_INSTALL_PREFIX=` -* glbinding: https://github.com/cginternals/glbinding.git, [758d33b4d4f1815d46d91fcf4ca4914d837267fa], - * with options `-DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_DOCS=OFF -DOPTION_BUILD_TOOLS=OFF -DOPTION_BUILD_EXAMPLES=OFF -DOPTION_BUILD_OWN_KHR_HEADERS=ON -DCMAKE_INSTALL_PREFIX=` -* globjects: https://github.com/cginternals/globjects.git, [4363356ae2ef5c936ab078fba48d1ea507c295c4], - * with options `-DOPTION_BUILD_DOCS=OFF -DOPTION_BUILD_EXAMPLES=OFF -DOPTION_USE_EIGEN=ON -Dglbinding_DIR=${glbinding_DIR} -Dglm_DIR=${glm_DIR} -DEigen3_DIR=${Eigen3_DIR} -DCMAKE_INSTALL_PREFIX=` -* stb: https://github.com/nothings/stb.git, [1034f5e5c4809ea0a7f4387e0cd37c5184de3cdd], - * with options `None` -* tinyEXR: https://github.com/MathiasPaulin/tinyexr.git, [origin/radium], - * with options `-DBUILD_INSTALLABLE_LIB=ON` -* Eigen3: https://gitlab.com/libeigen/eigen.git, [tags/3.4.0], - * with options `-DEIGEN_TEST_CXX11=OFF -DBUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF` -* OpenMesh: https://www.graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh.git, [tags/OpenMesh-8.1], - * with options `-DBUILD_APPS=OFF` -* cpplocate: https://github.com/cginternals/cpplocate.git, [tags/v2.2.0], - * with options `-DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_DOCS=OFF` -* nlohmann_json: https://github.com/nlohmann/json.git, [tags/v3.10.5], - * with options `-DJSON_Install=ON -DJSON_BuildTests=OFF` - \warning You have to take care of the consistency of the external dependencies, e.g. it's not possible to use your version of globjects without providing your version of eigen, otherwise you will have mixed version in Radium. diff --git a/doc/basics/vs.md b/doc/basics/vs.md new file mode 100644 index 00000000000..27f07b45152 --- /dev/null +++ b/doc/basics/vs.md @@ -0,0 +1,155 @@ +\page basicsCompileVs Microsoft Visual Studio Compilation Instructions + +# Build external dependencies + +Open the external folder in VS using "Open a local folder" and edit cmake settings or `CMakeSettings.json`. External build and install have to be outside Radium-Engine source directory. For instance + +~~~{.json} +{ + "configurations": [ + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ "msvc_x64_x64" ], + "buildRoot": "${projectDir}/../../radium-externals/build/${name}", + "installRoot": "${projectDir}/../../radium-externals/install/${name}", + "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=C:/Qt/6.3.0/msvc2019_64", + "buildCommandArgs": "", + "ctestCommandArgs": "" + }, + { + "name": "x64-Release", + "generator": "Ninja", + "configurationType": "Release", + "buildRoot": "${projectDir}/../../radium-externals/build/${name}", + "installRoot": "${projectDir}/../../radium-externals/install/${name}", + "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=C:/Qt/6.3.0/msvc2019_64", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "msvc_x64_x64" ], + "variables": [] + } + ] +} +~~~ + +Build and install the project. + +# Build Radium + +Open the Radium folder (via "File > Open > Folder..." or `devenv.exe `). +VS will run cmake, generate the target builds (Debug and Release by default). +Other build types can be added by editing `CMakeSettings.json`. + +Configure cmake option (see official doc [here](https://docs.microsoft.com/cpp/build/customize-cmake-settings)) +You have to provide path to Qt installation, glfw installation (for headless support) and external dependencies configuration. +In order to execute Radium demos from the buildtree (installing them takes time due to qt deployement procedure), +you also need to define environment variables that point to the various dlls used by Radium components that will be used on the per-target `launch.vs.json` configuration file. +Note that it is recommended to compile or install glfw as a static library, the example below assume that. + +For instance, with directory structure for externals as defined in \ref dependenciesmanagement, the configuration is + +~~~{.json} +{ + "environments": [ + { + "QtDir": "C:/Qt/6.3.0/msvc2019_64/", + "glfwDir" : "C:/path/to/glfwInstallation", + "ExternalInstallDir": "${projectDir}/../radium-externals/install/${name}/bin;${projectDir}/../radium-externals/install/${name}/cpplocate;${projectDir}/../radium-externals/install/${name}/globjects;${projectDir}/../radium-externals/install/${name}/glbinding", + } + ], + "configurations": [ + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ "msvc_x64_x64" ], + "buildRoot": "${projectDir}/out/build/${name}", + "installRoot": "${projectDir}/out/install/${name}", + "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=\"${env.QtDir};${env.glfwDir}/lib/cmake\" -C ${projectDir}/../radium-externals/install/${name}/radium-options.cmake", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "environments": [ + { + "environment": "RadiumDllsLocations", + "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/cpplocate;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", + "QtDllsDIR": "${env.QtDir}/bin", + "RadiumDlls": "${buildRoot}/src/Core;${buildRoot}/src/Engine;${buildRoot}/src/Gui;${buildRoot}/src/Headless;${buildRoot}/src/IO;${buildRoot}/src/PluginBase" + } + ] + }, + { + "name": "x64-Release", + "generator": "Ninja", + "configurationType": "Release", + "inheritEnvironments": [ "msvc_x64_x64" ], + "buildRoot": "${projectDir}/out/build/${name}", + "installRoot": "${projectDir}/out/install/${name}", + "cmakeCommandArgs": "-DCMAKE_PREFIX_PATH=\"${env.QtDir};${env.glfwDir}/lib/cmake\" -C ${projectDir}/../radium-externals/install/${name}/radium-options.cmake", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "environments": [ + { + "environment": "RadiumDllsLocations", + "ExternalDllsDIR": "${env.ExternalInstallDir}/${name}/bin;${env.ExternalInstallDir}/${name}/cpplocate;${env.ExternalInstallDir}/${name}/glbinding;${env.ExternalInstallDir}/${name}/globjects", + "QtDllsDIR": "${env.QtDir}/bin", + "RadiumDlls": "${buildRoot}/src/Core;${buildRoot}/src/Engine;${buildRoot}/src/Gui;${buildRoot}/src/Headless;${buildRoot}/src/IO;${buildRoot}/src/PluginBase" + } + ] + } + ] +} +~~~ + +\note It is strongly encouraged to use `/` separators in your path, instead of `\\`. See + +\note When compiling the dependencies you may hit the max path length fixed by Microsoft OS (260 characters). To fix this, you might need to change the path of your build dir to shorten it, or to change the limit on your system, see: + +## Compilation + +Right click on `CMakeList.txt > build > all`. + +## Execution of a demo app + +To execute a demo application, select in the `Startup Item` list the target you want to execute. +For instance, `DrawPrimitives.exe (examples/...)`. +Then, select in the menu `/Debug and Launch Settings for DrawPrimmitives` and modify the `launch.vs.json` file that is opened so that it contains the following. + +~~~{.json} +{ + "version": "0.2.1", + "defaults": {}, + "configurations": [ + { + "type": "default", + "project": "CMakeLists.txt", + "projectTarget": "DrawPrimitives.exe (examples\\DrawPrimitives\\DrawPrimitives.exe)", + "name": "DrawPrimitives.exe (examples\\DrawPrimitives\\DrawPrimitives.exe)", + "inheritEnvironments": [ "RadiumDllsLocations" ], + "env": { + "PATH": "${env.QtDllsDIR};${env.ExternalDllsDIR};${env.RadiumDlls};${env.PATH}" + } + } + ] +} +~~~ + +For any target you want to execute, the same should be done, i.e. adding the following to the target configuration + +~~~{.json} + "inheritEnvironments": [ "RadiumDllsLocations" ], + "env": { + "PATH": "${env.QtDllsDIR};${env.ExternalDllsDIR};${env.RadiumDlls};${env.PATH}" + } +~~~ + +If you plan to execute the 'unittest.exe' target, you should also add the following configuration for the working directory + +~~~{.json} + "currentDir": "${projectDir}/tests/unittest" +~~~ + +## installation + +To install, you need to run any installation target, e.g. `Engine.dll (install)` or to select the menu `/` From b9c86d0719b6a7fefb94e7dff87a0a984dfeb59c Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:00:09 +0200 Subject: [PATCH 029/176] [scripts] Update list_dep, by module. --- scripts/list_dep.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/scripts/list_dep.py b/scripts/list_dep.py index a416cb854e1..263e731e273 100755 --- a/scripts/list_dep.py +++ b/scripts/list_dep.py @@ -15,6 +15,7 @@ option = re.compile(r'[^\)](-D\S*)') optionfilter = re.compile(r'indent') +modules={} dep = {} debug = False @@ -59,11 +60,20 @@ match3 = regex.search(cmake_add_text, match3.end(1)) start = match0.end(1) match0 = full.search(filetext, start) + if len(dep) >0 : modules[filename.parts[0]] = dep + dep={} -for key in dep: - print(f" * `{key}_DIR`") +for module in {'Core', 'Engine', 'IO', 'Gui', 'Headless'}: + if module in modules: + dep = modules[module] + for key in dep: + print(f"* `{key}_DIR`") print("\n\nRadium is compiled and tested with specific version of dependencies, as given in the external's folder CMakeLists.txt and state here for the record\n\n") -for key in dep: - print(f" * {key}: {dep[key]['git']}, [{dep[key]['tag']}],\n * with options `{dep[key]['option'] if 'option' in dep[key] else None }`") +for module in {'Core', 'Engine', 'IO', 'Gui', 'Headless'}: + if module in modules: + dep = modules[module] + print(f"* [{module}]") + for key in dep: + print(f" * {key}: {dep[key]['git']}, [{dep[key]['tag']}],\n * with options `{dep[key]['option'] if 'option' in dep[key] else None }`") From ab154ce4dc0c7830688fb6b0d924eb7287616a2e Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:02:25 +0200 Subject: [PATCH 030/176] [doc] merge dependencies details with radium detail. --- doc/basics/compilation.md | 76 +++++++++++++++++++++++++++++++++++++- doc/basics/dependencies.md | 76 -------------------------------------- 2 files changed, 75 insertions(+), 77 deletions(-) diff --git a/doc/basics/compilation.md b/doc/basics/compilation.md index 017fe9fbba7..db8deaa5dde 100644 --- a/doc/basics/compilation.md +++ b/doc/basics/compilation.md @@ -1,7 +1,81 @@ \page basicsCompileRadiumDetails Radium Compilation Details [TOC] -# Build instructions +# Dependencies management systems + +We developed a series of tools to fetch and compile these dependencies easily, except for +Qt, which needs to be installed and passed to cmake through the variables `CMAKE_PREFIX_PATH` or `Qt5_DIR` `Qt6_DIR` +(see documentation at ). + +We offer two different systems to handle external dependencies (see details and how-to in the following sections): + + 1. **[recommended]** external build: the user compiles and installs once for all the dependencies using a dedicated + cmake project. Then, Radium cmake project is configured to link with installed dependencies, as described in compilation instructions. + 2. manual management: users can also provide their own version of the dependencies through cmake packages. + +\warning Dependencies need to be built with the same build type (ie. Release, Debug) than Radium. + +## Configuration of Radium + +To compile Radium-Engine, you have to indicate where cmake can find each dependency. + +For convenience, dependencies install procedure create a configuration file, to be used with the `-C` option of cmake. +The cmake config file `/path/to/installs/radium-external-r/radium-options.cmake` contains, depending on your dependency configuration: + +~~~{.cmake} +set(Eigen3_DIR "/path/to/external/install/share/eigen3/cmake/" CACHE PATH "My Eigen3 location") +set(OpenMesh_DIR "/path/to/external/install/share/OpenMesh/cmake/" CACHE PATH "My OpenMesh location") +set(cpplocate_DIR "/path/to/external/install/share/cpplocate/" CACHE PATH "My cpplocate location") +set(nlohmann_json_DIR "/path/to/external/install/lib/cmake/nlohmann_json/" CACHE PATH "My nlohmann_json location") +set(glm_DIR "/path/to/external/install/glm/lib/cmake/glm/" CACHE PATH "My glm location") +set(glbinding_DIR "/path/to/external/install/glbinding/" CACHE PATH "My glbinding location") +set(globjects_DIR "/path/to/external/install/globjects/" CACHE PATH "My globjects location") +set(stb_DIR "/path/to/external/install/include/stb/" CACHE PATH "My stb location") +set(stb_INCLUDE_DIR "/path/to/external/install/include/" CACHE PATH "My stb_INCLUDE location") +set(tinyEXR_DIR "/path/to/external/install/share/tinyEXR/cmake/" CACHE PATH "My tinyEXR location") +set(assimp_DIR "/path/to/external/install/lib/cmake/assimp-5.0/" CACHE PATH "My assimp location") +set(tinyply_DIR "/path/to/external/install/lib/cmake/tinyply/" CACHE PATH "My tinyply location") +set(PowerSlider_DIR "/path/to/external/install/lib/cmake/PowerSlider/" CACHE PATH "My PowerSlider location") +set(RADIUM_IO_ASSIMP ON CACHE BOOL "Radium uses assimp io") +set(RADIUM_IO_TINYPLY ON CACHE BOOL "Radium uses tinyply io") +~~~ + +When configuring Radium cmake project, don't forget to add this file by calling `cmake -C /path/to/installs/radium-external-r/radium-options.cmake ...` + +You can also provide these variables as cmake command line argument: + +~~~{.bash} +cmake \ +-DEigen3_DIR /path/to/external/install/share/eigen3/cmake/ +... and so on ... +~~~ + +## User provided external dependencies + +You can use your own installation of a local dependency instead of letting cmake fetch and compile it. +To this end, just provide the corresponding '*_DIR' to cmake at configuration time as show before (with '-D' option, configuration file or toolchain file, please refer to cmake documentation). + +Currently supported (note that these paths must refer to the installation directory of the corresponding library): + + +* `assimp_DIR` +* `tinyply_DIR` +* `PowerSlider_DIR` +* `glm_DIR` +* `glbinding_DIR` +* `globjects_DIR` +* `stb_DIR` +* `tinyEXR_DIR` +* `Eigen3_DIR` +* `OpenMesh_DIR` +* `cpplocate_DIR` +* `nlohmann_json_DIR` + + + +\warning You have to take care of the consistency of the external dependencies, e.g. it's not possible to use your version of globjects without providing your version of eigen, otherwise you will have mixed version in Radium. + +# Radium Build Details Radium follows a standard cmake structure, so any IDE supporting cmake should be able to configure and build it. **Out-of source builds are mandatory**. diff --git a/doc/basics/dependencies.md b/doc/basics/dependencies.md index bfda42d2764..e69de29bb2d 100644 --- a/doc/basics/dependencies.md +++ b/doc/basics/dependencies.md @@ -1,76 +0,0 @@ -\page dependenciesmanagement Radium Dependencies Management Details -[TOC] - -We developed a series of tools to fetch and compile these dependencies easily, except for -Qt, which needs to be installed and passed to cmake through the variables `CMAKE_PREFIX_PATH` or `Qt5_DIR` `Qt6_DIR` -(see documentation at ). - -# Dependencies management systems - -We offer two different systems to handle external dependencies (see details and how-to in the following sections): - - 1. **[recommended]** external build: the user compiles and installs once for all the dependencies using a dedicated - cmake project. Then, Radium cmake project is configured to link with installed dependencies, as described in compilation instructions. - 2. manual management: users can also provide their own version of the dependencies through cmake packages. - -\warning Dependencies need to be built with the same build type (ie. Release, Debug) than Radium. - -## Configuration of Radium - -To compile Radium-Engine, you have to indicate where cmake can find each dependency. - -For convenience, dependencies install procedure create a configuration file, to be used with the `-C` option of cmake. -The cmake config file `/path/to/installs/radium-external-r/radium-options.cmake` contains, depending on your dependency configuration: - -~~~{.cmake} -set(Eigen3_DIR "/path/to/external/install/share/eigen3/cmake/" CACHE PATH "My Eigen3 location") -set(OpenMesh_DIR "/path/to/external/install/share/OpenMesh/cmake/" CACHE PATH "My OpenMesh location") -set(cpplocate_DIR "/path/to/external/install/share/cpplocate/" CACHE PATH "My cpplocate location") -set(nlohmann_json_DIR "/path/to/external/install/lib/cmake/nlohmann_json/" CACHE PATH "My nlohmann_json location") -set(glm_DIR "/path/to/external/install/glm/lib/cmake/glm/" CACHE PATH "My glm location") -set(glbinding_DIR "/path/to/external/install/glbinding/" CACHE PATH "My glbinding location") -set(globjects_DIR "/path/to/external/install/globjects/" CACHE PATH "My globjects location") -set(stb_DIR "/path/to/external/install/include/stb/" CACHE PATH "My stb location") -set(stb_INCLUDE_DIR "/path/to/external/install/include/" CACHE PATH "My stb_INCLUDE location") -set(tinyEXR_DIR "/path/to/external/install/share/tinyEXR/cmake/" CACHE PATH "My tinyEXR location") -set(assimp_DIR "/path/to/external/install/lib/cmake/assimp-5.0/" CACHE PATH "My assimp location") -set(tinyply_DIR "/path/to/external/install/lib/cmake/tinyply/" CACHE PATH "My tinyply location") -set(PowerSlider_DIR "/path/to/external/install/lib/cmake/PowerSlider/" CACHE PATH "My PowerSlider location") -set(RADIUM_IO_ASSIMP ON CACHE BOOL "Radium uses assimp io") -set(RADIUM_IO_TINYPLY ON CACHE BOOL "Radium uses tinyply io") -~~~ - -When configuring Radium cmake project, don't forget to add this file by calling `cmake -C /path/to/installs/radium-external-r/radium-options.cmake ...` - -You can also provide these variables as cmake command line argument: - -~~~{.bash} -cmake \ --DEigen3_DIR /path/to/external/install/share/eigen3/cmake/ -... and so on ... -~~~ - -# User provided external dependencies - -You can use your own installation of a local dependency instead of letting cmake fetch and compile it. -To this end, just provide the corresponding '*_DIR' to cmake at configuration time as show before (with '-D' option, configuration file or toolchain file, please refer to cmake documentation). - -Currently supported (note that these paths must refer to the installation directory of the corresponding library): - - -* `assimp_DIR` -* `tinyply_DIR` -* `PowerSlider_DIR` -* `glm_DIR` -* `glbinding_DIR` -* `globjects_DIR` -* `stb_DIR` -* `tinyEXR_DIR` -* `Eigen3_DIR` -* `OpenMesh_DIR` -* `cpplocate_DIR` -* `nlohmann_json_DIR` - - - -\warning You have to take care of the consistency of the external dependencies, e.g. it's not possible to use your version of globjects without providing your version of eigen, otherwise you will have mixed version in Radium. From a2037405a8ae31775e2550dd7257d63903a42dc8 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:04:01 +0200 Subject: [PATCH 031/176] [doc] Remove empty, rename compilation -> details. --- doc/basics/dependencies.md | 0 doc/basics/{compilation.md => details.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/basics/dependencies.md rename doc/basics/{compilation.md => details.md} (100%) diff --git a/doc/basics/dependencies.md b/doc/basics/dependencies.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/doc/basics/compilation.md b/doc/basics/details.md similarity index 100% rename from doc/basics/compilation.md rename to doc/basics/details.md From ec498c3c3b2f398e58b89bdba3879eaad37c28d2 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:11:31 +0200 Subject: [PATCH 032/176] [doc] Fix bad link, improve reading. --- doc/basics.md | 5 ++--- doc/basics/vs.md | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/basics.md b/doc/basics.md index 370f5705446..524e49fc523 100644 --- a/doc/basics.md +++ b/doc/basics.md @@ -88,9 +88,8 @@ default Radium-Engine install prefix is `Radium-Engine/Bundle-${CMAKE_CXX_COMPIL More details and other systems information (including visual studio setup) are in the following pages, to be read in order. -* \subpage basicsCompileRadiumVs -* \subpage basicsCompileRadiumCommand +* \subpage basicsCompileVs +* \subpage basicsCompileCommand * \subpage basicsRadiumSubmodule : Link to Radium using cmake package -* \subpage depencenciesmanagement * \subpage basicsCompileRadiumDetails * \subpage basicsTroubleshooting : Handle usual errors diff --git a/doc/basics/vs.md b/doc/basics/vs.md index 27f07b45152..64028da76b7 100644 --- a/doc/basics/vs.md +++ b/doc/basics/vs.md @@ -34,7 +34,7 @@ Open the external folder in VS using "Open a local folder" and edit cmake settin } ~~~ -Build and install the project. +Build the project, this will install the external dependencies. # Build Radium From 6b0c1a72b1f1b3656e306cf2a96e8276d997fd44 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:19:54 +0200 Subject: [PATCH 033/176] [doc] Remove warn undoc. --- doc/CMakeLists.txt | 1 + doc/basics/vs.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 91584614515..dfb22029112 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -166,6 +166,7 @@ if(DOXYGEN_FOUND) set(DOXYGEN_DOT_GRAPH_MAX_NODES "60") set(DOXYGEN_ALIASES [[complexity="@par Complexity:^^"]]) set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) + set(DOXYGEN_WARN_IF_UNDOCUMENTED "NO") # resolve std to cpp ref # https://upload.cppreference.com/mwiki/images/f/f8/cppreference-doxygen-web.tag.xml set(DOXYGEN_TAGFILES diff --git a/doc/basics/vs.md b/doc/basics/vs.md index 64028da76b7..2b1e15c556b 100644 --- a/doc/basics/vs.md +++ b/doc/basics/vs.md @@ -48,7 +48,7 @@ In order to execute Radium demos from the buildtree (installing them takes time you also need to define environment variables that point to the various dlls used by Radium components that will be used on the per-target `launch.vs.json` configuration file. Note that it is recommended to compile or install glfw as a static library, the example below assume that. -For instance, with directory structure for externals as defined in \ref dependenciesmanagement, the configuration is +For instance, with directory structure for externals as defined above the configuration is ~~~{.json} { From 8791afa11dbdb9160de5055b29807e3222e6e413 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:28:18 +0200 Subject: [PATCH 034/176] [doc] Reorder option in CMakeLists. --- doc/CMakeLists.txt | 90 +++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index dfb22029112..f5ad9a709d5 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -99,34 +99,61 @@ if(DOXYGEN_FOUND) "${CMAKE_CURRENT_SOURCE_DIR}/LICENSES.md" ) - set(DOXYGEN_PROJECT_NAME "Radium Engine") - set(DOXYGEN_PROJECT_NUMBER "${RADIUM_PROJECT_NUMBER}") - set(DOXYGEN_PROJECT_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/images/radium-logo.png") - set(DOXYGEN_EXTENSION_MAPPING "dox=C++" "inl=C++") + set(DOXYGEN_ALIASES [[complexity="@par Complexity:^^"]]) set(DOXYGEN_BUILTIN_STL_SUPPORT "YES") - set(DOXYGEN_EXTRACT_ALL "NO") - set(DOXYGEN_EXTRACT_STATIC "YES") - set(DOXYGEN_SHOW_GROUPED_MEMB_INC "YES") - set(DOXYGEN_FORCE_LOCAL_INCLUDES "NO") - set(DOXYGEN_RECURSIVE "YES") - set(DOXYGEN_STRIP_FROM_INC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../src") + set(DOXYGEN_CALL_GRAPH "YES") + set(DOXYGEN_COLS_IN_ALPHA_INDEX "2") + set(DOXYGEN_DOCSET_BUNDLE_ID "com.storm-irit.RadiumEngine") + set(DOXYGEN_DOCSET_PUBLISHER_NAME "IRIT") + set(DOXYGEN_DOT_GRAPH_MAX_NODES "60") + set(DOXYGEN_DOT_IMAGE_FORMAT "svg") + set(DOXYGEN_EXAMPLE_RECURSIVE "YES") set(DOXYGEN_EXAMPLE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../tests" "${CMAKE_CURRENT_SOURCE_DIR}/../examples/" "${CMAKE_CURRENT_SOURCE_DIR}/../src" ) set(DOXYGEN_EXAMPLE_PATTERNS "*.cpp" "*.h" "*.cu") - set(DOXYGEN_EXAMPLE_RECURSIVE "YES") set(DOXYGEN_EXCLUDE_PATTERNS "*/src/Headless/CLI/*") - set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${RADIUM_MAIN_DOC_FILE}") - set(DOXYGEN_SOURCE_BROWSER "YES") - set(DOXYGEN_REFERENCES_LINK_SOURCE "NO") - set(DOXYGEN_COLS_IN_ALPHA_INDEX "2") - set(DOXYGEN_HTML_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/header.html") + set(DOXYGEN_EXPAND_ONLY_PREDEF "YES") + set(DOXYGEN_EXTENSION_MAPPING "dox=C++" "inl=C++") + set(DOXYGEN_EXTRACT_ALL "NO") + set(DOXYGEN_EXTRACT_STATIC "YES") + set(DOXYGEN_EXT_LINKS_IN_WINDOW "YES") + set(DOXYGEN_FORCE_LOCAL_INCLUDES "NO") + set(DOXYGEN_GENERATE_TREEVIEW "YES") + set(DOXYGEN_HAVE_DOT "YES") + set(DOXYGEN_HIDE_UNDOC_CLASSES "YES") + set(DOXYGEN_HIDE_UNDOC_RELATIONS "NO") + set(DOXYGEN_HTML_COLORSTYLE_GAMMA "160") set(DOXYGEN_HTML_COLORSTYLE_HUE "40") set(DOXYGEN_HTML_COLORSTYLE_SAT "50") - set(DOXYGEN_HTML_COLORSTYLE_GAMMA "160") - set(DOXYGEN_HTML_TIMESTAMP "YES") set(DOXYGEN_HTML_DYNAMIC_SECTIONS "YES") + set(DOXYGEN_HTML_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/header.html") + set(DOXYGEN_HTML_TIMESTAMP "YES") + set(DOXYGEN_IMAGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/images") + set(DOXYGEN_INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../src") + set(DOXYGEN_INTERACTIVE_SVG "YES") + set(DOXYGEN_MACRO_EXPANSION "YES") + set(DOXYGEN_MATHJAX_EXTENSIONS "TeX/AMSsymbols" "TeX/AMSmath") + set(DOXYGEN_MATHJAX_RELPATH "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/") + set(DOXYGEN_PREDEFINED "PARSED_BY_DOXYGEN MULTIARCH= ") + set(DOXYGEN_PROJECT_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/images/radium-logo.png") + set(DOXYGEN_PROJECT_NAME "Radium Engine") + set(DOXYGEN_PROJECT_NUMBER "${RADIUM_PROJECT_NUMBER}") + set(DOXYGEN_RECURSIVE "YES") + set(DOXYGEN_REFERENCES_LINK_SOURCE "NO") + set(DOXYGEN_SHOW_GROUPED_MEMB_INC "YES") + set(DOXYGEN_SOURCE_BROWSER "YES") + set(DOXYGEN_STRIP_FROM_INC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../src") + set(DOXYGEN_TEMPLATE_RELATIONS "YES") + set(DOXYGEN_TOC_INCLUDE_HEADINGS "2") + set(DOXYGEN_UML_LIMIT_NUM_FIELDS "50") + set(DOXYGEN_UML_LOOK "YES") + set(DOXYGEN_USE_MATHJAX "YES") + set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${RADIUM_MAIN_DOC_FILE}") + set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) + set(DOXYGEN_WARN_IF_UNDOCUMENTED "NO") + if(USE_AWESOME_CSS) set(DOXYGEN_HTML_EXTRA_STYLESHEET "${RADIUM_DOXYGEN_AWESOME_CSS}" @@ -140,33 +167,6 @@ if(DOXYGEN_FOUND) "${RADIUM_DOXYGEN_AWESOME_CSS_ROOT}/doxygen-awesome-paragraph-link.js" ) endif() - set(DOXYGEN_HIDE_UNDOC_CLASSES "YES") - - set(DOXYGEN_DOCSET_BUNDLE_ID "com.storm-irit.RadiumEngine") - set(DOXYGEN_DOCSET_PUBLISHER_NAME "IRIT") - set(DOXYGEN_GENERATE_TREEVIEW "YES") - set(DOXYGEN_EXT_LINKS_IN_WINDOW "YES") - set(DOXYGEN_USE_MATHJAX "YES") - set(DOXYGEN_MATHJAX_RELPATH "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/") - set(DOXYGEN_MATHJAX_EXTENSIONS "TeX/AMSsymbols" "TeX/AMSmath") - set(DOXYGEN_MACRO_EXPANSION "YES") - set(DOXYGEN_EXPAND_ONLY_PREDEF "YES") - set(DOXYGEN_INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../src") - set(DOXYGEN_PREDEFINED "PARSED_BY_DOXYGEN MULTIARCH= ") - set(DOXYGEN_HIDE_UNDOC_RELATIONS "NO") - set(DOXYGEN_HAVE_DOT "YES") - set(DOXYGEN_UML_LOOK "YES") - set(DOXYGEN_UML_LIMIT_NUM_FIELDS "50") - set(DOXYGEN_TEMPLATE_RELATIONS "YES") - set(DOXYGEN_CALL_GRAPH "YES") - set(DOXYGEN_DOT_IMAGE_FORMAT "svg") - set(DOXYGEN_INTERACTIVE_SVG "YES") - set(DOXYGEN_TOC_INCLUDE_HEADINGS "2") - set(DOXYGEN_IMAGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/images") - set(DOXYGEN_DOT_GRAPH_MAX_NODES "60") - set(DOXYGEN_ALIASES [[complexity="@par Complexity:^^"]]) - set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) - set(DOXYGEN_WARN_IF_UNDOCUMENTED "NO") # resolve std to cpp ref # https://upload.cppreference.com/mwiki/images/f/f8/cppreference-doxygen-web.tag.xml set(DOXYGEN_TAGFILES From 8ba8c36c57de83e17abb988da91fa48cad68f952 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:32:56 +0200 Subject: [PATCH 035/176] [core][engine] namespace doc. --- src/Core/Types.hpp | 3 +++ src/Engine/RadiumEngine.hpp | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/Core/Types.hpp b/src/Core/Types.hpp index aa93d01380e..afbc50f3ea9 100644 --- a/src/Core/Types.hpp +++ b/src/Core/Types.hpp @@ -9,7 +9,10 @@ #include #include +/// Radium Namespaces prefix namespace Ra { + +/// This namespace contains everything "low level", related to data, datastuctures, and computation. namespace Core { /// @name diff --git a/src/Engine/RadiumEngine.hpp b/src/Engine/RadiumEngine.hpp index e75648563d3..d801f1a2753 100644 --- a/src/Engine/RadiumEngine.hpp +++ b/src/Engine/RadiumEngine.hpp @@ -23,7 +23,10 @@ class FileData; } // namespace Asset } // namespace Core +/// This namespace contains engine and ECS related stuff namespace Engine { + +/// Scene and how to communicate namespace Scene { class System; class Entity; @@ -32,12 +35,14 @@ class EntityManager; class SignalManager; } // namespace Scene +/// (GPU) Data representation, along with manager namespace Data { class ShaderProgramManager; class Displayable; class TextureManager; } // namespace Data +/// Rendering engines. namespace Rendering { class RenderObjectManager; } From c68ae4231b274379e6ff9091ed642ee840c81633 Mon Sep 17 00:00:00 2001 From: dlyr Date: Sun, 2 Jul 2023 09:55:24 +0200 Subject: [PATCH 036/176] [core][engine][gui][headless] Fix some doc errors. --- src/Core/Containers/Grid.hpp | 19 +++++-------------- src/Core/Geometry/TopologicalMesh.hpp | 3 ++- src/Core/Utils/Attribs.hpp | 1 - src/Engine/Scene/SystemDisplay.hpp | 1 + src/Gui/TreeModel/TreeModel.hpp | 4 +++- src/Headless/OpenGLContext/OpenGLContext.hpp | 7 +++++-- 6 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/Core/Containers/Grid.hpp b/src/Core/Containers/Grid.hpp index e9bb79eb756..bb594e33e2d 100644 --- a/src/Core/Containers/Grid.hpp +++ b/src/Core/Containers/Grid.hpp @@ -171,9 +171,12 @@ class Grid // /// Construct a grid of a given size and fill it with the given value. - Grid( const IdxVector& size = IdxVector::Zero(), const T& val = T() ); + Grid( const IdxVector& size = IdxVector::Zero(), const T& val = T() ) : + m_size( size ), m_data( size.prod(), val ) {} + /// Construct a grid of a given size with values in ()-major format - Grid( const IdxVector& size, const T* values ); + Grid( const IdxVector& size, const T* values ) : + m_size( size ), m_data( size.prod(), values ) {} /// Copy constructor and assignment operator. Grid( const Grid& other ) = default; @@ -265,18 +268,6 @@ inline uint idxVectorToLinear( const typename Grid::IdxVector& vecIdx, } } // namespace -// -// Constructors -// - -template -Grid::Grid( const typename Grid::IdxVector& size, const T& val ) : - m_size( size ), m_data( size.prod(), val ) {} - -template -Grid::Grid( const typename Grid::IdxVector& size, const T* values ) : - m_size( size ), m_data( size.prod(), values ) {} -// // Vector size and data management. // diff --git a/src/Core/Geometry/TopologicalMesh.hpp b/src/Core/Geometry/TopologicalMesh.hpp index 4fe37635716..efc1f4d1a98 100644 --- a/src/Core/Geometry/TopologicalMesh.hpp +++ b/src/Core/Geometry/TopologicalMesh.hpp @@ -234,8 +234,9 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT * \brief Unlock the handle data * \tparam T * \param h - * \return */ template void unlock( const AttribHandle& h ); diff --git a/src/Engine/Scene/SystemDisplay.hpp b/src/Engine/Scene/SystemDisplay.hpp index d0e86e8321a..ca23f0d084b 100644 --- a/src/Engine/Scene/SystemDisplay.hpp +++ b/src/Engine/Scene/SystemDisplay.hpp @@ -2,6 +2,7 @@ #include +/// \file SystemDisplay.hpp /// This file's main purpose is to declare a set of macros to allow drawing /// primitives from everywhere in the code, for debug purposes. /// These macros can be completely disabled by #defining the following constant : diff --git a/src/Gui/TreeModel/TreeModel.hpp b/src/Gui/TreeModel/TreeModel.hpp index 2846baf184c..987cc1894e1 100644 --- a/src/Gui/TreeModel/TreeModel.hpp +++ b/src/Gui/TreeModel/TreeModel.hpp @@ -8,6 +8,7 @@ #include #include +/// \file TreeModel.hpp /// This file contains a basic implementation of a tree model object with QAbstractItemModel /// See http://doc.qt.io/qt-5/qtwidgets-itemviews-simpletreemodel-example.html /// This could have been a template with the object type, but QObjects cannot be @@ -22,7 +23,8 @@ namespace Ra { namespace Gui { /** - * Base class for element of the tree representation. + * \brief Base class for element of the tree representation. + * * It just maintains a tree structure leaving the data storage to derived classes. */ class RA_GUI_API TreeItem diff --git a/src/Headless/OpenGLContext/OpenGLContext.hpp b/src/Headless/OpenGLContext/OpenGLContext.hpp index c735c198ae3..5d981a3b268 100644 --- a/src/Headless/OpenGLContext/OpenGLContext.hpp +++ b/src/Headless/OpenGLContext/OpenGLContext.hpp @@ -38,8 +38,11 @@ class HEADLESS_API OpenGLContext * be compatible with. If there is no compatible context, the application will stop * \param size */ - explicit OpenGLContext( const glbinding::Version& /*glVersion*/ = { 4, 1 }, - const std::array& /*size*/ = { { 1, 1 } } ) {}; + explicit OpenGLContext( const glbinding::Version& glVersion = { 4, 1 }, + const std::array& size = { { 1, 1 } } ) { + CORE_UNUSED( glVersion ); + CORE_UNUSED( size ); + }; /// destructor virtual ~OpenGLContext() = default; /// make the context active From 34e81bdabc54ecce425bcecf11661115aecf3252 Mon Sep 17 00:00:00 2001 From: David Vanderhaeghe Date: Tue, 4 Jul 2023 11:39:03 +0200 Subject: [PATCH 037/176] [doc] clarify demo run in vs.md Co-authored-by: Mathias Paulin --- doc/basics/vs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/basics/vs.md b/doc/basics/vs.md index 2b1e15c556b..f69469e57fd 100644 --- a/doc/basics/vs.md +++ b/doc/basics/vs.md @@ -112,7 +112,7 @@ Right click on `CMakeList.txt > build > all`. ## Execution of a demo app -To execute a demo application, select in the `Startup Item` list the target you want to execute. +To execute a demo application from the buildtree, i.e. without installing Radium, select in the `Startup Item` list the target you want to execute. For instance, `DrawPrimitives.exe (examples/...)`. Then, select in the menu `/Debug and Launch Settings for DrawPrimmitives` and modify the `launch.vs.json` file that is opened so that it contains the following. From 8c56733cc7305443a07f34253382d231845a10d6 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 11:54:57 +0000 Subject: [PATCH 038/176] Update version to 1.5.5 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 94fe62c2740..9075be49515 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.4 +1.5.5 From a1ec36b7c7cfad94d0ad062b7f03d9523d2efcef Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 10 Jul 2023 17:23:11 +0200 Subject: [PATCH 039/176] [cmake] Update CodeCoverage.cmake --- cmake/CodeCoverage.cmake | 219 ++++++++++++++++++++++----------------- 1 file changed, 122 insertions(+), 97 deletions(-) diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index 8eb847ee0c0..325314dbf46 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -79,6 +79,14 @@ # 2021-05-10, Martin Stump # - Check if the generator is multi-config before warning about non-Debug builds # +# 2022-02-22, Marko Wehle +# - Change gcovr output from -o for --xml and --html output respectively. +# This will allow for Multiple Output Formats at the same time by making use of GCOVR_ADDITIONAL_ARGS, e.g. GCOVR_ADDITIONAL_ARGS "--txt". +# +# 2022-09-28, Sebastian Mueller +# - fix append_coverage_compiler_flags_to_target to correctly add flags +# - replace "-fprofile-arcs -ftest-coverage" with "--coverage" (equivalent) +# # USAGE: # # 1. Copy this file into your cmake modules path. @@ -87,8 +95,10 @@ # using a CMake option() to enable it just optionally): # include(CodeCoverage) # -# 3. Append necessary compiler flags: +# 3. Append necessary compiler flags for all supported source files: # append_coverage_compiler_flags() +# Or for specific target: +# append_coverage_compiler_flags_to_target(YOUR_TARGET_NAME) # # 3.a (OPTIONAL) Set appropriate optimization flags, e.g. -O0, -O1 or -Og # @@ -141,24 +151,21 @@ if(NOT GCOV_PATH) message(FATAL_ERROR "gcov not found! Aborting...") endif() # NOT GCOV_PATH +# Check supported compiler (Clang, GNU and Flang) get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) -list(GET LANGUAGES 0 LANG) - -if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") - if("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3) - message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...") - endif() -elseif(NOT CMAKE_COMPILER_IS_GNUCXX) - if("${CMAKE_Fortran_COMPILER_ID}" MATCHES "[Ff]lang") - # Do nothing; exit conditional without error if true - elseif("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU") - # Do nothing; exit conditional without error if true - else() - message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...") +foreach(LANG ${LANGUAGES}) + if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") + if("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3) + message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...") + endif() + elseif(NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "GNU" AND NOT "${CMAKE_${LANG}_COMPILER_ID}" + MATCHES "(LLVM)?[Ff]lang" + ) + message(FATAL_ERROR "Compiler is not GNU or Flang! Aborting...") endif() -endif() +endforeach() -set(COVERAGE_COMPILER_FLAGS "-g -fprofile-arcs -ftest-coverage" CACHE INTERNAL "") +set(COVERAGE_COMPILER_FLAGS "-g --coverage" CACHE INTERNAL "") if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") include(CheckCXXCompilerFlag) check_cxx_compiler_flag(-fprofile-abs-path HAVE_fprofile_abs_path) @@ -199,23 +206,16 @@ endif() # Defines a target for running and collection code coverage information Builds dependencies, runs # the given executable and outputs reports. NOTE! The executable should always have a ZERO as exit # code otherwise the coverage generation will not complete. -# ~~~ -# setup_target_for_coverage_lcov( -# NAME testrunner_coverage # New target name -# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES testrunner # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative -# # to BASE_DIRECTORY, with CMake 3.4+) -# NO_DEMANGLE # Don't demangle C++ symbols -# # even if c++filt is found -# ) -# ~~~ - +# +# setup_target_for_coverage_lcov( NAME testrunner_coverage # New target name +# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR DEPENDENCIES +# testrunner # Dependencies to build first BASE_DIRECTORY "../" # Base directory +# for report # (defaults to PROJECT_SOURCE_DIR) EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to +# exclude (can be relative # to BASE_DIRECTORY, with CMake 3.4+) NO_DEMANGLE # Don't demangle C++ +# symbols # even if c++filt is found ) function(setup_target_for_coverage_lcov) - set(options NO_DEMANGLE) + set(options NO_DEMANGLE SONARQUBE) set(oneValueArgs BASE_DIRECTORY NAME) set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS) cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) @@ -239,7 +239,7 @@ function(setup_target_for_coverage_lcov) set(LCOV_EXCLUDES "") foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_LCOV_EXCLUDES}) if(CMAKE_VERSION VERSION_GREATER 3.4) - # get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) endif() list(APPEND LCOV_EXCLUDES "${EXCLUDE}") endforeach() @@ -256,8 +256,8 @@ function(setup_target_for_coverage_lcov) ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} - --directory - ${CMAKE_BINARY_DIR} + -directory + . -b ${BASEDIR} --zerocounters @@ -271,10 +271,11 @@ function(setup_target_for_coverage_lcov) -c -i -d - ${CMAKE_BINARY_DIR} + . + -b + ${BASEDIR} -o ${Coverage_NAME}.base - # -b ${BASEDIR} ) # Run tests set(LCOV_EXEC_TESTS_CMD ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}) @@ -285,7 +286,7 @@ function(setup_target_for_coverage_lcov) --gcov-tool ${GCOV_PATH} --directory - ${CMAKE_BINARY_DIR} + . -b ${BASEDIR} --capture @@ -321,8 +322,18 @@ function(setup_target_for_coverage_lcov) set(LCOV_GEN_HTML_CMD ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} -o ${Coverage_NAME} ${Coverage_NAME}.info ) - - message(STATUS "---- ${CODE_COVERAGE_VERBOSE}") + if(${Coverage_SONARQUBE}) + # Generate SonarQube output + set(GCOVR_XML_CMD + ${GCOVR_PATH} --sonarqube ${Coverage_NAME}_sonarqube.xml -r ${BASEDIR} + ${GCOVR_ADDITIONAL_ARGS} ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} + ) + set(GCOVR_XML_CMD_COMMAND COMMAND ${GCOVR_XML_CMD}) + set(GCOVR_XML_CMD_BYPRODUCTS ${Coverage_NAME}_sonarqube.xml) + set(GCOVR_XML_CMD_COMMENT + COMMENT "SonarQube code coverage info report saved in ${Coverage_NAME}_sonarqube.xml." + ) + endif() if(CODE_COVERAGE_VERBOSE) message(STATUS "Executed command report") @@ -353,6 +364,12 @@ function(setup_target_for_coverage_lcov) message(STATUS "Command to generate lcov HTML output: ") string(REPLACE ";" " " LCOV_GEN_HTML_CMD_SPACED "${LCOV_GEN_HTML_CMD}") message(STATUS "${LCOV_GEN_HTML_CMD_SPACED}") + + if(${Coverage_SONARQUBE}) + message(STATUS "Command to generate SonarQube XML output: ") + string(REPLACE ";" " " GCOVR_XML_CMD_SPACED "${GCOVR_XML_CMD}") + message(STATUS "${GCOVR_XML_CMD_SPACED}") + endif() endif() # Setup target @@ -364,10 +381,10 @@ function(setup_target_for_coverage_lcov) COMMAND ${LCOV_CAPTURE_CMD} COMMAND ${LCOV_BASELINE_COUNT_CMD} COMMAND ${LCOV_FILTER_CMD} - COMMAND ${LCOV_GEN_HTML_CMD} + COMMAND ${LCOV_GEN_HTML_CMD} ${GCOVR_XML_CMD_COMMAND} # Set output files as GENERATED (will be removed on 'make clean') BYPRODUCTS ${Coverage_NAME}.base ${Coverage_NAME}.capture ${Coverage_NAME}.total - ${Coverage_NAME}.info ${Coverage_NAME}/index.html + ${Coverage_NAME}.info ${GCOVR_XML_CMD_BYPRODUCTS} ${Coverage_NAME}/index.html WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS ${Coverage_DEPENDENCIES} VERBATIM # Protect arguments to commands @@ -379,6 +396,7 @@ function(setup_target_for_coverage_lcov) add_custom_command( TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info." + ${GCOVR_XML_CMD_COMMENT} ) # Show info where to find the report @@ -393,19 +411,12 @@ endfunction() # setup_target_for_coverage_lcov # the given executable and outputs reports. NOTE! The executable should always have a ZERO as exit # code otherwise the coverage generation will not complete. # -# ~~~ -# setup_target_for_coverage_gcovr_xml( -# NAME ctest_coverage # New target name -# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES executable_target # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative -# # to BASE_DIRECTORY, with CMake 3.4+) -# ) -# ~~~ -# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the GCVOR -# command. +# setup_target_for_coverage_gcovr_xml( NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR DEPENDENCIES +# executable_target # Dependencies to build first BASE_DIRECTORY "../" # +# Base directory for report # (defaults to PROJECT_SOURCE_DIR) EXCLUDE "src/dir1/*" "src/dir2/*" # +# Patterns to exclude (can be relative # to BASE_DIRECTORY, with CMake 3.4+) ) The user can set the +# variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the GCVOR command. function(setup_target_for_coverage_gcovr_xml) set(options NONE) @@ -445,15 +456,8 @@ function(setup_target_for_coverage_gcovr_xml) set(GCOVR_XML_EXEC_TESTS_CMD ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}) # Running gcovr set(GCOVR_XML_CMD - ${GCOVR_PATH} - --xml - -r - ${BASEDIR} - ${GCOVR_ADDITIONAL_ARGS} - ${GCOVR_EXCLUDE_ARGS} - --object-directory=${PROJECT_BINARY_DIR} - -o - ${Coverage_NAME}.xml + ${GCOVR_PATH} --xml ${Coverage_NAME}.xml -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} + ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} ) if(CODE_COVERAGE_VERBOSE) @@ -490,19 +494,12 @@ endfunction() # setup_target_for_coverage_gcovr_xml # the given executable and outputs reports. NOTE! The executable should always have a ZERO as exit # code otherwise the coverage generation will not complete. # -# ~~~ -# setup_target_for_coverage_gcovr_html( -# NAME ctest_coverage # New target name -# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES executable_target # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative -# # to BASE_DIRECTORY, with CMake 3.4+) -# ) -# ~~~ -# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the GCVOR -# command. +# setup_target_for_coverage_gcovr_html( NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR DEPENDENCIES +# executable_target # Dependencies to build first BASE_DIRECTORY "../" # +# Base directory for report # (defaults to PROJECT_SOURCE_DIR) EXCLUDE "src/dir1/*" "src/dir2/*" # +# Patterns to exclude (can be relative # to BASE_DIRECTORY, with CMake 3.4+) ) The user can set the +# variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the GCVOR command. function(setup_target_for_coverage_gcovr_html) set(options NONE) @@ -548,14 +545,13 @@ function(setup_target_for_coverage_gcovr_html) set(GCOVR_HTML_CMD ${GCOVR_PATH} --html + ${Coverage_NAME}/index.html --html-details -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} - -o - ${Coverage_NAME}/index.html ) if(CODE_COVERAGE_VERBOSE) @@ -597,31 +593,29 @@ endfunction() # setup_target_for_coverage_gcovr_html # Defines a target for running and collection code coverage information Builds dependencies, runs # the given executable and outputs reports. NOTE! The executable should always have a ZERO as exit # code otherwise the coverage generation will not complete. -# ~~~ -# setup_target_for_coverage_fastcov( -# NAME testrunner_coverage # New target name -# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR -# DEPENDENCIES testrunner # Dependencies to build first -# BASE_DIRECTORY "../" # Base directory for report -# # (defaults to PROJECT_SOURCE_DIR) -# EXCLUDE "src/dir1/" "src/dir2/" # Patterns to exclude. -# NO_DEMANGLE # Don't demangle C++ symbols -# # even if c++filt is found -# SKIP_HTML # Don't create html report -# ) -# ~~~ +# +# setup_target_for_coverage_fastcov( NAME testrunner_coverage # New target name +# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR DEPENDENCIES +# testrunner # Dependencies to build first BASE_DIRECTORY "../" # Base directory +# for report # (defaults to PROJECT_SOURCE_DIR) EXCLUDE "src/dir1/" "src/dir2/" # Patterns to +# exclude. NO_DEMANGLE # Don't demangle C++ symbols # even if +# c++filt is found SKIP_HTML # Don't create html report POST_CMD +# perl -i -pe s!${PROJECT_SOURCE_DIR}/!!g ctest_coverage.json # E.g. for stripping source dir from +# file paths ) function(setup_target_for_coverage_fastcov) set(options NO_DEMANGLE SKIP_HTML) set(oneValueArgs BASE_DIRECTORY NAME) - set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES FASTCOV_ARGS GENHTML_ARGS) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES FASTCOV_ARGS GENHTML_ARGS + POST_CMD + ) cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(NOT FASTCOV_PATH) message(FATAL_ERROR "fastcov not found! Aborting...") endif() - if(NOT GENHTML_PATH) + if(NOT Coverage_SKIP_HTML AND NOT GENHTML_PATH) message(FATAL_ERROR "genhtml not found! Aborting...") endif() @@ -655,13 +649,16 @@ function(setup_target_for_coverage_fastcov) --search-directory ${BASEDIR} --process-gcno - --lcov --output - ${Coverage_NAME}.info + ${Coverage_NAME}.json --exclude ${FASTCOV_EXCLUDES} ) + set(FASTCOV_CONVERT_CMD ${FASTCOV_PATH} -C ${Coverage_NAME}.json --lcov --output + ${Coverage_NAME}.info + ) + if(Coverage_SKIP_HTML) set(FASTCOV_HTML_CMD ";") else() @@ -670,6 +667,11 @@ function(setup_target_for_coverage_fastcov) ) endif() + set(FASTCOV_POST_CMD ";") + if(Coverage_POST_CMD) + set(FASTCOV_POST_CMD ${Coverage_POST_CMD}) + endif() + if(CODE_COVERAGE_VERBOSE) message(STATUS "Code coverage commands for target ${Coverage_NAME} (fastcov):") @@ -681,11 +683,20 @@ function(setup_target_for_coverage_fastcov) string(REPLACE ";" " " FASTCOV_CAPTURE_CMD_SPACED "${FASTCOV_CAPTURE_CMD}") message(" ${FASTCOV_CAPTURE_CMD_SPACED}") + message(" Converting fastcov .json to lcov .info:") + string(REPLACE ";" " " FASTCOV_CONVERT_CMD_SPACED "${FASTCOV_CONVERT_CMD}") + message(" ${FASTCOV_CONVERT_CMD_SPACED}") + if(NOT Coverage_SKIP_HTML) message(" Generating HTML report: ") string(REPLACE ";" " " FASTCOV_HTML_CMD_SPACED "${FASTCOV_HTML_CMD}") message(" ${FASTCOV_HTML_CMD_SPACED}") endif() + if(Coverage_POST_CMD) + message(" Running post command: ") + string(REPLACE ";" " " FASTCOV_POST_CMD_SPACED "${FASTCOV_POST_CMD}") + message(" ${FASTCOV_POST_CMD_SPACED}") + endif() endif() # Setup target @@ -696,9 +707,12 @@ function(setup_target_for_coverage_fastcov) ${BASEDIR} --zerocounters COMMAND ${FASTCOV_EXEC_TESTS_CMD} COMMAND ${FASTCOV_CAPTURE_CMD} + COMMAND ${FASTCOV_CONVERT_CMD} COMMAND ${FASTCOV_HTML_CMD} + COMMAND ${FASTCOV_POST_CMD} # Set output files as GENERATED (will be removed on 'make clean') - BYPRODUCTS ${Coverage_NAME}.info ${Coverage_NAME}/index.html # report directory + BYPRODUCTS ${Coverage_NAME}.info ${Coverage_NAME}.json + ${Coverage_NAME}/index.html # report directory WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS ${Coverage_DEPENDENCIES} VERBATIM # Protect arguments to commands @@ -706,7 +720,9 @@ function(setup_target_for_coverage_fastcov) "Resetting code coverage counters to zero. Processing code coverage counters and generating report." ) - set(INFO_MSG "fastcov code coverage info report saved in ${Coverage_NAME}.info.") + set(INFO_MSG + "fastcov code coverage info report saved in ${Coverage_NAME}.info and ${Coverage_NAME}.json." + ) if(NOT Coverage_SKIP_HTML) string( APPEND @@ -727,3 +743,12 @@ function(append_coverage_compiler_flags) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}") endfunction() # append_coverage_compiler_flags + +# Setup coverage for specific library +function(append_coverage_compiler_flags_to_target name) + separate_arguments(_flag_list NATIVE_COMMAND "${COVERAGE_COMPILER_FLAGS}") + target_compile_options(${name} PRIVATE ${_flag_list}) + if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") + target_link_libraries(${name} PRIVATE gcov) + endif() +endfunction() From a13e84514d876691800d0df8b7f891f5fc48caf2 Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 10 Jul 2023 18:25:34 +0200 Subject: [PATCH 040/176] [cmake][doc] Use CodeCoverage only. --- CMakeLists.txt | 32 ++++-- cmake/CoverageFunc.cmake | 177 ------------------------------- doc/developer/develWithRadium.md | 17 ++- 3 files changed, 30 insertions(+), 196 deletions(-) delete mode 100644 cmake/CoverageFunc.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d80b1bddacb..31a2ac63331 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -162,13 +162,8 @@ else() set(GIT_CHANGESET "") endif() -set(ENABLE_COVERAGE "") -mark_as_advanced(ENABLE_COVERAGE) if(RADIUM_ENABLE_COVERAGE) - include(CoverageFunc) - # sets ENABLE_COVERAGE to ON if ok - setup_coverage() - + set(RADIUM_ENABLE_TESTING "ON") include(CodeCoverage) append_coverage_compiler_flags() endif(RADIUM_ENABLE_COVERAGE) @@ -222,11 +217,28 @@ if(RADIUM_ENABLE_TESTING) add_subdirectory(tests) endif() -if(ENABLE_COVERAGE) - set(LCOV_REMOVES - "'/usr/*';'*examples*';'*external*';'*install*';'*/Catch2/*';'*_autogen/*';'*build*'" +if(RADIUM_ENABLE_COVERAGE) + setup_target_for_coverage_lcov( + NAME + coverage + EXECUTABLE + ctest + -j + $ENV{CMAKE_BUILD_PARALLEL_LEVEL} + DEPENDENCIES + RadiumLibs + unittests + integration + EXCLUDE + "/usr/*" + "*examples*" + "*external*" + "*install*" + "*/Catch2/*" + "*_autogen/*" + "*build*" + "*mocs*" ) - setup_coverage_targets(${ENABLE_COVERAGE} "${LCOV_REMOVES}") # Fastcov is not supported with gcov llvm: disabling for MacOS Source: # https://github.com/RPGillespie6/fastcov/issues/36 diff --git a/cmake/CoverageFunc.cmake b/cmake/CoverageFunc.cmake deleted file mode 100644 index 28199a90538..00000000000 --- a/cmake/CoverageFunc.cmake +++ /dev/null @@ -1,177 +0,0 @@ -# setup coverage -macro(setup_coverage) - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_BUILD_TYPE STREQUAL "Debug") - message(STATUS "[Tests] Enable Coverage ¡Warning! slow down execution ¡Warning!") - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wno-deprecated -Woverloaded-virtual -Wwrite-strings -fprofile-arcs -ftest-coverage" - ) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -Wall -W -fprofile-arcs -ftest-coverage") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") - find_program(LCOV_BIN lcov) - - # adapted from https://github.com/RWTH-HPC/CMake-codecov/blob/master/cmake/FindGcov.cmake - get_property(ENABLED_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) - foreach(LANG ${ENABLED_LANGUAGES}) - # Gcov evaluation is dependent on the used compiler. Check gcov support for each - # compiler that is used. If gcov binary was already found for this compiler, do not try - # to find it again. - if(NOT GCOV_${CMAKE_${LANG}_COMPILER_ID}_BIN) - get_filename_component(COMPILER_PATH "${CMAKE_${LANG}_COMPILER}" PATH) - - if("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "GNU") - # Some distributions like OSX (homebrew) ship gcov with the compiler version - # appended as gcov-x. To find this binary we'll build the suggested binary name - # with the compiler version. - string(REGEX MATCH "^[0-9]+" GCC_VERSION "${CMAKE_${LANG}_COMPILER_VERSION}") - - find_program(GCOV_BIN NAMES gcov-${GCC_VERSION} gcov HINTS ${COMPILER_PATH}) - - elseif("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "^(Apple)?Clang$") - # Some distributions like Debian ship llvm-cov with the compiler version - # appended as llvm-cov-x.y. To find this binary we'll build the suggested binary - # name with the compiler version. - string(REGEX MATCH "^[0-9]+.[0-9]+" LLVM_VERSION - "${CMAKE_${LANG}_COMPILER_VERSION}" - ) - - # llvm-cov prior version 3.5 seems to be not working with coverage evaluation - # tools, but these versions are compatible with the gcc gcov tool. - if(LLVM_VERSION VERSION_GREATER 3.4) - find_program( - LLVM_COV_BIN NAMES "llvm-cov-${LLVM_VERSION}" "llvm-cov" - HINTS ${COMPILER_PATH} - ) - mark_as_advanced(LLVM_COV_BIN) - - if(LLVM_COV_BIN) - find_program( - LLVM_COV_WRAPPER "llvm-cov-wrapper" PATHS ${CMAKE_MODULE_PATH} - ) - if(LLVM_COV_WRAPPER) - set(GCOV_BIN "${LLVM_COV_WRAPPER}" CACHE FILEPATH "") - - # set additional parameters - set(GCOV_${CMAKE_${LANG}_COMPILER_ID}_ENV - "LLVM_COV_BIN=${LLVM_COV_BIN}" - CACHE STRING "Environment variables for llvm-cov-wrapper." - ) - mark_as_advanced(GCOV_${CMAKE_${LANG}_COMPILER_ID}_ENV) - endif() - endif() - endif() - - if(NOT GCOV_BIN) - # Fall back to gcov binary if llvm-cov was not found or is incompatible. - # This is the default on OSX, but may crash on recent Linux versions. - find_program(GCOV_BIN gcov HINTS ${COMPILER_PATH}) - endif() - endif() - - if(GCOV_BIN) - set(GCOV_${CMAKE_${LANG}_COMPILER_ID}_BIN "${GCOV_BIN}" - CACHE STRING "${LANG} gcov binary." - ) - - if(NOT CMAKE_REQUIRED_QUIET) - message( - "-- Found gcov evaluation for ${LANG}" - "${CMAKE_${LANG}_COMPILER_ID}: ${GCOV_BIN} ${GCOV_${CMAKE_${LANG}_COMPILER_ID}_BIN}" - ) - endif() - set(GCOV_BIN_FOR_LCOV ${GCOV_BIN} CACHE STRING "save gcov bin for lcov") - unset(GCOV_BIN CACHE) - endif() - endif() - endforeach() - - if(NOT LCOV_BIN AND NOT GCOV_BIN_FOR_LCOV) - message( - FATAL_ERROR - "lcov binary not found, while asking for coverage computation (RADIUM_ENABLE_COVERAGE=${RADIUM_ENABLE_COVERAGE}). Abort" - ) - endif() - set(RADIUM_ENABLE_TESTING "ON") - set(ENABLE_COVERAGE "ON") - else() - message( - FATAL_ERROR - "[Tests] Coverage requested (RADIUM_ENABLE_COVERAGE), but not available, only supported in DEBUG with GCC (i.e. GNU/Debug). Current configuration is ${CMAKE_CXX_COMPILER_ID}/${CMAKE_BUILD_TYPE}" - ) - endif() -endmacro() - -# might be needed, was needed ... -# https://stackoverflow.com/questions/37434946/how-do-i-iterate-over-all-cmake-targets-programmatically -function(get_all_targets var) - set(targets) - get_all_targets_recursive(targets ${CMAKE_CURRENT_SOURCE_DIR}) - set(${var} ${targets} PARENT_SCOPE) -endfunction() - -macro(get_all_targets_recursive targets dir) - get_property(subdirectories DIRECTORY ${dir} PROPERTY SUBDIRECTORIES) - foreach(subdir ${subdirectories}) - get_all_targets_recursive(${targets} ${subdir}) - endforeach() - - get_property(current_targets DIRECTORY ${dir} PROPERTY BUILDSYSTEM_TARGETS) - - foreach(target ${current_targets}) - get_target_property(type ${target} TYPE) - if(${type} STREQUAL "EXECUTABLE" OR ${type} STREQUAL "SHARED_LIBRARY") - list(APPEND ${targets} ${target}) - endif() - endforeach() -endmacro() - -macro(setup_coverage_targets ENABLE_COVERAGE LCOV_REMOVES) - if(ENABLE_COVERAGE) - add_custom_target( - lcov_init - COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --initial --capture --directory - ${CMAKE_BINARY_DIR} --output-file ${CMAKE_BINARY_DIR}/init.info - COMMAND - ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --remove ${CMAKE_BINARY_DIR}/init.info - ${LCOV_REMOVES} --output-file ${CMAKE_BINARY_DIR}/init.info - BYPRODUCTS ${CMAKE_BINARY_DIR}/init.info - ) - add_custom_target( - lcov_zerocounter COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --zerocounter - --directory ${CMAKE_BINARY_DIR} - ) - add_custom_target( - lcov_capture - COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --capture --directory . - --output-file ${CMAKE_BINARY_DIR}/coverage.info - COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --remove coverage.info - ${LCOV_REMOVES} --output-file ${CMAKE_BINARY_DIR}/coverage.info - COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} -a ${CMAKE_BINARY_DIR}/init.info -a - ${CMAKE_BINARY_DIR}/coverage.info -o ${CMAKE_BINARY_DIR}/total.info - BYPRODUCTS ${CMAKE_BINARY_DIR}/total.info - ) - add_custom_target( - lcov_list COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --list - ${CMAKE_BINARY_DIR}/total.info - ) - add_custom_target( - coverage_lcov - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all --parallel - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target lcov_init --parallel - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target lcov_zerocounter - --parallel - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target check --parallel - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target lcov_capture --parallel - ) - add_custom_target( - lcov_remove COMMAND ${LCOV_BIN} --gcov-tool ${GCOV_BIN_FOR_LCOV} --remove coverage.info - ${LCOV_REMOVES} --output-file ${CMAKE_BINARY_DIR}/coverage.info - ) - - find_program(GENHTML_BIN genhtml) - if(GENHTML_BIN) - add_custom_target( - coverage_report COMMAND ${GENHTML_BIN} -o ${CMAKE_BINARY_DIR}/lcov total.info - ) - endif() - endif() -endmacro() diff --git a/doc/developer/develWithRadium.md b/doc/developer/develWithRadium.md index e9f9fb27f99..5b9ac0d731e 100644 --- a/doc/developer/develWithRadium.md +++ b/doc/developer/develWithRadium.md @@ -70,8 +70,8 @@ It's probably on your system repositories, e.g.: - on MacOS: `brew install lcov libxml2` You can generate [`lcov`](http://ltp.sourceforge.net/coverage/lcov.php) output files to check tests coverage. -To this end, both `RADIUM_ENABLE_TESTING=ON` and `RADIUM_ENABLE_COVERAGE=ON` have to be passed to cmake, works on Linux in Debug. -Then the target `coverage_lcov` builds and run all the necessary steps and produce a file `total.info` in your build dir. +To this end `RADIUM_ENABLE_COVERAGE=ON` have to be passed to cmake, works on Linux in Debug. +Then the target `coverage` builds and run all the necessary steps and produce a file `total.info` in your build dir. Please check CMakeLists.txt for the detailed steps, and `lcov documentation` for further processing of `total.info` to generate an html report. Here are the example commands to run test and generate report. @@ -83,11 +83,10 @@ RADIUM_SOURCE=path/to/radium/main/CMakeLists.txt # in you build path cmake -DCMAKE_BUILD_TYPE=Debug -DRADIUM_ENABLE_COVERAGE=ON -C ${RADIUM_CONFIG} ${RADIUM_SOURCE} -make coverage_lcov #build everything, with coverage enable, run test, perform analysis -make coverage_report # generate html report +cmake --build . --target coverage #build everything, with coverage enable, run test, perform analysis ``` -output report is `./lcov/index.html`. +output report is `./coverage/index.html`. `lcov` is quite slow to process files, [`fastcov`](https://github.com/RPGillespie6/fastcov/blob/master/fastcov.py) is a parallel alternative. To install fastcov: `pip3 install fastcov`. @@ -99,12 +98,12 @@ and to run the analysis: ```bash # in you build path cmake -DCMAKE_BUILD_TYPE=Debug -DRADIUM_ENABLE_COVERAGE=ON -C RADIUM_CONFIG RADIUM_SOURCE -make coverage_fastcov #build everything, with coverage enable, run test, perform analysis +cmake --build . --target coverag_fastcov #build everything, with coverage enable, run test, perform analysis ``` report is `./coverage_fastcov/index.html` -For comparison on a Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz (with radium built already done). +For comparison on a Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz (with radium build `cmake --build .` already done). -- `time make lcov` -> real 1m13.289s -- `time make coverage_fastcov` -> real 0m11.717s +- `time cmake --build . --target coverage` -> 2:08.60 total +- `time cmake --build . --targer coverage_fastcov` -> 48.178 total From 4be4c17a6a95d28b876ad96de01d41599bc11abf Mon Sep 17 00:00:00 2001 From: dlyr Date: Mon, 10 Jul 2023 18:43:52 +0200 Subject: [PATCH 041/176] [ci] Update codecov according to new coverage config. --- .github/workflows/build-matrix.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-matrix.yml b/.github/workflows/build-matrix.yml index 264c2553647..37607d8f666 100644 --- a/.github/workflows/build-matrix.yml +++ b/.github/workflows/build-matrix.yml @@ -260,11 +260,6 @@ jobs: if: ${{ inputs.coverage == 'true' }} run: | cd build/Radium-Engine - cmake --build . --config Debug --target lcov_init - cmake --build . --config Debug --target lcov_zerocounter - cmake --build . --config Debug --target check - cmake --build . --config Debug --target lcov_capture - # show report for debug - cmake --build . --config Debug --target lcov_list + cmake --build . --config Debug --target coverage # Uploading report to CodeCov - bash <(curl -s https://codecov.io/bash) -f total.info -R ../../src/Radium-Engine || echo "Codecov did not collect coverage reports" + bash <(curl -s https://codecov.io/bash) -f coverage.info -R ../../src/Radium-Engine || echo "Codecov did not collect coverage reports" From 9df295cc35bd097997d4c8acfe8e50ee886470cd Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 10:59:58 +0200 Subject: [PATCH 042/176] fix typo in doc --- doc/developer/develWithRadium.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/developer/develWithRadium.md b/doc/developer/develWithRadium.md index 5b9ac0d731e..5ec2d5a42ec 100644 --- a/doc/developer/develWithRadium.md +++ b/doc/developer/develWithRadium.md @@ -106,4 +106,4 @@ report is `./coverage_fastcov/index.html` For comparison on a Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz (with radium build `cmake --build .` already done). - `time cmake --build . --target coverage` -> 2:08.60 total -- `time cmake --build . --targer coverage_fastcov` -> 48.178 total +- `time cmake --build . --target coverage_fastcov` -> 48.178 total From 16b272fe0a49a614074b99bba308d7fe6d1eedeb Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 15:54:41 +0200 Subject: [PATCH 043/176] [cmake] use correct --directory option, and CMAKE_BINARY_DIR instead of . -directory seems to work but not in manual. --- cmake/CodeCoverage.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index 325314dbf46..84924e8f532 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -256,8 +256,8 @@ function(setup_target_for_coverage_lcov) ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} - -directory - . + --directory + ${CMAKE_BINARY_DIR} -b ${BASEDIR} --zerocounters @@ -271,7 +271,7 @@ function(setup_target_for_coverage_lcov) -c -i -d - . + ${CMAKE_BINARY_DIR} -b ${BASEDIR} -o @@ -286,7 +286,7 @@ function(setup_target_for_coverage_lcov) --gcov-tool ${GCOV_PATH} --directory - . + ${CMAKE_BINARY_DIR} -b ${BASEDIR} --capture From 4049302768fc29a7cc77f9c039f02758c7d6ff86 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 15:55:29 +0200 Subject: [PATCH 044/176] [cmake] don't get_filename_component, it messes up regexp excludes. --- cmake/CodeCoverage.cmake | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index 84924e8f532..45b9fd04d6f 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -239,7 +239,8 @@ function(setup_target_for_coverage_lcov) set(LCOV_EXCLUDES "") foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_LCOV_EXCLUDES}) if(CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + # this don't support regexp get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR + # ${BASEDIR}) endif() list(APPEND LCOV_EXCLUDES "${EXCLUDE}") endforeach() @@ -439,7 +440,7 @@ function(setup_target_for_coverage_gcovr_xml) set(GCOVR_EXCLUDES "") foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) if(CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + # get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) endif() list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") endforeach() @@ -522,7 +523,7 @@ function(setup_target_for_coverage_gcovr_html) set(GCOVR_EXCLUDES "") foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) if(CMAKE_VERSION VERSION_GREATER 3.4) - get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + # get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) endif() list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") endforeach() From c6b789f5fbc775fdc61410f9c62237a060edd0bc Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 16:06:38 +0200 Subject: [PATCH 045/176] [ci] update cache version (deprecated node12) --- .github/workflows/build-matrix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-matrix.yml b/.github/workflows/build-matrix.yml index 37607d8f666..96290ddeeff 100644 --- a/.github/workflows/build-matrix.yml +++ b/.github/workflows/build-matrix.yml @@ -189,7 +189,7 @@ jobs: run: git -C src/Radium-Engine pull origin ${{ github.event.ref }} - name: Cache externals id: cache-external - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: external key: ${{ matrix.config.name }}-${{ matrix.build-type }}-${{ matrix.qtversion.name }}-external-v1-${{ hashFiles('src/Radium-Engine/external/**/CMakeLists.txt') }} From 965dd1bd758480ced578213912c286d3bc1e93ea Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 16:12:27 +0200 Subject: [PATCH 046/176] [ci] install ninja with package manager, instead of deprecated action. --- .github/workflows/build-matrix.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-matrix.yml b/.github/workflows/build-matrix.yml index 96290ddeeff..d7f397fb94c 100644 --- a/.github/workflows/build-matrix.yml +++ b/.github/workflows/build-matrix.yml @@ -124,7 +124,9 @@ jobs: fail-fast: false matrix: ${{ fromJSON(needs.create-matrix.outputs.matrix) }} steps: - - uses: seanmiddleditch/gha-setup-ninja@master + - name: Install Ninja + shell: bash + run: ${{ runner.os == 'macOS' && 'brew install ninja' || runner.os == 'Windows' && 'choco install ninja' || 'sudo apt-get install ninja-build' }} - name: Add msbuild to PATH uses: seanmiddleditch/gha-setup-vsdevenv@master if: runner.os == 'Windows' From 629a2287e9ce946ba8e5f6c473ed66dca572211a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Oct 2023 14:09:29 +0000 Subject: [PATCH 047/176] Update version to 1.5.6 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 9075be49515..eac1e0ada6d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.5 +1.5.6 From 8fe45ed04baa5b4a00bb492ada443a8caa2b6210 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 6 Oct 2023 07:27:54 +0200 Subject: [PATCH 048/176] [pre-commit] update --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9a8f77dabe2..ede5f024344 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: trailing-whitespace exclude: ^tests/.*/data/.*$ @@ -26,12 +26,12 @@ repos: # - id: cppcheck # args: [--enable=all] - repo: https://github.com/igorshubovych/markdownlint-cli - rev: v0.33.0 + rev: v0.37.0 hooks: - id: markdownlint args: [-f] - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v15.0.6 + rev: v17.0.2 hooks: - id: clang-format types_or: [c++, c, cuda] From a4e36171d82fe2e187bf928a6e38cb893a7bc502 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 6 Oct 2023 07:28:15 +0200 Subject: [PATCH 049/176] Apply new pre-commit to all files --- src/Core/Containers/VariableSet.hpp | 2 +- src/Core/Utils/Attribs.hpp | 2 +- src/Core/Utils/Singleton.hpp | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Core/Containers/VariableSet.hpp b/src/Core/Containers/VariableSet.hpp index d016137be2a..94557909b3f 100644 --- a/src/Core/Containers/VariableSet.hpp +++ b/src/Core/Containers/VariableSet.hpp @@ -719,7 +719,7 @@ auto VariableSet::addVariableType() -> Utils::optional*> { // used to visit the variableSet with a dynamic visitor m_vtable->m_visitFunctions.emplace_back( []( const VariableSet& c, const DynamicVisitorBase& v ) - -> std::pair> { + -> std::pair> { auto id = getVariableVisitTypeIndex(); if ( v.accept( id ) ) { auto& visitedStorage = c.getVariableStorage(); diff --git a/src/Core/Utils/Attribs.hpp b/src/Core/Utils/Attribs.hpp index f0b04b69574..0877e77a0d4 100644 --- a/src/Core/Utils/Attribs.hpp +++ b/src/Core/Utils/Attribs.hpp @@ -453,7 +453,7 @@ void AttribBase::setName( const std::string& name ) { m_name = name; } -bool inline AttribBase::operator==( const AttribBase& rhs ) { +bool inline AttribBase::operator==( const AttribBase & rhs ) { return m_name == rhs.getName(); } diff --git a/src/Core/Utils/Singleton.hpp b/src/Core/Utils/Singleton.hpp index ff06d411e90..f137092e364 100644 --- a/src/Core/Utils/Singleton.hpp +++ b/src/Core/Utils/Singleton.hpp @@ -23,7 +23,9 @@ TYPE( const TYPE& ) = delete; \ void operator=( const TYPE& ) = delete; \ struct Deleter { \ - void operator()( TYPE* p ) const { delete p; } \ + void operator()( TYPE* p ) const { \ + delete p; \ + } \ }; \ static std::unique_ptr s_instance; \ \ @@ -33,8 +35,12 @@ s_instance = std::unique_ptr( new TYPE( args... ), Deleter() ); \ return getInstance(); \ } \ - inline static TYPE* getInstance() { return s_instance.get(); } \ - inline static void destroyInstance() { s_instance.reset( nullptr ); } + inline static TYPE* getInstance() { \ + return s_instance.get(); \ + } \ + inline static void destroyInstance() { \ + s_instance.reset( nullptr ); \ + } /// Add this macro in the singleton cpp, followed by a semicolon. // Limitations : TYPE cannot be a nested type From e937b795100d0570ade56f649bb8fa3732e0615f Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 6 Oct 2023 07:39:10 +0200 Subject: [PATCH 050/176] [format] Update clang-format --- .clang-format | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.clang-format b/.clang-format index 5c63f8e8335..9a795f477f4 100644 --- a/.clang-format +++ b/.clang-format @@ -1,11 +1,11 @@ --- BasedOnStyle: LLVM Language: Cpp -Standard: Cpp11 +Standard: c++17 AllowShortFunctionsOnASingleLine: Inline AllowShortBlocksOnASingleLine: true AllowShortIfStatementsOnASingleLine: true -AlwaysBreakTemplateDeclarations: true +AlwaysBreakTemplateDeclarations: Yes BreakBeforeBraces: Custom BraceWrapping: AfterClass: true From e79c16ecb40a1ea29a2d507d9bad4697303406e7 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 21:57:54 +0000 Subject: [PATCH 051/176] Update version to 1.5.7 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index eac1e0ada6d..f01291b87fd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.6 +1.5.7 From 6147cf741a150ab34d88aac363ee2f4b8fef3267 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 09:52:57 +0200 Subject: [PATCH 052/176] [ci] update doxygen, should fix toc. --- .github/workflows/deploy-doc.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml index 43b98dbca74..0bc14b88a18 100644 --- a/.github/workflows/deploy-doc.yml +++ b/.github/workflows/deploy-doc.yml @@ -39,10 +39,10 @@ jobs: - name: Install packages run : | sudo apt-get install graphviz - - name: Fetch recent doxygen (1.9.7) + - name: Fetch recent doxygen (1.9.8) run: | sudo apt-get install clang-9 libclang-9-dev - wget https://sourceforge.net/projects/doxygen/files/rel-1.9.7/doxygen-1.9.7.linux.bin.tar.gz + wget https://sourceforge.net/projects/doxygen/files/rel-1.9.8/doxygen-1.9.8.linux.bin.tar.gz tar -xvzf doxygen-1.9.7.linux.bin.tar.gz - name: Extract ref for badges prefix if: always() @@ -54,7 +54,7 @@ jobs: - name: Configure Doc run: | cd build/Radium-Engine - cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen-1.9.7/bin/doxygen + cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen-1.9.8/bin/doxygen - name: Build Doc run: | export GITHUB_REF="${{ steps.extract-branch.outputs.branch }}" From 43b38b6a3a5fd8b065b06df8ee5bfc21f35ed73c Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 5 Oct 2023 09:24:45 +0200 Subject: [PATCH 053/176] [ci] remove the need of doxygen version in command line. --- .github/workflows/deploy-doc.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml index 0bc14b88a18..f3b5eefadbe 100644 --- a/.github/workflows/deploy-doc.yml +++ b/.github/workflows/deploy-doc.yml @@ -42,8 +42,9 @@ jobs: - name: Fetch recent doxygen (1.9.8) run: | sudo apt-get install clang-9 libclang-9-dev - wget https://sourceforge.net/projects/doxygen/files/rel-1.9.8/doxygen-1.9.8.linux.bin.tar.gz - tar -xvzf doxygen-1.9.7.linux.bin.tar.gz + wget https://sourceforge.net/projects/doxygen/files/rel-1.9.8/doxygen-1.9.8.linux.bin.tar.gz -O doxygen.tar.gz + tar -zxvf doxygen.tar.gz -C doxygen --wildcards "*/bin" + mv doxygen/*/bin doxygen/ - name: Extract ref for badges prefix if: always() shell: bash @@ -54,7 +55,7 @@ jobs: - name: Configure Doc run: | cd build/Radium-Engine - cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen-1.9.8/bin/doxygen + cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen/bin/doxygen - name: Build Doc run: | export GITHUB_REF="${{ steps.extract-branch.outputs.branch }}" From 3b13b43e5e415b98afec0c1f8fb512c34fee2095 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 13 Oct 2023 00:22:09 +0200 Subject: [PATCH 054/176] [ci] tmp workflow to check doc build --- .github/workflows/tmp-check-doc.yml | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/tmp-check-doc.yml diff --git a/.github/workflows/tmp-check-doc.yml b/.github/workflows/tmp-check-doc.yml new file mode 100644 index 00000000000..ce7c26b3689 --- /dev/null +++ b/.github/workflows/tmp-check-doc.yml @@ -0,0 +1,49 @@ +name: TEST DOC ARTIFACT + +on: + pull_request: + branches: + - release-candidate +jobs: + deploy-doc: + runs-on: ubuntu-20.04 + steps: + - name: Prepare directories + run: | + mkdir -p src/Radium-Engine + mkdir -p build/Radium-Engine + mkdir doxygen + - name: Checkout remote head + uses: actions/checkout@master + with: + path: src/Radium-Engine + submodules: recursive + - name: Install packages + run : | + sudo apt-get install graphviz plantuml clang-9 libclang-9-dev + - name: Fetch recent doxygen (1.9.8) + run: | + wget https://sourceforge.net/projects/doxygen/files/rel-1.9.8/doxygen-1.9.8.linux.bin.tar.gz -O doxygen.tar.gz + tar -zxvf doxygen.tar.gz -C doxygen --wildcards "*/bin" + mv doxygen/*/bin doxygen/ + - name: Extract ref for badges prefix + if: always() + shell: bash + run: | + GITHUB_REF=${{ github.ref }} + echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT + id: extract-branch + - name: Configure Doc + run: | + cd build/Radium-Engine + cmake ../../src/Radium-Engine/doc -DCMAKE_EXECUTE_PROCESS_COMMAND_ECHO=STDOUT -DDOXYGEN_EXECUTABLE=../../doxygen/bin/doxygen + - name: Build Doc + run: | + cd build/Radium-Engine + cmake --build . --target RadiumDoc + - name: 'Upload Artifact' + uses: actions/upload-artifact@v3 + with: + name: doc + path: build/Radium-Engine/html + retention-days: 5 From 8bbefa5b7ca01b54de3b6e32cc6a2f5676296961 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 13 Oct 2023 09:27:54 +0200 Subject: [PATCH 055/176] [ci] update script after test --- .github/workflows/deploy-doc.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml index f3b5eefadbe..2676d0a7090 100644 --- a/.github/workflows/deploy-doc.yml +++ b/.github/workflows/deploy-doc.yml @@ -29,6 +29,7 @@ jobs: run: | mkdir -p src/Radium-Engine mkdir -p build/Radium-Engine + mkdir doxygen - name: Checkout remote head uses: actions/checkout@master with: @@ -38,10 +39,9 @@ jobs: run: git -C src/Radium-Engine pull origin ${{ github.event.ref }} - name: Install packages run : | - sudo apt-get install graphviz + sudo apt-get install graphviz plantuml clang-9 libclang-9-dev - name: Fetch recent doxygen (1.9.8) run: | - sudo apt-get install clang-9 libclang-9-dev wget https://sourceforge.net/projects/doxygen/files/rel-1.9.8/doxygen-1.9.8.linux.bin.tar.gz -O doxygen.tar.gz tar -zxvf doxygen.tar.gz -C doxygen --wildcards "*/bin" mv doxygen/*/bin doxygen/ From 2f8aa16c2cf43d37c6b6fe1f59eae0c520592d90 Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 13 Oct 2023 09:41:42 +0200 Subject: [PATCH 056/176] [ci] make tmp workflow a manual triggered workflow --- ...mp-check-doc.yml => manual-doc-artifact-build.yml} | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) rename .github/workflows/{tmp-check-doc.yml => manual-doc-artifact-build.yml} (90%) diff --git a/.github/workflows/tmp-check-doc.yml b/.github/workflows/manual-doc-artifact-build.yml similarity index 90% rename from .github/workflows/tmp-check-doc.yml rename to .github/workflows/manual-doc-artifact-build.yml index ce7c26b3689..4050230d3e5 100644 --- a/.github/workflows/tmp-check-doc.yml +++ b/.github/workflows/manual-doc-artifact-build.yml @@ -1,9 +1,12 @@ -name: TEST DOC ARTIFACT +name: Build doc artifact (trigger manually) on: - pull_request: - branches: - - release-candidate + workflow_dispatch: + inputs: + branch: + description: 'The branch to build' + required: true + jobs: deploy-doc: runs-on: ubuntu-20.04 From dd30e67a49e46465ac111860278f01d087591e61 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Oct 2023 12:41:26 +0000 Subject: [PATCH 057/176] Update version to 1.5.8 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index f01291b87fd..1cc9c180e26 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.7 +1.5.8 From 00c70e503d7ee14ae638ea98a6284fb85c8d4422 Mon Sep 17 00:00:00 2001 From: dlyr Date: Tue, 3 Oct 2023 08:10:39 +0200 Subject: [PATCH 058/176] [tests] Add empty queue tests. --- tests/unittest/Core/taskqueue.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/unittest/Core/taskqueue.cpp b/tests/unittest/Core/taskqueue.cpp index e58b14cf848..bd2e013c523 100644 --- a/tests/unittest/Core/taskqueue.cpp +++ b/tests/unittest/Core/taskqueue.cpp @@ -8,6 +8,34 @@ using namespace Ra::Core; using namespace Ra::Core::Utils; +// run some dummy task, to check that there is no deadlock +TEST_CASE( "Core/TaskQueueInit", "[Core][TaskQueue]" ) { + for ( int i = 0; i < 5; ++i ) { + TaskQueue taskQueue1( 10 ); + for ( int j = 0; j < 20; ++j ) { + taskQueue1.registerTask( std::make_unique( + []() { std::this_thread::sleep_for( std::chrono::milliseconds( 10 ) ); }, "" ) ); + } + taskQueue1.startTasks(); + taskQueue1.waitForTasks(); + taskQueue1.flushTaskQueue(); + } + for ( int i = 0; i < 50; ++i ) { + TaskQueue taskQueue1( 10 ); + TaskQueue taskQueue2( 20 ); + TaskQueue taskQueue3( 30 ); + taskQueue1.startTasks(); + taskQueue1.waitForTasks(); + taskQueue1.flushTaskQueue(); + taskQueue2.startTasks(); + taskQueue2.waitForTasks(); + taskQueue2.flushTaskQueue(); + taskQueue3.startTasks(); + taskQueue3.waitForTasks(); + taskQueue3.flushTaskQueue(); + } +} + TEST_CASE( "Core/TaskQueue", "[Core][TaskQueue]" ) { TaskQueue taskQueue( 4 ); From 2495e888a25b1c1a638c608e0720bd1a5984eb8c Mon Sep 17 00:00:00 2001 From: dlyr Date: Tue, 3 Oct 2023 08:14:45 +0200 Subject: [PATCH 059/176] [core] task queue fix quick delete notify fail. This patch might not be perfect, but seems to work. --- src/Core/Tasks/TaskQueue.cpp | 135 +++++++++++++++++++++-------------- src/Core/Tasks/TaskQueue.hpp | 28 +++++--- 2 files changed, 99 insertions(+), 64 deletions(-) diff --git a/src/Core/Tasks/TaskQueue.cpp b/src/Core/Tasks/TaskQueue.cpp index 3c16b30249b..06ef3dd6865 100644 --- a/src/Core/Tasks/TaskQueue.cpp +++ b/src/Core/Tasks/TaskQueue.cpp @@ -12,6 +12,7 @@ namespace Ra { namespace Core { TaskQueue::TaskQueue( uint numThreads ) : m_processingTasks( 0 ), m_shuttingDown( false ) { + wlock lock( m_mutex ); m_workerThreads.reserve( numThreads ); for ( uint i = 0; i < numThreads; ++i ) { m_workerThreads.emplace_back( &TaskQueue::runThread, this, i ); @@ -19,16 +20,18 @@ TaskQueue::TaskQueue( uint numThreads ) : m_processingTasks( 0 ), m_shuttingDown } TaskQueue::~TaskQueue() { + { + wlock lock( m_mutex ); + m_shuttingDown = true; + } flushTaskQueue(); - m_shuttingDown = true; - m_threadNotifier.notify_all(); for ( auto& t : m_workerThreads ) { t.join(); } } TaskQueue::TaskId TaskQueue::registerTask( std::unique_ptr task ) { - std::lock_guard lock( m_taskMutex ); + wlock lock( m_mutex ); TimerData tdata; // init tdata with task name before moving ownership tdata.taskName = task->getName(); @@ -51,7 +54,7 @@ void TaskQueue::removeTask( TaskId taskId ) { << m_tasks.size(); return; } - std::lock_guard lock( m_taskMutex ); + wlock lock( m_mutex ); // set task as dummy noop m_tasks[taskId] = std::make_unique( []() {}, m_timerData[taskId].taskName ); @@ -62,6 +65,7 @@ void TaskQueue::removeTask( TaskId taskId ) { } TaskQueue::TaskId TaskQueue::getTaskId( const std::string& taskName ) const { + rlock lock( m_mutex ); auto itr = std::find_if( m_tasks.begin(), m_tasks.end(), [taskName]( const auto& task ) { return task->getName() == taskName; } ); @@ -71,7 +75,7 @@ TaskQueue::TaskId TaskQueue::getTaskId( const std::string& taskName ) const { } void TaskQueue::addDependency( TaskQueue::TaskId predecessor, TaskQueue::TaskId successor ) { - std::lock_guard lock( m_taskMutex ); + wlock lock( m_mutex ); CORE_ASSERT( predecessor.isValid() && ( predecessor < m_tasks.size() ), "Invalid predecessor task" ); @@ -112,12 +116,12 @@ bool TaskQueue::addDependency( TaskQueue::TaskId predecessor, const std::string& void TaskQueue::addPendingDependency( const std::string& predecessors, TaskQueue::TaskId successor ) { - std::lock_guard lock( m_taskMutex ); + wlock lock( m_mutex ); m_pendingDepsSucc.emplace_back( predecessors, successor ); } void TaskQueue::addPendingDependency( TaskId predecessor, const std::string& successors ) { - std::lock_guard lock( m_taskMutex ); + wlock lock( m_mutex ); m_pendingDepsPre.emplace_back( predecessor, successors ); } @@ -134,9 +138,11 @@ void TaskQueue::resolveDependencies() { "Pending dependency unresolved : (" << pre.first << ") -> " << m_tasks[pre.second]->getName() ); } - std::lock_guard lock( m_taskMutex ); - m_pendingDepsPre.clear(); - m_pendingDepsSucc.clear(); + { + wlock lock( m_mutex ); + m_pendingDepsPre.clear(); + m_pendingDepsSucc.clear(); + } } // queueTask is always called with m_taskQueueMutex locked @@ -152,7 +158,7 @@ void TaskQueue::detectCycles() { // Do a depth-first search of the nodes. std::vector visited( m_tasks.size(), false ); std::stack pending; - + rlock lock( m_mutex ); for ( uint id = 0; id < m_tasks.size(); ++id ) { if ( m_dependencies[id].size() == 0 ) { pending.push( TaskId( id ) ); } } @@ -178,12 +184,14 @@ void TaskQueue::detectCycles() { void TaskQueue::startTasks() { using namespace Ra::Core::Utils; - if ( m_workerThreads.empty() ) { - LOG( logERROR ) << "TaskQueue as 0 threads, could not start tasks in parallel. Either " - "create a task queue with more threads, or use runTasksInThisThread"; - return; + { + rlock lock( m_mutex ); + if ( m_workerThreads.empty() ) { + LOG( logERROR ) << "TaskQueue as 0 threads, could not start tasks in parallel. Either " + "create a task queue with more threads, or use runTasksInThisThread"; + return; + } } - // Add pending dependencies. resolveDependencies(); @@ -191,46 +199,59 @@ void TaskQueue::startTasks() { detectCycles(); // Enqueue all tasks with no dependencies. - for ( uint t = 0; t < m_tasks.size(); ++t ) { - // only queue non null m_tasks - if ( m_tasks[t] && m_remainingDependencies[t] == 0 ) { queueTask( TaskId { t } ); } - } + { + wlock lock( m_mutex ); + for ( uint t = 0; t < m_tasks.size(); ++t ) { + // only queue non null m_tasks + if ( m_tasks[t] && m_remainingDependencies[t] == 0 ) { queueTask( TaskId { t } ); } + } + } // Wake up all threads. m_threadNotifier.notify_all(); } void TaskQueue::runTasksInThisThread() { - - // lock task queue so no other worker can start working while this thread do the job. - std::lock_guard lock( m_taskQueueMutex ); + // use local task queue, preventing workers to pickup jobs. + std::deque taskQueue; // Add pending dependencies. resolveDependencies(); // Do a debug check detectCycles(); - - // Enqueue all tasks with no dependencies. - for ( uint t = 0; t < m_tasks.size(); ++t ) { - // only queue non null m_tasks - if ( m_tasks[t] && m_remainingDependencies[t] == 0 ) { queueTask( TaskId { t } ); } + { + rlock lock( m_mutex ); + + // Enqueue all tasks with no dependencies. + for ( uint t = 0; t < m_tasks.size(); ++t ) { + // only queue non null m_tasks + if ( m_tasks[t] && m_remainingDependencies[t] == 0 ) { + taskQueue.push_front( TaskId { t } ); + } + } } - while ( !m_taskQueue.empty() ) { - TaskId task { m_taskQueue.back() }; - m_taskQueue.pop_back(); + { + while ( !taskQueue.empty() ) { + TaskId task; + { + wlock lock( m_mutex ); + task = taskQueue.back(); + taskQueue.pop_back(); + } + // Run task + m_timerData[task].start = Utils::Clock::now(); + m_timerData[task].threadId = 0; + m_tasks[task]->process(); + m_timerData[task].end = Utils::Clock::now(); - // Run task - m_timerData[task].start = Utils::Clock::now(); - m_timerData[task].threadId = 0; - m_tasks[task]->process(); - m_timerData[task].end = Utils::Clock::now(); - - for ( auto t : m_dependencies[task] ) { - uint& nDepends = m_remainingDependencies[t]; - CORE_ASSERT( nDepends > 0, "Inconsistency in dependencies" ); - --nDepends; - if ( nDepends == 0 ) { queueTask( t ); } + for ( auto t : m_dependencies[task] ) { + wlock lock( m_mutex ); + uint& nDepends = m_remainingDependencies[t]; + CORE_ASSERT( nDepends > 0, "Inconsistency in dependencies" ); + --nDepends; + if ( nDepends == 0 ) { taskQueue.push_front( TaskId { t } ); } + } } } flushTaskQueue(); @@ -239,9 +260,10 @@ void TaskQueue::runTasksInThisThread() { void TaskQueue::waitForTasks() { bool isFinished = false; while ( !isFinished ) { + // TODO : use a notifier for task queue empty. { - std::lock_guard lock( m_taskQueueMutex ); + rlock lock( m_mutex ); isFinished = ( m_taskQueue.empty() && m_processingTasks == 0 ); } if ( !isFinished ) { std::this_thread::yield(); } @@ -253,7 +275,8 @@ const std::vector& TaskQueue::getTimerData() { } void TaskQueue::flushTaskQueue() { - std::lock_guard lock( m_taskMutex ); + m_threadNotifier.notify_all(); + wlock lock( m_mutex ); CORE_ASSERT( m_processingTasks == 0, "You have tasks still in process" ); CORE_ASSERT( m_taskQueue.empty(), " You have unprocessed tasks " ); @@ -270,8 +293,7 @@ void TaskQueue::runThread( uint id ) { // Acquire mutex. { - std::unique_lock lock( m_taskQueueMutex ); - + wlock lock( m_mutex ); // Wait for a new task m_threadNotifier.wait( lock, [this]() { return m_shuttingDown || !m_taskQueue.empty(); } ); @@ -288,15 +310,22 @@ void TaskQueue::runThread( uint id ) { // Release mutex. // Run task - m_timerData[task].start = Utils::Clock::now(); - m_timerData[task].threadId = id; - m_tasks[task]->process(); - m_timerData[task].end = Utils::Clock::now(); - + { + { + rlock lock( m_mutex ); + m_timerData[task].start = Utils::Clock::now(); + m_timerData[task].threadId = id; + } + m_tasks[task]->process(); + { + rlock lock( m_mutex ); + m_timerData[task].end = Utils::Clock::now(); + } + } // Critical section : mark task as finished and en-queue dependencies. uint newTasks = 0; { - std::unique_lock lock( m_taskQueueMutex ); + wlock lock( m_mutex ); for ( auto t : m_dependencies[task] ) { uint& nDepends = m_remainingDependencies[t]; CORE_ASSERT( nDepends > 0, "Inconsistency in dependencies" ); @@ -310,7 +339,7 @@ void TaskQueue::runThread( uint id ) { --m_processingTasks; } // If we added new tasks, we wake up one thread to execute it. - if ( newTasks > 0 ) { m_threadNotifier.notify_one(); } + if ( newTasks > 0 ) { m_threadNotifier.notify_all(); } } // End of while(true) } diff --git a/src/Core/Tasks/TaskQueue.hpp b/src/Core/Tasks/TaskQueue.hpp index e2b59752035..72166b32a83 100644 --- a/src/Core/Tasks/TaskQueue.hpp +++ b/src/Core/Tasks/TaskQueue.hpp @@ -4,10 +4,12 @@ #include #include // Ra::Core::TimePoint +#include #include #include #include #include +#include #include #include #include @@ -122,8 +124,18 @@ class RA_CORE_API TaskQueue void resolveDependencies(); private: + /// write lock, only one at a time + using wlock = std::unique_lock; + /// read lock, multiple lock allowed + using rlock = std::shared_lock; + /// Threads working on tasks. std::vector m_workerThreads; + + // + // mutex protected variables. + // + /// Storage for the tasks (task will be deleted after flushQueue()). std::vector> m_tasks; /// For each task, stores which tasks depend on it. @@ -136,10 +148,6 @@ class RA_CORE_API TaskQueue /// Stores the timings of each frame after execution. std::vector m_timerData; - // - // mutex protected variables. - // - /// Number of tasks each task is waiting on. std::vector m_remainingDependencies; /// Queue holding the pending tasks. @@ -148,14 +156,12 @@ class RA_CORE_API TaskQueue uint m_processingTasks; /// Flag to signal threads to quit. - bool m_shuttingDown; + std::atomic_bool m_shuttingDown; /// Variable on which threads wait for new tasks. - std::condition_variable m_threadNotifier; - /// Global mutex over thread-sensitive variables. - std::mutex m_taskQueueMutex; - /// Mutex for task registration (m_tasks, m_dependencies, m_timerData ...), if tasks are - /// registered from multiple threads - std::mutex m_taskMutex; + std::condition_variable_any m_threadNotifier; + + /// mutex for protected variable + mutable std::shared_mutex m_mutex; }; } // namespace Core From 6c73fa75f423c2939712eac4def3b836f6925ec7 Mon Sep 17 00:00:00 2001 From: dlyr Date: Tue, 3 Oct 2023 08:24:05 +0200 Subject: [PATCH 060/176] [core] task queue use condition variable for waitForTasks. --- src/Core/Tasks/TaskQueue.cpp | 14 ++++---------- src/Core/Tasks/TaskQueue.hpp | 1 + 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/Core/Tasks/TaskQueue.cpp b/src/Core/Tasks/TaskQueue.cpp index 06ef3dd6865..18b09c53fa2 100644 --- a/src/Core/Tasks/TaskQueue.cpp +++ b/src/Core/Tasks/TaskQueue.cpp @@ -258,16 +258,9 @@ void TaskQueue::runTasksInThisThread() { } void TaskQueue::waitForTasks() { - bool isFinished = false; - while ( !isFinished ) { - - // TODO : use a notifier for task queue empty. - { - rlock lock( m_mutex ); - isFinished = ( m_taskQueue.empty() && m_processingTasks == 0 ); - } - if ( !isFinished ) { std::this_thread::yield(); } - } + rlock lock( m_mutex ); + m_waitForTasksNotifier.wait( + lock, [this]() { return ( m_taskQueue.empty() && m_processingTasks == 0 ); } ); } const std::vector& TaskQueue::getTimerData() { @@ -337,6 +330,7 @@ void TaskQueue::runThread( uint id ) { // TODO :Easy optimization : grab one of the new task and process it immediately. } --m_processingTasks; + if ( m_processingTasks == 0 ) { m_waitForTasksNotifier.notify_one(); } } // If we added new tasks, we wake up one thread to execute it. if ( newTasks > 0 ) { m_threadNotifier.notify_all(); } diff --git a/src/Core/Tasks/TaskQueue.hpp b/src/Core/Tasks/TaskQueue.hpp index 72166b32a83..9cd7564628b 100644 --- a/src/Core/Tasks/TaskQueue.hpp +++ b/src/Core/Tasks/TaskQueue.hpp @@ -159,6 +159,7 @@ class RA_CORE_API TaskQueue std::atomic_bool m_shuttingDown; /// Variable on which threads wait for new tasks. std::condition_variable_any m_threadNotifier; + std::condition_variable_any m_waitForTasksNotifier; /// mutex for protected variable mutable std::shared_mutex m_mutex; From a1f6aaeda29d8abc0f8d6bf00a3a5b8e232675f9 Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 5 Oct 2023 17:08:09 +0200 Subject: [PATCH 061/176] [core] TaskQueue comments and remove superfluous locks. --- src/Core/Tasks/TaskQueue.cpp | 10 ++++------ src/Core/Tasks/TaskQueue.hpp | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/Core/Tasks/TaskQueue.cpp b/src/Core/Tasks/TaskQueue.cpp index 18b09c53fa2..b238509d9b6 100644 --- a/src/Core/Tasks/TaskQueue.cpp +++ b/src/Core/Tasks/TaskQueue.cpp @@ -212,6 +212,9 @@ void TaskQueue::startTasks() { } void TaskQueue::runTasksInThisThread() { + // this method should not be called between startTasks/waitForTasks, we do not lock anything + // here. + // use local task queue, preventing workers to pickup jobs. std::deque taskQueue; @@ -221,8 +224,6 @@ void TaskQueue::runTasksInThisThread() { // Do a debug check detectCycles(); { - rlock lock( m_mutex ); - // Enqueue all tasks with no dependencies. for ( uint t = 0; t < m_tasks.size(); ++t ) { // only queue non null m_tasks @@ -235,7 +236,6 @@ void TaskQueue::runTasksInThisThread() { while ( !taskQueue.empty() ) { TaskId task; { - wlock lock( m_mutex ); task = taskQueue.back(); taskQueue.pop_back(); } @@ -246,7 +246,6 @@ void TaskQueue::runTasksInThisThread() { m_timerData[task].end = Utils::Clock::now(); for ( auto t : m_dependencies[task] ) { - wlock lock( m_mutex ); uint& nDepends = m_remainingDependencies[t]; CORE_ASSERT( nDepends > 0, "Inconsistency in dependencies" ); --nDepends; @@ -327,12 +326,11 @@ void TaskQueue::runThread( uint id ) { queueTask( t ); ++newTasks; } - // TODO :Easy optimization : grab one of the new task and process it immediately. } --m_processingTasks; if ( m_processingTasks == 0 ) { m_waitForTasksNotifier.notify_one(); } } - // If we added new tasks, we wake up one thread to execute it. + // If we added new tasks, we wake up threads to execute thems. if ( newTasks > 0 ) { m_threadNotifier.notify_all(); } } // End of while(true) } diff --git a/src/Core/Tasks/TaskQueue.hpp b/src/Core/Tasks/TaskQueue.hpp index 9cd7564628b..4d0ee6fee87 100644 --- a/src/Core/Tasks/TaskQueue.hpp +++ b/src/Core/Tasks/TaskQueue.hpp @@ -22,13 +22,27 @@ class Task; namespace Ra { namespace Core { -/** This class allows tasks to be registered and then executed in parallel on separate threads. - * it maintains an internal pool of threads. When instructed, it dispatches the tasks to the +/** @brief This class allows tasks to be registered and then executed in parallel on separate + * threads. + * + * It maintains an internal pool of threads. When instructed, it dispatches the tasks to the * pooled threads. * Task are allowed to have dependencies. A task will be executed only when all its dependencies * are satisfied, i.e. all dependant tasks are finished. * Note that most functions are not thread safe and must not be called when the task queue is * running. + * Typical usage: +\code + TaskQueue taskQueue( 4 ); + auto task = std::make_unique( ... ); + auto tid = taskQueue.registerTask( std::move( task ) ); + // [...] + taskQueue.addDependency( tid, ... ); + // [...] + taskQueue.startTasks(); + taskQueue.waitForTasks(); + taskQueue.flushTaskQueue(); +\endcode */ class RA_CORE_API TaskQueue { @@ -86,7 +100,7 @@ class RA_CORE_API TaskQueue // Task queue operations // - /// Launches the execution of all the threads in the task queue. + /// Launches the execution of all the tasks in the task queue. /// No more tasks should be added at this point. void startTasks(); @@ -94,6 +108,8 @@ class RA_CORE_API TaskQueue /// Return when all tasks are done. Usefull for instance for opengl related tasks that must run /// in the context thread. /// Once tasks are all processed, this method call flushTasksQueue. + /// @warning use either this method, either a startTasks/waitForTasks. calling + /// runTasksInThisThead between startTasks/waitForTasks calls may produce unexpected results. void runTasksInThisThread(); /// Blocks until all tasks and dependencies are finished. From c03f02fed8faa7f15d9c1e0533c2d05bf888f2c3 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Oct 2023 14:01:38 +0000 Subject: [PATCH 062/176] Update version to 1.5.9 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 1cc9c180e26..2b26b8d213c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.8 +1.5.9 From a4e434b515715c8e9308b826aefbefa5bf61a4b2 Mon Sep 17 00:00:00 2001 From: dlyr Date: Wed, 5 Jul 2023 08:22:56 +0200 Subject: [PATCH 063/176] [core] Doc index. --- src/Core/Utils/Index.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Core/Utils/Index.hpp b/src/Core/Utils/Index.hpp index d47ba4d31aa..d8177fb31d5 100644 --- a/src/Core/Utils/Index.hpp +++ b/src/Core/Utils/Index.hpp @@ -32,6 +32,8 @@ class RA_CORE_API Index /// INVALID constexpr bool isInvalid() const; constexpr void setInvalid(); + + /// @brief return an invalid Index static constexpr Index Invalid(); static constexpr Index Max(); From 5ed8d86b8bd25dd6e6ab012882a337d6f7fafa4a Mon Sep 17 00:00:00 2001 From: dlyr Date: Thu, 5 Oct 2023 17:11:46 +0200 Subject: [PATCH 064/176] [pluginbase] Add [[maybe_unused]] on unused args referenced in doc. --- src/PluginBase/RadiumPluginInterface.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PluginBase/RadiumPluginInterface.hpp b/src/PluginBase/RadiumPluginInterface.hpp index 092efb66395..2cac685f029 100644 --- a/src/PluginBase/RadiumPluginInterface.hpp +++ b/src/PluginBase/RadiumPluginInterface.hpp @@ -145,8 +145,8 @@ class RadiumPluginInterface * \warning Allocated renderers are given to the application that takes ownership. They * MUST not be destroyed by the plugin */ - virtual void - addRenderers( std::vector>* /*rds*/ ) {} + virtual void addRenderers( + [[maybe_unused]] std::vector>* rds ) {} /** * Tells if the system will add a file loader @@ -158,8 +158,8 @@ class RadiumPluginInterface * Add the file loader services offered by the plugin * @param fl The set of file loader to add */ - virtual void - addFileLoaders( std::vector>* /*fl*/ ) {} + virtual void addFileLoaders( + [[maybe_unused]] std::vector>* fl ) {} /** * @brief openGlInitialize @@ -181,7 +181,7 @@ class RadiumPluginInterface * and realease it after usage (viewer->doneCurrent()) * @see Ra::Gui::Viewer */ - virtual void openGlInitialize( const Context& /*context*/ ) {} + virtual void openGlInitialize( [[maybe_unused]] const Context& context ) {} /** * Tells if the plugin offer OpenGL based services that need to be initialized after the OpenGL From d37d0a3e6d4bed7f802cc0b04997328f432522ae Mon Sep 17 00:00:00 2001 From: dlyr Date: Fri, 29 Sep 2023 10:14:30 +0200 Subject: [PATCH 065/176] [gui][headless] fix some doxygen errors. --- src/Gui/Widgets/ControlPanel.hpp | 3 --- src/Headless/CLIViewer.hpp | 14 +++++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/Gui/Widgets/ControlPanel.hpp b/src/Gui/Widgets/ControlPanel.hpp index 2e46524c93c..07973c3a2c9 100644 --- a/src/Gui/Widgets/ControlPanel.hpp +++ b/src/Gui/Widgets/ControlPanel.hpp @@ -158,7 +158,6 @@ class RA_GUI_API ControlPanel : public QFrame * \param initial The initial value of the scalar * \param min The min bound of the value * \param max The max bound of the value - * \param dec The display precision (decimals) of the value * \param tooltip The tooltip text */ void addSliderInput( const std::string& name, @@ -175,7 +174,6 @@ class RA_GUI_API ControlPanel : public QFrame * \param initial The initial value of the color * \param min The min bound of the value * \param max The max bound of the value - * \param dec The display precision (decimals) of the value * \param tooltip The tooltip text */ void addPowerSliderInput( const std::string& name, @@ -190,7 +188,6 @@ class RA_GUI_API ControlPanel : public QFrame * \param name The name of the vector * \param callback The function to call when the state changed * \param initial The initial value of the vector - * \param dec The display precision (decimals) of the value * \param tooltip The tooltip text */ template diff --git a/src/Headless/CLIViewer.hpp b/src/Headless/CLIViewer.hpp index cf18d964889..1a394215395 100644 --- a/src/Headless/CLIViewer.hpp +++ b/src/Headless/CLIViewer.hpp @@ -74,7 +74,7 @@ class HEADLESS_API CLIViewer : public CLIBaseApplication public: /** * \brief Construct the viewer using an OpenGL context of the given version - * \param glVersion + * \param context the opengl context, e.g. EglOpenGLContext or GlfwOpenGLContext. */ explicit CLIViewer( std::unique_ptr context ); /// Base destructor @@ -89,11 +89,11 @@ class HEADLESS_API CLIViewer : public CLIBaseApplication * @return 0 if the application is correctly initialized or an application dependant error code * if something went wrong. * - * Supported command line parameters are --help and --file from CLIRadiumApplication - * and the following parameters : - * - --size : the size of the rendered picture + * Supported command line parameters are --help and --file \ from + * CLIRadiumApplication and the following parameters : + * - --size \ : the size of the rendered picture * - --animation : load the Radium animation system - * - --env : load and use the given environment map. + * - --env \ : load and use the given environment map. */ int init( int argc, const char* argv[] ) override; @@ -168,12 +168,12 @@ class HEADLESS_API CLIViewer : public CLIBaseApplication void renderLoop( std::function render ); /** - * Get the filename given using the option --file or -f + * Get the filename given using the option --file \ or -f \ */ inline std::string getDataFileName() const; /** - * Set the filename given using the option --file or -f + * Set the filename given using the option --file \ or -f \ */ inline void setDataFileName( std::string filename ); From b9d4d109af627349db66ca4cf22431d841734a3d Mon Sep 17 00:00:00 2001 From: dlyr Date: Tue, 17 Oct 2023 20:58:29 +0200 Subject: [PATCH 066/176] [doc] update convention regarding doxygen special commands. --- doc/developer/conventions.md | 8 ++++---- doc/developer/develWithRadium.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/developer/conventions.md b/doc/developer/conventions.md index d8881d19769..474df01aeae 100644 --- a/doc/developer/conventions.md +++ b/doc/developer/conventions.md @@ -6,9 +6,8 @@ Mainly inspired by Date: Tue, 17 Oct 2023 20:42:23 +0200 Subject: [PATCH 067/176] [doc] change @ to \ in doxygen comments. --- examples/DrawPrimitives/minimalapp.hpp | 2 +- examples/RawShaderMaterial/main.cpp | 4 +- examples/SimpleAnimation/main.cpp | 2 +- src/Core/Animation/HandleArray.hpp | 14 +-- src/Core/Animation/KeyFramedValue.hpp | 10 +-- src/Core/Animation/Skeleton.hpp | 22 ++--- src/Core/Asset/Camera.hpp | 8 +- src/Core/Asset/LightData.hpp | 6 +- src/Core/Asset/MaterialData.hpp | 2 +- src/Core/Containers/VectorArray.hpp | 14 +-- src/Core/Geometry/Spline.hpp | 28 +++--- src/Core/Geometry/TopologicalMesh.hpp | 20 ++--- src/Core/Geometry/TriangleMesh.hpp | 10 +-- src/Core/Geometry/Volume.hpp | 4 +- .../Geometry/deprecated/TopologicalMesh.hpp | 24 +++--- src/Core/Math/LinearAlgebra.hpp | 2 +- src/Core/Resources/Resources.hpp | 8 +- src/Core/Tasks/TaskQueue.hpp | 4 +- src/Core/Types.hpp | 24 +++--- src/Core/Utils/Attribs.hpp | 28 +++--- src/Core/Utils/Chronometer.hpp | 2 +- src/Core/Utils/Index.hpp | 2 +- src/Core/Utils/TypesUtils.hpp | 16 ++-- src/Engine/Data/BlinnPhongMaterial.hpp | 28 +++--- src/Engine/Data/DrawPrimitives.hpp | 12 +-- src/Engine/Data/EnvironmentTexture.cpp | 2 +- src/Engine/Data/EnvironmentTexture.hpp | 4 +- src/Engine/Data/LambertianMaterial.hpp | 6 +- src/Engine/Data/Material.hpp | 20 ++--- src/Engine/Data/MaterialConverters.hpp | 10 +-- src/Engine/Data/Mesh.hpp | 20 ++--- src/Engine/Data/PlainMaterial.hpp | 6 +- src/Engine/Data/RawShaderMaterial.hpp | 26 +++--- src/Engine/Data/ShaderConfigFactory.hpp | 12 +-- src/Engine/Data/ShaderConfiguration.hpp | 10 +-- src/Engine/Data/ShaderProgram.hpp | 4 +- src/Engine/Data/ShaderProgramManager.hpp | 22 ++--- src/Engine/Data/SimpleMaterial.hpp | 18 ++-- src/Engine/Data/Texture.hpp | 54 ++++++------ src/Engine/Data/TextureManager.hpp | 38 ++++---- src/Engine/Data/VolumeObject.hpp | 2 +- src/Engine/Data/VolumetricMaterial.hpp | 16 ++-- src/Engine/RadiumEngine.cpp | 2 +- src/Engine/RadiumEngine.hpp | 66 +++++++------- src/Engine/Rendering/DebugRender.hpp | 2 +- src/Engine/Rendering/ForwardRenderer.hpp | 2 +- src/Engine/Rendering/RenderObject.hpp | 38 ++++---- src/Engine/Rendering/RenderObjectManager.hpp | 16 ++-- src/Engine/Rendering/RenderTechnique.cpp | 8 +- src/Engine/Rendering/RenderTechnique.hpp | 64 +++++++------- src/Engine/Rendering/Renderer.hpp | 86 +++++++++---------- src/Engine/Scene/CameraManager.hpp | 2 +- src/Engine/Scene/Component.hpp | 8 +- src/Engine/Scene/DefaultCameraManager.hpp | 2 +- src/Engine/Scene/DefaultLightManager.hpp | 2 +- src/Engine/Scene/EntityManager.hpp | 38 ++++---- src/Engine/Scene/Light.hpp | 30 +++---- src/Engine/Scene/LightManager.hpp | 4 +- src/Engine/Scene/SignalManager.hpp | 12 +-- src/Engine/Scene/System.hpp | 34 ++++---- src/Engine/Scene/SystemDisplay.hpp | 4 +- src/Gui/BaseApplication.hpp | 2 +- .../MaterialParameterEditor.hpp | 4 +- .../ParameterSetEditor/ParameterSetEditor.hpp | 4 +- src/Gui/RadiumWindow/SimpleWindow.hpp | 4 +- src/Gui/SelectionManager/SelectionManager.hpp | 22 ++--- src/Gui/Timeline/Timeline.hpp | 6 +- src/Gui/Timeline/TimelineFrameSelector.hpp | 8 +- src/Gui/TreeModel/TreeModel.hpp | 38 ++++---- src/Gui/Utils/KeyMappingManager.hpp | 6 +- src/Gui/Viewer/CameraManipulator.hpp | 20 ++--- .../Viewer/RotateAroundCameraManipulator.hpp | 4 +- src/Gui/Viewer/Viewer.hpp | 22 ++--- src/Gui/Widgets/ControlPanel.hpp | 8 +- src/Gui/Widgets/MatrixEditor.hpp | 8 +- src/Gui/Widgets/VectorEditor.hpp | 6 +- src/Headless/CLI/App.hpp | 86 +++++++++---------- src/Headless/CLI/Error.hpp | 8 +- src/Headless/CLI/FormatterFwd.hpp | 46 +++++----- src/Headless/CLI/Option.hpp | 66 +++++++------- src/Headless/CLI/Validators.hpp | 8 +- src/Headless/CLIBaseApplication.hpp | 8 +- src/Headless/CLIViewer.hpp | 8 +- src/Headless/OpenGLContext/OpenGLContext.hpp | 26 +++--- src/IO/VolumesLoader/VolumeLoader.hpp | 8 +- src/IO/VolumesLoader/pvmutils.hpp | 26 +++--- src/PluginBase/RadiumPluginInterface.hpp | 60 ++++++------- 87 files changed, 749 insertions(+), 749 deletions(-) diff --git a/examples/DrawPrimitives/minimalapp.hpp b/examples/DrawPrimitives/minimalapp.hpp index 0e6578322d1..cf6cc1ec9b1 100644 --- a/examples/DrawPrimitives/minimalapp.hpp +++ b/examples/DrawPrimitives/minimalapp.hpp @@ -15,7 +15,7 @@ class MinimalApp : public QApplication public: /** IMPORTANT : the argc parameter must be a reference for calling the QApplication constructor - @see http://doc.qt.io/qt-5/qapplication.html#QApplication + \see http://doc.qt.io/qt-5/qapplication.html#QApplication */ MinimalApp( int& argc, char** argv ); ~MinimalApp(); diff --git a/examples/RawShaderMaterial/main.cpp b/examples/RawShaderMaterial/main.cpp index f6be9e9401a..cd1f99516d5 100644 --- a/examples/RawShaderMaterial/main.cpp +++ b/examples/RawShaderMaterial/main.cpp @@ -87,8 +87,8 @@ class MyParameterProvider : public Ra::Engine::Data::ShaderParameterProvider /** * Generate a quad with a ShaderMaterial attached - * @param app - * @return The renderObject associated to the created component. + * \param app + * \return The renderObject associated to the created component. */ std::shared_ptr initQuad( Ra::Gui::BaseApplication& app ) { //! [Creating the quad] diff --git a/examples/SimpleAnimation/main.cpp b/examples/SimpleAnimation/main.cpp index a8e019e8e2d..4e9b0737710 100644 --- a/examples/SimpleAnimation/main.cpp +++ b/examples/SimpleAnimation/main.cpp @@ -32,7 +32,7 @@ * animated Blinn-Phong material to the geometry and update both the transformation and the * diffuse color at each time step. * - * @note This is only for demo purpose. A more simpler approach could be : + * \note This is only for demo purpose. A more simpler approach could be : * - Create and add a geometry component to the Engine geometry system (like in HelloRadium) * - Get the renderobject associated with this component and create an animation component * that associates the RenderObject with an animation controller diff --git a/src/Core/Animation/HandleArray.hpp b/src/Core/Animation/HandleArray.hpp index edc439d708e..dffab5b5c19 100644 --- a/src/Core/Animation/HandleArray.hpp +++ b/src/Core/Animation/HandleArray.hpp @@ -33,7 +33,7 @@ class RA_CORE_API HandleArray virtual ~HandleArray(); /** - * @return the number of transformations + * \return the number of transformations */ inline virtual uint size() const { return m_pose.size(); } @@ -43,19 +43,19 @@ class RA_CORE_API HandleArray virtual void clear(); /** - * @return the current pose in the \p MODE space. + * \return the current pose in the \p MODE space. */ virtual const Pose& getPose( const SpaceType MODE ) const; /** * Set the current pose. - * @param pose the new pose - * @param MODE the space the psoe lives in + * \param pose the new pose + * \param MODE the space the psoe lives in */ virtual void setPose( const Pose& pose, const SpaceType MODE ); /** - * @return the \p i-th transformation in \p MODE space. + * \return the \p i-th transformation in \p MODE space. */ virtual const Transform& getTransform( const uint i, const SpaceType MODE ) const; @@ -65,7 +65,7 @@ class RA_CORE_API HandleArray virtual void setTransform( const uint i, const Transform& T, const SpaceType MODE ); /** - * @return the Handle's name + * \return the Handle's name */ inline Label getName() const { return m_name; } @@ -75,7 +75,7 @@ class RA_CORE_API HandleArray inline void setName( const Label& name ) { m_name = name; } /** - * @return the name of the \p i-th transform. + * \return the name of the \p i-th transform. */ inline Label getLabel( const uint i ) const; diff --git a/src/Core/Animation/KeyFramedValue.hpp b/src/Core/Animation/KeyFramedValue.hpp index be0202d7d2a..3abcd97ebf0 100644 --- a/src/Core/Animation/KeyFramedValue.hpp +++ b/src/Core/Animation/KeyFramedValue.hpp @@ -25,7 +25,7 @@ class RA_CORE_API KeyFramedValueBase virtual ~KeyFramedValueBase() {} /** - * @returns the number of keyframes. + * \returns the number of keyframes. */ virtual inline size_t size() const = 0; @@ -95,12 +95,12 @@ class KeyFramedValue : public KeyFramedValueBase /// \{ /** - * @returns the number of keyframes. + * \returns the number of keyframes. */ inline size_t size() const override { return m_keyframes.size(); } /** - * @returns the collection of keyframes. + * \returns the collection of keyframes. */ const KeyFrames& getKeyFrames() const { return m_keyframes; } @@ -213,7 +213,7 @@ class KeyFramedValue : public KeyFramedValueBase /// \{ /** - * @returns true if *this and \p keyframe have the exact same keyframes, + * \returns true if *this and \p keyframe have the exact same keyframes, * false otherwise. */ inline bool operator==( const KeyFramedValue& keyframe ) const { @@ -221,7 +221,7 @@ class KeyFramedValue : public KeyFramedValueBase } /** - * @returns true if *this and \p keyframe do not have the exact same keyframes, + * \returns true if *this and \p keyframe do not have the exact same keyframes, * false otherwise. */ inline bool operator!=( const KeyFramedValue& keyframe ) const { diff --git a/src/Core/Animation/Skeleton.hpp b/src/Core/Animation/Skeleton.hpp index e6e1e9a7f37..1338c86055e 100644 --- a/src/Core/Animation/Skeleton.hpp +++ b/src/Core/Animation/Skeleton.hpp @@ -51,19 +51,19 @@ class RA_CORE_API Skeleton : public HandleArray /** * Add a new root transform to the skeleton. - * @param T the joint transform associated to the new bone - * @param label the name for the new joint - * @return the index of the new joint + * \param T the joint transform associated to the new bone + * \param label the name for the new joint + * \return the index of the new joint */ uint addRoot( const Transform& T = Transform::Identity(), const Label label = "" ); /** * Add a new joint transform to the skeleton. - * @param parent the index of the joint's parent in the hierarchy - * @param T the joint transform associated to the new bone - * @param MODE SpaceType of T (either SpaceType::LOCAL or SpaceType::MODEL) - * @param label the name for the new joint - * @return the index of the new joint + * \param parent the index of the joint's parent in the hierarchy + * \param T the joint transform associated to the new bone + * \param MODE SpaceType of T (either SpaceType::LOCAL or SpaceType::MODEL) + * \param label the name for the new joint + * \return the index of the new joint */ uint addBone( const uint parent, const Transform& T = Transform::Identity(), @@ -72,9 +72,9 @@ class RA_CORE_API Skeleton : public HandleArray /** * Get the i-th bone endpoints in Model space. - * @param i the bone index - * @param[out] startOut the bone's start point - * @param[out] endOut the bone's end point + * \param i the bone index + * \param[out] startOut the bone's start point + * \param[out] endOut the bone's end point * * \note If the i-th bone is a leaf, then \p startOut == \p endOut. */ diff --git a/src/Core/Asset/Camera.hpp b/src/Core/Asset/Camera.hpp index 6aa9c782ec3..3fc45c67403 100644 --- a/src/Core/Asset/Camera.hpp +++ b/src/Core/Asset/Camera.hpp @@ -224,15 +224,15 @@ class RA_CORE_API Camera Scalar m_zFar { 1000_ra }; ///< Z Far plane distance /// \name Perspective projection parameters - ///@{ + ///\{ Scalar m_fov { Core::Math::PiDiv4 }; ///< Horizontal Field Of View - ///@} + ///\} /// \name Orthographic projection parameters - ///@{ + ///\{ Scalar m_xmag { 1_ra }; Scalar m_ymag { 1_ra }; - ///@} + ///\} }; inline Core::Transform Camera::getFrame() const { diff --git a/src/Core/Asset/LightData.hpp b/src/Core/Asset/LightData.hpp index f6659196ea3..1619a73f41e 100644 --- a/src/Core/Asset/LightData.hpp +++ b/src/Core/Asset/LightData.hpp @@ -63,7 +63,7 @@ class RA_CORE_API LightData : public AssetData * Copy constructor. * As a Light a a union like object, no default copy constructor could be generated. This will * take care of copying the good members of the union. - * @param data + * \param data */ LightData( const LightData& data ); @@ -79,13 +79,13 @@ class RA_CORE_API LightData : public AssetData /** * Acces to the local frame of the light. - * @return the local frame + * \return the local frame */ inline const Eigen::Matrix& getFrame() const; /** * Set the local frame of the light. - * @param frame the local frame + * \param frame the local frame */ inline void setFrame( const Eigen::Matrix& frame ); diff --git a/src/Core/Asset/MaterialData.hpp b/src/Core/Asset/MaterialData.hpp index fce815bf100..052427e19ca 100644 --- a/src/Core/Asset/MaterialData.hpp +++ b/src/Core/Asset/MaterialData.hpp @@ -9,7 +9,7 @@ namespace Ra { namespace Core { namespace Asset { -/** @brief represent material data loaded by a file loader. +/** \brief represent material data loaded by a file loader. * Material data must be identified by a unique name. * Radium Engine reserves the following names * "AbstractMaterial" --> unknown material, might serve for error management diff --git a/src/Core/Containers/VectorArray.hpp b/src/Core/Containers/VectorArray.hpp index 42da94d31b7..9b6f93c87c7 100644 --- a/src/Core/Containers/VectorArray.hpp +++ b/src/Core/Containers/VectorArray.hpp @@ -26,7 +26,7 @@ struct VectorArrayTypeHelper : public VectorArrayTypeHelperInternal< std::is_base_of, V>::value> {}; /** - * @brief This class implements ContainerIntrospectionInterface for AlignedStdVector. + * \brief This class implements ContainerIntrospectionInterface for AlignedStdVector. * * It provides Eigen::Map functionality if the underlying component allows it (i.e. fixed size). */ @@ -51,20 +51,20 @@ class VectorArray : public AlignedStdVector, public Utils::ContainerIntrospec /** Inheriting constructors from std::vector */ using AlignedStdVector::AlignedStdVector; - /** @name Container Introsection implementation */ - /// @{ + /** \name Container Introsection implementation */ + /// \{ size_t getSize() const override { return this->size(); } size_t getNumberOfComponents() const override { return std::max( 0, NumberOfComponents ); } size_t getBufferSize() const override { return getSize() * sizeof( V ); } int getStride() const override { return sizeof( V ); } const void* dataPtr() const override { return this->data(); } - /// @} + /// \} - /** @name Eigen::Map getter + /** \name Eigen::Map getter * Map data to an Eigen::Matrix, only defined when NumberOfComponents > 0 (e.g. for arithmetic * types and fixed size eigen vectors). */ - /// @{ + /// \{ /** Returns the array as an Eigen Matrix Map. */ template std::enable_if_t<( N > 0 ), MatrixMap> getMap() { @@ -82,7 +82,7 @@ class VectorArray : public AlignedStdVector, public Utils::ContainerIntrospec TypeHelper::NumberOfComponents, Eigen::Index( this->size() ) ); } - /// @} + /// \} }; template diff --git a/src/Core/Geometry/Spline.hpp b/src/Core/Geometry/Spline.hpp index ee31500b6c1..80529fa169c 100644 --- a/src/Core/Geometry/Spline.hpp +++ b/src/Core/Geometry/Spline.hpp @@ -11,13 +11,13 @@ namespace Ra { namespace Core { namespace Geometry { /** - * @class Spline + * \class Spline * - * @brief Handling spline curves of arbitrary dimensions - * @note This class use the efficient blossom algorithm to compute a position on + * \brief Handling spline curves of arbitrary dimensions + * \note This class use the efficient blossom algorithm to compute a position on * the curve. - * @tparam D : dimension of the curve. - * @tparam K :order of the curve (min 2) + * \tparam D : dimension of the curve. + * \tparam K :order of the curve (min 2) */ template class Spline @@ -32,7 +32,7 @@ class Spline public: /// Type of the nodal vector - /// @param type : nodal vector type (uniform, open_uniform) + /// \param type : nodal vector type (uniform, open_uniform) /// This will define the behavior of the spline with its control points /// as well as its speed according to its parameter. explicit inline Spline( Type type = OPEN_UNIFORM ); @@ -47,7 +47,7 @@ class Spline inline void setType( Type type ); /// Evaluate position of the spline - /// @param u : curve parameter ranging from [0; 1] + /// \param u : curve parameter ranging from [0; 1] inline Vector f( Scalar u ) const; /// Evaluate speed of the spline @@ -55,7 +55,7 @@ class Spline private: // ------------------------------------------------------------------------- - /// @name Class tools + /// \name Class tools // ------------------------------------------------------------------------- inline void assertSplines() const; @@ -71,14 +71,14 @@ class Spline inline void setNodeToOpenUniform(); /// Evaluate the equation of a splines using the blossom algorithm - /// @param u : the curve parameter which range from the values + /// \param u : the curve parameter which range from the values /// [node[k-1]; node[point.size()]] - /// @param point : the control points which size must be at least equal to + /// \param point : the control points which size must be at least equal to /// the order of the spline (point.size() >= k) - /// @param k : the spline order (degree == k-1) - /// @param node : the nodal vector which defines the speed of the spline + /// \param k : the spline order (degree == k-1) + /// \param node : the nodal vector which defines the speed of the spline /// parameter u. The nodal vector size must be equal to (k + point.size()) - /// @param off : offset to apply to the nodal vector 'node' before reading + /// \param off : offset to apply to the nodal vector 'node' before reading /// from it. this is useful to compute derivatives. static inline Vector eval( Scalar u, const Core::VectorArray& points, @@ -92,7 +92,7 @@ class Spline uint k ); // ------------------------------------------------------------------------- - /// @name attributes + /// \name attributes // ------------------------------------------------------------------------- Core::VectorArray m_points; ///< Control points diff --git a/src/Core/Geometry/TopologicalMesh.hpp b/src/Core/Geometry/TopologicalMesh.hpp index efc1f4d1a98..b97d843d6f4 100644 --- a/src/Core/Geometry/TopologicalMesh.hpp +++ b/src/Core/Geometry/TopologicalMesh.hpp @@ -85,7 +85,7 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT @@ -172,10 +172,10 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT version above + /// \todo when MultiIndexView will be operational, remove the IndexedGeometry version above template inline void copyAttribToWedgeData( const Ra::Core::Geometry::MultiIndexedGeometry& mesh, unsigned int vindex, const std::vector>& attrHandleVec, VectorArray* to ); - /// @todo when MultiIndexView will be operational, remove the IndexedGeometry version above + /// \todo when MultiIndexView will be operational, remove the IndexedGeometry version above inline void copyMeshToWedgeData( const Ra::Core::Geometry::MultiIndexedGeometry& mesh, unsigned int vindex, const std::vector>& wprop_float, diff --git a/src/Core/Geometry/TriangleMesh.hpp b/src/Core/Geometry/TriangleMesh.hpp index 24b1a4a4e01..9cb5c11c2fb 100644 --- a/src/Core/Geometry/TriangleMesh.hpp +++ b/src/Core/Geometry/TriangleMesh.hpp @@ -92,8 +92,8 @@ class RA_CORE_API AttribArrayGeometry : public AbstractGeometry template inline bool isValid( const Utils::AttribHandle& h ) const; - /// @name Wrappers to Utils::AttribManager. - /// @{ + /// \name Wrappers to Utils::AttribManager. + /// \{ /// \see Utils::AttribManager::getAttrib template @@ -120,13 +120,13 @@ class RA_CORE_API AttribArrayGeometry : public AbstractGeometry inline Utils::AttribBase* getAttribBase( const std::string& name ); /// \see Utils::AttribManager::getAttribBase inline const Utils::AttribBase* getAttribBase( const std::string& name ) const; - ///@} + ///\} /// Check if an attribute exists with the given name. /// \see AttribManager::contains for more info. inline bool hasAttrib( const std::string& name ) const; - ///@{ + ///\{ /// Add attribute with the given name. /// \see AttribManager::addAttrib() for more info. /// \param name: attrib name, uniquely identify the attrib @@ -149,7 +149,7 @@ class RA_CORE_API AttribArrayGeometry : public AbstractGeometry template inline Utils::AttribHandle addAttrib( const std::string& name, const typename Utils::Attrib::Container&& data ); - ///@} + ///\} /// Remove attribute by handle. /// \see AttribManager::removeAttrib() for more info. diff --git a/src/Core/Geometry/Volume.hpp b/src/Core/Geometry/Volume.hpp index 8ac3d2bb03a..9053e44717e 100644 --- a/src/Core/Geometry/Volume.hpp +++ b/src/Core/Geometry/Volume.hpp @@ -66,7 +66,7 @@ class RA_CORE_API AbstractVolume : public AbstractGeometry virtual Utils::optional getValue( Eigen::Ref p ) const = 0; /// \name Status queries - ///@{ + ///\{ /// Return true if the volume is parametric bool isParametric() const; /// Return true if the volume is discrete. Can be cast as AbstractDiscreteVolume @@ -75,7 +75,7 @@ class RA_CORE_API AbstractVolume : public AbstractGeometry bool isDense() const; /// Return true if the volume is sparse (implies #isDiscrete to be true) bool isSparse() const; - ///@} + ///\} /// Print info to the Debug output. Need to be extended by child classes void displayInfo() const; diff --git a/src/Core/Geometry/deprecated/TopologicalMesh.hpp b/src/Core/Geometry/deprecated/TopologicalMesh.hpp index 22df3964b5c..f2ede469673 100644 --- a/src/Core/Geometry/deprecated/TopologicalMesh.hpp +++ b/src/Core/Geometry/deprecated/TopologicalMesh.hpp @@ -126,10 +126,10 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT>& getFloatPropsHandles() const; [[deprecated]] inline const std::vector>& @@ -165,13 +165,13 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT>& getVector4PropsHandles() const; - ///@} + ///\} /** * \name Dealing with normals * Utils to deal with normals when modifying the mesh topology. */ - ///@{ + ///\{ /** * Create a new property for normals on faces of \a mesh. @@ -207,13 +207,13 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT fProp ); - ///@} + ///\} /** * \name Dealing with custom properties * Utils to deal with custom properties of any type when modifying the mesh topology. */ - ///@{ + ///\{ /** * Create a new property for each \a input properties of \a mesh on faces. @@ -267,12 +267,12 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT>& hProps, const std::vector>& fProps ); - ///@} + ///\} /** * \name Deal with all attributes* Utils to deal with the normal and custom properties when modifying the mesh topology.*/ - ///@{ + ///\{ /** * Create a new property for each property of \a mesh on faces. @@ -334,12 +334,12 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT>& vec2Props, std::vector>& vec3Props, std::vector>& vec4Props ); - ///@} + ///\} /** * \name Topological operations */ - ///@{ + ///\{ /** * Apply a 2-4 edge split. * \param eh The handle to the edge to split. @@ -355,7 +355,7 @@ class RA_CORE_API TopologicalMesh : public OpenMesh::PolyMesh_ArrayKernelT diff --git a/src/Core/Math/LinearAlgebra.hpp b/src/Core/Math/LinearAlgebra.hpp index 853212b3004..583f091c1ee 100644 --- a/src/Core/Math/LinearAlgebra.hpp +++ b/src/Core/Math/LinearAlgebra.hpp @@ -82,7 +82,7 @@ inline Scalar angle( const Vector_& v1, const Vector_& v2 ); template inline Vector_ slerp( const Vector_& v1, const Vector_& v2, Scalar t ); -/// @return the projection of point on the plane define by plane and planeNormal +/// \return the projection of point on the plane define by plane and planeNormal inline Vector3 projectOnPlane( const Vector3& planePos, const Vector3& planeNormal, const Vector3& point ); diff --git a/src/Core/Resources/Resources.hpp b/src/Core/Resources/Resources.hpp index 30346474f9a..346372907d1 100644 --- a/src/Core/Resources/Resources.hpp +++ b/src/Core/Resources/Resources.hpp @@ -25,7 +25,7 @@ using namespace Ra::Core::Utils; /** \name Resources path functions * All paths are made absolute using https://en.cppreference.com/w/cpp/filesystem/canonical */ -///@{ +///\{ /// \brief Get the path of Radium internal resources. /// /// Radium resources are located in the Resources directory, searched from Radium lib location. @@ -54,12 +54,12 @@ RA_CORE_API optional getBasePath(); RA_CORE_API optional getResourcesPath( void* symbol = nullptr, const std::string& pattern = "Resources" ); -///@} +///\} /** \name Data path functions * These functions manage a stack of paths so that applications, libraries or plugins could manage * paths to store their generated data in a state stack-based approach. */ -///@{ +///\{ /// \brief Get the current data path. /// /// If an application's data path was not pushed before the call of this function, the default @@ -79,7 +79,7 @@ RA_CORE_API void pushDataPath( std::string datapath ); /// for getDataPath(). /// \return the popped data path. RA_CORE_API std::string popDataPath(); -///@} +///\} } // namespace Resources } // namespace Core diff --git a/src/Core/Tasks/TaskQueue.hpp b/src/Core/Tasks/TaskQueue.hpp index 4d0ee6fee87..35ca114a0e2 100644 --- a/src/Core/Tasks/TaskQueue.hpp +++ b/src/Core/Tasks/TaskQueue.hpp @@ -22,7 +22,7 @@ class Task; namespace Ra { namespace Core { -/** @brief This class allows tasks to be registered and then executed in parallel on separate +/** \brief This class allows tasks to be registered and then executed in parallel on separate * threads. * * It maintains an internal pool of threads. When instructed, it dispatches the tasks to the @@ -108,7 +108,7 @@ class RA_CORE_API TaskQueue /// Return when all tasks are done. Usefull for instance for opengl related tasks that must run /// in the context thread. /// Once tasks are all processed, this method call flushTasksQueue. - /// @warning use either this method, either a startTasks/waitForTasks. calling + /// \warning use either this method, either a startTasks/waitForTasks. calling /// runTasksInThisThead between startTasks/waitForTasks calls may produce unexpected results. void runTasksInThisThread(); diff --git a/src/Core/Types.hpp b/src/Core/Types.hpp index afbc50f3ea9..0099e2a5b5a 100644 --- a/src/Core/Types.hpp +++ b/src/Core/Types.hpp @@ -15,9 +15,9 @@ namespace Ra { /// This namespace contains everything "low level", related to data, datastuctures, and computation. namespace Core { -/// @name +/// \name /// Common vector types -/// @{ +/// \{ using VectorN = Eigen::Matrix; using VectorNf = Eigen::VectorXf; using VectorNd = Eigen::VectorXd; @@ -44,19 +44,19 @@ using Vector1ui = Eigen::Matrix; using Vector2ui = Eigen::Matrix; using Vector3ui = Eigen::Matrix; using Vector4ui = Eigen::Matrix; -/// @} +/// \} -/// @name +/// \name /// Ray types -/// @{ +/// \{ using Ray = Eigen::ParametrizedLine; using Rayf = Eigen::ParametrizedLine; using Rayd = Eigen::ParametrizedLine; -/// @} +/// \} -/// @name +/// \name /// Common matrix types -/// @{ +/// \{ using MatrixN = Eigen::Matrix; using Matrix4 = Eigen::Matrix; using Matrix3 = Eigen::Matrix; @@ -79,11 +79,11 @@ using Diagonal = Eigen::SparseMatrix; // Not optimized for Diagonal matrices, but the operations between // Sparse and Diagonal are not defined using Sparse = Eigen::SparseMatrix; -/// @} +/// \} -/// @name +/// \name /// Transforms and rotations -/// @{ +/// \{ using Quaternion = Eigen::Quaternion; using Quaternionf = Eigen::Quaternionf; using Quaterniond = Eigen::Quaterniond; @@ -103,7 +103,7 @@ using AngleAxisd = Eigen::AngleAxisd; using Translation = Eigen::Translation; using Translationf = Eigen::Translation3f; using Translationd = Eigen::Translation3d; -/// @} +/// \} } // namespace Core } // namespace Ra diff --git a/src/Core/Utils/Attribs.hpp b/src/Core/Utils/Attribs.hpp index 0877e77a0d4..17e0f1c28b3 100644 --- a/src/Core/Utils/Attribs.hpp +++ b/src/Core/Utils/Attribs.hpp @@ -104,20 +104,20 @@ class Attrib : public AttribBase /// lock the content, when done call unlock() inline Container& getDataWithLock(); - /// @{ + /// \{ /// ContainerIntrosectionInterface implementation size_t getSize() const override; size_t getNumberOfComponents() const override; int getStride() const override; size_t getBufferSize() const override; const void* dataPtr() const override; - /// @} + /// \} - ///@{ + ///\{ /// setAttribData, attrib mustn't be locked (it's asserted). void setData( const Container& data ); void setData( Container&& data ); - ///@} + ///\} /// Read-only acccess to the attribute content. inline const Container& data() const; @@ -284,7 +284,7 @@ class RA_CORE_API AttribManager : public Observable template void unlock( const AttribHandle& h ); - ///@{ + ///\{ /// Get attribute by handle. /// \complexity \f$ O(1) \f$ /// \warning There is no check on the handle validity. Attrib is statically cast to T without @@ -298,9 +298,9 @@ class RA_CORE_API AttribManager : public Observable inline Attrib* getAttribPtr( const AttribHandle& h ); template inline const Attrib* getAttribPtr( const AttribHandle& h ) const; - ///@} + ///\} - ///@{ + ///\{ /// Get attribute by name. /// First search name to index correpondance \complexity \f$ O(getNumAttribs()) \f$ /// \warning There is no check on the name validity. Attrib is statically cast to T without @@ -309,9 +309,9 @@ class RA_CORE_API AttribManager : public Observable inline Attrib& getAttrib( const std::string& name ); template inline const Attrib& getAttrib( const std::string& name ) const; - ///@} + ///\} - ///@{ + ///\{ /// Return a AttribBase ptr to the attrib identified by name. /// to give access to AttribBase method, regardless of the type of element /// stored in the attrib. @@ -319,9 +319,9 @@ class RA_CORE_API AttribManager : public Observable inline const AttribBase* getAttribBase( const std::string& name ) const; inline AttribBase* getAttribBase( const Index& idx ); inline const AttribBase* getAttribBase( const Index& idx ) const; - ///@} + ///\} - ///@{ + ///\{ /// Set the data of the attrib h. /// \warning \p h has to be a valid attrib handle, this is not checked. template @@ -331,7 +331,7 @@ class RA_CORE_API AttribManager : public Observable /// \see #setAttrib template inline void setAttrib( const AttribHandle& h, typename AttribHandle::Container&& data ); - ///@} + ///\} /// Add attribute by name. /// notify(name) is called to trigger the observers @@ -353,7 +353,7 @@ class RA_CORE_API AttribManager : public Observable /// \warning There is no check on the attribute type nor data. bool hasSameAttribs( const AttribManager& other ); - ///@{ + ///\{ /// Perform \p fun on each attribute. // This is needed by the user to avoid caring about removed attributes (nullptr) // \todo reimplement as range for @@ -363,7 +363,7 @@ class RA_CORE_API AttribManager : public Observable // \todo keep non const version private template void for_each_attrib( const F& func ); - ///@} + ///\} /// Return the number of attributes inline int getNumAttribs() const; diff --git a/src/Core/Utils/Chronometer.hpp b/src/Core/Utils/Chronometer.hpp index 230253d5d26..61a2a254b8d 100644 --- a/src/Core/Utils/Chronometer.hpp +++ b/src/Core/Utils/Chronometer.hpp @@ -7,7 +7,7 @@ namespace Core { namespace Utils { /**! - * @brief The Chrono class represents a chronometer for timing generic functions + * \brief The Chrono class represents a chronometer for timing generic functions * in an easy way. * * Example: diff --git a/src/Core/Utils/Index.hpp b/src/Core/Utils/Index.hpp index d8177fb31d5..df3c0ef5984 100644 --- a/src/Core/Utils/Index.hpp +++ b/src/Core/Utils/Index.hpp @@ -33,7 +33,7 @@ class RA_CORE_API Index constexpr bool isInvalid() const; constexpr void setInvalid(); - /// @brief return an invalid Index + /// \brief return an invalid Index static constexpr Index Invalid(); static constexpr Index Max(); diff --git a/src/Core/Utils/TypesUtils.hpp b/src/Core/Utils/TypesUtils.hpp index ac3d962d9e3..d598c1ebcc9 100644 --- a/src/Core/Utils/TypesUtils.hpp +++ b/src/Core/Utils/TypesUtils.hpp @@ -35,26 +35,26 @@ struct TypeList; namespace TypeListInternal { -/// \brief Append any number of types to a @c TypeList -/// \details Defines a new @c TypeList with the provided types appended -/// \tparam ListT The @c TypeList to append to +/// \brief Append any number of types to a \c TypeList +/// \details Defines a new \c TypeList with the provided types appended +/// \tparam ListT The \c TypeList to append to /// \tparam Ts Types to append template struct TSAppendImpl; -/// \brief Partial specialization for a @c TypeList with a list of zero or more +/// \brief Partial specialization for a \c TypeList with a list of zero or more /// types to append -/// \tparam Ts Current types within the @c TypeList +/// \tparam Ts Current types within the \c TypeList /// \tparam OtherTs Other types to append template struct TSAppendImpl, OtherTs...> { using type = TypeList; }; -/// \brief Partial specialization for a @c TypeList with another @c TypeList. +/// \brief Partial specialization for a \c TypeList with another \c TypeList. /// Appends the other TypeList's members. -/// \tparam Ts Types within the first @c TypeList -/// \tparam OtherTs Types within the second @c TypeList +/// \tparam Ts Types within the first \c TypeList +/// \tparam OtherTs Types within the second \c TypeList template struct TSAppendImpl, TypeList> { using type = TypeList; diff --git a/src/Engine/Data/BlinnPhongMaterial.hpp b/src/Engine/Data/BlinnPhongMaterial.hpp index 50980bc1f23..35ebe860a55 100644 --- a/src/Engine/Data/BlinnPhongMaterial.hpp +++ b/src/Engine/Data/BlinnPhongMaterial.hpp @@ -23,7 +23,7 @@ class ShaderProgram; /** * Implementation of the Blinn-Phong Material BSDF. - * @todo due to "Material.glsl" interface modification, must test this version with all plugins, + * \todo due to "Material.glsl" interface modification, must test this version with all plugins, * apps, ... that uses Radium Renderer */ class RA_ENGINE_API BlinnPhongMaterial final : public Material, public ParameterSetEditingInterface @@ -38,12 +38,12 @@ class RA_ENGINE_API BlinnPhongMaterial final : public Material, public Parameter EIGEN_MAKE_ALIGNED_OPERATOR_NEW /** * Construct a named Blinn-Phongmaterial - * @param instanceName The name of this instance of the material + * \param instanceName The name of this instance of the material */ explicit BlinnPhongMaterial( const std::string& instanceName ); /** * Destructor. - * @note The material does not have ownership on its texture. This destructor do not delete the + * \note The material does not have ownership on its texture. This destructor do not delete the * associated textures. */ ~BlinnPhongMaterial() override; @@ -54,15 +54,15 @@ class RA_ENGINE_API BlinnPhongMaterial final : public Material, public Parameter /** * Add an already existing texture to control the specified BSDF parameter. - * @param semantic The texture semantic - * @param texture The texture to use + * \param semantic The texture semantic + * \param texture The texture to use */ inline void addTexture( const TextureSemantic& semantic, Texture* texture ); /** * Get the texture associated to the given semantic. - * @param semantic - * @return + * \param semantic + * \return */ inline Texture* getTexture( const TextureSemantic& semantic ) const; @@ -81,7 +81,7 @@ class RA_ENGINE_API BlinnPhongMaterial final : public Material, public Parameter /** * Get a json containing metadata about the parameters of the material. - * @return the metadata in json format + * \return the metadata in json format */ inline nlohmann::json getParametersMetadata() const override; @@ -99,9 +99,9 @@ class RA_ENGINE_API BlinnPhongMaterial final : public Material, public Parameter /** * Add an new texture, from a TextureData, to control the specified BSDF parameter. - * @param semantic The texture semantic - * @param texture The texture to use (file) - * @return the corresponding TextureData struct + * \param semantic The texture semantic + * \param texture The texture to use (file) + * \return the corresponding TextureData struct */ inline TextureParameters& addTexture( const TextureSemantic& semantic, const TextureParameters& texture ); @@ -113,9 +113,9 @@ class RA_ENGINE_API BlinnPhongMaterial final : public Material, public Parameter /** * Add an new texture, from a given file, to control the specified BSDF parameter. - * @param semantic The texture semantic - * @param texture The texture to use (file) - * @return the corresponding TextureData struct + * \param semantic The texture semantic + * \param texture The texture to use (file) + * \return the corresponding TextureData struct */ inline TextureParameters& addTexture( const TextureSemantic& semantic, const std::string& texture ); diff --git a/src/Engine/Data/DrawPrimitives.hpp b/src/Engine/Data/DrawPrimitives.hpp index 065549be6d8..90866409d27 100644 --- a/src/Engine/Data/DrawPrimitives.hpp +++ b/src/Engine/Data/DrawPrimitives.hpp @@ -27,19 +27,19 @@ class LineMesh; /// A set of convenient functions to instantiate simple displays such as points, lines, etc. /// note that objects will be drawn in their entity's local frame. -/// For "instant" debug drawing, @see DebugDisplay. +/// For "instant" debug drawing, \see DebugDisplay. namespace DrawPrimitives { using MeshPtr = std::shared_ptr; using LineMeshPtr = std::shared_ptr; using AttribArrayDisplayablePtr = std::shared_ptr; -///@{ +///\{ /// Renturn a render object to display the given geometry RA_ENGINE_API Rendering::RenderObject* Primitive( Scene::Component* comp, const MeshPtr& mesh ); RA_ENGINE_API Rendering::RenderObject* Primitive( Scene::Component* comp, const LineMeshPtr& mesh ); RA_ENGINE_API Rendering::RenderObject* Primitive( Scene::Component* comp, const AttribArrayDisplayablePtr& mesh ); -///@} +///\} /// Displays given point shown as the crossing of 3 lines of length 'scale' RA_ENGINE_API LineMeshPtr Point( const Core::Vector3& point, @@ -78,7 +78,7 @@ RA_ENGINE_API MeshPtr QuadStrip( const Core::Vector3& a, /// Displays circle computed with given center and radius, /// in plane normal to given vector in wireframe -/// @note normal must be a normalized vector. +/// \note normal must be a normalized vector. RA_ENGINE_API LineMeshPtr Circle( const Core::Vector3& center, const Core::Vector3& normal, Scalar radius, @@ -87,7 +87,7 @@ RA_ENGINE_API LineMeshPtr Circle( const Core::Vector3& center, /// Displays arc of a circle computed with given center, radius and angle /// in plane normal to given vector in wireframe -/// @note normal must be a normalized vector. +/// \note normal must be a normalized vector. RA_ENGINE_API LineMeshPtr CircleArc( const Core::Vector3& center, const Core::Vector3& normal, Scalar radius, @@ -115,7 +115,7 @@ RA_ENGINE_API MeshPtr Capsule( const Core::Vector3& p1, /// Displays disk (filled circle) computed with given center and radius, /// in plane normal to given vector in wireframe -/// @note normal must be a normalized vector. +/// \note normal must be a normalized vector. RA_ENGINE_API MeshPtr Disk( const Core::Vector3& center, const Core::Vector3& normal, Scalar radius, diff --git a/src/Engine/Data/EnvironmentTexture.cpp b/src/Engine/Data/EnvironmentTexture.cpp index 3fda194fe83..b9197a6b971 100644 --- a/src/Engine/Data/EnvironmentTexture.cpp +++ b/src/Engine/Data/EnvironmentTexture.cpp @@ -458,7 +458,7 @@ void EnvironmentTexture::computeSHMatrices() { m_shcoefs[i][j] = 0.f; } } - /// @todo replace this integration to use a sphere sampler ... + /// \todo replace this integration to use a sphere sampler ... /// Must evaluate the elementary solid angle for each sample constexpr Scalar dtheta = 0.005_ra; constexpr Scalar dphi = 0.005_ra; diff --git a/src/Engine/Data/EnvironmentTexture.hpp b/src/Engine/Data/EnvironmentTexture.hpp index 9f71f1a242c..5e2143bec29 100644 --- a/src/Engine/Data/EnvironmentTexture.hpp +++ b/src/Engine/Data/EnvironmentTexture.hpp @@ -33,7 +33,7 @@ class RA_ENGINE_API EnvironmentTexture * Constructors and destructor follow the 'rule of five' * https://en.cppreference.com/w/cpp/language/rule_of_three */ - /** @{ */ + /** \{ */ /** * \brief Construct an envmap from a file. @@ -69,7 +69,7 @@ class RA_ENGINE_API EnvironmentTexture EnvironmentTexture& operator=( EnvironmentTexture&& ) = default; /// destructor ~EnvironmentTexture() = default; - /**@}*/ + /**\}*/ /** * \brief Get the name used to construct the environment texture diff --git a/src/Engine/Data/LambertianMaterial.hpp b/src/Engine/Data/LambertianMaterial.hpp index 220cf2e3ab2..d853d8137c3 100644 --- a/src/Engine/Data/LambertianMaterial.hpp +++ b/src/Engine/Data/LambertianMaterial.hpp @@ -21,13 +21,13 @@ class RA_ENGINE_API LambertianMaterial final : public SimpleMaterial public: /** * Construct a named Lambertian material - * @param instanceName The name of the material + * \param instanceName The name of the material */ explicit LambertianMaterial( const std::string& instanceName ); /** * Destructor. - * @note The material does not have ownership on its texture nor its shaders. + * \note The material does not have ownership on its texture nor its shaders. * This destructor do not delete the associated textures and the corresponding shaders. */ ~LambertianMaterial() override; @@ -50,7 +50,7 @@ class RA_ENGINE_API LambertianMaterial final : public SimpleMaterial /** * Get a json containing metadata about the parameters of the material. * - * @return the metadata in json format + * \return the metadata in json format */ nlohmann::json getParametersMetadata() const override; diff --git a/src/Engine/Data/Material.hpp b/src/Engine/Data/Material.hpp index bc6b64bc262..9c20af73ced 100644 --- a/src/Engine/Data/Material.hpp +++ b/src/Engine/Data/Material.hpp @@ -40,16 +40,16 @@ class RA_ENGINE_API Material : public Data::ShaderParameterProvider protected: /** * Creates a named material with the given aspect - * @param instanceName - * @param materialName - * @param aspect + * \param instanceName + * \param materialName + * \param aspect */ explicit Material( const std::string& instanceName, const std::string& materialName, MaterialAspect aspect = MaterialAspect::MAT_OPAQUE ); /** Change the Material Name - * @note This method should be used carefully as the name is a key for render technique factory + * \note This method should be used carefully as the name is a key for render technique factory */ inline void setMaterialName( std::string newName ) { m_materialName = std::move( newName ); } @@ -57,29 +57,29 @@ class RA_ENGINE_API Material : public Data::ShaderParameterProvider virtual ~Material() = default; /** - * @return the name of the material instance + * \return the name of the material instance */ inline const std::string& getInstanceName() const { return m_instanceName; } /** - * @return the name of the material, can be used a UUID - * @note the material name is expected to be used to define the ShaderConfiguration name + * \return the name of the material, can be used a UUID + * \note the material name is expected to be used to define the ShaderConfiguration name */ inline const std::string& getMaterialName() const { return m_materialName; } /** set the aspect (MAT_OPAQUE or MAT_TRANSPARENT) of the material. - * @param aspect + * \param aspect */ inline void setMaterialAspect( const MaterialAspect& aspect ) { m_aspect = aspect; } /** Get the aspect (MAT_OPAQUE or MAT_TRANSPARENT) of the material. * - * @return the current aspect of the Material + * \return the current aspect of the Material */ inline const MaterialAspect& getMaterialAspect() const { return m_aspect; } /** Test if material is transperent. - * @return true if the material is transparent + * \return true if the material is transparent */ virtual bool isTransparent() const; diff --git a/src/Engine/Data/MaterialConverters.hpp b/src/Engine/Data/MaterialConverters.hpp index dcff906d014..5bac97aca23 100644 --- a/src/Engine/Data/MaterialConverters.hpp +++ b/src/Engine/Data/MaterialConverters.hpp @@ -35,7 +35,7 @@ namespace Data { * - a function with bind parameters .... * The function is in charge of converting a concrete Ra::Core::Asset::MaterialData* to a concrete * Ra::Engine::Material* according to the type of material described by the string ... - @see documentation on materials for instructions on how to extend the material system + \see documentation on materials for instructions on how to extend the material system */ namespace EngineMaterialConverters { @@ -54,20 +54,20 @@ using RadiumMaterialPtr = Ra::Engine::Data::Material*; using ConverterFunction = std::function; /** register a new material converter - * @return true if converter added, false else (e.g, a converter with the same name exists) + * \return true if converter added, false else (e.g, a converter with the same name exists) */ RA_ENGINE_API bool registerMaterialConverter( const std::string& name, ConverterFunction converter ); /** remove a material converter - * @return true if converter removed, false else (e.g, a converter with the same name does't + * \return true if converter removed, false else (e.g, a converter with the same name does't * exists) */ RA_ENGINE_API bool removeMaterialConverter( const std::string& name ); /** - * @param name name of the material to convert - * @return a pair containing the search result and, if true, the functor to call to convert the + * \param name name of the material to convert + * \return a pair containing the search result and, if true, the functor to call to convert the * material */ RA_ENGINE_API std::pair getMaterialConverter( const std::string& name ); diff --git a/src/Engine/Data/Mesh.hpp b/src/Engine/Data/Mesh.hpp index 5f97b7ddc70..06df02d4768 100644 --- a/src/Engine/Data/Mesh.hpp +++ b/src/Engine/Data/Mesh.hpp @@ -53,7 +53,7 @@ class RA_ENGINE_API AttribArrayDisplayable : public Displayable public: /// Render mode enum used when render()/ /// values taken from OpenGL specification - /// @see https://www.khronos.org/registry/OpenGL/api/GL/glcorearb.h + /// \see https://www.khronos.org/registry/OpenGL/api/GL/glcorearb.h enum MeshRenderMode : uint { RM_POINTS = 0x0000, RM_LINES = 0x0001, // decimal value: 1 @@ -87,9 +87,9 @@ class RA_ENGINE_API AttribArrayDisplayable : public Displayable /// Get the render mode. inline MeshRenderMode getRenderMode() const; - /// @name + /// \name /// Mark attrib data as dirty, forcing an update of the OpenGL buffer. - ///@{ + ///\{ /// Use g_attribName to find the corresponding name and call setDirty(const std::string& name). /// \param type: the data to set to MeshAttrib @@ -101,18 +101,18 @@ class RA_ENGINE_API AttribArrayDisplayable : public Displayable /// If index is greater than then number of buffer, this function as no effect. /// \param index: the data buffer index to set to dirty. void setDirty( unsigned int index ); - ///@} + ///\} /// This function is called at the start of the rendering. /// It will update the necessary openGL buffers. void updateGL() override = 0; - /// @name + /// \name /// Core::Geometry getters. - ///@{ + ///\{ virtual const Core::Geometry::AttribArrayGeometry& getAttribArrayGeometry() const = 0; virtual Core::Geometry::AttribArrayGeometry& getAttribArrayGeometry() = 0; - ///@} + ///\} /// \brief Get opengl's vbo handle (uint) corresponding to attrib \b name. /// @@ -237,9 +237,9 @@ class CoreGeometryDisplayable : public AttribArrayDisplayable // no need to detach observer in dtor since CoreGeometry is owned by this, and CoreGeometry dtor // will detachAll observers. - /// @name + /// \name /// Core::Geometry getters - ///@{ + ///\{ inline const Core::Geometry::AbstractGeometry& getAbstractGeometry() const override; inline Core::Geometry::AbstractGeometry& getAbstractGeometry() override; @@ -248,7 +248,7 @@ class CoreGeometryDisplayable : public AttribArrayDisplayable inline const CoreGeometry& getCoreGeometry() const; inline CoreGeometry& getCoreGeometry(); - ///@} + ///\} /// Helper function that calls Ra::Core::CoreGeometry::addAttrib() template diff --git a/src/Engine/Data/PlainMaterial.hpp b/src/Engine/Data/PlainMaterial.hpp index 91ec2252644..3568e0a4825 100644 --- a/src/Engine/Data/PlainMaterial.hpp +++ b/src/Engine/Data/PlainMaterial.hpp @@ -21,13 +21,13 @@ class RA_ENGINE_API PlainMaterial final : public SimpleMaterial public: /** * Construct a named Plain material - * @param name The name of the material + * \param name The name of the material */ explicit PlainMaterial( const std::string& instanceName ); /** * Destructor. - * @note The material does not have ownership on its texture nor its shaders. + * \note The material does not have ownership on its texture nor its shaders. * This destructor do not delete the associated textures and the corresponding shaders. */ ~PlainMaterial() override; @@ -50,7 +50,7 @@ class RA_ENGINE_API PlainMaterial final : public SimpleMaterial /** * Get a json containing metadata about the parameters of the material. * - * @return the metadata in json format + * \return the metadata in json format */ nlohmann::json getParametersMetadata() const override; diff --git a/src/Engine/Data/RawShaderMaterial.hpp b/src/Engine/Data/RawShaderMaterial.hpp index 7d797e80e9c..c0577c5dead 100644 --- a/src/Engine/Data/RawShaderMaterial.hpp +++ b/src/Engine/Data/RawShaderMaterial.hpp @@ -27,10 +27,10 @@ class RA_ENGINE_API RawShaderMaterialData : public MaterialData public: /** * Construct a shaderMaterialData from shader source and parameter provider - * @param instanceName The name of the material instance - * @param shaders The shaders to use for each pipeline stage (only one source per stage is + * \param instanceName The name of the material instance + * \param shaders The shaders to use for each pipeline stage (only one source per stage is * allowed) - * @param paramProvider The parameter provider for the resulting program + * \param paramProvider The parameter provider for the resulting program */ RawShaderMaterialData( const std::string& instanceName, @@ -75,10 +75,10 @@ class RA_ENGINE_API RawShaderMaterial : public Material public: /** * Construct a named material from raw shaders - * @param instanceName The name of the material instance - * @param shaders The shaders to use for each pipeline stage (only one source per stage is + * \param instanceName The name of the material instance + * \param shaders The shaders to use for each pipeline stage (only one source per stage is * allowed) - * @param paramProvider The parameter provider for the resulting program + * \param paramProvider The parameter provider for the resulting program */ explicit RawShaderMaterial( const std::string& instanceName, @@ -97,13 +97,13 @@ class RA_ENGINE_API RawShaderMaterial : public Material /** * Override of the `getParameters()` method from Material - * @return + * \return */ inline Data::RenderParameters& getParameters() override; /** * Override of the `const getParameters() const` method from Material - * @return + * \return */ inline const Data::RenderParameters& getParameters() const override; @@ -114,11 +114,11 @@ class RA_ENGINE_API RawShaderMaterial : public Material /** * Update the shaders of the material. - * @note the given shaders array is considered as a remplacement of the current shader array. - * @param instanceName The name of the material instance - * @param shaders The shaders to use for each pipeline stage (only one source per stage is + * \note the given shaders array is considered as a remplacement of the current shader array. + * \param instanceName The name of the material instance + * \param shaders The shaders to use for each pipeline stage (only one source per stage is * allowed) - * @param paramProvider The parameter provider for the resulting program. If not given, the old + * \param paramProvider The parameter provider for the resulting program. If not given, the old * provider will be kept. */ void updateShaders( const std::vector>& shaders, @@ -146,7 +146,7 @@ class RA_ENGINE_API RawShaderMaterial : public Material private: /** * Compute the unique key that identify this material in shaders and technique factories - * @return + * \return */ std::string computeKey(); diff --git a/src/Engine/Data/ShaderConfigFactory.hpp b/src/Engine/Data/ShaderConfigFactory.hpp index 8afb62052a6..5d5007fa693 100644 --- a/src/Engine/Data/ShaderConfigFactory.hpp +++ b/src/Engine/Data/ShaderConfigFactory.hpp @@ -16,22 +16,22 @@ namespace Data { namespace ShaderConfigurationFactory { /** * Add a configuration to the factory - * @note In case of name collision, the configuration is not added to the factory - * @param config + * \note In case of name collision, the configuration is not added to the factory + * \param config */ RA_ENGINE_API void addConfiguration( const Data::ShaderConfiguration& config ); /** * Remove a configuration from the factory - * @param config - * @return true if the configuration was found and removed, else false + * \param config + * \return true if the configuration was found and removed, else false */ RA_ENGINE_API bool removeConfiguration( const std::string& configName ); /** * Get a configuration from the factory - * @param name The configuration to get - * @return The configuration if it exists, std::nullopt otherwise + * \param name The configuration to get + * \return The configuration if it exists, std::nullopt otherwise */ RA_ENGINE_API Core::Utils::optional getConfiguration( const std::string& name ); diff --git a/src/Engine/Data/ShaderConfiguration.hpp b/src/Engine/Data/ShaderConfiguration.hpp index 5de13c94223..f47c6355ce2 100644 --- a/src/Engine/Data/ShaderConfiguration.hpp +++ b/src/Engine/Data/ShaderConfiguration.hpp @@ -52,7 +52,7 @@ enum ShaderType : uint { * shader->bind(); * ... * - * @todo : make configuration and program (in the OpenGL sense) be packed. A shader + * \todo : make configuration and program (in the OpenGL sense) be packed. A shader * configuration might contains a ShaderProgram after compiling. This will remove the need for * ShaderConfigurationFactory as ShaderManager will offer the same services. Actually, there is * redundancy between ShaderConfigurationFactory and ShaderProgramManager @@ -81,8 +81,8 @@ class RA_ENGINE_API ShaderConfiguration final /** Add a shader, from a file, given its type * - * @param type the Type of the shader - * @param name the file to load + * \param type the Type of the shader + * \param name the file to load */ void addShader( ShaderType type, const std::string& name ); @@ -90,8 +90,8 @@ class RA_ENGINE_API ShaderConfiguration final * When a shader is added from a glsl source string, when reloading programs, * only the parts coming from files are reloaded. * - * @param type - * @param source the source code of the shader + * \param type + * \param source the source code of the shader */ void addShaderSource( ShaderType type, const std::string& source ); diff --git a/src/Engine/Data/ShaderProgram.hpp b/src/Engine/Data/ShaderProgram.hpp index f52e29cd537..7afe947287d 100644 --- a/src/Engine/Data/ShaderProgram.hpp +++ b/src/Engine/Data/ShaderProgram.hpp @@ -28,7 +28,7 @@ class Texture; /** * Abstraction of OpenGL Shader Program - * @see globjects::Program and https://www.khronos.org/opengl/wiki/Shader + * \see globjects::Program and https://www.khronos.org/opengl/wiki/Shader * */ class RA_ENGINE_API ShaderProgram final @@ -55,7 +55,7 @@ class RA_ENGINE_API ShaderProgram final //! use automatic texture unit computation //! if you want to send a particular texture unit, use setUniform. //! It binds tex on an "arbitrary" tex unit. - //! @warning, call a std::map::find (in O(log(active tex unit in the shader))) + //! \warning, call a std::map::find (in O(log(active tex unit in the shader))) void setUniformTexture( const char* name, Texture* tex ) const; globjects::Program* getProgramObject() const; diff --git a/src/Engine/Data/ShaderProgramManager.hpp b/src/Engine/Data/ShaderProgramManager.hpp index df140eb0b3b..935f3792f7e 100644 --- a/src/Engine/Data/ShaderProgramManager.hpp +++ b/src/Engine/Data/ShaderProgramManager.hpp @@ -49,25 +49,25 @@ class RA_ENGINE_API ShaderProgramManager final * The shader sources corresponding to the configuration will be compiled, linked and verified. * * - * @param config the configuration of the programm to add to the collection - * @return the created shader program. In case of compile/link/verify error, return false - * @note ownership on the returned pointer is keep by the manager. - * @warning this method is *not* reentrant + * \param config the configuration of the programm to add to the collection + * \return the created shader program. In case of compile/link/verify error, return false + * \note ownership on the returned pointer is keep by the manager. + * \warning this method is *not* reentrant */ Core::Utils::optional addShaderProgram( const Data::ShaderConfiguration& config ); /** * Get the shader programm corresponding to the given id - * @param id Name of the programm to retrieve - * @return the shader programm retrieved, nullptr if the program was not in the collection + * \param id Name of the programm to retrieve + * \return the shader programm retrieved, nullptr if the program was not in the collection */ const Data::ShaderProgram* getShaderProgram( const std::string& id ); /** * Get the shader programm corresponding to the given configuration - * @param config Name of the programm to retrieve - * @return the shader programm retrieved, or nullptr when no shader programm corresponding to + * \param config Name of the programm to retrieve + * \return the shader programm retrieved, or nullptr when no shader programm corresponding to * the configuration is found. */ const Data::ShaderProgram* getShaderProgram( const Data::ShaderConfiguration& config ); @@ -88,9 +88,9 @@ class RA_ENGINE_API ShaderProgramManager final * Allows to define named string so that the inclusion mechanism of OpenGL could be efficient. * A name string associates the name that will be used by a \#define directive in a glsl source * file with a file that contains the included glsl source code. - * @param includepath - * @param realfile - * @return false if the string already exists. Print an error message + * \param includepath + * \param realfile + * \return false if the string already exists. Print an error message */ bool addNamedString( const std::string& includepath, const std::string& realfile ); diff --git a/src/Engine/Data/SimpleMaterial.hpp b/src/Engine/Data/SimpleMaterial.hpp index 02a273d386a..54aad032f30 100644 --- a/src/Engine/Data/SimpleMaterial.hpp +++ b/src/Engine/Data/SimpleMaterial.hpp @@ -24,7 +24,7 @@ class RA_ENGINE_API SimpleMaterial : public Material, public ParameterSetEditing /** * Construct a named material - * @param name The name of the material + * \param name The name of the material */ explicit SimpleMaterial( const std::string& instanceName, const std::string& materialName, @@ -32,7 +32,7 @@ class RA_ENGINE_API SimpleMaterial : public Material, public ParameterSetEditing /** * Destructor. - * @note The material does not have ownership on its texture. + * \note The material does not have ownership on its texture. * This destructor do not delete the associated textures. */ ~SimpleMaterial() override; @@ -47,24 +47,24 @@ class RA_ENGINE_API SimpleMaterial : public Material, public ParameterSetEditing * Add an new texture, from a TextureParameters, to control the specified BSDF parameter. * The textures will be finalized (i.e loaded from a file if needed and transformed to OpenGL * texture) only when needed by the updateGL method. - * @param semantic The texture semantic - * @param texture The texture to use (Descriptor of the texture by its parameters) - * @return the corresponding TextureData struct + * \param semantic The texture semantic + * \param texture The texture to use (Descriptor of the texture by its parameters) + * \return the corresponding TextureData struct */ inline TextureParameters& addTexture( const TextureSemantic& semantic, const TextureParameters& texture ); /** * Add an already existing texture to control the specified BSDF parameter. - * @param semantic The texture semantic - * @param texture The texture to use + * \param semantic The texture semantic + * \param texture The texture to use */ inline void addTexture( const TextureSemantic& semantic, Texture* texture ); /** * Get the texture associated to the given semantic. - * @param semantic - * @return + * \param semantic + * \return */ inline Texture* getTexture( const TextureSemantic& semantic ) const; diff --git a/src/Engine/Data/Texture.hpp b/src/Engine/Data/Texture.hpp index bea364fa7bc..05067ef3f6c 100644 --- a/src/Engine/Data/Texture.hpp +++ b/src/Engine/Data/Texture.hpp @@ -36,7 +36,7 @@ namespace Data { * MipMap representation of the texture is automatically generated as soon as the minFilter * parameter is something else than GL_LINEAR or GL_NEAREST * - * @note No coherence checking will be done on the content of this structure. User must ensure + * \note No coherence checking will be done on the content of this structure. User must ensure * coherent data and parameters before creating the OpenGL texture with Texture::initializeGL */ struct TextureParameters { @@ -75,7 +75,7 @@ struct TextureParameters { /// texels[3] <-- GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
/// texels[4] <-- GL_TEXTURE_CUBE_MAP_POSITIVE_Z
/// texels[5] <-- GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
- /// @todo memory allocated for this pointer might be lost at texture deletion as ownership is + /// \todo memory allocated for this pointer might be lost at texture deletion as ownership is /// unclear. void* texels { nullptr }; }; @@ -97,7 +97,7 @@ class RA_ENGINE_API Texture final /** * Texture constructor. No OpenGL initialization is done there. * - * @param texParameters Name of the texture + * \param texParameters Name of the texture */ explicit Texture( const TextureParameters& texParameters ); @@ -106,7 +106,7 @@ class RA_ENGINE_API Texture final */ ~Texture(); - /** @brief Generate the OpenGL representation of the texture according to the stored + /** \brief Generate the OpenGL representation of the texture according to the stored * TextureData. * * Need active OpenGL context. @@ -116,9 +116,9 @@ class RA_ENGINE_API Texture final * * Before uploading texels to the GPU, this method will apply RGB space conversion if needed. * - * @param linearize (default false) : convert the texture from sRGB to Linear RGB color space + * \param linearize (default false) : convert the texture from sRGB to Linear RGB color space * before OpenGL initialisation - * @note This will become soon the only way to generate an Radium Engine OpenGL texture. + * \note This will become soon the only way to generate an Radium Engine OpenGL texture. */ void initializeGL( bool linearize = false ); @@ -126,8 +126,8 @@ class RA_ENGINE_API Texture final * * Need active OpenGL context. * - * @brief Bind the texture to enable its use in a shader. - * @param unit Index of the texture to be bound. If -1 only calls glBindTexture. + * \brief Bind the texture to enable its use in a shader. + * \param unit Index of the texture to be bound. If -1 only calls glBindTexture. */ void bind( int unit = -1 ); @@ -137,7 +137,7 @@ class RA_ENGINE_API Texture final * * Need active OpenGL context. * - * @note, only available since openGL 4.2, not available on MacOs + * \note, only available since openGL 4.2, not available on MacOs * uses m_parameters.internalFormat as format. * see * https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glBindImageTexture.xhtml @@ -146,13 +146,13 @@ class RA_ENGINE_API Texture final void bindImageTexture( int unit, GLint level, GLboolean layered, GLint layer, GLenum access ); /** - * @return Name of the texture. + * \return Name of the texture. */ inline std::string getName() const { return m_textureParameters.name; } /** * Update the cpu representation of data contained by the texture - * @param newData user image pointer to wrap, + * \param newData user image pointer to wrap, * must contain the same number of elements than old data (no test perform). * Texture use here existing pixel memory owned by the calling application. * The texture does not own the pixel storage and will not free/delete that memory, @@ -180,25 +180,25 @@ class RA_ENGINE_API Texture final void linearize(); /** - * @return the pixel format of the texture + * \return the pixel format of the texture */ GLenum format() const { return m_textureParameters.format; } /** - * @return the width of the texture + * \return the width of the texture */ size_t width() const { return m_textureParameters.width; } /** - * @return the height of the texture + * \return the height of the texture */ size_t height() const { return m_textureParameters.height; } /** - * @return the depth of the texture + * \return the depth of the texture */ size_t depth() const { return m_textureParameters.depth; } void* texels() { return m_textureParameters.texels; } /** - * @return the globjects::Texture associated with the texture + * \return the globjects::Texture associated with the texture */ globjects::Texture* texture() const { return m_texture.get(); } @@ -208,12 +208,12 @@ class RA_ENGINE_API Texture final * * This allocate GPU memory to store the new resized texture and, if texels are not nullptr, * upload the new content. - * @note : If texels are not nullptr, user must ensure the texels array is correctly + * \note : If texels are not nullptr, user must ensure the texels array is correctly * dimensioned. - * @param w width of the texture - * @param h height of the texture - * @param d depth of the texture - * @param pix the new texels array corresponding the the new texture dimension + * \param w width of the texture + * \param h height of the texture + * \param d depth of the texture + * \param pix the new texels array corresponding the the new texture dimension */ void resize( size_t w = 1, size_t h = 1, size_t d = 1, void* pix = nullptr ); @@ -221,7 +221,7 @@ class RA_ENGINE_API Texture final const TextureParameters& getParameters() const { return m_textureParameters; } /** get read/write access to texture parameters, need to update - * representation afterward, @see setParameters() + * representation afterward, \see setParameters() */ TextureParameters& getParameters() { return m_textureParameters; } @@ -243,11 +243,11 @@ class RA_ENGINE_API Texture final * The content of the array of texels. * designated by the texel pointer is modified by side effect. * Full transformation as described at https://en.wikipedia.org/wiki/SRGB - * @param texels the array of texels to linearize - * @param numComponent number of color channels. - * @param bool hasAlphaChannel indicate if the last channel is an alpha channel. - * @param gamma the gama value to use (sRGB is 2.4) - * @note only 8 bit (GL_UNSIGNED_BYTE data format) textures are managed by this operator. + * \param texels the array of texels to linearize + * \param numComponent number of color channels. + * \param bool hasAlphaChannel indicate if the last channel is an alpha channel. + * \param gamma the gama value to use (sRGB is 2.4) + * \note only 8 bit (GL_UNSIGNED_BYTE data format) textures are managed by this operator. */ void sRGBToLinearRGB( uint8_t* texels, uint numComponent, bool hasAlphaChannel ); diff --git a/src/Engine/Data/TextureManager.hpp b/src/Engine/Data/TextureManager.hpp index 570a0cfb1d4..7b6cdf13cbb 100644 --- a/src/Engine/Data/TextureManager.hpp +++ b/src/Engine/Data/TextureManager.hpp @@ -12,7 +12,7 @@ namespace Data { /** * Manage Texture loading and registration. - * @todo (for Radium-V2) Allow to share the same image data between different instances of a + * \todo (for Radium-V2) Allow to share the same image data between different instances of a * texture. Instances could be differentiated by the sampler parameter and the mip-map availability. */ class RA_ENGINE_API TextureManager final @@ -25,12 +25,12 @@ class RA_ENGINE_API TextureManager final /** Add a texture giving its name, dimension and content. * Useful for defining procedural textures * - * @param name name of the texture - * @param width width of the texture - * @param height height of the texture - * @param data pointer to the texture content + * \param name name of the texture + * \param width width of the texture + * \param height height of the texture + * \param data pointer to the texture content * - * @return a texture descriptor that could be further specialized (filtering parameters ..) + * \return a texture descriptor that could be further specialized (filtering parameters ..) * before the texture is inserted into Radium OpenGL system by getOrLoadTexture */ TextureParameters& addTexture( const std::string& name, uint width, uint height, void* data ); @@ -47,38 +47,38 @@ class RA_ENGINE_API TextureManager final * * This method creates, initialize OpenGL part of the texture and add the created texture to the * Texture cache of the engine. - * @note For the moment, the texture cache is indexed by the name of the texture only. + * \note For the moment, the texture cache is indexed by the name of the texture only. * - * @param texParameters : The description of the texture to create - * @param linearize : true if the texture data (texParameters.texels) must be converted from + * \param texParameters : The description of the texture to create + * \param linearize : true if the texture data (texParameters.texels) must be converted from * sRGB to LinearRGB - * @return The texture as inserted into the Radium available openGL system + * \return The texture as inserted into the Radium available openGL system */ Texture* getOrLoadTexture( const TextureParameters& texParameters, bool linearize = false ); /** * Helper function, load the texture without adding it to the manager. - * @see getOrLoadTexture() for parameters description. + * \see getOrLoadTexture() for parameters description. */ Texture* loadTexture( const TextureParameters& texParameters, bool linearize = false ); /** * Delete a named texture from the manager - * @param filename + * \param filename */ void deleteTexture( const std::string& filename ); /** * Delete a texture from the manager - * @param texture + * \param texture */ void deleteTexture( Texture* texture ); /** * Lazy update the texture content from the raw pointer content. * The real update will be done when calling updatePendingTextures - * @note User must ensure that the data pointed by content are of the good type wrt the texture. - * @param texture - * @param content + * \note User must ensure that the data pointed by content are of the good type wrt the texture. + * \param texture + * \param content */ void updateTextureContent( const std::string& texture, void* content ); @@ -89,14 +89,14 @@ class RA_ENGINE_API TextureManager final * manage efficiently the on line texture generation by separating the content definition * (updateTextureContent) from the OpenGL state modification (updatePendingTextures). * - * @todo find a better name and description for this method that do not act on + * \todo find a better name and description for this method that do not act on * _pending textures_, i.e. textures that do not have a valid OpenGl state. */ void updatePendingTextures(); /** Load a texture as described by texParameters. - * @note : only loads 2D image file for now. - * @param texParameters parameters describing the texture to load. This parameter will be + * \note : only loads 2D image file for now. + * \param texParameters parameters describing the texture to load. This parameter will be * updated (width, height, ...) according to the loaded file properties. */ void loadTextureImage( TextureParameters& texParameters ); diff --git a/src/Engine/Data/VolumeObject.hpp b/src/Engine/Data/VolumeObject.hpp index 529188ed236..1ab51f4abd0 100644 --- a/src/Engine/Data/VolumeObject.hpp +++ b/src/Engine/Data/VolumeObject.hpp @@ -16,7 +16,7 @@ namespace Data { /** * A class representing an openGL volume * - * @todo Right now, a volumeObject define both the geometry (a parallelepiped) and the material (a + * \todo Right now, a volumeObject define both the geometry (a parallelepiped) and the material (a * density grid) This should be modified to handle density grids deleimited by a general geometry. */ class RA_ENGINE_API VolumeObject : public Displayable diff --git a/src/Engine/Data/VolumetricMaterial.hpp b/src/Engine/Data/VolumetricMaterial.hpp index 9488e9f0712..99ecbf2135b 100644 --- a/src/Engine/Data/VolumetricMaterial.hpp +++ b/src/Engine/Data/VolumetricMaterial.hpp @@ -18,7 +18,7 @@ class ShaderProgram; * Implementation of a simple Volumetric Material. * Based on a 3D texture defining the density distribution in the volume, perform ray-marching * and absorption based rendering of the volume.. - * @todo This material does not implement the MaterialGLSL interface. Shader compositing is not + * \todo This material does not implement the MaterialGLSL interface. Shader compositing is not * allowed. */ class RA_ENGINE_API VolumetricMaterial final : public Material, public ParameterSetEditingInterface @@ -28,12 +28,12 @@ class RA_ENGINE_API VolumetricMaterial final : public Material, public Parameter EIGEN_MAKE_ALIGNED_OPERATOR_NEW /** * Construct a named VolumetricMaterial - * @param name The name of the material + * \param name The name of the material */ explicit VolumetricMaterial( const std::string& name ); /** * Destructor. - * @note The material does not have ownership on its texture. This destructor do not delete the + * \note The material does not have ownership on its texture. This destructor do not delete the * associated textures. */ ~VolumetricMaterial() override; @@ -44,15 +44,15 @@ class RA_ENGINE_API VolumetricMaterial final : public Material, public Parameter /** * Add an already existing texture to control the specified BSDF parameter. - * @param semantic The texture semantic - * @param texture The texture to use + * \param semantic The texture semantic + * \param texture The texture to use */ inline void setTexture( Texture* texture ); /** * Get the texture associated to the given semantic. - * @param semantic - * @return the corresponding texture + * \param semantic + * \return the corresponding texture */ inline Texture* getTexture() const; @@ -72,7 +72,7 @@ class RA_ENGINE_API VolumetricMaterial final : public Material, public Parameter /** * Get a json containing metadata about the parameters of the material. * - * @return the metadata in json format + * \return the metadata in json format */ inline nlohmann::json getParametersMetadata() const override; diff --git a/src/Engine/RadiumEngine.cpp b/src/Engine/RadiumEngine.cpp index be78eb36167..1d64dcfea55 100644 --- a/src/Engine/RadiumEngine.cpp +++ b/src/Engine/RadiumEngine.cpp @@ -105,7 +105,7 @@ void RadiumEngine::registerDefaultPrograms() { m_resourcesRootDir + "Shaders/Materials/VertexAttribInterface.frag.glsl" ); // Engine support some built-in materials. Register here - /// @todo find a way to integrate "Line" material into Radium Material System + /// \todo find a way to integrate "Line" material into Radium Material System Data::ShaderConfiguration lConfig( "Lines" ); lConfig.addShader( Data::ShaderType_VERTEX, m_resourcesRootDir + "Shaders/Lines/Lines.vert.glsl" ); diff --git a/src/Engine/RadiumEngine.hpp b/src/Engine/RadiumEngine.hpp index d801f1a2753..b6b1a423640 100644 --- a/src/Engine/RadiumEngine.hpp +++ b/src/Engine/RadiumEngine.hpp @@ -49,7 +49,7 @@ class RenderObjectManager; /** * Engine main class : Manage all the systems and managers that are used by the engine module. - * @see Documentation on Engine Object Model + * \see Documentation on Engine Object Model */ class RA_ENGINE_API RadiumEngine { @@ -67,7 +67,7 @@ class RA_ENGINE_API RadiumEngine * Shader set : reusable shaders, materials and named strings * Texture set : reusable textures * - * @note When calling this function, caller must ensures that a valid openGL context is bound. + * \note When calling this function, caller must ensures that a valid openGL context is bound. * All initialisations will be done in the bound openGl context. */ void initializeGL(); @@ -87,9 +87,9 @@ class RA_ENGINE_API RadiumEngine /** * Builds the set of task that must be executed for the current frame. * - * @see Documentation on Engine Object Model the what are tasks and what they can do - * @param taskQueue the task queue that will be executed for the current frame - * @param dt the time elapsed since the last frame in seconds. + * \see Documentation on Engine Object Model the what are tasks and what they can do + * \param taskQueue the task queue that will be executed for the current frame + * \param dt the time elapsed since the last frame in seconds. */ void getTasks( Core::TaskQueue* taskQueue, Scalar dt ); @@ -98,16 +98,16 @@ class RA_ENGINE_API RadiumEngine * priority are ranked randomly. * Default priority is 1 for all systems; * - * @param name - * @param system - * @param priority Value used to rank the systems + * \param name + * \param system + * \param priority Value used to rank the systems */ bool registerSystem( const std::string& name, Scene::System* system, int priority = 1 ); /** * Get the named system - * @param system - * @return + * \param system + * \return */ Scene::System* getSystem( const std::string& system ) const; @@ -115,9 +115,9 @@ class RA_ENGINE_API RadiumEngine * component names. * When no RenderObject name is given, returns the mesh associated * to the first render object. - * @note : mark as deprecated as it must be either removed or reimplemented - * @warning will be deprecated - * @deprecated Will be removed from this class in the next release. A Mesh manager, that could + * \note : mark as deprecated as it must be either removed or reimplemented + * \warning will be deprecated + * \deprecated Will be removed from this class in the next release. A Mesh manager, that could * serve mesh by name will be implemented. */ Data::Displayable* getMesh( const std::string& entityName, @@ -129,9 +129,9 @@ class RA_ENGINE_API RadiumEngine * If no loader is able to process the input fileformat (determined on the file extension), * return false. If a loader is found, creates the root entity of the loaded scene and gives the * content of the file to all systems to add components and to this root entity. - * @note Calling this method set the engine in the "loading state". - * @param file - * @return true if file is loaded, false else. + * \note Calling this method set the engine in the "loading state". + * \param file + * \return true if file is loaded, false else. */ bool loadFile( const std::string& file ); @@ -139,16 +139,16 @@ class RA_ENGINE_API RadiumEngine * Access to the content of the loaded file. * Access to the content is only available at loading time. As soon as the loaded file is * released, its content is no more available outside the Entity/Component architecture. - * @pre The Engine must be in "loading state". - * @return + * \pre The Engine must be in "loading state". + * \return */ const Core::Asset::FileData& getFileData() const; /** * Release the content of the loaded file. * After calling this, the getFileData method must not be called for this file - * @param filename the name of the file to release. If empty, releases the last loaded file. - * @note Calling this method set the engine out of the "loading state". + * \param filename the name of the file to release. If empty, releases the last loaded file. + * \note Calling this method set the engine out of the "loading state". */ void releaseFile(); @@ -159,47 +159,47 @@ class RA_ENGINE_API RadiumEngine /// Manager getters /** * Get the RenderObject manager attached to the engine. - * @note, the engine keep ownership on the pointer returned - * @return the object manager + * \note, the engine keep ownership on the pointer returned + * \return the object manager */ Rendering::RenderObjectManager* getRenderObjectManager() const; /** * Get the entity manager attached to the engine. - * @note, the engine keep ownership on the pointer returned - * @return the entity manager + * \note, the engine keep ownership on the pointer returned + * \return the entity manager */ Scene::EntityManager* getEntityManager() const; /** * Get the signal manager attached to the engine. - * @note, the engine keep ownership on the pointer returned - * @return the signal manager + * \note, the engine keep ownership on the pointer returned + * \return the signal manager */ Scene::SignalManager* getSignalManager() const; /** * Get the texture manager attached to the engine. - * @note, the engine keep ownership on the pointer returned - * @return the texture manager + * \note, the engine keep ownership on the pointer returned + * \return the texture manager */ Data::TextureManager* getTextureManager() const; /** * Get the shader program manager attached to the engine. - * @note, the engine keep ownership on the pointer returned - * @return the shader program manager + * \note, the engine keep ownership on the pointer returned + * \return the shader program manager */ Data::ShaderProgramManager* getShaderProgramManager() const; /** * Register a new file loader to the engine. - * @param fileLoader + * \param fileLoader */ void registerFileLoader( std::shared_ptr fileLoader ); /** * Get the active file loaders from the engine - * @return + * \return */ const std::vector>& getFileLoaders() const; @@ -398,7 +398,7 @@ class RA_ENGINE_API RadiumEngine std::array m_viewport; }; - /// Stack of saved fbo and viewport values @see pushFboAndViewport popFboAndViewport + /// Stack of saved fbo and viewport values \see pushFboAndViewport popFboAndViewport std::stack m_fboAndViewportStack; struct TimeData { diff --git a/src/Engine/Rendering/DebugRender.hpp b/src/Engine/Rendering/DebugRender.hpp index 0c4f90634f0..44ab906d3bc 100644 --- a/src/Engine/Rendering/DebugRender.hpp +++ b/src/Engine/Rendering/DebugRender.hpp @@ -21,7 +21,7 @@ class ShaderProgram; namespace Rendering { /** This allow to draw debug objects. - * @todo : port this to a more Radium-style code + * \todo : port this to a more Radium-style code */ class RA_ENGINE_API DebugRender final { diff --git a/src/Engine/Rendering/ForwardRenderer.hpp b/src/Engine/Rendering/ForwardRenderer.hpp index 9b0c2d13bed..a9466857fcc 100644 --- a/src/Engine/Rendering/ForwardRenderer.hpp +++ b/src/Engine/Rendering/ForwardRenderer.hpp @@ -18,7 +18,7 @@ namespace Rendering { * for opaque and transperent objects. Once renderer, the final is composited with Ui, debug and * X-ray objects renderings on demand. * - * @see rendering.md for description of the renderer + * \see rendering.md for description of the renderer */ class RA_ENGINE_API ForwardRenderer : public Renderer { diff --git a/src/Engine/Rendering/RenderObject.hpp b/src/Engine/Rendering/RenderObject.hpp index 0aaca9583cd..0abe82abd02 100644 --- a/src/Engine/Rendering/RenderObject.hpp +++ b/src/Engine/Rendering/RenderObject.hpp @@ -41,10 +41,10 @@ class RA_ENGINE_API RenderObject final : public Core::Utils::IndexedObject /** * Construct a renderObject * - * @param name the name of the renderObject - * @param comp The component that holds the RenderObject - * @param type The type (ui, debug, geometry) of the render object - * @param lifetime A -1 (or any other negative value) lifetime is considered infinite, + * \param name the name of the renderObject + * \param comp The component that holds the RenderObject + * \param type The type (ui, debug, geometry) of the render object + * \param lifetime A -1 (or any other negative value) lifetime is considered infinite, * 0 is an "invalid value" (would mean the render object has to die immediatly), * hence it's considered as infinite, * any other positive value will be taken into account. @@ -74,13 +74,13 @@ class RA_ENGINE_API RenderObject final : public Core::Utils::IndexedObject * * // createRenderObject can finally be called. * RenderObject* ro = createRenderObject(name, component, type, config, material); - * @param name - * @param comp - * @param type - * @param mesh - * @param techniqueConfig - * @param material - * @return + * \param name + * \param comp + * \param type + * \param mesh + * \param techniqueConfig + * \param material + * \return */ static RenderObject* createRenderObject( const std::string& name, @@ -95,7 +95,7 @@ class RA_ENGINE_API RenderObject final : public Core::Utils::IndexedObject void updateGL(); /// Getters and setters. - ///@{ + ///\{ const std::string& getName() const; const Scene::Component* getComponent() const; Scene::Component* getComponent(); @@ -149,7 +149,7 @@ class RA_ENGINE_API RenderObject final : public Core::Utils::IndexedObject void setLocalTransform( const Core::Matrix4& transform ); const Core::Transform& getLocalTransform() const; const Core::Matrix4& getLocalTransformAsMatrix() const; - ///@} + ///\} /// Basically just decreases lifetime counter. /// If it goes to zero, then render object notifies the manager that it needs to be deleted. @@ -165,9 +165,9 @@ class RA_ENGINE_API RenderObject final : public Core::Utils::IndexedObject /** * Render the object with the given rendering environment defined by the lighting parameters, * the viewing parameters and the shader - * @param lightParams lighting parameters for this rendering - * @param viewParams viewing parameters for this rendering - * @param shader shader to use for this rendering + * \param lightParams lighting parameters for this rendering + * \param viewParams viewing parameters for this rendering + * \param shader shader to use for this rendering */ void render( const Data::RenderParameters& lightParams, const Data::ViewingParameters& viewParams, @@ -177,9 +177,9 @@ class RA_ENGINE_API RenderObject final : public Core::Utils::IndexedObject /** * Render the object for the given rendering environment defined by the lighting parameters, the * viewing parameters and the RenderTechnique pass name - * @param lightParams lighting parameters for this rendering - * @param viewParams viewing parameters for this rendering - * @param passname RenderTechnique pass name + * \param lightParams lighting parameters for this rendering + * \param viewParams viewing parameters for this rendering + * \param passname RenderTechnique pass name */ void render( const Data::RenderParameters& lightParams, const Data::ViewingParameters& viewParams, diff --git a/src/Engine/Rendering/RenderObjectManager.hpp b/src/Engine/Rendering/RenderObjectManager.hpp index ba58dd9bb66..bb3e067fa5f 100644 --- a/src/Engine/Rendering/RenderObjectManager.hpp +++ b/src/Engine/Rendering/RenderObjectManager.hpp @@ -36,40 +36,40 @@ class RA_ENGINE_API RenderObjectManager final std::shared_ptr getRenderObject( const Core::Utils::Index& index ); /** - * @brief Get all render objects. + * \brief Get all render objects. */ const Core::Utils::IndexMap>& getRenderObjects() const; /** * Get all render objects of the given type, the vector is assumed to be empty whan called - * @param objectsOut - * @param type + * \param objectsOut + * \param type */ void getRenderObjectsByType( std::vector>& objectsOut, const Rendering::RenderObjectType& type ) const; /** Returns true if the index points to a valid render object. * - * @param index - * @return + * \param index + * \return */ bool exists( const Core::Utils::Index& index ) const; /** * Removed the render object at the given index - * @param idx + * \param idx */ void renderObjectExpired( const Ra::Core::Utils::Index& idx ); /** Return the total number of faces drawn * - * @return + * \return */ size_t getNumFaces() const; /** Return the total number of vertices drawn * - * @return + * \return */ size_t getNumVertices() const; diff --git a/src/Engine/Rendering/RenderTechnique.cpp b/src/Engine/Rendering/RenderTechnique.cpp index 035641a57bd..35d69a0406d 100644 --- a/src/Engine/Rendering/RenderTechnique.cpp +++ b/src/Engine/Rendering/RenderTechnique.cpp @@ -137,7 +137,7 @@ namespace EngineRenderTechniques { static std::map EngineTechniqueRegistry; /** register a new default builder for a technique - * @return true if builder added, false else (e.g, a builder with the same name exists) + * \return true if builder added, false else (e.g, a builder with the same name exists) */ bool registerDefaultTechnique( const std::string& name, DefaultTechniqueBuilder builder ) { auto result = EngineTechniqueRegistry.insert( { name, builder } ); @@ -145,7 +145,7 @@ bool registerDefaultTechnique( const std::string& name, DefaultTechniqueBuilder } /** remove a default builder - * @return true if builder removed, false else (e.g, a builder with the same name does't exists) + * \return true if builder removed, false else (e.g, a builder with the same name does't exists) */ bool removeDefaultTechnique( const std::string& name ) { std::size_t removed = EngineTechniqueRegistry.erase( name ); @@ -153,8 +153,8 @@ bool removeDefaultTechnique( const std::string& name ) { } /** - * @param name name of the technique to construct - * @return a pair containing the search result and, if true, the functor to call to build the + * \param name name of the technique to construct + * \return a pair containing the search result and, if true, the functor to call to build the * technique. */ std::pair getDefaultTechnique( const std::string& name ) { diff --git a/src/Engine/Rendering/RenderTechnique.hpp b/src/Engine/Rendering/RenderTechnique.hpp index 0b88c714d05..b9721eddde8 100644 --- a/src/Engine/Rendering/RenderTechnique.hpp +++ b/src/Engine/Rendering/RenderTechnique.hpp @@ -43,13 +43,13 @@ enum DefaultRenderingPasses : int { /** * The transparency pass of Radium default renderer. * This pass render, with lighting, the transparent fragments using LIT-OIT algorithm - * @see Ra::Engine::ForwardRenderer documentation + * \see Ra::Engine::ForwardRenderer documentation */ LIGHTING_TRANSPARENT, /** * The volumetric pass of Radium default renderer. * This pass render, with lighting, an object with volumetric material (density matrix) - * @see Ra::Engine::ForwardRenderer documentation + * \see Ra::Engine::ForwardRenderer documentation */ LIGHTING_VOLUMETRIC @@ -57,7 +57,7 @@ enum DefaultRenderingPasses : int { /** * Set of shaders to be used by the renderer to render objects with associated data. - * @see Render technique and materials section in the Material management in the Radium Engine + * \see Render technique and materials section in the Material management in the Radium Engine * documentation */ class RA_ENGINE_API RenderTechnique final @@ -72,56 +72,56 @@ class RA_ENGINE_API RenderTechnique final /** * Set the shader configuration for the given pass. * m_numActivePass is updated to be the max of all indices that are set this way. - * @param newConfig The pass shader configuration - * @param pass The index of the pass to set + * \param newConfig The pass shader configuration + * \param pass The index of the pass to set */ void setConfiguration( const Data::ShaderConfiguration& newConfig, Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ); /** * Test if the given pass was configured - * @param pass The index of the pass - * @return true if the pass was configured + * \param pass The index of the pass + * \return true if the pass was configured */ inline bool hasConfiguration( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ) const; /** * Mark the given configured. - * @param pass The index of the pass + * \param pass The index of the pass */ inline void setConfiguration( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ); /** * Mark the given not configured. - * @param pass The index of the pass + * \param pass The index of the pass */ inline void clearConfiguration( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ); /** * Get the configuration of the given pass - * @param pass The index of the pass - * @return The pass shader configuration + * \param pass The index of the pass + * \return The pass shader configuration */ inline const Data::ShaderConfiguration& getConfiguration( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ) const; /** * Get the Data::ShaderProgram associated with the pass - * @param pass The index of the pass - * @return The pass shader program if the pass is configured, nullptr otherwise. + * \param pass The index of the pass + * \return The pass shader program if the pass is configured, nullptr otherwise. */ const Data::ShaderProgram* getShader( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ) const; /** * Set the shader parameter provider for the given pass. - * @note all passes must be configured first using RenderTechnique::setConfiguration() before + * \note all passes must be configured first using RenderTechnique::setConfiguration() before * setting the parameter provider for each pass. - * @param provider The rendering parameter provider - * @param pass The index of the pass to set. If this -1, all active passes will share the same + * \param provider The rendering parameter provider + * \param pass The index of the pass to set. If this -1, all active passes will share the same * provider. */ void setParametersProvider( std::shared_ptr provider, @@ -129,8 +129,8 @@ class RA_ENGINE_API RenderTechnique final /** * Get the Data::ShaderProgram parameters associated with the pass - * @param pass The index of the pass - * @return The pass Data::ShaderParameterProvider if the pass is configured, nullptr otherwise. + * \param pass The index of the pass + * \return The pass Data::ShaderParameterProvider if the pass is configured, nullptr otherwise. */ const Data::ShaderParameterProvider* getParametersProvider( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ) const; @@ -142,27 +142,27 @@ class RA_ENGINE_API RenderTechnique final /** * Test if the given pass is dirty (openGL state not updated) - * @param pass The index of the pass - * @return Tru if pass must be updated. + * \param pass The index of the pass + * \return Tru if pass must be updated. */ inline bool isDirty( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ) const; /** * Set the given pass dirty (openGL state not updated) - * @param pass The index of the pass + * \param pass The index of the pass */ inline void setDirty( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ); /** * Clear the dirty bit for the given pass (openGL state updated) - * @param pass The index of the pass + * \param pass The index of the pass */ inline void clearDirty( Core::Utils::Index pass = DefaultRenderingPasses::LIGHTING_OPAQUE ); /** * Add properties (several \#define in the shader) for the given pass - * @param props the properties list, only strings without the \#define - * @param pass the pass. If left by default, all active passes will get the properties + * \param props the properties list, only strings without the \#define + * \param pass the pass. If left by default, all active passes will get the properties */ void addPassProperties( const std::list& props, Core::Utils::Index pass = Core::Utils::Index {} ); @@ -171,7 +171,7 @@ class RA_ENGINE_API RenderTechnique final * pass 1 --> Z_PREPASS * pass 0 --> LIGHTING_OPAQUE * pass 2 --> LIGHTING_TRANSPARENT - * @return the default technique + * \return the default technique */ static RenderTechnique createDefaultRenderTechnique(); @@ -216,19 +216,19 @@ namespace EngineRenderTechniques { using DefaultTechniqueBuilder = std::function; /** register a new default builder for a material class - * @return true if builder added, false else (e.g, a builder with the same name already exists) + * \return true if builder added, false else (e.g, a builder with the same name already exists) */ RA_ENGINE_API bool registerDefaultTechnique( const std::string& name, DefaultTechniqueBuilder builder ); /** remove a default builder - * @return true if builder removed, false else (e.g, a builder with the same name does't exists) + * \return true if builder removed, false else (e.g, a builder with the same name does't exists) */ RA_ENGINE_API bool removeDefaultTechnique( const std::string& name ); /** - * @param name name of the technique to construct - * @return a pair containing the search result and, if true, the functor to call to build the + * \param name name of the technique to construct + * \return a pair containing the search result and, if true, the functor to call to build the * technique. */ RA_ENGINE_API std::pair @@ -239,8 +239,8 @@ RA_ENGINE_API bool cleanup(); /** * Test if the given pass is dirty (openGL state not updated) - * @param pass The index of the pass - * @return Tru if pass must be updated. + * \param pass The index of the pass + * \return Tru if pass must be updated. */ inline bool RenderTechnique::isDirty( Core::Utils::Index pass ) const { return m_dirtyBits & ( 1 << pass ); @@ -248,7 +248,7 @@ inline bool RenderTechnique::isDirty( Core::Utils::Index pass ) const { /** * Set the given pass dirty (openGL state updated) - * @param pass The index of the pass + * \param pass The index of the pass */ inline void RenderTechnique::setDirty( Core::Utils::Index pass ) { m_dirtyBits |= ( 1 << pass ); diff --git a/src/Engine/Rendering/Renderer.hpp b/src/Engine/Rendering/Renderer.hpp index 888a01a5e4c..9d6b6fb6657 100644 --- a/src/Engine/Rendering/Renderer.hpp +++ b/src/Engine/Rendering/Renderer.hpp @@ -39,7 +39,7 @@ class RenderObjectManager; /** * Abstract renderer for the engine. - * @see Radium Engine default rendering informations + * \see Radium Engine default rendering informations */ class RA_ENGINE_API Renderer { @@ -188,7 +188,7 @@ class RA_ENGINE_API Renderer /** * set the fill/wireframe rendering mode - * @param enabled true if rendering mode must be wireframe, false for fill render mode + * \param enabled true if rendering mode must be wireframe, false for fill render mode */ inline void enableWireframe( bool enabled ); @@ -199,30 +199,30 @@ class RA_ENGINE_API Renderer /** * Set the debug rendering mode - * @param enabled true if rendering mode must include debug objects, false else + * \param enabled true if rendering mode must include debug objects, false else */ inline void enableDebugDraw( bool enabled ); /** * set the post-process mode - * @param enabled true if post processing must bve applied before display. + * \param enabled true if post processing must bve applied before display. */ inline void enablePostProcess( bool enabled ); /** - * @brief Tell the renderer it needs to render. + * \brief Tell the renderer it needs to render. * This method does the following steps : *
    - *
  1. call @see updateRenderObjectsInternal method
  2. - *
  3. call @see renderInternal method
  4. - *
  5. call @see postProcessInternal method
  6. + *
  7. call \see updateRenderObjectsInternal method
  8. + *
  9. call \see renderInternal method
  10. + *
  11. call \see postProcessInternal method
  12. *
  13. render the final texture in the right framebuffer*
  14. *
* - * @param renderData The basic data needed for the rendering : + * \param renderData The basic data needed for the rendering : * Time elapsed since last frame, camera view matrix, camera projection matrix. * - * @note * What "render in the right buffer" means, is that, for example, + * \note * What "render in the right buffer" means, is that, for example, * when using QOpenGLWidget, Qt binds its own framebuffer before calling * updateGL() method. * So, render() takes that into account by saving an eventual bound @@ -232,24 +232,24 @@ class RA_ENGINE_API Renderer void render( const Data::ViewingParameters& renderData ); /** - * @brief Initialize renderer + * \brief Initialize renderer */ void initialize( uint width, uint height ); /** - * @brief Resize the viewport and all the screen textures, fbos. + * \brief Resize the viewport and all the screen textures, fbos. * This function must be overrided as soon as some FBO or screensized * texture is used (since the default implementation just resizes its * own fbos / textures) * - * @param width The new viewport width - * @param height The new viewport height + * \param width The new viewport width + * \param height The new viewport height */ void resize( uint width, uint height ); /** * Add a new picking query for the next rendering - * @param query + * \param query */ inline void addPickingRequest( const PickingQuery& query ); @@ -257,7 +257,7 @@ class RA_ENGINE_API Renderer * Get the vector of picking results. * Results in the returned vector correspond to queries in the return vector by the function * getPickingQueries(). - * @return Queries results + * \return Queries results */ inline const std::vector& getPickingResults() const; @@ -265,7 +265,7 @@ class RA_ENGINE_API Renderer * Get the vector of picking queries. * Queries in the returned vector correspond to results in the return vector by the function * getPickingResults(). - * @return Queries results + * \return Queries results */ inline const std::vector& getPickingQueries() const; @@ -285,7 +285,7 @@ class RA_ENGINE_API Renderer /** Add a light to the renderer. * may be overridden to filter the light or to specialize the way ligths are added to the * renderer ... - * @param light + * \param light */ virtual void addLight( const Scene::Light* light ); @@ -300,44 +300,44 @@ class RA_ENGINE_API Renderer // "windowed" mode (that would show the debugged texture in // its own viewport, without hiding the final texture.) /** - * @brief Change the texture that is displayed on screen. + * \brief Change the texture that is displayed on screen. * Set m_displayedIsDepth to true if depth linearization is wanted * - * @param texName The texture to display. + * \param texName The texture to display. */ virtual void displayTexture( const std::string& texName ); /** - * @brief Return the names of renderer available textures - * @return A vector of strings, containing the name of the different textures + * \brief Return the names of renderer available textures + * \return A vector of strings, containing the name of the different textures */ virtual std::vector getAvailableTextures() const; /** - * @brief Get the name of the renderer, e.g to be displayed in the UI - * @return + * \brief Get the name of the renderer, e.g to be displayed in the UI + * \return */ virtual std::string getRendererName() const = 0; /** * Define, for the given render object, the render technique cooresponding to the renderer. - * @param ro the render object to modofy - * @return True if the renderTechnique was defined. + * \param ro the render object to modofy + * \return True if the renderTechnique was defined. */ virtual bool buildRenderTechnique( RenderObject* ro ) const = 0; /** * Loops over all available renderobjects and, build the associated render technique using * buildRenderTechnique(RenderObject *ro) - * @return the number of render objects initialized + * \return the number of render objects initialized */ int buildAllRenderTechniques() const; /** * get the content of the current frame - * @param w width of the region to grab - * @param h heigth oif the region to grab - * @return the pixel array + * \param w width of the region to grab + * \param h heigth oif the region to grab + * \return the pixel array */ virtual std::unique_ptr grabFrame( size_t& w, size_t& h ) const; @@ -353,7 +353,7 @@ class RA_ENGINE_API Renderer protected: /** - * @brief initializeInternal + * \brief initializeInternal * Initialize the renderer dependant resources. */ virtual void initializeInternal() = 0; @@ -365,36 +365,36 @@ class RA_ENGINE_API Renderer /** * Update the renderer dependent resources for the next frame - * @param renderData + * \param renderData */ virtual void updateStepInternal( const Data::ViewingParameters& renderData ) = 0; /** - * @brief All the scene rendering magics basically happens here. + * \brief All the scene rendering magics basically happens here. * - * @param renderData The basic data needed for the rendering : + * \param renderData The basic data needed for the rendering : * Time elapsed since last frame, camera view matrix, camera projection matrix. */ virtual void renderInternal( const Data::ViewingParameters& renderData ) = 0; /** - * @brief Do all post processing stuff. If you override this method, - * be careful to fill @see m_fancyTexture since it is the texture that - * will be displayed at the very end of the @see render method. + * \brief Do all post processing stuff. If you override this method, + * be careful to fill \see m_fancyTexture since it is the texture that + * will be displayed at the very end of the \see render method. * - * @param renderData The basic data needed for the rendering : + * \param renderData The basic data needed for the rendering : * Time elapsed since last frame, camera view matrix, camera projection matrix. */ virtual void postProcessInternal( const Data::ViewingParameters& renderData ) = 0; /** - * @brief Add the debug layer with useful informations + * \brief Add the debug layer with useful informations */ virtual void debugInternal( const Data::ViewingParameters& renderData ) = 0; // is viewingParameters useful ? /** - * @brief Draw the UI data + * \brief Draw the UI data */ virtual void uiInternal( const Data::ViewingParameters& renderData ) = 0; // idem ? @@ -444,9 +444,9 @@ class RA_ENGINE_API Renderer // It would make more sense if we are able to show the // debugged texture in its own viewport. /** - * @brief The texture that will be displayed on screen. If no call to - * @see debugTexture has been done, this is just a pointer to - * @see m_fancyTexture. + * \brief The texture that will be displayed on screen. If no call to + * \see debugTexture has been done, this is just a pointer to + * \see m_fancyTexture. */ Data::Texture* m_displayedTexture { nullptr }; diff --git a/src/Engine/Scene/CameraManager.hpp b/src/Engine/Scene/CameraManager.hpp index 55f1581ce39..385d96f756e 100644 --- a/src/Engine/Scene/CameraManager.hpp +++ b/src/Engine/Scene/CameraManager.hpp @@ -66,7 +66,7 @@ class RA_ENGINE_API CameraManager : public System // /** - * @brief Number of managed Cameras. + * \brief Number of managed Cameras. */ virtual size_t count() const; diff --git a/src/Engine/Scene/Component.hpp b/src/Engine/Scene/Component.hpp index 73b1ecc35aa..e11f458b34c 100644 --- a/src/Engine/Scene/Component.hpp +++ b/src/Engine/Scene/Component.hpp @@ -23,7 +23,7 @@ class System; class Entity; /** - * @brief A component is an element that can be updated by a system. + * \brief A component is an element that can be updated by a system. * It is also linked to some other components in an entity. * Each component share a transform through their entity. */ @@ -37,15 +37,15 @@ class RA_ENGINE_API Component virtual ~Component(); /** - * @brief Pure virtual method to be overridden by any component. + * \brief Pure virtual method to be overridden by any component. * When this method is called you are guaranteed that all other startup systems * have been loaded. */ virtual void initialize() = 0; /** - * @brief Set entity the component is part of. + * \brief Set entity the component is part of. * This method is called by the entity. - * @param entity The entity the component is part of. + * \param entity The entity the component is part of. */ virtual void setEntity( Entity* entity ) { m_entity = entity; } diff --git a/src/Engine/Scene/DefaultCameraManager.hpp b/src/Engine/Scene/DefaultCameraManager.hpp index 85dddc57324..2ad7867a953 100644 --- a/src/Engine/Scene/DefaultCameraManager.hpp +++ b/src/Engine/Scene/DefaultCameraManager.hpp @@ -31,7 +31,7 @@ class RA_ENGINE_API DefaultCameraStorage : public CameraStorage }; /** - * @brief DefaultCameraManager. A simple Camera Manager with a list of Cameras. + * \brief DefaultCameraManager. A simple Camera Manager with a list of Cameras. */ class RA_ENGINE_API DefaultCameraManager : public CameraManager { diff --git a/src/Engine/Scene/DefaultLightManager.hpp b/src/Engine/Scene/DefaultLightManager.hpp index 9206e022e38..c930f3f01a2 100644 --- a/src/Engine/Scene/DefaultLightManager.hpp +++ b/src/Engine/Scene/DefaultLightManager.hpp @@ -31,7 +31,7 @@ class RA_ENGINE_API DefaultLightStorage : public LightStorage }; /** - * @brief DefaultLightManager. A simple Light Manager with a list of lights. + * \brief DefaultLightManager. A simple Light Manager with a list of lights. */ class RA_ENGINE_API DefaultLightManager : public LightManager { diff --git a/src/Engine/Scene/EntityManager.hpp b/src/Engine/Scene/EntityManager.hpp index 73a7aae25e7..a1514f6f288 100644 --- a/src/Engine/Scene/EntityManager.hpp +++ b/src/Engine/Scene/EntityManager.hpp @@ -30,58 +30,58 @@ class RA_ENGINE_API EntityManager virtual ~EntityManager(); /** - * @brief Create (if does not exist) an entity given its name - * @param name The name of the entity to get or create. If + * \brief Create (if does not exist) an entity given its name + * \param name The name of the entity to get or create. If * empty, the entity will be created with a generic name "Entity_xx" - * @return The entity. + * \return The entity. */ Entity* createEntity( const std::string& name = "" ); /** - * @brief Check wether an entity with a given name exists or not. - * @param name The name of the entity to find - * @return true if the entity exists, false otherwise + * \brief Check wether an entity with a given name exists or not. + * \param name The name of the entity to find + * \return true if the entity exists, false otherwise */ bool entityExists( const std::string& name ) const; /** - * @brief Remove an entity given its index. Also deletes the pointer. - * @param idx Index if the entity to remove. + * \brief Remove an entity given its index. Also deletes the pointer. + * \param idx Index if the entity to remove. */ void removeEntity( Core::Utils::Index idx ); /** - * @brief Remove a given entity. Also deletes the pointer. - * @param entity The entity to remove. + * \brief Remove a given entity. Also deletes the pointer. + * \param entity The entity to remove. */ void removeEntity( Entity* entity ); /** - * @brief Get an entity given its index. - * @param idx Index of the component to retrieve. - * @return The entity if found in the map, nullptr otherwise. + * \brief Get an entity given its index. + * \param idx Index of the component to retrieve. + * \return The entity if found in the map, nullptr otherwise. */ Entity* getEntity( Core::Utils::Index idx ) const; /** - * @brief Get all entities from the manager. + * \brief Get all entities from the manager. * This might be usefull to be able to display and navigate through them * in a GUI for example. - * @return A list containing all entities from the manager. + * \return A list containing all entities from the manager. */ std::vector getEntities() const; void swapBuffers(); /** - * @brief Get an entity given its name. - * @param name Name of the entity to retrieve. - * @return The entity if found in the map, nullptr otherwise. + * \brief Get an entity given its name. + * \param name Name of the entity to retrieve. + * \return The entity if found in the map, nullptr otherwise. */ Entity* getEntity( const std::string& name ) const; /** - * @brief Removes all entities. + * \brief Removes all entities. */ void deleteEntities(); diff --git a/src/Engine/Scene/Light.hpp b/src/Engine/Scene/Light.hpp index e12d9a91841..d05037abe57 100644 --- a/src/Engine/Scene/Light.hpp +++ b/src/Engine/Scene/Light.hpp @@ -21,14 +21,14 @@ class RA_ENGINE_API Light : public Component { public: /** supported light type. - * @note POLYGONAL is not really supported. - * @todo : replace this enum by something extensible as we plan to add new light type by plugins + * \note POLYGONAL is not really supported. + * \todo : replace this enum by something extensible as we plan to add new light type by plugins */ enum LightType : int { DIRECTIONAL = 0, POINT, SPOT, POLYGONAL }; /** * Define the attenuation of the light source - * @todo for the moment, the attenuation is non physically coherent. make attenuation be + * \todo for the moment, the attenuation is non physically coherent. make attenuation be * quadratic by default */ struct Attenuation { @@ -43,48 +43,48 @@ class RA_ENGINE_API Light : public Component /** * Create a new light. The new light is a component attached to the given entity - * @param entity - * @param type - * @param name + * \param entity + * \param type + * \param name */ Light( Entity* entity, const LightType& type, const std::string& name = "light" ); ~Light() override = default; /** * - * @return the color of the light + * \return the color of the light */ inline const Core::Utils::Color& getColor() const { return m_color; } /** * Set the color of the light - * @param color + * \param color */ inline void setColor( const Core::Utils::Color& color ); /** * set the direction of lighting - * @todo put this only on directional and spot light sources - * @param dir + * \todo put this only on directional and spot light sources + * \param dir */ virtual void setDirection( const Eigen::Matrix& /*dir*/ ) {} /** * Set the position of the light source - * @todo put this only on point and spot light sources - * @param pos + * \todo put this only on point and spot light sources + * \param pos */ virtual void setPosition( const Eigen::Matrix& /*pos*/ ) {} // ... /** * - * @return the type (an enum Light::LightType member) of the light source + * \return the type (an enum Light::LightType member) of the light source */ inline const LightType& getType() const { return m_type; } /** * \brief Extract the set of parameters that must be given to a shader for rendering and * lighting with this light. - * @param params parameters to be filled (using merge-replace) with the one of the light + * \param params parameters to be filled (using merge-replace) with the one of the light */ void getRenderParameters( Data::RenderParameters& params ) const; @@ -103,7 +103,7 @@ class RA_ENGINE_API Light : public Component * Abstract method that define the glsl code that manage this light type * For the moment, this is not use (except by experimental plugins) but will be part of the * shader composition process of radium v2 - * @return + * \return */ virtual std::string getShaderInclude() const; diff --git a/src/Engine/Scene/LightManager.hpp b/src/Engine/Scene/LightManager.hpp index e329f494430..a01b88a62bf 100644 --- a/src/Engine/Scene/LightManager.hpp +++ b/src/Engine/Scene/LightManager.hpp @@ -34,7 +34,7 @@ class RA_ENGINE_API LightManager : public System /** Add a light to the manager ... * Consider the component is already registered. The light manager will not take ownership of * the added light, it will just push the light on the storage ... - * @param li The (already registered) light to add. + * \param li The (already registered) light to add. */ virtual void addLight( const Scene::Light* li ) = 0; @@ -43,7 +43,7 @@ class RA_ENGINE_API LightManager : public System // /** - * @brief Number of lights. + * \brief Number of lights. * This is still a work in progress. The idea is to make it possible for a * LightManager to tell it has only one Light, for example if it wants to send * a lot of sources at once in a single RenderParams, let's say a texture. diff --git a/src/Engine/Scene/SignalManager.hpp b/src/Engine/Scene/SignalManager.hpp index 46ece2dd582..9d977ad7082 100644 --- a/src/Engine/Scene/SignalManager.hpp +++ b/src/Engine/Scene/SignalManager.hpp @@ -57,7 +57,7 @@ class RA_ENGINE_API SignalManager using FrameObservable = Ra::Core::Utils::Observable<>; /// Access to the observable members - ///@{ + ///\{ ItemObservable& getEntityCreatedNotifier(); ItemObservable& getEntityDestroyedNotifier(); ItemObservable& getComponentCreatedNotifier(); @@ -65,7 +65,7 @@ class RA_ENGINE_API SignalManager ItemObservable& getRenderObjectCreatedNotifier(); ItemObservable& getRenderObjectDestroyedNotifier(); FrameObservable& getEndFrameNotifier(); - ///@} + ///\} private: /// lock to prevent race conditions on observables @@ -75,19 +75,19 @@ class RA_ENGINE_API SignalManager bool m_isOn { true }; /// Item observables - ///@{ + ///\{ ItemObservable m_entityCreatedCallbacks; ItemObservable m_entityDestroyedCallbacks; ItemObservable m_componentAddedCallbacks; ItemObservable m_componentRemovedCallbacks; ItemObservable m_roAddedCallbacks; ItemObservable m_roRemovedCallbacks; - ///@} + ///\} /// Frame observable - ///@{ + ///\{ FrameObservable m_frameEndCallbacks; - ///@} + ///\} /// Helper function to notify observers template diff --git a/src/Engine/Scene/System.hpp b/src/Engine/Scene/System.hpp index 7feb0a5eb03..ba5a919dd08 100644 --- a/src/Engine/Scene/System.hpp +++ b/src/Engine/Scene/System.hpp @@ -39,7 +39,7 @@ class RA_ENGINE_API System * Factory method for component creation from file data. * From a given file and the corresponding entity, the system will create the * corresponding components, add them to the entity, and register the component. - * @note : Issue #325 - As this method register components and might also manage each component + * \note : Issue #325 - As this method register components and might also manage each component * outside the m_components vectors (e.g in a buffer on the GPU) the methods, the * registerComponent and unregister*Component must be virtual method that could be overriden. */ @@ -49,26 +49,26 @@ class RA_ENGINE_API System } /** - * @brief Pure virtual method to be overridden by any system. + * \brief Pure virtual method to be overridden by any system. * Must register in taskQueue the operations that must be done ate each frame * - * @param taskQueue The queue to fill - * @param frameInfo Information about the current frame (@see FrameInfo) + * \param taskQueue The queue to fill + * \param frameInfo Information about the current frame (\see FrameInfo) */ virtual void generateTasks( Core::TaskQueue* taskQueue, const Engine::FrameInfo& frameInfo ) = 0; /** Returns the components stored for the given entity. * - * @param entity - * @return the vector of the entity's components + * \param entity + * \return the vector of the entity's components */ std::vector getEntityComponents( const Entity* entity ); /** Register an already configured component to the system. - * @param entity The entity owning the component - * @param component The component to add to the system - * @note the component is added to the system without any compatibility check. + * \param entity The entity owning the component + * \param component The component to add to the system + * \note the component is added to the system without any compatibility check. */ void addComponent( Entity* entity, Component* component ) { registerComponent( entity, component ); @@ -77,24 +77,24 @@ class RA_ENGINE_API System protected: /** * Registers a component belonging to an entity, making it active within the system. - * @note If a system overrides this function, it must call the inherited method. - * @param entity - * @param component + * \note If a system overrides this function, it must call the inherited method. + * \param entity + * \param component */ virtual void registerComponent( const Entity* entity, Component* component ); /** * Unregisters a component. The system will not update it. - * @note If a system overrides this function, it must call the inherited method. - * @param entity - * @param component + * \note If a system overrides this function, it must call the inherited method. + * \param entity + * \param component */ virtual void unregisterComponent( const Entity* entity, Component* component ); /** * Removes all components belonging to a given entity. - * @note If a system overrides this function, it must call the inherited method. - * @param entity + * \note If a system overrides this function, it must call the inherited method. + * \param entity */ virtual void unregisterAllComponents( const Entity* entity ); diff --git a/src/Engine/Scene/SystemDisplay.hpp b/src/Engine/Scene/SystemDisplay.hpp index ca23f0d084b..cd96c6612d6 100644 --- a/src/Engine/Scene/SystemDisplay.hpp +++ b/src/Engine/Scene/SystemDisplay.hpp @@ -25,7 +25,7 @@ namespace Scene { #ifndef RA_DISABLE_DEBUG_DISPLAY -/// Component for debug drawing. @see SystemEntity. +/// Component for debug drawing. \see SystemEntity. class RA_ENGINE_API DebugComponent : public Component { public: @@ -39,7 +39,7 @@ class RA_ENGINE_API DebugComponent : public Component #endif -/// Component for UI drawing. @see SystemEntity. +/// Component for UI drawing. \see SystemEntity. class RA_ENGINE_API UiComponent : public Component { public: diff --git a/src/Gui/BaseApplication.hpp b/src/Gui/BaseApplication.hpp index bcfde3ae14c..9ea841c28c2 100644 --- a/src/Gui/BaseApplication.hpp +++ b/src/Gui/BaseApplication.hpp @@ -84,7 +84,7 @@ class RA_GUI_API BaseApplication : public QApplication * \param factory : a functor that instanciate the mainWindow * \param glVersion : glbinding::Version of the requested OpenGL Version. * If no version is given, the default recommended version for Radium (4.1) will be requested. - * @note The initialize method call virtual methods on the object being initialized to + * \note The initialize method call virtual methods on the object being initialized to * configure the engine and application services. * When redefining those methods, it is recommended to call the inherited one to have * consistent initialization wrt the BaseApplication ancestor. diff --git a/src/Gui/ParameterSetEditor/MaterialParameterEditor.hpp b/src/Gui/ParameterSetEditor/MaterialParameterEditor.hpp index 41145435d88..1068659964b 100644 --- a/src/Gui/ParameterSetEditor/MaterialParameterEditor.hpp +++ b/src/Gui/ParameterSetEditor/MaterialParameterEditor.hpp @@ -32,14 +32,14 @@ class RA_GUI_API MaterialParameterEditor : public QWidget public: /** Constructors and destructor */ - /** @{ */ + /** \{ */ explicit MaterialParameterEditor( QWidget* parent = nullptr ); MaterialParameterEditor( const MaterialParameterEditor& ) = delete; MaterialParameterEditor& operator=( const MaterialParameterEditor& ) = delete; MaterialParameterEditor( MaterialParameterEditor&& ) = delete; MaterialParameterEditor&& operator=( MaterialParameterEditor&& ) = delete; ~MaterialParameterEditor() override = default; - /** @} */ + /** \} */ /** * \brief Update the different UI element with the given renderParameter, using the given diff --git a/src/Gui/ParameterSetEditor/ParameterSetEditor.hpp b/src/Gui/ParameterSetEditor/ParameterSetEditor.hpp index 6e0af5d280d..12687646c55 100644 --- a/src/Gui/ParameterSetEditor/ParameterSetEditor.hpp +++ b/src/Gui/ParameterSetEditor/ParameterSetEditor.hpp @@ -37,14 +37,14 @@ class RA_GUI_API ParameterSetEditor : public Widgets::ControlPanel public: /** Constructors and destructor */ - /** @{ */ + /** \{ */ explicit ParameterSetEditor( const std::string& name, QWidget* parent = nullptr ); ParameterSetEditor( const ParameterSetEditor& ) = delete; ParameterSetEditor& operator=( const ParameterSetEditor& ) = delete; ParameterSetEditor( ParameterSetEditor&& ) = delete; ParameterSetEditor&& operator=( ParameterSetEditor&& ) = delete; ~ParameterSetEditor() override = default; - /** @} */ + /** \} */ /** * \brief Update the different UI element with the given renderParameter, using the given diff --git a/src/Gui/RadiumWindow/SimpleWindow.hpp b/src/Gui/RadiumWindow/SimpleWindow.hpp index cd229af74ad..7739e46be35 100644 --- a/src/Gui/RadiumWindow/SimpleWindow.hpp +++ b/src/Gui/RadiumWindow/SimpleWindow.hpp @@ -19,14 +19,14 @@ class RA_GUI_API SimpleWindow : public Ra::Gui::MainWindowInterface /** Constructors and destructor. * https://en.cppreference.com/w/cpp/language/rule_of_three */ - /** @{ */ + /** \{ */ explicit SimpleWindow( uint w = 800, uint h = 640, QWidget* parent = nullptr ); SimpleWindow( const SimpleWindow& ) = delete; SimpleWindow& operator=( const SimpleWindow& ) = delete; SimpleWindow( SimpleWindow&& ) = delete; SimpleWindow& operator=( SimpleWindow&& ) = delete; ~SimpleWindow() override; - /**@}*/ + /**\}*/ /// Access the viewer, i.e. the rendering widget. Ra::Gui::Viewer* getViewer() override; diff --git a/src/Gui/SelectionManager/SelectionManager.hpp b/src/Gui/SelectionManager/SelectionManager.hpp index ad03a1d410e..9b0cc3bdbab 100644 --- a/src/Gui/SelectionManager/SelectionManager.hpp +++ b/src/Gui/SelectionManager/SelectionManager.hpp @@ -19,33 +19,33 @@ class RA_GUI_API SelectionManager : public QItemSelectionModel /** Returns true if the selection contains the given item. * - * @param ent - * @return + * \param ent + * \return */ bool isSelected( const Engine::Scene::ItemEntry& ent ) const; - /// Return the set of selected entries. @see selectedIndexes() + /// Return the set of selected entries. \see selectedIndexes() std::vector selectedEntries() const; /** Return the current selected item, or an invalid entry if there is no current item. - * @seeCurrentIndex; + * \seeCurrentIndex; * - * @return + * \return */ const Engine::Scene::ItemEntry& currentItem() const; - /** Select an item through an item entry. @see QItemSelectionModel::Select + /** Select an item through an item entry. \see QItemSelectionModel::Select * - * @param ent - * @param command + * \param ent + * \param command */ virtual void select( const Engine::Scene::ItemEntry& ent, QItemSelectionModel::SelectionFlags command ); - /** Set an item as current through an item entry. @see QItemSelectionModel::setCurrent + /** Set an item as current through an item entry. \see QItemSelectionModel::setCurrent * - * @param ent - * @param command + * \param ent + * \param command */ void setCurrentEntry( const Engine::Scene::ItemEntry& ent, QItemSelectionModel::SelectionFlags command ); diff --git a/src/Gui/Timeline/Timeline.hpp b/src/Gui/Timeline/Timeline.hpp index c9c29afac3e..0c6a45711ac 100644 --- a/src/Gui/Timeline/Timeline.hpp +++ b/src/Gui/Timeline/Timeline.hpp @@ -85,7 +85,7 @@ class RA_GUI_API Timeline : public QDialog void unregisterKeyFramedValue( Ra::Core::Utils::Index roIdx, const std::string& name ); /** - * @returns the current time. + * \returns the current time. */ Scalar getTime() const; @@ -272,11 +272,11 @@ class RA_GUI_API Timeline : public QDialog Ra::Core::Animation::KeyFramedValueController m_current; /// Observers id for engine event - ///@{ + ///\{ int m_entityAddObserverId { -1 }; int m_entityRemoveObserverId { -1 }; int m_roAddObserverId { -1 }; - ///@} + ///\} }; } // namespace Ra::Gui diff --git a/src/Gui/Timeline/TimelineFrameSelector.hpp b/src/Gui/Timeline/TimelineFrameSelector.hpp index b4daf5a5cad..069572eafbc 100644 --- a/src/Gui/Timeline/TimelineFrameSelector.hpp +++ b/src/Gui/Timeline/TimelineFrameSelector.hpp @@ -32,8 +32,8 @@ class TimelineFrameSelector : public QFrame /** * Sets the start point of the Timeline's playzone to the given time. - * @param time the new start point. - * @param internal whether the call has been made internally by the Timeline, + * \param time the new start point. + * \param internal whether the call has been made internally by the Timeline, * e.g. through the UI; or externally through Timeline::onChangeStart(). * \note If \p internal is set to true, the signal startChanged() will be * emitted. @@ -42,8 +42,8 @@ class TimelineFrameSelector : public QFrame /** * Sets the end point of the Timeline's playzone to the given time. - * @param time the new end point. - * @param internal whether the call has been made internally by the Timeline, + * \param time the new end point. + * \param internal whether the call has been made internally by the Timeline, * e.g. through the UI; or externally through Timeline::onChangeEnd(). * \note If \p internal is set to true, the signal endChanged() will be * emitted. diff --git a/src/Gui/TreeModel/TreeModel.hpp b/src/Gui/TreeModel/TreeModel.hpp index 987cc1894e1..1e7d9c52dd2 100644 --- a/src/Gui/TreeModel/TreeModel.hpp +++ b/src/Gui/TreeModel/TreeModel.hpp @@ -86,15 +86,15 @@ class RA_GUI_API TreeModel : public QAbstractItemModel /// \{ /** Returns the number of rows, i.e .the number of children of a given parent item. * - * @param parent - * @return + * \param parent + * \return */ int rowCount( const QModelIndex& parent = QModelIndex() ) const override; /** Returns the number of columns (only one in our case). * - * @param parent - * @return + * \param parent + * \return */ int columnCount( const QModelIndex& parent = QModelIndex() ) const override { CORE_UNUSED( parent ); @@ -103,9 +103,9 @@ class RA_GUI_API TreeModel : public QAbstractItemModel /** Return the data corresponding to the given index : in this case a string with the item name. * - * @param index - * @param role - * @return + * \param index + * \param role + * \return */ QVariant data( const QModelIndex& index, int role ) const override; @@ -113,10 +113,10 @@ class RA_GUI_API TreeModel : public QAbstractItemModel /** Return the header data of the given section. * - * @param section - * @param orientation - * @param role - * @return + * \param section + * \param orientation + * \param role + * \return */ QVariant headerData( int section, Qt::Orientation orientation, @@ -124,25 +124,25 @@ class RA_GUI_API TreeModel : public QAbstractItemModel /** Create an index for the given row, column and parent. * - * @param row - * @param column - * @param parent - * @return + * \param row + * \param column + * \param parent + * \return */ QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const override; /** Get the parent of a given child item. * - * @param child - * @return + * \param child + * \return */ QModelIndex parent( const QModelIndex& child ) const override; /** Get the flags of the object. * - * @param index - * @return + * \param index + * \return */ Qt::ItemFlags flags( const QModelIndex& index ) const override; diff --git a/src/Gui/Utils/KeyMappingManager.hpp b/src/Gui/Utils/KeyMappingManager.hpp index 53e7832dfd6..823404f6f29 100644 --- a/src/Gui/Utils/KeyMappingManager.hpp +++ b/src/Gui/Utils/KeyMappingManager.hpp @@ -83,8 +83,8 @@ class RA_GUI_API KeyMappingManager : public Ra::Core::Utils::ObservableVoid void loadConfiguration( const std::string& filename = {} ); /// Save the configuration - /// @param filename the file to write to. It will be replaced - /// @return true if file was correctly saved + /// \param filename the file to write to. It will be replaced + /// \return true if file was correctly saved bool saveConfiguration( const std::string& filename = {} ); /// reload last open file. @@ -157,7 +157,7 @@ class RA_GUI_API KeyMappingManager : public Ra::Core::Utils::ObservableVoid int addListener( Observable::Observer callback ); /// Remove a callback. To be called when the related Context/Actions are no more needed. - /// @param callbackId the Id, returned by addListener, of the Observer to be removed. + /// \param callbackId the Id, returned by addListener, of the Observer to be removed. void removeListener( int callbackId ); /// Return a string corresponding to the current dom document. diff --git a/src/Gui/Viewer/CameraManipulator.hpp b/src/Gui/Viewer/CameraManipulator.hpp index 9a50a0db878..6943b441c51 100644 --- a/src/Gui/Viewer/CameraManipulator.hpp +++ b/src/Gui/Viewer/CameraManipulator.hpp @@ -44,31 +44,31 @@ class RA_GUI_API CameraManipulator : public QObject /// associated Camera. virtual ~CameraManipulator(); - /// @return the mapping context for keymapping, Index::Invalid() if no mapping is available + /// \return the mapping context for keymapping, Index::Invalid() if no mapping is available virtual KeyMappingManager::Context mappingContext(); - /// @return true if the event has been taken into account, false otherwise + /// \return true if the event has been taken into account, false otherwise virtual bool handleMousePressEvent( QMouseEvent* event, const Qt::MouseButtons& buttons, const Qt::KeyboardModifiers& modifiers, int key ); - /// @return true if the event has been taken into account, false otherwise + /// \return true if the event has been taken into account, false otherwise virtual bool handleMouseReleaseEvent( QMouseEvent* event ); - /// @return true if the event has been taken into account, false otherwise + /// \return true if the event has been taken into account, false otherwise virtual bool handleMouseMoveEvent( QMouseEvent* event, const Qt::MouseButtons& buttons, const Qt::KeyboardModifiers& modifiers, int key ); - /// @return true if the event has been taken into account, false otherwise + /// \return true if the event has been taken into account, false otherwise virtual bool handleWheelEvent( QWheelEvent* event, const Qt::MouseButtons& buttons, const Qt::KeyboardModifiers& modifiers, int key ); - /// @return true if the event has been taken into account, false otherwise + /// \return true if the event has been taken into account, false otherwise virtual bool handleKeyPressEvent( QKeyEvent* event, const KeyMappingManager::KeyMappingAction& action ); - /// @return true if the event has been taken into account, false otherwise + /// \return true if the event has been taken into account, false otherwise virtual bool handleKeyReleaseEvent( QKeyEvent* event, const KeyMappingManager::KeyMappingAction& action ); @@ -86,7 +86,7 @@ class RA_GUI_API CameraManipulator : public QObject /// \note CameraManipulator doesn't have ownership. void attachLight( Engine::Scene::Light* light ); - /// @return true if a Light is attached to the camera, false otherwise. + /// \return true if a Light is attached to the camera, false otherwise. bool hasLightAttached() const { return m_light != nullptr; } /// pointer acces to the attached light if it exists, returns nullptr otherwise. @@ -94,13 +94,13 @@ class RA_GUI_API CameraManipulator : public QObject public slots: /// \name Camera properties setters - ///@{ + ///\{ void setCameraSensitivity( Scalar sensitivity ); void setCameraFov( Scalar fov ); void setCameraFovInDegrees( Scalar fov ); void setCameraZNear( Scalar zNear ); void setCameraZFar( Scalar zFar ); - ///@} + ///\} /// Set the AABB to restrain the camera behavior against. void mapCameraBehaviourToAabb( const Core::Aabb& aabb ); diff --git a/src/Gui/Viewer/RotateAroundCameraManipulator.hpp b/src/Gui/Viewer/RotateAroundCameraManipulator.hpp index b8a8905d573..7324dabaa2e 100644 --- a/src/Gui/Viewer/RotateAroundCameraManipulator.hpp +++ b/src/Gui/Viewer/RotateAroundCameraManipulator.hpp @@ -17,12 +17,12 @@ class RA_GUI_API RotateAroundCameraManipulator explicit RotateAroundCameraManipulator( Ra::Gui::Viewer* viewer ); explicit RotateAroundCameraManipulator( const CameraManipulator& cm, Ra::Gui::Viewer* viewer ); - /// @copydoc TrackballCameraManipulator::handleMouseMoveEvent() + /// \copydoc TrackballCameraManipulator::handleMouseMoveEvent() bool handleMouseMoveEvent( QMouseEvent* event, const Qt::MouseButtons& buttons, const Qt::KeyboardModifiers& modifiers, int key ) override; - /// @copydoc TrackballCameraManipulator::handleKeyPressEvent() + /// \copydoc TrackballCameraManipulator::handleKeyPressEvent() bool handleKeyPressEvent( QKeyEvent* event, const Ra::Gui::KeyMappingManager::KeyMappingAction& action ) override; diff --git a/src/Gui/Viewer/Viewer.hpp b/src/Gui/Viewer/Viewer.hpp index a294b2540f0..bfc0e391ceb 100644 --- a/src/Gui/Viewer/Viewer.hpp +++ b/src/Gui/Viewer/Viewer.hpp @@ -68,7 +68,7 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable /** Prepare the viewer to display a scene. * This will ask the renderer to build its specific OenGL related objects * and set the camera to its default state - * @return true if the scene is ready to display. + * \return true if the scene is ready to display. */ virtual bool prepareDisplay(); @@ -126,9 +126,9 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable /// Blocks until rendering is finished. void swapBuffers(); - /// @name + /// \name /// Misc functions - /// @{ + /// \{ /// Emits signals corresponding to picking requests. void processPicking(); @@ -152,7 +152,7 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable addCustomAction( const std::string& actionName, const KeyMappingManager::EventBinding& binding, std::function callback ); - ///@} + ///\} Scalar getDepthUnderMouse() const { return m_depthUnderMouse; } @@ -226,7 +226,7 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable /// Initialize openGL. Called on by the first "show" call to the main window. /// \warning This function is NOT reentrant, and may behave incorrectly /// if called at the same time than initializeRenderer() - /// @note Must be called only when a valid openGLContext is bound (see WindowsQt::initialize) + /// \note Must be called only when a valid openGLContext is bound (see WindowsQt::initialize) bool initializeGL() override; /// Resize the view port and the camera. Called by the resize event. @@ -235,11 +235,11 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable Engine::Rendering::Renderer::PickingMode getPickingMode( const Ra::Gui::KeyMappingManager::KeyMappingAction& action ) const; - /// @name + /// \name /// If GL is initialized, do the viewer stuff, and call handle*Event to perform actual event /// handling, according to keyMapping. If event is not processed by Viewer, it's forwarded to /// parent() (if any). - ///@{ + ///\{ void keyPressEvent( QKeyEvent* event ) override; void keyReleaseEvent( QKeyEvent* event ) override; @@ -252,17 +252,17 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable void mouseMoveEvent( QMouseEvent* event ) override; ///\todo propagateToParent void wheelEvent( QWheelEvent* event ) override; - ///@} + ///\} void showEvent( QShowEvent* ev ) override; /// reset key pressed, in case a key is pressed when focus lost void focusOutEvent( QFocusEvent* event ) override; - /// @name + /// \name /// handle the events, called by *Event, do the actual work, should be overriden in /// derived classes. - ///@{ + ///\{ virtual bool handleKeyPressEvent( QKeyEvent* event ); virtual bool handleKeyReleaseEvent( QKeyEvent* event ); virtual void handleMousePressEvent( QMouseEvent* event, @@ -271,7 +271,7 @@ class RA_GUI_API Viewer : public WindowQt, public KeyMappingManageable virtual void handleMouseMoveEvent( QMouseEvent* event, Ra::Engine::Rendering::Renderer::PickingResult& result ); virtual void handleWheelEvent( QWheelEvent* event ); - ///@} + ///\} private: /// update keymapping according to keymapping manager's config, should be /// called each time the configuration changes, or added to observer's list diff --git a/src/Gui/Widgets/ControlPanel.hpp b/src/Gui/Widgets/ControlPanel.hpp index 07973c3a2c9..b272497af71 100644 --- a/src/Gui/Widgets/ControlPanel.hpp +++ b/src/Gui/Widgets/ControlPanel.hpp @@ -29,18 +29,18 @@ class RA_GUI_API ControlPanel : public QFrame /** Constructors and destructor. * https://en.cppreference.com/w/cpp/language/rule_of_three */ - /** @{ */ + /** \{ */ explicit ControlPanel( const std::string& name, bool hline = true, QWidget* parent = nullptr ); ControlPanel( const ControlPanel& ) = delete; ControlPanel& operator=( const ControlPanel& ) = delete; ControlPanel( ControlPanel&& ) = delete; ControlPanel& operator=( ControlPanel&& ) = delete; ~ControlPanel() override = default; - /**@}*/ + /**\}*/ /**Methods to populate the panel with dedicated ui elements. */ - /** @{ */ + /** \{ */ /** * Open a box layout to organise the widgets @@ -262,7 +262,7 @@ class RA_GUI_API ControlPanel : public QFrame */ void addWidget( QWidget* newWidget ); - /**@}*/ + /**\}*/ private: /// The layout to organise the ui elements diff --git a/src/Gui/Widgets/MatrixEditor.hpp b/src/Gui/Widgets/MatrixEditor.hpp index cafe23da69a..60601be1719 100644 --- a/src/Gui/Widgets/MatrixEditor.hpp +++ b/src/Gui/Widgets/MatrixEditor.hpp @@ -20,25 +20,25 @@ class RA_GUI_API MatrixEditor : public QWidget public: /** Constructors */ - /** @{ */ + /** \{ */ explicit MatrixEditor( const Ra::Core::MatrixN& matrix, int dec, QWidget* parent = nullptr ); MatrixEditor( const MatrixEditor& ) = delete; MatrixEditor& operator=( const MatrixEditor& ) = delete; MatrixEditor( MatrixEditor&& ) = delete; MatrixEditor&& operator=( MatrixEditor&& ) = delete; - /**@}*/ + /**\}*/ /// Get the edited matrix const Ra::Core::MatrixN& matrix() const; /** - * @return the number of decimal of the input + * \return the number of decimal of the input */ int decimals() const; /** * Set the precision of the input, in decimals - * @param prec the precision in decimals + * \param prec the precision in decimals */ void setDecimals( int prec ); diff --git a/src/Gui/Widgets/VectorEditor.hpp b/src/Gui/Widgets/VectorEditor.hpp index 2eecb3ef81f..6802d65a41c 100644 --- a/src/Gui/Widgets/VectorEditor.hpp +++ b/src/Gui/Widgets/VectorEditor.hpp @@ -37,16 +37,16 @@ class VectorEditor : public VectorEditorSignals using SignalType = typename QtSpinBox::getType::SignalType; /** Constructors */ - /** @{ */ + /** \{ */ explicit VectorEditor( const std::vector& vector, QWidget* parent = nullptr ); VectorEditor( const VectorEditor& ) = delete; VectorEditor& operator=( const VectorEditor& ) = delete; VectorEditor( VectorEditor&& ) = delete; VectorEditor&& operator=( VectorEditor&& ) = delete; - /**@}*/ + /**\}*/ /** - * @return the value of the vector + * \return the value of the vector */ const std::vector& vector() const; diff --git a/src/Headless/CLI/App.hpp b/src/Headless/CLI/App.hpp index 556e560a03e..70edd6adc63 100644 --- a/src/Headless/CLI/App.hpp +++ b/src/Headless/CLI/App.hpp @@ -84,8 +84,8 @@ class App protected: // This library follows the Google style guide for member names ending in underscores - /// @name Basics - ///@{ + /// \name Basics + ///\{ /// Subcommand name or program name (from parser if name is empty) std::string name_ {}; @@ -127,9 +127,9 @@ class App /// This is a function that runs when all processing has completed std::function final_callback_ {}; - ///@} - /// @name Options - ///@{ + ///\} + /// \name Options + ///\{ /// The default values for options, customizable and changeable INHERITABLE OptionDefaults option_defaults_ {}; @@ -137,9 +137,9 @@ class App /// The list of options, stored locally std::vector options_ {}; - ///@} - /// @name Help - ///@{ + ///\} + /// \name Help + ///\{ /// Footer to put after all options in the help output INHERITABLE std::string footer_ {}; @@ -163,9 +163,9 @@ class App std::function failure_message_ { FailureMessage::simple }; - ///@} - /// @name Parsing - ///@{ + ///\} + /// \name Parsing + ///\{ using missing_t = std::vector>; @@ -197,9 +197,9 @@ class App /// options do not need the subcommand not be std::set need_options_ {}; - ///@} - /// @name Subcommands - ///@{ + ///\} + /// \name Subcommands + ///\{ /// Storage for subcommand list std::vector subcommands_ {}; @@ -266,9 +266,9 @@ class App /// Alias names for the subcommand std::vector aliases_ {}; - ///@} - /// @name Config - ///@{ + ///\} + /// \name Config + ///\{ /// Pointer to the config option Option* config_ptr_ { nullptr }; @@ -276,7 +276,7 @@ class App /// This is the formatter for help printing. Default provided. INHERITABLE (same pointer) std::shared_ptr config_formatter_ { new ConfigTOML() }; - ///@} + ///\} /// Special private constructor for subcommand App( std::string app_description, std::string app_name, App* parent ) : @@ -316,8 +316,8 @@ class App } public: - /// @name Basic - ///@{ + /// \name Basic + ///\{ /// Create a new program. Pass in the same arguments as main(), along with a help string. explicit App( std::string app_description = "", std::string app_name = "" ) : @@ -565,9 +565,9 @@ class App /// Get the OptionDefault object, to set option defaults OptionDefaults* option_defaults() { return &option_defaults_; } - ///@} - /// @name Adding options - ///@{ + ///\} + /// \name Adding options + ///\{ /// Add an option, will automatically understand the type for common types. /// @@ -1049,9 +1049,9 @@ class App return ptr; } - ///@} - /// @name Subcommands - ///@{ + ///\} + /// \name Subcommands + ///\{ /// Add a subcommand. Inherits INHERITABLE and OptionDefaults, and help flag App* add_subcommand( std::string subcommand_name = "", @@ -1251,18 +1251,18 @@ class App /// This allows the subcommand to be directly checked. explicit operator bool() const { return parsed_ > 0; } - ///@} - /// @name Extras for subclassing - ///@{ + ///\} + /// \name Extras for subclassing + ///\{ /// This allows subclasses to inject code before callbacks but after parse. /// /// This does not run if any errors or help is thrown. virtual void pre_callback() {} - ///@} - /// @name Parsing - ///@{ + ///\} + /// \name Parsing + ///\{ // /// Reset the parsed data void clear() { @@ -1400,9 +1400,9 @@ class App return e.get_exit_code(); } - ///@} - /// @name Post parsing - ///@{ + ///\} + /// \name Post parsing + ///\{ /// Counts the number of times the given option was passed. std::size_t count( std::string option_name ) const { @@ -1531,9 +1531,9 @@ class App return true; } - ///@} - /// @name Help - ///@{ + ///\} + /// \name Help + ///\{ /// Set footer. App* footer( std::string footer_string ) { @@ -1586,9 +1586,9 @@ class App } return val; } - ///@} - /// @name Getters - ///@{ + ///\} + /// \name Getters + ///\{ /// Access the formatter std::shared_ptr get_formatter() const { return formatter_; } @@ -1918,7 +1918,7 @@ class App return remaining_options; } - ///@} + ///\} protected: /// Check the options to make sure there are no conflicts. @@ -2503,7 +2503,7 @@ class App } /// Parse a positional, go up the tree to check - /// @param haltOnSubcommand if set to true the operation will not process subcommands merely + /// \param haltOnSubcommand if set to true the operation will not process subcommands merely /// return false Return true if the positional was used false otherwise bool _parse_positional( std::vector& args, bool haltOnSubcommand ) { diff --git a/src/Headless/CLI/Error.hpp b/src/Headless/CLI/Error.hpp index a83c2e22ba9..98312cdcbe2 100644 --- a/src/Headless/CLI/Error.hpp +++ b/src/Headless/CLI/Error.hpp @@ -61,11 +61,11 @@ enum class ExitCodes { // Error definitions -/// @defgroup error_group Errors -/// @brief Errors thrown by CLI11 +/// \defgroup error_group Errors +/// \brief Errors thrown by CLI11 /// /// These are the errors that can be thrown. Some of them, like CLI::Success, are not really errors. -/// @{ +/// \{ /// All errors derive from this one class Error : public std::runtime_error @@ -396,7 +396,7 @@ class OptionNotFound : public Error #undef CLI11_ERROR_DEF #undef CLI11_ERROR_SIMPLE -/// @} +/// \} // [CLI11:error_hpp:end] } // namespace CLI diff --git a/src/Headless/CLI/FormatterFwd.hpp b/src/Headless/CLI/FormatterFwd.hpp index 8a9bd5cf5a5..8e2f360dc2f 100644 --- a/src/Headless/CLI/FormatterFwd.hpp +++ b/src/Headless/CLI/FormatterFwd.hpp @@ -39,19 +39,19 @@ enum class AppFormatMode { class FormatterBase { protected: - /// @name Options - ///@{ + /// \name Options + ///\{ /// The width of the first column std::size_t column_width_ { 30 }; - /// @brief The required help printout labels (user changeable) + /// \brief The required help printout labels (user changeable) /// Values are Needs, Excludes, etc. std::map labels_ {}; - ///@} - /// @name Basic - ///@{ + ///\} + /// \name Basic + ///\{ public: FormatterBase() = default; @@ -64,9 +64,9 @@ class FormatterBase /// This is the key method that puts together help virtual std::string make_help( const App*, std::string, AppFormatMode ) const = 0; - ///@} - /// @name Setters - ///@{ + ///\} + /// \name Setters + ///\{ /// Set the "REQUIRED" label void label( std::string key, std::string val ) { labels_[key] = val; } @@ -74,9 +74,9 @@ class FormatterBase /// Set the column width void column_width( std::size_t val ) { column_width_ = val; } - ///@} - /// @name Getters - ///@{ + ///\} + /// \name Getters + ///\{ /// Get the current value of a name (REQUIRED, etc.) std::string get_label( std::string key ) const { @@ -89,7 +89,7 @@ class FormatterBase /// Get the current column width std::size_t get_column_width() const { return column_width_; } - ///@} + ///\} }; /// This is a specialty override for lambda functions @@ -122,8 +122,8 @@ class Formatter : public FormatterBase Formatter( const Formatter& ) = default; Formatter( Formatter&& ) = default; - /// @name Overridables - ///@{ + /// \name Overridables + ///\{ /// This prints out a group of options with title /// @@ -157,9 +157,9 @@ class Formatter : public FormatterBase /// This puts everything together std::string make_help( const App* /*app*/, std::string, AppFormatMode ) const override; - ///@} - /// @name Options - ///@{ + ///\} + /// \name Options + ///\{ /// This prints out an option help line, either positional or optional form virtual std::string make_option( const Option* opt, bool is_positional ) const { @@ -171,19 +171,19 @@ class Formatter : public FormatterBase return out.str(); } - /// @brief This is the name part of an option, Default: left column + /// \brief This is the name part of an option, Default: left column virtual std::string make_option_name( const Option*, bool ) const; - /// @brief This is the options part of the name, Default: combined into left column + /// \brief This is the options part of the name, Default: combined into left column virtual std::string make_option_opts( const Option* ) const; - /// @brief This is the description. Default: Right column, on new line if left column too large + /// \brief This is the description. Default: Right column, on new line if left column too large virtual std::string make_option_desc( const Option* ) const; - /// @brief This is used to print the name on the USAGE line + /// \brief This is used to print the name on the USAGE line virtual std::string make_option_usage( const Option* opt ) const; - ///@} + ///\} }; // [CLI11:formatter_fwd_hpp:end] diff --git a/src/Headless/CLI/Option.hpp b/src/Headless/CLI/Option.hpp index 272e206fa41..b09da9335cd 100644 --- a/src/Headless/CLI/Option.hpp +++ b/src/Headless/CLI/Option.hpp @@ -241,8 +241,8 @@ class Option : public OptionBase