diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08e4c8c..d669548 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,10 @@ env: LCOV_BRANCH_COVERAGE: 0 CODECOV_NAME: Github Actions +permissions: + id-token: write + pages: write + jobs: posix: defaults: @@ -292,6 +296,8 @@ jobs: rmdir /s /q boost-ci-cloned - name: Setup Boost + env: + BOOST_BRANCH: master run: ci\github\install.bat - name: Run tests @@ -453,3 +459,64 @@ jobs: cmake -G "${{matrix.generator}}" -DBOOST_CI_INSTALL_TEST=ON -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.build_shared}} -DCMAKE_PREFIX_PATH=$HOME/local .. cmake --build . --config ${{matrix.build_type}} -j$B2_JOBS ctest --output-on-failure --build-config ${{matrix.build_type}} + antora: + name: Antora Docs + runs-on: ubuntu-latest + defaults: + run: + shell: bash + steps: + - name: Install packages + uses: alandefreitas/cpp-actions/package-install@v1.8.10 + with: + apt-get: git cmake + + - name: Clone Boost.OpenMethod + uses: actions/checkout@v4 + + - name: Clone Boost + uses: alandefreitas/cpp-actions/boost-clone@v1.8.10 + id: boost-clone + with: + branch: ${{ (github.ref_name == 'master' && github.ref_name) || 'develop' }} + boost-dir: ../boost-source + scan-modules-dir: . + scan-modules-ignore: openmethod + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Build Antora Docs + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git config --global --add safe.directory "$(pwd)" + + cd .. + BOOST_SRC_DIR="$(pwd)/boost-source" + export BOOST_SRC_DIR + cd Boost.OpenMethod + + cd doc + bash ./build_antora.sh + + # Antora returns zero even if it fails, so we check if the site directory exists + if [ ! -d "build/site" ]; then + echo "Antora build failed" + exit 1 + fi + + - name: Create Antora Docs Artifact + uses: actions/upload-artifact@v4 + with: + name: antora-docs-${{ matrix.name }} + path: doc/build/site + + - name: Upload static files as artifact + uses: actions/upload-pages-artifact@v3 + with: + path: doc/build/site + + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index a500e63..4aaeb4c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ build/ builds/ **/#*# dependencies/* +Dependencies/* extern/* tests/benchmarks_parameters.hpp **/vcpkg_installed diff --git a/CMakeLists.txt b/CMakeLists.txt index f6272ed..c6b7ec2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,55 +1,64 @@ -# Generated by `boostdep --cmake openmethod` -# Copyright 2020, 2021 Peter Dimov -# Distributed under the Boost Software License, Version 1.0. -# https://www.boost.org/LICENSE_1_0.txt +# +# Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com) +# Copyright (c) 2021 DMitry Arkhipov (grisumbras@gmail.com) +# Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.com) +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# +# Official repository: https://github.com/boostorg/openmethod +# -cmake_minimum_required(VERSION 3.5...3.20) +#------------------------------------------------- +# +# Project +# +#------------------------------------------------- -project(boost_openmethod VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX) +cmake_minimum_required(VERSION 3.8...3.20) + +set(BOOST_OPENMETHOD_VERSION 1) + +if (BOOST_SUPERPROJECT_VERSION) + set(BOOST_OPENMETHOD_VERSION ${BOOST_SUPERPROJECT_VERSION}) +endif () + +project(boost_openmethod VERSION "${BOOST_OPENMETHOD_VERSION}" LANGUAGES CXX) set(BOOST_OPENMETHOD_IS_ROOT OFF) -if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + +if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(BOOST_OPENMETHOD_IS_ROOT ON) -endif() +endif () +set(__ignore__ ${CMAKE_C_COMPILER}) -if(BOOST_OPENMETHOD_IS_ROOT) - include(CTest) -endif() -if(NOT BOOST_SUPERPROJECT_VERSION) - option(BOOST_OPENMETHOD_INSTALL "Install boost::openmethod files" ON) - option(BOOST_OPENMETHOD_BUILD_TESTS "Build boost::openmethod tests" ${BUILD_TESTING}) - option(BOOST_OPENMETHOD_BUILD_EXAMPLES "Build boost::openmethod examples" ${BOOST_OPENMETHOD_IS_ROOT}) -else() - set(BOOST_OPENMETHOD_BUILD_TESTS ${BUILD_TESTING}) -endif() +#------------------------------------------------- +# +# Options +# +#------------------------------------------------- +option(BOOST_OPENMETHOD_BUILD_TESTS "Build boost::openmethod tests even if BUILD_TESTING is OFF" OFF) +option(BOOST_OPENMETHOD_BUILD_EXAMPLES "Build boost::openmethod examples" ${BOOST_OPENMETHOD_IS_ROOT}) +option(BOOST_OPENMETHOD_MRDOCS_BUILD "Build the target for MrDocs: see mrdocs.yml" OFF) +option(BOOST_OPENMETHOD_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF) -if(BOOST_OPENMETHOD_IS_ROOT) - # - # Building inside Boost tree, but as a separate project e.g. on Travis or - # other CI, or when producing Visual Studio Solution and Projects. +# Check if environment variable BOOST_SRC_DIR is set +if (NOT DEFINED BOOST_SRC_DIR AND DEFINED ENV{BOOST_SRC_DIR}) + set(DEFAULT_BOOST_SRC_DIR "$ENV{BOOST_SRC_DIR}") +else () + set(DEFAULT_BOOST_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") +endif () +set(BOOST_SRC_DIR ${DEFAULT_BOOST_SRC_DIR} CACHE STRING "Boost source dir to use when running CMake from this directory") - set(BOOST_INCLUDE_LIBRARIES openmethod) - set(BOOST_EXCLUDE_LIBRARIES openmethod) - list(APPEND BOOST_INCLUDE_LIBRARIES test) - if(BOOST_OPENMETHOD_BUILD_EXAMPLES) - # list(APPEND BOOST_INCLUDE_LIBRARIES optional) - endif() +#------------------------------------------------- +# +# Boost modules +# +#------------------------------------------------- +# The boost super-project requires one explicit dependency per-line. - set(CMAKE_FOLDER _deps) - add_subdirectory(../.. _deps/boost EXCLUDE_FROM_ALL) - unset(CMAKE_FOLDER) -endif() - -add_library(boost_openmethod INTERFACE) -add_library(Boost::openmethod ALIAS boost_openmethod) - -target_compile_features(boost_openmethod INTERFACE cxx_std_17) - -target_include_directories(boost_openmethod INTERFACE include) - -target_link_libraries( - boost_openmethod - INTERFACE +set( + BOOST_OPENMETHOD_DEPENDENCIES Boost::assert Boost::config Boost::core @@ -58,11 +67,119 @@ target_link_libraries( Boost::preprocessor ) -if(BOOST_OPENMETHOD_BUILD_TESTS) - enable_testing() - add_subdirectory(test) + +foreach (BOOST_OPENMETHOD_DEPENDENCY ${BOOST_OPENMETHOD_DEPENDENCIES}) + if (BOOST_OPENMETHOD_DEPENDENCY MATCHES "^[ ]*Boost::([A-Za-z0-9_]+)[ ]*$") + list(APPEND BOOST_OPENMETHOD_INCLUDE_LIBRARIES ${CMAKE_MATCH_1}) + endif () +endforeach () +# Conditional dependencies +if (NOT BOOST_OPENMETHOD_MRDOCS_BUILD) + if (BUILD_TESTING OR BOOST_OPENMETHOD_BUILD_TESTS) + set(BOOST_OPENMETHOD_UNIT_TEST_LIBRARIES test) + endif() + if (BOOST_OPENMETHOD_BUILD_EXAMPLES) + #set(BOOST_OPENMETHOD_EXAMPLE_LIBRARIES json regex beast) + endif() +endif() +# Complete dependency list +set(BOOST_INCLUDE_LIBRARIES ${BOOST_OPENMETHOD_INCLUDE_LIBRARIES} ${BOOST_OPENMETHOD_UNIT_TEST_LIBRARIES} ${BOOST_OPENMETHOD_EXAMPLE_LIBRARIES}) +set(BOOST_EXCLUDE_LIBRARIES openmethod) + +#------------------------------------------------- +# +# Add Boost Subdirectory +# +#------------------------------------------------- +if (BOOST_OPENMETHOD_IS_ROOT) + set(CMAKE_FOLDER Dependencies) + # Find absolute BOOST_SRC_DIR + if (NOT IS_ABSOLUTE ${BOOST_SRC_DIR}) + set(BOOST_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${BOOST_SRC_DIR}") + endif () + + # Validate BOOST_SRC_DIR + set(BOOST_SRC_DIR_IS_VALID ON) + foreach (F "CMakeLists.txt" "Jamroot" "boost-build.jam" "bootstrap.sh" "libs") + if (NOT EXISTS "${BOOST_SRC_DIR}/${F}") + message(STATUS "${BOOST_SRC_DIR}/${F} does not exist. Fallback to find_package.") + set(BOOST_SRC_DIR_IS_VALID OFF) + break() + endif () + endforeach () + + # Create Boost interface targets + if (BOOST_SRC_DIR_IS_VALID) + # From BOOST_SRC_DIR + if (BUILD_SHARED_LIBS) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + endif() + set(BOOST_EXCLUDE_LIBRARIES ${PROJECT_NAME}) + set(PREV_BUILD_TESTING ${BUILD_TESTING}) + set(BUILD_TESTING OFF CACHE BOOL "Build the tests." FORCE) + add_subdirectory(${BOOST_SRC_DIR} Dependencies/boost EXCLUDE_FROM_ALL) + set(BUILD_TESTING ${PREV_BUILD_TESTING} CACHE BOOL "Build the tests." FORCE) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${BOOST_SRC_DIR}/tools/cmake/include") + else () + # From Boost Package + find_package(Boost REQUIRED COMPONENTS container) + foreach (BOOST_INCLUDE_LIBRARY ${BOOST_INCLUDE_LIBRARIES}) + if (NOT TARGET Boost::${BOOST_INCLUDE_LIBRARY}) + add_library(Boost::${BOOST_INCLUDE_LIBRARY} ALIAS Boost::headers) + endif () + endforeach () + endif () + unset(CMAKE_FOLDER) +endif () + +#------------------------------------------------- +# +# Library +# +#------------------------------------------------- +file(GLOB_RECURSE BOOST_OPENMETHOD_HEADERS CONFIGURE_DEPENDS include/boost/*.hpp) +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include/boost PREFIX "" FILES ${BOOST_OPENMETHOD_HEADERS}) +function(boost_openmethod_setup_properties target) + target_link_libraries(${target} INTERFACE ${BOOST_OPENMETHOD_DEPENDENCIES}) +endfunction() + +add_library(boost_openmethod INTERFACE ${BOOST_OPENMETHOD_HEADERS}) +add_library(Boost::openmethod ALIAS boost_openmethod) +target_include_directories(boost_openmethod INTERFACE "${PROJECT_SOURCE_DIR}/include") +boost_openmethod_setup_properties(boost_openmethod) +target_compile_features(boost_openmethod INTERFACE cxx_std_17) + +if (BOOST_OPENMETHOD_MRDOCS_BUILD) + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/mrdocs.cpp" "#include \n") + foreach (HEADER ${BOOST_OPENMETHOD_HEADERS}) + string(REPLACE "${PROJECT_SOURCE_DIR}/include/" "" HEADER "${HEADER}") + file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/mrdocs.cpp" "#include <${HEADER}>\n") + endforeach() + add_library(boost_openmethod_mrdocs "${CMAKE_CURRENT_BINARY_DIR}/mrdocs.cpp") + target_include_directories(boost_openmethod_mrdocs PUBLIC "${PROJECT_SOURCE_DIR}/include") + boost_openmethod_setup_properties(boost_openmethod_mrdocs) + target_link_libraries(boost_openmethod_mrdocs PUBLIC Boost::openmethod) + target_compile_definitions(boost_openmethod_mrdocs PUBLIC BOOST_OPENMETHOD_MRDOCS) + return() endif() -if(BOOST_OPENMETHOD_BUILD_EXAMPLES) - add_subdirectory(example) -endif() +#------------------------------------------------- +# +# Tests +# +#------------------------------------------------- +if (BUILD_TESTING OR BOOST_OPENMETHOD_BUILD_TESTS) + enable_testing() + add_subdirectory(test) +endif () + +#------------------------------------------------- +# +# Examples +# +#------------------------------------------------- +if (BOOST_OPENMETHOD_BUILD_EXAMPLES) + enable_testing() + add_subdirectory(doc/modules/ROOT/examples) +endif () diff --git a/ce/2-method-vptr-final.cpp b/ce/2-method-vptr-final.cpp index 9913081..0adac71 100644 --- a/ce/2-method-vptr-final.cpp +++ b/ce/2-method-vptr-final.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include struct Animal { const char* name; diff --git a/ce/2-method-vptr.cpp b/ce/2-method-vptr.cpp index 05492ea..2bfc279 100644 --- a/ce/2-method-vptr.cpp +++ b/ce/2-method-vptr.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include struct Animal { const char* name; diff --git a/ce/2-method.cpp b/ce/2-method.cpp index aa4c7dc..4be0a11 100644 --- a/ce/2-method.cpp +++ b/ce/2-method.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include struct Animal { const char* name; diff --git a/ce/uni-method-vptr-final.cpp b/ce/uni-method-vptr-final.cpp index 6749bed..5449682 100644 --- a/ce/uni-method-vptr-final.cpp +++ b/ce/uni-method-vptr-final.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include struct Animal { const char* name; diff --git a/ce/uni-method-vptr.cpp b/ce/uni-method-vptr.cpp index 5806fd9..e28658e 100644 --- a/ce/uni-method-vptr.cpp +++ b/ce/uni-method-vptr.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include struct Animal { const char* name; diff --git a/ce/uni-method.cpp b/ce/uni-method.cpp index 62aed67..0ce2675 100644 --- a/ce/uni-method.cpp +++ b/ce/uni-method.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include struct Animal { const char* name; diff --git a/dev/local-flat.sh b/dev/local-flat.sh index c635a36..f7cc4e4 100755 --- a/dev/local-flat.sh +++ b/dev/local-flat.sh @@ -4,7 +4,7 @@ python3 dev/flatten.py \ include/boost/openmethod.hpp \ include/boost/openmethod/unique_ptr.hpp \ include/boost/openmethod/shared_ptr.hpp \ - include/boost/openmethod/compiler.hpp + include/boost/openmethod/initialize.hpp python3 dev/flatten.py \ flat/boost/openmethod/registry.hpp \ include/boost/openmethod/registry.hpp \ diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..84d1a29 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,6 @@ +temp +out.txt +qbk/reference.qbk +node_modules +build +reference-output diff --git a/doc/antora.yml b/doc/antora.yml new file mode 100644 index 0000000..718b191 --- /dev/null +++ b/doc/antora.yml @@ -0,0 +1,32 @@ +# +# Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com) +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# +# Official repository: https://github.com/boostorg/openmethod +# + +name: openmethod +version: ~ +title: Boost.OpenMethod +start_page: index.adoc +asciidoc: + attributes: + source-language: asciidoc@ + table-caption: false +nav: + - modules/ROOT/nav.adoc +ext: + cpp-reference: + config: doc/mrdocs.yml + cpp-tagfiles: + files: + - file: ./doc/tagfiles/boost-openmethod-doxygen.tag.xml + base_url: 'xref:reference:' + - file: ./doc/tagfiles/boost-openmethod-macros-doxygen.tag.xml + base_url: 'xref:reference:' + using-namespaces: + - boost::openmethod + - boost::openmethod::policies + - boost::openmethod::aliases diff --git a/doc/basic_policy.adoc b/doc/basic_policy.adoc index 374f58a..8f064d7 100644 --- a/doc/basic_policy.adoc +++ b/doc/basic_policy.adoc @@ -46,7 +46,7 @@ Defined in . Also available via ### Description `basic_policy` implements a policy, which consists of a a collection of methods, -classes, dispatch data, and facets, which specify how to obtain a pointer to a +classes, dispatch data, and policys, which specify how to obtain a pointer to a v-table from an object, how to report errors, whether to perform runtime sanity checks, etc. @@ -75,7 +75,7 @@ Creates a new policy from an existing one. _NewPolicy_ does not share static variables with the original _Policy_. The new policy does not retain any knowledge of the classes and methods registered in the original. -`fork` forks the facets in the policy as well: any facet instantiated from a +`fork` forks the policys in the policy as well: any policy instantiated from a class template is assumed to take a policy as its first template argument. The template is re-instantiated with the new policy as the first arguments, while the other arguments remain the same. @@ -87,9 +87,9 @@ template using with; ``` -Requires:: _Facets_ is a list of classes that derive from `facet`. +Requires:: _Facets_ is a list of classes that derive from `policy`. -Returns:: A new policy containing _Facets_, and the facets from the original +Returns:: A new policy containing _Facets_, and the policys from the original that do not have the same category as _Facets_. Examples:: @@ -111,9 +111,9 @@ template using without; ``` -Requires:: _Facets_ is a list of facet categories. +Requires:: _Facets_ is a list of policy categories. -Returns:: A new policy containing the facets from the original that do not have +Returns:: A new policy containing the policys from the original that do not have the same category as _Facets_. Examples:: @@ -130,7 +130,7 @@ Examples:: struct release; ``` -A policy that contains facets `std_rtti`, `fast_perfect_hash`, `vptr_vector` and +A policy that contains policys `std_rtti`, `fast_perfect_hash`, `vptr_vector` and `default_error_handler`. #### debug @@ -139,7 +139,7 @@ A policy that contains facets `std_rtti`, `fast_perfect_hash`, `vptr_vector` and struct debug; ``` -The `release` policy with additional facet implementations `runtime_checks`, +The `release` policy with additional policy implementations `runtime_checks`, `basic_error_output` and basic_trace_output. NOTE: `debug` extends `release` but it does not a fork it. Both policies use the diff --git a/doc/build_antora.sh b/doc/build_antora.sh new file mode 100755 index 0000000..b0dc2c9 --- /dev/null +++ b/doc/build_antora.sh @@ -0,0 +1,28 @@ +# +# Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com) +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# +# Official repository: https://github.com/boostorg/openmethod +# + +set -xe + +if [ $# -eq 0 ] + then + echo "No playbook supplied, using default playbook" + PLAYBOOK="local-playbook.yml" + else + PLAYBOOK=$1 +fi + +echo "Building documentation with Antora..." +echo "Installing npm dependencies..." +npm ci + +echo "Building docs in custom dir..." +PATH="$(pwd)/node_modules/.bin:${PATH}" +export PATH +npx antora --clean --fetch "$PLAYBOOK" --stacktrace --log-level all +echo "Done" diff --git a/doc/default_error_handler.adoc b/doc/default_error_handler.adoc index 71fcae7..4d2bd63 100644 --- a/doc/default_error_handler.adoc +++ b/doc/default_error_handler.adoc @@ -40,7 +40,7 @@ static auto error(const Error& error) -> void; ``` Calls the function last set via `set_error_handler` or, if it was never called, -and if _Policy_ contains an `output` facet, use it to print a description +and if _Policy_ contains an `output` policy, use it to print a description of `error`. #### error diff --git a/doc/deferred_static_rtti.adoc b/doc/deferred_static_rtti.adoc index 4019c0e..a8aab78 100644 --- a/doc/deferred_static_rtti.adoc +++ b/doc/deferred_static_rtti.adoc @@ -15,11 +15,11 @@ struct deferred_static_rtti : rtti {}; ### Description -`deferred_static_rtti` is a facet that defers collection of static type ids. +`deferred_static_rtti` is a policy that defers collection of static type ids. Some custom RTTI systems rely on static constructors to assign type ids. OpenMethod itself relies on static constructors to register classes, methods and -overriders, calling the `static_type` function from the `rtti` facet in the +overriders, calling the `static_type` function from the `rtti` policy in the process. This can result in collecting the type ids _before_ they have been -initialized. Adding this facet to a policy moves the collection of type ids to +initialized. Adding this policy to a policy moves the collection of type ids to `initialize`. diff --git a/doc/error_handler.adoc b/doc/error_handler.adoc index b48f759..9d943ef 100644 --- a/doc/error_handler.adoc +++ b/doc/error_handler.adoc @@ -42,10 +42,10 @@ struct type_mismatch_error : openmethod_error { ### Description -`error_handler` is a facet that handles errors. +`error_handler` is a policy that handles errors. When an error is encountered, either during `initialize` or method dispatch, the -program is terminated via a call to `abort`. If this facet is present in the +program is terminated via a call to `abort`. If this policy is present in the policy, its `error` function is called with an error object. It can prevent termination by throwing an exception. diff --git a/doc/error_output.adoc b/doc/error_output.adoc index e851931..e2d46b9 100644 --- a/doc/error_output.adoc +++ b/doc/error_output.adoc @@ -8,21 +8,21 @@ Defined in . ```c++ namespace boost::openmethod::policies { -struct output : facet {}; +struct output : policy {}; } // boost::openmethod::policies ``` ### Description -`output` is a facet that provides a stream for writing error messages. +`output` is a policy that provides a stream for writing error messages. ### Requirements #### error_stream ```c++ -static RestrictedOutputStream error_stream; +static LightweightOutputStream error_stream; ``` -A static variable that satisfies the requirements of `RestrictedOutputStream`. +A static variable that satisfies the requirements of `LightweightOutputStream`. diff --git a/doc/facet.adoc b/doc/facet.adoc index 7155c9e..a4d206b 100644 --- a/doc/facet.adoc +++ b/doc/facet.adoc @@ -1,5 +1,5 @@ -## facet +## policy ### Synopsis @@ -8,7 +8,7 @@ Defined in . ```c++ namespace boost::openmethod::policies { -struct facet { +struct policy { static auto finalize() -> void; }; @@ -17,7 +17,7 @@ struct facet { ### Description -`facet` is the base class of all facets. It provides an empty `finalize` static +`policy` is the base class of all policys. It provides an empty `finalize` static function which can be overriden (via shadowing) by derived classes. ### Members diff --git a/doc/html/index.html b/doc/html/index.html index d463a59..0e1e0c3 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -454,7 +454,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
  • Smart Pointers
  • Alternatives to virtual_ptr
  • Core API
  • -
  • Policies and Facets
  • +
  • Policies and Facets
  • Error Handling
  • Custom RTTI
  • Deferred RTTI
  • @@ -635,7 +635,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
  • Non-members
  • -
  • facet +
  • policy
    • Synopsis
    • Description
    • @@ -747,7 +747,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
    • Members
  • -
  • RestrictedOutputStream +
  • LightweightOutputStream @@ -1615,9 +1615,9 @@ readability):

    mov	    rax, qword ptr [rsi]
    -mov	    rdx, qword ptr [rip + hash_mult]
    +mov	    rdx, qword ptr [rip + mult]
     imul	rdx, qword ptr [rax - 8]
    -movzx	ecx, byte ptr [rip + hash_shift]
    +movzx	ecx, byte ptr [rip + shift]
     shr	    rdx, cl
     mov	    rax, qword ptr [rip + vptrs]
     mov	    rax, qword ptr [rax + 8*rdx]
    @@ -2165,7 +2165,7 @@ added elsewhere - especially in presence of dynamic loading.

    -

    Policies and Facets

    +

    Policies and Facets

    Methods and classes are scoped in a policy. A method can only reference classes registered in the same policy. If a class is used as a virtual parameter in @@ -2178,17 +2178,17 @@ argument, a policy class, which defaults to policies::debug in debu and policies::release in release builds.

    -

    A policy has a collection of facets. Each facet belongs to a facet category. A -policy may contain at most one facet of a given category. Facets control how +

    A policy has a collection of policys. Each policy belongs to a policy category. A +policy may contain at most one policy of a given category. Facets control how type information is obtained, how vptrs are fetched, how errors are handled and printed, etc. Some are used in initialize and method dispatch; some are used -by other facets in the same policy as part of their implementation. See the -reference for the list of facets. Policies and facets are placed in the +by other policys in the same policy as part of their implementation. See the +reference for the list of policys. Policies and policys are placed in the boost::openmethod::policies namespace. Two stock policies are provided by the library: release and debug.

    -

    The release policy contains the following facets:

    +

    The release policy contains the following policys:

    @@ -2198,8 +2198,8 @@ library: release and debug.

    - - + + @@ -2227,7 +2227,7 @@ library: release and debug.

    facet categoryfacetpolicy categorypolicy role
    -

    The debug policy contains the same facets as release, plus a few more:

    +

    The debug policy contains the same policys as release, plus a few more:

    @@ -2237,8 +2237,8 @@ library: release and debug.

    - - + + @@ -2261,12 +2261,12 @@ library: release and debug.

    facet categoryfacetpolicy categorypolicy role
    -

    Policies, and some facets, have static variables. When it is the case, they are +

    Policies, and some policys, have static variables. When it is the case, they are implemented as CRTP classes.

    Policies can be created from scratch, using the basic_policy template, or -constructed from existing policies by adding and removing facets. For example, +constructed from existing policies by adding and removing policys. For example, policies::debug is a tweak of policies::release:

    @@ -2295,9 +2295,9 @@ has no effect.

    Error Handling

    When an error is encountered, the program is terminated by a call to abort. If -the policy contains an error_handler facet, it provides an error member +the policy contains an error_handler policy, it provides an error member function (or overloaded functions) to be called with an object identifying the -error. The release and debug policies implement the error facet with +error. The release and debug policies implement the error policy with default_error_handler, which wraps the error object in a variant, and calls a handler via a std::function. By default, it prints a description of the error to stderr in the debug policy, and does nothing in the release policy. The @@ -2366,7 +2366,7 @@ spin

    -

    We can also replace the error_handler facet with our own. For example:

    +

    We can also replace the error_handler policy with our own. For example:

    @@ -2441,7 +2441,7 @@ spin
    -

    Stock facet throw_error_handler does this for all the exception types:

    +

    Stock policy throw_error_handler does this for all the exception types:

    @@ -2567,11 +2567,11 @@ them as indexes in the table of vptrs.

    This time we are going to replace the default policy globally. First we need to -define the custom RTTI facet. We must not include +define the custom RTTI policy. We must not include <boost/openmethod/core.hpp> or any header that includes it yet.

    -

    Here is the facet implementation:

    +

    Here is the policy implementation:

    @@ -2605,7 +2605,7 @@ struct custom_rtti : bom::policies::rtti {
    -

    This facet is quite minimal. It does not support virtual inheritance. It would +

    This policy is quite minimal. It does not support virtual inheritance. It would not produce good error or trace messages, because types would be represented by their integer ids.

    @@ -2678,7 +2678,7 @@ registration. It may read the custom type ids before they are have been initialized.

    -

    The solution is to add the deferred_static_rtti facet to the policy; it defers +

    The solution is to add the deferred_static_rtti policy to the policy; it defers reading the type information until initialize is called.

    @@ -2740,7 +2740,7 @@ custom_type_info Cat::type_info;
    -

    The rtti facet is the same, with one more function:

    +

    The rtti policy is the same, with one more function:

    @@ -2761,14 +2761,14 @@ custom_type_info Cat::type_info;
    -

    Finally, the policy contains an additional facet - deferred_static_rtti:

    +

    Finally, the policy contains an additional policy - deferred_static_rtti:

    struct custom_policy
         : bom::policies::basic_policy<
               custom_policy, custom_rtti,
    -          bom::policies::deferred_static_rtti, // <-- additional facet
    +          bom::policies::deferred_static_rtti, // <-- additional policy
               bom::policies::vptr_vector<custom_policy>> {};
    @@ -2804,7 +2804,7 @@ implementation detail, but it uses its own policy, there is no issue.
    -

    The solution is to use a policy that contains the indirect_vptr facet. Instead +

    The solution is to use a policy that contains the indirect_vptr policy. Instead of storing the vptr directly, it stores a reference to the vptr.

    @@ -2828,15 +2828,15 @@ struct Carnivore : Animal {}; struct Cow : Herbivore {}; struct Wolf : Carnivore {}; -struct dynamic_policy : boost::openmethod::default_registry::with< +struct dynamic : boost::openmethod::default_registry::with< boost::openmethod::policies::indirect_vptr> {}; template<class Class> -using dyn_vptr = boost::openmethod::virtual_ptr<Class, dynamic_policy>; +using dyn_vptr = boost::openmethod::virtual_ptr<Class, dynamic>; BOOST_OPENMETHOD( encounter, (dyn_vptr<Animal>, dyn_vptr<Animal>), std::string, - dynamic_policy); + dynamic);
    @@ -2853,7 +2853,7 @@ The policy must be passed to the method as well as the
    -

    The indirect_vptr facet tells virtual_ptr to use a pointer to the vptr. Even +

    The indirect_vptr policy tells virtual_ptr to use a pointer to the vptr. Even tough the value of the vptr changes when initialize is called, the vptrs are stored in the same place (the policy’s static_vptr<Class> variables).

    @@ -2876,7 +2876,7 @@ stored in the same place (the policy’s static_vptr<Class>
    auto main() -> int {
         using namespace boost::openmethod;
     
    -    initialize<dynamic_policy>();
    +    initialize<dynamic>();
     
         std::cout << "Before loading library\n";
     
    -    auto gracie = make_unique_virtual<Cow, dynamic_policy>();
    +    auto gracie = make_unique_virtual<Cow, dynamic>();
         // Wolf _willy;
    -    // auto willy = virtual_ptr<Wolf, dynamic_policy>(_willy);
    -    auto willy = make_unique_virtual<Wolf, dynamic_policy>();
    +    // auto willy = virtual_ptr<Wolf, dynamic>(_willy);
    +    auto willy = make_unique_virtual<Wolf, dynamic>();
     
         std::cout << "Gracie encounters Willy -> "
                   << encounter(gracie, willy); // ignore
    @@ -2927,7 +2927,7 @@ BOOST_OPENMETHOD_OVERRIDE(
     
     struct Tiger : Carnivore {};
     
    -BOOST_OPENMETHOD_CLASSES(Tiger, Carnivore, dynamic_policy);
    +BOOST_OPENMETHOD_CLASSES(Tiger, Carnivore, dynamic);
     
     extern "C" auto make_tiger() -> Tiger* {
         return new Tiger;
    @@ -2957,7 +2957,7 @@ BOOST_OPENMETHOD_OVERRIDE(
     
         std::cout << "\nAfter loading library\n";
     
    -    boost::openmethod::initialize<dynamic_policy>();
    +    boost::openmethod::initialize<dynamic>();
     
         auto make_tiger =
             reinterpret_cast<Animal* (*)()>(dlsym(handle, "make_tiger"));
    @@ -2986,7 +2986,7 @@ BOOST_OPENMETHOD_OVERRIDE(
     
         std::cout << "\nAfter unloading library\n";
     
    -    boost::openmethod::initialize<dynamic_policy>();
    +    boost::openmethod::initialize<dynamic>();
     
         std::cout << "Gracie encounters Willy -> "
                   << encounter(gracie, willy); // ignore
    @@ -3147,71 +3147,71 @@ preprocessor symbol NDEBUG.

    Usually not included directly. Can be used to create custom policies from stock -policies, by forking them and adjusting a few facets.

    +policies, by forking them and adjusting a few policys.

    <boost/openmethod/policies/basic_policy.hpp>

    Provides the constructs used in the policy framework, essentially -basic_policy, facet, and its abstract subclasses (rtti, extern_vptr, +basic_policy, policy, and its abstract subclasses (rtti, extern_vptr, etc).

    <boost/openmethod/policies/std_rtti.hpp>
    -

    Implements the rtti facet using standard RTTI.

    +

    Implements the rtti policy using standard RTTI.

    <boost/openmethod/policies/minimal_rtti.hpp>
    -

    Implements the rtti facet using a minimal RTTI implementation. Can be used only with the "final" constructs, or with intrusive v-table pointers.

    +

    Implements the rtti policy using a minimal RTTI implementation. Can be used only with the "final" constructs, or with intrusive v-table pointers.

    <boost/openmethod/policies/vptr_vector.hpp>
    -

    Implements the extern_vptr facet using a vector of pointers.

    +

    Implements the extern_vptr policy using a vector of pointers.

    <boost/openmethod/policies/vptr_map.hpp>
    -

    Implements the extern_vptr facet using a map of pointers.

    +

    Implements the extern_vptr policy using a map of pointers.

    <boost/openmethod/policies/fast_perfect_hash.hpp>
    -

    Implements the type_hash facet using a perfect hash function.

    +

    Implements the type_hash policy using a perfect hash function.

    <boost/openmethod/policies/default_error_handler.hpp>
    -

    Implements the error_handler facet by routing the error through a +

    Implements the error_handler policy by routing the error through a std::function.

    <boost/openmethod/policies/throw_error_handler.hpp>
    -

    Implements the error_handler facet by throwing an exception.

    +

    Implements the error_handler policy by throwing an exception.

    <boost/openmethod/policies/basic_error_output.hpp>
    -

    Implements the output facet using a lightweight version of +

    Implements the output policy using a lightweight version of std::ostream.

    <boost/openmethod/policies/basic_trace_output.hpp>
    -

    Implements the trace facet using a lightweight version of +

    Implements the trace policy using a lightweight version of std::ostream.

    @@ -3804,7 +3804,7 @@ auto finalize() -> void;

    Description

    De-allocates the resources allocated by initialize for the Policy, including -resources allocated by the facets in Policy. Resources are de-allocated in an +resources allocated by the policys in Policy. Resources are de-allocated in an arbitrary order. It is not necessary to call finalize between calls to initialize. It is provided mainly for the benefit of memory leak detection schemes.

    @@ -5025,7 +5025,7 @@ using default_registry = policies::debug;

    Description

    basic_policy implements a policy, which consists of a a collection of methods, -classes, dispatch data, and facets, which specify how to obtain a pointer to a +classes, dispatch data, and policys, which specify how to obtain a pointer to a v-table from an object, how to report errors, whether to perform runtime sanity checks, etc.

    @@ -5062,7 +5062,7 @@ variables with the original Policy. The new policy does not retain any knowledge of the classes and methods registered in the original.

    -

    fork forks the facets in the policy as well: any facet instantiated from a +

    fork forks the policys in the policy as well: any policy instantiated from a class template is assumed to take a policy as its first template argument. The template is re-instantiated with the new policy as the first arguments, while the other arguments remain the same.

    @@ -5080,11 +5080,11 @@ using with;
    Requires
    -

    Facets is a list of classes that derive from facet.

    +

    Facets is a list of classes that derive from policy.

    Returns
    -

    A new policy containing Facets, and the facets from the original +

    A new policy containing Facets, and the policys from the original that do not have the same category as Facets.

    Examples
    @@ -5125,11 +5125,11 @@ using without;
    Requires
    -

    Facets is a list of facet categories.

    +

    Facets is a list of policy categories.

    Returns
    -

    A new policy containing the facets from the original that do not have +

    A new policy containing the policys from the original that do not have the same category as Facets.

    Examples
    @@ -5159,7 +5159,7 @@ will not be used.

    -

    A policy that contains facets std_rtti, fast_perfect_hash, vptr_vector and +

    A policy that contains policys std_rtti, fast_perfect_hash, vptr_vector and default_error_handler.

    @@ -5171,7 +5171,7 @@ will not be used.

    -

    The release policy with additional facet implementations runtime_checks, +

    The release policy with additional policy implementations runtime_checks, basic_error_output and basic_trace_output.

    @@ -5197,7 +5197,7 @@ same domain.
    -

    facet

    +

    policy

    Synopsis

    @@ -5207,7 +5207,7 @@ same domain.
    namespace boost::openmethod::policies {
     
    -struct facet {
    +struct policy {
         static auto finalize() -> void;
     };
     
    @@ -5218,7 +5218,7 @@ struct facet {
     

    Description

    -

    facet is the base class of all facets. It provides an empty finalize static +

    policy is the base class of all policys. It provides an empty finalize static function which can be overriden (via shadowing) by derived classes.

    @@ -5248,7 +5248,7 @@ function which can be overriden (via shadowing) by derived classes.

    namespace boost::openmethod::policies {
     
    -struct rtti : facet {};
    +struct rtti : policy {};
     
     } // boost::openmethod::policies
    @@ -5257,7 +5257,7 @@ struct rtti : facet {};

    Description

    -

    The rtti facet provides type information for classes and objects, implements +

    The rtti policy provides type information for classes and objects, implements downcast in presence of virtual inheritance, and writes descriptions of types to an ostream-like object.

    @@ -5377,7 +5377,7 @@ struct std_rtti : rtti {

    Description

    -

    std_rtti is an implementation of the rtti facet that uses standard RTTI.

    +

    std_rtti is an implementation of the rtti policy that uses standard RTTI.

    @@ -5468,14 +5468,14 @@ struct deferred_static_rtti : rtti {};

    Description

    -

    deferred_static_rtti is a facet that defers collection of static type ids.

    +

    deferred_static_rtti is a policy that defers collection of static type ids.

    Some custom RTTI systems rely on static constructors to assign type ids. OpenMethod itself relies on static constructors to register classes, methods and -overriders, calling the static_type function from the rtti facet in the +overriders, calling the static_type function from the rtti policy in the process. This can result in collecting the type ids before they have been -initialized. Adding this facet to a policy moves the collection of type ids to +initialized. Adding this policy to a policy moves the collection of type ids to initialize.

    @@ -5499,15 +5499,15 @@ initialized. Adding this facet to a policy moves the collection of type ids to

    Description

    -

    minimal_rtti is an implementation of the rtti facet that only uses static +

    minimal_rtti is an implementation of the rtti policy that only uses static type information.

    minimal_rtti provides the only function strictly required for the rtti -facet.

    +policy.

    -

    This facet can be used in programs that call methods solely via +

    This policy can be used in programs that call methods solely via virtual_ptrs created with the "final" constructs. Virtual inheritance is not supported. Classes are not required to be polymorphic.

    @@ -5523,7 +5523,7 @@ static constexpr bool is_polymorphic = false;
    -

    This facet does not support polymorphic classes.

    +

    This policy does not support polymorphic classes.

    @@ -5551,7 +5551,7 @@ static auto static_type() -> type_id;
    namespace boost::openmethod::policies {
     
    -struct extern_vptr : facet {};
    +struct extern_vptr : policy {};
     
     }
    @@ -5560,7 +5560,7 @@ struct extern_vptr : facet {};

    Description

    -

    extern_vptr is a facet that stores and returns pointers to v-tables for +

    extern_vptr is a policy that stores and returns pointers to v-tables for registered classes.

    @@ -5605,14 +5605,14 @@ the same.

    Synopsis

    -
    struct indirect_vptr : facet {};
    +
    struct indirect_vptr : policy {};

    Description

    -

    indirect_vptr is a facet that makes virtual_ptrs and inplace_vptr use +

    indirect_vptr is a policy that makes virtual_ptrs and inplace_vptr use pointers to pointers to v-tables, instead of straight pointers. As a consequence, they remain valid after a call to initialize.

    @@ -5620,7 +5620,7 @@ consequence, they remain valid after a call to initialize.

    Requirements

    -

    None. The facet is its own implementation.

    +

    None. The policy is its own implementation.

    @@ -5658,7 +5658,7 @@ of indirection is added, making the policy usable in presence of dynamic loading.

    -

    Policy is the policy containing the facet.

    +

    Policy is the policy containing the policy.

    @@ -5676,7 +5676,7 @@ auto register_vptrs(ForwardIterator first, ForwardIterator last) -> void;type_id`s of the classes registered in `Policy.

    -

    If Policy contains a type_hash facet, call its hash_initialize +

    If Policy contains a type_hash policy, call its hash_initialize function, and uses it to convert the type_ids to an index.

    @@ -5693,7 +5693,7 @@ auto dynamic_vptr(const Class& object) -> const vptr_type&;

    Obtains a type_id for object using Policy::dynamic_type. If Policy -contains a type_hash facet, uses it to convert the result to an index; +contains a type_hash policy, uses it to convert the result to an index; otherwise, uses the type_id as the index.

    @@ -5731,7 +5731,7 @@ the v-tables in a map. If `Policy contains indirect_vptr, a indirection is added, making the policy usable in presence of dynamic loading.

    -

    Policy is the policy containing the facet.

    +

    Policy is the policy containing the policy.

    MapAdaptor is a Boost.Mp11 quoted metafunction that returns a map type.

    @@ -5763,8 +5763,8 @@ auto dynamic_vptr(const Class& object) -> const vptr_type&;

    Returns a pointer to the v-table for object (by reference).

    -

    If Policy contains the runtime_checks facet, checks if Class is -registered. If it is not, and Policy contains a error_handler facet, calls +

    If Policy contains the runtime_checks policy, checks if Class is +registered. If it is not, and Policy contains a error_handler policy, calls its error function; then calls abort.

    @@ -5781,7 +5781,7 @@ its error function; then calls abort.

    namespace boost::openmethod::policies {
     
    -struct type_hash : facet {};
    +struct type_hash : policy {};
     
     } // boost::openmethod::policies
    @@ -5790,7 +5790,7 @@ struct type_hash : facet {};

    Description

    -

    type_hash is a facet that provides a hash function for a fixed set of +

    type_hash is a policy that provides a hash function for a fixed set of type_ids.

    @@ -5872,9 +5872,9 @@ function for type_ids.

    hash_initialize.

    -

    If the policy has a runtime_checks facet, hash_type_id checks that type +

    If the policy has a runtime_checks policy, hash_type_id checks that type corresponds to a registered class. If not, it reports a unknown_class_error -using the policy’s error_handler facet, if present, then calls abort.

    +using the policy’s error_handler policy, if present, then calls abort.

    @@ -5891,11 +5891,11 @@ function.

    If no such factors cannot be found, hash_initialize reports a -hash_search_error using the policy’s error_handler facet, if present, the +hash_search_error using the policy’s error_handler policy, if present, the calls abort.

    -

    If the policy has a trace facet, hash_initialize uses it to write a +

    If the policy has a trace policy, hash_initialize uses it to write a summary of the search.

    @@ -5947,11 +5947,11 @@ struct type_mismatch_error : openmethod_error {

    Description

    -

    error_handler is a facet that handles errors.

    +

    error_handler is a policy that handles errors.

    When an error is encountered, either during initialize or method dispatch, the -program is terminated via a call to abort. If this facet is present in the +program is terminated via a call to abort. If this policy is present in the policy, its error function is called with an error object. It can prevent termination by throwing an exception.

    @@ -6019,7 +6019,7 @@ static auto error(const Error& error) -> void;

    Calls the function last set via set_error_handler or, if it was never called, -and if Policy contains an output facet, use it to print a description +and if Policy contains an output policy, use it to print a description of error.

    @@ -6059,7 +6059,7 @@ struct throw_error_handler : error_handler {

    Description

    -

    throw_error_handler is an implementation of the error_handler facet that +

    throw_error_handler is an implementation of the error_handler policy that throws the error as an exception.

    @@ -6103,7 +6103,7 @@ struct basic_error_output : output {

    Description

    basic_error_output is an implementation of output that writes error -messages to a RestrictedOutputStream.

    +messages to a LightweightOutputStream.

    @@ -6148,7 +6148,7 @@ struct basic_trace_output : trace {

    Description

    basic_error_output is an implementation of trace that writes error -messages to a RestrictedOutputStream.

    +messages to a LightweightOutputStream.

    @@ -6180,11 +6180,11 @@ open it.

    -

    RestrictedOutputStream

    +

    LightweightOutputStream

    Description

    -

    RestrictedOutputStream is a concept describing a std::ostream-like class with +

    LightweightOutputStream is a concept describing a std::ostream-like class with a reduced set of operations.

    @@ -6194,7 +6194,7 @@ uses a small subset of the operations supported by std::ostream. By the library uses a lightweight implementation based on the C stream functions.

    -

    Implementations of RestrictedOutputStream provide the following functions:

    +

    Implementations of LightweightOutputStream provide the following functions:

    @@ -6210,7 +6210,7 @@ the library uses a lightweight implementation based on the C stream functions.
    -

    RestrictedOutputStream& operator<<(RestrictedOutputStream& os, const char* str)

    +

    LightweightOutputStream& operator<<(LightweightOutputStream& os, const char* str)

    Write a null-terminated string str to os

    @@ -6218,7 +6218,7 @@ the library uses a lightweight implementation based on the C stream functions.
    -

    RestrictedOutputStream& operator<<(RestrictedOutputStream& os, const std::string_view& view)

    +

    LightweightOutputStream& operator<<(LightweightOutputStream& os, const std::string_view& view)

    Write a view to `os

    @@ -6226,7 +6226,7 @@ the library uses a lightweight implementation based on the C stream functions.
    -

    RestrictedOutputStream& operator<<(RestrictedOutputStream& os, const void* value)

    +

    LightweightOutputStream& operator<<(LightweightOutputStream& os, const void* value)

    Write a representation of a pointer to os

    @@ -6234,7 +6234,7 @@ the library uses a lightweight implementation based on the C stream functions.
    -

    RestrictedOutputStream& operator<<(RestrictedOutputStream& os, std::size_t value)

    +

    LightweightOutputStream& operator<<(LightweightOutputStream& os, std::size_t value)

    Write an unsigned integer to os

    @@ -6253,4 +6253,4 @@ Last updated 2025-06-22 13:38:14 -0400
    - \ No newline at end of file + diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..01893ee --- /dev/null +++ b/doc/index.html @@ -0,0 +1,21 @@ + + + Boost.OpenMethod + + + + Automatic redirection failed, please go to + ../../../doc/antora/openmethod/index.html +
    + + Boost.OpenMethod
    +
    + Copyright (C) 2025 Jean-Louis Leroy
    +
    + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt)
    +
    +
    + + diff --git a/doc/initialize.adoc b/doc/initialize.adoc index 9489635..457343e 100644 --- a/doc/initialize.adoc +++ b/doc/initialize.adoc @@ -3,7 +3,7 @@ ### Synopsis -Defined in ``. +Defined in ``. ```c++ namespace boost::openmethod { @@ -37,7 +37,7 @@ combination of virtual arguments. ### Synopsis -Defined in ``. +Defined in ``. ```c++ namespace boost::openmethod { @@ -51,7 +51,7 @@ auto finalize() -> void; ### Description De-allocates the resources allocated by `initialize` for the `Policy`, including -resources allocated by the facets in `Policy`. Resources are de-allocated in an +resources allocated by the policys in `Policy`. Resources are de-allocated in an arbitrary order. It is not necessary to call `finalize` between calls to `initialize`. It is provided mainly for the benefit of memory leak detection schemes. diff --git a/doc/local-playbook.yml b/doc/local-playbook.yml new file mode 100644 index 0000000..69191e6 --- /dev/null +++ b/doc/local-playbook.yml @@ -0,0 +1,54 @@ +# +# Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com) +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# +# Official repository: https://github.com/boostorg/openmethod +# + +# An antora playbook used for local development +# The playbook includes Boost.OpenMethod as its only component + +site: + title: Boost.OpenMethod + url: https://antora.cppalliance.org/develop/lib/doc + start_page: openmethod::index.adoc + robots: allow + keys: + repo_url: 'https://github.com/boostorg/openmethod' + +content: + sources: + - url: .. + start_path: doc + edit_url: 'https://github.com/boostorg/openmethod/edit/{refname}/{path}' + +ui: + bundle: + url: https://github.com/boostorg/website-v2-docs/releases/download/ui-master/ui-bundle.zip + snapshot: true + +antora: + extensions: + - require: '@antora/lunr-extension' # https://gitlab.com/antora/antora-lunr-extension + index_latest_only: true + - require: '@cppalliance/antora-cpp-tagfiles-extension' + cpp-tagfiles: + using-namespaces: + - 'boost::' + - require: '@cppalliance/antora-cpp-reference-extension' + dependencies: + - name: 'boost' + repo: 'https://github.com/boostorg/boost.git' + tag: 'develop' + variable: 'BOOST_SRC_DIR' + system-env: 'BOOST_SRC_DIR' + +asciidoc: + attributes: + # Enable pagination + page-pagination: '' + extensions: + - '@cppalliance/asciidoctor-boost-links' + - '@asciidoctor/tabs' diff --git a/doc/minimal_rtti.adoc b/doc/minimal_rtti.adoc index 0c4ecde..21a551b 100644 --- a/doc/minimal_rtti.adoc +++ b/doc/minimal_rtti.adoc @@ -15,13 +15,13 @@ struct minimal_rtti : rtti { ### Description -`minimal_rtti` is an implementation of the `rtti` facet that only uses static +`minimal_rtti` is an implementation of the `rtti` policy that only uses static type information. `minimal_rtti` provides the only function strictly required for the `rtti` -facet. +policy. -This facet can be used in programs that call methods solely via +This policy can be used in programs that call methods solely via `virtual_ptr`{empty}s created with the "final" constructs. Virtual inheritance is not supported. Classes are not required to be polymorphic. @@ -35,7 +35,7 @@ template static constexpr bool is_polymorphic = false; ``` -This facet does not support polymorphic classes. +This policy does not support polymorphic classes. #### static_type diff --git a/example/CMakeLists.txt b/doc/modules/ROOT/examples/CMakeLists.txt similarity index 96% rename from example/CMakeLists.txt rename to doc/modules/ROOT/examples/CMakeLists.txt index b8d0a83..561088a 100644 --- a/example/CMakeLists.txt +++ b/doc/modules/ROOT/examples/CMakeLists.txt @@ -3,6 +3,8 @@ # See accompanying file LICENSE_1_0.txt # or copy at http://www.boost.org/LICENSE_1_0.txt) +message(STATUS "Building examples") + if (CMAKE_BUILD_TYPE MATCHES "Release") if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-save-temps -masm=intel) @@ -105,6 +107,10 @@ add_executable(asteroids asteroids.cpp) target_link_libraries(asteroids Boost::openmethod) add_test(NAME asteroids COMMAND asteroids) +add_executable(static_rtti static_rtti.cpp) +target_link_libraries(static_rtti Boost::openmethod) +add_test(NAME static_rtti COMMAND static_rtti) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") message(STATUS "Building dlopen example") add_executable(dl_main dl_main.cpp) diff --git a/example/accept_no_visitors.cpp b/doc/modules/ROOT/examples/accept_no_visitors.cpp similarity index 98% rename from example/accept_no_visitors.cpp rename to doc/modules/ROOT/examples/accept_no_visitors.cpp index 58662fe..90f3d25 100644 --- a/example/accept_no_visitors.cpp +++ b/doc/modules/ROOT/examples/accept_no_visitors.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include using namespace boost::openmethod::aliases; diff --git a/example/adventure.cpp b/doc/modules/ROOT/examples/adventure.cpp similarity index 98% rename from example/adventure.cpp rename to doc/modules/ROOT/examples/adventure.cpp index cd540c4..74894f5 100644 --- a/example/adventure.cpp +++ b/doc/modules/ROOT/examples/adventure.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/ast.cpp b/doc/modules/ROOT/examples/ast.cpp similarity index 97% rename from example/ast.cpp rename to doc/modules/ROOT/examples/ast.cpp index 4e26e74..b75d92d 100644 --- a/example/ast.cpp +++ b/doc/modules/ROOT/examples/ast.cpp @@ -10,7 +10,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/ast_unique_ptr.cpp b/doc/modules/ROOT/examples/ast_unique_ptr.cpp similarity index 97% rename from example/ast_unique_ptr.cpp rename to doc/modules/ROOT/examples/ast_unique_ptr.cpp index c9523e3..5498cee 100644 --- a/example/ast_unique_ptr.cpp +++ b/doc/modules/ROOT/examples/ast_unique_ptr.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include using namespace boost::openmethod::aliases; diff --git a/example/asteroids.cpp b/doc/modules/ROOT/examples/asteroids.cpp similarity index 97% rename from example/asteroids.cpp rename to doc/modules/ROOT/examples/asteroids.cpp index 5197a15..119a360 100644 --- a/example/asteroids.cpp +++ b/doc/modules/ROOT/examples/asteroids.cpp @@ -7,7 +7,7 @@ // Example for Wikipedia #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/core_api.cpp b/doc/modules/ROOT/examples/core_api.cpp similarity index 98% rename from example/core_api.cpp rename to doc/modules/ROOT/examples/core_api.cpp index 65ae3ad..151e481 100644 --- a/example/core_api.cpp +++ b/doc/modules/ROOT/examples/core_api.cpp @@ -5,7 +5,7 @@ #include -#include +#include #include struct Animal { diff --git a/example/custom_rtti.cpp b/doc/modules/ROOT/examples/custom_rtti.cpp similarity index 89% rename from example/custom_rtti.cpp rename to doc/modules/ROOT/examples/custom_rtti.cpp index 58b6920..dfe9209 100644 --- a/example/custom_rtti.cpp +++ b/doc/modules/ROOT/examples/custom_rtti.cpp @@ -34,12 +34,12 @@ struct Dog : Animal { #include #include -// tag::facet[] +// tag::policy[] namespace bom = boost::openmethod; struct custom_rtti : bom::policies::rtti { template - struct fn : bom::policies::rtti::fn { + struct fn : bom::policies::rtti::defaults { template static constexpr bool is_polymorphic = std::is_base_of_v; @@ -62,20 +62,20 @@ struct custom_rtti : bom::policies::rtti { } }; }; -// end::facet[] +// end::policy[] -// tag::policy[] -struct custom_policy : bom::registry { +// tag::registry[] +struct custom_registry : bom::registry { }; -#define BOOST_OPENMETHOD_DEFAULT_REGISTRY custom_policy -// end::policy[] +#define BOOST_OPENMETHOD_DEFAULT_REGISTRY custom_registry +// end::registry[] // tag::example[] #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/default_error_handler.cpp b/doc/modules/ROOT/examples/default_error_handler.cpp similarity index 96% rename from example/default_error_handler.cpp rename to doc/modules/ROOT/examples/default_error_handler.cpp index db208fc..720f7c2 100644 --- a/example/default_error_handler.cpp +++ b/doc/modules/ROOT/examples/default_error_handler.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/deferred_custom_rtti.cpp b/doc/modules/ROOT/examples/deferred_custom_rtti.cpp similarity index 89% rename from example/deferred_custom_rtti.cpp rename to doc/modules/ROOT/examples/deferred_custom_rtti.cpp index 48e39a8..7947e52 100644 --- a/example/deferred_custom_rtti.cpp +++ b/doc/modules/ROOT/examples/deferred_custom_rtti.cpp @@ -81,9 +81,10 @@ struct Dog : virtual Animal { namespace bom = boost::openmethod; -struct custom_rtti : bom::policies::rtti { +// tag::registry[] +struct custom_rtti : bom::policies::deferred_static_rtti { template - struct fn : bom::policies::rtti::fn { + struct fn : defaults { template static constexpr bool is_polymorphic = std::is_base_of_v; @@ -105,7 +106,6 @@ struct custom_rtti : bom::policies::rtti { } } - // tag::dynamic_cast_ref[] // to support virtual inheritance: template static auto dynamic_cast_ref(Base&& obj) -> Derived { @@ -116,20 +116,19 @@ struct custom_rtti : bom::policies::rtti { abort(); // not supported } } - // end::dynamic_cast_ref[] }; }; -struct custom_policy : bom::registry< - custom_rtti, bom::policies::deferred_static_rtti, - bom::policies::vptr_vector> {}; +struct custom_registry : bom::registry { +}; +// end::registry[] -#define BOOST_OPENMETHOD_DEFAULT_REGISTRY custom_policy +#define BOOST_OPENMETHOD_DEFAULT_REGISTRY custom_registry #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/dl.hpp b/doc/modules/ROOT/examples/dl.hpp similarity index 81% rename from example/dl.hpp rename to doc/modules/ROOT/examples/dl.hpp index b12a532..cbbff12 100644 --- a/example/dl.hpp +++ b/doc/modules/ROOT/examples/dl.hpp @@ -26,15 +26,15 @@ struct Carnivore : Animal {}; struct Cow : Herbivore {}; struct Wolf : Carnivore {}; -struct dynamic_policy : boost::openmethod::default_registry::with< +struct dynamic : boost::openmethod::default_registry::with< boost::openmethod::policies::indirect_vptr> {}; template -using dyn_vptr = boost::openmethod::virtual_ptr; +using dyn_vptr = boost::openmethod::virtual_ptr; BOOST_OPENMETHOD( encounter, (dyn_vptr, dyn_vptr), std::string, - dynamic_policy); + dynamic); // end::header[] diff --git a/example/dl_main.cpp b/doc/modules/ROOT/examples/dl_main.cpp similarity index 83% rename from example/dl_main.cpp rename to doc/modules/ROOT/examples/dl_main.cpp index ee1080d..00f6a0d 100644 --- a/example/dl_main.cpp +++ b/doc/modules/ROOT/examples/dl_main.cpp @@ -14,12 +14,12 @@ #include #include -#include +#include #include "dl.hpp" BOOST_OPENMETHOD_CLASSES( - Animal, Herbivore, Cow, Wolf, Carnivore, dynamic_policy); + Animal, Herbivore, Cow, Wolf, Carnivore, dynamic); BOOST_OPENMETHOD_OVERRIDE( encounter, (dyn_vptr, dyn_vptr), std::string) { @@ -32,14 +32,14 @@ BOOST_OPENMETHOD_OVERRIDE( auto main() -> int { using namespace boost::openmethod; - initialize(); + dynamic::initialize(); std::cout << "Before loading library\n"; - auto gracie = make_unique_virtual(); + auto gracie = make_unique_virtual(); // Wolf _willy; - // auto willy = virtual_ptr(_willy); - auto willy = make_unique_virtual(); + // auto willy = virtual_ptr(_willy); + auto willy = make_unique_virtual(); std::cout << "Gracie encounters Willy -> " << encounter(gracie, willy); // ignore @@ -61,7 +61,7 @@ auto main() -> int { std::cout << "\nAfter loading library\n"; - boost::openmethod::initialize(); + dynamic::initialize(); auto make_tiger = reinterpret_cast(dlsym(handle, "make_tiger")); @@ -86,7 +86,7 @@ auto main() -> int { std::cout << "\nAfter unloading library\n"; - boost::openmethod::initialize(); + dynamic::initialize(); std::cout << "Gracie encounters Willy -> " << encounter(gracie, willy); // ignore diff --git a/example/dl_shared.cpp b/doc/modules/ROOT/examples/dl_shared.cpp similarity index 91% rename from example/dl_shared.cpp rename to doc/modules/ROOT/examples/dl_shared.cpp index f7aa407..d0598c5 100644 --- a/example/dl_shared.cpp +++ b/doc/modules/ROOT/examples/dl_shared.cpp @@ -18,7 +18,7 @@ BOOST_OPENMETHOD_OVERRIDE( struct Tiger : Carnivore {}; -BOOST_OPENMETHOD_CLASSES(Tiger, Carnivore, dynamic_policy); +BOOST_OPENMETHOD_CLASSES(Tiger, Carnivore, dynamic); extern "C" auto make_tiger() -> Tiger* { return new Tiger; diff --git a/example/friendship.cpp b/doc/modules/ROOT/examples/friendship.cpp similarity index 97% rename from example/friendship.cpp rename to doc/modules/ROOT/examples/friendship.cpp index 16bac3e..c2e3cfe 100644 --- a/example/friendship.cpp +++ b/doc/modules/ROOT/examples/friendship.cpp @@ -84,7 +84,7 @@ BOOST_OPENMETHOD_OVERRIDE( BOOST_OPENMETHOD_CLASSES(Animal, Cat, Dog); -#include +#include auto main() -> int { boost::openmethod::initialize(); diff --git a/example/friendship_across_namespaces.cpp b/doc/modules/ROOT/examples/friendship_across_namespaces.cpp similarity index 98% rename from example/friendship_across_namespaces.cpp rename to doc/modules/ROOT/examples/friendship_across_namespaces.cpp index 65928b5..ac6455f 100644 --- a/example/friendship_across_namespaces.cpp +++ b/doc/modules/ROOT/examples/friendship_across_namespaces.cpp @@ -98,7 +98,7 @@ BOOST_OPENMETHOD_CLASSES(core::Animal, Cat, Dog); } // namespace pets // end::friend[] -#include +#include auto main() -> int { boost::openmethod::initialize(); diff --git a/example/headers_namespaces/CMakeLists.txt b/doc/modules/ROOT/examples/headers_namespaces/CMakeLists.txt similarity index 100% rename from example/headers_namespaces/CMakeLists.txt rename to doc/modules/ROOT/examples/headers_namespaces/CMakeLists.txt diff --git a/example/headers_namespaces/animal.hpp b/doc/modules/ROOT/examples/headers_namespaces/animal.hpp similarity index 100% rename from example/headers_namespaces/animal.hpp rename to doc/modules/ROOT/examples/headers_namespaces/animal.hpp diff --git a/example/headers_namespaces/cat.cpp b/doc/modules/ROOT/examples/headers_namespaces/cat.cpp similarity index 100% rename from example/headers_namespaces/cat.cpp rename to doc/modules/ROOT/examples/headers_namespaces/cat.cpp diff --git a/example/headers_namespaces/cat.hpp b/doc/modules/ROOT/examples/headers_namespaces/cat.hpp similarity index 100% rename from example/headers_namespaces/cat.hpp rename to doc/modules/ROOT/examples/headers_namespaces/cat.hpp diff --git a/example/headers_namespaces/dog.cpp b/doc/modules/ROOT/examples/headers_namespaces/dog.cpp similarity index 100% rename from example/headers_namespaces/dog.cpp rename to doc/modules/ROOT/examples/headers_namespaces/dog.cpp diff --git a/example/headers_namespaces/dog.hpp b/doc/modules/ROOT/examples/headers_namespaces/dog.hpp similarity index 100% rename from example/headers_namespaces/dog.hpp rename to doc/modules/ROOT/examples/headers_namespaces/dog.hpp diff --git a/example/headers_namespaces/main.cpp b/doc/modules/ROOT/examples/headers_namespaces/main.cpp similarity index 96% rename from example/headers_namespaces/main.cpp rename to doc/modules/ROOT/examples/headers_namespaces/main.cpp index 9e69441..4a08898 100644 --- a/example/headers_namespaces/main.cpp +++ b/doc/modules/ROOT/examples/headers_namespaces/main.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include "animal.hpp" #include "cat.hpp" diff --git a/example/headers_namespaces/main_unrelated_namespaces.cpp b/doc/modules/ROOT/examples/headers_namespaces/main_unrelated_namespaces.cpp similarity index 91% rename from example/headers_namespaces/main_unrelated_namespaces.cpp rename to doc/modules/ROOT/examples/headers_namespaces/main_unrelated_namespaces.cpp index 5db86ff..4245a0c 100644 --- a/example/headers_namespaces/main_unrelated_namespaces.cpp +++ b/doc/modules/ROOT/examples/headers_namespaces/main_unrelated_namespaces.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include "animal.hpp" #include "cat.hpp" diff --git a/example/headers_namespaces/main_using_directive.cpp b/doc/modules/ROOT/examples/headers_namespaces/main_using_directive.cpp similarity index 95% rename from example/headers_namespaces/main_using_directive.cpp rename to doc/modules/ROOT/examples/headers_namespaces/main_using_directive.cpp index 1d7c26e..858b1cd 100644 --- a/example/headers_namespaces/main_using_directive.cpp +++ b/doc/modules/ROOT/examples/headers_namespaces/main_using_directive.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include "animal.hpp" #include "cat.hpp" diff --git a/example/hello_world.cpp b/doc/modules/ROOT/examples/hello_world.cpp similarity index 99% rename from example/hello_world.cpp rename to doc/modules/ROOT/examples/hello_world.cpp index 5181c77..2826ab0 100644 --- a/example/hello_world.cpp +++ b/doc/modules/ROOT/examples/hello_world.cpp @@ -97,7 +97,7 @@ BOOST_OPENMETHOD_OVERRIDE( // end::multi[] // tag::main[] -#include +#include // only needed in the file that calls boost::openmethod::initialize() auto main() -> int { diff --git a/example/matrix.cpp b/doc/modules/ROOT/examples/matrix.cpp similarity index 99% rename from example/matrix.cpp rename to doc/modules/ROOT/examples/matrix.cpp index 9ac3d73..adcd6cb 100644 --- a/example/matrix.cpp +++ b/doc/modules/ROOT/examples/matrix.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include using std::make_shared; diff --git a/example/next.cpp b/doc/modules/ROOT/examples/next.cpp similarity index 97% rename from example/next.cpp rename to doc/modules/ROOT/examples/next.cpp index 8dc2f26..550159f 100644 --- a/example/next.cpp +++ b/doc/modules/ROOT/examples/next.cpp @@ -10,7 +10,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/slides.cpp b/doc/modules/ROOT/examples/slides.cpp similarity index 99% rename from example/slides.cpp rename to doc/modules/ROOT/examples/slides.cpp index e600005..eb438fa 100644 --- a/example/slides.cpp +++ b/doc/modules/ROOT/examples/slides.cpp @@ -128,7 +128,7 @@ struct Init { #include #include -#include +#include namespace openmethods { diff --git a/doc/modules/ROOT/examples/static_rtti.cpp b/doc/modules/ROOT/examples/static_rtti.cpp new file mode 100644 index 0000000..9525898 --- /dev/null +++ b/doc/modules/ROOT/examples/static_rtti.cpp @@ -0,0 +1,56 @@ +// Copyright (c) 2018-2025 Jean-Louis Leroy +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +//[ all + +#include +#include + +struct static_registry + : boost::openmethod::registry {}; + +#define BOOST_OPENMETHOD_DEFAULT_REGISTRY static_registry + +#include +#include +#include + +#include + +struct Animal {}; + +struct Dog : Animal {}; + +struct Cat : Animal {}; + +using namespace boost::openmethod::aliases; + +BOOST_OPENMETHOD_CLASSES(Animal, Dog, Cat); + +BOOST_OPENMETHOD(poke, (virtual_ptr, std::ostream&), void); + +BOOST_OPENMETHOD_OVERRIDE( + poke, (virtual_ptr dog, std::ostream& os), void) { + os << "bark\n"; +} + +BOOST_OPENMETHOD_OVERRIDE( + poke, (virtual_ptr cat, std::ostream& os), void) { + os << "hiss\n"; +} + +int main() { + boost::openmethod::initialize(); + + unique_virtual_ptr a = make_unique_virtual(), + b = make_unique_virtual(); + + poke(a, std::cout); // hiss + poke(b, std::cout); // bark + + return 0; +} + +//] diff --git a/example/synopsis.cpp b/doc/modules/ROOT/examples/synopsis.cpp similarity index 99% rename from example/synopsis.cpp rename to doc/modules/ROOT/examples/synopsis.cpp index 47ab293..26d558c 100644 --- a/example/synopsis.cpp +++ b/doc/modules/ROOT/examples/synopsis.cpp @@ -24,7 +24,7 @@ class Dolphin : public Animal {}; // Add behavior to existing classes, without modifying them. #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/throw_error_handler.cpp b/doc/modules/ROOT/examples/throw_error_handler.cpp similarity index 97% rename from example/throw_error_handler.cpp rename to doc/modules/ROOT/examples/throw_error_handler.cpp index b0cd6b2..0e2155c 100644 --- a/example/throw_error_handler.cpp +++ b/doc/modules/ROOT/examples/throw_error_handler.cpp @@ -35,7 +35,7 @@ struct custom_registry : bom::default_registry::with { #define BOOST_OPENMETHOD_DEFAULT_REGISTRY custom_registry #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/example/virtual_.cpp b/doc/modules/ROOT/examples/virtual_.cpp similarity index 98% rename from example/virtual_.cpp rename to doc/modules/ROOT/examples/virtual_.cpp index 091960a..496542e 100644 --- a/example/virtual_.cpp +++ b/doc/modules/ROOT/examples/virtual_.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include using boost::openmethod::virtual_; diff --git a/example/virtual_func.cpp b/doc/modules/ROOT/examples/virtual_func.cpp similarity index 100% rename from example/virtual_func.cpp rename to doc/modules/ROOT/examples/virtual_func.cpp diff --git a/example/virtual_ptr.cpp b/doc/modules/ROOT/examples/virtual_ptr.cpp similarity index 97% rename from example/virtual_ptr.cpp rename to doc/modules/ROOT/examples/virtual_ptr.cpp index d85e07f..08ab0eb 100644 --- a/example/virtual_ptr.cpp +++ b/doc/modules/ROOT/examples/virtual_ptr.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/doc/modules/ROOT/images/AuthorityDiagram.svg b/doc/modules/ROOT/images/AuthorityDiagram.svg new file mode 100644 index 0000000..2c5ab60 --- /dev/null +++ b/doc/modules/ROOT/images/AuthorityDiagram.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://user:pass@www.example.com:80 + + + + + + + + + + + + + + + + + + userinfo + + + + + + host + + + + + + port + + + + + + + + \ No newline at end of file diff --git a/doc/modules/ROOT/images/ClassHierarchy.svg b/doc/modules/ROOT/images/ClassHierarchy.svg new file mode 100644 index 0000000..add6300 --- /dev/null +++ b/doc/modules/ROOT/images/ClassHierarchy.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + url_view_base + + + + + + + + url_base + + + + + + + + url + + + + + + + + static_url + + + + + + + + url_view + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/modules/ROOT/images/HelpCard.svg b/doc/modules/ROOT/images/HelpCard.svg new file mode 100644 index 0000000..dde85ac --- /dev/null +++ b/doc/modules/ROOT/images/HelpCard.svg @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + URL syntax + + + + + + + :// + + + + + + + url, url_view + + + + + + + + httpsscheme + + + + + + Boost.URL Reference Card + + + + + + + + Pathis_path_absoluteencoded_pathencoded_segmentssegmentsset_path_absoluteset_encoded_pathnormalize_path + + + + + + + + Userinfo has_userinfohas_passwordpassworduseruserinfoencoded_passwordencoded_userencoded_userinfoset_passwordset_userset_userinfoset_encoded_passwordset_encoded_userset_encoded_userinforemove_userinforemove_password + + + + + + + + Fragmenthas_fragmentencoded_fragmentfragmentset_fragmentset_encoded_fragmentremove_fragmentnormalize_fragment + + + + + + + + Queryhas_queryparamsqueryencoded_paramsencoded_queryset_queryset_encoded_queryremove_querynormalize_query + + + + + + + + Host and Port encoded_hostencoded_host_addressencoded_host_namehosthost_addresshost_ipv4_addresshost_ipv6_addresshost_ipvfuturehost_namehost_typehas_portportport_numberencoded_host_and_portset_encoded_hostset_encoded_host_addressset_encoded_host_nameset_hostset_host_addressset_host_ipv4set_host_ipv6set_host_ipvfutureset_host_nameset_portremove_port + + + + + + + + Scheme schemescheme_idhas_schemeset_schemeset_scheme_id remove_schemenormalize_scheme + + + + + + + + Authorityauthorityhas_authorityencoded_authorityremove_authorityset_encoded_authority + + + + + + + + Other Partsencoded_originencoded_resourceencoded_targetremove_origin + + + + + + + Other + + + + + + + + Pathsegments_encoded_refsegments_encoded_viewsegments_refsegments_viewparse_pathsegments_basesegments_encoded_base + + + + + + + + URL Parsingparse_absolute_uriparse_authorityparse_origin_formparse_relative_refparse_uriparse_uri_reference + + + + + + + + Percent-Encodingencodeencoded_sizemake_pct_string_viewdecode_viewencoding_optspct_string_view + + + + + + + @ + + + + + + + + user:passuserinfo + + + + + + + ? + + + + + + + + /path/to/file.txtpath + + + + + + + + www.example.com:80host and port + id32 + + + + + + + # + + + + + + + + cn=text&cachedquery + + + + + + + + morefragment + + + + + + + + Queryparams_encoded_viewparams_encoded_refparams_viewparams_refparamparam_pct_viewparam_viewparse_queryparams_baseparams_encoded_base + + + + + + + authority + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/modules/ROOT/images/PartsDiagram.svg b/doc/modules/ROOT/images/PartsDiagram.svg new file mode 100644 index 0000000..0263473 --- /dev/null +++ b/doc/modules/ROOT/images/PartsDiagram.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #” fragment + + + + + + + + ?” query + + + + + + + + path + + + + + + + + scheme “:” + + + + + + + + //” authority + + + + + + + + \ No newline at end of file diff --git a/doc/modules/ROOT/images/repo-logo.png b/doc/modules/ROOT/images/repo-logo.png new file mode 100644 index 0000000..192ec26 Binary files /dev/null and b/doc/modules/ROOT/images/repo-logo.png differ diff --git a/doc/modules/ROOT/nav.adoc b/doc/modules/ROOT/nav.adoc new file mode 100644 index 0000000..caae0ed --- /dev/null +++ b/doc/modules/ROOT/nav.adoc @@ -0,0 +1,15 @@ +* Tutorials +** xref:hello_world.adoc[Hello World] +** xref:multiple_dispatch.adoc[Multiple Dispatch] +** xref:headers_namespaces.adoc[Headers and Namespaces] +** xref:friendship.adoc[Friendship] +** xref:performance.adoc[Performance] +** xref:smart_pointers.adoc[Smart Pointers] +** xref:virtual_ptr_alt.adoc[Virtual Pointer Alternatives] +** xref:core_api.adoc[Core API] +** xref:policies.adoc[Registries and Policies] +** xref:error_handling.adoc[Error Handling] +** xref:custom_rtti.adoc[Custom RTTI] +** xref:dynamic_loading.adoc[Dynamic Loading] +* xref:reference:boost/openmethod.adoc[Reference (generated)] +* xref:reference.adoc[Reference (manual)] diff --git a/doc/BOOST_OPENMETHOD.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD.adoc similarity index 96% rename from doc/BOOST_OPENMETHOD.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD.adoc index 20d8d6b..93b4fa9 100644 --- a/doc/BOOST_OPENMETHOD.adoc +++ b/doc/modules/ROOT/pages/BOOST_OPENMETHOD.adoc @@ -1,7 +1,5 @@ -[#BOOST_OPENMETHOD] - -## BOOST_OPENMETHOD += BOOST_OPENMETHOD ### Synopsis diff --git a/doc/BOOST_OPENMETHOD_CLASSES.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_CLASSES.adoc similarity index 93% rename from doc/BOOST_OPENMETHOD_CLASSES.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_CLASSES.adoc index c112af3..aba435a 100644 --- a/doc/BOOST_OPENMETHOD_CLASSES.adoc +++ b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_CLASSES.adoc @@ -13,7 +13,7 @@ BOOST_OPENMETHOD_CLASSES(CLASSES...[, POLICY]); ### Description -Register `CLASSES` in POLICY. +Registers `CLASSES` in POLICY. NOTE: The default value for `POLICY` is the value of `BOOST_OPENMETHOD_DEFAULT_REGISTRY` when `` is diff --git a/doc/BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc diff --git a/doc/BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc diff --git a/doc/BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc diff --git a/doc/BOOST_OPENMETHOD_GUIDE.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_GUIDE.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_GUIDE.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_GUIDE.adoc diff --git a/doc/BOOST_OPENMETHOD_ID.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_ID.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_ID.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_ID.adoc diff --git a/doc/BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc diff --git a/doc/BOOST_OPENMETHOD_OVERRIDE.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_OVERRIDE.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_OVERRIDE.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_OVERRIDE.adoc diff --git a/doc/BOOST_OPENMETHOD_OVERRIDER.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_OVERRIDER.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_OVERRIDER.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_OVERRIDER.adoc diff --git a/doc/BOOST_OPENMETHOD_OVERRIDERS.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_OVERRIDERS.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_OVERRIDERS.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_OVERRIDERS.adoc diff --git a/doc/BOOST_OPENMETHOD_REGISTER.adoc b/doc/modules/ROOT/pages/BOOST_OPENMETHOD_REGISTER.adoc similarity index 100% rename from doc/BOOST_OPENMETHOD_REGISTER.adoc rename to doc/modules/ROOT/pages/BOOST_OPENMETHOD_REGISTER.adoc diff --git a/doc/core_api.adoc b/doc/modules/ROOT/pages/core_api.adoc similarity index 88% rename from doc/core_api.adoc rename to doc/modules/ROOT/pages/core_api.adoc index 5d767c8..1051a85 100644 --- a/doc/core_api.adoc +++ b/doc/modules/ROOT/pages/core_api.adoc @@ -29,7 +29,7 @@ name can get tedious, so OpenMethod provides a macro for that: [source,c++] ---- -include::{exampledir}/core_api.cpp[tag=method] +include::example$core_api.cpp[tag=method] ---- NOTE: BOOST_OPENMETHOD and associated macros use `BOOST_OPENMETHOD_ID` in @@ -48,7 +48,7 @@ Overriders are ordinary functions, added to a method using the nested template [source,c++] ---- -include::{exampledir}/core_api.cpp[tag=poke_cat] +include::example$core_api.cpp[tag=poke_cat] ---- NOTE: `override` can register multiple overriders. @@ -58,14 +58,14 @@ identifier. In the meantime, OpenMethod provides a small convenience macro: [source,c++] ---- -include::{exampledir}/core_api.cpp[tag=poke_dog] +include::example$core_api.cpp[tag=poke_dog] ---- `next` is available from the method's nested `next` template: [source,c++] ---- -include::{exampledir}/core_api.cpp[tag=poke_bulldog] +include::example$core_api.cpp[tag=poke_bulldog] ---- NOTE: Since the function uses itself as a template argument in its body, its @@ -81,12 +81,12 @@ We register the classes with `use_classes`: [source,c++] ---- -include::{exampledir}/core_api.cpp[tag=use_classes] +include::example$core_api.cpp[tag=use_classes] ---- Finally, we call the method via the static member of the method class `fn`: [source,c++] ---- -include::{exampledir}/core_api.cpp[tag=main] +include::example$core_api.cpp[tag=main] ---- diff --git a/doc/custom_rtti.adoc b/doc/modules/ROOT/pages/custom_rtti.adoc similarity index 54% rename from doc/custom_rtti.adoc rename to doc/modules/ROOT/pages/custom_rtti.adoc index 8775810..1c44974 100644 --- a/doc/custom_rtti.adoc +++ b/doc/modules/ROOT/pages/custom_rtti.adoc @@ -1,38 +1,43 @@ ## Custom RTTI -Stock policies use the `std_rtti` implementation of `rtti`. Here is its full +Stock registries use the `std_rtti` implementation of `rtti`. Here is its full source: [source,c++] ---- struct std_rtti : rtti { - template - static constexpr auto is_polymorphic = std::is_polymorphic_v; + template + struct fn { + template + static constexpr bool is_polymorphic = std::is_polymorphic_v; - template - static type_id static_type() { - return reinterpret_cast(&typeid(T)); - } + template + static auto static_type() -> type_id { + return &typeid(Class); + } - template - static type_id dynamic_type(const T& obj) { - return reinterpret_cast(&typeid(obj)); - } + template + static auto dynamic_type(const Class& obj) -> type_id { + return &typeid(obj); + } - template - static void type_name(type_id type, Stream& stream) { - stream << reinterpret_cast(type)->name(); - } + template + static auto type_name(type_id type, Stream& stream) -> void { + stream << boost::core::demangle( + reinterpret_cast(type)->name()); + } - static std::type_index type_index(type_id type) { - return std::type_index(*reinterpret_cast(type)); - } + static auto type_index(type_id type) -> std::type_index { + return std::type_index( + *reinterpret_cast(type)); + } - template - static D dynamic_cast_ref(B&& obj) { - return dynamic_cast(obj); - } + template + static auto dynamic_cast_ref(B&& obj) -> D { + return dynamic_cast(obj); + } + }; }; ---- @@ -45,7 +50,7 @@ struct std_rtti : rtti { * `dynamic_type` is used to locate the v-table for an object. This function is usually required. If only the `virtual_ptr` "final" constructs are used, or - if `boost_openmethod_vptr` is provided for all the classes in the policy, it + if `boost_openmethod_vptr` is provided for all the classes in the registry, it can be omitted. * `type_name` writes a representation of `type` to `stream`. It is used to format @@ -93,78 +98,61 @@ This scheme has an interesting property: its type ids are monotonically allocated in a small, dense range. Thus, we don't need to hash them. We can use them as indexes in the table of vptrs. -This time we are going to replace the default policy globally. First we need to -define the custom RTTI facet. We must _not_ include +This time we are going to replace the default registry globally. First we need to +define the custom RTTI policy. We must _not_ include `` or any header that includes it yet. -Here is the facet implementation: +Here is the policy implementation: [source,c++] ---- -include::{exampledir}/custom_rtti.cpp[tag=facet] +include::example$custom_rtti.cpp[tag=policy] ---- -This facet is quite minimal. It does not support virtual inheritance. It would +This policy is quite minimal. It does not support virtual inheritance. It would not produce good error or trace messages, because types would be represented by their integer ids. -This time we create a policy from scratch. For that we use the `basic_policy` -CRTP template: +This time we create a registry from scratch: [source,c++] ---- -include::{exampledir}/custom_rtti.cpp[tag=policy] +include::example$custom_rtti.cpp[tag=registry] ---- Next, we include the main header. Because `BOOST_OPENMETHOD_DEFAULT_REGISTRY` is -defined, its value is used for the default policy. Then comes the usual example. +defined, its value is used for the default registry. Then comes the usual example. [source,c++] ---- -include::{exampledir}/custom_rtti.cpp[tag=example] +include::example$custom_rtti.cpp[tag=example] ---- This programs works even if standard RTTI is disabled. ## Deferred RTTI -In the previous example, the RTTI system assigns types id statically. It is more +In the previous example, the RTTI system assigns type ids statically. It is more common to allocate them using a global counter, manipulated by static -constructors. This is a problem, because `static_type` is used by class -registration. It may read the custom type ids _before_ they are have been -initialized. - -The solution is to add the `deferred_static_rtti` facet to the policy; it defers -reading the type information until `initialize` is called. - -This time let's support virtual inheritance as well. First the domain classes: +constructors. Like so: [source,c++] ---- -include::{exampledir}/deferred_custom_rtti.cpp[tag=classes] +include::example$deferred_custom_rtti.cpp[tag=classes] // ditto for Dog ---- -The rtti facet is the same, with one more function: +This is a problem, because `static_type` is used by class registration. It may +read the custom type ids _before_ they are have been initialized. + +The solution is to derive the rtti policy from `deferred_static_rtti`. It defers +reading the type information until `initialize` is called. + +This time let's support virtual inheritance as well. [source,c++] ---- -struct custom_rtti : bom::policies::rtti { - // as before - -include::{exampledir}/deferred_custom_rtti.cpp[tag=dynamic_cast_ref] -}; ----- - -Finally, the policy contains an additional facet - `deferred_static_rtti`: - -[source,c++] ----- -struct custom_policy - : bom::policies::basic_policy< - custom_policy, custom_rtti, - bom::policies::deferred_static_rtti, // <-- additional facet - bom::policies::vptr_vector> {}; +include::example$deferred_custom_rtti.cpp[tag=registry] ---- The example is the same as in the previous section. diff --git a/doc/dynamic_loading.adoc b/doc/modules/ROOT/pages/dynamic_loading.adoc similarity index 79% rename from doc/dynamic_loading.adoc rename to doc/modules/ROOT/pages/dynamic_loading.adoc index bb4a518..a0cbba6 100644 --- a/doc/dynamic_loading.adoc +++ b/doc/modules/ROOT/pages/dynamic_loading.adoc @@ -14,20 +14,20 @@ NOTE: This applies only to cases where a dynamic library adds to an _existing_ policy. Even if the dynamic library itself uses open-methods, for example as an implementation detail, but it uses its own policy, there is no issue. -The solution is to use a policy that contains the `indirect_vptr` facet. Instead +The solution is to use a policy that contains the `indirect_vptr` policy. Instead of storing the vptr directly, it stores a reference to the vptr. Here is an example: [source,c++] ---- -include::{exampledir}/dl.hpp[tag=header] +include::example$dl.hpp[tag=header] ---- NOTE: The policy must be passed to the method as well as the `virtual_ptr`{empty}s. -The `indirect_vptr` facet tells `virtual_ptr` to use a pointer to the vptr. Even +The `indirect_vptr` policy tells `virtual_ptr` to use a pointer to the vptr. Even tough the value of the vptr changes when `initialize` is called, the vptrs are stored in the same place (the policy's `static_vptr` variables). @@ -35,7 +35,7 @@ We can now register the classes and and provide an overrider: [source,c++] ---- -include::{exampledir}/dl_main.cpp[tag=main] +include::example$dl_main.cpp[tag=main] ---- At this point we only have one overrider. Animals of all species ignore one @@ -43,26 +43,26 @@ another: [source,c++] ---- -include::{exampledir}/dl_main.cpp[tag=before_dlopen] +include::example$dl_main.cpp[tag=before_dlopen] ---- Let's load a dynamic library containing this code: [source,c++] ---- -include::{exampledir}/dl_shared.cpp[tag=dl_shared] +include::example$dl_shared.cpp[tag=dl_shared] ---- Now back to `main`: [source,c++] ---- -include::{exampledir}/dl_main.cpp[tag=dlopen] +include::example$dl_main.cpp[tag=dlopen] ---- After unloading the library, we must call `initialize` again: [source,c++] ---- -include::{exampledir}/dl_main.cpp[tag=after_dlclose] +include::example$dl_main.cpp[tag=after_dlclose] ---- diff --git a/doc/error_handling.adoc b/doc/modules/ROOT/pages/error_handling.adoc similarity index 58% rename from doc/error_handling.adoc rename to doc/modules/ROOT/pages/error_handling.adoc index 3337d6a..700486f 100644 --- a/doc/error_handling.adoc +++ b/doc/modules/ROOT/pages/error_handling.adoc @@ -2,17 +2,16 @@ ## Error Handling When an error is encountered, the program is terminated by a call to `abort`. If -the policy contains an `error_handler` facet, it provides an `error` member +the registry contains an `error_handler` policy, it provides an `error` member function (or overloaded functions) to be called with an object identifying the -error. The `release` and `debug` policies implement the error facet with +error. `release_registry` and `debug_registry` implement the error policy with `default_error_handler`, which wraps the error object in a variant, and calls a handler via a `std::function`. By default, it prints a description of the error -to `stderr` in the `debug` policy, and does nothing in the `release` policy. The -handler can be set with `set_error_handler`: +to `stderr`, but this can be changed, for example, to throw an exception: [source,c++] ---- -include::{exampledir}/default_error_handler.cpp[tag=example] +include::example$default_error_handler.cpp[tag=example] ---- Output: @@ -24,12 +23,12 @@ not implemented spin ---- -We can also replace the `error_handler` facet with our own. For example: +We can also replace the `error_handler` policy with our own. For example: [source,c++] ---- -include::{exampledir}/throw_error_handler.cpp[tag=example] +include::example$throw_error_handler.cpp[tag=example] ---- [source,console] @@ -39,7 +38,7 @@ not implemented spin ---- -Stock facet `throw_error_handler` does this for all the exception types: +Stock policy `throw_error_handler` does this for all the error types: ```c++ namespace boost::openmethod::policies { diff --git a/doc/friendship.adoc b/doc/modules/ROOT/pages/friendship.adoc similarity index 87% rename from doc/friendship.adoc rename to doc/modules/ROOT/pages/friendship.adoc index 1590db2..e445edf 100644 --- a/doc/friendship.adoc +++ b/doc/modules/ROOT/pages/friendship.adoc @@ -17,7 +17,7 @@ We can thus grant friendship to all the overriders of `poke`: [source,c++] ---- -include::{exampledir}/friendship.cpp[tag=friend_all] +include::example$friendship.cpp[tag=friend_all] ---- Be aware, though, that the overriders of _any_ method called `poke` - with any @@ -27,5 +27,5 @@ We can also befriend individual overriders: [source,c++] ---- -include::{exampledir}/friendship.cpp[tag=friend] +include::example$friendship.cpp[tag=friend] ---- diff --git a/doc/headers_namespaces.adoc b/doc/modules/ROOT/pages/headers_namespaces.adoc similarity index 92% rename from doc/headers_namespaces.adoc rename to doc/modules/ROOT/pages/headers_namespaces.adoc index 536d28e..e7f5c36 100644 --- a/doc/headers_namespaces.adoc +++ b/doc/modules/ROOT/pages/headers_namespaces.adoc @@ -11,7 +11,7 @@ Let's break the Animals example into headers and namespaces. First we put [source,c++] ---- -include::{exampledir}/headers_namespaces/animal.hpp[] +include::example$headers_namespaces/animal.hpp[] ---- `BOOST_OPENMETHOD` can be placed in a header file. It adds several constructs to @@ -32,19 +32,19 @@ Next, let's implement the `Cat` class, and a derived class, `Cheetah`, in the [source,c++] ---- -include::{exampledir}/headers_namespaces/cat.hpp[] +include::example$headers_namespaces/cat.hpp[] ---- [source,c++] ---- -include::{exampledir}/headers_namespaces/cat.cpp[] +include::example$headers_namespaces/cat.cpp[] ---- `BOOST_OPENMETHOD_CLASSES` should be placed in an implementation file. It can also go in a header file, but this wastes space, as the same registrar will be created in every translation unit that includes the header. It doesn't matter -which namespace the macro is called in. It can take be used with any class name -in scope, or with qualified names. +which namespace the macro is called in. It can be used with any class name in +scope, or with qualified names. `BOOST_OPENMETHOD_OVERRIDE` uses the guide function declared by `BOOST_OPENMETHOD` to locate a method that can be called with the same arguments @@ -83,7 +83,7 @@ the static function `fn` just yet. [source,c++] ---- -include::{exampledir}/headers_namespaces/dog.hpp[] +include::example$headers_namespaces/dog.hpp[] ---- Unlike function declarations, which can occur multiple times in a TU, an @@ -101,15 +101,15 @@ Now we use `BOOST_OPENMETHOD_DEFINE_OVERRIDER` to define the overrider: [source,c++] ---- -include::{exampledir}/headers_namespaces/dog.cpp[] +include::example$headers_namespaces/dog.cpp[] ---- -Let's look at the main program now. It derived `Bulldog` from `Dog` and provides +Let's look at the main program now. It derives `Bulldog` from `Dog` and provides an overrider for the new class: [source,c++] ---- -include::{exampledir}/headers_namespaces/main.cpp[] +include::example$headers_namespaces/main.cpp[] ---- Again ADL plays a role: it helps the overrider (and `main`) to locate the `poke` diff --git a/doc/hello_world.adoc b/doc/modules/ROOT/pages/hello_world.adoc similarity index 85% rename from doc/hello_world.adoc rename to doc/modules/ROOT/pages/hello_world.adoc index 52e0755..8727420 100644 --- a/doc/hello_world.adoc +++ b/doc/modules/ROOT/pages/hello_world.adoc @@ -1,3 +1,4 @@ +:exampledir: ../example ## Hello World @@ -6,7 +7,7 @@ functions: [source,c++] ---- -include::{exampledir}/virtual_func.cpp[tag=code] +include::example$virtual_func.cpp[tag=code] ---- We are going to rewrite this using open-methods. @@ -15,7 +16,7 @@ First we remove the `poke` virtual functions from the domain classes: [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=domain_classes] +include::example$hello_world.cpp[tag=domain_classes] ---- Note that the Animal classes do not depend on iostreams anymore. This is a major @@ -28,7 +29,7 @@ namespace. [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=method] +include::example$hello_world.cpp[tag=method] ---- This defines a free function called `poke`, which takes two arguments. The first @@ -45,7 +46,7 @@ Let's add overriders for `Cat` and `Dog`: [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=overriders] +include::example$hello_world.cpp[tag=overriders] ---- `Bulldog::poke` calls the `poke` it overrides in its `Dog` base. The equivalent @@ -55,7 +56,7 @@ been called if the overrider did not exist. [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=next] +include::example$hello_world.cpp[tag=next] ---- All classes involved in open-method calls need to be registered using the @@ -63,7 +64,7 @@ All classes involved in open-method calls need to be registered using the [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=classes] +include::example$hello_world.cpp[tag=classes] ---- Classes can be registered incrementally, as long as all the direct bases of a @@ -85,7 +86,7 @@ It builds the dispatch tables. Typically this is done in `main`: [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=main,indent=0] +include::example$hello_world.cpp[tag=main,indent=0] ---- We call `poke` like any ordinary function. We can pass it the animals by @@ -94,5 +95,5 @@ reference, because `virtual_ptr` has a conversion constructor for that: [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=call] +include::example$hello_world.cpp[tag=call] ---- diff --git a/doc/modules/ROOT/pages/index.adoc b/doc/modules/ROOT/pages/index.adoc new file mode 100644 index 0000000..6448b59 --- /dev/null +++ b/doc/modules/ROOT/pages/index.adoc @@ -0,0 +1,76 @@ +// +// Copyright (c) 2025 Jean-Louis Leroy (jean-louis.leroy@gmail.com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt) +// +// Official repository: https://github.com/boostorg/openmethod +// + + +# Introduction + +Open-methods are similar to virtual functions, but they are not required to be +members of a class. By being both free and virtual, tdoc/hello_world.adochey provide a solution to +the Expression Problem: + +> Given a set of types, and a set of operations on these types, is it possible +to add new operations on the existing types, and new types to the existing +operations, without modifying existing code? + +Open-methods also address the banana-gorilla-jungle problem: + +> The problem with object-oriented languages is they’ve got all this implicit +environment that they carry around with them. You wanted a banana but what you +got was a gorilla holding the banana and the entire jungle. — Joe Armstrong, +creator of Erlang progamming language + +As a bonus, open-methods can take more than one argument into account when +selecting the appropriate function to call - aka multiple dispatch. For that +reason, open-methods are often called multi-methods, but that term is +misleading, as it suggests that the feature is useful only when multiple +dispatch is needed. In reality, +https://openaccess.wgtn.ac.nz/articles/thesis/Multiple_Dispatch_in_Practice/16959112/1[it +has been observed] that, in large systems written in languages that support +multi-methods, most methods use single-dispatch. The real benefit is in the +solution to the Expression Problem. + +Open-methods were introduced by the Common Lisp Object System, and they are +native to many languages: Clojure, Julia, Dylan, TADS, Cecil, Diesel, Nice, etc. +Bjarne Stroustrup wanted open-methods in C++ almost from the beginning. In D&E +he writes: + +> I repeatedly considered a mechanism for a virtual function call based on more +than one object, often called multi-methods. I rejected multi-methods with +regret because I liked the idea, but couldn’t find an acceptable form under +which to accept it. [...] Multi-methods is one of the interesting what-ifs of +C++. Could I have designed and implemented them well enough at the time? Would +their applications have been important enough to warrant the effort? What other +work might have been left undone to provide the time to design and implement +multi-methods? Since about 1985, I have always felt some twinge of regret for +not providing multi-methods (Stroustrup, 1994, The Design and Evolution of +C{plus}{plus}, 13.8). + +Circa 2007, he and his PhD students Peter Pirkelbauer and Yuriy Solodkyy wrote a +series of papers and a prototype implementation based on the EDG compiler. +Unfortunately, open-methods never made it into the standard. Stroustrup bemoans, +in a more recent paper: + +> In retrospect, I don’t think that the object-oriented notation (e.g., x.f(y)) +should ever have been introduced. The traditional mathematical notation f(x,y) +is sufficient. As a side benefit, the mathematical notation would naturally have +given us multi-methods, thereby saving us from the visitor pattern workaround +(Stroustrup, 2020, Thriving in a Crowded and ChangingWorld: C++ 2006–2020). + +This library implements the features described in the +http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2216.pdf[N2216 paper], +with some extensions: + +* a mechanism for calling the next most specialized overrider + +* support for smart pointers + +* customization points for RTTI, error handling, tracing, smart pointers... + +Multiple and virtual inheritance are supported, with the exception of repeated +inheritance. diff --git a/doc/multiple_dispatch.adoc b/doc/modules/ROOT/pages/multiple_dispatch.adoc similarity index 82% rename from doc/multiple_dispatch.adoc rename to doc/modules/ROOT/pages/multiple_dispatch.adoc index dcdd7e5..e5e8bc0 100644 --- a/doc/multiple_dispatch.adoc +++ b/doc/modules/ROOT/pages/multiple_dispatch.adoc @@ -5,12 +5,12 @@ A method can have more than one `virtual_ptr` parameter. For example: [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=multi] +include::example$hello_world.cpp[tag=multi] ---- [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=multi_call,indent=0] +include::example$hello_world.cpp[tag=multi_call,indent=0] ---- The appropriate overrider is selected using a process similar to overload diff --git a/doc/performance.adoc b/doc/modules/ROOT/pages/performance.adoc similarity index 93% rename from doc/performance.adoc rename to doc/modules/ROOT/pages/performance.adoc index 325a94c..71926ae 100644 --- a/doc/performance.adoc +++ b/doc/modules/ROOT/pages/performance.adoc @@ -8,7 +8,7 @@ clang compiles the following code: [source,c++] ---- -include::{exampledir}/hello_world.cpp[tag=call_poke_via_ref] +include::example$hello_world.cpp[tag=call_poke_via_ref] ---- ...to this on the x64 architecture (variable names have been shortened for @@ -17,9 +17,9 @@ readability): [source,asm] ---- mov rax, qword ptr [rsi] -mov rdx, qword ptr [rip + hash_mult] +mov rdx, qword ptr [rip + mult] imul rdx, qword ptr [rax - 8] -movzx ecx, byte ptr [rip + hash_shift] +movzx ecx, byte ptr [rip + shift] shr rdx, cl mov rax, qword ptr [rip + vptrs] mov rax, qword ptr [rax + 8*rdx] @@ -48,7 +48,7 @@ Let's look at another example: an AST for an arithmetic calculator: [source,c++] ---- -include::{exampledir}/ast.cpp[tag=ast] +include::example$ast.cpp[tag=ast] ---- The `Negate` overrider compiles to: @@ -79,7 +79,7 @@ instruction. For example: [source,c++] ---- -include::{exampledir}/ast.cpp[tag=final,indent=0] +include::example$ast.cpp[tag=final,indent=0] ---- ...compiles to: diff --git a/doc/modules/ROOT/pages/policies.adoc b/doc/modules/ROOT/pages/policies.adoc new file mode 100644 index 0000000..2f7772d --- /dev/null +++ b/doc/modules/ROOT/pages/policies.adoc @@ -0,0 +1,72 @@ + +## Registries and Policies + +Methods are scoped in a registry. A method can only reference classes in the +same registry. If a class is used as a virtual parameter in methods using +different registries, it must be registered with each of them. + +Class templates `use_classes`, `method`, `virtual_ptr`, and macros +`BOOST_OPENMETHOD` and `BOOST_OPENMETHOD_CLASSES`, accept an additional +argument, a registry class, which defaults to `default_registry`, which is an +alias to `release_registry` or `debug_registry`, depending on the value of +preprocessor symbols `NDEBUG`. The default registry can be overriden by defining +the macroprocessor symbol `BOOST_OPENMETHOD_DEFAULT_REGISTRY` _before_ including +``. The value of the symbol is used as a default +template parameter for `use_classes`, `method`, `virtual_ptr`, and others. Once +the `core` header has been included, changing +`BOOST_OPENMETHOD_DEFAULT_REGISTRY` has no effect. + +A registry has a collection of _policies_. Each policy belongs to a policy +category. A policy may contain at most one policy of a given category. Policies +control how type information is obtained, how vptrs are fetched, how errors are +handled and printed, etc. Some are used in `initialize` and method dispatch; +some are used by other policies in the same registry as part of their +implementation. See the reference for the list of policies. Policies are placed +in the `boost::openmethod::policies` namespace. + +`release_registry` contains the following policies: + +[cols="1,1,1"] +|=== +|policy category |policy |role + +| rtti +| std_rtti +| provides type information for classes and objects + +| vptr +| vptr_vector +| stores vptrs in an indexed collection + +| type_hash +| fast_perfect_hash +| hash type id to an index in a vector + +| error_handler +| default_error_handler +| handles errors + +| output +| basic_error_output +| prints error descriptions to `stderr` + +|=== + +`debug_registry` contains the same policies as `release_registry`, plus +`runtime_checks` and `trace`. + +Registries can be created from scratch, using the `registry` template, or +constructed from existing registries, by adding and/or removing policies. For +example, `debug_registry` is a tweak of `release_registry`: + +[source,c++] +---- +struct release_registry + : registry< + policies::std_rtti, policies::fast_perfect_hash, + policies::vptr_vector, policies::default_error_handler, + policies::stderr_output> {}; + +struct debug_registry + : release_registry::with {}; +---- diff --git a/doc/modules/ROOT/pages/reference.adoc b/doc/modules/ROOT/pages/reference.adoc new file mode 100644 index 0000000..223000d --- /dev/null +++ b/doc/modules/ROOT/pages/reference.adoc @@ -0,0 +1,176 @@ +[#boost-openmethod] += xref:reference:reference.adoc[Reference] +:mrdocs: + +== Macros + +[cols=2] +|=== +| Name +| Description +| xref:BOOST_OPENMETHOD.adoc[BOOST_OPENMETHOD] +| declares a method +| xref:BOOST_OPENMETHOD_CLASSES.adoc[BOOST_OPENMETHOD_CLASSES] +| registers classes +| xref:BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc[BOOST_OPENMETHOD_DECLARE_OVERRIDER] +| declares a method overrider +| xref:BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc[BOOST_OPENMETHOD_DEFAULT_REGISTRY] +| default registry +| xref:BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc[BOOST_OPENMETHOD_DEFINE_OVERRIDER] +| defines the body of a method overrider +| xref:BOOST_OPENMETHOD_ID.adoc[BOOST_OPENMETHOD_ID] +| generates a method id +| xref:BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc[BOOST_OPENMETHOD_INLINE_OVERRIDE] +| adds an overrider to a method as an inline function +| xref:BOOST_OPENMETHOD_OVERRIDE.adoc[BOOST_OPENMETHOD_OVERRIDE] +| adds an overrider to a method +| xref:BOOST_OPENMETHOD_OVERRIDER.adoc[BOOST_OPENMETHOD_OVERRIDER] +| returns the class template specialization containing an overrider +| xref:BOOST_OPENMETHOD_OVERRIDERS.adoc[BOOST_OPENMETHOD_OVERRIDERS] +| returns the class template containing the overriders for all the methods with a given name +| xref:BOOST_OPENMETHOD_REGISTER.adoc[BOOST_OPENMETHOD_REGISTER] +| creates a static registrar object +|=== + + +== Namespaces + +[cols=1] +|=== +| Name +| xref:reference:boost/openmethod/aliases.adoc[`aliases`] +| xref:reference:boost/openmethod/policies.adoc[`policies`] +|=== + +== Types + +[cols=2] +|=== +| Name +| Description +| xref:reference:boost/openmethod/ambiguous_error.adoc[`ambiguous_error`] +| +| xref:reference:boost/openmethod/call_error.adoc[`call_error`] +| +| xref:reference:boost/openmethod/compiler.adoc[`compiler`] +| +| xref:reference:boost/openmethod/debug_registry.adoc[`debug_registry`] +| +| xref:reference:boost/openmethod/final_error.adoc[`final_error`] +| +| xref:reference:boost/openmethod/hash_search_error.adoc[`hash_search_error`] +| +| xref:reference:boost/openmethod/inplace_vptr-0f.adoc[`inplace_vptr`] +| +| xref:reference:boost/openmethod/inplace_vptr-0a.adoc[`inplace_vptr<Class>`] +| +| xref:reference:boost/openmethod/inplace_vptr-00.adoc[`inplace_vptr<Class, Other>`] +| +| xref:reference:boost/openmethod/inplace_vptr-02.adoc[`inplace_vptr<Class, Base1, Base2, MoreBases...>`] +| +| xref:reference:boost/openmethod/method-0d8.adoc[`method`] +| +| xref:reference:boost/openmethod/method-0db.adoc[`method<Name, ReturnType(Parameters...), Registry>`] +| +| xref:reference:boost/openmethod/not_implemented_error.adoc[`not_implemented_error`] +| +| xref:reference:boost/openmethod/not_initialized_error.adoc[`not_initialized_error`] +| +| xref:reference:boost/openmethod/openmethod_error.adoc[`openmethod_error`] +| +| xref:reference:boost/openmethod/registry-07.adoc[`registry`] +| +| xref:reference:boost/openmethod/release_registry.adoc[`release_registry`] +| +| xref:reference:boost/openmethod/static_offset_error.adoc[`static_offset_error`] +| +| xref:reference:boost/openmethod/static_slot_error.adoc[`static_slot_error`] +| +| xref:reference:boost/openmethod/static_stride_error.adoc[`static_stride_error`] +| +| xref:reference:boost/openmethod/unknown_class_error.adoc[`unknown_class_error`] +| +| xref:reference:boost/openmethod/use_classes.adoc[`use_classes`] +| +| xref:reference:boost/openmethod/virtual_.adoc[`virtual_`] +| +| xref:reference:boost/openmethod/virtual_ptr-0a.adoc[`virtual_ptr`] +| A wide pointer combining a pointer to an object and a pointer to its v‐table. +| xref:reference:boost/openmethod/virtual_ptr-02.adoc[`virtual_ptr<Class, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-0be.adoc[`virtual_traits`] +| +| xref:reference:boost/openmethod/virtual_traits-043.adoc[`virtual_traits<std::shared_ptr<Class>, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-0bf.adoc[`virtual_traits<std::unique_ptr<Class>, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-096.adoc[`virtual_traits<virtual_ptr<Class, Registry>, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-08.adoc[`virtual_traits<T&, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-07a.adoc[`virtual_traits<std::shared_ptr<Class> const&, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-048.adoc[`virtual_traits<virtual_ptr<Class, Registry> const&, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-098.adoc[`virtual_traits<T&&, Registry>`] +| +| xref:reference:boost/openmethod/virtual_traits-071.adoc[`virtual_traits<T*, Registry>`] +| +| xref:reference:boost/openmethod/default_registry.adoc[`default_registry`] +| +| xref:reference:boost/openmethod/shared_virtual_ptr.adoc[`shared_virtual_ptr`] +| +| xref:reference:boost/openmethod/type_id.adoc[`type_id`] +| +| xref:reference:boost/openmethod/unique_virtual_ptr.adoc[`unique_virtual_ptr`] +| +| xref:reference:boost/openmethod/vptr_type.adoc[`vptr_type`] +| +|=== + +== Functions + +[cols=2] +|=== +| Name +| Description +| xref:reference:boost/openmethod/boost_openmethod_vptr-02.adoc[`boost_openmethod_vptr`] +| +| xref:reference:boost/openmethod/final_virtual_ptr-04.adoc[`final_virtual_ptr`] +| +| xref:reference:boost/openmethod/finalize.adoc[`finalize`] +| +| xref:reference:boost/openmethod/initialize.adoc[`initialize`] +| +| xref:reference:boost/openmethod/make_shared_virtual.adoc[`make_shared_virtual`] +| +| xref:reference:boost/openmethod/make_unique_virtual.adoc[`make_unique_virtual`] +| +| xref:reference:boost/openmethod/operator_eq.adoc[`operator==`] +| Equality operator +| xref:reference:boost/openmethod/operator_not_eq.adoc[`operator!=`] +| Inequality operator +|=== + +== Variables + +[cols=1] +|=== +| Name +| xref:reference:boost/openmethod/is_method.adoc[`is_method`] +| xref:reference:boost/openmethod/is_polymorphic.adoc[`is_polymorphic`] +| xref:reference:boost/openmethod/is_smart_ptr.adoc[`is_smart_ptr`] +| xref:reference:boost/openmethod/same_smart_ptr.adoc[`same_smart_ptr`] +|=== + +== Deduction Guides + +[cols=1] +|=== +| Name +| xref:reference:boost/openmethod/virtual_ptr-0f.adoc[`virtual_ptr<Class, boost::openmethod::default_registry>`] +| xref:reference:boost/openmethod/virtual_ptr-0b.adoc[`virtual_ptr<Class, boost::openmethod::default_registry>`] +|=== + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/doc/smart_pointers.adoc b/doc/modules/ROOT/pages/smart_pointers.adoc similarity index 82% rename from doc/smart_pointers.adoc rename to doc/modules/ROOT/pages/smart_pointers.adoc index d471ce2..55b9583 100644 --- a/doc/smart_pointers.adoc +++ b/doc/modules/ROOT/pages/smart_pointers.adoc @@ -11,11 +11,11 @@ smart virtual_ptr to it. Since the exact type of the object is known, the vptr is read from a static variable, without incuring the cost of a hash table lookup. -Here is a variaton of the AST example that uses dynamic allocation and unique +Here is a variation of the AST example that uses dynamic allocation and unique pointers: [source,c++] ---- -include::{exampledir}/ast_unique_ptr.cpp[tag=ast,indent=0] +include::example$ast_unique_ptr.cpp[tag=ast,indent=0] ---- diff --git a/doc/virtual_ptr_alt.adoc b/doc/modules/ROOT/pages/virtual_ptr_alt.adoc similarity index 92% rename from doc/virtual_ptr_alt.adoc rename to doc/modules/ROOT/pages/virtual_ptr_alt.adoc index d1fb9f4..0a5294d 100644 --- a/doc/virtual_ptr_alt.adoc +++ b/doc/modules/ROOT/pages/virtual_ptr_alt.adoc @@ -9,7 +9,7 @@ For example, the `poke` open-method in the Animals example can be rewritten as: [source,c++] ---- -include::{exampledir}/virtual_.cpp[tag=virtual_parameter,indent=0] +include::example$virtual_.cpp[tag=virtual_parameter,indent=0] int main() { boost::openmethod::initialize(); @@ -39,7 +39,7 @@ native virtual functions: [source,c++] ---- -include::{exampledir}/virtual_.cpp[tag=virtual_intrusive,indent=0] +include::example$virtual_.cpp[tag=virtual_intrusive,indent=0] int main() { boost::openmethod::initialize(); @@ -58,7 +58,7 @@ vptrs. [source,c++] ---- -include::{exampledir}/virtual_.cpp[tag=inplace_vptr,indent=0] +include::example$virtual_.cpp[tag=inplace_vptr,indent=0] int main() { boost::openmethod::initialize(); diff --git a/doc/mrdocs.yml b/doc/mrdocs.yml new file mode 100644 index 0000000..d6549c6 --- /dev/null +++ b/doc/mrdocs.yml @@ -0,0 +1,63 @@ +# Input +source-root: .. +# Directories that contain documented source files +input: + - ../include +# Patterns to filter out the source-files in the directories +file-patterns: + - '*.hpp' +# exclude: +# - '../boost/libs/test' +# - '../include/boost/test/impl' + +# Filters +include-symbols: + - 'boost::openmethod::**' +# see-below: +# - 'boost::urls::format_arg' +# implementation-defined: +# - 'boost::openmethod::detail::**' +exclude-symbols: + - 'boost::openmethod::detail::**' + - 'boost::openmethod::boost_openmethod_bases' + - 'boost::openmethod::boost_openmethod_registry' + +sort-members: false +extract-friends: false +implementation-detail: impl +inherit-base-members: never + +# Metadata Extraction +private-bases: false + +# Generator +generate: adoc +base-url: https://www.github.com/boostorg/openmethod/blob/develop/ + +# Style +verbose: true +multipage: true + +# The target for MrDocs simply includes all symbols defined in all +# headers with the appropriate compilation options. +# Nothing else should be included in the MrDocs configuration or +# would be useful to MrDocs. +# +# This single source file not only includes all symbols (the source +# files do not collectively include all headers) but also makes MrDocs +# run much faster than relying on the entire library. +# +# The time to extract the declarations went from ~8m6s to ~3s in our +# experiments: a 162x speedup while including all symbols! +# +# In practice, this special target is simply emulating the +# default behavior of the standardese tool with MrDocs, which +# requires the user to clearly specify the targets via the +# compilation database. +# +# The BOOST_OPENMETHOD_MRDOCS_BUILD=ON is the only option we usually need +# here. +# The other options are set just to ensure other targets are +# ignored even if these options are set as ON in the cache. +# +cmake: '-DCMAKE_VERBOSE_MAKEFILE=ON -D BOOST_OPENMETHOD_MRDOCS_BUILD=ON -D CMAKE_CXX_STANDARD=20 -D BOOST_OPENMETHOD_BUILD_EXAMPLES=OFF -D BOOST_OPENMETHOD_BUILD_TESTS=OFF -D BUILD_TESTING=OFF' diff --git a/doc/output.adoc b/doc/output.adoc index db32928..083cc51 100644 --- a/doc/output.adoc +++ b/doc/output.adoc @@ -19,7 +19,7 @@ struct basic_error_output : output { ### Description `basic_error_output` is an implementation of `output` that writes error -messages to a `RestrictedOutputStream`. +messages to a `LightweightOutputStream`. ### Members diff --git a/doc/overview.adoc b/doc/overview.adoc index 0fb5c0a..aef6ce0 100644 --- a/doc/overview.adoc +++ b/doc/overview.adoc @@ -67,7 +67,7 @@ macros: * Include ``and ``. -#### +#### Provides `intialize` and `finalize`. Typically included only by the translation unit that contains `main`, unless dynamic loading is used in other places in the @@ -96,49 +96,49 @@ an alias to either `debug` or `release`, depending on the value of the preprocessor symbol `NDEBUG`. Usually not included directly. Can be used to create custom policies from stock -policies, by forking them and adjusting a few facets. +policies, by forking them and adjusting a few policys. #### Provides the constructs used in the policy framework, essentially -`basic_policy`, `facet`, and its abstract subclasses (`rtti`, `extern_vptr`, +`basic_policy`, `policy`, and its abstract subclasses (`rtti`, `extern_vptr`, etc). #### -Implements the `rtti` facet using standard RTTI. +Implements the `rtti` policy using standard RTTI. #### -Implements the `rtti` facet using a minimal RTTI implementation. Can be used only with the "final" constructs, or with intrusive v-table pointers. +Implements the `rtti` policy using a minimal RTTI implementation. Can be used only with the "final" constructs, or with intrusive v-table pointers. #### -Implements the `extern_vptr` facet using a vector of pointers. +Implements the `extern_vptr` policy using a vector of pointers. #### -Implements the `extern_vptr` facet using a map of pointers. +Implements the `extern_vptr` policy using a map of pointers. #### -Implements the `type_hash` facet using a perfect hash function. +Implements the `type_hash` policy using a perfect hash function. #### -Implements the `error_handler` facet by routing the error through a +Implements the `error_handler` policy by routing the error through a `std::function`. #### -Implements the `error_handler` facet by throwing an exception. +Implements the `error_handler` policy by throwing an exception. #### -Implements the `output` facet using a lightweight version of +Implements the `output` policy using a lightweight version of `std::ostream`. #### -Implements the `trace` facet using a lightweight version of +Implements the `trace` policy using a lightweight version of `std::ostream`. diff --git a/doc/package-lock.json b/doc/package-lock.json new file mode 100644 index 0000000..0ad8ba9 --- /dev/null +++ b/doc/package-lock.json @@ -0,0 +1,2938 @@ +{ + "name": "doc", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@antora/expand-path-helper": "^2.0.0", + "@antora/lunr-extension": "^1.0.0-alpha.8", + "@asciidoctor/tabs": "^1.0.0-beta.3", + "@cppalliance/antora-cpp-reference-extension": "^0.0.6", + "@cppalliance/antora-cpp-tagfiles-extension": "^0.0.4", + "@cppalliance/asciidoctor-boost-links": "^0.0.2" + }, + "devDependencies": { + "@antora/cli": "3.1.3", + "@antora/site-generator": "3.1.3", + "antora": "3.1.3" + } + }, + "node_modules/@antora/asciidoc-loader": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.3.tgz", + "integrity": "sha512-nCmfdxPSBW3rwZ6Aa+xZH9XRDSHOkx28B5VJ2gHlZr8Nl1cx3nvwcP7l/FqYCW/q4mke/ozj/PpjsyC1K5BZVQ==", + "dev": true, + "dependencies": { + "@antora/logger": "3.1.3", + "@antora/user-require-helper": "~2.0", + "@asciidoctor/core": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/cli": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.3.tgz", + "integrity": "sha512-ABngPywk4yZfUE/gaej7ApFeB/0cr5bkW7S4wqObzU5m29q2wDcvrtn/c2mrzFSeSDNAf9y7RCRnudAV5SteBA==", + "dev": true, + "dependencies": { + "@antora/logger": "3.1.3", + "@antora/playbook-builder": "3.1.3", + "@antora/user-require-helper": "~2.0", + "commander": "~9.4" + }, + "bin": { + "antora": "bin/antora" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/content-aggregator": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.3.tgz", + "integrity": "sha512-c+Z+7RVmgu2rvVDRzG8yqSJEmJHnpmTC24aVgvFbb/oU7+YRAVifacgzRl2khOmuky7qKiQxLYmyXJBtRgb37w==", + "dev": true, + "dependencies": { + "@antora/expand-path-helper": "~2.0", + "@antora/logger": "3.1.3", + "@antora/user-require-helper": "~2.0", + "braces": "~3.0", + "cache-directory": "~2.0", + "glob-stream": "~7.0", + "hpagent": "~1.1", + "isomorphic-git": "~1.21", + "js-yaml": "~4.1", + "multi-progress": "~4.0", + "picomatch": "~2.3", + "progress": "~2.0", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/content-aggregator/node_modules/isomorphic-git": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.21.0.tgz", + "integrity": "sha512-ZqCAUM63CYepA3fB8H7NVyPSiOkgzIbQ7T+QPrm9xtYgQypN9JUJ5uLMjB5iTfomdJf3mdm6aSxjZwnT6ubvEA==", + "dev": true, + "dependencies": { + "async-lock": "^1.1.0", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@antora/content-classifier": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.3.tgz", + "integrity": "sha512-auPS1WVRa1khhY7EpEkP+strR+6A6UOm23skEUKzQKESKl6j9KRqxxurvMMKDUmtrAeZ1GqjX5dC/bPfUPNpmw==", + "dev": true, + "dependencies": { + "@antora/asciidoc-loader": "3.1.3", + "@antora/logger": "3.1.3", + "mime-types": "~2.1", + "vinyl": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/document-converter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.3.tgz", + "integrity": "sha512-9h8jCsf3C1YNMpmKX141kY4WD/W8Roo8T4Y6OToIIKRjNSPnT8KWLFB8NzHXyLNhV1H9EeS/eNdbvxDzBd/VvQ==", + "dev": true, + "dependencies": { + "@antora/asciidoc-loader": "3.1.3" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/expand-path-helper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz", + "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@antora/file-publisher": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.3.tgz", + "integrity": "sha512-4c2RVaJkLvYXbUZP2VF/hFVSZ6UAPNPgt/iurexr3D7OqKrYJnYqchXsLhut2yCLYVOzedXGMst0y2XaEi52qA==", + "dev": true, + "dependencies": { + "@antora/expand-path-helper": "~2.0", + "@antora/user-require-helper": "~2.0", + "gulp-vinyl-zip": "~2.5", + "vinyl": "~2.2", + "vinyl-fs": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/logger": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.3.tgz", + "integrity": "sha512-6h0PTYHF9C/I9CiYJmlTME7H9dEkMI1luGMQdYhPL9OicbZ5/HsUPKOvGfLNHzw2iyG0yp5bLVvcr9K69ArgtQ==", + "dev": true, + "dependencies": { + "@antora/expand-path-helper": "~2.0", + "pino": "~8.7", + "pino-pretty": "~9.1", + "sonic-boom": "~3.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/lunr-extension": { + "version": "1.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/@antora/lunr-extension/-/lunr-extension-1.0.0-alpha.8.tgz", + "integrity": "sha512-vdBgW3rsvbnmA236kT2Dckh9n0Db5za2/WxiLnFLgZ05ZO1KJQa9+R2WHaIFuGE7bKKbY+lqfM/i3KiezbL9YQ==", + "dependencies": { + "cheerio": "1.0.0-rc.10", + "html-entities": "~2.3", + "lunr": "~2.3", + "lunr-languages": "~1.9" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/navigation-builder": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.3.tgz", + "integrity": "sha512-t7xHXdK6YjmB79FlsKTGPWHHcEhRzLGZEp9Qjg45S1UphPWWCWEhz6nC/if+MKyoRPGn3aoiSh3n33XC/eYxew==", + "dev": true, + "dependencies": { + "@antora/asciidoc-loader": "3.1.3" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/page-composer": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.3.tgz", + "integrity": "sha512-X0qrJ1x6jReNjzPtenbgnxfVMbsc5RbuVzBEOqWnX9i+PI4dSYUJ9dKZW9rXE6Vv7Yq6vjOn7JlgHXcvo/RCzQ==", + "dev": true, + "dependencies": { + "@antora/logger": "3.1.3", + "handlebars": "~4.7", + "require-from-string": "~2.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/playbook-builder": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.3.tgz", + "integrity": "sha512-EjkTrXwFAhFxDFU6eHRuExqvuvoHxyR1IbCAgjyj6Pi6hvGIZoGbH9cu1Gy1sWE6XmZl5yA5Gwi++LMyQPmuuA==", + "dev": true, + "dependencies": { + "@iarna/toml": "~2.2", + "convict": "~6.2", + "js-yaml": "~4.1", + "json5": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/redirect-producer": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.3.tgz", + "integrity": "sha512-SLa8HkDSeH45KUjpID7exv8yvDYcsgup4FKP9xtGJsEH4Ikv4uRmSqrL55jwliCwvuU6Wojt+PFHKtnZVwKKIg==", + "dev": true, + "dependencies": { + "vinyl": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-generator": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.3.tgz", + "integrity": "sha512-sT8EWKZd8u6KRgUpTd/8j33+G5mON4VX7C7e2MEI8gVBCaPutUPuYO/2IycmN3n294Nua+szI/1Aqt6uVfksHg==", + "dev": true, + "dependencies": { + "@antora/asciidoc-loader": "3.1.3", + "@antora/content-aggregator": "3.1.3", + "@antora/content-classifier": "3.1.3", + "@antora/document-converter": "3.1.3", + "@antora/file-publisher": "3.1.3", + "@antora/logger": "3.1.3", + "@antora/navigation-builder": "3.1.3", + "@antora/page-composer": "3.1.3", + "@antora/playbook-builder": "3.1.3", + "@antora/redirect-producer": "3.1.3", + "@antora/site-mapper": "3.1.3", + "@antora/site-publisher": "3.1.3", + "@antora/ui-loader": "3.1.3", + "@antora/user-require-helper": "~2.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-mapper": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.3.tgz", + "integrity": "sha512-egyuCTgGVCcvNfH0BaWSsG5zJon3smXDjlRbIODqI6zu99HXsNqrVLMP62Z3lzEibKYXc/7XY/q5Ggm+prh0Sw==", + "dev": true, + "dependencies": { + "@antora/content-classifier": "3.1.3", + "vinyl": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-publisher": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.3.tgz", + "integrity": "sha512-dSHyyKj5l3ZIRo0EjNxmpZ+G3OgPQ4fgwdmA8xOWtX+eiU4sV3MQ9j6tlc4lloAzUVIumt7LOd0n9Quie6yCNA==", + "dev": true, + "dependencies": { + "@antora/file-publisher": "3.1.3" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/ui-loader": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.3.tgz", + "integrity": "sha512-xaOUn5vOb9RR6LVsCCwROvvWXTADvC/ITO1yKAiJtV9xNrI08szzmWXjgvb07PpRDRPD5QgYoZFmqFPk+0WE2w==", + "dev": true, + "dependencies": { + "@antora/expand-path-helper": "~2.0", + "braces": "~3.0", + "cache-directory": "~2.0", + "glob-stream": "~7.0", + "gulp-vinyl-zip": "~2.5", + "hpagent": "~1.1", + "js-yaml": "~4.1", + "picomatch": "~2.3", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/user-require-helper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-2.0.0.tgz", + "integrity": "sha512-5fMfBZfw4zLoFdDAPMQX6Frik90uvfD8rXOA4UpXPOUikkX4uT1Rk6m0/4oi8oS3fcjiIl0k/7Nc+eTxW5TcQQ==", + "dev": true, + "dependencies": { + "@antora/expand-path-helper": "~2.0" + }, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@asciidoctor/core": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", + "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", + "dev": true, + "dependencies": { + "asciidoctor-opal-runtime": "0.3.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0", + "yarn": ">=1.1.0" + } + }, + "node_modules/@asciidoctor/tabs": { + "version": "1.0.0-beta.6", + "resolved": "https://registry.npmjs.org/@asciidoctor/tabs/-/tabs-1.0.0-beta.6.tgz", + "integrity": "sha512-gGZnW7UfRXnbiyKNd9PpGKtSuD8+DsqaaTSbQ1dHVkZ76NaolLhdQg8RW6/xqN3pX1vWZEcF4e81+Oe9rNRWxg==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@cppalliance/antora-cpp-reference-extension": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@cppalliance/antora-cpp-reference-extension/-/antora-cpp-reference-extension-0.0.6.tgz", + "integrity": "sha512-Weud5Cn9KAoU3+fSA4IZM7THAEA8VPhclH7EfU6SiKSp/Iy92vSItpZioTmVrn0DIVo9tIxxrJXBp5GpSFk6hg==", + "dependencies": { + "@antora/expand-path-helper": "^2.0.0", + "axios": "^1.7.2", + "cache-directory": "^2.0.0", + "fast-glob": "^3.3.2", + "isomorphic-git": "^1.27.1", + "js-yaml": "^4.1.0", + "semver": "^7.6.3" + } + }, + "node_modules/@cppalliance/antora-cpp-tagfiles-extension": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@cppalliance/antora-cpp-tagfiles-extension/-/antora-cpp-tagfiles-extension-0.0.4.tgz", + "integrity": "sha512-dzb/QDZ+a5yk7vaEb2jNQ5p02XjA6LfPmLRWcxqb/MvpA9DHZKsPunFDy+yqY3eGy9zqNppunljy9TZUbeoczg==", + "dependencies": { + "@antora/expand-path-helper": "^2.0.0", + "cache-directory": "^2.0.0", + "fast-xml-parser": "^4.4.1", + "he": "^1.2.0", + "isomorphic-git": "^1.27.1" + } + }, + "node_modules/@cppalliance/asciidoctor-boost-links": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@cppalliance/asciidoctor-boost-links/-/asciidoctor-boost-links-0.0.2.tgz", + "integrity": "sha512-9Lg1s955QeBO/xosbJbd+P4qJo1CkC0MvkiAIDZoqf10g8KQpMNy88NBAWji5YcNwXcrr8KP83GEweKMNDBMsw==" + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/antora": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/antora/-/antora-3.1.3.tgz", + "integrity": "sha512-TRQJgGA9YcugI2yx9iaiEu9HPYUG5+DQdTcjp9CYWCyzH/+fT9dY53NJU0xsTzWPaYv8DE6m1Rt/J4u/7lCw9A==", + "dev": true, + "dependencies": { + "@antora/cli": "3.1.3", + "@antora/site-generator": "3.1.3" + }, + "bin": { + "antora": "bin/antora" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/asciidoctor-opal-runtime": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz", + "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==", + "dev": true, + "dependencies": { + "glob": "7.1.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11" + } + }, + "node_modules/async-lock": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/cache-directory": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-directory/-/cache-directory-2.0.0.tgz", + "integrity": "sha512-7YKEapH+2Uikde8hySyfobXBqPKULDyHNl/lhKm7cKf/GJFdG/tU/WpLrOg2y9aUrQrWUilYqawFIiGJPS6gDA==", + "dependencies": { + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", + "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "dependencies": { + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", + "dependencies": { + "css-select": "^4.3.0", + "css-what": "^6.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.3.1", + "domutils": "^2.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/clean-git-ref": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", + "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==" + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/cloneable-readable/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/cloneable-readable/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/cloneable-readable/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/convict": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.4.tgz", + "integrity": "sha512-qN60BAwdMVdofckX7AlohVJ2x9UvjTNoKVXCL2LxFk1l7757EJqf1nySdMkPQer0bt8kQ5lQiyZ9/2NvrFBuwQ==", + "dev": true, + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "yargs-parser": "^20.2.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff3": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", + "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fast-xml-parser": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/flush-write-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-7.0.0.tgz", + "integrity": "sha512-evR4kvr6s0Yo5t4CD4H171n4T8XcnPFznvsbeN8K9FPzc0Q0wYqcOWyGtck2qcvJSLXKnU6DnDyfmbDDabYvRQ==", + "dev": true, + "dependencies": { + "extend": "^3.0.2", + "glob": "^7.2.0", + "glob-parent": "^6.0.2", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.1", + "pumpify": "^2.0.1", + "readable-stream": "^3.6.0", + "remove-trailing-separator": "^1.1.0", + "to-absolute-glob": "^2.0.2", + "unique-stream": "^2.3.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-stream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gulp-vinyl-zip": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.5.0.tgz", + "integrity": "sha512-KPi5/2SUmkXXDvKU4L2U1dkPOP03SbhONTOgNZlL23l9Yopt+euJ1bBXwWrSMbsyh3JLW/TYuC8CI4c4Kq4qrw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "dependencies": { + "queue": "^4.2.1", + "through": "^2.3.8", + "through2": "^2.0.3", + "vinyl": "^2.0.2", + "vinyl-fs": "^3.0.3", + "yauzl": "^2.2.1", + "yazl": "^2.2.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/help-me": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz", + "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==", + "dev": true, + "dependencies": { + "glob": "^8.0.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/help-me/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/help-me/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/help-me/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpagent": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.1.0.tgz", + "integrity": "sha512-bgJcBmNTZaJO03xtXOTNfoFEf/3VwoZ/gJ2O4ekTCZu4LSFtfzQFrJ0kjq8ZSS0+IdghXqQIiDUnpp0eUR9IJg==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/html-entities": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.6.tgz", + "integrity": "sha512-9o0+dcpIw2/HxkNuYKxSJUF/MMRZQECK4GnF+oQOmJ83yCVHTWgCH5aOXxK5bozNRmM8wtgryjHD3uloPBDEGw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isomorphic-git": { + "version": "1.27.1", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.27.1.tgz", + "integrity": "sha512-X32ph5zIWfT75QAqW2l3JCIqnx9/GWd17bRRehmn3qmWc34OYbSXY6Cxv0o9bIIY+CWugoN4nQFHNA+2uYf2nA==", + "dependencies": { + "async-lock": "^1.4.1", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + }, + "node_modules/lunr-languages": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", + "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimisted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", + "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", + "dependencies": { + "minimist": "^1.2.5" + } + }, + "node_modules/multi-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-4.0.0.tgz", + "integrity": "sha512-9zcjyOou3FFCKPXsmkbC3ethv51SFPoA4dJD6TscIp2pUmy26kBDZW6h9XofPELrzseSkuD7r0V+emGEeo39Pg==", + "dev": true, + "peerDependencies": { + "progress": "^2.0.0" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/ordered-read-streams/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/ordered-read-streams/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/ordered-read-streams/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.7.0.tgz", + "integrity": "sha512-l9sA5uPxmZzwydhMWUcm1gI0YxNnYl8MfSr2h8cwLvOAzQLBLewzF247h/vqHe3/tt6fgtXeG9wdjjoetdI/vA==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dev": true, + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-pretty": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.1.1.tgz", + "integrity": "sha512-iJrnjgR4FWQIXZkUF48oNgoRI9BpyMhaEmihonHeCnZ6F50ZHAS4YGfGBT/ZVNsPmd+hzkIPGzjKdY08+/yAXw==", + "dev": true, + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.0", + "fast-safe-stringify": "^2.1.1", + "help-me": "^4.0.1", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", + "dev": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-warning": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", + "integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "dev": true, + "dependencies": { + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" + } + }, + "node_modules/queue": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.1.tgz", + "integrity": "sha512-AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==", + "dev": true, + "dependencies": { + "inherits": "~2.0.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "dev": true + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/should-proxy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/should-proxy/-/should-proxy-1.0.4.tgz", + "integrity": "sha512-RPQhIndEIVUCjkfkQ6rs6sOR6pkxJWCNdxtfG5pP0RVgUYbK5911kLTF0TNcCC0G3YCGd492rMollFT2aTd9iQ==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sonic-boom": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz", + "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/thread-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/unxhr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", + "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==", + "dev": true, + "engines": { + "node": ">=8.11" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/vinyl-fs/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/vinyl-fs/node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-fs/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/vinyl-fs/node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/vinyl-fs/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/vinyl-fs/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/vinyl-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3" + } + } + } +} diff --git a/doc/package.json b/doc/package.json new file mode 100644 index 0000000..fdc1849 --- /dev/null +++ b/doc/package.json @@ -0,0 +1,15 @@ +{ + "devDependencies": { + "@antora/cli": "3.1.3", + "@antora/site-generator": "3.1.3", + "antora": "3.1.3" + }, + "dependencies": { + "@cppalliance/antora-cpp-reference-extension": "^0.0.6", + "@cppalliance/antora-cpp-tagfiles-extension": "^0.0.4", + "@cppalliance/asciidoctor-boost-links": "^0.0.2", + "@antora/expand-path-helper": "^2.0.0", + "@antora/lunr-extension": "^1.0.0-alpha.8", + "@asciidoctor/tabs": "^1.0.0-beta.3" + } +} diff --git a/doc/policies.adoc b/doc/policies.adoc deleted file mode 100644 index 87ccd69..0000000 --- a/doc/policies.adoc +++ /dev/null @@ -1,91 +0,0 @@ - -## Policies and Facets - -Methods and classes are scoped in a policy. A method can only reference classes -registered in the same policy. If a class is used as a virtual parameter in -methods using different policies, it must be registered with each of them. - -Class templates `use_classes`, `method`, `virtual_ptr`, and macros -`BOOST_OPENMETHOD` and `BOOST_OPENMETHOD_CLASSES`, accept an additional -argument, a policy class, which defaults to `policies::debug` in debug builds, -and `policies::release` in release builds. - -A policy has a collection of _facets_. Each facet belongs to a facet category. A -policy may contain at most one facet of a given category. Facets control how -type information is obtained, how vptrs are fetched, how errors are handled and -printed, etc. Some are used in `initialize` and method dispatch; some are used -by other facets in the same policy as part of their implementation. See the -reference for the list of facets. Policies and facets are placed in the -`boost::openmethod::policies` namespace. Two stock policies are provided by the -library: `release` and `debug`. - -The `release` policy contains the following facets: - -[cols="1,1,1"] -|=== -|facet category |facet |role - -| rtti -| std_rtti -| provides type information for classes and objects - -| extern_vptr -| vptr_vector -| stores vptrs in an indexed collection - -| type_hash -| fast_perfect_hash -| hash type id to an index in a vector - -| error_handler -| default_error_handler -| handles errors - -|=== - -The `debug` policy contains the same facets as `release`, plus a few more: - -[cols="1,1,1"] -|=== -|facet category |facet |role - -| runtime_checks -| (itself) -| enables runtime checks - -| output -| basic_error_output -| prints error descriptions to `stderr` - -| trace -| basic_trace_output -| enables `initialize` to print information about dispatch table construction to `stderr` - -|=== - -Policies, and some facets, have static variables. When it is the case, they are -implemented as CRTP classes. - -Policies can be created from scratch, using the `basic_policy` template, or -constructed from existing policies by adding and removing facets. For example, -`policies::debug` is a tweak of `policies::release`: - -[source,c++] ----- -namespace boost::openmethod::policies { - -struct debug : release::fork::with< - runtime_checks, basic_error_output, - basic_trace_output> {}; - -} ----- - -`boost::openmethod::default_registry` is an alias to `release` or `debug`, -depending on the value of preprocessor symbols `NDEBUG`. The default policy can -be overriden by defining the macroprocessor symbol -`BOOST_OPENMETHOD_DEFAULT_REGISTRY` _before_ including -``. The value of the symbol is used as a default -template parameter for `use_classes`, `method`, `virtual_ptr`, and others. Once -the `core` header has been included, changing `BOOST_OPENMETHOD_DEFAULT_REGISTRY` -has no effect. diff --git a/doc/reference.adoc b/doc/reference.adoc deleted file mode 100644 index e0ea897..0000000 --- a/doc/reference.adoc +++ /dev/null @@ -1,48 +0,0 @@ - -# Reference -:toc: -:toc-title: -:idprefix: ref_ - -include::overview.adoc[] - -include::BOOST_OPENMETHOD.adoc[] -include::BOOST_OPENMETHOD_OVERRIDE.adoc[] -include::BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc[] -include::BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc[] -include::BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc[] -include::BOOST_OPENMETHOD_OVERRIDER.adoc[] -include::BOOST_OPENMETHOD_ID.adoc[] -include::BOOST_OPENMETHOD_GUIDE.adoc[] -include::BOOST_OPENMETHOD_OVERRIDERS.adoc[] -include::BOOST_OPENMETHOD_REGISTER.adoc[] -include::BOOST_OPENMETHOD_CLASSES.adoc[] -include::BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc[] - -include::initialize.adoc[] -include::typedefs.adoc[] -include::method.adoc[] -include::method_override.adoc[] -include::virtual_ptr.adoc[] -include::virtual_traits.adoc[] -include::use_classes.adoc[] -include::virtual_.adoc[] -include::inplace_vptr.adoc[] -include::abstract_policy.adoc[] -include::domain.adoc[] -include::basic_policy.adoc[] -include::facet.adoc[] -include::rtti.adoc[] -include::std_rtti.adoc[] -include::deferred_static_rtti.adoc[] -include::minimal_rtti.adoc[] -include::vptr.adoc[] -include::vptr_vector.adoc[] -include::vptr_map.adoc[] -include::type_hash.adoc[] -include::error_handler.adoc[] -include::default_error_handler.adoc[] -include::throw_error_handler.adoc[] -include::output.adoc[] -include::trace.adoc[] -include::restricted_output_stream.adoc[] diff --git a/doc/restricted_output_stream.adoc b/doc/restricted_output_stream.adoc index 57b2b7e..d4f9a6c 100644 --- a/doc/restricted_output_stream.adoc +++ b/doc/restricted_output_stream.adoc @@ -1,9 +1,9 @@ -## RestrictedOutputStream +## LightweightOutputStream ### Description -RestrictedOutputStream is a concept describing a `std::ostream`-like class with +LightweightOutputStream is a concept describing a `std::ostream`-like class with a reduced set of operations. While convenient, `std::ostream` and its implementations constitute a sizeable @@ -11,7 +11,7 @@ piece of code, which may make it unsuitable for certain applications. OpenMethod uses a small subset of the operations supported by `std::ostream`. By default, the library uses a lightweight implementation based on the C stream functions. -Implementations of `RestrictedOutputStream` provide the following functions: +Implementations of `LightweightOutputStream` provide the following functions: [cols="a,a", options="header"] @@ -20,16 +20,16 @@ Implementations of `RestrictedOutputStream` provide the following functions: | Name | Description -| RestrictedOutputStream& operator<<(RestrictedOutputStream& os, const char* str) +| LightweightOutputStream& operator<<(LightweightOutputStream& os, const char* str) | Write a null-terminated string `str` to `os` -| RestrictedOutputStream& operator<<(RestrictedOutputStream& os, const std::string_view& view) +| LightweightOutputStream& operator<<(LightweightOutputStream& os, const std::string_view& view) | Write a view to `os -| RestrictedOutputStream& operator<<(RestrictedOutputStream& os, const void* value) +| LightweightOutputStream& operator<<(LightweightOutputStream& os, const void* value) | Write a representation of a pointer to `os` -| RestrictedOutputStream& operator<<(RestrictedOutputStream& os, std::size_t value) +| LightweightOutputStream& operator<<(LightweightOutputStream& os, std::size_t value) | Write an unsigned integer to `os` |=== diff --git a/doc/rtti.adoc b/doc/rtti.adoc index c1fef0e..0e194d7 100644 --- a/doc/rtti.adoc +++ b/doc/rtti.adoc @@ -8,14 +8,14 @@ Defined in . ```c++ namespace boost::openmethod::policies { -struct rtti : facet {}; +struct rtti : policy {}; } // boost::openmethod::policies ``` ### Description -The `rtti` facet provides type information for classes and objects, implements +The `rtti` policy provides type information for classes and objects, implements downcast in presence of virtual inheritance, and writes descriptions of types to an `ostream`-like object. @@ -24,8 +24,7 @@ an `ostream`-like object. #### is_polymorphic ```c++ -template -static constexpr bool is_polymorphic; +template static constexpr bool is_polymorphic; ``` `true` if `Class` is polymorphic. @@ -33,8 +32,7 @@ static constexpr bool is_polymorphic; #### static_type ```c++ -template -static auto static_type() -> type_id; +template static auto static_type() -> type_id; ``` Returns a `type_id` for `Class`. @@ -42,8 +40,7 @@ Returns a `type_id` for `Class`. #### dynamic_type ```c++ -template -static auto dynamic_type(const Class& obj) -> type_id; +template static auto dynamic_type(const Class& obj) -> type_id; ``` Returns a `type_id` for an object's dynamic type. diff --git a/doc/std_rtti.adoc b/doc/std_rtti.adoc index fc08a9b..d37ff75 100644 --- a/doc/std_rtti.adoc +++ b/doc/std_rtti.adoc @@ -29,7 +29,7 @@ struct std_rtti : rtti { ### Description -`std_rtti` is an implementation of the `rtti` facet that uses standard RTTI. +`std_rtti` is an implementation of the `rtti` policy that uses standard RTTI. ### Members diff --git a/doc/tagfiles/boost-openmethod-doxygen.tag.xml b/doc/tagfiles/boost-openmethod-doxygen.tag.xml new file mode 100644 index 0000000..4c7a961 --- /dev/null +++ b/doc/tagfiles/boost-openmethod-doxygen.tag.xml @@ -0,0 +1,955 @@ + + + + boost::openmethod + boost/openmethod.adoc + boost::openmethod::vptr_type + boost::openmethod::type_id + boost::openmethod::default_registry + boost::openmethod::shared_virtual_ptr + boost::openmethod::unique_virtual_ptr + boost::openmethod::virtual_ + boost::openmethod::virtual_traits + boost::openmethod::openmethod_error + boost::openmethod::not_initialized_error + boost::openmethod::unknown_class_error + boost::openmethod::hash_search_error + boost::openmethod::call_error + boost::openmethod::not_implemented_error + boost::openmethod::ambiguous_error + boost::openmethod::final_error + boost::openmethod::static_offset_error + boost::openmethod::static_slot_error + boost::openmethod::static_stride_error + boost::openmethod::registry + boost::openmethod::release_registry + boost::openmethod::debug_registry + boost::openmethod::virtual_ptr + boost::openmethod::virtual_traits + boost::openmethod::virtual_traits + boost::openmethod::virtual_traits + boost::openmethod::use_classes + boost::openmethod::virtual_ptr + boost::openmethod::virtual_traits + boost::openmethod::virtual_traits + boost::openmethod::method + boost::openmethod::method + boost::openmethod::compiler + boost::openmethod::inplace_vptr + boost::openmethod::inplace_vptr + boost::openmethod::inplace_vptr + boost::openmethod::inplace_vptr + boost::openmethod::virtual_traits + boost::openmethod::virtual_traits + boost::openmethod::virtual_traits + boost::openmethod::final_virtual_ptr + boost::openmethod::has_policy + boost::openmethod::is_polymorphic + boost::openmethod::is_smart_ptr + boost::openmethod::same_smart_ptr + boost::openmethod::is_method + boost::openmethod::virtual_ptr + boost::openmethod::virtual_ptr + + void + boost_openmethod_vptr + boost/openmethod/boost_openmethod_vptr.adoc + + () + + + bool + operator== + boost/openmethod/operator_eq.adoc + + (const virtual_ptr<Left, Registry>& left, const virtual_ptr<Right, Registry>& right) + + + bool + operator!= + boost/openmethod/operator_not_eq.adoc + + (const virtual_ptr<Left, Registry>& left, const virtual_ptr<Right, Registry>& right) + + + compiler<Registry> + initialize + boost/openmethod/initialize.adoc + + () + + + void + finalize + boost/openmethod/finalize.adoc + + () + + + auto + make_shared_virtual + boost/openmethod/make_shared_virtual.adoc + + (T...&& args) + + + auto + make_unique_virtual + boost/openmethod/make_unique_virtual.adoc + + (T...&& args) + + + + boost::openmethod::policies + boost/openmethod/policies.adoc + boost::openmethod::policies::PolicyCategory + boost::openmethod::policies::Policy + boost::openmethod::policies::LightweightOutputStream + boost::openmethod::policies::IdsToVptr + boost::openmethod::policies::rtti + boost::openmethod::policies::deferred_static_rtti + boost::openmethod::policies::error_handler + boost::openmethod::policies::type_hash + boost::openmethod::policies::vptr + boost::openmethod::policies::indirect_vptr + boost::openmethod::policies::output + boost::openmethod::policies::trace + boost::openmethod::policies::runtime_checks + boost::openmethod::policies::n2216 + boost::openmethod::policies::std_rtti + boost::openmethod::policies::vptr_vector + boost::openmethod::policies::stderr_output + boost::openmethod::policies::fast_perfect_hash + boost::openmethod::policies::default_error_handler + boost::openmethod::policies::static_rtti + boost::openmethod::policies::throw_error_handler + boost::openmethod::policies::vptr_map + + + boost::openmethod::policies::PolicyCategory + boost/openmethod/policies/PolicyCategory.adoc + + + boost::openmethod::policies::Policy + boost/openmethod/policies/Policy.adoc + + + boost::openmethod::policies::LightweightOutputStream + boost/openmethod/policies/LightweightOutputStream.adoc + + + boost::openmethod::policies::IdsToVptr + boost/openmethod/policies/IdsToVptr.adoc + + auto + type_id_begin + boost/openmethod/policies/IdsToVptr/type_id_begin.adoc + + () + + + auto + type_id_end + boost/openmethod/policies/IdsToVptr/type_id_end.adoc + + () + + + const vptr_type& + vptr + boost/openmethod/policies/IdsToVptr/vptr.adoc + + () + + + + boost::openmethod::policies::rtti + boost/openmethod/policies/rtti.adoc + + + boost::openmethod::policies::deferred_static_rtti + boost/openmethod/policies/deferred_static_rtti.adoc + + + boost::openmethod::policies::error_handler + boost/openmethod/policies/error_handler.adoc + + + boost::openmethod::policies::type_hash + boost/openmethod/policies/type_hash.adoc + + + boost::openmethod::policies::vptr + boost/openmethod/policies/vptr.adoc + + + boost::openmethod::policies::indirect_vptr + boost/openmethod/policies/indirect_vptr.adoc + + + boost::openmethod::policies::output + boost/openmethod/policies/output.adoc + + + boost::openmethod::policies::trace + boost/openmethod/policies/trace.adoc + + + boost::openmethod::policies::runtime_checks + boost/openmethod/policies/runtime_checks.adoc + + + boost::openmethod::policies::n2216 + boost/openmethod/policies/n2216.adoc + + + boost::openmethod::policies::std_rtti + boost/openmethod/policies/std_rtti.adoc + + + boost::openmethod::policies::vptr_vector + boost/openmethod/policies/vptr_vector.adoc + + + boost::openmethod::policies::stderr_output + boost/openmethod/policies/stderr_output.adoc + + + boost::openmethod::policies::fast_perfect_hash + boost/openmethod/policies/fast_perfect_hash.adoc + + + boost::openmethod::policies::default_error_handler + boost/openmethod/policies/default_error_handler.adoc + + + boost::openmethod::policies::static_rtti + boost/openmethod/policies/static_rtti.adoc + + + boost::openmethod::policies::throw_error_handler + boost/openmethod/policies/throw_error_handler.adoc + + + boost::openmethod::policies::vptr_map + boost/openmethod/policies/vptr_map.adoc + + + boost::openmethod::aliases + boost/openmethod/aliases.adoc + boost::openmethod::aliases::final_virtual_ptr + boost::openmethod::aliases::virtual_ + boost::openmethod::aliases::virtual_ptr + boost::openmethod::aliases::make_shared_virtual + boost::openmethod::aliases::shared_virtual_ptr + boost::openmethod::aliases::make_unique_virtual + boost::openmethod::aliases::unique_virtual_ptr + + + boost::openmethod::aliases::final_virtual_ptr + boost/openmethod/aliases/final_virtual_ptr.adoc + + + boost::openmethod::aliases::virtual_ + boost/openmethod/aliases/virtual_.adoc + + + boost::openmethod::aliases::virtual_ptr + boost/openmethod/aliases/virtual_ptr.adoc + + + boost::openmethod::aliases::make_shared_virtual + boost/openmethod/aliases/make_shared_virtual.adoc + + + boost::openmethod::aliases::shared_virtual_ptr + boost/openmethod/aliases/shared_virtual_ptr.adoc + + + boost::openmethod::aliases::make_unique_virtual + boost/openmethod/aliases/make_unique_virtual.adoc + + + boost::openmethod::aliases::unique_virtual_ptr + boost/openmethod/aliases/unique_virtual_ptr.adoc + + + boost::openmethod::vptr_type + boost/openmethod/vptr_type.adoc + + + boost::openmethod::type_id + boost/openmethod/type_id.adoc + + + boost::openmethod::default_registry + boost/openmethod/default_registry.adoc + + + boost::openmethod::shared_virtual_ptr + boost/openmethod/shared_virtual_ptr.adoc + + + boost::openmethod::unique_virtual_ptr + boost/openmethod/unique_virtual_ptr.adoc + + + boost::openmethod::virtual_ + boost/openmethod/virtual_.adoc + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-0be.adoc + + + boost::openmethod::openmethod_error + boost/openmethod/openmethod_error.adoc + + + boost::openmethod::not_initialized_error + boost/openmethod/not_initialized_error.adoc + + void + write + boost/openmethod/not_initialized_error/write.adoc + + (Stream& os) + + + + boost::openmethod::unknown_class_error + boost/openmethod/unknown_class_error.adoc + + void + write + boost/openmethod/unknown_class_error/write.adoc + + (Stream& os) + + + + boost::openmethod::hash_search_error + boost/openmethod/hash_search_error.adoc + + void + write + boost/openmethod/hash_search_error/write.adoc + + (Stream& os) + + + + boost::openmethod::call_error + boost/openmethod/call_error.adoc + + void + write_aux + boost/openmethod/call_error/write_aux.adoc + + (Stream& os, const char* subtype) + + + + boost::openmethod::not_implemented_error + boost/openmethod/not_implemented_error.adoc + + void + write + boost/openmethod/not_implemented_error/write.adoc + + (Stream& os) + + + void + write_aux + boost/openmethod/call_error/write_aux.adoc + + (Stream& os, const char* subtype) + + + + boost::openmethod::ambiguous_error + boost/openmethod/ambiguous_error.adoc + + void + write + boost/openmethod/ambiguous_error/write.adoc + + (Stream& os) + + + void + write_aux + boost/openmethod/call_error/write_aux.adoc + + (Stream& os, const char* subtype) + + + + boost::openmethod::final_error + boost/openmethod/final_error.adoc + + void + write + boost/openmethod/final_error/write.adoc + + (Stream& os) + + + + boost::openmethod::static_offset_error + boost/openmethod/static_offset_error.adoc + + void + write + boost/openmethod/static_offset_error/write.adoc + + (Stream& os) + + + + boost::openmethod::static_slot_error + boost/openmethod/static_slot_error.adoc + + void + write + boost/openmethod/static_offset_error/write.adoc + + (Stream& os) + + + + boost::openmethod::static_stride_error + boost/openmethod/static_stride_error.adoc + + void + write + boost/openmethod/static_offset_error/write.adoc + + (Stream& os) + + + + boost::openmethod::registry + boost/openmethod/registry-07.adoc + + void + check_initialized + boost/openmethod/registry-07/check_initialized.adoc + + () + + + + boost::openmethod::release_registry + boost/openmethod/release_registry.adoc + + void + check_initialized + boost/openmethod/release_registry/check_initialized.adoc + + () + + + + boost::openmethod::debug_registry + boost/openmethod/debug_registry.adoc + + void + check_initialized + boost/openmethod/debug_registry/check_initialized.adoc + + () + + + + boost::openmethod::virtual_ptr + boost/openmethod/virtual_ptr-0a.adoc + + Class* + get + boost/openmethod/virtual_ptr-0a/get.adoc + + () + + + auto + operator-> + boost/openmethod/virtual_ptr-0a/operator_ptr.adoc + + () + + + element_type& + operator* + boost/openmethod/virtual_ptr-0a/operator_star.adoc + + () + + + const Class*& + pointer + boost/openmethod/virtual_ptr-0a/pointer.adoc + + () + + + decltype(auto) + cast + boost/openmethod/virtual_ptr-0a/cast.adoc + + () + + + auto + vptr + boost/openmethod/virtual_ptr-0a/vptr.adoc + + () + + + auto + final + boost/openmethod/virtual_ptr-0a/final.adoc + + (Other&& obj) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-08.adoc + + const T& + peek + boost/openmethod/virtual_traits-08/peek.adoc + + (const T& arg) + + + D& + cast + boost/openmethod/virtual_traits-08/cast.adoc + + (T& obj) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-098.adoc + + const T& + peek + boost/openmethod/virtual_traits-098/peek.adoc + + (const T& arg) + + + D&& + cast + boost/openmethod/virtual_traits-098/cast.adoc + + (T&& obj) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-071.adoc + + const T& + peek + boost/openmethod/virtual_traits-071/peek.adoc + + (T* arg) + + + auto + cast + boost/openmethod/virtual_traits-071/cast.adoc + + (T* ptr) + + + + boost::openmethod::use_classes + boost/openmethod/use_classes.adoc + + + boost::openmethod::virtual_ptr + boost/openmethod/virtual_ptr-02.adoc + + element_type* + get + boost/openmethod/virtual_ptr-02/get.adoc + + () + + + element_type* + operator-> + boost/openmethod/virtual_ptr-02/operator_ptr.adoc + + () + + + element_type& + operator* + boost/openmethod/virtual_ptr-02/operator_star.adoc + + () + + + const Class& + pointer + boost/openmethod/virtual_ptr-02/pointer.adoc + + () + + + auto + vptr + boost/openmethod/virtual_ptr-02/vptr.adoc + + () + + + auto + final + boost/openmethod/virtual_ptr-02/final.adoc + + (Other&& obj) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-096.adoc + + const virtual_ptr<Class, Registry>& + peek + boost/openmethod/virtual_traits-096/peek.adoc + + (const virtual_ptr<Class, Registry>& ptr) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-048.adoc + + const virtual_ptr<Class, Registry>& + peek + boost/openmethod/virtual_traits-048/peek.adoc + + (const virtual_ptr<Class, Registry>& ptr) + + + + boost::openmethod::method + boost/openmethod/method-0d8.adoc + + + boost::openmethod::method + boost/openmethod/method-0db.adoc + + ReturnType + operator() + boost/openmethod/method-0db/operator_call.adoc + + (...detail::remove_virtual<Parameters> args) + + + bool + has_next + boost/openmethod/method-0db/has_next.adoc + + () + + + ReturnType + fn_not_implemented + boost/openmethod/method-0db/fn_not_implemented.adoc + + (...detail::remove_virtual<Parameters> args) + + + ReturnType + fn_ambiguous + boost/openmethod/method-0db/fn_ambiguous.adoc + + (...detail::remove_virtual<Parameters> args) + + + + boost::openmethod::compiler + boost/openmethod/compiler.adoc + + void + compiler + boost/openmethod/compiler/2constructor.adoc + + () + + + auto + compile + boost/openmethod/compiler/compile.adoc + + () + + + auto + initialize + boost/openmethod/compiler/initialize.adoc + + () + + + void + install_global_tables + boost/openmethod/compiler/install_global_tables.adoc + + () + + + void + augment_classes + boost/openmethod/compiler/augment_classes.adoc + + () + + + void + collect_transitive_bases + boost/openmethod/compiler/collect_transitive_bases.adoc + + (class_* cls, class_* base) + + + void + calculate_transitive_derived + boost/openmethod/compiler/calculate_transitive_derived.adoc + + (class_& cls) + + + void + augment_methods + boost/openmethod/compiler/augment_methods.adoc + + () + + + void + assign_slots + boost/openmethod/compiler/assign_slots.adoc + + () + + + void + assign_tree_slots + boost/openmethod/compiler/assign_tree_slots.adoc + + (class_& cls, std::size_t base_slot) + + + void + assign_lattice_slots + boost/openmethod/compiler/assign_lattice_slots.adoc + + (class_& cls) + + + void + build_dispatch_tables + boost/openmethod/compiler/build_dispatch_tables.adoc + + () + + + void + build_dispatch_table + boost/openmethod/compiler/build_dispatch_table.adoc + + (method& m, std::size_t dim, std::vector<group_map>::const_iterator group, const bitvec& candidates, bool concrete) + + + void + write_global_data + boost/openmethod/compiler/write_global_data.adoc + + () + + + void + print + boost/openmethod/compiler/print.adoc + + (const method_report& report) + + + const method* + operator[] + boost/openmethod/compiler/operator_subs.adoc + + (const openmethod::method<Id, Signature, Registry>& ) + + + void + select_dominant_overriders + boost/openmethod/compiler/select_dominant_overriders.adoc + + (std::vector<overrider*>& dominants, std::size_t& pick, std::size_t& remaining) + + + bool + is_more_specific + boost/openmethod/compiler/is_more_specific.adoc + + (const overrider* a, const overrider* b) + + + bool + is_base + boost/openmethod/compiler/is_base.adoc + + (const overrider* a, const overrider* b) + + + void + accumulate + boost/openmethod/compiler/accumulate.adoc + + (const method_report& partial, report& total) + + + + boost::openmethod::inplace_vptr + boost/openmethod/inplace_vptr-0f.adoc + + + boost::openmethod::inplace_vptr + boost/openmethod/inplace_vptr-0a.adoc + + + boost::openmethod::inplace_vptr + boost/openmethod/inplace_vptr-00.adoc + + + boost::openmethod::inplace_vptr + boost/openmethod/inplace_vptr-02.adoc + + void + inplace_vptr + boost/openmethod/inplace_vptr-02/2constructor.adoc + + () + + + void + ~inplace_vptr + boost/openmethod/inplace_vptr-02/2destructor.adoc + + () + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-07a.adoc + + const Class& + peek + boost/openmethod/virtual_traits-07a/peek.adoc + + (const std::shared_ptr<Class>& arg) + + + void + check_cast + boost/openmethod/virtual_traits-07a/check_cast.adoc + + () + + + auto + cast + boost/openmethod/virtual_traits-07a/cast.adoc + + (const std::shared_ptr<Class>& obj) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-043.adoc + + const Class& + peek + boost/openmethod/virtual_traits-043/peek.adoc + + (const std::shared_ptr<Class>& arg) + + + void + check_cast + boost/openmethod/virtual_traits-043/check_cast.adoc + + () + + + auto + cast + boost/openmethod/virtual_traits-043/cast.adoc + + (const std::shared_ptr<Class>& obj) + + + + boost::openmethod::virtual_traits + boost/openmethod/virtual_traits-0bf.adoc + + const Class& + peek + boost/openmethod/virtual_traits-0bf/peek.adoc + + (const std::unique_ptr<Class>& arg) + + + auto + cast + boost/openmethod/virtual_traits-0bf/cast.adoc + + (std::unique_ptr<Class>&& ptr) + + + + boost::openmethod::final_virtual_ptr + boost/openmethod/final_virtual_ptr-04.adoc + + + boost::openmethod::has_policy + boost/openmethod/has_policy.adoc + + + boost::openmethod::is_polymorphic + boost/openmethod/is_polymorphic.adoc + + + boost::openmethod::is_smart_ptr + boost/openmethod/is_smart_ptr.adoc + + + boost::openmethod::same_smart_ptr + boost/openmethod/same_smart_ptr.adoc + + + boost::openmethod::is_method + boost/openmethod/is_method.adoc + + + boost::openmethod::virtual_ptr + boost/openmethod/virtual_ptr-0f.adoc + + + boost::openmethod::virtual_ptr + boost/openmethod/virtual_ptr-0b.adoc + + diff --git a/doc/tagfiles/boost-openmethod-macros-doxygen.tag.xml b/doc/tagfiles/boost-openmethod-macros-doxygen.tag.xml new file mode 100644 index 0000000..33f1a50 --- /dev/null +++ b/doc/tagfiles/boost-openmethod-macros-doxygen.tag.xml @@ -0,0 +1,7 @@ + + + + boost::openmethod::BOOST_OPENMETHOD + boost/openmethod/BOOST_OPENMETHOD.adoc + + diff --git a/doc/tagfiles/cppreference-doxygen-web.tag.xml b/doc/tagfiles/cppreference-doxygen-web.tag.xml new file mode 100644 index 0000000..61e3430 --- /dev/null +++ b/doc/tagfiles/cppreference-doxygen-web.tag.xml @@ -0,0 +1,68914 @@ + + + + algorithm + cpp/header/algorithm + std + + + any + cpp/header/any + std + + + array + cpp/header/array + std + + + atomic + cpp/header/atomic + std + + + bit + cpp/header/bit + std + + + bitset + cpp/header/bitset + std + + + cassert + cpp/header/cassert + std + + + ccomplex + cpp/header/ccomplex + std + + + cctype + cpp/header/cctype + std + + + cerrno + cpp/header/cerrno + std + + + cfenv + cpp/header/cfenv + std + + + cfloat + cpp/header/cfloat + std + + + charconv + cpp/header/charconv + std + + + chrono + cpp/header/chrono + std + + + cinttypes + cpp/header/cinttypes + std + + + ciso646 + cpp/header/ciso646 + std + + + climits + cpp/header/climits + std + + + clocale + cpp/header/clocale + std + + + cmath + cpp/header/cmath + std + + + codecvt + cpp/header/codecvt + std + + + compare + cpp/header/compare + std + + + complex + cpp/header/complex + std + + + concepts + cpp/header/concepts + std + + + condition_variable + cpp/header/condition_variable + std + + + contract + cpp/header/contract + std + + + csetjmp + cpp/header/csetjmp + std + + + csignal + cpp/header/csignal + std + + + cstdalign + cpp/header/cstdalign + std + + + cstdarg + cpp/header/cstdarg + std + + + cstdbool + cpp/header/cstdbool + std + + + cstddef + cpp/header/cstddef + std + + + cstdint + cpp/header/cstdint + std + + + cstdio + cpp/header/cstdio + std + + + cstdlib + cpp/header/cstdlib + std + + + cstring + cpp/header/cstring + std + + + ctgmath + cpp/header/ctgmath + std + + + ctime + cpp/header/ctime + std + + + cuchar + cpp/header/cuchar + std + + + cwchar + cpp/header/cwchar + std + + + cwctype + cpp/header/cwctype + std + + + deque + cpp/header/deque + std + + + exception + cpp/header/exception + std + + + execution + cpp/header/execution + std + + + filesystem + cpp/header/filesystem + std + + + forward_list + cpp/header/forward_list + std + + + fstream + cpp/header/fstream + std + + + functional + cpp/header/functional + std + + + future + cpp/header/future + std + + + initializer_list + cpp/header/initializer_list + std + + + iomanip + cpp/header/iomanip + std + + + ios + cpp/header/ios + std + + + iosfwd + cpp/header/iosfwd + std + + + iostream + cpp/header/iostream + std + + + istream + cpp/header/istream + std + + + iterator + cpp/header/iterator + std + + + limits + cpp/header/limits + std + + + list + cpp/header/list + std + + + locale + cpp/header/locale + std + + + map + cpp/header/map + std + + + memory + cpp/header/memory + std + + + memory_resource + cpp/header/memory_resource + std + + + mutex + cpp/header/mutex + std + + + new + cpp/header/new + std + + + numeric + cpp/header/numeric + std + + + optional + cpp/header/optional + std + + + ostream + cpp/header/ostream + std + + + queue + cpp/header/queue + std + + + random + cpp/header/random + std + + + ranges + cpp/header/ranges + std + + + ratio + cpp/header/ratio + std + + + regex + cpp/header/regex + std + + + scoped_allocator + cpp/header/scoped_allocator + std + + + set + cpp/header/set + std + + + shared_mutex + cpp/header/shared_mutex + std + + + span + cpp/header/span + std + + + sstream + cpp/header/sstream + std + + + stack + cpp/header/stack + std + + + stdexcept + cpp/header/stdexcept + std + + + streambuf + cpp/header/streambuf + std + + + string + cpp/header/string + std + + + string_view + cpp/header/string_view + std + + + strstream + cpp/header/strstream + std + + + syncstream + cpp/header/syncstream + std + + + system_error + cpp/header/system_error + std + + + thread + cpp/header/thread + std + + + tuple + cpp/header/tuple + std + + + type_traits + cpp/header/type_traits + std + + + typeindex + cpp/header/typeindex + std + + + typeinfo + cpp/header/typeinfo + std + + + unordered_map + cpp/header/unordered_map + std + + + unordered_set + cpp/header/unordered_set + std + + + utility + cpp/header/utility + std + + + valarray + cpp/header/valarray + std + + + variant + cpp/header/variant + std + + + vector + cpp/header/vector + std + + + version + cpp/header/version + std + + + std + + std::FILE + + T + _Exit + cpp/utility/program/_Exit + + (T... args) + + + T + abort + cpp/utility/program/abort + + (T... args) + + + T + abs(float) + cpp/numeric/math/fabs + + (T... args) + + + T + abs(int) + cpp/numeric/math/abs + + (T... args) + + + T + accumulate + cpp/algorithm/accumulate + + (T... args) + + + T + acos + cpp/numeric/math/acos + + (T... args) + + + T + acosh + cpp/numeric/math/acosh + + (T... args) + + std::add_const + std::add_const_t + std::add_cv + std::add_cv_t + std::add_lvalue_reference + std::add_lvalue_reference_t + std::add_pointer + std::add_pointer_t + std::add_rvalue_reference + std::add_rvalue_reference_t + std::add_volatile + std::add_volatile_t + + T + addressof + cpp/memory/addressof + + (T... args) + + + T + adjacent_difference + cpp/algorithm/adjacent_difference + + (T... args) + + + T + adjacent_find + cpp/algorithm/adjacent_find + + (T... args) + + std::adopt_lock_t + + T + advance + cpp/iterator/advance + + (T... args) + + + T + align + cpp/memory/align + + (T... args) + + std::align_val_t + + T + aligned_alloc + cpp/memory/c/aligned_alloc + + (T... args) + + std::aligned_storage + std::aligned_storage_t + std::aligned_union + std::aligned_union_t + std::alignment_of + + T + alignment_of_v + cpp/types/alignment_of + + + + + T + all_of + cpp/algorithm/all_any_none_of + + (T... args) + + + T + allocate_shared + cpp/memory/shared_ptr/allocate_shared + + (T... args) + + + T + allocate_shared_for_overwrite + cpp/memory/shared_ptr/allocate_shared + + (T... args) + + std::allocator + std::allocator_arg_t + std::allocator_traits + std::any + + T + any_cast + cpp/utility/any/any_cast + + (T... args) + + + T + any_of + cpp/algorithm/all_any_none_of + + (T... args) + + + T + apply + cpp/utility/apply + + (T... args) + + std::array + + T + as_const + cpp/utility/as_const + + (T... args) + + + T + asctime + cpp/chrono/c/asctime + + (T... args) + + + T + asin + cpp/numeric/math/asin + + (T... args) + + + T + asinh + cpp/numeric/math/asinh + + (T... args) + + + T + assoc_laguerre + cpp/numeric/special_functions/assoc_laguerre + + (T... args) + + + T + assoc_laguerref + cpp/numeric/special_functions/assoc_laguerre + + (T... args) + + + T + assoc_laguerrel + cpp/numeric/special_functions/assoc_laguerre + + (T... args) + + + T + assoc_legendre + cpp/numeric/special_functions/assoc_legendre + + (T... args) + + + T + assoc_legendref + cpp/numeric/special_functions/assoc_legendre + + (T... args) + + + T + assoc_legendrel + cpp/numeric/special_functions/assoc_legendre + + (T... args) + + + T + assume_aligned + cpp/memory/assume_aligned + + (T... args) + + + T + async + cpp/thread/async + + (T... args) + + + T + at_quick_exit + cpp/utility/program/at_quick_exit + + (T... args) + + + T + atan + cpp/numeric/math/atan + + (T... args) + + + T + atan2 + cpp/numeric/math/atan2 + + (T... args) + + + T + atanh + cpp/numeric/math/atanh + + (T... args) + + + T + atexit + cpp/utility/program/atexit + + (T... args) + + + T + atof + cpp/string/byte/atof + + (T... args) + + + T + atoi + cpp/string/byte/atoi + + (T... args) + + + T + atol + cpp/string/byte/atoi + + (T... args) + + + T + atoll + cpp/string/byte/atoi + + (T... args) + + std::atomic + std::atomic_bool + std::atomic_char + std::atomic_char16_t + std::atomic_char32_t + std::atomic_char8_t + + T + atomic_compare_exchange_strong + cpp/atomic/atomic_compare_exchange + + (T... args) + + + T + atomic_compare_exchange_strong_explicit + cpp/atomic/atomic_compare_exchange + + (T... args) + + + T + atomic_compare_exchange_weak + cpp/atomic/atomic_compare_exchange + + (T... args) + + + T + atomic_compare_exchange_weak_explicit + cpp/atomic/atomic_compare_exchange + + (T... args) + + + T + atomic_exchange + cpp/atomic/atomic_exchange + + (T... args) + + + T + atomic_exchange_explicit + cpp/atomic/atomic_exchange + + (T... args) + + + T + atomic_fetch_add + cpp/atomic/atomic_fetch_add + + (T... args) + + + T + atomic_fetch_add_explicit + cpp/atomic/atomic_fetch_add + + (T... args) + + + T + atomic_fetch_and + cpp/atomic/atomic_fetch_and + + (T... args) + + + T + atomic_fetch_and_explicit + cpp/atomic/atomic_fetch_and + + (T... args) + + + T + atomic_fetch_or + cpp/atomic/atomic_fetch_or + + (T... args) + + + T + atomic_fetch_or_explicit + cpp/atomic/atomic_fetch_or + + (T... args) + + + T + atomic_fetch_sub + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + atomic_fetch_sub_explicit + cpp/atomic/atomic_fetch_sub + + (T... args) + + + T + atomic_fetch_xor + cpp/atomic/atomic_fetch_xor + + (T... args) + + + T + atomic_fetch_xor_explicit + cpp/atomic/atomic_fetch_xor + + (T... args) + + std::atomic_flag + + T + atomic_flag_clear + cpp/atomic/atomic_flag_clear + + (T... args) + + + T + atomic_flag_clear_explicit + cpp/atomic/atomic_flag_clear + + (T... args) + + + T + atomic_flag_notify_all + cpp/atomic/atomic_flag_notify_all + + (T... args) + + + T + atomic_flag_notify_one + cpp/atomic/atomic_flag_notify_one + + (T... args) + + + T + atomic_flag_test + cpp/atomic/atomic_flag_test + + (T... args) + + + T + atomic_flag_test_and_set + cpp/atomic/atomic_flag_test_and_set + + (T... args) + + + T + atomic_flag_test_and_set_explicit + cpp/atomic/atomic_flag_test_and_set + + (T... args) + + + T + atomic_flag_test_explicit + cpp/atomic/atomic_flag_test + + (T... args) + + + T + atomic_flag_wait + cpp/atomic/atomic_flag_wait + + (T... args) + + + T + atomic_flag_wait_explicit + cpp/atomic/atomic_flag_wait + + (T... args) + + + T + atomic_init + cpp/atomic/atomic_init + + (T... args) + + std::atomic_int + std::atomic_int16_t + std::atomic_int32_t + std::atomic_int64_t + std::atomic_int8_t + std::atomic_int_fast16_t + std::atomic_int_fast32_t + std::atomic_int_fast64_t + std::atomic_int_fast8_t + std::atomic_int_least16_t + std::atomic_int_least32_t + std::atomic_int_least64_t + std::atomic_int_least8_t + std::atomic_intmax_t + std::atomic_intptr_t + + T + atomic_is_lock_free + cpp/atomic/atomic_is_lock_free + + (T... args) + + std::atomic_llong + + T + atomic_load + cpp/atomic/atomic_load + + (T... args) + + + T + atomic_load_explicit + cpp/atomic/atomic_load + + (T... args) + + std::atomic_long + + T + atomic_notify_all + cpp/atomic/atomic_notify_all + + (T... args) + + + T + atomic_notify_one + cpp/atomic/atomic_notify_one + + (T... args) + + std::atomic_ptrdiff_t + std::atomic_ref + std::atomic_schar + std::atomic_short + + T + atomic_signal_fence + cpp/atomic/atomic_signal_fence + + (T... args) + + std::atomic_signed_lock_free + std::atomic_size_t + + T + atomic_store + cpp/atomic/atomic_store + + (T... args) + + + T + atomic_store_explicit + cpp/atomic/atomic_store + + (T... args) + + + T + atomic_thread_fence + cpp/atomic/atomic_thread_fence + + (T... args) + + std::atomic_uchar + std::atomic_uint + std::atomic_uint16_t + std::atomic_uint32_t + std::atomic_uint64_t + std::atomic_uint8_t + std::atomic_uint_fast16_t + std::atomic_uint_fast32_t + std::atomic_uint_fast64_t + std::atomic_uint_fast8_t + std::atomic_uint_least16_t + std::atomic_uint_least32_t + std::atomic_uint_least64_t + std::atomic_uint_least8_t + std::atomic_uintmax_t + std::atomic_uintptr_t + std::atomic_ullong + std::atomic_ulong + std::atomic_unsigned_lock_free + std::atomic_ushort + + T + atomic_wait + cpp/atomic/atomic_wait + + (T... args) + + + T + atomic_wait_explicit + cpp/atomic/atomic_wait + + (T... args) + + std::atomic_wchar_t + std::atto + std::auto_ptr + std::back_insert_iterator + + T + back_inserter + cpp/iterator/back_inserter + + (T... args) + + std::bad_alloc + std::bad_any_cast + std::bad_array_new_length + std::bad_cast + std::bad_exception + std::bad_function_call + std::bad_optional_access + std::bad_typeid + std::bad_variant_access + std::bad_weak_ptr + std::barrier + std::basic_common_reference + std::basic_filebuf + std::basic_format_arg + std::basic_format_args + std::basic_format_context + std::basic_format_parse_context + std::basic_fstream + std::basic_ifstream + std::basic_ios + std::basic_iostream + std::basic_istream + std::basic_istringstream + std::basic_ofstream + std::basic_ostream + std::basic_ostringstream + std::basic_osyncstream + std::basic_regex + std::basic_streambuf + std::basic_string + std::basic_string_view + std::basic_stringbuf + std::basic_stringstream + std::basic_syncbuf + + T + begin + cpp/iterator/begin + + (T... args) + + std::bernoulli_distribution + + T + beta + cpp/numeric/special_functions/beta + + (T... args) + + + T + betaf + cpp/numeric/special_functions/beta + + (T... args) + + + T + betal + cpp/numeric/special_functions/beta + + (T... args) + + std::bidirectional_iterator_tag + std::binary_function + std::binary_negate + + T + binary_search + cpp/algorithm/binary_search + + (T... args) + + std::binary_semaphore + + T + bind + cpp/utility/functional/bind + + (T... args) + + + T + bind1st + cpp/utility/functional/bind12 + + (T... args) + + + T + bind2nd + cpp/utility/functional/bind12 + + (T... args) + + + T + bind_front + cpp/utility/functional/bind_front + + (T... args) + + std::binder1st + std::binder2nd + std::binomial_distribution + std::bit_and + + T + bit_cast + cpp/numeric/bit_cast + + (T... args) + + + T + bit_ceil + cpp/numeric/bit_ceil + + (T... args) + + + T + bit_floor + cpp/numeric/bit_floor + + (T... args) + + std::bit_not + std::bit_or + + T + bit_width + cpp/numeric/bit_width + + (T... args) + + std::bit_xor + std::bitset + std::bool_constant + + T + boolalpha + cpp/io/manip/boolalpha + + (T... args) + + std::boyer_moore_horspool_searcher + std::boyer_moore_searcher + + T + bsearch + cpp/algorithm/bsearch + + (T... args) + + + T + btowc + cpp/string/multibyte/btowc + + (T... args) + + std::byte + + T + c16rtomb + cpp/string/multibyte/c16rtomb + + (T... args) + + + T + c32rtomb + cpp/string/multibyte/c32rtomb + + (T... args) + + + T + c8rtomb + cpp/string/multibyte/c8rtomb + + (T... args) + + + T + call_once + cpp/thread/call_once + + (T... args) + + + T + calloc + cpp/memory/c/calloc + + (T... args) + + std::cauchy_distribution + + T + cbegin + cpp/iterator/begin + + (T... args) + + + T + cbrt + cpp/numeric/math/cbrt + + (T... args) + + + T + ceil + cpp/numeric/math/ceil + + (T... args) + + + T + cend + cpp/iterator/end + + (T... args) + + std::centi + std::cerr + std::char_traits + std::chars_format + std::chi_squared_distribution + std::chrono + std::cin + + T + clamp + cpp/algorithm/clamp + + (T... args) + + + T + clearerr + cpp/io/c/clearerr + + (T... args) + + + T + clock + cpp/chrono/c/clock + + (T... args) + + std::clock_t + std::clog + std::cmatch + std::codecvt + std::codecvt_base + std::codecvt_byname + std::codecvt_utf16 + std::codecvt_utf8 + std::codecvt_utf8_utf16 + std::collate + std::collate_byname + std::common_comparison_category + std::common_comparison_category_t + std::common_reference + std::common_reference_t + std::common_type + std::common_type_t + + T + comp_ellint_1 + cpp/numeric/special_functions/comp_ellint_1 + + (T... args) + + + T + comp_ellint_1f + cpp/numeric/special_functions/comp_ellint_1 + + (T... args) + + + T + comp_ellint_1l + cpp/numeric/special_functions/comp_ellint_1 + + (T... args) + + + T + comp_ellint_2 + cpp/numeric/special_functions/comp_ellint_2 + + (T... args) + + + T + comp_ellint_2f + cpp/numeric/special_functions/comp_ellint_2 + + (T... args) + + + T + comp_ellint_2l + cpp/numeric/special_functions/comp_ellint_2 + + (T... args) + + + T + comp_ellint_3 + cpp/numeric/special_functions/comp_ellint_3 + + (T... args) + + + T + comp_ellint_3f + cpp/numeric/special_functions/comp_ellint_3 + + (T... args) + + + T + comp_ellint_3l + cpp/numeric/special_functions/comp_ellint_3 + + (T... args) + + std::complex + std::condition_variable + std::condition_variable_any + std::conditional + std::conditional_t + std::conjunction + + T + conjunction_v + cpp/types/conjunction + + + + std::const_mem_fun1_ref_t + std::const_mem_fun1_t + std::const_mem_fun_ref_t + std::const_mem_fun_t + + T + const_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + construct_at + cpp/memory/construct_at + + (T... args) + + + T + copy + cpp/algorithm/copy + + (T... args) + + + T + copy_backward + cpp/algorithm/copy_backward + + (T... args) + + + T + copy_if + cpp/algorithm/copy + + (T... args) + + + T + copy_n + cpp/algorithm/copy_n + + (T... args) + + + T + copysign + cpp/numeric/math/copysign + + (T... args) + + std::coroutine_handle + std::coroutine_traits + + T + cos + cpp/numeric/math/cos + + (T... args) + + + T + cosh + cpp/numeric/math/cosh + + (T... args) + + + T + count + cpp/algorithm/count + + (T... args) + + + T + count_if + cpp/algorithm/count + + (T... args) + + std::counting_semaphore + + T + countl_one + cpp/numeric/countl_one + + (T... args) + + + T + countl_zero + cpp/numeric/countl_zero + + (T... args) + + + T + countr_one + cpp/numeric/countr_one + + (T... args) + + + T + countr_zero + cpp/numeric/countr_zero + + (T... args) + + std::cout + + T + crbegin + cpp/iterator/rbegin + + (T... args) + + + T + cref + cpp/utility/functional/ref + + (T... args) + + std::cregex_iterator + std::cregex_token_iterator + + T + crend + cpp/iterator/rend + + (T... args) + + std::csub_match + + T + ctime + cpp/chrono/c/ctime + + (T... args) + + std::ctype + std::ctype_base + std::ctype_byname + + T + current_exception + cpp/error/current_exception + + (T... args) + + + T + cyl_bessel_i + cpp/numeric/special_functions/cyl_bessel_i + + (T... args) + + + T + cyl_bessel_if + cpp/numeric/special_functions/cyl_bessel_i + + (T... args) + + + T + cyl_bessel_il + cpp/numeric/special_functions/cyl_bessel_i + + (T... args) + + + T + cyl_bessel_j + cpp/numeric/special_functions/cyl_bessel_j + + (T... args) + + + T + cyl_bessel_jf + cpp/numeric/special_functions/cyl_bessel_j + + (T... args) + + + T + cyl_bessel_jl + cpp/numeric/special_functions/cyl_bessel_j + + (T... args) + + + T + cyl_bessel_k + cpp/numeric/special_functions/cyl_bessel_k + + (T... args) + + + T + cyl_bessel_kf + cpp/numeric/special_functions/cyl_bessel_k + + (T... args) + + + T + cyl_bessel_kl + cpp/numeric/special_functions/cyl_bessel_k + + (T... args) + + + T + cyl_neumann + cpp/numeric/special_functions/cyl_neumann + + (T... args) + + + T + cyl_neumannf + cpp/numeric/special_functions/cyl_neumann + + (T... args) + + + T + cyl_neumannl + cpp/numeric/special_functions/cyl_neumann + + (T... args) + + + T + data + cpp/iterator/data + + (T... args) + + + T + dec + cpp/io/manip/hex + + (T... args) + + std::deca + std::decay + std::decay_t + std::deci + + T + declare_no_pointers + cpp/memory/gc/declare_no_pointers + + (T... args) + + + T + declare_reachable + cpp/memory/gc/declare_reachable + + (T... args) + + + T + declval + cpp/utility/declval + + (T... args) + + std::default_delete + std::default_random_engine + std::default_searcher + + T + defaultfloat + cpp/io/manip/fixed + + (T... args) + + std::defer_lock_t + std::deque + + T + destroy + cpp/memory/destroy + + (T... args) + + + T + destroy_at + cpp/memory/destroy_at + + (T... args) + + + T + destroy_n + cpp/memory/destroy_n + + (T... args) + + + T + difftime + cpp/chrono/c/difftime + + (T... args) + + std::discard_block_engine + std::discrete_distribution + std::disjunction + + T + disjunction_v + cpp/types/disjunction + + + + + T + distance + cpp/iterator/distance + + (T... args) + + + T + div + cpp/numeric/math/div + + (T... args) + + std::div_t + std::divides + std::domain_error + + T + dynamic_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + ellint_1 + cpp/numeric/special_functions/ellint_1 + + (T... args) + + + T + ellint_1f + cpp/numeric/special_functions/ellint_1 + + (T... args) + + + T + ellint_1l + cpp/numeric/special_functions/ellint_1 + + (T... args) + + + T + ellint_2 + cpp/numeric/special_functions/ellint_2 + + (T... args) + + + T + ellint_2f + cpp/numeric/special_functions/ellint_2 + + (T... args) + + + T + ellint_2l + cpp/numeric/special_functions/ellint_2 + + (T... args) + + + T + ellint_3 + cpp/numeric/special_functions/ellint_3 + + (T... args) + + + T + ellint_3f + cpp/numeric/special_functions/ellint_3 + + (T... args) + + + T + ellint_3l + cpp/numeric/special_functions/ellint_3 + + (T... args) + + + T + emit_on_flush + cpp/io/manip/emit_on_flush + + (T... args) + + + T + empty + cpp/iterator/empty + + (T... args) + + std::enable_if + std::enable_if_t + std::enable_shared_from_this + + T + end + cpp/iterator/end + + (T... args) + + + T + endl + cpp/io/manip/endl + + (T... args) + + + T + ends + cpp/io/manip/ends + + (T... args) + + + T + equal + cpp/algorithm/equal + + (T... args) + + + T + equal_range + cpp/algorithm/equal_range + + (T... args) + + std::equal_to + + T + erf + cpp/numeric/math/erf + + (T... args) + + + T + erfc + cpp/numeric/math/erfc + + (T... args) + + std::errc + std::error_category + std::error_code + std::error_condition + std::exa + std::exception + std::exception_ptr + + T + exchange + cpp/utility/exchange + + (T... args) + + + T + exclusive_scan + cpp/algorithm/exclusive_scan + + (T... args) + + std::execution + + T + exit + cpp/utility/program/exit + + (T... args) + + + T + exp + cpp/numeric/math/exp + + (T... args) + + + T + exp2 + cpp/numeric/math/exp2 + + (T... args) + + std::experimental + + T + expint + cpp/numeric/special_functions/expint + + (T... args) + + + T + expintf + cpp/numeric/special_functions/expint + + (T... args) + + + T + expintl + cpp/numeric/special_functions/expint + + (T... args) + + + T + expm1 + cpp/numeric/math/expm1 + + (T... args) + + std::exponential_distribution + std::extent + + T + extent_v + cpp/types/extent + + + + std::extreme_value_distribution + + T + fabs + cpp/numeric/math/fabs + + (T... args) + + std::false_type + + T + fclose + cpp/io/c/fclose + + (T... args) + + + T + fdim + cpp/numeric/math/fdim + + (T... args) + + + T + feclearexcept + cpp/numeric/fenv/feclearexcept + + (T... args) + + + T + fegetenv + cpp/numeric/fenv/feenv + + (T... args) + + + T + fegetexceptflag + cpp/numeric/fenv/feexceptflag + + (T... args) + + + T + fegetround + cpp/numeric/fenv/feround + + (T... args) + + + T + feholdexcept + cpp/numeric/fenv/feholdexcept + + (T... args) + + std::femto + + T + feof + cpp/io/c/feof + + (T... args) + + + T + feraiseexcept + cpp/numeric/fenv/feraiseexcept + + (T... args) + + + T + ferror + cpp/io/c/ferror + + (T... args) + + + T + fesetenv + cpp/numeric/fenv/feenv + + (T... args) + + + T + fesetexceptflag + cpp/numeric/fenv/feexceptflag + + (T... args) + + + T + fesetround + cpp/numeric/fenv/feround + + (T... args) + + + T + fetestexcept + cpp/numeric/fenv/fetestexcept + + (T... args) + + + T + feupdateenv + cpp/numeric/fenv/feupdateenv + + (T... args) + + + T + fflush + cpp/io/c/fflush + + (T... args) + + + T + fgetc + cpp/io/c/fgetc + + (T... args) + + + T + fgetpos + cpp/io/c/fgetpos + + (T... args) + + + T + fgets + cpp/io/c/fgets + + (T... args) + + + T + fgetwc + cpp/io/c/fgetwc + + (T... args) + + + T + fgetws + cpp/io/c/fgetws + + (T... args) + + std::filebuf + std::filesystem + + T + fill + cpp/algorithm/fill + + (T... args) + + + T + fill_n + cpp/algorithm/fill_n + + (T... args) + + + T + find + cpp/algorithm/find + + (T... args) + + + T + find_end + cpp/algorithm/find_end + + (T... args) + + + T + find_first_of + cpp/algorithm/find_first_of + + (T... args) + + + T + find_if + cpp/algorithm/find + + (T... args) + + + T + find_if_not + cpp/algorithm/find + + (T... args) + + std::fisher_f_distribution + + T + fixed + cpp/io/manip/fixed + + (T... args) + + + T + floor + cpp/numeric/math/floor + + (T... args) + + + T + flush + cpp/io/manip/flush + + (T... args) + + + T + flush_emit + cpp/io/manip/flush_emit + + (T... args) + + + T + fma + cpp/numeric/math/fma + + (T... args) + + + T + fmax + cpp/numeric/math/fmax + + (T... args) + + + T + fmin + cpp/numeric/math/fmin + + (T... args) + + + T + fmod + cpp/numeric/math/fmod + + (T... args) + + + T + fopen + cpp/io/c/fopen + + (T... args) + + + T + for_each + cpp/algorithm/for_each + + (T... args) + + + T + for_each_n + cpp/algorithm/for_each_n + + (T... args) + + + T + format + cpp/utility/format/format + + (T... args) + + std::format_args + std::format_context + std::format_error + std::format_parse_context + + T + format_to + cpp/utility/format/format_to + + (T... args) + + + T + format_to_n + cpp/utility/format/format_to_n + + (T... args) + + std::format_to_n_result + + T + formatted_size + cpp/utility/format/formatted_size + + (T... args) + + std::formatter + + T + forward + cpp/utility/forward + + (T... args) + + + T + forward_as_tuple + cpp/utility/tuple/forward_as_tuple + + (T... args) + + std::forward_iterator_tag + std::forward_list + + T + fpclassify + cpp/numeric/math/fpclassify + + (T... args) + + std::fpos + std::fpos_t + + T + fprintf + cpp/io/c/fprintf + + (T... args) + + + T + fputc + cpp/io/c/fputc + + (T... args) + + + T + fputs + cpp/io/c/fputs + + (T... args) + + + T + fputwc + cpp/io/c/fputwc + + (T... args) + + + T + fputws + cpp/io/c/fputws + + (T... args) + + + T + fread + cpp/io/c/fread + + (T... args) + + + T + free + cpp/memory/c/free + + (T... args) + + + T + freopen + cpp/io/c/freopen + + (T... args) + + + T + frexp + cpp/numeric/math/frexp + + (T... args) + + + T + from_chars + cpp/utility/from_chars + + (T... args) + + std::from_chars_result + std::front_insert_iterator + + T + front_inserter + cpp/iterator/front_inserter + + (T... args) + + + T + fscanf + cpp/io/c/fscanf + + (T... args) + + + T + fseek + cpp/io/c/fseek + + (T... args) + + + T + fsetpos + cpp/io/c/fsetpos + + (T... args) + + std::fstream + + T + ftell + cpp/io/c/ftell + + (T... args) + + std::function + std::future + + T + future_category + cpp/thread/future_category + + (T... args) + + std::future_errc + std::future_error + + T + fwide + cpp/io/c/fwide + + (T... args) + + + T + fwprintf + cpp/io/c/fwprintf + + (T... args) + + + T + fwrite + cpp/io/c/fwrite + + (T... args) + + + T + fwscanf + cpp/io/c/fwscanf + + (T... args) + + std::gamma_distribution + + T + gcd + cpp/numeric/gcd + + (T... args) + + + T + generate + cpp/algorithm/generate + + (T... args) + + + T + generate_canonical + cpp/numeric/random/generate_canonical + + (T... args) + + + T + generate_n + cpp/algorithm/generate_n + + (T... args) + + + T + generic_category + cpp/error/generic_category + + (T... args) + + std::geometric_distribution + + T + get_if + cpp/utility/variant/get_if + + (T... args) + + + T + get_money + cpp/io/manip/get_money + + (T... args) + + + T + get_new_handler + cpp/memory/new/get_new_handler + + (T... args) + + + T + get_pointer_safety + cpp/memory/gc/get_pointer_safety + + (T... args) + + + T + get_temporary_buffer + cpp/memory/get_temporary_buffer + + (T... args) + + + T + get_terminate + cpp/error/get_terminate + + (T... args) + + + T + get_time + cpp/io/manip/get_time + + (T... args) + + + T + get_unexpected + cpp/error/get_unexpected + + (T... args) + + + T + getc + cpp/io/c/fgetc + + (T... args) + + + T + getchar + cpp/io/c/getchar + + (T... args) + + + T + getenv + cpp/utility/program/getenv + + (T... args) + + + T + getline + cpp/string/basic_string/getline + + (T... args) + + + T + gets + cpp/io/c/gets + + (T... args) + + + T + getwc + cpp/io/c/fgetwc + + (T... args) + + + T + getwchar + cpp/io/c/getwchar + + (T... args) + + std::giga + + T + gmtime + cpp/chrono/c/gmtime + + (T... args) + + std::greater + std::greater_equal + std::gslice + std::gslice_array + + T + has_policy + cpp/locale/has_policy + + (T... args) + + + T + has_single_bit + cpp/numeric/has_single_bit + + (T... args) + + std::has_unique_object_representations + + T + has_unique_object_representations_v + cpp/types/has_unique_object_representations + + + + std::has_virtual_destructor + + T + has_virtual_destructor_v + cpp/types/has_virtual_destructor + + + + std::hash + std::hecto + + T + hermite + cpp/numeric/special_functions/hermite + + (T... args) + + + T + hermitef + cpp/numeric/special_functions/hermite + + (T... args) + + + T + hermitel + cpp/numeric/special_functions/hermite + + (T... args) + + + T + hex + cpp/io/manip/hex + + (T... args) + + + T + hexfloat + cpp/io/manip/fixed + + (T... args) + + + T + holds_alternative + cpp/utility/variant/holds_alternative + + (T... args) + + + T + hypot + cpp/numeric/math/hypot + + (T... args) + + std::identity + std::ifstream + + T + ilogb + cpp/numeric/math/ilogb + + (T... args) + + + T + imaxabs + cpp/numeric/math/abs + + (T... args) + + + T + imaxdiv + cpp/numeric/math/div + + (T... args) + + std::imaxdiv_t + + T + in_place + cpp/utility/in_place + + + + + T + in_place_index + cpp/utility/in_place + + + + std::in_place_index_t + std::in_place_t + + T + in_place_type + cpp/utility/in_place + + + + std::in_place_type_t + + T + includes + cpp/algorithm/includes + + (T... args) + + + T + inclusive_scan + cpp/algorithm/inclusive_scan + + (T... args) + + std::incrementable_traits + std::independent_bits_engine + std::index_sequence + std::index_sequence_for + std::indirect_array + std::initializer_list + + T + inner_product + cpp/algorithm/inner_product + + (T... args) + + + T + inplace_merge + cpp/algorithm/inplace_merge + + (T... args) + + std::input_iterator_tag + std::insert_iterator + + T + inserter + cpp/iterator/inserter + + (T... args) + + std::int16_t + std::int32_t + std::int64_t + std::int8_t + std::int_fast16_t + std::int_fast32_t + std::int_fast64_t + std::int_fast8_t + std::int_least16_t + std::int_least32_t + std::int_least64_t + std::int_least8_t + std::integer_sequence + std::integral_constant + + T + internal + cpp/io/manip/left + + (T... args) + + std::intmax_t + std::intptr_t + std::invalid_argument + + T + invoke + cpp/utility/functional/invoke + + (T... args) + + std::invoke_result + std::invoke_result_t + std::io_errc + std::ios + std::ios_base + std::iostream + + T + iostream_category + cpp/io/iostream_category + + (T... args) + + + T + iota + cpp/algorithm/iota + + (T... args) + + std::is_abstract + + T + is_abstract_v + cpp/types/is_abstract + + + + std::is_aggregate + + T + is_aggregate_v + cpp/types/is_aggregate + + + + std::is_arithmetic + + T + is_arithmetic_v + cpp/types/is_arithmetic + + + + std::is_array + + T + is_array_v + cpp/types/is_array + + + + std::is_assignable + + T + is_assignable_v + cpp/types/is_assignable + + + + std::is_base_of + + T + is_base_of_v + cpp/types/is_base_of + + + + std::is_bind_expression + + T + is_bind_expression_v + cpp/utility/functional/is_bind_expression + + + + std::is_bounded_array + + T + is_bounded_array_v + cpp/types/is_bounded_array + + + + std::is_class + + T + is_class_v + cpp/types/is_class + + + + std::is_compound + + T + is_compound_v + cpp/types/is_compound + + + + std::is_const + + T + is_const_v + cpp/types/is_const + + + + + T + is_constant_evaluated + cpp/types/is_constant_evaluated + + (T... args) + + std::is_constructible + + T + is_constructible_v + cpp/types/is_constructible + + + + std::is_convertible + + T + is_convertible_v + cpp/types/is_convertible + + + + std::is_copy_assignable + + T + is_copy_assignable_v + cpp/types/is_copy_assignable + + + + std::is_copy_constructible + + T + is_copy_constructible_v + cpp/types/is_copy_constructible + + + + std::is_default_constructible + + T + is_default_constructible_v + cpp/types/is_default_constructible + + + + std::is_destructible + + T + is_destructible_v + cpp/types/is_destructible + + + + std::is_empty + + T + is_empty_v + cpp/types/is_empty + + + + std::is_enum + + T + is_enum_v + cpp/types/is_enum + + + + + T + is_eq + cpp/utility/compare/named_comparison_functions + + (T... args) + + std::is_error_code_enum + std::is_error_code_enum_v + std::is_error_condition_enum + + T + is_error_condition_enum_v + cpp/error/error_condition/is_error_condition_enum + + + + std::is_execution_policy + + T + is_execution_policy_v + cpp/algorithm/is_execution_policy + + + + std::is_final + + T + is_final_v + cpp/types/is_final + + + + std::is_floating_point + + T + is_floating_point_v + cpp/types/is_floating_point + + + + std::is_function + + T + is_function_v + cpp/types/is_function + + + + std::is_fundamental + + T + is_fundamental_v + cpp/types/is_fundamental + + + + + T + is_gt + cpp/utility/compare/named_comparison_functions + + (T... args) + + + T + is_gteq + cpp/utility/compare/named_comparison_functions + + (T... args) + + + T + is_heap + cpp/algorithm/is_heap + + (T... args) + + + T + is_heap_until + cpp/algorithm/is_heap_until + + (T... args) + + std::is_integral + + T + is_integral_v + cpp/types/is_integral + + + + std::is_invocable + std::is_invocable_r + + T + is_invocable_r_v + cpp/types/is_invocable + + + + + T + is_invocable_v + cpp/types/is_invocable + + + + std::is_literal_type + + T + is_literal_type_v + cpp/types/is_literal_type + + + + + T + is_lt + cpp/utility/compare/named_comparison_functions + + (T... args) + + + T + is_lteq + cpp/utility/compare/named_comparison_functions + + (T... args) + + std::is_lvalue_reference + + T + is_lvalue_reference_v + cpp/types/is_lvalue_reference + + + + std::is_member_function_pointer + + T + is_member_function_pointer_v + cpp/types/is_member_function_pointer + + + + std::is_member_object_pointer + + T + is_member_object_pointer_v + cpp/types/is_member_object_pointer + + + + std::is_member_pointer + + T + is_member_pointer_v + cpp/types/is_member_pointer + + + + std::is_move_assignable + + T + is_move_assignable_v + cpp/types/is_move_assignable + + + + std::is_move_constructible + + T + is_move_constructible_v + cpp/types/is_move_constructible + + + + + T + is_neq + cpp/utility/compare/named_comparison_functions + + (T... args) + + std::is_nothrow_assignable + + T + is_nothrow_assignable_v + cpp/types/is_assignable + + + + std::is_nothrow_constructible + + T + is_nothrow_constructible_v + cpp/types/is_constructible + + + + std::is_nothrow_convertible + + T + is_nothrow_convertible_v + cpp/types/is_convertible + + + + std::is_nothrow_copy_assignable + + T + is_nothrow_copy_assignable_v + cpp/types/is_copy_assignable + + + + std::is_nothrow_copy_constructible + + T + is_nothrow_copy_constructible_v + cpp/types/is_copy_constructible + + + + std::is_nothrow_default_constructible + + T + is_nothrow_default_constructible_v + cpp/types/is_default_constructible + + + + std::is_nothrow_destructible + + T + is_nothrow_destructible_v + cpp/types/is_destructible + + + + std::is_nothrow_invocable + std::is_nothrow_invocable_r + + T + is_nothrow_invocable_r_v + cpp/types/is_invocable + + + + + T + is_nothrow_invocable_v + cpp/types/is_invocable + + + + std::is_nothrow_move_assignable + + T + is_nothrow_move_assignable_v + cpp/types/is_move_assignable + + + + std::is_nothrow_move_constructible + + T + is_nothrow_move_constructible_v + cpp/types/is_move_constructible + + + + std::is_nothrow_swappable + + T + is_nothrow_swappable_v + cpp/types/is_swappable + + + + std::is_nothrow_swappable_with + + T + is_nothrow_swappable_with_v + cpp/types/is_swappable + + + + std::is_null_pointer + + T + is_null_pointer_v + cpp/types/is_null_pointer + + + + std::is_object + + T + is_object_v + cpp/types/is_object + + + + + T + is_partitioned + cpp/algorithm/is_partitioned + + (T... args) + + + T + is_permutation + cpp/algorithm/is_permutation + + (T... args) + + std::is_placeholder + + T + is_placeholder_v + cpp/utility/functional/is_placeholder + + + + std::is_pod + + T + is_pod_v + cpp/types/is_pod + + + + std::is_pointer + + T + is_pointer_v + cpp/types/is_pointer + + + + std::is_polymorphic + + T + is_polymorphic_v + cpp/types/is_polymorphic + + + + std::is_reference + + T + is_reference_v + cpp/types/is_reference + + + + std::is_rvalue_reference + + T + is_rvalue_reference_v + cpp/types/is_rvalue_reference + + + + std::is_same + + T + is_same_v + cpp/types/is_same + + + + std::is_scalar + + T + is_scalar_v + cpp/types/is_scalar + + + + std::is_signed + + T + is_signed_v + cpp/types/is_signed + + + + + T + is_sorted + cpp/algorithm/is_sorted + + (T... args) + + + T + is_sorted_until + cpp/algorithm/is_sorted_until + + (T... args) + + std::is_standard_layout + + T + is_standard_layout_v + cpp/types/is_standard_layout + + + + std::is_swappable + + T + is_swappable_v + cpp/types/is_swappable + + + + std::is_swappable_with + + T + is_swappable_with_v + cpp/types/is_swappable + + + + std::is_trivial + + T + is_trivial_v + cpp/types/is_trivial + + + + std::is_trivially_assignable + + T + is_trivially_assignable_v + cpp/types/is_assignable + + + + std::is_trivially_constructible + + T + is_trivially_constructible_v + cpp/types/is_constructible + + + + std::is_trivially_copy_assignable + + T + is_trivially_copy_assignable_v + cpp/types/is_copy_assignable + + + + std::is_trivially_copy_constructible + + T + is_trivially_copy_constructible_v + cpp/types/is_copy_constructible + + + + std::is_trivially_copyable + + T + is_trivially_copyable_v + cpp/types/is_trivially_copyable + + + + std::is_trivially_default_constructible + + T + is_trivially_default_constructible_v + cpp/types/is_default_constructible + + + + std::is_trivially_destructible + + T + is_trivially_destructible_v + cpp/types/is_destructible + + + + std::is_trivially_move_assignable + + T + is_trivially_move_assignable_v + cpp/types/is_move_assignable + + + + std::is_trivially_move_constructible + + T + is_trivially_move_constructible_v + cpp/types/is_move_constructible + + + + std::is_unbounded_array + + T + is_unbounded_array_v + cpp/types/is_unbounded_array + + + + std::is_union + + T + is_union_v + cpp/types/is_union + + + + std::is_unsigned + + T + is_unsigned_v + cpp/types/is_unsigned + + + + std::is_void + + T + is_void_v + cpp/types/is_void + + + + std::is_volatile + + T + is_volatile_v + cpp/types/is_volatile + + + + + T + isalnum (<cctype>) + cpp/string/byte/isalnum + + (T... args) + + + T + isalnum (<clocale>) + cpp/locale/isalnum + + (T... args) + + + T + isalpha (<cctype>) + cpp/string/byte/isalpha + + (T... args) + + + T + isalpha (<clocale>) + cpp/locale/isalpha + + (T... args) + + + T + isblank (<cctype>) + cpp/string/byte/isblank + + (T... args) + + + T + isblank (<clocale>) + cpp/locale/isblank + + (T... args) + + + T + iscntrl (<cctype>) + cpp/string/byte/iscntrl + + (T... args) + + + T + iscntrl (<clocale>) + cpp/locale/iscntrl + + (T... args) + + + T + isdigit (<cctype>) + cpp/string/byte/isdigit + + (T... args) + + + T + isdigit (<clocale>) + cpp/locale/isdigit + + (T... args) + + + T + isfinite + cpp/numeric/math/isfinite + + (T... args) + + + T + isgraph (<cctype>) + cpp/string/byte/isgraph + + (T... args) + + + T + isgraph (<clocale>) + cpp/locale/isgraph + + (T... args) + + + T + isgreater + cpp/numeric/math/isgreater + + (T... args) + + + T + isgreaterequal + cpp/numeric/math/isgreaterequal + + (T... args) + + + T + isinf + cpp/numeric/math/isinf + + (T... args) + + + T + isless + cpp/numeric/math/isless + + (T... args) + + + T + islessequal + cpp/numeric/math/islessequal + + (T... args) + + + T + islessgreater + cpp/numeric/math/islessgreater + + (T... args) + + + T + islower (<cctype>) + cpp/string/byte/islower + + (T... args) + + + T + islower (<clocale>) + cpp/locale/islower + + (T... args) + + + T + isnan + cpp/numeric/math/isnan + + (T... args) + + + T + isnormal + cpp/numeric/math/isnormal + + (T... args) + + + T + isprint (<cctype>) + cpp/string/byte/isprint + + (T... args) + + + T + isprint (<clocale>) + cpp/locale/isprint + + (T... args) + + + T + ispunct (<cctype>) + cpp/string/byte/ispunct + + (T... args) + + + T + ispunct (<clocale>) + cpp/locale/ispunct + + (T... args) + + + T + isspace (<cctype>) + cpp/string/byte/isspace + + (T... args) + + + T + isspace (<clocale>) + cpp/locale/isspace + + (T... args) + + std::istream + std::istream_iterator + std::istreambuf_iterator + std::istringstream + std::istrstream + + T + isunordered + cpp/numeric/math/isunordered + + (T... args) + + + T + isupper (<cctype>) + cpp/string/byte/isupper + + (T... args) + + + T + isupper (<clocale>) + cpp/locale/isupper + + (T... args) + + + T + iswalnum + cpp/string/wide/iswalnum + + (T... args) + + + T + iswalpha + cpp/string/wide/iswalpha + + (T... args) + + + T + iswblank + cpp/string/wide/iswblank + + (T... args) + + + T + iswcntrl + cpp/string/wide/iswcntrl + + (T... args) + + + T + iswctype + cpp/string/wide/iswctype + + (T... args) + + + T + iswdigit + cpp/string/wide/iswdigit + + (T... args) + + + T + iswgraph + cpp/string/wide/iswgraph + + (T... args) + + + T + iswlower + cpp/string/wide/iswlower + + (T... args) + + + T + iswprint + cpp/string/wide/iswprint + + (T... args) + + + T + iswpunct + cpp/string/wide/iswpunct + + (T... args) + + + T + iswspace + cpp/string/wide/iswspace + + (T... args) + + + T + iswupper + cpp/string/wide/iswupper + + (T... args) + + + T + iswxdigit + cpp/string/wide/iswxdigit + + (T... args) + + + T + isxdigit (<cctype>) + cpp/string/byte/isxdigit + + (T... args) + + + T + isxdigit (<clocale>) + cpp/locale/isxdigit + + (T... args) + + std::iter_common_reference_t + std::iter_difference_t + std::iter_reference_t + std::iter_rvalue_reference_t + + T + iter_swap + cpp/algorithm/iter_swap + + (T... args) + + std::iter_value_t + std::iterator + std::iterator_traits + std::jmp_buf + std::jthread + + T + kill_dependency + cpp/atomic/kill_dependency + + (T... args) + + std::kilo + std::knuth_b + + T + labs + cpp/numeric/math/abs + + (T... args) + + + T + laguerre + cpp/numeric/special_functions/laguerre + + (T... args) + + + T + laguerref + cpp/numeric/special_functions/laguerre + + (T... args) + + + T + laguerrel + cpp/numeric/special_functions/laguerre + + (T... args) + + std::latch + + T + launder + cpp/utility/launder + + (T... args) + + + T + lcm + cpp/numeric/lcm + + (T... args) + + std::lconv + + T + ldexp + cpp/numeric/math/ldexp + + (T... args) + + + T + ldiv + cpp/numeric/math/div + + (T... args) + + std::ldiv_t + + T + left + cpp/io/manip/left + + (T... args) + + + T + legendre + cpp/numeric/special_functions/legendre + + (T... args) + + + T + legendref + cpp/numeric/special_functions/legendre + + (T... args) + + + T + legendrel + cpp/numeric/special_functions/legendre + + (T... args) + + std::length_error + + T + lerp + cpp/numeric/lerp + + (T... args) + + std::less + std::less_equal + + T + lexicographical_compare + cpp/algorithm/lexicographical_compare + + (T... args) + + + T + lexicographical_compare_three_way + cpp/algorithm/lexicographical_compare_three_way + + (T... args) + + + T + lgamma + cpp/numeric/math/lgamma + + (T... args) + + std::linear_congruential_engine + std::list + std::literals + + T + llabs + cpp/numeric/math/abs + + (T... args) + + + T + lldiv + cpp/numeric/math/div + + (T... args) + + std::lldiv_t + + T + llrint + cpp/numeric/math/rint + + (T... args) + + + T + llround + cpp/numeric/math/round + + (T... args) + + std::locale + + T + localeconv + cpp/locale/localeconv + + (T... args) + + + T + localtime + cpp/chrono/c/localtime + + (T... args) + + + T + lock + cpp/thread/lock + + (T... args) + + std::lock_guard + + T + log + cpp/numeric/math/log + + (T... args) + + + T + log10 + cpp/numeric/math/log10 + + (T... args) + + + T + log1p + cpp/numeric/math/log1p + + (T... args) + + + T + log2 + cpp/numeric/math/log2 + + (T... args) + + + T + logb + cpp/numeric/math/logb + + (T... args) + + std::logic_error + std::logical_and + std::logical_not + std::logical_or + std::lognormal_distribution + + T + longjmp + cpp/utility/program/longjmp + + (T... args) + + + T + lower_bound + cpp/algorithm/lower_bound + + (T... args) + + + T + lrint + cpp/numeric/math/rint + + (T... args) + + + T + lround + cpp/numeric/math/round + + (T... args) + + + T + make_any + cpp/utility/any/make_any + + (T... args) + + + T + make_exception_ptr + cpp/error/make_exception_ptr + + (T... args) + + + T + make_format_args + cpp/utility/format/make_format_args + + (T... args) + + + T + make_from_tuple + cpp/utility/make_from_tuple + + (T... args) + + + T + make_heap + cpp/algorithm/make_heap + + (T... args) + + std::make_index_sequence + std::make_integer_sequence + + T + make_move_iterator + cpp/iterator/make_move_iterator + + (T... args) + + + T + make_obj_using_allocator + cpp/memory/make_obj_using_allocator + + (T... args) + + + T + make_optional + cpp/utility/optional/make_optional + + (T... args) + + + T + make_pair + cpp/utility/pair/make_pair + + (T... args) + + + T + make_reverse_iterator + cpp/iterator/make_reverse_iterator + + (T... args) + + + T + make_shared + cpp/memory/shared_ptr/make_shared + + (T... args) + + + T + make_shared_for_overwrite + cpp/memory/shared_ptr/make_shared + + (T... args) + + std::make_signed + std::make_signed_t + + T + make_tuple + cpp/utility/tuple/make_tuple + + (T... args) + + + T + make_unique + cpp/memory/unique_ptr/make_unique + + (T... args) + + + T + make_unique_for_overwrite + cpp/memory/unique_ptr/make_unique + + (T... args) + + std::make_unsigned + std::make_unsigned_t + + T + make_wformat_args + cpp/utility/format/make_format_args + + (T... args) + + + T + malloc + cpp/memory/c/malloc + + (T... args) + + std::map + std::mask_array + std::match_results + + T + max + cpp/algorithm/max + + (T... args) + + std::max_align_t + + T + max_element + cpp/algorithm/max_element + + (T... args) + + + T + mblen + cpp/string/multibyte/mblen + + (T... args) + + + T + mbrlen + cpp/string/multibyte/mbrlen + + (T... args) + + + T + mbrtoc16 + cpp/string/multibyte/mbrtoc16 + + (T... args) + + + T + mbrtoc32 + cpp/string/multibyte/mbrtoc32 + + (T... args) + + + T + mbrtoc8 + cpp/string/multibyte/mbrtoc8 + + (T... args) + + + T + mbrtowc + cpp/string/multibyte/mbrtowc + + (T... args) + + + T + mbsinit + cpp/string/multibyte/mbsinit + + (T... args) + + + T + mbsrtowcs + cpp/string/multibyte/mbsrtowcs + + (T... args) + + std::mbstate_t + + T + mbstowcs + cpp/string/multibyte/mbstowcs + + (T... args) + + + T + mbtowc + cpp/string/multibyte/mbtowc + + (T... args) + + std::mega + + T + mem_fn + cpp/utility/functional/mem_fn + + (T... args) + + + T + mem_fun + cpp/utility/functional/mem_fun + + (T... args) + + std::mem_fun1_ref_t + std::mem_fun1_t + + T + mem_fun_ref + cpp/utility/functional/mem_fun_ref + + (T... args) + + std::mem_fun_ref_t + std::mem_fun_t + + T + memchr + cpp/string/byte/memchr + + (T... args) + + + T + memcmp + cpp/string/byte/memcmp + + (T... args) + + + T + memcpy + cpp/string/byte/memcpy + + (T... args) + + + T + memmove + cpp/string/byte/memmove + + (T... args) + + + T + memset + cpp/string/byte/memset + + (T... args) + + + T + merge + cpp/algorithm/merge + + (T... args) + + std::mersenne_twister_engine + std::messages + std::messages_base + std::messages_byname + std::micro + + T + midpoint + cpp/numeric/midpoint + + (T... args) + + std::milli + + T + min + cpp/algorithm/min + + (T... args) + + + T + min_element + cpp/algorithm/min_element + + (T... args) + + + T + minmax + cpp/algorithm/minmax + + (T... args) + + + T + minmax_element + cpp/algorithm/minmax_element + + (T... args) + + std::minstd_rand + std::minstd_rand0 + std::minus + + T + mismatch + cpp/algorithm/mismatch + + (T... args) + + + T + mktime + cpp/chrono/c/mktime + + (T... args) + + + T + modf + cpp/numeric/math/modf + + (T... args) + + std::modulus + std::money_base + std::money_get + std::money_put + std::moneypunct + std::moneypunct_byname + std::monostate + + T + move (algorithm) + cpp/algorithm/move + + (T... args) + + + T + move (utility) + cpp/utility/move + + (T... args) + + + T + move_backward + cpp/algorithm/move_backward + + (T... args) + + + T + move_if_noexcept + cpp/utility/move_if_noexcept + + (T... args) + + std::move_iterator + std::mt19937 + std::mt19937_64 + std::multimap + std::multiplies + std::multiset + std::mutex + + T + nan + cpp/numeric/math/nan + + (T... args) + + + T + nanf + cpp/numeric/math/nan + + (T... args) + + + T + nanl + cpp/numeric/math/nan + + (T... args) + + std::nano + + T + nearbyint + cpp/numeric/math/nearbyint + + (T... args) + + std::negate + std::negation + + T + negation_v + cpp/types/negation + + + + std::negative_binomial_distribution + std::nested_exception + std::new_handler + + T + next + cpp/iterator/next + + (T... args) + + + T + next_permutation + cpp/algorithm/next_permutation + + (T... args) + + + T + nextafter + cpp/numeric/math/nextafter + + (T... args) + + + T + nexttoward + cpp/numeric/math/nextafter + + (T... args) + + + T + no_emit_on_flush + cpp/io/manip/emit_on_flush + + (T... args) + + + T + noboolalpha + cpp/io/manip/boolalpha + + (T... args) + + + T + none_of + cpp/algorithm/all_any_none_of + + (T... args) + + + T + noop_coroutine + cpp/coroutine/noop_coroutine + + (T... args) + + std::noop_coroutine_handle + std::noop_coroutine_promise + std::normal_distribution + + T + noshowbase + cpp/io/manip/showbase + + (T... args) + + + T + noshowpoint + cpp/io/manip/showpoint + + (T... args) + + + T + noshowpos + cpp/io/manip/showpos + + (T... args) + + + T + noskipws + cpp/io/manip/skipws + + (T... args) + + std::nostopstate_t + + T + not1 + cpp/utility/functional/not1 + + (T... args) + + + T + not2 + cpp/utility/functional/not2 + + (T... args) + + std::not_equal_to + + T + not_fn + cpp/utility/functional/not_fn + + (T... args) + + std::nothrow_t + + T + notify_all_at_thread_exit + cpp/thread/notify_all_at_thread_exit + + (T... args) + + + T + nounitbuf + cpp/io/manip/unitbuf + + (T... args) + + + T + nouppercase + cpp/io/manip/uppercase + + (T... args) + + + T + nth_element + cpp/algorithm/nth_element + + (T... args) + + std::nullopt_t + std::nullptr_t + std::num_get + std::num_put + std::numeric_limits + std::numpunct + std::numpunct_byname + + T + oct + cpp/io/manip/hex + + (T... args) + + std::ofstream + std::once_flag + std::optional + std::ostream + std::ostream_iterator + std::ostreambuf_iterator + std::ostringstream + std::ostrstream + std::osyncstream + std::out_of_range + std::output_iterator_tag + std::overflow_error + std::owner_less + std::packaged_task + std::pair + + T + partial_order + cpp/utility/compare/partial_order + + (T... args) + + std::partial_ordering + + T + partial_sort + cpp/algorithm/partial_sort + + (T... args) + + + T + partial_sort_copy + cpp/algorithm/partial_sort_copy + + (T... args) + + + T + partial_sum + cpp/algorithm/partial_sum + + (T... args) + + + T + partition + cpp/algorithm/partition + + (T... args) + + + T + partition_copy + cpp/algorithm/partition_copy + + (T... args) + + + T + partition_point + cpp/algorithm/partition_point + + (T... args) + + + T + perror + cpp/io/c/perror + + (T... args) + + std::peta + std::pico + std::piecewise_constant_distribution + + T + piecewise_construct + cpp/utility/piecewise_construct + + + + std::piecewise_construct_t + std::piecewise_linear_distribution + std::placeholders + std::plus + std::pmr + std::pointer_safety + std::pointer_to_binary_function + std::pointer_to_unary_function + std::pointer_traits + std::poisson_distribution + + T + pop_heap + cpp/algorithm/pop_heap + + (T... args) + + + T + popcount + cpp/numeric/popcount + + (T... args) + + + T + pow + cpp/numeric/math/pow + + (T... args) + + + T + prev + cpp/iterator/prev + + (T... args) + + + T + prev_permutation + cpp/algorithm/prev_permutation + + (T... args) + + + T + printf + cpp/io/c/fprintf + + (T... args) + + std::priority_queue + std::promise + + T + ptr_fun + cpp/utility/functional/ptr_fun + + (T... args) + + std::ptrdiff_t + + T + push_heap + cpp/algorithm/push_heap + + (T... args) + + + T + put_money + cpp/io/manip/put_money + + (T... args) + + + T + put_time + cpp/io/manip/put_time + + (T... args) + + + T + putc + cpp/io/c/fputc + + (T... args) + + + T + putchar + cpp/io/c/putchar + + (T... args) + + + T + puts + cpp/io/c/puts + + (T... args) + + + T + putwc + cpp/io/c/fputwc + + (T... args) + + + T + putwchar + cpp/io/c/putwchar + + (T... args) + + + T + qsort + cpp/algorithm/qsort + + (T... args) + + std::queue + + T + quick_exit + cpp/utility/program/quick_exit + + (T... args) + + + T + quoted + cpp/io/manip/quoted + + (T... args) + + + T + raise + cpp/utility/program/raise + + (T... args) + + + T + rand + cpp/numeric/random/rand + + (T... args) + + std::random_access_iterator_tag + std::random_device + + T + random_shuffle + cpp/algorithm/random_shuffle + + (T... args) + + std::range_error + std::ranges + std::rank + + T + rank_v + cpp/types/rank + + + + std::ranlux24 + std::ranlux24_base + std::ranlux48 + std::ranlux48_base + std::ratio + std::ratio_add + std::ratio_divide + std::ratio_equal + + T + ratio_equal_v + cpp/numeric/ratio/ratio_equal + + + + std::ratio_greater + std::ratio_greater_equal + + T + ratio_greater_equal_v + cpp/numeric/ratio/ratio_greater_equal + + + + + T + ratio_greater_v + cpp/numeric/ratio/ratio_greater + + + + std::ratio_less + std::ratio_less_equal + + T + ratio_less_equal_v + cpp/numeric/ratio/ratio_less_equal + + + + + T + ratio_less_v + cpp/numeric/ratio/ratio_less + + + + std::ratio_multiply + std::ratio_not_equal + + T + ratio_not_equal_v + cpp/numeric/ratio/ratio_not_equal + + + + std::ratio_subtract + std::raw_storage_iterator + + T + rbegin + cpp/iterator/rbegin + + (T... args) + + std::readable_traits + + T + realloc + cpp/memory/c/realloc + + (T... args) + + std::recursive_mutex + std::recursive_timed_mutex + + T + reduce + cpp/algorithm/reduce + + (T... args) + + + T + ref + cpp/utility/functional/ref + + (T... args) + + std::reference_wrapper + std::regex + std::regex_constants + std::regex_error + std::regex_iterator + + T + regex_match + cpp/regex/regex_match + + (T... args) + + + T + regex_replace + cpp/regex/regex_replace + + (T... args) + + + T + regex_search + cpp/regex/regex_search + + (T... args) + + std::regex_token_iterator + std::regex_traits + + T + reinterpret_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + std::rel_ops + + T + remainder + cpp/numeric/math/remainder + + (T... args) + + + T + remove (<algorithm>) + cpp/algorithm/remove + + (T... args) + + + T + remove (<cstdio>) + cpp/io/c/remove + + (T... args) + + std::remove_all_extents + std::remove_all_extents_t + std::remove_const + std::remove_const_t + + T + remove_copy + cpp/algorithm/remove_copy + + (T... args) + + + T + remove_copy_if + cpp/algorithm/remove_copy + + (T... args) + + std::remove_cv + std::remove_cv_t + std::remove_cvref + std::remove_cvref_t + std::remove_extent + std::remove_extent_t + + T + remove_if + cpp/algorithm/remove + + (T... args) + + std::remove_pointer + std::remove_pointer_t + std::remove_reference + std::remove_reference_t + std::remove_volatile + std::remove_volatile_t + + T + remquo + cpp/numeric/math/remquo + + (T... args) + + + T + rename + cpp/io/c/rename + + (T... args) + + + T + rend + cpp/iterator/rend + + (T... args) + + + T + replace + cpp/algorithm/replace + + (T... args) + + + T + replace_copy + cpp/algorithm/replace_copy + + (T... args) + + + T + replace_copy_if + cpp/algorithm/replace_copy + + (T... args) + + + T + replace_if + cpp/algorithm/replace + + (T... args) + + + T + resetiosflags + cpp/io/manip/resetiosflags + + (T... args) + + std::result_of + std::result_of_t + + T + rethrow_exception + cpp/error/rethrow_exception + + (T... args) + + + T + rethrow_if_nested + cpp/error/rethrow_if_nested + + (T... args) + + + T + return_temporary_buffer + cpp/memory/return_temporary_buffer + + (T... args) + + + T + reverse + cpp/algorithm/reverse + + (T... args) + + + T + reverse_copy + cpp/algorithm/reverse_copy + + (T... args) + + std::reverse_iterator + + T + rewind + cpp/io/c/rewind + + (T... args) + + + T + riemann_zeta + cpp/numeric/special_functions/riemann_zeta + + (T... args) + + + T + riemann_zetaf + cpp/numeric/special_functions/riemann_zeta + + (T... args) + + + T + riemann_zetal + cpp/numeric/special_functions/riemann_zeta + + (T... args) + + + T + right + cpp/io/manip/left + + (T... args) + + + T + rint + cpp/numeric/math/rint + + (T... args) + + + T + rotate + cpp/algorithm/rotate + + (T... args) + + + T + rotate_copy + cpp/algorithm/rotate_copy + + (T... args) + + + T + rotl + cpp/numeric/rotl + + (T... args) + + + T + rotr + cpp/numeric/rotr + + (T... args) + + + T + round + cpp/numeric/math/round + + (T... args) + + std::runtime_error + + T + sample + cpp/algorithm/sample + + (T... args) + + + T + scalbln + cpp/numeric/math/scalbn + + (T... args) + + + T + scalbn + cpp/numeric/math/scalbn + + (T... args) + + + T + scanf + cpp/io/c/fscanf + + (T... args) + + + T + scientific + cpp/io/manip/fixed + + (T... args) + + std::scoped_allocator_adaptor + std::scoped_lock + + T + search + cpp/algorithm/search + + (T... args) + + + T + search_n + cpp/algorithm/search_n + + (T... args) + + std::seed_seq + std::set + + T + set_difference + cpp/algorithm/set_difference + + (T... args) + + + T + set_intersection + cpp/algorithm/set_intersection + + (T... args) + + + T + set_new_handler + cpp/memory/new/set_new_handler + + (T... args) + + + T + set_symmetric_difference + cpp/algorithm/set_symmetric_difference + + (T... args) + + + T + set_terminate + cpp/error/set_terminate + + (T... args) + + + T + set_unexpected + cpp/error/set_unexpected + + (T... args) + + + T + set_union + cpp/algorithm/set_union + + (T... args) + + + T + setbase + cpp/io/manip/setbase + + (T... args) + + + T + setbuf + cpp/io/c/setbuf + + (T... args) + + + T + setfill + cpp/io/manip/setfill + + (T... args) + + + T + setiosflags + cpp/io/manip/setiosflags + + (T... args) + + + T + setlocale + cpp/locale/setlocale + + (T... args) + + + T + setprecision + cpp/io/manip/setprecision + + (T... args) + + + T + setvbuf + cpp/io/c/setvbuf + + (T... args) + + + T + setw + cpp/io/manip/setw + + (T... args) + + std::shared_future + std::shared_lock + std::shared_mutex + std::shared_ptr + std::shared_timed_mutex + + T + shift_left + cpp/algorithm/shift + + (T... args) + + + T + shift_right + cpp/algorithm/shift + + (T... args) + + + T + showbase + cpp/io/manip/showbase + + (T... args) + + + T + showpoint + cpp/io/manip/showpoint + + (T... args) + + + T + showpos + cpp/io/manip/showpos + + (T... args) + + + T + shuffle + cpp/algorithm/random_shuffle + + (T... args) + + std::shuffle_order_engine + std::sig_atomic_t + + T + signal + cpp/utility/program/signal + + (T... args) + + + T + signbit + cpp/numeric/math/signbit + + (T... args) + + + T + sin + cpp/numeric/math/sin + + (T... args) + + + T + sinh + cpp/numeric/math/sinh + + (T... args) + + + T + size + cpp/iterator/size + + (T... args) + + std::size_t + + T + skipws + cpp/io/manip/skipws + + (T... args) + + std::slice + std::slice_array + std::smatch + + T + snprintf + cpp/io/c/fprintf + + (T... args) + + + T + sort + cpp/algorithm/sort + + (T... args) + + + T + sort_heap + cpp/algorithm/sort_heap + + (T... args) + + std::source_location + std::span + + T + sph_bessel + cpp/numeric/special_functions/sph_bessel + + (T... args) + + + T + sph_besself + cpp/numeric/special_functions/sph_bessel + + (T... args) + + + T + sph_bessell + cpp/numeric/special_functions/sph_bessel + + (T... args) + + + T + sph_legendre + cpp/numeric/special_functions/sph_legendre + + (T... args) + + + T + sph_legendref + cpp/numeric/special_functions/sph_legendre + + (T... args) + + + T + sph_legendrel + cpp/numeric/special_functions/sph_legendre + + (T... args) + + + T + sph_neumann + cpp/numeric/special_functions/sph_neumann + + (T... args) + + + T + sph_neumannf + cpp/numeric/special_functions/sph_neumann + + (T... args) + + + T + sph_neumannl + cpp/numeric/special_functions/sph_neumann + + (T... args) + + + T + sprintf + cpp/io/c/fprintf + + (T... args) + + + T + sqrt + cpp/numeric/math/sqrt + + (T... args) + + + T + srand + cpp/numeric/random/srand + + (T... args) + + std::sregex_iterator + std::sregex_token_iterator + + T + sscanf + cpp/io/c/fscanf + + (T... args) + + + T + ssize + cpp/iterator/size + + (T... args) + + std::ssub_match + + T + stable_partition + cpp/algorithm/stable_partition + + (T... args) + + + T + stable_sort + cpp/algorithm/stable_sort + + (T... args) + + std::stack + + T + static_pointer_cast + cpp/memory/shared_ptr/pointer_cast + + (T... args) + + + T + stod + cpp/string/basic_string/stof + + (T... args) + + + T + stof + cpp/string/basic_string/stof + + (T... args) + + + T + stoi + cpp/string/basic_string/stol + + (T... args) + + + T + stol + cpp/string/basic_string/stol + + (T... args) + + + T + stold + cpp/string/basic_string/stof + + (T... args) + + + T + stoll + cpp/string/basic_string/stol + + (T... args) + + std::stop_callback + std::stop_source + std::stop_token + + T + stoul + cpp/string/basic_string/stoul + + (T... args) + + + T + stoull + cpp/string/basic_string/stoul + + (T... args) + + + T + strcat + cpp/string/byte/strcat + + (T... args) + + + T + strchr + cpp/string/byte/strchr + + (T... args) + + + T + strcmp + cpp/string/byte/strcmp + + (T... args) + + + T + strcoll + cpp/string/byte/strcoll + + (T... args) + + + T + strcpy + cpp/string/byte/strcpy + + (T... args) + + + T + strcspn + cpp/string/byte/strcspn + + (T... args) + + std::streambuf + std::streamoff + std::streampos + std::streamsize + + T + strerror + cpp/string/byte/strerror + + (T... args) + + + T + strftime + cpp/chrono/c/strftime + + (T... args) + + std::string + std::string_view + std::stringbuf + std::stringstream + + T + strlen + cpp/string/byte/strlen + + (T... args) + + + T + strncat + cpp/string/byte/strncat + + (T... args) + + + T + strncmp + cpp/string/byte/strncmp + + (T... args) + + + T + strncpy + cpp/string/byte/strncpy + + (T... args) + + + T + strong_order + cpp/utility/compare/strong_order + + (T... args) + + std::strong_ordering + + T + strpbrk + cpp/string/byte/strpbrk + + (T... args) + + + T + strrchr + cpp/string/byte/strrchr + + (T... args) + + + T + strspn + cpp/string/byte/strspn + + (T... args) + + + T + strstr + cpp/string/byte/strstr + + (T... args) + + std::strstream + std::strstreambuf + + T + strtod + cpp/string/byte/strtof + + (T... args) + + + T + strtof + cpp/string/byte/strtof + + (T... args) + + + T + strtoimax + cpp/string/byte/strtoimax + + (T... args) + + + T + strtok + cpp/string/byte/strtok + + (T... args) + + + T + strtol + cpp/string/byte/strtol + + (T... args) + + + T + strtold + cpp/string/byte/strtof + + (T... args) + + + T + strtoll + cpp/string/byte/strtol + + (T... args) + + + T + strtoul + cpp/string/byte/strtoul + + (T... args) + + + T + strtoull + cpp/string/byte/strtoul + + (T... args) + + + T + strtoumax + cpp/string/byte/strtoimax + + (T... args) + + + T + strxfrm + cpp/string/byte/strxfrm + + (T... args) + + std::student_t_distribution + std::sub_match + std::subtract_with_carry_engine + std::suspend_always + std::suspend_never + + T + swap + cpp/algorithm/swap + + (T... args) + + + T + swap_ranges + cpp/algorithm/swap_ranges + + (T... args) + + + T + swprintf + cpp/io/c/fwprintf + + (T... args) + + + T + swscanf + cpp/io/c/fwscanf + + (T... args) + + std::syncbuf + + T + system + cpp/utility/program/system + + (T... args) + + + T + system_category + cpp/error/system_category + + (T... args) + + std::system_error + + T + tan + cpp/numeric/math/tan + + (T... args) + + + T + tanh + cpp/numeric/math/tanh + + (T... args) + + std::tera + + T + terminate + cpp/error/terminate + + (T... args) + + std::terminate_handler + + T + tgamma + cpp/numeric/math/tgamma + + (T... args) + + std::this_thread + std::thread + + T + throw_with_nested + cpp/error/throw_with_nested + + (T... args) + + + T + tie + cpp/utility/tuple/tie + + (T... args) + + + T + time + cpp/chrono/c/time + + (T... args) + + std::time_base + std::time_get + std::time_get_byname + std::time_put + std::time_put_byname + std::time_t + std::timed_mutex + + T + timespec + cpp/chrono/c/timespec + + (T... args) + + + T + timespec_get + cpp/chrono/c/timespec_get + + (T... args) + + std::tm + + T + tmpfile + cpp/io/c/tmpfile + + (T... args) + + + T + tmpnam + cpp/io/c/tmpnam + + (T... args) + + + T + to_address + cpp/memory/to_address + + (T... args) + + + T + to_chars + cpp/utility/to_chars + + (T... args) + + std::to_chars_result + + T + to_string + cpp/string/basic_string/to_string + + (T... args) + + + T + to_wstring + cpp/string/basic_string/to_wstring + + (T... args) + + + T + tolower (<cctype>) + cpp/string/byte/tolower + + (T... args) + + + T + tolower (<clocale>) + cpp/locale/tolower + + (T... args) + + + T + toupper (<cctype>) + cpp/string/byte/toupper + + (T... args) + + + T + toupper (<clocale>) + cpp/locale/toupper + + (T... args) + + + T + towctrans + cpp/string/wide/towctrans + + (T... args) + + + T + towlower + cpp/string/wide/towlower + + (T... args) + + + T + towupper + cpp/string/wide/towupper + + (T... args) + + + T + transform + cpp/algorithm/transform + + (T... args) + + + T + transform_exclusive_scan + cpp/algorithm/transform_exclusive_scan + + (T... args) + + + T + transform_inclusive_scan + cpp/algorithm/transform_inclusive_scan + + (T... args) + + + T + transform_reduce + cpp/algorithm/transform_reduce + + (T... args) + + std::true_type + + T + trunc + cpp/numeric/math/trunc + + (T... args) + + + T + try_lock + cpp/thread/try_lock + + (T... args) + + std::try_to_lock_t + std::tuple + + T + tuple_cat + cpp/utility/tuple/tuple_cat + + (T... args) + + + T + tuple_size_v + cpp/utility/tuple/tuple_size + + + + std::type_identity + std::type_identity_t + std::type_index + std::type_info + std::u16streampos + std::u16string + std::u16string_view + std::u32streampos + std::u32string + std::u32string_view + std::u8streampos + std::u8string + std::u8string_view + std::uint16_t + std::uint32_t + std::uint64_t + std::uint8_t + std::uint_fast16_t + std::uint_fast32_t + std::uint_fast64_t + std::uint_fast8_t + std::uint_least16_t + std::uint_least32_t + std::uint_least64_t + std::uint_least8_t + std::uintmax_t + std::uintptr_t + std::unary_function + std::unary_negate + + T + uncaught_exception + cpp/error/uncaught_exception + + (T... args) + + + T + uncaught_exceptions + cpp/error/uncaught_exception + + (T... args) + + + T + undeclare_no_pointers + cpp/memory/gc/undeclare_no_pointers + + (T... args) + + + T + undeclare_reachable + cpp/memory/gc/undeclare_reachable + + (T... args) + + std::underflow_error + std::underlying_type + std::underlying_type_t + + T + unexpected + cpp/error/unexpected + + (T... args) + + std::unexpected_handler + + T + ungetc + cpp/io/c/ungetc + + (T... args) + + + T + ungetwc + cpp/io/c/ungetwc + + (T... args) + + std::uniform_int_distribution + std::uniform_real_distribution + + T + uninitialized_construct_using_allocator + cpp/memory/uninitialized_construct_using_allocator + + (T... args) + + + T + uninitialized_copy + cpp/memory/uninitialized_copy + + (T... args) + + + T + uninitialized_copy_n + cpp/memory/uninitialized_copy_n + + (T... args) + + + T + uninitialized_default_construct + cpp/memory/uninitialized_default_construct + + (T... args) + + + T + uninitialized_default_construct_n + cpp/memory/uninitialized_default_construct_n + + (T... args) + + + T + uninitialized_fill + cpp/memory/uninitialized_fill + + (T... args) + + + T + uninitialized_fill_n + cpp/memory/uninitialized_fill_n + + (T... args) + + + T + uninitialized_move + cpp/memory/uninitialized_move + + (T... args) + + + T + uninitialized_move_n + cpp/memory/uninitialized_move_n + + (T... args) + + + T + uninitialized_value_construct + cpp/memory/uninitialized_value_construct + + (T... args) + + + T + uninitialized_value_construct_n + cpp/memory/uninitialized_value_construct_n + + (T... args) + + + T + unique + cpp/algorithm/unique + + (T... args) + + + T + unique_copy + cpp/algorithm/unique_copy + + (T... args) + + std::unique_lock + std::unique_ptr + + T + unitbuf + cpp/io/manip/unitbuf + + (T... args) + + std::unordered_map + std::unordered_multimap + std::unordered_multiset + std::unordered_set + std::unwrap_ref_decay + std::unwrap_ref_decay_t + std::unwrap_reference + std::unwrap_reference_t + + T + upper_bound + cpp/algorithm/upper_bound + + (T... args) + + + T + uppercase + cpp/io/manip/uppercase + + (T... args) + + + T + use_policy + cpp/locale/use_policy + + (T... args) + + std::uses_allocator + + T + uses_allocator_construction_args + cpp/memory/uses_allocator_construction_args + + (T... args) + + + T + uses_allocator_v + cpp/memory/uses_allocator + + + + std::valarray + std::variant + std::variant_alternative + std::variant_alternative_t + std::variant_size + + T + variant_size_v + cpp/utility/variant/variant_size + + + + std::vector + + T + vformat + cpp/utility/format/vformat + + (T... args) + + + T + vformat_to + cpp/utility/format/vformat_to + + (T... args) + + + T + vfprintf + cpp/io/c/vfprintf + + (T... args) + + + T + vfscanf + cpp/io/c/vfscanf + + (T... args) + + + T + vfwprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + vfwscanf + cpp/io/c/vfwscanf + + (T... args) + + + T + visit + cpp/utility/variant/visit + + (T... args) + + + T + visit_format_arg + cpp/utility/format/visit_format_arg + + (T... args) + + std::void_t + + T + vprintf + cpp/io/c/vfprintf + + (T... args) + + + T + vscanf + cpp/io/c/vfscanf + + (T... args) + + + T + vsnprintf + cpp/io/c/vfprintf + + (T... args) + + + T + vsprintf + cpp/io/c/vfprintf + + (T... args) + + + T + vsscanf + cpp/io/c/vfscanf + + (T... args) + + + T + vswprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + vswscanf + cpp/io/c/vfwscanf + + (T... args) + + + T + vwprintf + cpp/io/c/vfwprintf + + (T... args) + + + T + vwscanf + cpp/io/c/vfwscanf + + (T... args) + + std::wbuffer_convert + std::wcerr + std::wcin + std::wclog + std::wcmatch + std::wcout + std::wcregex_iterator + std::wcregex_token_iterator + + T + wcrtomb + cpp/string/multibyte/wcrtomb + + (T... args) + + + T + wcscat + cpp/string/wide/wcscat + + (T... args) + + + T + wcschr + cpp/string/wide/wcschr + + (T... args) + + + T + wcscmp + cpp/string/wide/wcscmp + + (T... args) + + + T + wcscoll + cpp/string/wide/wcscoll + + (T... args) + + + T + wcscpy + cpp/string/wide/wcscpy + + (T... args) + + + T + wcscspn + cpp/string/wide/wcscspn + + (T... args) + + + T + wcsftime + cpp/chrono/c/wcsftime + + (T... args) + + + T + wcslen + cpp/string/wide/wcslen + + (T... args) + + + T + wcsncat + cpp/string/wide/wcsncat + + (T... args) + + + T + wcsncmp + cpp/string/wide/wcsncmp + + (T... args) + + + T + wcsncpy + cpp/string/wide/wcsncpy + + (T... args) + + + T + wcspbrk + cpp/string/wide/wcspbrk + + (T... args) + + + T + wcsrchr + cpp/string/wide/wcsrchr + + (T... args) + + + T + wcsrtombs + cpp/string/multibyte/wcsrtombs + + (T... args) + + + T + wcsspn + cpp/string/wide/wcsspn + + (T... args) + + + T + wcsstr + cpp/string/wide/wcsstr + + (T... args) + + + T + wcstod + cpp/string/wide/wcstof + + (T... args) + + + T + wcstof + cpp/string/wide/wcstof + + (T... args) + + + T + wcstoimax + cpp/string/wide/wcstoimax + + (T... args) + + + T + wcstok + cpp/string/wide/wcstok + + (T... args) + + + T + wcstol + cpp/string/wide/wcstol + + (T... args) + + + T + wcstold + cpp/string/wide/wcstof + + (T... args) + + + T + wcstoll + cpp/string/wide/wcstol + + (T... args) + + + T + wcstombs + cpp/string/multibyte/wcstombs + + (T... args) + + + T + wcstoul + cpp/string/wide/wcstoul + + (T... args) + + + T + wcstoull + cpp/string/wide/wcstoul + + (T... args) + + + T + wcstoumax + cpp/string/wide/wcstoimax + + (T... args) + + std::wcsub_match + + T + wcsxfrm + cpp/string/wide/wcsxfrm + + (T... args) + + + T + wctob + cpp/string/multibyte/wctob + + (T... args) + + + T + wctomb + cpp/string/multibyte/wctomb + + (T... args) + + + T + wctrans + cpp/string/wide/wctrans + + (T... args) + + + T + wctype + cpp/string/wide/wctype + + (T... args) + + + T + weak_order + cpp/utility/compare/weak_order + + (T... args) + + std::weak_ordering + std::weak_ptr + std::weibull_distribution + std::wfilebuf + std::wformat_args + std::wformat_context + std::wformat_parse_context + std::wfstream + std::wifstream + std::wios + std::wiostream + std::wistream + std::wistringstream + + T + wmemchr + cpp/string/wide/wmemchr + + (T... args) + + + T + wmemcmp + cpp/string/wide/wmemcmp + + (T... args) + + + T + wmemcpy + cpp/string/wide/wmemcpy + + (T... args) + + + T + wmemmove + cpp/string/wide/wmemmove + + (T... args) + + + T + wmemset + cpp/string/wide/wmemset + + (T... args) + + std::wofstream + std::wostream + std::wostringstream + std::wosyncstream + + T + wprintf + cpp/io/c/fwprintf + + (T... args) + + std::wregex + + T + ws + cpp/io/manip/ws + + (T... args) + + + T + wscanf + cpp/io/c/fwscanf + + (T... args) + + std::wsmatch + std::wsregex_iterator + std::wsregex_token_iterator + std::wssub_match + std::wstreambuf + std::wstreampos + std::wstring + std::wstring_convert + std::wstring_view + std::wstringbuf + std::wstringstream + std::wsyncbuf + std::yocto + std::yotta + std::zepto + std::zetta + + + std::FILE + cpp/io/c/FILE + + + std::add_const + cpp/types/add_cv + + + std::add_const_t + cpp/types/add_cv + + + std::add_cv + cpp/types/add_cv + + + std::add_cv_t + cpp/types/add_cv + + + std::add_lvalue_reference + cpp/types/add_reference + + + std::add_lvalue_reference_t + cpp/types/add_reference + + + std::add_pointer + cpp/types/add_pointer + + + std::add_pointer_t + cpp/types/add_pointer + + + std::add_rvalue_reference + cpp/types/add_reference + + + std::add_rvalue_reference_t + cpp/types/add_reference + + + std::add_volatile + cpp/types/add_cv + + + std::add_volatile_t + cpp/types/add_cv + + + std::adopt_lock_t + cpp/thread/lock_tag_t + + + std::align_val_t + cpp/memory/new/align_val_t + + + std::aligned_storage + cpp/types/aligned_storage + + + std::aligned_storage_t + cpp/types/aligned_storage + + + std::aligned_union + cpp/types/aligned_union + + + std::aligned_union_t + cpp/types/aligned_union + + + std::alignment_of + cpp/types/alignment_of + + + std::allocator + cpp/memory/allocator + + T + address + cpp/memory/allocator/address + + (T... args) + + + T + allocate + cpp/memory/allocator/allocate + + (T... args) + + + T + allocator + cpp/memory/allocator/allocator + + (T... args) + + + T + construct + cpp/memory/allocator/construct + + (T... args) + + + T + deallocate + cpp/memory/allocator/deallocate + + (T... args) + + + T + destroy + cpp/memory/allocator/destroy + + (T... args) + + + T + max_size + cpp/memory/allocator/max_size + + (T... args) + + + T + ~allocator + cpp/memory/allocator/~allocator + + (T... args) + + + + std::allocator_arg_t + cpp/memory/allocator_arg_t + + + std::allocator_traits + cpp/memory/allocator_traits + + T + allocate + cpp/memory/allocator_traits/allocate + + (T... args) + + + T + construct + cpp/memory/allocator_traits/construct + + (T... args) + + + T + deallocate + cpp/memory/allocator_traits/deallocate + + (T... args) + + + T + destroy + cpp/memory/allocator_traits/destroy + + (T... args) + + + T + max_size + cpp/memory/allocator_traits/max_size + + (T... args) + + std::allocator_traits::rebind_alloc + std::allocator_traits::rebind_traits + + T + select_on_container_copy_construction + cpp/memory/allocator_traits/select_on_container_copy_construction + + (T... args) + + + + std::allocator_traits::rebind_alloc + cpp/memory/allocator_traits + + + std::allocator_traits::rebind_traits + cpp/memory/allocator_traits + + + std::any + cpp/utility/any + + T + any + cpp/utility/any/any + + (T... args) + + + T + emplace + cpp/utility/any/emplace + + (T... args) + + + T + has_value + cpp/utility/any/has_value + + (T... args) + + + T + operator= + cpp/utility/any/operator= + + (T... args) + + + T + reset + cpp/utility/any/reset + + (T... args) + + + T + swap + cpp/utility/any/swap + + (T... args) + + + T + type + cpp/utility/any/type + + (T... args) + + + T + ~any + cpp/utility/any/~any + + (T... args) + + + + std::array + cpp/container/array + + T + at + cpp/container/array/at + + (T... args) + + + T + back + cpp/container/array/back + + (T... args) + + + T + begin + cpp/container/array/begin + + (T... args) + + + T + cbegin + cpp/container/array/begin + + (T... args) + + + T + cend + cpp/container/array/end + + (T... args) + + + T + crbegin + cpp/container/array/rbegin + + (T... args) + + + T + crend + cpp/container/array/rend + + (T... args) + + + T + data + cpp/container/array/data + + (T... args) + + + T + empty + cpp/container/array/empty + + (T... args) + + + T + end + cpp/container/array/end + + (T... args) + + + T + fill + cpp/container/array/fill + + (T... args) + + + T + front + cpp/container/array/front + + (T... args) + + + T + max_size + cpp/container/array/max_size + + (T... args) + + + T + operator[] + cpp/container/array/operator_at + + (T... args) + + + T + rbegin + cpp/container/array/rbegin + + (T... args) + + + T + rend + cpp/container/array/rend + + (T... args) + + + T + size + cpp/container/array/size + + (T... args) + + + T + swap + cpp/container/array/swap + + (T... args) + + + + std::atomic + cpp/atomic/atomic + + T + atomic + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_bool + cpp/atomic/atomic + + T + atomic_bool + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_char + cpp/atomic/atomic + + T + atomic_char + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_char16_t + cpp/atomic/atomic + + T + atomic_char16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_char32_t + cpp/atomic/atomic + + T + atomic_char32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_char8_t + cpp/atomic/atomic + + T + atomic_char8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_flag + cpp/atomic/atomic_flag + + T + atomic_flag + cpp/atomic/atomic_flag/atomic_flag + + (T... args) + + + T + clear + cpp/atomic/atomic_flag/clear + + (T... args) + + + T + notify_all + cpp/atomic/atomic_flag/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic_flag/notify_one + + (T... args) + + + T + operator= + cpp/atomic/atomic_flag/operator= + + (T... args) + + + T + test + cpp/atomic/atomic_flag/test + + (T... args) + + + T + test_and_set + cpp/atomic/atomic_flag/test_and_set + + (T... args) + + + T + wait + cpp/atomic/atomic_flag/wait + + (T... args) + + + + std::atomic_int + cpp/atomic/atomic + + T + atomic_int + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int16_t + cpp/atomic/atomic + + T + atomic_int16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int32_t + cpp/atomic/atomic + + T + atomic_int32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int64_t + cpp/atomic/atomic + + T + atomic_int64_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int8_t + cpp/atomic/atomic + + T + atomic_int8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_fast16_t + cpp/atomic/atomic + + T + atomic_int_fast16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_fast32_t + cpp/atomic/atomic + + T + atomic_int_fast32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_fast64_t + cpp/atomic/atomic + + T + atomic_int_fast64_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_fast8_t + cpp/atomic/atomic + + T + atomic_int_fast8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_least16_t + cpp/atomic/atomic + + T + atomic_int_least16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_least32_t + cpp/atomic/atomic + + T + atomic_int_least32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_least64_t + cpp/atomic/atomic + + T + atomic_int_least64_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_int_least8_t + cpp/atomic/atomic + + T + atomic_int_least8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_intmax_t + cpp/atomic/atomic + + T + atomic_intmax_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_intptr_t + cpp/atomic/atomic + + T + atomic_intptr_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_llong + cpp/atomic/atomic + + T + atomic_llong + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_long + cpp/atomic/atomic + + T + atomic_long + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_ptrdiff_t + cpp/atomic/atomic + + T + atomic_ptrdiff_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_ref + cpp/atomic/atomic_ref + + T + atomic_ref + cpp/atomic/atomic_ref/atomic_ref + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic_ref/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic_ref/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic_ref/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic_ref/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic_ref/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic_ref/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic_ref/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic_ref/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic_ref/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic_ref/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic_ref/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic_ref/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic_ref/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic_ref/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic_ref/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic_ref/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic_ref/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic_ref/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic_ref/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic_ref/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic_ref/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic_ref/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic_ref/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic_ref/store + + (T... args) + + + T + wait + cpp/atomic/atomic_ref/wait + + (T... args) + + + + std::atomic_schar + cpp/atomic/atomic + + T + atomic_schar + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_short + cpp/atomic/atomic + + T + atomic_short + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_signed_lock_free + cpp/atomic/atomic + + T + atomic_signed_lock_free + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_size_t + cpp/atomic/atomic + + T + atomic_size_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uchar + cpp/atomic/atomic + + T + atomic_uchar + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint + cpp/atomic/atomic + + T + atomic_uint + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint16_t + cpp/atomic/atomic + + T + atomic_uint16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint32_t + cpp/atomic/atomic + + T + atomic_uint32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint64_t + cpp/atomic/atomic + + T + atomic_uint64_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint8_t + cpp/atomic/atomic + + T + atomic_uint8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_fast16_t + cpp/atomic/atomic + + T + atomic_uint_fast16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_fast32_t + cpp/atomic/atomic + + T + atomic_uint_fast32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_fast64_t + cpp/atomic/atomic + + T + atomic_uint_fast64_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_fast8_t + cpp/atomic/atomic + + T + atomic_uint_fast8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_least16_t + cpp/atomic/atomic + + T + atomic_uint_least16_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_least32_t + cpp/atomic/atomic + + T + atomic_uint_least32_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_least64_t + cpp/atomic/atomic + + T + atomic_uint_least64_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uint_least8_t + cpp/atomic/atomic + + T + atomic_uint_least8_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uintmax_t + cpp/atomic/atomic + + T + atomic_uintmax_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_uintptr_t + cpp/atomic/atomic + + T + atomic_uintptr_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_ullong + cpp/atomic/atomic + + T + atomic_ullong + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_ulong + cpp/atomic/atomic + + T + atomic_ulong + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_unsigned_lock_free + cpp/atomic/atomic + + T + atomic_unsigned_lock_free + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_ushort + cpp/atomic/atomic + + T + atomic_ushort + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atomic_wchar_t + cpp/atomic/atomic + + T + atomic_wchar_t + cpp/atomic/atomic/atomic + + (T... args) + + + T + compare_exchange_strong + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/atomic/atomic/compare_exchange + + (T... args) + + + T + exchange + cpp/atomic/atomic/exchange + + (T... args) + + + T + fetch_add + cpp/atomic/atomic/fetch_add + + (T... args) + + + T + fetch_and + cpp/atomic/atomic/fetch_and + + (T... args) + + + T + fetch_or + cpp/atomic/atomic/fetch_or + + (T... args) + + + T + fetch_sub + cpp/atomic/atomic/fetch_sub + + (T... args) + + + T + fetch_xor + cpp/atomic/atomic/fetch_xor + + (T... args) + + + T + is_lock_free + cpp/atomic/atomic/is_lock_free + + (T... args) + + + T + load + cpp/atomic/atomic/load + + (T... args) + + + T + notify_all + cpp/atomic/atomic/notify_all + + (T... args) + + + T + notify_one + cpp/atomic/atomic/notify_one + + (T... args) + + + T + operator T + cpp/atomic/atomic/operator_T + + (T... args) + + + T + operator&= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator++ + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator++(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator+= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator-- + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator--(int) + cpp/atomic/atomic/operator_arith + + (T... args) + + + T + operator-= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator= + cpp/atomic/atomic/operator= + + (T... args) + + + T + operator^= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + operator|= + cpp/atomic/atomic/operator_arith2 + + (T... args) + + + T + store + cpp/atomic/atomic/store + + (T... args) + + + T + wait + cpp/atomic/atomic/wait + + (T... args) + + + + std::atto + cpp/numeric/ratio/ratio + + + std::auto_ptr + cpp/memory/auto_ptr + + T + auto_ptr + cpp/memory/auto_ptr/auto_ptr + + (T... args) + + + T + get + cpp/memory/auto_ptr/get + + (T... args) + + + T + operator auto_ptr<Y> + cpp/memory/auto_ptr/operator_auto_ptr + + (T... args) + + + T + operator* + cpp/memory/auto_ptr/operator* + + (T... args) + + + T + operator-> + cpp/memory/auto_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/auto_ptr/operator= + + (T... args) + + + T + release + cpp/memory/auto_ptr/release + + (T... args) + + + T + reset + cpp/memory/auto_ptr/reset + + (T... args) + + + T + ~auto_ptr + cpp/memory/auto_ptr/~auto_ptr + + (T... args) + + + + std::back_insert_iterator + cpp/iterator/back_insert_iterator + + T + back_insert_iterator + cpp/iterator/back_insert_iterator/back_insert_iterator + + (T... args) + + + T + container + cpp/iterator/back_insert_iterator + + + + + T + operator* + cpp/iterator/back_insert_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/back_insert_iterator/operator++ + + (T... args) + + + T + operator++(int) + cpp/iterator/back_insert_iterator/operator++ + + (T... args) + + + T + operator= + cpp/iterator/back_insert_iterator/operator= + + (T... args) + + + + std::bad_alloc + cpp/memory/new/bad_alloc + + T + bad_alloc + cpp/memory/new/bad_alloc + + (T... args) + + + T + operator= + cpp/memory/new/bad_alloc + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::bad_any_cast + cpp/utility/any/bad_any_cast + + + std::bad_array_new_length + cpp/memory/new/bad_array_new_length + + T + bad_array_new_length + cpp/memory/new/bad_array_new_length + + (T... args) + + + T + what + cpp/memory/new/bad_alloc + + (T... args) + + + + std::bad_cast + cpp/types/bad_cast + + T + bad_cast + cpp/types/bad_cast + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::bad_exception + cpp/error/bad_exception + + + 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::bad_optional_access + cpp/utility/optional/bad_optional_access + + + std::bad_typeid + cpp/types/bad_typeid + + T + bad_typeid + cpp/types/bad_typeid + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::bad_variant_access + cpp/utility/variant/bad_variant_access + + + std::bad_weak_ptr + cpp/memory/bad_weak_ptr + + T + bad_weak_ptr + cpp/memory/bad_weak_ptr + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::barrier + cpp/thread/barrier + std::barrier::arrival_token + + T + arrive + cpp/thread/barrier/arrive + + (T... args) + + + T + arrive_and_drop + cpp/thread/barrier/arrive_and_drop + + (T... args) + + + T + arrive_and_wait + cpp/thread/barrier/arrive_and_wait + + (T... args) + + + T + barrier + cpp/thread/barrier/barrier + + (T... args) + + + T + wait + cpp/thread/barrier/wait + + (T... args) + + + T + ~barrier + cpp/thread/barrier/~barrier + + (T... args) + + + + std::barrier::arrival_token + cpp/thread/barrier + + + std::basic_common_reference + cpp/types/common_reference + + + std::basic_filebuf + cpp/io/basic_filebuf + + T + basic_filebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~basic_filebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + + std::basic_format_arg + cpp/utility/format/basic_format_arg + + + std::basic_format_args + cpp/utility/format/basic_format_args + + + std::basic_format_context + cpp/utility/format/basic_format_context + + + std::basic_format_parse_context + cpp/utility/format/basic_format_parse_context + + + std::basic_fstream + cpp/io/basic_fstream + std::basic_fstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_fstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_fstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_fstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_fstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::basic_fstream::Init + cpp/io/ios_base/Init + + + 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::basic_fstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_ifstream + cpp/io/basic_ifstream + std::basic_ifstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_ifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_ifstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_ifstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_ifstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::basic_ifstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_ios + cpp/io/basic_ios + std::basic_ios::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_ios + cpp/io/basic_ios/basic_ios + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_ios::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_ios::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + precision + cpp/io/ios_base/precision + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~basic_ios + cpp/io/basic_ios/~basic_ios + + (T... args) + + + + std::basic_ios::Init + cpp/io/ios_base/Init + + + std::basic_ios::event_callback + cpp/io/ios_base/event_callback + + + 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_iostream + cpp/io/basic_iostream + std::basic_iostream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_iostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_iostream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_iostream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_iostream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_iostream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~basic_iostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + + std::basic_iostream::Init + cpp/io/ios_base/Init + + + 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::basic_iostream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_istream + cpp/io/basic_istream + std::basic_istream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_istream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_istream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_istream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator= + cpp/io/basic_istream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_istream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~basic_istream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + + std::basic_istream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_istringstream + cpp/io/basic_istringstream + std::basic_istringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_istringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_istringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_istringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::basic_istringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::basic_istringstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_ofstream + cpp/io/basic_ofstream + std::basic_ofstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_ofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_ofstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_ofstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_ofstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::basic_ofstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::basic_ostream + cpp/io/basic_ostream + std::basic_ostream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_ostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_ostream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_ostream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ostream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_ostream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~basic_ostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + + std::basic_ostream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::basic_ostringstream + cpp/io/basic_ostringstream + std::basic_ostringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_ostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_ostringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_ostringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_ostringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::basic_ostringstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::basic_osyncstream + cpp/io/basic_osyncstream + std::basic_osyncstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_osyncstream + cpp/io/basic_osyncstream/basic_osyncstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + emit + cpp/io/basic_osyncstream/emit + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_osyncstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_osyncstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + get_wrapped + cpp/io/basic_osyncstream/get_wrapped + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_osyncstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_osyncstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~basic_osyncstream + cpp/io/basic_osyncstream/~basic_osyncstream + + (T... args) + + + + std::basic_osyncstream::Init + cpp/io/ios_base/Init + + + std::basic_osyncstream::event_callback + cpp/io/ios_base/event_callback + + + std::basic_osyncstream::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_osyncstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::basic_regex + cpp/regex/basic_regex + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + basic_regex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + ~basic_regex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + + std::basic_streambuf + cpp/io/basic_streambuf + + T + basic_streambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~basic_streambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + + std::basic_string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + basic_string + cpp/string/basic_string/basic_string + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + + std::basic_string_view + cpp/string/basic_string_view + + T + at + cpp/string/basic_string_view/at + + (T... args) + + + T + back + cpp/string/basic_string_view/back + + (T... args) + + + T + basic_string_view + cpp/string/basic_string_view/basic_string_view + + (T... args) + + + T + begin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cend + cpp/string/basic_string_view/end + + (T... args) + + + T + compare + cpp/string/basic_string_view/compare + + (T... args) + + + T + copy + cpp/string/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string_view/rend + + (T... args) + + + T + data + cpp/string/basic_string_view/data + + (T... args) + + + T + empty + cpp/string/basic_string_view/empty + + (T... args) + + + T + end + cpp/string/basic_string_view/end + + (T... args) + + + T + ends_with + cpp/string/basic_string_view/ends_with + + (T... args) + + + T + find + cpp/string/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string_view/front + + (T... args) + + + T + length + cpp/string/basic_string_view/size + + (T... args) + + + T + max_size + cpp/string/basic_string_view/max_size + + (T... args) + + + T + operator= + cpp/string/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/string/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/string/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/string/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/string/basic_string_view/rfind + + (T... args) + + + T + size + cpp/string/basic_string_view/size + + (T... args) + + + T + starts_with + cpp/string/basic_string_view/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string_view/substr + + (T... args) + + + T + swap + cpp/string/basic_string_view/swap + + (T... args) + + + + std::basic_stringbuf + cpp/io/basic_stringbuf + + T + basic_stringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + + std::basic_stringstream + cpp/io/basic_stringstream + std::basic_stringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + basic_stringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::basic_stringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::basic_stringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::basic_stringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::basic_stringstream::Init + cpp/io/ios_base/Init + + + 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::basic_stringstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::basic_syncbuf + cpp/io/basic_syncbuf + + T + basic_syncbuf + cpp/io/basic_syncbuf/basic_syncbuf + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + emit + cpp/io/basic_syncbuf/emit + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + get_allocator + cpp/io/basic_syncbuf/get_allocator + + (T... args) + + + T + get_wrapped + cpp/io/basic_syncbuf/get_wrapped + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_syncbuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + set_emit_on_sync + cpp/io/basic_syncbuf/set_emit_on_sync + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~basic_syncbuf + cpp/io/basic_syncbuf/~basic_syncbuf + + (T... args) + + + + std::bernoulli_distribution + cpp/numeric/random/bernoulli_distribution + + T + bernoulli_distribution + cpp/numeric/random/bernoulli_distribution/bernoulli_distribution + + (T... args) + + + T + max + cpp/numeric/random/bernoulli_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/bernoulli_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/bernoulli_distribution/operator() + + (T... args) + + + T + p + cpp/numeric/random/bernoulli_distribution/p + + (T... args) + + + T + param + cpp/numeric/random/bernoulli_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/bernoulli_distribution/reset + + (T... args) + + + + std::bidirectional_iterator_tag + cpp/iterator/iterator_tags + + + std::binary_function + cpp/utility/functional/binary_function + + + std::binary_negate + cpp/utility/functional/binary_negate + + T + binary_negate + cpp/utility/functional/binary_negate + + (T... args) + + + T + operator() + cpp/utility/functional/binary_negate + + (T... args) + + + + std::binary_semaphore + cpp/thread/counting_semaphore + + T + acquire + cpp/thread/counting_semaphore/acquire + + (T... args) + + + T + binary_semaphore + cpp/thread/counting_semaphore/counting_semaphore + + (T... args) + + + T + release + cpp/thread/counting_semaphore/release + + (T... args) + + + T + try_acquire + cpp/thread/counting_semaphore/try_acquire + + (T... args) + + + T + try_acquire_for + cpp/thread/counting_semaphore/try_acquire_for + + (T... args) + + + T + try_acquire_until + cpp/thread/counting_semaphore/try_acquire_until + + (T... args) + + + T + ~binary_semaphore + cpp/thread/counting_semaphore/~counting_semaphore + + (T... args) + + + + std::binder1st + cpp/utility/functional/binder12 + + + std::binder2nd + cpp/utility/functional/binder12 + + + std::binomial_distribution + cpp/numeric/random/binomial_distribution + + T + binomial_distribution + cpp/numeric/random/binomial_distribution/binomial_distribution + + (T... args) + + + T + max + cpp/numeric/random/binomial_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/binomial_distribution/min + + (T... args) + + + T + p + cpp/numeric/random/binomial_distribution/params + + (T... args) + + + T + param + cpp/numeric/random/binomial_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/binomial_distribution/reset + + (T... args) + + + T + t + cpp/numeric/random/binomial_distribution/params + + (T... args) + + + + std::bit_and + cpp/utility/functional/bit_and + + T + operator() + cpp/utility/functional/bit_and + + (T... args) + + + + std::bit_not + cpp/utility/functional/bit_not + + T + operator() + cpp/utility/functional/bit_not + + (T... args) + + + + std::bit_or + cpp/utility/functional/bit_or + + T + operator() + cpp/utility/functional/bit_or + + (T... args) + + + + std::bit_xor + cpp/utility/functional/bit_xor + + T + operator() + cpp/utility/functional/bit_xor + + (T... args) + + + + std::bitset + cpp/utility/bitset + + T + all + cpp/utility/bitset/all_any_none + + (T... args) + + + T + any + cpp/utility/bitset/all_any_none + + (T... args) + + + T + bitset + cpp/utility/bitset/bitset + + (T... args) + + + T + count + cpp/utility/bitset/count + + (T... args) + + + T + flip + cpp/utility/bitset/flip + + (T... args) + + + T + none + cpp/utility/bitset/all_any_none + + (T... args) + + + T + operator!= + cpp/utility/bitset/operator_cmp + + (T... args) + + + T + operator&= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator<< + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator<<= + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator== + cpp/utility/bitset/operator_cmp + + (T... args) + + + T + operator>> + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator>>= + cpp/utility/bitset/operator_ltltgtgt + + (T... args) + + + T + operator[] + cpp/utility/bitset/operator_at + + (T... args) + + + T + operator^= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator|= + cpp/utility/bitset/operator_logic + + (T... args) + + + T + operator~ + cpp/utility/bitset/operator_logic + + (T... args) + + std::bitset::reference + + T + reset + cpp/utility/bitset/reset + + (T... args) + + + T + set + cpp/utility/bitset/set + + (T... args) + + + T + size + cpp/utility/bitset/size + + (T... args) + + + T + test + cpp/utility/bitset/test + + (T... args) + + + T + to_string + cpp/utility/bitset/to_string + + (T... args) + + + T + to_ullong + cpp/utility/bitset/to_ullong + + (T... args) + + + T + to_ulong + cpp/utility/bitset/to_ulong + + (T... args) + + + + std::bitset::reference + cpp/utility/bitset/reference + + + std::bool_constant + cpp/types/integral_constant + + + std::boyer_moore_horspool_searcher + cpp/utility/functional/boyer_moore_horspool_searcher + + T + boyer_moore_horspool_searcher + cpp/utility/functional/boyer_moore_horspool_searcher + + (T... args) + + + T + operator() + cpp/utility/functional/boyer_moore_horspool_searcher + + (T... args) + + + + std::boyer_moore_searcher + cpp/utility/functional/boyer_moore_searcher + + T + boyer_moore_searcher + cpp/utility/functional/boyer_moore_searcher + + (T... args) + + + T + operator() + cpp/utility/functional/boyer_moore_searcher + + (T... args) + + + + std::byte + cpp/types/byte + + + std::cauchy_distribution + cpp/numeric/random/cauchy_distribution + + T + a + cpp/numeric/random/cauchy_distribution/params + + (T... args) + + + T + b + cpp/numeric/random/cauchy_distribution/params + + (T... args) + + + T + cauchy_distribution + cpp/numeric/random/cauchy_distribution/cauchy_distribution + + (T... args) + + + T + max + cpp/numeric/random/cauchy_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/cauchy_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/cauchy_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/cauchy_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/cauchy_distribution/reset + + (T... args) + + + + std::centi + cpp/numeric/ratio/ratio + + + std::cerr + cpp/io/cerr + + + std::char_traits + cpp/string/char_traits + + T + assign + cpp/string/char_traits/assign + + (T... args) + + + T + compare + cpp/string/char_traits/compare + + (T... args) + + + T + copy + cpp/string/char_traits/copy + + (T... args) + + + T + eof + cpp/string/char_traits/eof + + (T... args) + + + T + eq + cpp/string/char_traits/cmp + + (T... args) + + + T + eq_int_type + cpp/string/char_traits/eq_int_type + + (T... args) + + + T + find + cpp/string/char_traits/find + + (T... args) + + + T + length + cpp/string/char_traits/length + + (T... args) + + + T + lt + cpp/string/char_traits/cmp + + (T... args) + + + T + move + cpp/string/char_traits/move + + (T... args) + + + T + not_eof + cpp/string/char_traits/not_eof + + (T... args) + + + T + to_char_type + cpp/string/char_traits/to_char_type + + (T... args) + + + T + to_int_type + cpp/string/char_traits/to_int_type + + (T... args) + + + + std::chars_format + cpp/utility/chars_format + + + std::chi_squared_distribution + cpp/numeric/random/chi_squared_distribution + + T + chi_squared_distribution + cpp/numeric/random/chi_squared_distribution/chi_squared_distribution + + (T... args) + + + T + max + cpp/numeric/random/chi_squared_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/chi_squared_distribution/min + + (T... args) + + + T + n + cpp/numeric/random/chi_squared_distribution/n + + (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 + reset + cpp/numeric/random/chi_squared_distribution/reset + + (T... args) + + + + std::chrono + + std::chrono::ambiguous_local_time + + T + clock_cast + cpp/chrono/clock_cast + + (T... args) + + std::chrono::clock_time_conversion + + T + current_zone + cpp/chrono/current_zone + + (T... args) + + std::chrono::day + std::chrono::days + std::chrono::duration + + T + duration_cast + cpp/chrono/duration/duration_cast + + (T... args) + + std::chrono::duration_values + std::chrono::file_clock + std::chrono::file_time + std::chrono::get_leap_second_info + + T + get_tzdb + cpp/chrono/tzdb_functions + + (T... args) + + + T + get_tzdb_list + cpp/chrono/tzdb_functions + + (T... args) + + std::chrono::gps_clock + std::chrono::gps_seconds + std::chrono::gps_time + std::chrono::hh_mm_ss + std::chrono::high_resolution_clock + std::chrono::hours + + T + is_am + cpp/chrono/hour_fun + + (T... args) + + std::chrono::is_clock + + T + is_pm + cpp/chrono/hour_fun + + (T... args) + + std::chrono::last + std::chrono::last_spec + std::chrono::leap_second + std::chrono::leap_second_info + std::chrono::local_days + std::chrono::local_info + std::chrono::local_seconds + std::chrono::local_t + std::chrono::local_time + + T + locate_zone + cpp/chrono/locate_zone + + (T... args) + + + T + make12 + cpp/chrono/hour_fun + + (T... args) + + + T + make24 + cpp/chrono/hour_fun + + (T... args) + + std::chrono::microseconds + std::chrono::milliseconds + std::chrono::minutes + std::chrono::month + std::chrono::month_day + std::chrono::month_day_last + std::chrono::month_weekday + std::chrono::month_weekday_last + std::chrono::months + std::chrono::nanoseconds + std::chrono::nonexistent_local_time + + T + operator/ + cpp/chrono/operator_slash + + (T... args) + + + T + parse + cpp/chrono/parse + + (T... args) + + + T + reload_tzdb + cpp/chrono/tzdb_functions + + (T... args) + + + T + remote_version + cpp/chrono/tzdb_functions + + (T... args) + + std::chrono::seconds + std::chrono::steady_clock + std::chrono::sys_days + std::chrono::sys_info + std::chrono::sys_seconds + std::chrono::sys_time + std::chrono::system_clock + std::chrono::tai_clock + std::chrono::tai_seconds + std::chrono::tai_time + std::chrono::time_point + + T + time_point_cast + cpp/chrono/time_point/time_point_cast + + (T... args) + + std::chrono::time_zone + std::chrono::time_zone_link + std::chrono::treat_as_floating_point + + T + treat_as_floating_point_v + cpp/chrono/treat_as_floating_point + + + + std::chrono::tzdb + std::chrono::tzdb_list + std::chrono::utc_clock + std::chrono::utc_seconds + std::chrono::utc_time + std::chrono::weekday + std::chrono::weekday_indexed + std::chrono::weekday_last + std::chrono::weeks + std::chrono::year + std::chrono::year_month + std::chrono::year_month_day + std::chrono::year_month_day_last + std::chrono::year_month_weekday + std::chrono::year_month_weekday_last + std::chrono::years + std::chrono::zoned_time + std::chrono::zoned_traits + + + std::chrono::ambiguous_local_time + cpp/chrono/ambiguous_local_time + + T + ambiguous_local_time + cpp/chrono/ambiguous_local_time + + (T... args) + + + T + operator= + cpp/chrono/ambiguous_local_time + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::chrono::clock_time_conversion + cpp/chrono/clock_time_conversion + + + std::chrono::day + cpp/chrono/day + + T + day + cpp/chrono/day/day + + (T... args) + + + T + ok + cpp/chrono/day/ok + + (T... args) + + + T + operator unsigned + cpp/chrono/day/operator_unsigned + + (T... args) + + + T + operator++ + cpp/chrono/day/operator_inc_dec + + (T... args) + + + T + operator++(int) + cpp/chrono/day/operator_inc_dec + + (T... args) + + + T + operator+= + cpp/chrono/day/operator_arith + + (T... args) + + + T + operator-- + cpp/chrono/day/operator_inc_dec + + (T... args) + + + T + operator--(int) + cpp/chrono/day/operator_inc_dec + + (T... args) + + + T + operator-= + cpp/chrono/day/operator_arith + + (T... args) + + + + std::chrono::days + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + days + cpp/chrono/duration/duration + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::duration + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + duration + cpp/chrono/duration/duration + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::duration_values + cpp/chrono/duration_values + + T + max + cpp/chrono/duration_values/max + + (T... args) + + + T + min + cpp/chrono/duration_values/min + + (T... args) + + + T + zero + cpp/chrono/duration_values/zero + + (T... args) + + + + std::chrono::file_clock + cpp/chrono/file_clock + + T + from_sys + cpp/chrono/file_clock/to_from_sys + + (T... args) + + + T + from_utc + cpp/chrono/file_clock/to_from_utc + + (T... args) + + + T + now + cpp/chrono/file_clock/now + + (T... args) + + + T + to_sys + cpp/chrono/file_clock/to_from_sys + + (T... args) + + + T + to_utc + cpp/chrono/file_clock/to_from_utc + + (T... args) + + + + std::chrono::file_time + cpp/chrono/file_clock + + + std::chrono::get_leap_second_info + cpp/chrono/utc_clock/get_leap_second_info + + + std::chrono::gps_clock + cpp/chrono/gps_clock + + T + from_utc + cpp/chrono/gps_clock/from_utc + + (T... args) + + + T + now + cpp/chrono/gps_clock/now + + (T... args) + + + T + to_utc + cpp/chrono/gps_clock/to_utc + + (T... args) + + + + std::chrono::gps_seconds + cpp/chrono/gps_clock + + + std::chrono::gps_time + cpp/chrono/gps_clock + + + std::chrono::hh_mm_ss + cpp/chrono/hh_mm_ss + + T + hh_mm_ss + cpp/chrono/hh_mm_ss/hh_mm_ss + + (T... args) + + + T + hours + cpp/chrono/hh_mm_ss/accessors + + (T... args) + + + T + is_negative + cpp/chrono/hh_mm_ss/accessors + + (T... args) + + + T + minutes + cpp/chrono/hh_mm_ss/accessors + + (T... args) + + + T + operator precision + cpp/chrono/hh_mm_ss/duration + + (T... args) + + std::chrono::hh_mm_ss::precision + + T + seconds + cpp/chrono/hh_mm_ss/accessors + + (T... args) + + + T + subseconds + cpp/chrono/hh_mm_ss/accessors + + (T... args) + + + T + to_duration + cpp/chrono/hh_mm_ss/duration + + (T... args) + + + + std::chrono::hh_mm_ss::precision + cpp/chrono/hh_mm_ss + + + std::chrono::high_resolution_clock + cpp/chrono/high_resolution_clock + + T + now + cpp/chrono/high_resolution_clock/now + + (T... args) + + + + std::chrono::hours + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + hours + cpp/chrono/duration/duration + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::is_clock + cpp/chrono/is_clock + + + std::chrono::last + cpp/chrono/last_spec + + + std::chrono::last_spec + cpp/chrono/last_spec + + + std::chrono::leap_second + cpp/chrono/leap_second + + T + date + cpp/chrono/leap_second/date + + (T... args) + + + + std::chrono::leap_second_info + cpp/chrono/utc_clock/leap_second_info + + + std::chrono::local_days + cpp/chrono/local_t + + + std::chrono::local_info + cpp/chrono/local_info + + + std::chrono::local_seconds + cpp/chrono/local_t + + + std::chrono::local_t + cpp/chrono/local_t + + + std::chrono::local_time + cpp/chrono/local_t + + + std::chrono::microseconds + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + microseconds + cpp/chrono/duration/duration + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::milliseconds + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + milliseconds + cpp/chrono/duration/duration + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::minutes + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + minutes + cpp/chrono/duration/duration + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::month + cpp/chrono/month + + T + month + cpp/chrono/month/month + + (T... args) + + + T + ok + cpp/chrono/month/ok + + (T... args) + + + T + operator unsigned + cpp/chrono/month/operator_unsigned + + (T... args) + + + T + operator++ + cpp/chrono/month/operator_inc_dec + + (T... args) + + + T + operator++(int) + cpp/chrono/month/operator_inc_dec + + (T... args) + + + T + operator+= + cpp/chrono/month/operator_arith + + (T... args) + + + T + operator-- + cpp/chrono/month/operator_inc_dec + + (T... args) + + + T + operator--(int) + cpp/chrono/month/operator_inc_dec + + (T... args) + + + T + operator-= + cpp/chrono/month/operator_arith + + (T... args) + + + + std::chrono::month_day + cpp/chrono/month_day + + T + day + cpp/chrono/month_day/accessors + + (T... args) + + + T + month + cpp/chrono/month_day/accessors + + (T... args) + + + T + month_day + cpp/chrono/month_day/month_day + + (T... args) + + + T + ok + cpp/chrono/month_day/ok + + (T... args) + + + + std::chrono::month_day_last + cpp/chrono/month_day_last + + T + month + cpp/chrono/month_day_last/month + + (T... args) + + + T + month_day_last + cpp/chrono/month_day_last/month_day_last + + (T... args) + + + T + ok + cpp/chrono/month_day_last/ok + + (T... args) + + + + std::chrono::month_weekday + cpp/chrono/month_weekday + + T + month + cpp/chrono/month_weekday/accessors + + (T... args) + + + T + month_weekday + cpp/chrono/month_weekday/month_weekday + + (T... args) + + + T + ok + cpp/chrono/month_weekday/ok + + (T... args) + + + T + weekday_indexed + cpp/chrono/month_weekday/accessors + + (T... args) + + + + std::chrono::month_weekday_last + cpp/chrono/month_weekday_last + + T + month + cpp/chrono/month_weekday_last/accessors + + (T... args) + + + T + month_weekday_last + cpp/chrono/month_weekday_last/month_weekday_last + + (T... args) + + + T + ok + cpp/chrono/month_weekday_last/ok + + (T... args) + + + T + weekday_last + cpp/chrono/month_weekday_last/accessors + + (T... args) + + + + std::chrono::months + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + months + cpp/chrono/duration/duration + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::nanoseconds + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (T... args) + + + T + nanoseconds + cpp/chrono/duration/duration + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::nonexistent_local_time + cpp/chrono/nonexistent_local_time + + T + nonexistent_local_time + cpp/chrono/nonexistent_local_time + + (T... args) + + + T + operator= + cpp/chrono/nonexistent_local_time + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::chrono::seconds + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + seconds + cpp/chrono/duration/duration + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::steady_clock + cpp/chrono/steady_clock + + T + now + cpp/chrono/steady_clock/now + + (T... args) + + + + std::chrono::sys_days + cpp/chrono/system_clock + + + std::chrono::sys_info + cpp/chrono/sys_info + + + std::chrono::sys_seconds + cpp/chrono/system_clock + + + std::chrono::sys_time + cpp/chrono/system_clock + + + std::chrono::system_clock + cpp/chrono/system_clock + + T + from_time_t + cpp/chrono/system_clock/from_time_t + + (T... args) + + + T + now + cpp/chrono/system_clock/now + + (T... args) + + + T + to_time_t + cpp/chrono/system_clock/to_time_t + + (T... args) + + + + std::chrono::tai_clock + cpp/chrono/tai_clock + + T + from_utc + cpp/chrono/tai_clock/from_utc + + (T... args) + + + T + now + cpp/chrono/tai_clock/now + + (T... args) + + + T + to_utc + cpp/chrono/tai_clock/to_utc + + (T... args) + + + + std::chrono::tai_seconds + cpp/chrono/tai_clock + + + std::chrono::tai_time + cpp/chrono/tai_clock + + + std::chrono::time_point + cpp/chrono/time_point + + T + max + cpp/chrono/time_point/max + + (T... args) + + + T + min + cpp/chrono/time_point/min + + (T... args) + + + T + operator++ + cpp/chrono/time_point/operator_inc_dec + + (T... args) + + + T + operator+= + cpp/chrono/time_point/operator_arith + + (T... args) + + + T + operator-- + cpp/chrono/time_point/operator_inc_dec + + (T... args) + + + T + operator-= + cpp/chrono/time_point/operator_arith + + (T... args) + + + T + time_point + cpp/chrono/time_point/time_point + + (T... args) + + + T + time_since_epoch + cpp/chrono/time_point/time_since_epoch + + (T... args) + + + + std::chrono::time_zone + cpp/chrono/time_zone + + T + get_info + cpp/chrono/time_zone/get_info + + (T... args) + + + T + name + cpp/chrono/time_zone/name + + (T... args) + + + T + to_local + cpp/chrono/time_zone/to_local + + (T... args) + + + T + to_sys + cpp/chrono/time_zone/to_sys + + (T... args) + + + + std::chrono::time_zone_link + cpp/chrono/time_zone_link + + T + name + cpp/chrono/time_zone_link/accessors + + (T... args) + + + T + target + cpp/chrono/time_zone_link/accessors + + (T... args) + + + + std::chrono::treat_as_floating_point + cpp/chrono/treat_as_floating_point + + + std::chrono::tzdb + cpp/chrono/tzdb + + T + current_zone + cpp/chrono/tzdb/current_zone + + (T... args) + + + T + locate_zone + cpp/chrono/tzdb/locate_zone + + (T... args) + + + + std::chrono::tzdb_list + cpp/chrono/tzdb_list + + T + begin + cpp/chrono/tzdb_list/begin + + (T... args) + + + T + cbegin + cpp/chrono/tzdb_list/begin + + (T... args) + + + T + cend + cpp/chrono/tzdb_list/end + + (T... args) + + + T + end + cpp/chrono/tzdb_list/end + + (T... args) + + + T + erase_after + cpp/chrono/tzdb_list/erase_after + + (T... args) + + + T + front + cpp/chrono/tzdb_list/front + + (T... args) + + + + std::chrono::utc_clock + cpp/chrono/utc_clock + + T + from_sys + cpp/chrono/utc_clock/from_sys + + (T... args) + + + T + now + cpp/chrono/utc_clock/now + + (T... args) + + + T + to_sys + cpp/chrono/utc_clock/to_sys + + (T... args) + + + + std::chrono::utc_seconds + cpp/chrono/utc_clock + + + std::chrono::utc_time + cpp/chrono/utc_clock + + + std::chrono::weekday + cpp/chrono/weekday + + T + c_encoding + cpp/chrono/weekday/encoding + + (T... args) + + + T + iso_encoding + cpp/chrono/weekday/encoding + + (T... args) + + + T + ok + cpp/chrono/weekday/ok + + (T... args) + + + T + operator++ + cpp/chrono/weekday/operator_inc_dec + + (T... args) + + + T + operator++(int) + cpp/chrono/weekday/operator_inc_dec + + (T... args) + + + T + operator+= + cpp/chrono/weekday/operator_arith + + (T... args) + + + T + operator-- + cpp/chrono/weekday/operator_inc_dec + + (T... args) + + + T + operator--(int) + cpp/chrono/weekday/operator_inc_dec + + (T... args) + + + T + operator-= + cpp/chrono/weekday/operator_arith + + (T... args) + + + T + operator[] + cpp/chrono/weekday/operator_at + + (T... args) + + + T + weekday + cpp/chrono/weekday/weekday + + (T... args) + + + + std::chrono::weekday_indexed + cpp/chrono/weekday_indexed + + T + index + cpp/chrono/weekday_indexed/index + + (T... args) + + + T + ok + cpp/chrono/weekday_indexed/ok + + (T... args) + + + T + weekday + cpp/chrono/weekday_indexed/weekday + + (T... args) + + + T + weekday_indexed + cpp/chrono/weekday_indexed/weekday_indexed + + (T... args) + + + + std::chrono::weekday_last + cpp/chrono/weekday_last + + T + ok + cpp/chrono/weekday_last/ok + + (T... args) + + + T + weekday + cpp/chrono/weekday_last/weekday + + (T... args) + + + T + weekday_last + cpp/chrono/weekday_last/weekday_last + + (T... args) + + + + std::chrono::weeks + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + weeks + cpp/chrono/duration/duration + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::year + cpp/chrono/year + + T + is_leap + cpp/chrono/year/is_leap + + (T... args) + + + T + max + cpp/chrono/year/max + + (T... args) + + + T + min + cpp/chrono/year/min + + (T... args) + + + T + ok + cpp/chrono/year/ok + + (T... args) + + + T + operator int + cpp/chrono/year/operator_int + + (T... args) + + + T + operator+ + cpp/chrono/year/operator_sign + + (T... args) + + + T + operator++ + cpp/chrono/year/operator_inc_dec + + (T... args) + + + T + operator++(int) + cpp/chrono/year/operator_inc_dec + + (T... args) + + + T + operator+= + cpp/chrono/year/operator_arith + + (T... args) + + + T + operator- + cpp/chrono/year/operator_sign + + (T... args) + + + T + operator-- + cpp/chrono/year/operator_inc_dec + + (T... args) + + + T + operator--(int) + cpp/chrono/year/operator_inc_dec + + (T... args) + + + T + operator-= + cpp/chrono/year/operator_arith + + (T... args) + + + T + year + cpp/chrono/year/year + + (T... args) + + + + std::chrono::year_month + cpp/chrono/year_month + + T + month + cpp/chrono/year_month/accessors + + (T... args) + + + T + ok + cpp/chrono/year_month/ok + + (T... args) + + + T + operator+= + cpp/chrono/year_month/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/year_month/operator_arith + + (T... args) + + + T + year + cpp/chrono/year_month/accessors + + (T... args) + + + T + year_month + cpp/chrono/year_month/year_month + + (T... args) + + + + std::chrono::year_month_day + cpp/chrono/year_month_day + + T + day + cpp/chrono/year_month_day/accessors + + (T... args) + + + T + month + cpp/chrono/year_month_day/accessors + + (T... args) + + + T + ok + cpp/chrono/year_month_day/ok + + (T... args) + + + T + operator local_days + cpp/chrono/year_month_day/operator_days + + (T... args) + + + T + operator sys_days + cpp/chrono/year_month_day/operator_days + + (T... args) + + + T + operator+= + cpp/chrono/year_month_day/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/year_month_day/operator_arith + + (T... args) + + + T + year + cpp/chrono/year_month_day/accessors + + (T... args) + + + T + year_month_day + cpp/chrono/year_month_day/year_month_day + + (T... args) + + + + std::chrono::year_month_day_last + cpp/chrono/year_month_day_last + + T + day + cpp/chrono/year_month_day_last/accessors + + (T... args) + + + T + month + cpp/chrono/year_month_day_last/accessors + + (T... args) + + + T + month_day_last + cpp/chrono/year_month_day_last/accessors + + (T... args) + + + T + ok + cpp/chrono/year_month_day_last/ok + + (T... args) + + + T + operator local_days + cpp/chrono/year_month_day_last/operator_days + + (T... args) + + + T + operator sys_days + cpp/chrono/year_month_day_last/operator_days + + (T... args) + + + T + operator+= + cpp/chrono/year_month_day_last/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/year_month_day_last/operator_arith + + (T... args) + + + T + year + cpp/chrono/year_month_day_last/accessors + + (T... args) + + + T + year_month_day_last + cpp/chrono/year_month_day_last/year_month_day_last + + (T... args) + + + + std::chrono::year_month_weekday + cpp/chrono/year_month_weekday + + T + index + cpp/chrono/year_month_weekday/accessors + + (T... args) + + + T + month + cpp/chrono/year_month_weekday/accessors + + (T... args) + + + T + ok + cpp/chrono/year_month_weekday/ok + + (T... args) + + + T + operator local_days + cpp/chrono/year_month_weekday/operator_days + + (T... args) + + + T + operator sys_days + cpp/chrono/year_month_weekday/operator_days + + (T... args) + + + T + operator+= + cpp/chrono/year_month_weekday/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/year_month_weekday/operator_arith + + (T... args) + + + T + weekday + cpp/chrono/year_month_weekday/accessors + + (T... args) + + + T + weekday_indexed + cpp/chrono/year_month_weekday/accessors + + (T... args) + + + T + year + cpp/chrono/year_month_weekday/accessors + + (T... args) + + + T + year_month_weekday + cpp/chrono/year_month_weekday/year_month_weekday + + (T... args) + + + + std::chrono::year_month_weekday_last + cpp/chrono/year_month_weekday_last + + T + month + cpp/chrono/year_month_weekday_last/accessors + + (T... args) + + + T + ok + cpp/chrono/year_month_weekday_last/ok + + (T... args) + + + T + operator local_days + cpp/chrono/year_month_weekday_last/operator_days + + (T... args) + + + T + operator sys_days + cpp/chrono/year_month_weekday_last/operator_days + + (T... args) + + + T + operator+= + cpp/chrono/year_month_weekday_last/operator_arith + + (T... args) + + + T + operator-= + cpp/chrono/year_month_weekday_last/operator_arith + + (T... args) + + + T + weekday + cpp/chrono/year_month_weekday_last/accessors + + (T... args) + + + T + weekday_last + cpp/chrono/year_month_weekday_last/accessors + + (T... args) + + + T + year + cpp/chrono/year_month_weekday_last/accessors + + (T... args) + + + T + year_month_weekday_last + cpp/chrono/year_month_weekday_last/year_month_weekday_last + + (T... args) + + + + std::chrono::years + cpp/chrono/duration + + T + count + cpp/chrono/duration/count + + (T... args) + + + T + max + cpp/chrono/duration/max + + (T... args) + + + T + min + cpp/chrono/duration/min + + (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_arith + + (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_arith3 + + (T... args) + + + T + operator- + cpp/chrono/duration/operator_arith + + (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_arith3 + + (T... args) + + + T + operator/= + cpp/chrono/duration/operator_arith3 + + (T... args) + + + T + operator= + cpp/chrono/duration/operator= + + (T... args) + + + T + years + cpp/chrono/duration/duration + + (T... args) + + + T + zero + cpp/chrono/duration/zero + + (T... args) + + + + std::chrono::zoned_time + cpp/chrono/zoned_time + + T + get_info + cpp/chrono/zoned_time/get_info + + (T... args) + + + T + get_local_time + cpp/chrono/zoned_time/get_local_time + + (T... args) + + + T + get_sys_time + cpp/chrono/zoned_time/get_sys_time + + (T... args) + + + T + get_time_zone + cpp/chrono/zoned_time/get_time_zone + + (T... args) + + + T + operator local_time + cpp/chrono/zoned_time/get_local_time + + (T... args) + + + T + operator sys_time + cpp/chrono/zoned_time/get_sys_time + + (T... args) + + + T + operator= + cpp/chrono/zoned_time/operator= + + (T... args) + + + T + zoned_time + cpp/chrono/zoned_time/zoned_time + + (T... args) + + + + std::chrono::zoned_traits + cpp/chrono/zoned_traits + + + std::cin + cpp/io/cin + + + std::clock_t + cpp/chrono/c/clock_t + + + std::clog + cpp/io/clog + + + std::cmatch + cpp/regex/match_results + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + cmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + ~cmatch + cpp/regex/match_results/~match_results + + (T... args) + + + + std::codecvt + cpp/locale/codecvt + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + codecvt + cpp/locale/codecvt/codecvt + + (T... args) + + + T + do_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 + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + std::codecvt::extern_type + + T + id + cpp/locale/codecvt + + + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + out + cpp/locale/codecvt/out + + (T... args) + + std::codecvt::state_type + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + ~codecvt + cpp/locale/codecvt/~codecvt + + (T... args) + + + + std::codecvt::extern_type + cpp/locale/codecvt + + + std::codecvt::intern_type + cpp/locale/codecvt + + + std::codecvt::state_type + cpp/locale/codecvt + + + std::codecvt_base + cpp/locale/codecvt_base + + + std::codecvt_byname + cpp/locale/codecvt_byname + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + codecvt_byname + cpp/locale/codecvt_byname + + (T... args) + + + T + do_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 + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + std::codecvt_byname::extern_type + + T + id + cpp/locale/codecvt + + + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_byname::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + out + cpp/locale/codecvt/out + + (T... args) + + std::codecvt_byname::state_type + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + ~codecvt_byname + cpp/locale/codecvt_byname + + (T... args) + + + + std::codecvt_byname::extern_type + cpp/locale/codecvt + + + std::codecvt_byname::intern_type + cpp/locale/codecvt + + + std::codecvt_byname::state_type + cpp/locale/codecvt + + + std::codecvt_utf16 + cpp/locale/codecvt_utf16 + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_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 + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + std::codecvt_utf16::extern_type + + T + id + cpp/locale/codecvt + + + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf16::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + out + cpp/locale/codecvt/out + + (T... args) + + std::codecvt_utf16::state_type + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + + std::codecvt_utf16::extern_type + cpp/locale/codecvt + + + std::codecvt_utf16::intern_type + cpp/locale/codecvt + + + std::codecvt_utf16::state_type + cpp/locale/codecvt + + + std::codecvt_utf8 + cpp/locale/codecvt_utf8 + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_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 + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + std::codecvt_utf8::extern_type + + T + id + cpp/locale/codecvt + + + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf8::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + out + cpp/locale/codecvt/out + + (T... args) + + std::codecvt_utf8::state_type + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + + std::codecvt_utf8::extern_type + cpp/locale/codecvt + + + std::codecvt_utf8::intern_type + cpp/locale/codecvt + + + std::codecvt_utf8::state_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16 + cpp/locale/codecvt_utf8_utf16 + + T + always_noconv + cpp/locale/codecvt/always_noconv + + (T... args) + + + T + do_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 + do_length + cpp/locale/codecvt/length + + (T... args) + + + T + do_max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + do_out + cpp/locale/codecvt/out + + (T... args) + + + T + do_unshift + cpp/locale/codecvt/unshift + + (T... args) + + + T + encoding + cpp/locale/codecvt/encoding + + (T... args) + + std::codecvt_utf8_utf16::extern_type + + T + id + cpp/locale/codecvt + + + + + T + in + cpp/locale/codecvt/in + + (T... args) + + std::codecvt_utf8_utf16::intern_type + + T + length + cpp/locale/codecvt/length + + (T... args) + + + T + max_length + cpp/locale/codecvt/max_length + + (T... args) + + + T + out + cpp/locale/codecvt/out + + (T... args) + + std::codecvt_utf8_utf16::state_type + + T + unshift + cpp/locale/codecvt/unshift + + (T... args) + + + + std::codecvt_utf8_utf16::extern_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16::intern_type + cpp/locale/codecvt + + + std::codecvt_utf8_utf16::state_type + cpp/locale/codecvt + + + std::collate + cpp/locale/collate + std::collate::char_type + + T + collate + cpp/locale/collate/collate + + (T... args) + + + T + compare + cpp/locale/collate/compare + + (T... args) + + + T + do_compare + cpp/locale/collate/compare + + (T... args) + + + T + do_hash + cpp/locale/collate/hash + + (T... args) + + + T + do_transform + cpp/locale/collate/transform + + (T... args) + + + T + hash + cpp/locale/collate/hash + + (T... args) + + + T + id + cpp/locale/collate + + + + std::collate::string_type + + T + transform + cpp/locale/collate/transform + + (T... args) + + + T + ~collate + cpp/locale/collate/~collate + + (T... args) + + + + std::collate::char_type + cpp/locale/collate + + + std::collate::string_type + cpp/locale/collate + + + std::collate_byname + cpp/locale/collate_byname + std::collate_byname::char_type + + T + collate_byname + cpp/locale/collate_byname + + (T... args) + + + T + compare + cpp/locale/collate/compare + + (T... args) + + + T + do_compare + cpp/locale/collate/compare + + (T... args) + + + T + do_hash + cpp/locale/collate/hash + + (T... args) + + + T + do_transform + cpp/locale/collate/transform + + (T... args) + + + T + hash + cpp/locale/collate/hash + + (T... args) + + + T + id + cpp/locale/collate + + + + std::collate_byname::string_type + + T + transform + cpp/locale/collate/transform + + (T... args) + + + T + ~collate_byname + cpp/locale/collate_byname + + (T... args) + + + + std::collate_byname::char_type + cpp/locale/collate + + + std::collate_byname::string_type + cpp/locale/collate + + + std::common_comparison_category + cpp/utility/compare/common_comparison_category + + + std::common_comparison_category_t + cpp/utility/compare/common_comparison_category + + + std::common_reference + cpp/types/common_reference + + + std::common_reference_t + cpp/types/common_reference + + + std::common_type + cpp/types/common_type + + + std::common_type_t + cpp/types/common_type + + + std::complex + cpp/numeric/complex + + T + complex + cpp/numeric/complex/complex + + (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 + operator/= + cpp/numeric/complex/operator_arith + + (T... args) + + + T + operator= + cpp/numeric/complex/operator= + + (T... args) + + + T + real + cpp/numeric/complex/real + + (T... args) + + + + std::condition_variable + cpp/thread/condition_variable + + T + condition_variable + cpp/thread/condition_variable/condition_variable + + (T... args) + + + T + native_handle + cpp/thread/condition_variable/native_handle + + (T... args) + + + T + notify_all + cpp/thread/condition_variable/notify_all + + (T... args) + + + T + notify_one + cpp/thread/condition_variable/notify_one + + (T... args) + + + T + wait + cpp/thread/condition_variable/wait + + (T... args) + + + T + wait_for + cpp/thread/condition_variable/wait_for + + (T... args) + + + T + wait_until + cpp/thread/condition_variable/wait_until + + (T... args) + + + T + ~condition_variable + cpp/thread/condition_variable/~condition_variable + + (T... args) + + + + 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_all + cpp/thread/condition_variable_any/notify_all + + (T... args) + + + T + notify_one + cpp/thread/condition_variable_any/notify_one + + (T... args) + + + T + wait + cpp/thread/condition_variable_any/wait + + (T... args) + + + T + wait_for + cpp/thread/condition_variable_any/wait_for + + (T... args) + + + T + wait_until + cpp/thread/condition_variable_any/wait_until + + (T... args) + + + T + ~condition_variable_any + cpp/thread/condition_variable_any/~condition_variable_any + + (T... args) + + + + std::conditional + cpp/types/conditional + + + std::conditional_t + cpp/types/conditional + + + std::conjunction + cpp/types/conjunction + + + std::const_mem_fun1_ref_t + cpp/utility/functional/mem_fun_ref_t + + + std::const_mem_fun1_t + cpp/utility/functional/mem_fun_t + + + std::const_mem_fun_ref_t + cpp/utility/functional/mem_fun_ref_t + + + std::const_mem_fun_t + cpp/utility/functional/mem_fun_t + + + std::coroutine_handle + cpp/coroutine/coroutine_handle + + T + address + cpp/coroutine/coroutine_handle/address + + (T... args) + + + T + coroutine_handle + cpp/coroutine/coroutine_handle/coroutine_handle + + (T... args) + + + T + destroy + cpp/coroutine/coroutine_handle/destroy + + (T... args) + + + T + done + cpp/coroutine/coroutine_handle/done + + (T... args) + + + T + from_address + cpp/coroutine/coroutine_handle/from_address + + (T... args) + + + T + from_promise + cpp/coroutine/coroutine_handle/from_promise + + (T... args) + + + T + operator bool + cpp/coroutine/coroutine_handle/operator_bool + + (T... args) + + + T + operator coroutine_handle<> + cpp/coroutine/coroutine_handle/operator_coroutine_handle_void + + (T... args) + + + T + operator() + cpp/coroutine/coroutine_handle/resume + + (T... args) + + + T + operator= + cpp/coroutine/coroutine_handle/operator= + + (T... args) + + + T + promise + cpp/coroutine/coroutine_handle/promise + + (T... args) + + + T + resume + cpp/coroutine/coroutine_handle/resume + + (T... args) + + + + std::coroutine_traits + cpp/coroutine/coroutine_traits + std::coroutine_traits::promise_type + + + std::coroutine_traits::promise_type + cpp/coroutine/coroutine_traits + + + std::counting_semaphore + cpp/thread/counting_semaphore + + T + acquire + cpp/thread/counting_semaphore/acquire + + (T... args) + + + T + counting_semaphore + cpp/thread/counting_semaphore/counting_semaphore + + (T... args) + + + T + release + cpp/thread/counting_semaphore/release + + (T... args) + + + T + try_acquire + cpp/thread/counting_semaphore/try_acquire + + (T... args) + + + T + try_acquire_for + cpp/thread/counting_semaphore/try_acquire_for + + (T... args) + + + T + try_acquire_until + cpp/thread/counting_semaphore/try_acquire_until + + (T... args) + + + T + ~counting_semaphore + cpp/thread/counting_semaphore/~counting_semaphore + + (T... args) + + + + std::cout + cpp/io/cout + + + std::cregex_iterator + cpp/regex/regex_iterator + + T + cregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (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++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + + std::cregex_token_iterator + cpp/regex/regex_token_iterator + + T + cregex_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++(int) + 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= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + + std::csub_match + cpp/regex/sub_match + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + T + csub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + first + cpp/utility/pair + + + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + matched + cpp/regex/sub_match + + + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + second + cpp/utility/pair + + + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + + std::ctype + cpp/locale/ctype + + T + ctype + cpp/locale/ctype/ctype + + (T... args) + + + T + do_is + cpp/locale/ctype/is + + (T... args) + + + T + do_narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + do_scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + do_scan_not + cpp/locale/ctype/scan_not + + (T... args) + + + T + do_tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + do_widen + cpp/locale/ctype/widen + + (T... args) + + + T + id + cpp/locale/ctype + + + + + T + is + cpp/locale/ctype/is + + (T... args) + + std::ctype::mask + + T + narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + scan_not + cpp/locale/ctype/scan_not + + (T... args) + + + T + tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + widen + cpp/locale/ctype/widen + + (T... args) + + + T + ~ctype + cpp/locale/ctype/~ctype + + (T... args) + + + + std::ctype::mask + cpp/locale/ctype_base + + + std::ctype_base + cpp/locale/ctype_base + std::ctype_base::mask + + + std::ctype_base::mask + cpp/locale/ctype_base + + + std::ctype_byname + cpp/locale/ctype_byname + + T + ctype_byname + cpp/locale/ctype_byname + + (T... args) + + + T + do_is + cpp/locale/ctype/is + + (T... args) + + + T + do_narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + do_scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + do_scan_not + cpp/locale/ctype/scan_not + + (T... args) + + + T + do_tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + do_toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + do_widen + cpp/locale/ctype/widen + + (T... args) + + + T + id + cpp/locale/ctype + + + + + T + is + cpp/locale/ctype/is + + (T... args) + + std::ctype_byname::mask + + T + narrow + cpp/locale/ctype/narrow + + (T... args) + + + T + scan_is + cpp/locale/ctype/scan_is + + (T... args) + + + T + scan_not + cpp/locale/ctype/scan_not + + (T... args) + + + T + tolower + cpp/locale/ctype/tolower + + (T... args) + + + T + toupper + cpp/locale/ctype/toupper + + (T... args) + + + T + widen + cpp/locale/ctype/widen + + (T... args) + + + T + ~ctype_byname + cpp/locale/ctype_byname + + (T... args) + + + + std::ctype_byname::mask + cpp/locale/ctype_base + + + std::deca + cpp/numeric/ratio/ratio + + + std::decay + cpp/types/decay + + + std::decay_t + cpp/types/decay + + + std::deci + cpp/numeric/ratio/ratio + + + 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::default_random_engine + cpp/numeric/random + + + std::default_searcher + cpp/utility/functional/default_searcher + + T + default_searcher + cpp/utility/functional/default_searcher + + (T... args) + + + T + operator() + cpp/utility/functional/default_searcher + + (T... args) + + + + std::defer_lock_t + cpp/thread/lock_tag_t + + + std::deque + cpp/container/deque + + T + assign + cpp/container/deque/assign + + (T... args) + + + T + at + cpp/container/deque/at + + (T... args) + + + T + back + cpp/container/deque/back + + (T... args) + + + T + begin + cpp/container/deque/begin + + (T... args) + + + T + cbegin + cpp/container/deque/begin + + (T... args) + + + T + cend + cpp/container/deque/end + + (T... args) + + + T + clear + cpp/container/deque/clear + + (T... args) + + + T + crbegin + cpp/container/deque/rbegin + + (T... args) + + + T + crend + cpp/container/deque/rend + + (T... args) + + + T + deque + cpp/container/deque/deque + + (T... args) + + + T + emplace + cpp/container/deque/emplace + + (T... args) + + + T + emplace_back + cpp/container/deque/emplace_back + + (T... args) + + + T + emplace_front + cpp/container/deque/emplace_front + + (T... args) + + + T + empty + cpp/container/deque/empty + + (T... args) + + + T + end + cpp/container/deque/end + + (T... args) + + + T + erase + cpp/container/deque/erase + + (T... args) + + + T + front + cpp/container/deque/front + + (T... args) + + + T + get_allocator + cpp/container/deque/get_allocator + + (T... args) + + + T + insert + cpp/container/deque/insert + + (T... args) + + + T + max_size + cpp/container/deque/max_size + + (T... args) + + + T + operator= + cpp/container/deque/operator= + + (T... args) + + + T + operator[] + cpp/container/deque/operator_at + + (T... args) + + + T + pop_back + cpp/container/deque/pop_back + + (T... args) + + + T + pop_front + cpp/container/deque/pop_front + + (T... args) + + + T + push_back + cpp/container/deque/push_back + + (T... args) + + + T + push_front + cpp/container/deque/push_front + + (T... args) + + + T + rbegin + cpp/container/deque/rbegin + + (T... args) + + + T + rend + cpp/container/deque/rend + + (T... args) + + + T + resize + cpp/container/deque/resize + + (T... args) + + + T + shrink_to_fit + cpp/container/deque/shrink_to_fit + + (T... args) + + + T + size + cpp/container/deque/size + + (T... args) + + + T + swap + cpp/container/deque/swap + + (T... args) + + + T + ~deque + cpp/container/deque/~deque + + (T... args) + + + + std::discard_block_engine + cpp/numeric/random/discard_block_engine + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + discard_block_engine + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (T... args) + + + + std::discrete_distribution + cpp/numeric/random/discrete_distribution + + T + discrete_distribution + cpp/numeric/random/discrete_distribution/discrete_distribution + + (T... args) + + + T + max + cpp/numeric/random/discrete_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/discrete_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/discrete_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/discrete_distribution/param + + (T... args) + + + T + probabilities + cpp/numeric/random/discrete_distribution/probabilities + + (T... args) + + + T + reset + cpp/numeric/random/discrete_distribution/reset + + (T... args) + + + + std::disjunction + cpp/types/disjunction + + + std::div_t + cpp/numeric/math/div + + T + quot + cpp/numeric/math/div + + + + + T + rem + cpp/numeric/math/div + + + + + + std::divides + cpp/utility/functional/divides + + T + operator() + cpp/utility/functional/divides + + (T... args) + + + + 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::enable_if + cpp/types/enable_if + + + std::enable_if_t + cpp/types/enable_if + + + 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 + weak_from_this + cpp/memory/enable_shared_from_this/weak_from_this + + (T... args) + + + T + ~enable_shared_from_this + cpp/memory/enable_shared_from_this/~enable_shared_from_this + + (T... args) + + + + std::equal_to + cpp/utility/functional/equal_to + + T + operator() + cpp/utility/functional/equal_to + + (T... args) + + + + std::errc + cpp/error/errc + + + std::error_category + cpp/error/error_category + + T + default_error_condition + cpp/error/error_category/default_error_condition + + (T... args) + + + T + equivalent + cpp/error/error_category/equivalent + + (T... args) + + + T + error_category + cpp/error/error_category/error_category + + (T... args) + + + T + message + cpp/error/error_category/message + + (T... args) + + + 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 + operator== + cpp/error/error_category/operator_cmp + + (T... args) + + + T + ~error_category + cpp/error/error_category/~error_category + + (T... args) + + + + std::error_code + cpp/error/error_code + + T + assign + cpp/error/error_code/assign + + (T... args) + + + T + category + cpp/error/error_code/category + + (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 + error_code + cpp/error/error_code/error_code + + (T... args) + + + T + message + cpp/error/error_code/message + + (T... args) + + + T + operator bool + cpp/error/error_code/operator_bool + + (T... args) + + + T + operator= + cpp/error/error_code/operator= + + (T... args) + + + T + value + cpp/error/error_code/value + + (T... args) + + + + std::error_condition + cpp/error/error_condition + + T + assign + cpp/error/error_condition/assign + + (T... args) + + + T + category + cpp/error/error_condition/category + + (T... args) + + + T + clear + cpp/error/error_condition/clear + + (T... args) + + + T + error_condition + cpp/error/error_condition/error_condition + + (T... args) + + + T + message + cpp/error/error_condition/message + + (T... args) + + + T + operator bool + cpp/error/error_condition/operator_bool + + (T... args) + + + T + operator= + cpp/error/error_condition/operator= + + (T... args) + + + T + value + cpp/error/error_condition/value + + (T... args) + + + + std::exa + cpp/numeric/ratio/ratio + + + std::exception + cpp/error/exception + + T + exception + cpp/error/exception/exception + + (T... args) + + + T + operator= + cpp/error/exception/operator= + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + T + ~exception + cpp/error/exception/~exception + + (T... args) + + + + std::exception_ptr + cpp/error/exception_ptr + + + std::execution + + std::execution::parallel_policy + std::execution::parallel_unsequenced_policy + std::execution::sequenced_policy + std::execution::unsequenced_policy + + + std::execution::parallel_policy + cpp/algorithm/execution_policy_tag_t + + + std::execution::parallel_unsequenced_policy + cpp/algorithm/execution_policy_tag_t + + + std::execution::sequenced_policy + cpp/algorithm/execution_policy_tag_t + + + std::execution::unsequenced_policy + cpp/algorithm/execution_policy_tag_t + + + std::experimental + + + T + alignment_of_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::any + + T + any_cast + cpp/experimental/any/any_cast + + (T... args) + + + T + apply + cpp/experimental/apply + + (T... args) + + std::experimental::atomic_shared_ptr + std::experimental::atomic_weak_ptr + std::experimental::bad_any_cast + std::experimental::bad_optional_access + std::experimental::barrier + std::experimental::basic_string_view + std::experimental::boyer_moore_horspool_searcher + std::experimental::boyer_moore_searcher + std::experimental::conjunction + std::experimental::default_searcher + std::experimental::detected_or + std::experimental::detected_or_t + std::experimental::disjunction + std::experimental::erase(std + std::experimental::erase_if(std + std::experimental::erased_type + + T + extent_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::filesystem + std::experimental::flex_barrier + std::experimental::function + std::experimental::future + + T + gcd + cpp/experimental/gcd + + (T... args) + + + T + get_underlying + cpp/experimental/propagate_const/get_underlying + + (T... args) + + + T + has_virtual_destructor_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::in_place_t + std::experimental::invocation_type + + T + is_abstract_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_arithmetic_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_array_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_base_of_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_bind_expression_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_class_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_compound_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_const_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_convertible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_copy_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_copy_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_default_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_destructible_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::is_detected + std::experimental::is_detected_convertible + + T + is_detected_convertible_v + cpp/experimental/is_detected + + + + std::experimental::is_detected_exact + + T + is_detected_exact_v + cpp/experimental/is_detected + + + + + T + is_detected_v + cpp/experimental/is_detected + + + + + T + is_empty_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_enum_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_error_code_enum_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_error_condition_enum_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_final_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_floating_point_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_function_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_fundamental_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_integral_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_literal_type_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_lvalue_reference_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_member_function_pointer_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_member_object_pointer_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_member_pointer_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_move_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_move_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_copy_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_copy_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_default_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_destructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_move_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_nothrow_move_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_null_pointer_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_object_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_placeholder_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_pod_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_pointer_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_polymorphic_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_reference_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_rvalue_reference_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_same_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_scalar_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_signed_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_standard_layout_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivial_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_copy_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_copy_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_copyable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_default_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_destructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_move_assignable_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_trivially_move_constructible_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_union_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_unsigned_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_void_v + cpp/experimental/type_trait_variable_templates + + + + + T + is_volatile_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::latch + + T + lcm + cpp/experimental/lcm + + (T... args) + + + T + make_array + cpp/experimental/make_array + + (T... args) + + + T + make_boyer_moore_horspool_searcher + cpp/experimental/boyer_moore_horspool_searcher + + (T... args) + + + T + make_boyer_moore_searcher + cpp/experimental/boyer_moore_searcher + + (T... args) + + + T + make_default_searcher + cpp/experimental/default_searcher + + (T... args) + + + T + make_exceptional_future + cpp/experimental/make_exceptional_future + + (T... args) + + + T + make_observer + cpp/experimental/observer_ptr/make_observer + + (T... args) + + + T + make_optional + cpp/experimental/optional/make_optional + + (T... args) + + + T + make_ostream_joiner + cpp/experimental/ostream_joiner/make_ostream_joiner + + (T... args) + + + T + make_ready_future + cpp/experimental/make_ready_future + + (T... args) + + std::experimental::negation + std::experimental::nonesuch + + T + not_fn + cpp/experimental/not_fn + + (T... args) + + std::experimental::nullopt_t + std::experimental::observer_ptr + std::experimental::optional + std::experimental::ostream_joiner + std::experimental::packaged_task (Concurrency TS) + std::experimental::packaged_task (Library Fundamentals TS) + std::experimental::parallel + std::experimental::pmr + std::experimental::promise (Concurrency TS) + std::experimental::promise (Library Fundamentals TS) + std::experimental::propagate_const + + T + randint + cpp/experimental/randint + + (T... args) + + + T + rank_v + cpp/experimental/type_trait_variable_templates + + + + + T + ratio_equal_v + cpp/experimental/type_trait_variable_templates + + + + + T + ratio_greater_equal_v + cpp/experimental/type_trait_variable_templates + + + + + T + ratio_greater_v + cpp/experimental/type_trait_variable_templates + + + + + T + ratio_less_equal_v + cpp/experimental/type_trait_variable_templates + + + + + T + ratio_less_v + cpp/experimental/type_trait_variable_templates + + + + + T + ratio_not_equal_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::raw_invocation_type + + T + reseed + cpp/experimental/reseed + + (T... args) + + + T + sample + cpp/experimental/sample + + (T... args) + + + T + search + cpp/experimental/search + + (T... args) + + std::experimental::shared_future + + T + shuffle + cpp/experimental/shuffle + + (T... args) + + std::experimental::source_location + std::experimental::string_view + + T + to_array + cpp/experimental/to_array + + (T... args) + + + T + treat_as_floating_point_v + cpp/experimental/type_trait_variable_templates + + + + + T + tuple_size_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::u16string_view + std::experimental::u32string_view + + T + uses_allocator_v + cpp/experimental/type_trait_variable_templates + + + + std::experimental::void_t + + T + when_all + cpp/experimental/when_all + + (T... args) + + + T + when_any + cpp/experimental/when_any + + (T... args) + + std::experimental::wstring_view + + + std::experimental::any + cpp/experimental/any + + T + any + cpp/experimental/any/any + + (T... args) + + + T + clear + cpp/experimental/any/clear + + (T... args) + + + T + empty + cpp/experimental/any/empty + + (T... args) + + + T + operator= + cpp/experimental/any/operator= + + (T... args) + + + T + swap + cpp/experimental/any/swap + + (T... args) + + + T + type + cpp/experimental/any/type + + (T... args) + + + T + ~any + cpp/experimental/any/~any + + (T... args) + + + + std::experimental::atomic_shared_ptr + cpp/experimental/atomic_shared_ptr + + T + atomic_shared_ptr + cpp/experimental/atomic_shared_ptr/atomic_shared_ptr + + (T... args) + + + T + compare_exchange_strong + cpp/experimental/atomic_shared_ptr/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/experimental/atomic_shared_ptr/compare_exchange + + (T... args) + + + T + exchange + cpp/experimental/atomic_shared_ptr/exchange + + (T... args) + + + T + is_lock_free + cpp/experimental/atomic_shared_ptr/is_lock_free + + (T... args) + + + T + load + cpp/experimental/atomic_shared_ptr/load + + (T... args) + + + T + operator shared_ptr<T> + cpp/experimental/atomic_shared_ptr/operator_shared_ptr + + (T... args) + + + T + operator= + cpp/experimental/atomic_shared_ptr/operator= + + (T... args) + + + T + store + cpp/experimental/atomic_shared_ptr/store + + (T... args) + + + + std::experimental::atomic_weak_ptr + cpp/experimental/atomic_weak_ptr + + T + atomic_weak_ptr + cpp/experimental/atomic_weak_ptr/atomic_weak_ptr + + (T... args) + + + T + compare_exchange_strong + cpp/experimental/atomic_weak_ptr/compare_exchange + + (T... args) + + + T + compare_exchange_weak + cpp/experimental/atomic_weak_ptr/compare_exchange + + (T... args) + + + T + exchange + cpp/experimental/atomic_weak_ptr/exchange + + (T... args) + + + T + is_lock_free + cpp/experimental/atomic_weak_ptr/is_lock_free + + (T... args) + + + T + load + cpp/experimental/atomic_weak_ptr/load + + (T... args) + + + T + operator weak_ptr<T> + cpp/experimental/atomic_weak_ptr/operator_weak_ptr + + (T... args) + + + T + operator= + cpp/experimental/atomic_weak_ptr/operator= + + (T... args) + + + T + store + cpp/experimental/atomic_weak_ptr/store + + (T... args) + + + + std::experimental::bad_any_cast + cpp/experimental/any/bad_any_cast + + + std::experimental::bad_optional_access + cpp/experimental/optional/bad_optional_access + + T + bad_optional_access + cpp/experimental/optional/bad_optional_access + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::experimental::barrier + cpp/experimental/barrier + + T + arrive_and_drop + cpp/experimental/barrier/arrive_and_drop + + (T... args) + + + T + arrive_and_wait + cpp/experimental/barrier/arrive_and_wait + + (T... args) + + + T + barrier + cpp/experimental/barrier/barrier + + (T... args) + + + T + ~barrier + cpp/experimental/barrier/~barrier + + (T... args) + + + + std::experimental::basic_string_view + cpp/experimental/basic_string_view + + T + at + cpp/experimental/basic_string_view/at + + (T... args) + + + T + back + cpp/experimental/basic_string_view/back + + (T... args) + + + T + basic_string_view + cpp/experimental/basic_string_view/basic_string_view + + (T... args) + + + T + begin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cend + cpp/experimental/basic_string_view/end + + (T... args) + + + T + compare + cpp/experimental/basic_string_view/compare + + (T... args) + + + T + copy + cpp/experimental/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + data + cpp/experimental/basic_string_view/data + + (T... args) + + + T + empty + cpp/experimental/basic_string_view/empty + + (T... args) + + + T + end + cpp/experimental/basic_string_view/end + + (T... args) + + + T + find + cpp/experimental/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/experimental/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/experimental/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/experimental/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/experimental/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/experimental/basic_string_view/front + + (T... args) + + + T + length + cpp/experimental/basic_string_view/size + + (T... args) + + + T + max_size + cpp/experimental/basic_string_view/max_size + + (T... args) + + + T + operator basic_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + operator= + cpp/experimental/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/experimental/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/experimental/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/experimental/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/experimental/basic_string_view/rfind + + (T... args) + + + T + size + cpp/experimental/basic_string_view/size + + (T... args) + + + T + substr + cpp/experimental/basic_string_view/substr + + (T... args) + + + T + swap + cpp/experimental/basic_string_view/swap + + (T... args) + + + T + to_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + + std::experimental::boyer_moore_horspool_searcher + cpp/experimental/boyer_moore_horspool_searcher + + + std::experimental::boyer_moore_searcher + cpp/experimental/boyer_moore_searcher + + + std::experimental::conjunction + cpp/experimental/conjunction + + + std::experimental::default_searcher + cpp/experimental/default_searcher + + + std::experimental::detected_or + cpp/experimental/is_detected + + + std::experimental::detected_or_t + cpp/experimental/is_detected + + + std::experimental::disjunction + cpp/experimental/disjunction + + + std::experimental::erase(std + + + T + basic_string) + cpp/experimental/basic_string/erase + + (T... args) + + + T + deque) + cpp/experimental/deque/erase + + (T... args) + + + T + forward_list) + cpp/experimental/forward_list/erase + + (T... args) + + + T + list) + cpp/experimental/list/erase + + (T... args) + + + T + vector) + cpp/experimental/vector/erase + + (T... args) + + + + std::experimental::erase_if(std + + + T + basic_string) + cpp/experimental/basic_string/erase_if + + (T... args) + + + T + deque) + cpp/experimental/deque/erase_if + + (T... args) + + + T + forward_list) + cpp/experimental/forward_list/erase_if + + (T... args) + + + T + list) + cpp/experimental/list/erase_if + + (T... args) + + + T + map) + cpp/experimental/map/erase_if + + (T... args) + + + T + multimap) + cpp/experimental/multimap/erase_if + + (T... args) + + + T + multiset) + cpp/experimental/multiset/erase_if + + (T... args) + + + T + set) + cpp/experimental/set/erase_if + + (T... args) + + + T + unordered_map) + cpp/experimental/unordered_map/erase_if + + (T... args) + + + T + unordered_multimap) + cpp/experimental/unordered_multimap/erase_if + + (T... args) + + + T + unordered_multiset) + cpp/experimental/unordered_multiset/erase_if + + (T... args) + + + T + unordered_set) + cpp/experimental/unordered_set/erase_if + + (T... args) + + + T + vector) + cpp/experimental/vector/erase_if + + (T... args) + + + + std::experimental::erased_type + cpp/experimental/erased_type + + + std::experimental::filesystem + + + T + absolute + cpp/experimental/fs/absolute + + (T... args) + + + T + canonical + cpp/experimental/fs/canonical + + (T... args) + + + T + copy + cpp/experimental/fs/copy + + (T... args) + + + T + copy_file + cpp/experimental/fs/copy_file + + (T... args) + + std::experimental::filesystem::copy_options + + T + copy_symlink + cpp/experimental/fs/copy_symlink + + (T... args) + + + T + create_directories + cpp/experimental/fs/create_directory + + (T... args) + + + T + create_directory + cpp/experimental/fs/create_directory + + (T... args) + + + T + create_directory_symlink + cpp/experimental/fs/create_symlink + + (T... args) + + + T + create_hard_link + cpp/experimental/fs/create_hard_link + + (T... args) + + + T + create_symlink + cpp/experimental/fs/create_symlink + + (T... args) + + + T + current_path + cpp/experimental/fs/current_path + + (T... args) + + std::experimental::filesystem::directory_entry + std::experimental::filesystem::directory_iterator + std::experimental::filesystem::directory_options + + T + equivalent + cpp/experimental/fs/equivalent + + (T... args) + + + T + exists + cpp/experimental/fs/exists + + (T... args) + + + T + file_size + cpp/experimental/fs/file_size + + (T... args) + + std::experimental::filesystem::file_status + std::experimental::filesystem::file_time_type + std::experimental::filesystem::file_type + std::experimental::filesystem::filesystem_error + + T + hard_link_count + cpp/experimental/fs/hard_link_count + + (T... args) + + + T + is_block_file + cpp/experimental/fs/is_block_file + + (T... args) + + + T + is_character_file + cpp/experimental/fs/is_character_file + + (T... args) + + + T + is_directory + cpp/experimental/fs/is_directory + + (T... args) + + + T + is_empty + cpp/experimental/fs/is_empty + + (T... args) + + + T + is_fifo + cpp/experimental/fs/is_fifo + + (T... args) + + + T + is_other + cpp/experimental/fs/is_other + + (T... args) + + + T + is_regular_file + cpp/experimental/fs/is_regular_file + + (T... args) + + + T + is_socket + cpp/experimental/fs/is_socket + + (T... args) + + + T + is_symlink + cpp/experimental/fs/is_symlink + + (T... args) + + + T + last_write_time + cpp/experimental/fs/last_write_time + + (T... args) + + std::experimental::filesystem::path + + T + permissions + cpp/experimental/fs/permissions + + (T... args) + + std::experimental::filesystem::perms + + T + read_symlink + cpp/experimental/fs/read_symlink + + (T... args) + + std::experimental::filesystem::recursive_directory_iterator + + T + remove + cpp/experimental/fs/remove + + (T... args) + + + T + remove_all + cpp/experimental/fs/remove + + (T... args) + + + T + rename + cpp/experimental/fs/rename + + (T... args) + + + T + resize_file + cpp/experimental/fs/resize_file + + (T... args) + + + T + space + cpp/experimental/fs/space + + (T... args) + + std::experimental::filesystem::space_info + + T + status + cpp/experimental/fs/status + + (T... args) + + + T + status_known + cpp/experimental/fs/status_known + + (T... args) + + + T + symlink_status + cpp/experimental/fs/status + + (T... args) + + + T + system_complete + cpp/experimental/fs/absolute + + (T... args) + + + T + temp_directory_path + cpp/experimental/fs/temp_directory_path + + (T... args) + + + + std::experimental::filesystem::copy_options + cpp/experimental/fs/copy_options + + + std::experimental::filesystem::directory_entry + cpp/experimental/fs/directory_entry + + T + assign + cpp/experimental/fs/directory_entry/assign + + (T... args) + + + T + directory_entry + cpp/experimental/fs/directory_entry/directory_entry + + (T... args) + + + T + operator= + cpp/experimental/fs/directory_entry/operator= + + (T... args) + + + T + path + cpp/experimental/fs/directory_entry/path + + (T... args) + + + T + replace_filename + cpp/experimental/fs/directory_entry/replace_filename + + (T... args) + + + T + status + cpp/experimental/fs/directory_entry/status + + (T... args) + + + T + symlink_status + cpp/experimental/fs/directory_entry/status + + (T... args) + + + + std::experimental::filesystem::directory_iterator + cpp/experimental/fs/directory_iterator + + T + directory_iterator + cpp/experimental/fs/directory_iterator/directory_iterator + + (T... args) + + + T + increment + cpp/experimental/fs/directory_iterator/increment + + (T... args) + + + T + operator* + cpp/experimental/fs/directory_iterator/operator* + + (T... args) + + + T + operator++ + cpp/experimental/fs/directory_iterator/increment + + (T... args) + + + T + operator-> + cpp/experimental/fs/directory_iterator/operator* + + (T... args) + + + T + operator= + cpp/experimental/fs/directory_iterator/operator= + + (T... args) + + + + std::experimental::filesystem::directory_options + cpp/experimental/fs/directory_options + + + std::experimental::filesystem::file_status + cpp/experimental/fs/file_status + + T + file_status + cpp/experimental/fs/file_status/file_status + + (T... args) + + + T + operator= + cpp/experimental/fs/file_status/operator= + + (T... args) + + + T + permissions + cpp/experimental/fs/file_status/permissions + + (T... args) + + + T + type + cpp/experimental/fs/file_status/type + + (T... args) + + + + std::experimental::filesystem::file_time_type + cpp/experimental/fs/file_time_type + + + std::experimental::filesystem::file_type + cpp/experimental/fs/file_type + + + std::experimental::filesystem::filesystem_error + cpp/experimental/fs/filesystem_error + + T + filesystem_error + cpp/experimental/fs/filesystem_error/filesystem_error + + (T... args) + + + T + operator= + cpp/experimental/fs/filesystem_error/operator= + + (T... args) + + + T + path1 + cpp/experimental/fs/filesystem_error/path + + (T... args) + + + T + path2 + cpp/experimental/fs/filesystem_error/path + + (T... args) + + + T + what + cpp/experimental/fs/filesystem_error/what + + (T... args) + + + + std::experimental::filesystem::path + cpp/experimental/fs/path + + T + append + cpp/experimental/fs/path/append + + (T... args) + + + T + assign + cpp/experimental/fs/path/assign + + (T... args) + + + T + begin + cpp/experimental/fs/path/begin + + (T... args) + + + T + c_str + cpp/experimental/fs/path/native + + (T... args) + + + T + clear + cpp/experimental/fs/path/clear + + (T... args) + + + T + compare + cpp/experimental/fs/path/compare + + (T... args) + + + T + concat + cpp/experimental/fs/path/concat + + (T... args) + + + T + empty + cpp/experimental/fs/path/empty + + (T... args) + + + T + end + cpp/experimental/fs/path/begin + + (T... args) + + + T + extension + cpp/experimental/fs/path/extension + + (T... args) + + + T + filename + cpp/experimental/fs/path/filename + + (T... args) + + + T + generic_string + cpp/experimental/fs/path/generic_string + + (T... args) + + + T + generic_u16string + cpp/experimental/fs/path/generic_string + + (T... args) + + + T + generic_u32string + cpp/experimental/fs/path/generic_string + + (T... args) + + + T + generic_u8string + cpp/experimental/fs/path/generic_string + + (T... args) + + + T + generic_wstring + cpp/experimental/fs/path/generic_string + + (T... args) + + + T + has_extension + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_filename + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_parent_path + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_relative_path + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_root_directory + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_root_name + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_root_path + cpp/experimental/fs/path/has_path + + (T... args) + + + T + has_stem + cpp/experimental/fs/path/has_path + + (T... args) + + + T + is_absolute + cpp/experimental/fs/path/is_absrel + + (T... args) + + + T + is_relative + cpp/experimental/fs/path/is_absrel + + (T... args) + + + T + make_preferred + cpp/experimental/fs/path/make_preferred + + (T... args) + + + T + native + cpp/experimental/fs/path/native + + (T... args) + + + T + operator string_type + cpp/experimental/fs/path/native + + (T... args) + + + T + operator+= + cpp/experimental/fs/path/concat + + (T... args) + + + T + operator/= + cpp/experimental/fs/path/append + + (T... args) + + + T + operator= + cpp/experimental/fs/path/operator= + + (T... args) + + + T + parent_path + cpp/experimental/fs/path/parent_path + + (T... args) + + + T + path + cpp/experimental/fs/path/path + + (T... args) + + + T + relative_path + cpp/experimental/fs/path/relative_path + + (T... args) + + + T + remove_filename + cpp/experimental/fs/path/remove_filename + + (T... args) + + + T + replace_extension + cpp/experimental/fs/path/replace_extension + + (T... args) + + + T + replace_filename + cpp/experimental/fs/path/replace_filename + + (T... args) + + + T + root_directory + cpp/experimental/fs/path/root_directory + + (T... args) + + + T + root_name + cpp/experimental/fs/path/root_name + + (T... args) + + + T + root_path + cpp/experimental/fs/path/root_path + + (T... args) + + + T + stem + cpp/experimental/fs/path/stem + + (T... args) + + + T + string + cpp/experimental/fs/path/string + + (T... args) + + + T + swap + cpp/experimental/fs/path/swap + + (T... args) + + + T + u16string + cpp/experimental/fs/path/string + + (T... args) + + + T + u32string + cpp/experimental/fs/path/string + + (T... args) + + + T + u8string + cpp/experimental/fs/path/string + + (T... args) + + + T + wstring + cpp/experimental/fs/path/string + + (T... args) + + + T + ~path + cpp/experimental/fs/path/~path + + (T... args) + + + + std::experimental::filesystem::perms + cpp/experimental/fs/perms + + + std::experimental::filesystem::recursive_directory_iterator + cpp/experimental/fs/recursive_directory_iterator + + T + depth + cpp/experimental/fs/recursive_directory_iterator/depth + + (T... args) + + + T + disable_recursion_pending + cpp/experimental/fs/recursive_directory_iterator/disable_recursion_pending + + (T... args) + + + T + increment + cpp/experimental/fs/recursive_directory_iterator/increment + + (T... args) + + + T + operator* + cpp/experimental/fs/recursive_directory_iterator/operator* + + (T... args) + + + T + operator++ + cpp/experimental/fs/recursive_directory_iterator/increment + + (T... args) + + + T + operator-> + cpp/experimental/fs/recursive_directory_iterator/operator* + + (T... args) + + + T + operator= + cpp/experimental/fs/recursive_directory_iterator/operator= + + (T... args) + + + T + options + cpp/experimental/fs/recursive_directory_iterator/options + + (T... args) + + + T + pop + cpp/experimental/fs/recursive_directory_iterator/pop + + (T... args) + + + T + recursion_pending + cpp/experimental/fs/recursive_directory_iterator/recursion_pending + + (T... args) + + + T + recursive_directory_iterator + cpp/experimental/fs/recursive_directory_iterator/recursive_directory_iterator + + (T... args) + + + + std::experimental::filesystem::space_info + cpp/experimental/fs/space_info + + T + available + cpp/experimental/fs/space_info + + + + + T + capacity + cpp/experimental/fs/space_info + + + + + T + free + cpp/experimental/fs/space_info + + + + + + std::experimental::flex_barrier + cpp/experimental/flex_barrier + + T + arrive_and_drop + cpp/experimental/flex_barrier/arrive_and_drop + + (T... args) + + + T + arrive_and_wait + cpp/experimental/flex_barrier/arrive_and_wait + + (T... args) + + + T + flex_barrier + cpp/experimental/flex_barrier/flex_barrier + + (T... args) + + + T + ~flex_barrier + cpp/experimental/flex_barrier/~flex_barrier + + (T... args) + + + + std::experimental::function + cpp/experimental/function + + + std::experimental::future + cpp/experimental/future + + T + future + cpp/experimental/future/future + + (T... args) + + + T + is_ready + cpp/experimental/future/is_ready + + (T... args) + + + T + operator= + cpp/experimental/future/operator= + + (T... args) + + + T + then + cpp/experimental/future/then + + (T... args) + + + + std::experimental::in_place_t + cpp/experimental/optional/in_place_t + + + std::experimental::invocation_type + cpp/experimental/invocation_type + + + std::experimental::is_detected + cpp/experimental/is_detected + + + std::experimental::is_detected_convertible + cpp/experimental/is_detected + + + std::experimental::is_detected_exact + cpp/experimental/is_detected + + + std::experimental::latch + cpp/experimental/latch + + T + count_down + cpp/experimental/latch/count_down + + (T... args) + + + T + count_down_and_wait + cpp/experimental/latch/count_down_and_wait + + (T... args) + + + T + is_ready + cpp/experimental/latch/is_ready + + (T... args) + + + T + latch + cpp/experimental/latch/latch + + (T... args) + + + T + wait + cpp/experimental/latch/wait + + (T... args) + + + T + ~latch + cpp/experimental/latch/~latch + + (T... args) + + + + std::experimental::negation + cpp/experimental/negation + + + std::experimental::nonesuch + cpp/experimental/nonesuch + + + std::experimental::nullopt_t + cpp/experimental/optional/nullopt_t + + + std::experimental::observer_ptr + cpp/experimental/observer_ptr + + T + get + cpp/experimental/observer_ptr/get + + (T... args) + + + T + observer_ptr + cpp/experimental/observer_ptr/observer_ptr + + (T... args) + + + T + operator bool + cpp/experimental/observer_ptr/operator_bool + + (T... args) + + + T + operator element_type* + cpp/experimental/observer_ptr/operator_pointer + + (T... args) + + + T + operator* + cpp/experimental/observer_ptr/operator* + + (T... args) + + + T + operator-> + cpp/experimental/observer_ptr/operator* + + (T... args) + + + T + release + cpp/experimental/observer_ptr/release + + (T... args) + + + T + reset + cpp/experimental/observer_ptr/reset + + (T... args) + + + T + swap + cpp/experimental/observer_ptr/swap + + (T... args) + + + + std::experimental::optional + cpp/experimental/optional + + T + emplace + cpp/experimental/optional/emplace + + (T... args) + + + T + operator bool + cpp/experimental/optional/operator_bool + + (T... args) + + + T + operator* + cpp/experimental/optional/operator* + + (T... args) + + + T + operator-> + cpp/experimental/optional/operator* + + (T... args) + + + T + operator= + cpp/experimental/optional/operator= + + (T... args) + + + T + optional + cpp/experimental/optional/optional + + (T... args) + + + T + swap + cpp/experimental/optional/swap + + (T... args) + + + T + value + cpp/experimental/optional/value + + (T... args) + + + T + value_or + cpp/experimental/optional/value_or + + (T... args) + + + T + ~optional + cpp/experimental/optional/~optional + + (T... args) + + + + std::experimental::ostream_joiner + cpp/experimental/ostream_joiner + + T + operator* + cpp/experimental/ostream_joiner/operator* + + (T... args) + + + T + operator++ + cpp/experimental/ostream_joiner/operator_arith + + (T... args) + + + T + operator++(int) + cpp/experimental/ostream_joiner/operator_arith + + (T... args) + + + T + operator= + cpp/experimental/ostream_joiner/operator= + + (T... args) + + + T + ostream_joiner + cpp/experimental/ostream_joiner/ostream_joiner + + (T... args) + + + + std::experimental::packaged_task (Concurrency TS) + cpp/experimental/concurrency/packaged_task + + + std::experimental::packaged_task (Library Fundamentals TS) + cpp/experimental/lib_extensions/packaged_task + + + std::experimental::parallel + + std::experimental::parallel::is_execution_policy + std::experimental::parallel::parallel_execution_policy + std::experimental::parallel::parallel_vector_execution_policy + + T + reduce + cpp/experimental/reduce + + (T... args) + + std::experimental::parallel::sequential_execution_policy + + T + transform_reduce + cpp/experimental/transform_reduce + + (T... args) + + + + std::experimental::parallel::is_execution_policy + cpp/experimental/is_execution_policy + + + std::experimental::parallel::parallel_execution_policy + cpp/experimental/execution_policy_tag_t + + + std::experimental::parallel::parallel_vector_execution_policy + cpp/experimental/execution_policy_tag_t + + + std::experimental::parallel::sequential_execution_policy + cpp/experimental/execution_policy_tag_t + + + std::experimental::pmr + + + T + get_default_resource + cpp/experimental/get_default_resource + + (T... args) + + std::experimental::pmr::memory_resource + std::experimental::pmr::monotonic_buffer_resource + + T + new_delete_resource + cpp/experimental/new_delete_resource + + (T... args) + + + T + null_memory_resource + cpp/experimental/null_memory_resource + + (T... args) + + std::experimental::pmr::polymorphic_allocator + std::experimental::pmr::pool_options + std::experimental::pmr::resource_adaptor + + T + set_default_resource + cpp/experimental/set_default_resource + + (T... args) + + std::experimental::pmr::synchronized_pool_resource + std::experimental::pmr::unsynchronized_pool_resource + + + std::experimental::pmr::memory_resource + cpp/experimental/memory_resource + + T + allocate + cpp/experimental/memory_resource/allocate + + (T... args) + + + T + deallocate + cpp/experimental/memory_resource/deallocate + + (T... args) + + + T + do_allocate + cpp/experimental/memory_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/experimental/memory_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/experimental/memory_resource/do_is_equal + + (T... args) + + + T + is_equal + cpp/experimental/memory_resource/is_equal + + (T... args) + + + T + memory_resource + cpp/experimental/memory_resource/memory_resource + + (T... args) + + + + std::experimental::pmr::monotonic_buffer_resource + cpp/experimental/monotonic_buffer_resource + + T + do_allocate + cpp/experimental/monotonic_buffer_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/experimental/monotonic_buffer_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/experimental/monotonic_buffer_resource/do_is_equal + + (T... args) + + + T + monotonic_buffer_resource + cpp/experimental/monotonic_buffer_resource/monotonic_buffer_resource + + (T... args) + + + T + release + cpp/experimental/monotonic_buffer_resource/release + + (T... args) + + + T + upstream_resource + cpp/experimental/monotonic_buffer_resource/upstream_resource + + (T... args) + + + T + ~monotonic_buffer_resource + cpp/experimental/monotonic_buffer_resource/~monotonic_buffer_resource + + (T... args) + + + + std::experimental::pmr::polymorphic_allocator + cpp/experimental/polymorphic_allocator + + T + allocate + cpp/experimental/polymorphic_allocator/allocate + + (T... args) + + + T + construct + cpp/experimental/polymorphic_allocator/construct + + (T... args) + + + T + deallocate + cpp/experimental/polymorphic_allocator/deallocate + + (T... args) + + + T + destroy + cpp/experimental/polymorphic_allocator/destroy + + (T... args) + + + T + operator= + cpp/experimental/polymorphic_allocator/operator= + + (T... args) + + + T + polymorphic_allocator + cpp/experimental/polymorphic_allocator/polymorphic_allocator + + (T... args) + + + T + resource + cpp/experimental/polymorphic_allocator/resource + + (T... args) + + + T + select_on_container_copy_construction + cpp/experimental/polymorphic_allocator/select_on_container_copy_construction + + (T... args) + + + + std::experimental::pmr::pool_options + cpp/experimental/pool_options + + + std::experimental::pmr::resource_adaptor + cpp/experimental/resource_adaptor + + + std::experimental::pmr::synchronized_pool_resource + cpp/experimental/synchronized_pool_resource + + T + do_allocate + cpp/experimental/synchronized_pool_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/experimental/synchronized_pool_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/experimental/synchronized_pool_resource/do_is_equal + + (T... args) + + + T + options + cpp/experimental/synchronized_pool_resource/options + + (T... args) + + + T + release + cpp/experimental/synchronized_pool_resource/release + + (T... args) + + + T + synchronized_pool_resource + cpp/experimental/synchronized_pool_resource/synchronized_pool_resource + + (T... args) + + + T + upstream_resource + cpp/experimental/synchronized_pool_resource/upstream_resource + + (T... args) + + + T + ~synchronized_pool_resource + cpp/experimental/synchronized_pool_resource/~synchronized_pool_resource + + (T... args) + + + + std::experimental::pmr::unsynchronized_pool_resource + cpp/experimental/unsynchronized_pool_resource + + T + do_allocate + cpp/experimental/unsynchronized_pool_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/experimental/unsynchronized_pool_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/experimental/unsynchronized_pool_resource/do_is_equal + + (T... args) + + + T + options + cpp/experimental/unsynchronized_pool_resource/options + + (T... args) + + + T + release + cpp/experimental/unsynchronized_pool_resource/release + + (T... args) + + + T + unsynchronized_pool_resource + cpp/experimental/unsynchronized_pool_resource/unsynchronized_pool_resource + + (T... args) + + + T + upstream_resource + cpp/experimental/unsynchronized_pool_resource/upstream_resource + + (T... args) + + + T + ~unsynchronized_pool_resource + cpp/experimental/unsynchronized_pool_resource/~unsynchronized_pool_resource + + (T... args) + + + + std::experimental::promise (Concurrency TS) + cpp/experimental/concurrency/promise + + + std::experimental::promise (Library Fundamentals TS) + cpp/experimental/lib_extensions/promise + + + std::experimental::propagate_const + cpp/experimental/propagate_const + + T + get + cpp/experimental/propagate_const/get + + (T... args) + + + T + operator bool + cpp/experimental/propagate_const/operator_bool + + (T... args) + + + T + operator const element_type* + cpp/experimental/propagate_const/operator_element_type* + + (T... args) + + + T + operator element_type* + cpp/experimental/propagate_const/operator_element_type* + + (T... args) + + + T + operator* + cpp/experimental/propagate_const/operator* + + (T... args) + + + T + operator-> + cpp/experimental/propagate_const/operator* + + (T... args) + + + T + operator= + cpp/experimental/propagate_const/operator= + + (T... args) + + + T + propagate_const + cpp/experimental/propagate_const/propagate_const + + (T... args) + + + T + swap + cpp/experimental/propagate_const/swap + + (T... args) + + + + std::experimental::raw_invocation_type + cpp/experimental/invocation_type + + + std::experimental::shared_future + cpp/experimental/shared_future + + T + is_ready + cpp/experimental/shared_future/is_ready + + (T... args) + + + T + operator= + cpp/experimental/shared_future/operator= + + (T... args) + + + T + shared_future + cpp/experimental/shared_future/shared_future + + (T... args) + + + T + then + cpp/experimental/shared_future/then + + (T... args) + + + + std::experimental::source_location + cpp/experimental/source_location + + T + column + cpp/experimental/source_location/column + + (T... args) + + + T + current + cpp/experimental/source_location/current + + (T... args) + + + T + file_name + cpp/experimental/source_location/file_name + + (T... args) + + + T + function_name + cpp/experimental/source_location/function_name + + (T... args) + + + T + line + cpp/experimental/source_location/line + + (T... args) + + + T + source_location + cpp/experimental/source_location/source_location + + (T... args) + + + + std::experimental::string_view + cpp/experimental/basic_string_view + + T + at + cpp/experimental/basic_string_view/at + + (T... args) + + + T + back + cpp/experimental/basic_string_view/back + + (T... args) + + + T + begin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cend + cpp/experimental/basic_string_view/end + + (T... args) + + + T + compare + cpp/experimental/basic_string_view/compare + + (T... args) + + + T + copy + cpp/experimental/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + data + cpp/experimental/basic_string_view/data + + (T... args) + + + T + empty + cpp/experimental/basic_string_view/empty + + (T... args) + + + T + end + cpp/experimental/basic_string_view/end + + (T... args) + + + T + find + cpp/experimental/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/experimental/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/experimental/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/experimental/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/experimental/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/experimental/basic_string_view/front + + (T... args) + + + T + length + cpp/experimental/basic_string_view/size + + (T... args) + + + T + max_size + cpp/experimental/basic_string_view/max_size + + (T... args) + + + T + operator basic_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + operator= + cpp/experimental/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/experimental/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/experimental/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/experimental/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/experimental/basic_string_view/rfind + + (T... args) + + + T + size + cpp/experimental/basic_string_view/size + + (T... args) + + + T + string_view + cpp/experimental/basic_string_view/basic_string_view + + (T... args) + + + T + substr + cpp/experimental/basic_string_view/substr + + (T... args) + + + T + swap + cpp/experimental/basic_string_view/swap + + (T... args) + + + T + to_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + + std::experimental::u16string_view + cpp/experimental/basic_string_view + + T + at + cpp/experimental/basic_string_view/at + + (T... args) + + + T + back + cpp/experimental/basic_string_view/back + + (T... args) + + + T + begin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cend + cpp/experimental/basic_string_view/end + + (T... args) + + + T + compare + cpp/experimental/basic_string_view/compare + + (T... args) + + + T + copy + cpp/experimental/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + data + cpp/experimental/basic_string_view/data + + (T... args) + + + T + empty + cpp/experimental/basic_string_view/empty + + (T... args) + + + T + end + cpp/experimental/basic_string_view/end + + (T... args) + + + T + find + cpp/experimental/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/experimental/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/experimental/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/experimental/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/experimental/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/experimental/basic_string_view/front + + (T... args) + + + T + length + cpp/experimental/basic_string_view/size + + (T... args) + + + T + max_size + cpp/experimental/basic_string_view/max_size + + (T... args) + + + T + operator basic_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + operator= + cpp/experimental/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/experimental/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/experimental/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/experimental/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/experimental/basic_string_view/rfind + + (T... args) + + + T + size + cpp/experimental/basic_string_view/size + + (T... args) + + + T + substr + cpp/experimental/basic_string_view/substr + + (T... args) + + + T + swap + cpp/experimental/basic_string_view/swap + + (T... args) + + + T + to_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + u16string_view + cpp/experimental/basic_string_view/basic_string_view + + (T... args) + + + + std::experimental::u32string_view + cpp/experimental/basic_string_view + + T + at + cpp/experimental/basic_string_view/at + + (T... args) + + + T + back + cpp/experimental/basic_string_view/back + + (T... args) + + + T + begin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cend + cpp/experimental/basic_string_view/end + + (T... args) + + + T + compare + cpp/experimental/basic_string_view/compare + + (T... args) + + + T + copy + cpp/experimental/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + data + cpp/experimental/basic_string_view/data + + (T... args) + + + T + empty + cpp/experimental/basic_string_view/empty + + (T... args) + + + T + end + cpp/experimental/basic_string_view/end + + (T... args) + + + T + find + cpp/experimental/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/experimental/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/experimental/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/experimental/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/experimental/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/experimental/basic_string_view/front + + (T... args) + + + T + length + cpp/experimental/basic_string_view/size + + (T... args) + + + T + max_size + cpp/experimental/basic_string_view/max_size + + (T... args) + + + T + operator basic_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + operator= + cpp/experimental/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/experimental/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/experimental/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/experimental/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/experimental/basic_string_view/rfind + + (T... args) + + + T + size + cpp/experimental/basic_string_view/size + + (T... args) + + + T + substr + cpp/experimental/basic_string_view/substr + + (T... args) + + + T + swap + cpp/experimental/basic_string_view/swap + + (T... args) + + + T + to_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + u32string_view + cpp/experimental/basic_string_view/basic_string_view + + (T... args) + + + + std::experimental::void_t + cpp/experimental/void_t + + + std::experimental::wstring_view + cpp/experimental/basic_string_view + + T + at + cpp/experimental/basic_string_view/at + + (T... args) + + + T + back + cpp/experimental/basic_string_view/back + + (T... args) + + + T + begin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/experimental/basic_string_view/begin + + (T... args) + + + T + cend + cpp/experimental/basic_string_view/end + + (T... args) + + + T + compare + cpp/experimental/basic_string_view/compare + + (T... args) + + + T + copy + cpp/experimental/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + data + cpp/experimental/basic_string_view/data + + (T... args) + + + T + empty + cpp/experimental/basic_string_view/empty + + (T... args) + + + T + end + cpp/experimental/basic_string_view/end + + (T... args) + + + T + find + cpp/experimental/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/experimental/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/experimental/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/experimental/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/experimental/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/experimental/basic_string_view/front + + (T... args) + + + T + length + cpp/experimental/basic_string_view/size + + (T... args) + + + T + max_size + cpp/experimental/basic_string_view/max_size + + (T... args) + + + T + operator basic_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + operator= + cpp/experimental/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/experimental/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/experimental/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/experimental/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/experimental/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/experimental/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/experimental/basic_string_view/rfind + + (T... args) + + + T + size + cpp/experimental/basic_string_view/size + + (T... args) + + + T + substr + cpp/experimental/basic_string_view/substr + + (T... args) + + + T + swap + cpp/experimental/basic_string_view/swap + + (T... args) + + + T + to_string + cpp/experimental/basic_string_view/to_string + + (T... args) + + + T + wstring_view + cpp/experimental/basic_string_view/basic_string_view + + (T... args) + + + + std::exponential_distribution + cpp/numeric/random/exponential_distribution + + T + exponential_distribution + cpp/numeric/random/exponential_distribution/exponential_distribution + + (T... args) + + + T + lambda + cpp/numeric/random/exponential_distribution/lambda + + (T... args) + + + T + max + cpp/numeric/random/exponential_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/exponential_distribution/min + + (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) + + + + std::extent + cpp/types/extent + + + std::extreme_value_distribution + cpp/numeric/random/extreme_value_distribution + + T + a + cpp/numeric/random/extreme_value_distribution/params + + (T... args) + + + T + b + cpp/numeric/random/extreme_value_distribution/params + + (T... args) + + + T + extreme_value_distribution + cpp/numeric/random/extreme_value_distribution/extreme_value_distribution + + (T... args) + + + T + max + cpp/numeric/random/extreme_value_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/extreme_value_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/extreme_value_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/extreme_value_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/extreme_value_distribution/reset + + (T... args) + + + + std::false_type + cpp/types/integral_constant + + + std::femto + cpp/numeric/ratio/ratio + + + std::filebuf + cpp/io/basic_filebuf + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + filebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~filebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + + std::filesystem + + + T + absolute + cpp/filesystem/absolute + + (T... args) + + + T + canonical + cpp/filesystem/canonical + + (T... args) + + + T + copy + cpp/filesystem/copy + + (T... args) + + + T + copy_file + cpp/filesystem/copy_file + + (T... args) + + std::filesystem::copy_options + + T + copy_symlink + cpp/filesystem/copy_symlink + + (T... args) + + + T + create_directories + cpp/filesystem/create_directory + + (T... args) + + + T + create_directory + cpp/filesystem/create_directory + + (T... args) + + + T + create_directory_symlink + cpp/filesystem/create_symlink + + (T... args) + + + T + create_hard_link + cpp/filesystem/create_hard_link + + (T... args) + + + T + create_symlink + cpp/filesystem/create_symlink + + (T... args) + + + T + current_path + cpp/filesystem/current_path + + (T... args) + + std::filesystem::directory_entry + std::filesystem::directory_iterator + std::filesystem::directory_options + + T + equivalent + cpp/filesystem/equivalent + + (T... args) + + + T + exists + cpp/filesystem/exists + + (T... args) + + + T + file_size + cpp/filesystem/file_size + + (T... args) + + std::filesystem::file_status + std::filesystem::file_time_type + std::filesystem::file_type + std::filesystem::filesystem_error + + T + hard_link_count + cpp/filesystem/hard_link_count + + (T... args) + + + T + is_block_file + cpp/filesystem/is_block_file + + (T... args) + + + T + is_character_file + cpp/filesystem/is_character_file + + (T... args) + + + T + is_directory + cpp/filesystem/is_directory + + (T... args) + + + T + is_empty + cpp/filesystem/is_empty + + (T... args) + + + T + is_fifo + cpp/filesystem/is_fifo + + (T... args) + + + T + is_other + cpp/filesystem/is_other + + (T... args) + + + T + is_regular_file + cpp/filesystem/is_regular_file + + (T... args) + + + T + is_socket + cpp/filesystem/is_socket + + (T... args) + + + T + is_symlink + cpp/filesystem/is_symlink + + (T... args) + + + T + last_write_time + cpp/filesystem/last_write_time + + (T... args) + + std::filesystem::path + std::filesystem::perm_options + + T + permissions + cpp/filesystem/permissions + + (T... args) + + std::filesystem::perms + + T + proximate + cpp/filesystem/relative + + (T... args) + + + T + read_symlink + cpp/filesystem/read_symlink + + (T... args) + + std::filesystem::recursive_directory_iterator + + T + relative + cpp/filesystem/relative + + (T... args) + + + T + remove + cpp/filesystem/remove + + (T... args) + + + T + remove_all + cpp/filesystem/remove + + (T... args) + + + T + rename + cpp/filesystem/rename + + (T... args) + + + T + resize_file + cpp/filesystem/resize_file + + (T... args) + + + T + space + cpp/filesystem/space + + (T... args) + + std::filesystem::space_info + + T + status + cpp/filesystem/status + + (T... args) + + + T + status_known + cpp/filesystem/status_known + + (T... args) + + + T + symlink_status + cpp/filesystem/status + + (T... args) + + + T + temp_directory_path + cpp/filesystem/temp_directory_path + + (T... args) + + + T + u8path + cpp/filesystem/path/u8path + + (T... args) + + + T + weakly_canonical + cpp/filesystem/canonical + + (T... args) + + + + std::filesystem::copy_options + cpp/filesystem/copy_options + + + std::filesystem::directory_entry + cpp/filesystem/directory_entry + + T + assign + cpp/filesystem/directory_entry/assign + + (T... args) + + + T + directory_entry + cpp/filesystem/directory_entry/directory_entry + + (T... args) + + + T + exists + cpp/filesystem/directory_entry/exists + + (T... args) + + + T + file_size + cpp/filesystem/directory_entry/file_size + + (T... args) + + + T + hard_link_count + cpp/filesystem/directory_entry/hard_link_count + + (T... args) + + + T + is_block_file + cpp/filesystem/directory_entry/is_block_file + + (T... args) + + + T + is_character_file + cpp/filesystem/directory_entry/is_character_file + + (T... args) + + + T + is_directory + cpp/filesystem/directory_entry/is_directory + + (T... args) + + + T + is_fifo + cpp/filesystem/directory_entry/is_fifo + + (T... args) + + + T + is_other + cpp/filesystem/directory_entry/is_other + + (T... args) + + + T + is_regular_file + cpp/filesystem/directory_entry/is_regular_file + + (T... args) + + + T + is_socket + cpp/filesystem/directory_entry/is_socket + + (T... args) + + + T + is_symlink + cpp/filesystem/directory_entry/is_symlink + + (T... args) + + + T + last_write_time + cpp/filesystem/directory_entry/last_write_time + + (T... args) + + + T + operator const path& + cpp/filesystem/directory_entry/path + + (T... args) + + + T + operator!= + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + operator< + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + operator<= + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + operator<=> + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + operator= + cpp/filesystem/directory_entry/operator= + + (T... args) + + + T + operator== + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + operator> + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + operator>= + cpp/filesystem/directory_entry/operator_cmp + + (T... args) + + + T + path + cpp/filesystem/directory_entry/path + + (T... args) + + + T + refresh + cpp/filesystem/directory_entry/refresh + + (T... args) + + + T + replace_filename + cpp/filesystem/directory_entry/replace_filename + + (T... args) + + + T + status + cpp/filesystem/directory_entry/status + + (T... args) + + + T + symlink_status + cpp/filesystem/directory_entry/status + + (T... args) + + + + std::filesystem::directory_iterator + cpp/filesystem/directory_iterator + + T + directory_iterator + cpp/filesystem/directory_iterator/directory_iterator + + (T... args) + + + T + increment + cpp/filesystem/directory_iterator/increment + + (T... args) + + + T + operator* + cpp/filesystem/directory_iterator/operator* + + (T... args) + + + T + operator++ + cpp/filesystem/directory_iterator/increment + + (T... args) + + + T + operator-> + cpp/filesystem/directory_iterator/operator* + + (T... args) + + + T + operator= + cpp/filesystem/directory_iterator/operator= + + (T... args) + + + + std::filesystem::directory_options + cpp/filesystem/directory_options + + + std::filesystem::file_status + cpp/filesystem/file_status + + T + file_status + cpp/filesystem/file_status/file_status + + (T... args) + + + T + operator= + cpp/filesystem/file_status/operator= + + (T... args) + + + T + permissions + cpp/filesystem/file_status/permissions + + (T... args) + + + T + type + cpp/filesystem/file_status/type + + (T... args) + + + T + ~file_status + cpp/filesystem/file_status + + (T... args) + + + + std::filesystem::file_time_type + cpp/filesystem/file_time_type + + + std::filesystem::file_type + cpp/filesystem/file_type + + + std::filesystem::filesystem_error + cpp/filesystem/filesystem_error + + T + filesystem_error + cpp/filesystem/filesystem_error/filesystem_error + + (T... args) + + + T + operator= + cpp/filesystem/filesystem_error/operator= + + (T... args) + + + T + path1 + cpp/filesystem/filesystem_error/path + + (T... args) + + + T + path2 + cpp/filesystem/filesystem_error/path + + (T... args) + + + T + what + cpp/filesystem/filesystem_error/what + + (T... args) + + + + std::filesystem::path + cpp/filesystem/path + + T + append + cpp/filesystem/path/append + + (T... args) + + + T + assign + cpp/filesystem/path/assign + + (T... args) + + + T + begin + cpp/filesystem/path/begin + + (T... args) + + + T + c_str + cpp/filesystem/path/native + + (T... args) + + + T + clear + cpp/filesystem/path/clear + + (T... args) + + + T + compare + cpp/filesystem/path/compare + + (T... args) + + + T + concat + cpp/filesystem/path/concat + + (T... args) + + + T + empty + cpp/filesystem/path/empty + + (T... args) + + + T + end + cpp/filesystem/path/begin + + (T... args) + + + T + extension + cpp/filesystem/path/extension + + (T... args) + + + T + filename + cpp/filesystem/path/filename + + (T... args) + + + T + generic_string + cpp/filesystem/path/generic_string + + (T... args) + + + T + generic_u16string + cpp/filesystem/path/generic_string + + (T... args) + + + T + generic_u32string + cpp/filesystem/path/generic_string + + (T... args) + + + T + generic_u8string + cpp/filesystem/path/generic_string + + (T... args) + + + T + generic_wstring + cpp/filesystem/path/generic_string + + (T... args) + + + T + has_extension + cpp/filesystem/path/has_path + + (T... args) + + + T + has_filename + cpp/filesystem/path/has_path + + (T... args) + + + T + has_parent_path + cpp/filesystem/path/has_path + + (T... args) + + + T + has_relative_path + cpp/filesystem/path/has_path + + (T... args) + + + T + has_root_directory + cpp/filesystem/path/has_path + + (T... args) + + + T + has_root_name + cpp/filesystem/path/has_path + + (T... args) + + + T + has_root_path + cpp/filesystem/path/has_path + + (T... args) + + + T + has_stem + cpp/filesystem/path/has_path + + (T... args) + + + T + is_absolute + cpp/filesystem/path/is_absrel + + (T... args) + + + T + is_relative + cpp/filesystem/path/is_absrel + + (T... args) + + + T + lexically_normal + cpp/filesystem/path/lexically_normal + + (T... args) + + + T + lexically_proximate + cpp/filesystem/path/lexically_normal + + (T... args) + + + T + lexically_relative + cpp/filesystem/path/lexically_normal + + (T... args) + + + T + make_preferred + cpp/filesystem/path/make_preferred + + (T... args) + + + T + native + cpp/filesystem/path/native + + (T... args) + + + T + operator string_type + cpp/filesystem/path/native + + (T... args) + + + T + operator+= + cpp/filesystem/path/concat + + (T... args) + + + T + operator/= + cpp/filesystem/path/append + + (T... args) + + + T + operator= + cpp/filesystem/path/operator= + + (T... args) + + + T + parent_path + cpp/filesystem/path/parent_path + + (T... args) + + + T + path + cpp/filesystem/path/path + + (T... args) + + + T + relative_path + cpp/filesystem/path/relative_path + + (T... args) + + + T + remove_filename + cpp/filesystem/path/remove_filename + + (T... args) + + + T + replace_extension + cpp/filesystem/path/replace_extension + + (T... args) + + + T + replace_filename + cpp/filesystem/path/replace_filename + + (T... args) + + + T + root_directory + cpp/filesystem/path/root_directory + + (T... args) + + + T + root_name + cpp/filesystem/path/root_name + + (T... args) + + + T + root_path + cpp/filesystem/path/root_path + + (T... args) + + + T + stem + cpp/filesystem/path/stem + + (T... args) + + + T + string + cpp/filesystem/path/string + + (T... args) + + + T + swap + cpp/filesystem/path/swap + + (T... args) + + + T + u16string + cpp/filesystem/path/string + + (T... args) + + + T + u32string + cpp/filesystem/path/string + + (T... args) + + + T + u8string + cpp/filesystem/path/string + + (T... args) + + + T + wstring + cpp/filesystem/path/string + + (T... args) + + + T + ~path + cpp/filesystem/path/~path + + (T... args) + + + + std::filesystem::perm_options + cpp/filesystem/perm_options + + + std::filesystem::perms + cpp/filesystem/perms + + + std::filesystem::recursive_directory_iterator + cpp/filesystem/recursive_directory_iterator + + T + depth + cpp/filesystem/recursive_directory_iterator/depth + + (T... args) + + + T + disable_recursion_pending + cpp/filesystem/recursive_directory_iterator/disable_recursion_pending + + (T... args) + + + T + increment + cpp/filesystem/recursive_directory_iterator/increment + + (T... args) + + + T + operator* + cpp/filesystem/recursive_directory_iterator/operator* + + (T... args) + + + T + operator++ + cpp/filesystem/recursive_directory_iterator/increment + + (T... args) + + + T + operator-> + cpp/filesystem/recursive_directory_iterator/operator* + + (T... args) + + + T + operator= + cpp/filesystem/recursive_directory_iterator/operator= + + (T... args) + + + T + options + cpp/filesystem/recursive_directory_iterator/options + + (T... args) + + + T + pop + cpp/filesystem/recursive_directory_iterator/pop + + (T... args) + + + T + recursion_pending + cpp/filesystem/recursive_directory_iterator/recursion_pending + + (T... args) + + + T + recursive_directory_iterator + cpp/filesystem/recursive_directory_iterator/recursive_directory_iterator + + (T... args) + + + + std::filesystem::space_info + cpp/filesystem/space_info + + T + available + cpp/filesystem/space_info + + + + + T + capacity + cpp/filesystem/space_info + + + + + T + free + cpp/filesystem/space_info + + + + + + 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 + m + cpp/numeric/random/fisher_f_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/fisher_f_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/fisher_f_distribution/min + + (T... args) + + + T + n + cpp/numeric/random/fisher_f_distribution/params + + (T... args) + + + T + operator() + cpp/numeric/random/fisher_f_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/fisher_f_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/fisher_f_distribution/reset + + (T... args) + + + + std::format_args + cpp/utility/format/basic_format_args + + + std::format_context + cpp/utility/format/basic_format_context + + + std::format_error + cpp/utility/format/format_error + + + std::format_parse_context + cpp/utility/format/basic_format_parse_context + + + std::format_to_n_result + cpp/utility/format/format_to_n + + + std::formatter + cpp/utility/format/formatter + + + std::forward_iterator_tag + cpp/iterator/iterator_tags + + + std::forward_list + cpp/container/forward_list + + T + assign + cpp/container/forward_list/assign + + (T... args) + + + T + before_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + begin + cpp/container/forward_list/begin + + (T... args) + + + T + cbefore_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + cbegin + cpp/container/forward_list/begin + + (T... args) + + + T + cend + cpp/container/forward_list/end + + (T... args) + + + T + clear + cpp/container/forward_list/clear + + (T... args) + + + T + emplace_after + cpp/container/forward_list/emplace_after + + (T... args) + + + T + emplace_front + cpp/container/forward_list/emplace_front + + (T... args) + + + T + empty + cpp/container/forward_list/empty + + (T... args) + + + T + end + cpp/container/forward_list/end + + (T... args) + + + T + erase_after + cpp/container/forward_list/erase_after + + (T... args) + + + T + forward_list + cpp/container/forward_list/forward_list + + (T... args) + + + T + front + cpp/container/forward_list/front + + (T... args) + + + T + get_allocator + cpp/container/forward_list/get_allocator + + (T... args) + + + T + insert_after + cpp/container/forward_list/insert_after + + (T... args) + + + T + max_size + cpp/container/forward_list/max_size + + (T... args) + + + T + merge + cpp/container/forward_list/merge + + (T... args) + + + T + operator= + cpp/container/forward_list/operator= + + (T... args) + + + T + pop_front + cpp/container/forward_list/pop_front + + (T... args) + + + T + push_front + cpp/container/forward_list/push_front + + (T... args) + + + T + remove + cpp/container/forward_list/remove + + (T... args) + + + T + remove_if + cpp/container/forward_list/remove + + (T... args) + + + T + resize + cpp/container/forward_list/resize + + (T... args) + + + T + reverse + cpp/container/forward_list/reverse + + (T... args) + + + T + sort + cpp/container/forward_list/sort + + (T... args) + + + T + splice_after + cpp/container/forward_list/splice_after + + (T... args) + + + T + swap + cpp/container/forward_list/swap + + (T... args) + + + T + unique + cpp/container/forward_list/unique + + (T... args) + + + T + ~forward_list + cpp/container/forward_list/~forward_list + + (T... args) + + + + std::fpos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::fpos_t + cpp/io/c/fpos_t + + + std::from_chars_result + cpp/utility/from_chars + + + std::front_insert_iterator + cpp/iterator/front_insert_iterator + + T + container + cpp/iterator/front_insert_iterator + + + + + T + front_insert_iterator + cpp/iterator/front_insert_iterator/front_insert_iterator + + (T... args) + + + T + operator* + cpp/iterator/front_insert_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/front_insert_iterator/operator++ + + (T... args) + + + T + operator++(int) + cpp/iterator/front_insert_iterator/operator++ + + (T... args) + + + T + operator= + cpp/iterator/front_insert_iterator/operator= + + (T... args) + + + + std::fstream + cpp/io/basic_fstream + std::fstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::fstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::fstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + fstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::fstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::fstream::Init + cpp/io/ios_base/Init + + + 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::fstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::function + cpp/utility/functional/function + + T + assign + cpp/utility/functional/function/assign + + (T... args) + + + T + function + cpp/utility/functional/function/function + + (T... args) + + + T + operator bool + cpp/utility/functional/function/operator_bool + + (T... args) + + + T + operator() + cpp/utility/functional/function/operator() + + (T... args) + + + T + operator= + cpp/utility/functional/function/operator= + + (T... args) + + + T + swap + cpp/utility/functional/function/swap + + (T... args) + + + T + target + cpp/utility/functional/function/target + + (T... args) + + + T + target_type + cpp/utility/functional/function/target_type + + (T... args) + + + T + ~function + cpp/utility/functional/function/~function + + (T... args) + + + + std::future + cpp/thread/future + + T + future + cpp/thread/future/future + + (T... args) + + + T + get + cpp/thread/future/get + + (T... args) + + + T + operator= + cpp/thread/future/operator= + + (T... args) + + + T + share + cpp/thread/future/share + + (T... args) + + + T + valid + cpp/thread/future/valid + + (T... args) + + + T + wait + cpp/thread/future/wait + + (T... args) + + + T + wait_for + cpp/thread/future/wait_for + + (T... args) + + + T + wait_until + cpp/thread/future/wait_until + + (T... args) + + + T + ~future + cpp/thread/future/~future + + (T... args) + + + + std::future_errc + cpp/thread/future_errc + + + 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 + operator= + cpp/thread/future_error/operator= + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::gamma_distribution + cpp/numeric/random/gamma_distribution + + T + alpha + cpp/numeric/random/gamma_distribution/params + + (T... args) + + + T + beta + cpp/numeric/random/gamma_distribution/params + + (T... args) + + + T + gamma_distribution + cpp/numeric/random/gamma_distribution/gamma_distribution + + (T... args) + + + T + max + cpp/numeric/random/gamma_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/gamma_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/gamma_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/gamma_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/gamma_distribution/reset + + (T... args) + + + + std::geometric_distribution + cpp/numeric/random/geometric_distribution + + T + geometric_distribution + cpp/numeric/random/geometric_distribution/geometric_distribution + + (T... args) + + + T + max + cpp/numeric/random/geometric_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/geometric_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/geometric_distribution/operator() + + (T... args) + + + T + p + cpp/numeric/random/geometric_distribution/p + + (T... args) + + + T + param + cpp/numeric/random/geometric_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/geometric_distribution/reset + + (T... args) + + + + std::giga + cpp/numeric/ratio/ratio + + + std::greater + cpp/utility/functional/greater + + T + operator() + cpp/utility/functional/greater + + (T... args) + + + + std::greater_equal + cpp/utility/functional/greater_equal + + T + operator() + cpp/utility/functional/greater_equal + + (T... args) + + + + std::gslice + cpp/numeric/valarray/gslice + + T + gslice + cpp/numeric/valarray/gslice + + (T... args) + + + T + size + cpp/numeric/valarray/gslice + + (T... args) + + + T + start + cpp/numeric/valarray/gslice + + (T... args) + + + T + stride + cpp/numeric/valarray/gslice + + (T... args) + + + + std::gslice_array + cpp/numeric/valarray/gslice_array + + T + gslice_array + cpp/numeric/valarray/gslice_array/gslice_array + + (T... args) + + + T + operator%= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator&= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator*= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator+= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator-= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator/= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator<<= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator= + cpp/numeric/valarray/gslice_array/operator= + + (T... args) + + + T + operator>>= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator^= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + operator|= + cpp/numeric/valarray/gslice_array/operator_arith + + (T... args) + + + T + ~gslice_array + cpp/numeric/valarray/gslice_array/~gslice_array + + (T... args) + + + + std::has_unique_object_representations + cpp/types/has_unique_object_representations + + + std::has_virtual_destructor + cpp/types/has_virtual_destructor + + + std::hash + cpp/utility/hash + + T + hash + cpp/utility/hash/hash + + (T... args) + + + T + operator() + cpp/utility/hash/operator() + + (T... args) + + + + std::hecto + cpp/numeric/ratio/ratio + + + std::identity + cpp/utility/functional/identity + + T + operator() + cpp/utility/functional/identity + + (T... args) + + + + std::ifstream + cpp/io/basic_ifstream + std::ifstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::ifstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ifstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::ifstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::ifstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::imaxdiv_t + cpp/numeric/math/div + + T + quot + cpp/numeric/math/div + + + + + T + rem + cpp/numeric/math/div + + + + + + std::in_place_index_t + cpp/utility/in_place + + + std::in_place_t + cpp/utility/in_place + + + std::in_place_type_t + cpp/utility/in_place + + + std::incrementable_traits + cpp/iterator/incrementable_traits + + + std::independent_bits_engine + cpp/numeric/random/independent_bits_engine + + T + base + cpp/numeric/random/independent_bits_engine/base + + (T... args) + + + T + discard + cpp/numeric/random/independent_bits_engine/discard + + (T... args) + + + T + independent_bits_engine + cpp/numeric/random/independent_bits_engine/independent_bits_engine + + (T... args) + + + T + max + cpp/numeric/random/independent_bits_engine/max + + (T... args) + + + T + min + cpp/numeric/random/independent_bits_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/independent_bits_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/independent_bits_engine/seed + + (T... args) + + + + std::index_sequence + cpp/utility/integer_sequence + + + std::index_sequence_for + cpp/utility/integer_sequence + + + std::indirect_array + cpp/numeric/valarray/indirect_array + + T + indirect_array + cpp/numeric/valarray/indirect_array/indirect_array + + (T... args) + + + T + operator%= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator&= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator*= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator+= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator-= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator/= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator<<= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator= + cpp/numeric/valarray/indirect_array/operator= + + (T... args) + + + T + operator>>= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator^= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + operator|= + cpp/numeric/valarray/indirect_array/operator_arith + + (T... args) + + + T + ~indirect_array + cpp/numeric/valarray/indirect_array/~indirect_array + + (T... args) + + + + std::initializer_list + cpp/utility/initializer_list + + T + begin + cpp/utility/initializer_list/begin + + (T... args) + + + T + end + cpp/utility/initializer_list/end + + (T... args) + + + T + initializer_list + cpp/utility/initializer_list/initializer_list + + (T... args) + + + T + size + cpp/utility/initializer_list/size + + (T... args) + + + + std::input_iterator_tag + cpp/iterator/iterator_tags + + + std::insert_iterator + cpp/iterator/insert_iterator + + T + container + cpp/iterator/insert_iterator + + + + + T + insert_iterator + cpp/iterator/insert_iterator/insert_iterator + + (T... args) + + + T + iter + cpp/iterator/insert_iterator + + + + + T + operator* + cpp/iterator/insert_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/insert_iterator/operator++ + + (T... args) + + + T + operator++(int) + cpp/iterator/insert_iterator/operator++ + + (T... args) + + + T + operator= + cpp/iterator/insert_iterator/operator= + + (T... args) + + + + std::int16_t + cpp/types/integer + + + std::int32_t + cpp/types/integer + + + std::int64_t + cpp/types/integer + + + std::int8_t + cpp/types/integer + + + std::int_fast16_t + cpp/types/integer + + + std::int_fast32_t + cpp/types/integer + + + std::int_fast64_t + cpp/types/integer + + + std::int_fast8_t + cpp/types/integer + + + std::int_least16_t + cpp/types/integer + + + std::int_least32_t + cpp/types/integer + + + std::int_least64_t + cpp/types/integer + + + std::int_least8_t + cpp/types/integer + + + std::integer_sequence + cpp/utility/integer_sequence + + + std::integral_constant + cpp/types/integral_constant + + + std::intmax_t + cpp/types/integer + + + std::intptr_t + cpp/types/integer + + + 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::invoke_result + cpp/types/result_of + + + std::invoke_result_t + cpp/types/result_of + + + std::io_errc + cpp/io/io_errc + + + std::ios + cpp/io/basic_ios + std::ios::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::ios::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ios::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + ios + cpp/io/basic_ios/basic_ios + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + precision + cpp/io/ios_base/precision + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~ios + cpp/io/basic_ios/~basic_ios + + (T... args) + + + + std::ios::Init + cpp/io/ios_base/Init + + + std::ios::event_callback + cpp/io/ios_base/event_callback + + + std::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::ios_base + cpp/io/ios_base + std::ios_base::Init + std::ios_base::event_callback + std::ios_base::failure + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + ios_base + cpp/io/ios_base/ios_base + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~ios_base + cpp/io/ios_base/~ios_base + + (T... args) + + + + std::ios_base::Init + cpp/io/ios_base/Init + + + 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::iostream + cpp/io/basic_iostream + std::iostream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::iostream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::iostream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_iostream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::iostream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~iostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + + std::iostream::Init + cpp/io/ios_base/Init + + + 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::iostream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::is_abstract + cpp/types/is_abstract + + + std::is_aggregate + cpp/types/is_aggregate + + + std::is_arithmetic + cpp/types/is_arithmetic + + + std::is_array + cpp/types/is_array + + + std::is_assignable + cpp/types/is_assignable + + + std::is_base_of + cpp/types/is_base_of + + + std::is_bind_expression + cpp/utility/functional/is_bind_expression + + + std::is_bounded_array + cpp/types/is_bounded_array + + + std::is_class + cpp/types/is_class + + + std::is_compound + cpp/types/is_compound + + + std::is_const + cpp/types/is_const + + + std::is_constructible + cpp/types/is_constructible + + + std::is_convertible + cpp/types/is_convertible + + + std::is_copy_assignable + cpp/types/is_copy_assignable + + + std::is_copy_constructible + cpp/types/is_copy_constructible + + + std::is_default_constructible + cpp/types/is_default_constructible + + + std::is_destructible + cpp/types/is_destructible + + + std::is_empty + cpp/types/is_empty + + + std::is_enum + cpp/types/is_enum + + + std::is_error_code_enum + cpp/error/error_code/is_error_code_enum + + + std::is_error_code_enum_v + cpp/error/error_code/is_error_code_enum + + + std::is_error_condition_enum + cpp/error/error_condition/is_error_condition_enum + + + std::is_execution_policy + cpp/algorithm/is_execution_policy + + + std::is_final + cpp/types/is_final + + + std::is_floating_point + cpp/types/is_floating_point + + + std::is_function + cpp/types/is_function + + + std::is_fundamental + cpp/types/is_fundamental + + + std::is_integral + cpp/types/is_integral + + + std::is_invocable + cpp/types/is_invocable + + + std::is_invocable_r + cpp/types/is_invocable + + + std::is_literal_type + cpp/types/is_literal_type + + + std::is_lvalue_reference + cpp/types/is_lvalue_reference + + + std::is_member_function_pointer + cpp/types/is_member_function_pointer + + + std::is_member_object_pointer + cpp/types/is_member_object_pointer + + + std::is_member_pointer + cpp/types/is_member_pointer + + + std::is_move_assignable + cpp/types/is_move_assignable + + + std::is_move_constructible + cpp/types/is_move_constructible + + + std::is_nothrow_assignable + cpp/types/is_assignable + + + std::is_nothrow_constructible + cpp/types/is_constructible + + + std::is_nothrow_convertible + cpp/types/is_convertible + + + std::is_nothrow_copy_assignable + cpp/types/is_copy_assignable + + + std::is_nothrow_copy_constructible + cpp/types/is_copy_constructible + + + std::is_nothrow_default_constructible + cpp/types/is_default_constructible + + + std::is_nothrow_destructible + cpp/types/is_destructible + + + std::is_nothrow_invocable + cpp/types/is_invocable + + + std::is_nothrow_invocable_r + cpp/types/is_invocable + + + std::is_nothrow_move_assignable + cpp/types/is_move_assignable + + + std::is_nothrow_move_constructible + cpp/types/is_move_constructible + + + std::is_nothrow_swappable + cpp/types/is_swappable + + + std::is_nothrow_swappable_with + cpp/types/is_swappable + + + std::is_null_pointer + cpp/types/is_null_pointer + + + std::is_object + cpp/types/is_object + + + std::is_placeholder + cpp/utility/functional/is_placeholder + + + std::is_pod + cpp/types/is_pod + + + std::is_pointer + cpp/types/is_pointer + + + std::is_polymorphic + cpp/types/is_polymorphic + + + std::is_reference + cpp/types/is_reference + + + std::is_rvalue_reference + cpp/types/is_rvalue_reference + + + std::is_same + cpp/types/is_same + + + std::is_scalar + cpp/types/is_scalar + + + std::is_signed + cpp/types/is_signed + + + std::is_standard_layout + cpp/types/is_standard_layout + + + std::is_swappable + cpp/types/is_swappable + + + std::is_swappable_with + cpp/types/is_swappable + + + std::is_trivial + cpp/types/is_trivial + + + std::is_trivially_assignable + cpp/types/is_assignable + + + std::is_trivially_constructible + cpp/types/is_constructible + + + std::is_trivially_copy_assignable + cpp/types/is_copy_assignable + + + std::is_trivially_copy_constructible + cpp/types/is_copy_constructible + + + std::is_trivially_copyable + cpp/types/is_trivially_copyable + + + std::is_trivially_default_constructible + cpp/types/is_default_constructible + + + std::is_trivially_destructible + cpp/types/is_destructible + + + std::is_trivially_move_assignable + cpp/types/is_move_assignable + + + std::is_trivially_move_constructible + cpp/types/is_move_constructible + + + std::is_unbounded_array + cpp/types/is_unbounded_array + + + std::is_union + cpp/types/is_union + + + std::is_unsigned + cpp/types/is_unsigned + + + std::is_void + cpp/types/is_void + + + std::is_volatile + cpp/types/is_volatile + + + std::istream + cpp/io/basic_istream + std::istream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::istream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::istream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + istream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator= + cpp/io/basic_istream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~istream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + + std::istream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::istream_iterator + cpp/iterator/istream_iterator + + T + istream_iterator + cpp/iterator/istream_iterator/istream_iterator + + (T... args) + + + T + operator* + cpp/iterator/istream_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/istream_iterator/operator_arith + + (T... args) + + + T + operator++(int) + cpp/iterator/istream_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/iterator/istream_iterator/operator* + + (T... args) + + + T + ~istream_iterator + cpp/iterator/istream_iterator/~istream_iterator + + (T... args) + + + + std::istreambuf_iterator + cpp/iterator/istreambuf_iterator + + T + equal + cpp/iterator/istreambuf_iterator/equal + + (T... args) + + + T + istreambuf_iterator + cpp/iterator/istreambuf_iterator/istreambuf_iterator + + (T... args) + + + T + operator* + cpp/iterator/istreambuf_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/istreambuf_iterator/operator_arith + + (T... args) + + + T + operator++(int) + cpp/iterator/istreambuf_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/iterator/istreambuf_iterator/operator* + + (T... args) + + + T + ~istreambuf_iterator + cpp/iterator/istreambuf_iterator + + (T... args) + + + + std::istringstream + cpp/io/basic_istringstream + std::istringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::istringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::istringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + istringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::istringstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::istrstream + cpp/io/istrstream + std::istrstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::istrstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::istrstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + istrstream + cpp/io/istrstream/istrstream + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::istrstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/istrstream/str + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~istrstream + cpp/io/istrstream/~istrstream + + (T... args) + + + + std::istrstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::iter_common_reference_t + cpp/iterator/iter_t + + + std::iter_difference_t + cpp/iterator/iter_t + + + std::iter_reference_t + cpp/iterator/iter_t + + + std::iter_rvalue_reference_t + cpp/iterator/iter_t + + + std::iter_value_t + cpp/iterator/iter_t + + + std::iterator + cpp/iterator/iterator + + + std::iterator_traits + cpp/iterator/iterator_traits + + + std::jmp_buf + cpp/utility/program/jmp_buf + + + std::jthread + cpp/thread/jthread + + T + detach + cpp/thread/jthread/detach + + (T... args) + + + T + get_id + cpp/thread/jthread/get_id + + (T... args) + + + T + get_stop_source + cpp/thread/jthread/get_stop_source + + (T... args) + + + T + get_stop_token + cpp/thread/jthread/get_stop_token + + (T... args) + + + T + hardware_concurrency + cpp/thread/jthread/hardware_concurrency + + (T... args) + + + T + join + cpp/thread/jthread/join + + (T... args) + + + T + joinable + cpp/thread/jthread/joinable + + (T... args) + + + T + jthread + cpp/thread/jthread/jthread + + (T... args) + + + T + native_handle + cpp/thread/jthread/native_handle + + (T... args) + + + T + operator= + cpp/thread/jthread/operator= + + (T... args) + + + T + request_stop + cpp/thread/jthread/request_stop + + (T... args) + + + T + swap + cpp/thread/jthread/swap + + (T... args) + + + T + ~jthread + cpp/thread/jthread/~jthread + + (T... args) + + + + std::kilo + cpp/numeric/ratio/ratio + + + std::knuth_b + cpp/numeric/random/shuffle_order_engine + + T + base + cpp/numeric/random/shuffle_order_engine/base + + (T... args) + + + T + discard + cpp/numeric/random/shuffle_order_engine/discard + + (T... args) + + + T + knuth_b + cpp/numeric/random/shuffle_order_engine/shuffle_order_engine + + (T... args) + + + T + max + cpp/numeric/random/shuffle_order_engine/max + + (T... args) + + + T + min + cpp/numeric/random/shuffle_order_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/shuffle_order_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/shuffle_order_engine/seed + + (T... args) + + + + std::latch + cpp/thread/latch + + T + arrive_and_wait + cpp/thread/latch/arrive_and_wait + + (T... args) + + + T + count_down + cpp/thread/latch/count_down + + (T... args) + + + T + latch + cpp/thread/latch/latch + + (T... args) + + + T + try_wait + cpp/thread/latch/try_wait + + (T... args) + + + T + wait + cpp/thread/latch/wait + + (T... args) + + + T + ~latch + cpp/thread/latch/~latch + + (T... args) + + + + std::lconv + cpp/locale/lconv + + + std::ldiv_t + cpp/numeric/math/div + + T + quot + cpp/numeric/math/div + + + + + T + rem + cpp/numeric/math/div + + + + + + 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::less + cpp/utility/functional/less + + T + operator() + cpp/utility/functional/less + + (T... args) + + + + std::less_equal + cpp/utility/functional/less_equal + + T + operator() + cpp/utility/functional/less_equal + + (T... args) + + + + 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 + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + + std::list + cpp/container/list + + T + assign + cpp/container/list/assign + + (T... args) + + + T + back + cpp/container/list/back + + (T... args) + + + T + begin + cpp/container/list/begin + + (T... args) + + + T + cbegin + cpp/container/list/begin + + (T... args) + + + T + cend + cpp/container/list/end + + (T... args) + + + T + clear + cpp/container/list/clear + + (T... args) + + + T + crbegin + cpp/container/list/rbegin + + (T... args) + + + T + crend + cpp/container/list/rend + + (T... args) + + + T + emplace + cpp/container/list/emplace + + (T... args) + + + T + emplace_back + cpp/container/list/emplace_back + + (T... args) + + + T + emplace_front + cpp/container/list/emplace_front + + (T... args) + + + T + empty + cpp/container/list/empty + + (T... args) + + + T + end + cpp/container/list/end + + (T... args) + + + T + erase + cpp/container/list/erase + + (T... args) + + + T + front + cpp/container/list/front + + (T... args) + + + T + get_allocator + cpp/container/list/get_allocator + + (T... args) + + + T + insert + cpp/container/list/insert + + (T... args) + + + T + list + cpp/container/list/list + + (T... args) + + + T + max_size + cpp/container/list/max_size + + (T... args) + + + T + merge + cpp/container/list/merge + + (T... args) + + + T + operator= + cpp/container/list/operator= + + (T... args) + + + T + pop_back + cpp/container/list/pop_back + + (T... args) + + + T + pop_front + cpp/container/list/pop_front + + (T... args) + + + T + push_back + cpp/container/list/push_back + + (T... args) + + + T + push_front + cpp/container/list/push_front + + (T... args) + + + T + rbegin + cpp/container/list/rbegin + + (T... args) + + + T + remove + cpp/container/list/remove + + (T... args) + + + T + remove_if + cpp/container/list/remove + + (T... args) + + + T + rend + cpp/container/list/rend + + (T... args) + + + T + resize + cpp/container/list/resize + + (T... args) + + + T + reverse + cpp/container/list/reverse + + (T... args) + + + T + size + cpp/container/list/size + + (T... args) + + + T + sort + cpp/container/list/sort + + (T... args) + + + T + splice + cpp/container/list/splice + + (T... args) + + + T + swap + cpp/container/list/swap + + (T... args) + + + T + unique + cpp/container/list/unique + + (T... args) + + + T + ~list + cpp/container/list/~list + + (T... args) + + + + std::literals + + std::literals::chrono_literals + std::literals::complex_literals + std::literals::string_literals + std::literals::string_view_literals + + + std::literals::chrono_literals + + + T + operator""d + cpp/chrono/operator""d + + (T... args) + + + T + operator""h + cpp/chrono/operator""h + + (T... args) + + + T + operator""min + cpp/chrono/operator""min + + (T... args) + + + T + operator""ms + cpp/chrono/operator""ms + + (T... args) + + + T + operator""ns + cpp/chrono/operator""ns + + (T... args) + + + T + operator""s + cpp/chrono/operator""s + + (T... args) + + + T + operator""us + cpp/chrono/operator""us + + (T... args) + + + T + operator""y + cpp/chrono/operator""y + + (T... args) + + + + std::literals::complex_literals + + + T + operator""i + cpp/numeric/complex/operator""i + + (T... args) + + + T + operator""if + cpp/numeric/complex/operator""i + + (T... args) + + + T + operator""il + cpp/numeric/complex/operator""i + + (T... args) + + + + std::literals::string_literals + + + T + operator""s + cpp/string/basic_string/operator""s + + (T... args) + + + + std::literals::string_view_literals + + + T + operator""sv + cpp/string/basic_string_view/operator""sv + + (T... args) + + + + std::lldiv_t + cpp/numeric/math/div + + T + quot + cpp/numeric/math/div + + + + + T + rem + cpp/numeric/math/div + + + + + + std::locale + cpp/locale/locale + + T + classic + cpp/locale/locale/classic + + (T... args) + + + T + combine + cpp/locale/locale/combine + + (T... args) + + std::locale::policy + + T + global + cpp/locale/locale/global + + (T... args) + + std::locale::id + + T + locale + cpp/locale/locale/locale + + (T... args) + + + T + name + cpp/locale/locale/name + + (T... args) + + + T + operator!= + cpp/locale/locale/operator_cmp + + (T... args) + + + T + operator() + cpp/locale/locale/operator() + + (T... args) + + + T + operator= + cpp/locale/locale/operator= + + (T... args) + + + T + operator== + cpp/locale/locale/operator_cmp + + (T... args) + + + T + ~locale + cpp/locale/locale/~locale + + (T... args) + + + + std::locale::policy + cpp/locale/locale/policy + + T + policy + cpp/locale/locale/policy/policy + + (T... args) + + + + std::locale::id + cpp/locale/locale/id + + T + id + cpp/locale/locale/id/id + + (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::logic_error + cpp/error/logic_error + + T + logic_error + cpp/error/logic_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::logical_and + cpp/utility/functional/logical_and + + T + operator() + cpp/utility/functional/logical_and + + (T... args) + + + + std::logical_not + cpp/utility/functional/logical_not + + T + operator() + cpp/utility/functional/logical_not + + (T... args) + + + + std::logical_or + cpp/utility/functional/logical_or + + T + operator() + cpp/utility/functional/logical_or + + (T... args) + + + + std::lognormal_distribution + cpp/numeric/random/lognormal_distribution + + T + lognormal_distribution + cpp/numeric/random/lognormal_distribution/lognormal_distribution + + (T... args) + + + T + m + cpp/numeric/random/lognormal_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/lognormal_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/lognormal_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/lognormal_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/lognormal_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/lognormal_distribution/reset + + (T... args) + + + T + s + cpp/numeric/random/lognormal_distribution/params + + (T... args) + + + + std::make_index_sequence + cpp/utility/integer_sequence + + + std::make_integer_sequence + cpp/utility/integer_sequence + + + std::make_signed + cpp/types/make_signed + + + std::make_signed_t + cpp/types/make_signed + + + std::make_unsigned + cpp/types/make_unsigned + + + std::make_unsigned_t + cpp/types/make_unsigned + + + std::map + cpp/container/map + + T + at + cpp/container/map/at + + (T... args) + + + T + begin + cpp/container/map/begin + + (T... args) + + + T + cbegin + cpp/container/map/begin + + (T... args) + + + T + cend + cpp/container/map/end + + (T... args) + + + T + clear + cpp/container/map/clear + + (T... args) + + + T + contains + cpp/container/map/contains + + (T... args) + + + T + count + cpp/container/map/count + + (T... args) + + + T + crbegin + cpp/container/map/rbegin + + (T... args) + + + T + crend + cpp/container/map/rend + + (T... args) + + + T + emplace + cpp/container/map/emplace + + (T... args) + + + T + emplace_hint + cpp/container/map/emplace_hint + + (T... args) + + + T + empty + cpp/container/map/empty + + (T... args) + + + T + end + cpp/container/map/end + + (T... args) + + + T + equal_range + cpp/container/map/equal_range + + (T... args) + + + T + erase + cpp/container/map/erase + + (T... args) + + + T + extract + cpp/container/map/extract + + (T... args) + + + T + find + cpp/container/map/find + + (T... args) + + + T + get_allocator + cpp/container/map/get_allocator + + (T... args) + + + T + insert + cpp/container/map/insert + + (T... args) + + + T + insert_or_assign + cpp/container/map/insert_or_assign + + (T... args) + + + T + key_comp + cpp/container/map/key_comp + + (T... args) + + + T + lower_bound + cpp/container/map/lower_bound + + (T... args) + + + T + map + cpp/container/map/map + + (T... args) + + + T + max_size + cpp/container/map/max_size + + (T... args) + + + T + merge + cpp/container/map/merge + + (T... args) + + + T + operator= + cpp/container/map/operator= + + (T... args) + + + T + operator[] + cpp/container/map/operator_at + + (T... args) + + + T + rbegin + cpp/container/map/rbegin + + (T... args) + + + T + rend + cpp/container/map/rend + + (T... args) + + + T + size + cpp/container/map/size + + (T... args) + + + T + swap + cpp/container/map/swap + + (T... args) + + + T + try_emplace + cpp/container/map/try_emplace + + (T... args) + + + T + upper_bound + cpp/container/map/upper_bound + + (T... args) + + + T + value_comp + cpp/container/map/value_comp + + (T... args) + + std::map::value_compare + + T + ~map + cpp/container/map/~map + + (T... args) + + + + std::map::value_compare + cpp/container/map/value_compare + + T + comp + cpp/container/map/value_compare + + + + + T + operator() + cpp/container/map/value_compare + + (T... args) + + + T + value_compare + cpp/container/map/value_compare + + (T... args) + + + + std::mask_array + cpp/numeric/valarray/mask_array + + T + mask_array + cpp/numeric/valarray/mask_array/mask_array + + (T... args) + + + T + operator%= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator&= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator*= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator+= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator-= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator/= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator<<= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator= + cpp/numeric/valarray/mask_array/operator= + + (T... args) + + + T + operator>>= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator^= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + operator|= + cpp/numeric/valarray/mask_array/operator_arith + + (T... args) + + + T + ~mask_array + cpp/numeric/valarray/mask_array/~mask_array + + (T... args) + + + + std::match_results + cpp/regex/match_results + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + match_results + cpp/regex/match_results/match_results + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + ~match_results + cpp/regex/match_results/~match_results + + (T... args) + + + + std::max_align_t + cpp/types/max_align_t + + + std::mbstate_t + cpp/string/multibyte/mbstate_t + + + std::mega + cpp/numeric/ratio/ratio + + + std::mem_fun1_ref_t + cpp/utility/functional/mem_fun_ref_t + + + std::mem_fun1_t + cpp/utility/functional/mem_fun_t + + + std::mem_fun_ref_t + cpp/utility/functional/mem_fun_ref_t + + + std::mem_fun_t + cpp/utility/functional/mem_fun_t + + + 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 + mersenne_twister_engine + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + + std::messages + cpp/locale/messages + std::messages::catalog + std::messages::char_type + + T + close + cpp/locale/messages/close + + (T... args) + + + T + do_close + cpp/locale/messages/close + + (T... args) + + + T + do_get + cpp/locale/messages/get + + (T... args) + + + T + do_open + cpp/locale/messages/open + + (T... args) + + + T + get + cpp/locale/messages/get + + (T... args) + + + T + id + cpp/locale/messages + + + + + T + messages + cpp/locale/messages/messages + + (T... args) + + + T + open + cpp/locale/messages/open + + (T... args) + + std::messages::string_type + + T + ~messages + cpp/locale/messages/~messages + + (T... args) + + + + std::messages::catalog + cpp/locale/messages_base + + + std::messages::char_type + cpp/locale/messages + + + std::messages::string_type + cpp/locale/messages + + + std::messages_base + cpp/locale/messages_base + std::messages_base::catalog + + + std::messages_base::catalog + cpp/locale/messages_base + + + std::messages_byname + cpp/locale/messages_byname + std::messages_byname::catalog + std::messages_byname::char_type + + T + close + cpp/locale/messages/close + + (T... args) + + + T + do_close + cpp/locale/messages/close + + (T... args) + + + T + do_get + cpp/locale/messages/get + + (T... args) + + + T + do_open + cpp/locale/messages/open + + (T... args) + + + T + get + cpp/locale/messages/get + + (T... args) + + + T + id + cpp/locale/messages + + + + + T + messages_byname + cpp/locale/messages_byname + + (T... args) + + + T + open + cpp/locale/messages/open + + (T... args) + + std::messages_byname::string_type + + T + ~messages_byname + cpp/locale/messages_byname + + (T... args) + + + + std::messages_byname::catalog + cpp/locale/messages_base + + + std::messages_byname::char_type + cpp/locale/messages + + + std::messages_byname::string_type + cpp/locale/messages + + + std::micro + cpp/numeric/ratio/ratio + + + std::milli + cpp/numeric/ratio/ratio + + + std::minstd_rand + 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 + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + T + minstd_rand + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (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 + min + cpp/numeric/random/linear_congruential_engine/min + + (T... args) + + + T + minstd_rand0 + cpp/numeric/random/linear_congruential_engine/linear_congruential_engine + + (T... args) + + + T + operator() + cpp/numeric/random/linear_congruential_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/linear_congruential_engine/seed + + (T... args) + + + + std::minus + cpp/utility/functional/minus + + T + operator() + cpp/utility/functional/minus + + (T... args) + + + + std::modulus + cpp/utility/functional/modulus + + T + operator() + cpp/utility/functional/modulus + + (T... args) + + + + std::money_base + cpp/locale/money_base + std::money_base::pattern + + + std::money_base::pattern + cpp/locale/money_base + + + std::money_get + cpp/locale/money_get + std::money_get::char_type + + T + do_get + cpp/locale/money_get/get + + (T... args) + + + T + get + cpp/locale/money_get/get + + (T... args) + + + T + id + cpp/locale/money_get + + + + std::money_get::iter_type + + T + money_get + cpp/locale/money_get/money_get + + (T... args) + + std::money_get::pattern + std::money_get::string_type + + T + ~money_get + cpp/locale/money_get/~money_get + + (T... args) + + + + std::money_get::char_type + cpp/locale/money_get + + + std::money_get::iter_type + cpp/locale/money_get + + + std::money_get::pattern + cpp/locale/money_base + + + std::money_get::string_type + cpp/locale/money_get + + + std::money_put + cpp/locale/money_put + std::money_put::char_type + + T + do_put + cpp/locale/money_put/put + + (T... args) + + + T + id + cpp/locale/money_put + + + + std::money_put::iter_type + + T + money_put + cpp/locale/money_put/money_put + + (T... args) + + std::money_put::pattern + + T + put + cpp/locale/money_put/put + + (T... args) + + std::money_put::string_type + + T + ~money_put + cpp/locale/money_put/~money_put + + (T... args) + + + + std::money_put::char_type + cpp/locale/money_put + + + std::money_put::iter_type + cpp/locale/money_put + + + std::money_put::pattern + cpp/locale/money_base + + + std::money_put::string_type + cpp/locale/money_put + + + std::moneypunct + cpp/locale/moneypunct + std::moneypunct::char_type + + T + curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + do_grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + do_neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + do_pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + do_thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + id + cpp/locale/moneypunct + + + + + T + moneypunct + cpp/locale/moneypunct/moneypunct + + (T... args) + + + T + neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct::pattern + + T + pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct::string_type + + T + thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + ~moneypunct + cpp/locale/moneypunct/~moneypunct + + (T... args) + + + + std::moneypunct::char_type + cpp/locale/moneypunct + + + std::moneypunct::pattern + cpp/locale/money_base + + + std::moneypunct::string_type + cpp/locale/moneypunct + + + std::moneypunct_byname + cpp/locale/moneypunct_byname + std::moneypunct_byname::char_type + + T + curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_curr_symbol + cpp/locale/moneypunct/curr_symbol + + (T... args) + + + T + do_decimal_point + cpp/locale/moneypunct/decimal_point + + (T... args) + + + T + do_frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + do_grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + do_neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + do_pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + do_positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + + T + do_thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + frac_digits + cpp/locale/moneypunct/frac_digits + + (T... args) + + + T + grouping + cpp/locale/moneypunct/grouping + + (T... args) + + + T + id + cpp/locale/moneypunct + + + + + T + moneypunct_byname + cpp/locale/moneypunct_byname + + (T... args) + + + T + neg_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + negative_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct_byname::pattern + + T + pos_format + cpp/locale/moneypunct/pos_format + + (T... args) + + + T + positive_sign + cpp/locale/moneypunct/positive_sign + + (T... args) + + std::moneypunct_byname::string_type + + T + thousands_sep + cpp/locale/moneypunct/thousands_sep + + (T... args) + + + T + ~moneypunct_byname + cpp/locale/moneypunct_byname + + (T... args) + + + + std::moneypunct_byname::char_type + cpp/locale/moneypunct + + + std::moneypunct_byname::pattern + cpp/locale/money_base + + + std::moneypunct_byname::string_type + cpp/locale/moneypunct + + + std::monostate + cpp/utility/variant/monostate + + T + monostate + cpp/utility/variant/monostate + + (T... args) + + + T + operator= + cpp/utility/variant/monostate + + (T... args) + + + T + ~monostate + cpp/utility/variant/monostate + + (T... args) + + + + std::move_iterator + cpp/iterator/move_iterator + + T + base + cpp/iterator/move_iterator/base + + (T... args) + + + T + move_iterator + cpp/iterator/move_iterator/move_iterator + + (T... args) + + + T + operator* + cpp/iterator/move_iterator/operator* + + (T... args) + + + T + operator+ + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator++ + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator++(int) + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator+= + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator- + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator-- + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator--(int) + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator-= + cpp/iterator/move_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/iterator/move_iterator/operator* + + (T... args) + + + T + operator= + cpp/iterator/move_iterator/operator= + + (T... args) + + + T + operator[] + cpp/iterator/move_iterator/operator_at + + (T... args) + + + + std::mt19937 + 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 + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + T + mt19937 + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + + std::mt19937_64 + 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 + min + cpp/numeric/random/mersenne_twister_engine/min + + (T... args) + + + T + mt19937_64 + cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine + + (T... args) + + + T + operator() + cpp/numeric/random/mersenne_twister_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/mersenne_twister_engine/seed + + (T... args) + + + + std::multimap + cpp/container/multimap + + T + begin + cpp/container/multimap/begin + + (T... args) + + + T + cbegin + cpp/container/multimap/begin + + (T... args) + + + T + cend + cpp/container/multimap/end + + (T... args) + + + T + clear + cpp/container/multimap/clear + + (T... args) + + + T + contains + cpp/container/multimap/contains + + (T... args) + + + T + count + cpp/container/multimap/count + + (T... args) + + + T + crbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + crend + cpp/container/multimap/rend + + (T... args) + + + T + emplace + cpp/container/multimap/emplace + + (T... args) + + + T + emplace_hint + cpp/container/multimap/emplace_hint + + (T... args) + + + T + empty + cpp/container/multimap/empty + + (T... args) + + + T + end + cpp/container/multimap/end + + (T... args) + + + T + equal_range + cpp/container/multimap/equal_range + + (T... args) + + + T + erase + cpp/container/multimap/erase + + (T... args) + + + T + extract + cpp/container/multimap/extract + + (T... args) + + + T + find + cpp/container/multimap/find + + (T... args) + + + T + get_allocator + cpp/container/multimap/get_allocator + + (T... args) + + + T + insert + cpp/container/multimap/insert + + (T... args) + + + T + key_comp + cpp/container/multimap/key_comp + + (T... args) + + + T + lower_bound + cpp/container/multimap/lower_bound + + (T... args) + + + T + max_size + cpp/container/multimap/max_size + + (T... args) + + + T + merge + cpp/container/multimap/merge + + (T... args) + + + T + multimap + cpp/container/multimap/multimap + + (T... args) + + + T + operator= + cpp/container/multimap/operator= + + (T... args) + + + T + rbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + rend + cpp/container/multimap/rend + + (T... args) + + + T + size + cpp/container/multimap/size + + (T... args) + + + T + swap + cpp/container/multimap/swap + + (T... args) + + + T + upper_bound + cpp/container/multimap/upper_bound + + (T... args) + + + T + value_comp + cpp/container/multimap/value_comp + + (T... args) + + std::multimap::value_compare + + T + ~multimap + cpp/container/multimap/~multimap + + (T... args) + + + + std::multimap::value_compare + cpp/container/multimap/value_compare + + T + comp + cpp/container/multimap/value_compare + + + + + T + operator() + cpp/container/multimap/value_compare + + (T... args) + + + T + value_compare + cpp/container/multimap/value_compare + + (T... args) + + + + std::multiplies + cpp/utility/functional/multiplies + + T + operator() + cpp/utility/functional/multiplies + + (T... args) + + + + std::multiset + cpp/container/multiset + + T + begin + cpp/container/multiset/begin + + (T... args) + + + T + cbegin + cpp/container/multiset/begin + + (T... args) + + + T + cend + cpp/container/multiset/end + + (T... args) + + + T + clear + cpp/container/multiset/clear + + (T... args) + + + T + contains + cpp/container/multiset/contains + + (T... args) + + + T + count + cpp/container/multiset/count + + (T... args) + + + T + crbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + crend + cpp/container/multiset/rend + + (T... args) + + + T + emplace + cpp/container/multiset/emplace + + (T... args) + + + T + emplace_hint + cpp/container/multiset/emplace_hint + + (T... args) + + + T + empty + cpp/container/multiset/empty + + (T... args) + + + T + end + cpp/container/multiset/end + + (T... args) + + + T + equal_range + cpp/container/multiset/equal_range + + (T... args) + + + T + erase + cpp/container/multiset/erase + + (T... args) + + + T + extract + cpp/container/multiset/extract + + (T... args) + + + T + find + cpp/container/multiset/find + + (T... args) + + + T + get_allocator + cpp/container/multiset/get_allocator + + (T... args) + + + T + insert + cpp/container/multiset/insert + + (T... args) + + + T + key_comp + cpp/container/multiset/key_comp + + (T... args) + + + T + lower_bound + cpp/container/multiset/lower_bound + + (T... args) + + + T + max_size + cpp/container/multiset/max_size + + (T... args) + + + T + merge + cpp/container/multiset/merge + + (T... args) + + + T + multiset + cpp/container/multiset/multiset + + (T... args) + + + T + operator= + cpp/container/multiset/operator= + + (T... args) + + + T + rbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + rend + cpp/container/multiset/rend + + (T... args) + + + T + size + cpp/container/multiset/size + + (T... args) + + + T + swap + cpp/container/multiset/swap + + (T... args) + + + T + upper_bound + cpp/container/multiset/upper_bound + + (T... args) + + + T + value_comp + cpp/container/multiset/value_comp + + (T... args) + + + T + ~multiset + cpp/container/multiset/~multiset + + (T... args) + + + + std::mutex + cpp/thread/mutex + + T + lock + cpp/thread/mutex/lock + + (T... args) + + + T + mutex + cpp/thread/mutex/mutex + + (T... args) + + + T + native_handle + cpp/thread/mutex/native_handle + + (T... args) + + + T + try_lock + cpp/thread/mutex/try_lock + + (T... args) + + + T + unlock + cpp/thread/mutex/unlock + + (T... args) + + + T + ~mutex + cpp/thread/mutex/~mutex + + (T... args) + + + + std::nano + cpp/numeric/ratio/ratio + + + std::negate + cpp/utility/functional/negate + + T + operator() + cpp/utility/functional/negate + + (T... args) + + + + std::negation + cpp/types/negation + + + std::negative_binomial_distribution + cpp/numeric/random/negative_binomial_distribution + + T + k + cpp/numeric/random/negative_binomial_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/negative_binomial_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/negative_binomial_distribution/min + + (T... args) + + + T + negative_binomial_distribution + cpp/numeric/random/negative_binomial_distribution/negative_binomial_distribution + + (T... args) + + + T + operator() + cpp/numeric/random/negative_binomial_distribution/operator() + + (T... args) + + + T + p + cpp/numeric/random/negative_binomial_distribution/params + + (T... args) + + + T + param + cpp/numeric/random/negative_binomial_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/negative_binomial_distribution/reset + + (T... args) + + + + std::nested_exception + cpp/error/nested_exception + + T + nested_exception + cpp/error/nested_exception/nested_exception + + (T... args) + + + T + nested_ptr + cpp/error/nested_exception/nested_ptr + + (T... args) + + + T + operator= + cpp/error/nested_exception/operator= + + (T... args) + + + T + rethrow_nested + cpp/error/nested_exception/rethrow_nested + + (T... args) + + + T + ~nested_exception + cpp/error/nested_exception/~nested_exception + + (T... args) + + + + std::new_handler + cpp/memory/new/new_handler + + + std::noop_coroutine_handle + cpp/coroutine/coroutine_handle + + + std::noop_coroutine_promise + cpp/coroutine/noop_coroutine_promise + + + std::normal_distribution + cpp/numeric/random/normal_distribution + + T + max + cpp/numeric/random/normal_distribution/max + + (T... args) + + + T + mean + cpp/numeric/random/normal_distribution/params + + (T... args) + + + T + min + cpp/numeric/random/normal_distribution/min + + (T... args) + + + T + normal_distribution + cpp/numeric/random/normal_distribution/normal_distribution + + (T... args) + + + T + operator() + cpp/numeric/random/normal_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/normal_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/normal_distribution/reset + + (T... args) + + + T + stddev + cpp/numeric/random/normal_distribution/params + + (T... args) + + + + std::nostopstate_t + cpp/thread/stop_source/nostopstate_t + + + std::not_equal_to + cpp/utility/functional/not_equal_to + + T + operator() + cpp/utility/functional/not_equal_to + + (T... args) + + + + std::nothrow_t + cpp/memory/new/nothrow_t + + + std::nullopt_t + cpp/utility/optional/nullopt_t + + + std::nullptr_t + cpp/types/nullptr_t + + + std::num_get + cpp/locale/num_get + std::num_get::char_type + + T + do_get + cpp/locale/num_get/get + + (T... args) + + + T + get + cpp/locale/num_get/get + + (T... args) + + + T + id + cpp/locale/num_get + + + + 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) + + + + std::num_get::char_type + cpp/locale/num_get + + + std::num_get::iter_type + cpp/locale/num_get + + + std::num_put + cpp/locale/num_put + std::num_put::char_type + + T + do_put + cpp/locale/num_put/put + + (T... args) + + + T + id + cpp/locale/num_put + + + + std::num_put::iter_type + + T + num_put + cpp/locale/num_put/num_put + + (T... args) + + + T + put + cpp/locale/num_put/put + + (T... args) + + + T + ~num_put + cpp/locale/num_put/~num_put + + (T... args) + + + + std::num_put::char_type + cpp/locale/num_put + + + std::num_put::iter_type + cpp/locale/num_put + + + std::numeric_limits + cpp/types/numeric_limits + + T + denorm_min + cpp/types/numeric_limits/denorm_min + + (T... args) + + + T + epsilon + cpp/types/numeric_limits/epsilon + + (T... args) + + + T + infinity + cpp/types/numeric_limits/infinity + + (T... args) + + + T + lowest + cpp/types/numeric_limits/lowest + + (T... args) + + + T + max + cpp/types/numeric_limits/max + + (T... args) + + + T + min + cpp/types/numeric_limits/min + + (T... args) + + + T + quiet_NaN + cpp/types/numeric_limits/quiet_NaN + + (T... args) + + + T + round_error + cpp/types/numeric_limits/round_error + + (T... args) + + + T + signaling_NaN + cpp/types/numeric_limits/signaling_NaN + + (T... args) + + + + std::numpunct + cpp/locale/numpunct + std::numpunct::char_type + + T + decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + do_thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + do_truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + id + cpp/locale/numpunct + + + + + T + numpunct + cpp/locale/numpunct/numpunct + + (T... args) + + std::numpunct::string_type + + T + thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + ~numpunct + cpp/locale/numpunct/~numpunct + + (T... args) + + + + std::numpunct::char_type + cpp/locale/numpunct + + + std::numpunct::string_type + cpp/locale/numpunct + + + std::numpunct_byname + cpp/locale/numpunct_byname + std::numpunct_byname::char_type + + T + decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_decimal_point + cpp/locale/numpunct/decimal_point + + (T... args) + + + T + do_falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + do_grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + do_thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + do_truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + falsename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + grouping + cpp/locale/numpunct/grouping + + (T... args) + + + T + id + cpp/locale/numpunct + + + + + T + numpunct_byname + cpp/locale/numpunct_byname + + (T... args) + + std::numpunct_byname::string_type + + T + thousands_sep + cpp/locale/numpunct/thousands_sep + + (T... args) + + + T + truename + cpp/locale/numpunct/truefalsename + + (T... args) + + + T + ~numpunct_byname + cpp/locale/numpunct_byname + + (T... args) + + + + std::numpunct_byname::char_type + cpp/locale/numpunct + + + std::numpunct_byname::string_type + cpp/locale/numpunct + + + std::ofstream + cpp/io/basic_ofstream + std::ofstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::ofstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ofstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + ofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::ofstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::ofstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::once_flag + cpp/thread/once_flag + + T + once_flag + cpp/thread/once_flag + + (T... args) + + + + std::optional + cpp/utility/optional + + T + emplace + cpp/utility/optional/emplace + + (T... args) + + + T + has_value + cpp/utility/optional/operator_bool + + (T... args) + + + T + operator bool + cpp/utility/optional/operator_bool + + (T... args) + + + T + operator* + cpp/utility/optional/operator* + + (T... args) + + + T + operator-> + cpp/utility/optional/operator* + + (T... args) + + + T + operator= + cpp/utility/optional/operator= + + (T... args) + + + T + optional + cpp/utility/optional/optional + + (T... args) + + + T + reset + cpp/utility/optional/reset + + (T... args) + + + T + swap + cpp/utility/optional/swap + + (T... args) + + + T + value + cpp/utility/optional/value + + (T... args) + + + T + value_or + cpp/utility/optional/value_or + + (T... args) + + + T + ~optional + cpp/utility/optional/~optional + + (T... args) + + + + std::ostream + cpp/io/basic_ostream + std::ostream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::ostream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ostream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ostream/operator= + + (T... args) + + + T + ostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::ostream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~ostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + + std::ostream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::ostream_iterator + cpp/iterator/ostream_iterator + + T + operator* + cpp/iterator/ostream_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/ostream_iterator/operator_arith + + (T... args) + + + T + operator++(int) + cpp/iterator/ostream_iterator/operator_arith + + (T... args) + + + T + operator= + cpp/iterator/ostream_iterator/operator= + + (T... args) + + + T + ostream_iterator + cpp/iterator/ostream_iterator/ostream_iterator + + (T... args) + + + T + ~ostream_iterator + cpp/iterator/ostream_iterator/~ostream_iterator + + (T... args) + + + + std::ostreambuf_iterator + cpp/iterator/ostreambuf_iterator + + T + failed + cpp/iterator/ostreambuf_iterator/failed + + (T... args) + + + T + operator* + cpp/iterator/ostreambuf_iterator/operator* + + (T... args) + + + T + operator++ + cpp/iterator/ostreambuf_iterator/operator_arith + + (T... args) + + + T + operator++(int) + cpp/iterator/ostreambuf_iterator/operator_arith + + (T... args) + + + T + operator= + cpp/iterator/ostreambuf_iterator/operator= + + (T... args) + + + T + ostreambuf_iterator + cpp/iterator/ostreambuf_iterator/ostreambuf_iterator + + (T... args) + + + T + ~ostreambuf_iterator + cpp/iterator/ostreambuf_iterator + + (T... args) + + + + std::ostringstream + cpp/io/basic_ostringstream + std::ostringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::ostringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ostringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + ostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::ostringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::ostringstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::ostrstream + cpp/io/ostrstream + std::ostrstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::ostrstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::ostrstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + freeze + cpp/io/ostrstream/freeze + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + ostrstream + cpp/io/ostrstream/ostrstream + + (T... args) + + + T + pcount + cpp/io/ostrstream/pcount + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::ostrstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/ostrstream/str + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~ostrstream + cpp/io/ostrstream/~ostrstream + + (T... args) + + + + std::ostrstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::osyncstream + cpp/io/basic_osyncstream + std::osyncstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + emit + cpp/io/basic_osyncstream/emit + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::osyncstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::osyncstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + get_wrapped + cpp/io/basic_osyncstream/get_wrapped + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_osyncstream/operator= + + (T... args) + + + T + osyncstream + cpp/io/basic_osyncstream/basic_osyncstream + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::osyncstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~osyncstream + cpp/io/basic_osyncstream/~basic_osyncstream + + (T... args) + + + + std::osyncstream::Init + cpp/io/ios_base/Init + + + std::osyncstream::event_callback + cpp/io/ios_base/event_callback + + + std::osyncstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::osyncstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + 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::output_iterator_tag + cpp/iterator/iterator_tags + + + 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::owner_less + cpp/memory/owner_less + + T + operator() + cpp/memory/owner_less + + (T... args) + + + + std::packaged_task + cpp/thread/packaged_task + + T + get_future + cpp/thread/packaged_task/get_future + + (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 + operator= + cpp/thread/packaged_task/operator= + + (T... args) + + + T + packaged_task + cpp/thread/packaged_task/packaged_task + + (T... args) + + + T + reset + cpp/thread/packaged_task/reset + + (T... args) + + + T + swap + cpp/thread/packaged_task/swap + + (T... args) + + + T + valid + cpp/thread/packaged_task/valid + + (T... args) + + + T + ~packaged_task + cpp/thread/packaged_task/~packaged_task + + (T... args) + + + + std::pair + cpp/utility/pair + + T + first + cpp/utility/pair + + + + + T + operator= + cpp/utility/pair/operator= + + (T... args) + + + T + pair + cpp/utility/pair/pair + + (T... args) + + + T + second + cpp/utility/pair + + + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + + std::partial_ordering + cpp/utility/compare/partial_ordering + + + std::peta + cpp/numeric/ratio/ratio + + + std::pico + cpp/numeric/ratio/ratio + + + std::piecewise_constant_distribution + cpp/numeric/random/piecewise_constant_distribution + + T + densities + cpp/numeric/random/piecewise_constant_distribution/params + + (T... args) + + + T + intervals + cpp/numeric/random/piecewise_constant_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/piecewise_constant_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/piecewise_constant_distribution/min + + (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 + piecewise_constant_distribution + cpp/numeric/random/piecewise_constant_distribution/piecewise_constant_distribution + + (T... args) + + + T + reset + cpp/numeric/random/piecewise_constant_distribution/reset + + (T... args) + + + + std::piecewise_construct_t + cpp/utility/piecewise_construct_t + + + std::piecewise_linear_distribution + cpp/numeric/random/piecewise_linear_distribution + + T + densities + cpp/numeric/random/piecewise_linear_distribution/params + + (T... args) + + + T + intervals + cpp/numeric/random/piecewise_linear_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/piecewise_linear_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/piecewise_linear_distribution/min + + (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 + piecewise_linear_distribution + cpp/numeric/random/piecewise_linear_distribution/piecewise_linear_distribution + + (T... args) + + + T + reset + cpp/numeric/random/piecewise_linear_distribution/reset + + (T... args) + + + + std::placeholders + cpp/utility/functional/placeholders + + + std::plus + cpp/utility/functional/plus + + T + operator() + cpp/utility/functional/plus + + (T... args) + + + + std::pmr + + std::pmr::deque + std::pmr::forward_list + + T + get_default_resource + cpp/memory/get_default_resource + + (T... args) + + std::pmr::list + std::pmr::map + std::pmr::memory_resource + std::pmr::monotonic_buffer_resource + std::pmr::multimap + std::pmr::multiset + + T + new_delete_resource + cpp/memory/new_delete_resource + + (T... args) + + + T + null_memory_resource + cpp/memory/null_memory_resource + + (T... args) + + std::pmr::polymorphic_allocator + std::pmr::pool_options + std::pmr::set + + T + set_default_resource + cpp/memory/set_default_resource + + (T... args) + + std::pmr::string + std::pmr::synchronized_pool_resource + std::pmr::u16string + std::pmr::u32string + std::pmr::u8string + std::pmr::unordered_map + std::pmr::unordered_multimap + std::pmr::unordered_multiset + std::pmr::unordered_set + std::pmr::unsynchronized_pool_resource + std::pmr::vector + std::pmr::wstring + + + std::pmr::deque + cpp/container/deque + + T + assign + cpp/container/deque/assign + + (T... args) + + + T + at + cpp/container/deque/at + + (T... args) + + + T + back + cpp/container/deque/back + + (T... args) + + + T + begin + cpp/container/deque/begin + + (T... args) + + + T + cbegin + cpp/container/deque/begin + + (T... args) + + + T + cend + cpp/container/deque/end + + (T... args) + + + T + clear + cpp/container/deque/clear + + (T... args) + + + T + crbegin + cpp/container/deque/rbegin + + (T... args) + + + T + crend + cpp/container/deque/rend + + (T... args) + + + T + deque + cpp/container/deque/deque + + (T... args) + + + T + emplace + cpp/container/deque/emplace + + (T... args) + + + T + emplace_back + cpp/container/deque/emplace_back + + (T... args) + + + T + emplace_front + cpp/container/deque/emplace_front + + (T... args) + + + T + empty + cpp/container/deque/empty + + (T... args) + + + T + end + cpp/container/deque/end + + (T... args) + + + T + erase + cpp/container/deque/erase + + (T... args) + + + T + front + cpp/container/deque/front + + (T... args) + + + T + get_allocator + cpp/container/deque/get_allocator + + (T... args) + + + T + insert + cpp/container/deque/insert + + (T... args) + + + T + max_size + cpp/container/deque/max_size + + (T... args) + + + T + operator= + cpp/container/deque/operator= + + (T... args) + + + T + operator[] + cpp/container/deque/operator_at + + (T... args) + + + T + pop_back + cpp/container/deque/pop_back + + (T... args) + + + T + pop_front + cpp/container/deque/pop_front + + (T... args) + + + T + push_back + cpp/container/deque/push_back + + (T... args) + + + T + push_front + cpp/container/deque/push_front + + (T... args) + + + T + rbegin + cpp/container/deque/rbegin + + (T... args) + + + T + rend + cpp/container/deque/rend + + (T... args) + + + T + resize + cpp/container/deque/resize + + (T... args) + + + T + shrink_to_fit + cpp/container/deque/shrink_to_fit + + (T... args) + + + T + size + cpp/container/deque/size + + (T... args) + + + T + swap + cpp/container/deque/swap + + (T... args) + + + T + ~deque + cpp/container/deque/~deque + + (T... args) + + + + std::pmr::forward_list + cpp/container/forward_list + + T + assign + cpp/container/forward_list/assign + + (T... args) + + + T + before_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + begin + cpp/container/forward_list/begin + + (T... args) + + + T + cbefore_begin + cpp/container/forward_list/before_begin + + (T... args) + + + T + cbegin + cpp/container/forward_list/begin + + (T... args) + + + T + cend + cpp/container/forward_list/end + + (T... args) + + + T + clear + cpp/container/forward_list/clear + + (T... args) + + + T + emplace_after + cpp/container/forward_list/emplace_after + + (T... args) + + + T + emplace_front + cpp/container/forward_list/emplace_front + + (T... args) + + + T + empty + cpp/container/forward_list/empty + + (T... args) + + + T + end + cpp/container/forward_list/end + + (T... args) + + + T + erase_after + cpp/container/forward_list/erase_after + + (T... args) + + + T + forward_list + cpp/container/forward_list/forward_list + + (T... args) + + + T + front + cpp/container/forward_list/front + + (T... args) + + + T + get_allocator + cpp/container/forward_list/get_allocator + + (T... args) + + + T + insert_after + cpp/container/forward_list/insert_after + + (T... args) + + + T + max_size + cpp/container/forward_list/max_size + + (T... args) + + + T + merge + cpp/container/forward_list/merge + + (T... args) + + + T + operator= + cpp/container/forward_list/operator= + + (T... args) + + + T + pop_front + cpp/container/forward_list/pop_front + + (T... args) + + + T + push_front + cpp/container/forward_list/push_front + + (T... args) + + + T + remove + cpp/container/forward_list/remove + + (T... args) + + + T + remove_if + cpp/container/forward_list/remove + + (T... args) + + + T + resize + cpp/container/forward_list/resize + + (T... args) + + + T + reverse + cpp/container/forward_list/reverse + + (T... args) + + + T + sort + cpp/container/forward_list/sort + + (T... args) + + + T + splice_after + cpp/container/forward_list/splice_after + + (T... args) + + + T + swap + cpp/container/forward_list/swap + + (T... args) + + + T + unique + cpp/container/forward_list/unique + + (T... args) + + + T + ~forward_list + cpp/container/forward_list/~forward_list + + (T... args) + + + + std::pmr::list + cpp/container/list + + T + assign + cpp/container/list/assign + + (T... args) + + + T + back + cpp/container/list/back + + (T... args) + + + T + begin + cpp/container/list/begin + + (T... args) + + + T + cbegin + cpp/container/list/begin + + (T... args) + + + T + cend + cpp/container/list/end + + (T... args) + + + T + clear + cpp/container/list/clear + + (T... args) + + + T + crbegin + cpp/container/list/rbegin + + (T... args) + + + T + crend + cpp/container/list/rend + + (T... args) + + + T + emplace + cpp/container/list/emplace + + (T... args) + + + T + emplace_back + cpp/container/list/emplace_back + + (T... args) + + + T + emplace_front + cpp/container/list/emplace_front + + (T... args) + + + T + empty + cpp/container/list/empty + + (T... args) + + + T + end + cpp/container/list/end + + (T... args) + + + T + erase + cpp/container/list/erase + + (T... args) + + + T + front + cpp/container/list/front + + (T... args) + + + T + get_allocator + cpp/container/list/get_allocator + + (T... args) + + + T + insert + cpp/container/list/insert + + (T... args) + + + T + list + cpp/container/list/list + + (T... args) + + + T + max_size + cpp/container/list/max_size + + (T... args) + + + T + merge + cpp/container/list/merge + + (T... args) + + + T + operator= + cpp/container/list/operator= + + (T... args) + + + T + pop_back + cpp/container/list/pop_back + + (T... args) + + + T + pop_front + cpp/container/list/pop_front + + (T... args) + + + T + push_back + cpp/container/list/push_back + + (T... args) + + + T + push_front + cpp/container/list/push_front + + (T... args) + + + T + rbegin + cpp/container/list/rbegin + + (T... args) + + + T + remove + cpp/container/list/remove + + (T... args) + + + T + remove_if + cpp/container/list/remove + + (T... args) + + + T + rend + cpp/container/list/rend + + (T... args) + + + T + resize + cpp/container/list/resize + + (T... args) + + + T + reverse + cpp/container/list/reverse + + (T... args) + + + T + size + cpp/container/list/size + + (T... args) + + + T + sort + cpp/container/list/sort + + (T... args) + + + T + splice + cpp/container/list/splice + + (T... args) + + + T + swap + cpp/container/list/swap + + (T... args) + + + T + unique + cpp/container/list/unique + + (T... args) + + + T + ~list + cpp/container/list/~list + + (T... args) + + + + std::pmr::map + cpp/container/map + + T + at + cpp/container/map/at + + (T... args) + + + T + begin + cpp/container/map/begin + + (T... args) + + + T + cbegin + cpp/container/map/begin + + (T... args) + + + T + cend + cpp/container/map/end + + (T... args) + + + T + clear + cpp/container/map/clear + + (T... args) + + + T + contains + cpp/container/map/contains + + (T... args) + + + T + count + cpp/container/map/count + + (T... args) + + + T + crbegin + cpp/container/map/rbegin + + (T... args) + + + T + crend + cpp/container/map/rend + + (T... args) + + + T + emplace + cpp/container/map/emplace + + (T... args) + + + T + emplace_hint + cpp/container/map/emplace_hint + + (T... args) + + + T + empty + cpp/container/map/empty + + (T... args) + + + T + end + cpp/container/map/end + + (T... args) + + + T + equal_range + cpp/container/map/equal_range + + (T... args) + + + T + erase + cpp/container/map/erase + + (T... args) + + + T + extract + cpp/container/map/extract + + (T... args) + + + T + find + cpp/container/map/find + + (T... args) + + + T + get_allocator + cpp/container/map/get_allocator + + (T... args) + + + T + insert + cpp/container/map/insert + + (T... args) + + + T + insert_or_assign + cpp/container/map/insert_or_assign + + (T... args) + + + T + key_comp + cpp/container/map/key_comp + + (T... args) + + + T + lower_bound + cpp/container/map/lower_bound + + (T... args) + + + T + map + cpp/container/map/map + + (T... args) + + + T + max_size + cpp/container/map/max_size + + (T... args) + + + T + merge + cpp/container/map/merge + + (T... args) + + + T + operator= + cpp/container/map/operator= + + (T... args) + + + T + operator[] + cpp/container/map/operator_at + + (T... args) + + + T + rbegin + cpp/container/map/rbegin + + (T... args) + + + T + rend + cpp/container/map/rend + + (T... args) + + + T + size + cpp/container/map/size + + (T... args) + + + T + swap + cpp/container/map/swap + + (T... args) + + + T + try_emplace + cpp/container/map/try_emplace + + (T... args) + + + T + upper_bound + cpp/container/map/upper_bound + + (T... args) + + + T + value_comp + cpp/container/map/value_comp + + (T... args) + + std::pmr::map::value_compare + + T + ~map + cpp/container/map/~map + + (T... args) + + + + std::pmr::map::value_compare + cpp/container/map/value_compare + + T + comp + cpp/container/map/value_compare + + + + + T + operator() + cpp/container/map/value_compare + + (T... args) + + + T + value_compare + cpp/container/map/value_compare + + (T... args) + + + + std::pmr::memory_resource + cpp/memory/memory_resource + + T + allocate + cpp/memory/memory_resource/allocate + + (T... args) + + + T + deallocate + cpp/memory/memory_resource/deallocate + + (T... args) + + + T + do_allocate + cpp/memory/memory_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/memory/memory_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/memory/memory_resource/do_is_equal + + (T... args) + + + T + is_equal + cpp/memory/memory_resource/is_equal + + (T... args) + + + T + memory_resource + cpp/memory/memory_resource/memory_resource + + (T... args) + + + + std::pmr::monotonic_buffer_resource + cpp/memory/monotonic_buffer_resource + + T + allocate + cpp/memory/memory_resource/allocate + + (T... args) + + + T + deallocate + cpp/memory/memory_resource/deallocate + + (T... args) + + + T + do_allocate + cpp/memory/memory_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/memory/memory_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/memory/memory_resource/do_is_equal + + (T... args) + + + T + is_equal + cpp/memory/memory_resource/is_equal + + (T... args) + + + T + monotonic_buffer_resource + cpp/memory/monotonic_buffer_resource/monotonic_buffer_resource + + (T... args) + + + T + release + cpp/memory/monotonic_buffer_resource/release + + (T... args) + + + T + upstream_resource + cpp/memory/monotonic_buffer_resource/upstream_resource + + (T... args) + + + T + ~monotonic_buffer_resource + cpp/memory/monotonic_buffer_resource/~monotonic_buffer_resource + + (T... args) + + + + std::pmr::multimap + cpp/container/multimap + + T + begin + cpp/container/multimap/begin + + (T... args) + + + T + cbegin + cpp/container/multimap/begin + + (T... args) + + + T + cend + cpp/container/multimap/end + + (T... args) + + + T + clear + cpp/container/multimap/clear + + (T... args) + + + T + contains + cpp/container/multimap/contains + + (T... args) + + + T + count + cpp/container/multimap/count + + (T... args) + + + T + crbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + crend + cpp/container/multimap/rend + + (T... args) + + + T + emplace + cpp/container/multimap/emplace + + (T... args) + + + T + emplace_hint + cpp/container/multimap/emplace_hint + + (T... args) + + + T + empty + cpp/container/multimap/empty + + (T... args) + + + T + end + cpp/container/multimap/end + + (T... args) + + + T + equal_range + cpp/container/multimap/equal_range + + (T... args) + + + T + erase + cpp/container/multimap/erase + + (T... args) + + + T + extract + cpp/container/multimap/extract + + (T... args) + + + T + find + cpp/container/multimap/find + + (T... args) + + + T + get_allocator + cpp/container/multimap/get_allocator + + (T... args) + + + T + insert + cpp/container/multimap/insert + + (T... args) + + + T + key_comp + cpp/container/multimap/key_comp + + (T... args) + + + T + lower_bound + cpp/container/multimap/lower_bound + + (T... args) + + + T + max_size + cpp/container/multimap/max_size + + (T... args) + + + T + merge + cpp/container/multimap/merge + + (T... args) + + + T + multimap + cpp/container/multimap/multimap + + (T... args) + + + T + operator= + cpp/container/multimap/operator= + + (T... args) + + + T + rbegin + cpp/container/multimap/rbegin + + (T... args) + + + T + rend + cpp/container/multimap/rend + + (T... args) + + + T + size + cpp/container/multimap/size + + (T... args) + + + T + swap + cpp/container/multimap/swap + + (T... args) + + + T + upper_bound + cpp/container/multimap/upper_bound + + (T... args) + + + T + value_comp + cpp/container/multimap/value_comp + + (T... args) + + std::pmr::multimap::value_compare + + T + ~multimap + cpp/container/multimap/~multimap + + (T... args) + + + + std::pmr::multimap::value_compare + cpp/container/multimap/value_compare + + T + comp + cpp/container/multimap/value_compare + + + + + T + operator() + cpp/container/multimap/value_compare + + (T... args) + + + T + value_compare + cpp/container/multimap/value_compare + + (T... args) + + + + std::pmr::multiset + cpp/container/multiset + + T + begin + cpp/container/multiset/begin + + (T... args) + + + T + cbegin + cpp/container/multiset/begin + + (T... args) + + + T + cend + cpp/container/multiset/end + + (T... args) + + + T + clear + cpp/container/multiset/clear + + (T... args) + + + T + contains + cpp/container/multiset/contains + + (T... args) + + + T + count + cpp/container/multiset/count + + (T... args) + + + T + crbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + crend + cpp/container/multiset/rend + + (T... args) + + + T + emplace + cpp/container/multiset/emplace + + (T... args) + + + T + emplace_hint + cpp/container/multiset/emplace_hint + + (T... args) + + + T + empty + cpp/container/multiset/empty + + (T... args) + + + T + end + cpp/container/multiset/end + + (T... args) + + + T + equal_range + cpp/container/multiset/equal_range + + (T... args) + + + T + erase + cpp/container/multiset/erase + + (T... args) + + + T + extract + cpp/container/multiset/extract + + (T... args) + + + T + find + cpp/container/multiset/find + + (T... args) + + + T + get_allocator + cpp/container/multiset/get_allocator + + (T... args) + + + T + insert + cpp/container/multiset/insert + + (T... args) + + + T + key_comp + cpp/container/multiset/key_comp + + (T... args) + + + T + lower_bound + cpp/container/multiset/lower_bound + + (T... args) + + + T + max_size + cpp/container/multiset/max_size + + (T... args) + + + T + merge + cpp/container/multiset/merge + + (T... args) + + + T + multiset + cpp/container/multiset/multiset + + (T... args) + + + T + operator= + cpp/container/multiset/operator= + + (T... args) + + + T + rbegin + cpp/container/multiset/rbegin + + (T... args) + + + T + rend + cpp/container/multiset/rend + + (T... args) + + + T + size + cpp/container/multiset/size + + (T... args) + + + T + swap + cpp/container/multiset/swap + + (T... args) + + + T + upper_bound + cpp/container/multiset/upper_bound + + (T... args) + + + T + value_comp + cpp/container/multiset/value_comp + + (T... args) + + + T + ~multiset + cpp/container/multiset/~multiset + + (T... args) + + + + std::pmr::polymorphic_allocator + cpp/memory/polymorphic_allocator + + T + allocate + cpp/memory/polymorphic_allocator/allocate + + (T... args) + + + T + construct + cpp/memory/polymorphic_allocator/construct + + (T... args) + + + T + deallocate + cpp/memory/polymorphic_allocator/deallocate + + (T... args) + + + T + destroy + cpp/memory/polymorphic_allocator/destroy + + (T... args) + + + T + polymorphic_allocator + cpp/memory/polymorphic_allocator/polymorphic_allocator + + (T... args) + + + T + resource + cpp/memory/polymorphic_allocator/resource + + (T... args) + + + T + select_on_container_copy_construction + cpp/memory/polymorphic_allocator/select_on_container_copy_construction + + (T... args) + + + T + ~polymorphic_allocator + cpp/memory/polymorphic_allocator + + (T... args) + + + + std::pmr::pool_options + cpp/memory/pool_options + + T + largest_required_pool_block + cpp/memory/pool_options + + + + + T + max_blocks_per_chunk + cpp/memory/pool_options + + + + + + std::pmr::set + cpp/container/set + + T + begin + cpp/container/set/begin + + (T... args) + + + T + cbegin + cpp/container/set/begin + + (T... args) + + + T + cend + cpp/container/set/end + + (T... args) + + + T + clear + cpp/container/set/clear + + (T... args) + + + T + contains + cpp/container/set/contains + + (T... args) + + + T + count + cpp/container/set/count + + (T... args) + + + T + crbegin + cpp/container/set/rbegin + + (T... args) + + + T + crend + cpp/container/set/rend + + (T... args) + + + T + emplace + cpp/container/set/emplace + + (T... args) + + + T + emplace_hint + cpp/container/set/emplace_hint + + (T... args) + + + T + empty + cpp/container/set/empty + + (T... args) + + + T + end + cpp/container/set/end + + (T... args) + + + T + equal_range + cpp/container/set/equal_range + + (T... args) + + + T + erase + cpp/container/set/erase + + (T... args) + + + T + extract + cpp/container/set/extract + + (T... args) + + + T + find + cpp/container/set/find + + (T... args) + + + T + get_allocator + cpp/container/set/get_allocator + + (T... args) + + + T + insert + cpp/container/set/insert + + (T... args) + + + T + key_comp + cpp/container/set/key_comp + + (T... args) + + + T + lower_bound + cpp/container/set/lower_bound + + (T... args) + + + T + max_size + cpp/container/set/max_size + + (T... args) + + + T + merge + cpp/container/set/merge + + (T... args) + + + T + operator= + cpp/container/set/operator= + + (T... args) + + + T + rbegin + cpp/container/set/rbegin + + (T... args) + + + T + rend + cpp/container/set/rend + + (T... args) + + + T + set + cpp/container/set/set + + (T... args) + + + T + size + cpp/container/set/size + + (T... args) + + + T + swap + cpp/container/set/swap + + (T... args) + + + T + upper_bound + cpp/container/set/upper_bound + + (T... args) + + + T + value_comp + cpp/container/set/value_comp + + (T... args) + + + T + ~set + cpp/container/set/~set + + (T... args) + + + + std::pmr::string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + string + cpp/string/basic_string/basic_string + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + + std::pmr::synchronized_pool_resource + cpp/memory/synchronized_pool_resource + + T + allocate + cpp/memory/memory_resource/allocate + + (T... args) + + + T + deallocate + cpp/memory/memory_resource/deallocate + + (T... args) + + + T + do_allocate + cpp/memory/memory_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/memory/memory_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/memory/memory_resource/do_is_equal + + (T... args) + + + T + is_equal + cpp/memory/memory_resource/is_equal + + (T... args) + + + T + options + cpp/memory/synchronized_pool_resource/options + + (T... args) + + + T + release + cpp/memory/synchronized_pool_resource/release + + (T... args) + + + T + synchronized_pool_resource + cpp/memory/synchronized_pool_resource/synchronized_pool_resource + + (T... args) + + + T + upstream_resource + cpp/memory/synchronized_pool_resource/upstream_resource + + (T... args) + + + T + ~synchronized_pool_resource + cpp/memory/synchronized_pool_resource/~synchronized_pool_resource + + (T... args) + + + + std::pmr::u16string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + u16string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::pmr::u32string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + u32string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::pmr::u8string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + u8string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::pmr::unordered_map + cpp/container/unordered_map + + T + at + cpp/container/unordered_map/at + + (T... args) + + + T + begin + cpp/container/unordered_map/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_map/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_map/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_map/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_map/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_map/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + clear + cpp/container/unordered_map/clear + + (T... args) + + + T + contains + cpp/container/unordered_map/contains + + (T... args) + + + T + count + cpp/container/unordered_map/count + + (T... args) + + + T + emplace + cpp/container/unordered_map/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_map/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_map/empty + + (T... args) + + + T + end + cpp/container/unordered_map/end + + (T... args) + + + T + end(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_map/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_map/erase + + (T... args) + + + T + extract + cpp/container/unordered_map/extract + + (T... args) + + + T + find + cpp/container/unordered_map/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_map/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_map/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_map/insert + + (T... args) + + + T + insert_or_assign + cpp/container/unordered_map/insert_or_assign + + (T... args) + + + T + key_eq + cpp/container/unordered_map/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_map/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_map/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_map/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_map/max_size + + (T... args) + + + T + merge + cpp/container/unordered_map/merge + + (T... args) + + + T + operator= + cpp/container/unordered_map/operator= + + (T... args) + + + T + operator[] + cpp/container/unordered_map/operator_at + + (T... args) + + + T + rehash + cpp/container/unordered_map/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_map/reserve + + (T... args) + + + T + size + cpp/container/unordered_map/size + + (T... args) + + + T + swap + cpp/container/unordered_map/swap + + (T... args) + + + T + try_emplace + cpp/container/unordered_map/try_emplace + + (T... args) + + + T + unordered_map + cpp/container/unordered_map/unordered_map + + (T... args) + + + T + ~unordered_map + cpp/container/unordered_map/~unordered_map + + (T... args) + + + + std::pmr::unordered_multimap + cpp/container/unordered_multimap + + T + begin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_multimap/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_multimap/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_multimap/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_multimap/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + clear + cpp/container/unordered_multimap/clear + + (T... args) + + + T + contains + cpp/container/unordered_multimap/contains + + (T... args) + + + T + count + cpp/container/unordered_multimap/count + + (T... args) + + + T + emplace + cpp/container/unordered_multimap/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multimap/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_multimap/empty + + (T... args) + + + T + end + cpp/container/unordered_multimap/end + + (T... args) + + + T + end(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_multimap/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_multimap/erase + + (T... args) + + + T + extract + cpp/container/unordered_multimap/extract + + (T... args) + + + T + find + cpp/container/unordered_multimap/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_multimap/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_multimap/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_multimap/insert + + (T... args) + + + T + key_eq + cpp/container/unordered_multimap/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_multimap/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_multimap/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multimap/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_multimap/max_size + + (T... args) + + + T + merge + cpp/container/unordered_multimap/merge + + (T... args) + + + T + operator= + cpp/container/unordered_multimap/operator= + + (T... args) + + + T + rehash + cpp/container/unordered_multimap/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_multimap/reserve + + (T... args) + + + T + size + cpp/container/unordered_multimap/size + + (T... args) + + + T + swap + cpp/container/unordered_multimap/swap + + (T... args) + + + T + unordered_multimap + cpp/container/unordered_multimap/unordered_multimap + + (T... args) + + + T + ~unordered_multimap + cpp/container/unordered_multimap/~unordered_multimap + + (T... args) + + + + std::pmr::unordered_multiset + cpp/container/unordered_multiset + + T + begin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_multiset/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_multiset/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_multiset/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_multiset/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + clear + cpp/container/unordered_multiset/clear + + (T... args) + + + T + contains + cpp/container/unordered_multiset/contains + + (T... args) + + + T + count + cpp/container/unordered_multiset/count + + (T... args) + + + T + emplace + cpp/container/unordered_multiset/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multiset/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_multiset/empty + + (T... args) + + + T + end + cpp/container/unordered_multiset/end + + (T... args) + + + T + end(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_multiset/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_multiset/erase + + (T... args) + + + T + extract + cpp/container/unordered_multiset/extract + + (T... args) + + + T + find + cpp/container/unordered_multiset/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_multiset/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_multiset/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_multiset/insert + + (T... args) + + + T + key_eq + cpp/container/unordered_multiset/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_multiset/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_multiset/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multiset/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_multiset/max_size + + (T... args) + + + T + merge + cpp/container/unordered_multiset/merge + + (T... args) + + + T + operator= + cpp/container/unordered_multiset/operator= + + (T... args) + + + T + rehash + cpp/container/unordered_multiset/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_multiset/reserve + + (T... args) + + + T + size + cpp/container/unordered_multiset/size + + (T... args) + + + T + swap + cpp/container/unordered_multiset/swap + + (T... args) + + + T + unordered_multiset + cpp/container/unordered_multiset/unordered_multiset + + (T... args) + + + T + ~unordered_multiset + cpp/container/unordered_multiset/~unordered_multiset + + (T... args) + + + + std::pmr::unordered_set + cpp/container/unordered_set + + T + begin + cpp/container/unordered_set/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_set/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_set/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_set/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_set/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_set/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + clear + cpp/container/unordered_set/clear + + (T... args) + + + T + contains + cpp/container/unordered_set/contains + + (T... args) + + + T + count + cpp/container/unordered_set/count + + (T... args) + + + T + emplace + cpp/container/unordered_set/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_set/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_set/empty + + (T... args) + + + T + end + cpp/container/unordered_set/end + + (T... args) + + + T + end(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_set/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_set/erase + + (T... args) + + + T + extract + cpp/container/unordered_set/extract + + (T... args) + + + T + find + cpp/container/unordered_set/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_set/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_set/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_set/insert + + (T... args) + + + T + key_eq + cpp/container/unordered_set/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_set/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_set/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_set/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_set/max_size + + (T... args) + + + T + merge + cpp/container/unordered_set/merge + + (T... args) + + + T + operator= + cpp/container/unordered_set/operator= + + (T... args) + + + T + rehash + cpp/container/unordered_set/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_set/reserve + + (T... args) + + + T + size + cpp/container/unordered_set/size + + (T... args) + + + T + swap + cpp/container/unordered_set/swap + + (T... args) + + + T + unordered_set + cpp/container/unordered_set/unordered_set + + (T... args) + + + T + ~unordered_set + cpp/container/unordered_set/~unordered_set + + (T... args) + + + + std::pmr::unsynchronized_pool_resource + cpp/memory/unsynchronized_pool_resource + + T + allocate + cpp/memory/memory_resource/allocate + + (T... args) + + + T + deallocate + cpp/memory/memory_resource/deallocate + + (T... args) + + + T + do_allocate + cpp/memory/memory_resource/do_allocate + + (T... args) + + + T + do_deallocate + cpp/memory/memory_resource/do_deallocate + + (T... args) + + + T + do_is_equal + cpp/memory/memory_resource/do_is_equal + + (T... args) + + + T + is_equal + cpp/memory/memory_resource/is_equal + + (T... args) + + + T + options + cpp/memory/unsynchronized_pool_resource/options + + (T... args) + + + T + release + cpp/memory/unsynchronized_pool_resource/release + + (T... args) + + + T + unsynchronized_pool_resource + cpp/memory/unsynchronized_pool_resource/unsynchronized_pool_resource + + (T... args) + + + T + upstream_resource + cpp/memory/unsynchronized_pool_resource/upstream_resource + + (T... args) + + + T + ~unsynchronized_pool_resource + cpp/memory/unsynchronized_pool_resource/~unsynchronized_pool_resource + + (T... args) + + + + std::pmr::vector + cpp/container/vector + + T + assign + cpp/container/vector/assign + + (T... args) + + + T + at + cpp/container/vector/at + + (T... args) + + + T + back + cpp/container/vector/back + + (T... args) + + + T + begin + cpp/container/vector/begin + + (T... args) + + + T + capacity + cpp/container/vector/capacity + + (T... args) + + + T + cbegin + cpp/container/vector/begin + + (T... args) + + + T + cend + cpp/container/vector/end + + (T... args) + + + T + clear + cpp/container/vector/clear + + (T... args) + + + T + crbegin + cpp/container/vector/rbegin + + (T... args) + + + T + crend + cpp/container/vector/rend + + (T... args) + + + T + data + cpp/container/vector/data + + (T... args) + + + T + emplace + cpp/container/vector/emplace + + (T... args) + + + T + emplace_back + cpp/container/vector/emplace_back + + (T... args) + + + T + empty + cpp/container/vector/empty + + (T... args) + + + T + end + cpp/container/vector/end + + (T... args) + + + T + erase + cpp/container/vector/erase + + (T... args) + + + T + front + cpp/container/vector/front + + (T... args) + + + T + get_allocator + cpp/container/vector/get_allocator + + (T... args) + + + T + insert + cpp/container/vector/insert + + (T... args) + + + T + max_size + cpp/container/vector/max_size + + (T... args) + + + T + operator= + cpp/container/vector/operator= + + (T... args) + + + T + operator[] + cpp/container/vector/operator_at + + (T... args) + + + T + pop_back + cpp/container/vector/pop_back + + (T... args) + + + T + push_back + cpp/container/vector/push_back + + (T... args) + + + T + rbegin + cpp/container/vector/rbegin + + (T... args) + + + T + rend + cpp/container/vector/rend + + (T... args) + + + T + reserve + cpp/container/vector/reserve + + (T... args) + + + T + resize + cpp/container/vector/resize + + (T... args) + + + T + shrink_to_fit + cpp/container/vector/shrink_to_fit + + (T... args) + + + T + size + cpp/container/vector/size + + (T... args) + + + T + swap + cpp/container/vector/swap + + (T... args) + + + T + vector + cpp/container/vector/vector + + (T... args) + + + T + ~vector + cpp/container/vector/~vector + + (T... args) + + + + std::pmr::wstring + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + wstring + cpp/string/basic_string/basic_string + + (T... args) + + + + std::pointer_safety + cpp/memory/gc/pointer_safety + + + std::pointer_to_binary_function + cpp/utility/functional/pointer_to_binary_function + + + std::pointer_to_unary_function + cpp/utility/functional/pointer_to_unary_function + + + std::pointer_traits + cpp/memory/pointer_traits + + T + pointer_to + cpp/memory/pointer_traits/pointer_to + + (T... args) + + std::pointer_traits::rebind + + T + to_address + cpp/memory/pointer_traits/to_address + + (T... args) + + + + std::pointer_traits::rebind + cpp/memory/pointer_traits + + + std::poisson_distribution + cpp/numeric/random/poisson_distribution + + T + max + cpp/numeric/random/poisson_distribution/max + + (T... args) + + + T + mean + cpp/numeric/random/poisson_distribution/mean + + (T... args) + + + T + min + cpp/numeric/random/poisson_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/poisson_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/poisson_distribution/param + + (T... args) + + + T + poisson_distribution + cpp/numeric/random/poisson_distribution/poisson_distribution + + (T... args) + + + T + reset + cpp/numeric/random/poisson_distribution/reset + + (T... args) + + + + std::priority_queue + cpp/container/priority_queue + + T + c + cpp/container/priority_queue + + + + + T + emplace + cpp/container/priority_queue/emplace + + (T... args) + + + T + empty + cpp/container/priority_queue/empty + + (T... args) + + + T + operator= + cpp/container/priority_queue/operator= + + (T... args) + + + T + pop + cpp/container/priority_queue/pop + + (T... args) + + + T + priority_queue + cpp/container/priority_queue/priority_queue + + (T... args) + + + T + push + cpp/container/priority_queue/push + + (T... args) + + + T + size + cpp/container/priority_queue/size + + (T... args) + + + T + swap + cpp/container/priority_queue/swap + + (T... args) + + + T + top + cpp/container/priority_queue/top + + (T... args) + + + T + ~priority_queue + cpp/container/priority_queue/~priority_queue + + (T... args) + + + + std::promise + cpp/thread/promise + + T + get_future + cpp/thread/promise/get_future + + (T... args) + + + T + operator= + cpp/thread/promise/operator= + + (T... args) + + + T + promise + cpp/thread/promise/promise + + (T... args) + + + T + set_exception + cpp/thread/promise/set_exception + + (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 + set_value_at_thread_exit + cpp/thread/promise/set_value_at_thread_exit + + (T... args) + + + T + swap + cpp/thread/promise/swap + + (T... args) + + + T + ~promise + cpp/thread/promise/~promise + + (T... args) + + + + std::ptrdiff_t + cpp/types/ptrdiff_t + + + std::queue + cpp/container/queue + + T + back + cpp/container/queue/back + + (T... args) + + + T + c + cpp/container/queue + + + + + T + emplace + cpp/container/queue/emplace + + (T... args) + + + T + empty + cpp/container/queue/empty + + (T... args) + + + T + front + cpp/container/queue/front + + (T... args) + + + T + operator= + cpp/container/queue/operator= + + (T... args) + + + T + pop + cpp/container/queue/pop + + (T... args) + + + T + push + cpp/container/queue/push + + (T... args) + + + T + queue + cpp/container/queue/queue + + (T... args) + + + T + size + cpp/container/queue/size + + (T... args) + + + T + swap + cpp/container/queue/swap + + (T... args) + + + T + ~queue + cpp/container/queue/~queue + + (T... args) + + + + std::random_access_iterator_tag + cpp/iterator/iterator_tags + + + std::random_device + cpp/numeric/random/random_device + + T + entropy + cpp/numeric/random/random_device/entropy + + (T... args) + + + T + max + cpp/numeric/random/random_device/max + + (T... args) + + + T + min + cpp/numeric/random/random_device/min + + (T... args) + + + T + operator() + cpp/numeric/random/random_device/operator() + + (T... args) + + + T + random_device + cpp/numeric/random/random_device/random_device + + (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::ranges + + + T + adjacent_find + cpp/algorithm/ranges/adjacent_find + + (T... args) + + + T + all_of + cpp/algorithm/ranges/all_any_none_of + + (T... args) + + + T + any_of + cpp/algorithm/ranges/all_any_none_of + + (T... args) + + + T + begin + cpp/ranges/begin + + (T... args) + + + T + binary_search + cpp/algorithm/ranges/binary_search + + (T... args) + + + T + cbegin + cpp/ranges/begin + + (T... args) + + + T + clamp + cpp/algorithm/ranges/clamp + + (T... args) + + + T + construct_at + cpp/memory/ranges/construct_at + + (T... args) + + + T + copy + cpp/algorithm/ranges/copy + + (T... args) + + + T + copy_backward + cpp/algorithm/ranges/copy_backward + + (T... args) + + + T + copy_if + cpp/algorithm/ranges/copy + + (T... args) + + + T + copy_n + cpp/algorithm/ranges/copy_n + + (T... args) + + + T + count + cpp/algorithm/ranges/count + + (T... args) + + + T + count_if + cpp/algorithm/ranges/count + + (T... args) + + + T + destroy + cpp/memory/ranges/destroy + + (T... args) + + + T + destroy_at + cpp/memory/ranges/destroy_at + + (T... args) + + + T + destroy_n + cpp/memory/ranges/destroy_n + + (T... args) + + + T + equal + cpp/algorithm/ranges/equal + + (T... args) + + + T + equal_range + cpp/algorithm/ranges/equal_range + + (T... args) + + std::ranges::equal_to + + T + fill + cpp/algorithm/ranges/fill + + (T... args) + + + T + fill_n + cpp/algorithm/ranges/fill_n + + (T... args) + + + T + find + cpp/algorithm/ranges/find + + (T... args) + + + T + find_end + cpp/algorithm/ranges/find_end + + (T... args) + + + T + find_first_of + cpp/algorithm/ranges/find_first_of + + (T... args) + + + T + find_if + cpp/algorithm/ranges/find + + (T... args) + + + T + find_if_not + cpp/algorithm/ranges/find + + (T... args) + + + T + for_each + cpp/algorithm/ranges/for_each + + (T... args) + + + T + for_each_n + cpp/algorithm/ranges/for_each_n + + (T... args) + + + T + generate + cpp/algorithm/ranges/generate + + (T... args) + + + T + generate_n + cpp/algorithm/ranges/generate_n + + (T... args) + + std::ranges::greater + std::ranges::greater_equal + + T + includes + cpp/algorithm/ranges/includes + + (T... args) + + + T + inplace_merge + cpp/algorithm/ranges/inplace_merge + + (T... args) + + + T + is_heap + cpp/algorithm/ranges/is_heap + + (T... args) + + + T + is_heap_until + cpp/algorithm/ranges/is_heap_until + + (T... args) + + + T + is_partitioned + cpp/algorithm/ranges/is_partitioned + + (T... args) + + + T + is_permutation + cpp/algorithm/ranges/is_permutation + + (T... args) + + + T + is_sorted + cpp/algorithm/ranges/is_sorted + + (T... args) + + + T + is_sorted_until + cpp/algorithm/ranges/is_sorted_until + + (T... args) + + std::ranges::less + std::ranges::less_equal + + T + lexicographical_compare + cpp/algorithm/ranges/lexicographical_compare + + (T... args) + + + T + lower_bound + cpp/algorithm/ranges/lower_bound + + (T... args) + + + T + make_heap + cpp/algorithm/ranges/make_heap + + (T... args) + + + T + max + cpp/algorithm/ranges/max + + (T... args) + + + T + max_element + cpp/algorithm/ranges/max_element + + (T... args) + + + T + merge + cpp/algorithm/ranges/merge + + (T... args) + + + T + min + cpp/algorithm/ranges/min + + (T... args) + + + T + min_element + cpp/algorithm/ranges/min_element + + (T... args) + + + T + minmax + cpp/algorithm/ranges/minmax + + (T... args) + + + T + minmax_element + cpp/algorithm/ranges/minmax_element + + (T... args) + + + T + mismatch + cpp/algorithm/ranges/mismatch + + (T... args) + + + T + move + cpp/algorithm/ranges/move + + (T... args) + + + T + move_backward + cpp/algorithm/ranges/move_backward + + (T... args) + + + T + next_permutation + cpp/algorithm/ranges/next_permutation + + (T... args) + + + T + none_of + cpp/algorithm/ranges/all_any_none_of + + (T... args) + + std::ranges::not_equal_to + + T + nth_element + cpp/algorithm/ranges/nth_element + + (T... args) + + + T + partial_sort + cpp/algorithm/ranges/partial_sort + + (T... args) + + + T + partial_sort_copy + cpp/algorithm/ranges/partial_sort_copy + + (T... args) + + + T + partition + cpp/algorithm/ranges/partition + + (T... args) + + + T + partition_copy + cpp/algorithm/ranges/partition_copy + + (T... args) + + + T + partition_point + cpp/algorithm/ranges/partition_point + + (T... args) + + + T + pop_heap + cpp/algorithm/ranges/pop_heap + + (T... args) + + + T + prev_permutation + cpp/algorithm/ranges/prev_permutation + + (T... args) + + + T + push_heap + cpp/algorithm/ranges/push_heap + + (T... args) + + + T + remove + cpp/algorithm/ranges/remove + + (T... args) + + + T + remove_copy + cpp/algorithm/ranges/remove_copy + + (T... args) + + + T + remove_copy_if + cpp/algorithm/ranges/remove_copy + + (T... args) + + + T + remove_if + cpp/algorithm/ranges/remove + + (T... args) + + + T + replace + cpp/algorithm/ranges/replace + + (T... args) + + + T + replace_copy + cpp/algorithm/ranges/replace_copy + + (T... args) + + + T + replace_copy_if + cpp/algorithm/ranges/replace_copy + + (T... args) + + + T + replace_if + cpp/algorithm/ranges/replace + + (T... args) + + + T + reverse + cpp/algorithm/ranges/reverse + + (T... args) + + + T + reverse_copy + cpp/algorithm/ranges/reverse_copy + + (T... args) + + + T + rotate + cpp/algorithm/ranges/rotate + + (T... args) + + + T + rotate_copy + cpp/algorithm/ranges/rotate_copy + + (T... args) + + + T + sample + cpp/algorithm/ranges/sample + + (T... args) + + + T + search + cpp/algorithm/ranges/search + + (T... args) + + + T + search_n + cpp/algorithm/ranges/search_n + + (T... args) + + + T + set_difference + cpp/algorithm/ranges/set_difference + + (T... args) + + + T + set_intersection + cpp/algorithm/ranges/set_intersection + + (T... args) + + + T + set_symmetric_difference + cpp/algorithm/ranges/set_symmetric_difference + + (T... args) + + + T + set_union + cpp/algorithm/ranges/set_union + + (T... args) + + + T + shuffle + cpp/algorithm/ranges/shuffle + + (T... args) + + + T + sort + cpp/algorithm/ranges/sort + + (T... args) + + + T + sort_heap + cpp/algorithm/ranges/sort_heap + + (T... args) + + + T + stable_partition + cpp/algorithm/ranges/stable_partition + + (T... args) + + + T + stable_sort + cpp/algorithm/ranges/stable_sort + + (T... args) + + + T + swap + cpp/utility/ranges/swap + + (T... args) + + + T + swap_ranges + cpp/algorithm/ranges/swap_ranges + + (T... args) + + + T + transform + cpp/algorithm/ranges/transform + + (T... args) + + + T + uninitialized_copy + cpp/memory/ranges/uninitialized_copy + + (T... args) + + + T + uninitialized_copy_n + cpp/memory/ranges/uninitialized_copy_n + + (T... args) + + + T + uninitialized_default_construct + cpp/memory/ranges/uninitialized_default_construct + + (T... args) + + + T + uninitialized_default_construct_n + cpp/memory/ranges/uninitialized_default_construct_n + + (T... args) + + + T + uninitialized_fill + cpp/memory/ranges/uninitialized_fill + + (T... args) + + + T + uninitialized_fill_n + cpp/memory/ranges/uninitialized_fill_n + + (T... args) + + + T + uninitialized_move + cpp/memory/ranges/uninitialized_move + + (T... args) + + + T + uninitialized_move_n + cpp/memory/ranges/uninitialized_move_n + + (T... args) + + + T + uninitialized_value_construct + cpp/memory/ranges/uninitialized_value_construct + + (T... args) + + + T + uninitialized_value_construct_n + cpp/memory/ranges/uninitialized_value_construct_n + + (T... args) + + + T + unique + cpp/algorithm/ranges/unique + + (T... args) + + + T + unique_copy + cpp/algorithm/ranges/unique_copy + + (T... args) + + + T + upper_bound + cpp/algorithm/ranges/upper_bound + + (T... args) + + + + std::ranges::equal_to + cpp/utility/functional/ranges/equal_to + std::ranges::equal_to::is_transparent + + T + operator() + cpp/utility/functional/ranges/equal_to + + (T... args) + + + + std::ranges::equal_to::is_transparent + cpp/utility/functional/ranges/equal_to + + + std::ranges::greater + cpp/utility/functional/ranges/greater + std::ranges::greater::is_transparent + + T + operator() + cpp/utility/functional/ranges/greater + + (T... args) + + + + std::ranges::greater::is_transparent + cpp/utility/functional/ranges/greater + + + std::ranges::greater_equal + cpp/utility/functional/ranges/greater_equal + std::ranges::greater_equal::is_transparent + + T + operator() + cpp/utility/functional/ranges/greater_equal + + (T... args) + + + + std::ranges::greater_equal::is_transparent + cpp/utility/functional/ranges/greater_equal + + + std::ranges::less + cpp/utility/functional/ranges/less + std::ranges::less::is_transparent + + T + operator() + cpp/utility/functional/ranges/less + + (T... args) + + + + std::ranges::less::is_transparent + cpp/utility/functional/ranges/less + + + std::ranges::less_equal + cpp/utility/functional/ranges/less_equal + std::ranges::less_equal::is_transparent + + T + operator() + cpp/utility/functional/ranges/less_equal + + (T... args) + + + + std::ranges::less_equal::is_transparent + cpp/utility/functional/ranges/less_equal + + + std::ranges::not_equal_to + cpp/utility/functional/ranges/not_equal_to + std::ranges::not_equal_to::is_transparent + + T + operator() + cpp/utility/functional/ranges/not_equal_to + + (T... args) + + + + std::ranges::not_equal_to::is_transparent + cpp/utility/functional/ranges/not_equal_to + + + std::rank + cpp/types/rank + + + std::ranlux24 + cpp/numeric/random/discard_block_engine + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/discard_block_engine/operator() + + (T... args) + + + T + ranlux24 + cpp/numeric/random/discard_block_engine/discard_block_engine + + (T... args) + + + T + seed + cpp/numeric/random/discard_block_engine/seed + + (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 + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + ranlux24_base + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + + std::ranlux48 + cpp/numeric/random/discard_block_engine + + T + base + cpp/numeric/random/discard_block_engine/base + + (T... args) + + + T + discard + cpp/numeric/random/discard_block_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/discard_block_engine/max + + (T... args) + + + T + min + cpp/numeric/random/discard_block_engine/min + + (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 + seed + cpp/numeric/random/discard_block_engine/seed + + (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 + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/subtract_with_carry_engine/operator() + + (T... args) + + + T + ranlux48_base + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + T + seed + cpp/numeric/random/subtract_with_carry_engine/seed + + (T... args) + + + + std::ratio + cpp/numeric/ratio/ratio + + + std::ratio_add + cpp/numeric/ratio/ratio_add + + + std::ratio_divide + cpp/numeric/ratio/ratio_divide + + + std::ratio_equal + cpp/numeric/ratio/ratio_equal + + + std::ratio_greater + cpp/numeric/ratio/ratio_greater + + + std::ratio_greater_equal + cpp/numeric/ratio/ratio_greater_equal + + + std::ratio_less + cpp/numeric/ratio/ratio_less + + + std::ratio_less_equal + cpp/numeric/ratio/ratio_less_equal + + + std::ratio_multiply + cpp/numeric/ratio/ratio_multiply + + + std::ratio_not_equal + cpp/numeric/ratio/ratio_not_equal + + + std::ratio_subtract + cpp/numeric/ratio/ratio_subtract + + + std::raw_storage_iterator + cpp/memory/raw_storage_iterator + + T + operator* + cpp/memory/raw_storage_iterator/operator* + + (T... args) + + + T + operator++ + cpp/memory/raw_storage_iterator/operator_arith + + (T... args) + + + T + operator= + cpp/memory/raw_storage_iterator/operator= + + (T... args) + + + T + raw_storage_iterator + cpp/memory/raw_storage_iterator/raw_storage_iterator + + (T... args) + + + + std::readable_traits + cpp/iterator/readable_traits + + + std::recursive_mutex + cpp/thread/recursive_mutex + + T + lock + cpp/thread/recursive_mutex/lock + + (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 + try_lock + cpp/thread/recursive_mutex/try_lock + + (T... args) + + + T + unlock + cpp/thread/recursive_mutex/unlock + + (T... args) + + + T + ~recursive_mutex + cpp/thread/recursive_mutex/~recursive_mutex + + (T... args) + + + + std::recursive_timed_mutex + cpp/thread/recursive_timed_mutex + + T + lock + cpp/thread/recursive_timed_mutex/lock + + (T... args) + + + T + native_handle + cpp/thread/recursive_timed_mutex/native_handle + + (T... args) + + + T + recursive_timed_mutex + cpp/thread/recursive_timed_mutex/recursive_timed_mutex + + (T... args) + + + T + try_lock + cpp/thread/recursive_timed_mutex/try_lock + + (T... args) + + + T + try_lock_for + cpp/thread/recursive_timed_mutex/try_lock_for + + (T... args) + + + T + try_lock_until + cpp/thread/recursive_timed_mutex/try_lock_until + + (T... args) + + + T + unlock + cpp/thread/recursive_timed_mutex/unlock + + (T... args) + + + T + ~recursive_timed_mutex + cpp/thread/recursive_timed_mutex/~recursive_timed_mutex + + (T... args) + + + + std::reference_wrapper + cpp/utility/functional/reference_wrapper + + T + get + cpp/utility/functional/reference_wrapper/get + + (T... args) + + + T + operator T& + cpp/utility/functional/reference_wrapper/get + + (T... args) + + + T + operator() + cpp/utility/functional/reference_wrapper/operator() + + (T... args) + + + T + operator= + cpp/utility/functional/reference_wrapper/operator= + + (T... args) + + + T + reference_wrapper + cpp/utility/functional/reference_wrapper/reference_wrapper + + (T... args) + + + + std::regex + cpp/regex/basic_regex + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + regex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + ~regex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + + std::regex_constants + + + + 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::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_arith + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + regex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + + std::regex_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_arith + + (T... args) + + + T + operator++(int) + 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= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + regex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + + std::regex_traits + cpp/regex/regex_traits + + T + getloc + cpp/regex/regex_traits/getloc + + (T... args) + + + T + imbue + cpp/regex/regex_traits/imbue + + (T... args) + + + T + isctype + cpp/regex/regex_traits/isctype + + (T... args) + + + T + length + cpp/regex/regex_traits/length + + (T... args) + + + T + lookup_classname + cpp/regex/regex_traits/lookup_classname + + (T... args) + + + T + lookup_collatename + cpp/regex/regex_traits/lookup_collatename + + (T... args) + + + T + regex_traits + cpp/regex/regex_traits/regex_traits + + (T... args) + + + T + transform + cpp/regex/regex_traits/transform + + (T... args) + + + T + transform_primary + cpp/regex/regex_traits/transform_primary + + (T... args) + + + T + translate + cpp/regex/regex_traits/translate + + (T... args) + + + T + translate_nocase + cpp/regex/regex_traits/translate_nocase + + (T... args) + + + T + value + cpp/regex/regex_traits/value + + (T... args) + + + + 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::remove_all_extents + cpp/types/remove_all_extents + + + std::remove_all_extents_t + cpp/types/remove_all_extents + + + std::remove_const + cpp/types/remove_cv + + + std::remove_const_t + cpp/types/remove_cv + + + std::remove_cv + cpp/types/remove_cv + + + std::remove_cv_t + cpp/types/remove_cv + + + std::remove_cvref + cpp/types/remove_cvref + + + std::remove_cvref_t + cpp/types/remove_cvref + + + std::remove_extent + cpp/types/remove_extent + + + std::remove_extent_t + cpp/types/remove_extent + + + std::remove_pointer + cpp/types/remove_pointer + + + std::remove_pointer_t + cpp/types/remove_pointer + + + std::remove_reference + cpp/types/remove_reference + + + std::remove_reference_t + cpp/types/remove_reference + + + std::remove_volatile + cpp/types/remove_cv + + + std::remove_volatile_t + cpp/types/remove_cv + + + std::result_of + cpp/types/result_of + + + std::result_of_t + cpp/types/result_of + + + std::reverse_iterator + cpp/iterator/reverse_iterator + + T + base + cpp/iterator/reverse_iterator/base + + (T... args) + + + T + operator* + cpp/iterator/reverse_iterator/operator* + + (T... args) + + + T + operator+ + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator++ + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator++(int) + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator+= + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator- + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator-- + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator--(int) + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator-= + cpp/iterator/reverse_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/iterator/reverse_iterator/operator* + + (T... args) + + + T + operator= + cpp/iterator/reverse_iterator/operator= + + (T... args) + + + T + operator[] + cpp/iterator/reverse_iterator/operator_at + + (T... args) + + + T + reverse_iterator + cpp/iterator/reverse_iterator/reverse_iterator + + (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::scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor + + T + allocate + cpp/memory/scoped_allocator_adaptor/allocate + + (T... args) + + + T + construct + cpp/memory/scoped_allocator_adaptor/construct + + (T... args) + + + T + deallocate + cpp/memory/scoped_allocator_adaptor/deallocate + + (T... args) + + + T + destroy + cpp/memory/scoped_allocator_adaptor/destroy + + (T... args) + + + T + inner_allocator + cpp/memory/scoped_allocator_adaptor/inner_allocator + + (T... args) + + + T + max_size + cpp/memory/scoped_allocator_adaptor/max_size + + (T... args) + + + T + operator= + cpp/memory/scoped_allocator_adaptor/operator= + + (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) + + + T + select_on_container_copy_construction + cpp/memory/scoped_allocator_adaptor/select_on_container_copy_construction + + (T... args) + + + T + ~scoped_allocator_adaptor + cpp/memory/scoped_allocator_adaptor/~scoped_allocator_adaptor + + (T... args) + + + + std::scoped_lock + cpp/thread/scoped_lock + + T + scoped_lock + cpp/thread/scoped_lock/scoped_lock + + (T... args) + + + T + ~scoped_lock + cpp/thread/scoped_lock/~scoped_lock + + (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 + seed_seq + cpp/numeric/random/seed_seq/seed_seq + + (T... args) + + + T + size + cpp/numeric/random/seed_seq/size + + (T... args) + + + + std::set + cpp/container/set + + T + begin + cpp/container/set/begin + + (T... args) + + + T + cbegin + cpp/container/set/begin + + (T... args) + + + T + cend + cpp/container/set/end + + (T... args) + + + T + clear + cpp/container/set/clear + + (T... args) + + + T + contains + cpp/container/set/contains + + (T... args) + + + T + count + cpp/container/set/count + + (T... args) + + + T + crbegin + cpp/container/set/rbegin + + (T... args) + + + T + crend + cpp/container/set/rend + + (T... args) + + + T + emplace + cpp/container/set/emplace + + (T... args) + + + T + emplace_hint + cpp/container/set/emplace_hint + + (T... args) + + + T + empty + cpp/container/set/empty + + (T... args) + + + T + end + cpp/container/set/end + + (T... args) + + + T + equal_range + cpp/container/set/equal_range + + (T... args) + + + T + erase + cpp/container/set/erase + + (T... args) + + + T + extract + cpp/container/set/extract + + (T... args) + + + T + find + cpp/container/set/find + + (T... args) + + + T + get_allocator + cpp/container/set/get_allocator + + (T... args) + + + T + insert + cpp/container/set/insert + + (T... args) + + + T + key_comp + cpp/container/set/key_comp + + (T... args) + + + T + lower_bound + cpp/container/set/lower_bound + + (T... args) + + + T + max_size + cpp/container/set/max_size + + (T... args) + + + T + merge + cpp/container/set/merge + + (T... args) + + + T + operator= + cpp/container/set/operator= + + (T... args) + + + T + rbegin + cpp/container/set/rbegin + + (T... args) + + + T + rend + cpp/container/set/rend + + (T... args) + + + T + set + cpp/container/set/set + + (T... args) + + + T + size + cpp/container/set/size + + (T... args) + + + T + swap + cpp/container/set/swap + + (T... args) + + + T + upper_bound + cpp/container/set/upper_bound + + (T... args) + + + T + value_comp + cpp/container/set/value_comp + + (T... args) + + + T + ~set + cpp/container/set/~set + + (T... args) + + + + std::shared_future + cpp/thread/shared_future + + T + get + cpp/thread/shared_future/get + + (T... args) + + + T + operator= + cpp/thread/shared_future/operator= + + (T... args) + + + T + shared_future + cpp/thread/shared_future/shared_future + + (T... args) + + + T + valid + cpp/thread/shared_future/valid + + (T... args) + + + T + wait + cpp/thread/shared_future/wait + + (T... args) + + + T + wait_for + cpp/thread/shared_future/wait_for + + (T... args) + + + T + wait_until + cpp/thread/shared_future/wait_until + + (T... args) + + + T + ~shared_future + cpp/thread/shared_future/~shared_future + + (T... args) + + + + std::shared_lock + cpp/thread/shared_lock + + T + lock + cpp/thread/shared_lock/lock + + (T... args) + + + T + mutex + cpp/thread/shared_lock/mutex + + (T... args) + + + T + operator bool + cpp/thread/shared_lock/operator_bool + + (T... args) + + + T + operator= + cpp/thread/shared_lock/operator= + + (T... args) + + + T + owns_lock + cpp/thread/shared_lock/owns_lock + + (T... args) + + + T + release + cpp/thread/shared_lock/release + + (T... args) + + + T + shared_lock + cpp/thread/shared_lock/shared_lock + + (T... args) + + + T + swap + cpp/thread/shared_lock/swap + + (T... args) + + + T + try_lock + cpp/thread/shared_lock/try_lock + + (T... args) + + + T + try_lock_for + cpp/thread/shared_lock/try_lock_for + + (T... args) + + + T + try_lock_until + cpp/thread/shared_lock/try_lock_until + + (T... args) + + + T + unlock + cpp/thread/shared_lock/unlock + + (T... args) + + + T + ~shared_lock + cpp/thread/shared_lock/~shared_lock + + (T... args) + + + + std::shared_mutex + cpp/thread/shared_mutex + + T + lock + cpp/thread/shared_mutex/lock + + (T... args) + + + T + lock_shared + cpp/thread/shared_mutex/lock_shared + + (T... args) + + + T + native_handle + cpp/thread/shared_mutex/native_handle + + (T... args) + + + T + shared_mutex + cpp/thread/shared_mutex/shared_mutex + + (T... args) + + + T + try_lock + cpp/thread/shared_mutex/try_lock + + (T... args) + + + T + try_lock_shared + cpp/thread/shared_mutex/try_lock_shared + + (T... args) + + + T + unlock + cpp/thread/shared_mutex/unlock + + (T... args) + + + T + unlock_shared + cpp/thread/shared_mutex/unlock_shared + + (T... args) + + + T + ~shared_mutex + cpp/thread/shared_mutex/~shared_mutex + + (T... args) + + + + std::shared_ptr + cpp/memory/shared_ptr + + T + get + cpp/memory/shared_ptr/get + + (T... args) + + + T + operator bool + cpp/memory/shared_ptr/operator_bool + + (T... args) + + + T + operator* + cpp/memory/shared_ptr/operator* + + (T... args) + + + T + operator-> + cpp/memory/shared_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/shared_ptr/operator= + + (T... args) + + + T + operator[] + cpp/memory/shared_ptr/operator_at + + (T... args) + + + T + owner_before + cpp/memory/shared_ptr/owner_before + + (T... args) + + + T + reset + cpp/memory/shared_ptr/reset + + (T... args) + + + T + shared_ptr + cpp/memory/shared_ptr/shared_ptr + + (T... args) + + + T + swap + cpp/memory/shared_ptr/swap + + (T... args) + + + T + unique + cpp/memory/shared_ptr/unique + + (T... args) + + + T + use_count + cpp/memory/shared_ptr/use_count + + (T... args) + + std::shared_ptr::weak_type + + T + ~shared_ptr + cpp/memory/shared_ptr/~shared_ptr + + (T... args) + + + + std::shared_ptr::weak_type + cpp/memory/shared_ptr + + + std::shared_timed_mutex + cpp/thread/shared_timed_mutex + + T + lock + cpp/thread/shared_timed_mutex/lock + + (T... args) + + + T + lock_shared + cpp/thread/shared_timed_mutex/lock_shared + + (T... args) + + + T + shared_timed_mutex + cpp/thread/shared_timed_mutex/shared_timed_mutex + + (T... args) + + + T + try_lock + cpp/thread/shared_timed_mutex/try_lock + + (T... args) + + + T + try_lock_for + cpp/thread/shared_timed_mutex/try_lock_for + + (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) + + + T + try_lock_shared_until + cpp/thread/shared_timed_mutex/try_lock_shared_until + + (T... args) + + + T + try_lock_until + cpp/thread/shared_timed_mutex/try_lock_until + + (T... args) + + + T + unlock + cpp/thread/shared_timed_mutex/unlock + + (T... args) + + + T + unlock_shared + cpp/thread/shared_timed_mutex/unlock_shared + + (T... args) + + + T + ~shared_timed_mutex + cpp/thread/shared_timed_mutex/~shared_timed_mutex + + (T... args) + + + + std::shuffle_order_engine + cpp/numeric/random/shuffle_order_engine + + T + base + cpp/numeric/random/shuffle_order_engine/base + + (T... args) + + + T + discard + cpp/numeric/random/shuffle_order_engine/discard + + (T... args) + + + T + max + cpp/numeric/random/shuffle_order_engine/max + + (T... args) + + + T + min + cpp/numeric/random/shuffle_order_engine/min + + (T... args) + + + T + operator() + cpp/numeric/random/shuffle_order_engine/operator() + + (T... args) + + + T + seed + cpp/numeric/random/shuffle_order_engine/seed + + (T... args) + + + T + shuffle_order_engine + cpp/numeric/random/shuffle_order_engine/shuffle_order_engine + + (T... args) + + + + std::sig_atomic_t + cpp/utility/program/sig_atomic_t + + + std::size_t + cpp/types/size_t + + + std::slice + cpp/numeric/valarray/slice + + T + size + cpp/numeric/valarray/slice + + (T... args) + + + T + slice + cpp/numeric/valarray/slice + + (T... args) + + + T + start + cpp/numeric/valarray/slice + + (T... args) + + + T + stride + cpp/numeric/valarray/slice + + (T... args) + + + + std::slice_array + cpp/numeric/valarray/slice_array + + T + operator%= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator&= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator*= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator+= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator-= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator/= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator<<= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator= + cpp/numeric/valarray/slice_array/operator= + + (T... args) + + + T + operator>>= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator^= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + operator|= + cpp/numeric/valarray/slice_array/operator_arith + + (T... args) + + + T + slice_array + cpp/numeric/valarray/slice_array/slice_array + + (T... args) + + + T + ~slice_array + cpp/numeric/valarray/slice_array/~slice_array + + (T... args) + + + + std::smatch + cpp/regex/match_results + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + smatch + cpp/regex/match_results/match_results + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + ~smatch + cpp/regex/match_results/~match_results + + (T... args) + + + + std::source_location + cpp/utility/source_location + + T + column + cpp/utility/source_location/column + + (T... args) + + + T + current + cpp/utility/source_location/current + + (T... args) + + + T + file_name + cpp/utility/source_location/file_name + + (T... args) + + + T + function_name + cpp/utility/source_location/function_name + + (T... args) + + + T + line + cpp/utility/source_location/line + + (T... args) + + + T + source_location + cpp/utility/source_location/source_location + + (T... args) + + + + std::span + cpp/container/span + + T + back + cpp/container/span/back + + (T... args) + + + T + begin + cpp/container/span/begin + + (T... args) + + + T + cbegin + cpp/container/span/begin + + (T... args) + + + T + cend + cpp/container/span/end + + (T... args) + + + T + crbegin + cpp/container/span/rbegin + + (T... args) + + + T + crend + cpp/container/span/rend + + (T... args) + + + T + data + cpp/container/span/data + + (T... args) + + + T + empty + cpp/container/span/empty + + (T... args) + + + T + end + cpp/container/span/end + + (T... args) + + + T + first + cpp/container/span/first + + (T... args) + + + T + front + cpp/container/span/front + + (T... args) + + + T + last + cpp/container/span/last + + (T... args) + + + T + operator= + cpp/container/span/operator= + + (T... args) + + + T + operator[] + cpp/container/span/operator_at + + (T... args) + + + T + rbegin + cpp/container/span/rbegin + + (T... args) + + + T + rend + cpp/container/span/rend + + (T... args) + + + T + size + cpp/container/span/size + + (T... args) + + + T + size_bytes + cpp/container/span/size_bytes + + (T... args) + + + T + span + cpp/container/span/span + + (T... args) + + + T + subspan + cpp/container/span/subspan + + (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_arith + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + sregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (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 + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator++(int) + 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= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + sregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + + std::ssub_match + cpp/regex/sub_match + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + T + first + cpp/utility/pair + + + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + matched + cpp/regex/sub_match + + + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + second + cpp/utility/pair + + + + + T + ssub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + + std::stack + cpp/container/stack + + T + c + cpp/container/stack + + + + + T + emplace + cpp/container/stack/emplace + + (T... args) + + + T + empty + cpp/container/stack/empty + + (T... args) + + + T + operator= + cpp/container/stack/operator= + + (T... args) + + + T + pop + cpp/container/stack/pop + + (T... args) + + + T + push + cpp/container/stack/push + + (T... args) + + + T + size + cpp/container/stack/size + + (T... args) + + + T + stack + cpp/container/stack/stack + + (T... args) + + + T + swap + cpp/container/stack/swap + + (T... args) + + + T + top + cpp/container/stack/top + + (T... args) + + + T + ~stack + cpp/container/stack/~stack + + (T... args) + + + + std::stop_callback + cpp/thread/stop_callback + std::stop_callback::callback_type + + T + stop_callback + cpp/thread/stop_callback/stop_callback + + (T... args) + + + T + ~stop_callback + cpp/thread/stop_callback/~stop_callback + + (T... args) + + + + std::stop_callback::callback_type + cpp/thread/stop_callback + + + std::stop_source + cpp/thread/stop_source + + T + get_token + cpp/thread/stop_source/get_token + + (T... args) + + + T + operator= + cpp/thread/stop_source/operator= + + (T... args) + + + T + request_stop + cpp/thread/stop_source/request_stop + + (T... args) + + + T + stop_possible + cpp/thread/stop_source/stop_possible + + (T... args) + + + T + stop_requested + cpp/thread/stop_source/stop_requested + + (T... args) + + + T + stop_source + cpp/thread/stop_source/stop_source + + (T... args) + + + T + swap + cpp/thread/stop_source/swap + + (T... args) + + + T + ~stop_source + cpp/thread/stop_source/~stop_source + + (T... args) + + + + std::stop_token + cpp/thread/stop_token + + T + operator= + cpp/thread/stop_token/operator= + + (T... args) + + + T + stop_possible + cpp/thread/stop_token/stop_possible + + (T... args) + + + T + stop_requested + cpp/thread/stop_token/stop_requested + + (T... args) + + + T + stop_token + cpp/thread/stop_token/stop_token + + (T... args) + + + T + swap + cpp/thread/stop_token/swap + + (T... args) + + + T + ~stop_token + cpp/thread/stop_token/~stop_token + + (T... args) + + + + std::streambuf + cpp/io/basic_streambuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + streambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~streambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + + std::streamoff + cpp/io/streamoff + + + std::streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::streamsize + cpp/io/streamsize + + + std::string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + string + cpp/string/basic_string/basic_string + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + + std::string_view + cpp/string/basic_string_view + + T + at + cpp/string/basic_string_view/at + + (T... args) + + + T + back + cpp/string/basic_string_view/back + + (T... args) + + + T + begin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cend + cpp/string/basic_string_view/end + + (T... args) + + + T + compare + cpp/string/basic_string_view/compare + + (T... args) + + + T + copy + cpp/string/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string_view/rend + + (T... args) + + + T + data + cpp/string/basic_string_view/data + + (T... args) + + + T + empty + cpp/string/basic_string_view/empty + + (T... args) + + + T + end + cpp/string/basic_string_view/end + + (T... args) + + + T + ends_with + cpp/string/basic_string_view/ends_with + + (T... args) + + + T + find + cpp/string/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string_view/front + + (T... args) + + + T + length + cpp/string/basic_string_view/size + + (T... args) + + + T + max_size + cpp/string/basic_string_view/max_size + + (T... args) + + + T + operator= + cpp/string/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/string/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/string/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/string/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/string/basic_string_view/rfind + + (T... args) + + + T + size + cpp/string/basic_string_view/size + + (T... args) + + + T + starts_with + cpp/string/basic_string_view/starts_with + + (T... args) + + + T + string_view + cpp/string/basic_string_view/basic_string_view + + (T... args) + + + T + substr + cpp/string/basic_string_view/substr + + (T... args) + + + T + swap + cpp/string/basic_string_view/swap + + (T... args) + + + + std::stringbuf + cpp/io/basic_stringbuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + stringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + + std::stringstream + cpp/io/basic_stringstream + std::stringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::stringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::stringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::stringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + stringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::stringstream::Init + cpp/io/ios_base/Init + + + 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::stringstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::strong_ordering + cpp/utility/compare/strong_ordering + + T + operator partial_ordering + cpp/utility/compare/strong_ordering + + (T... args) + + + T + operator weak_ordering + cpp/utility/compare/strong_ordering + + (T... args) + + + + std::strstream + cpp/io/strstream + std::strstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::strstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::strstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + freeze + cpp/io/strstream/freeze + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + pcount + cpp/io/strstream/pcount + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::strstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/strstream/str + + (T... args) + + + T + strstream + cpp/io/strstream/strstream + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~strstream + cpp/io/strstream/~strstream + + (T... args) + + + + std::strstream::Init + cpp/io/ios_base/Init + + + 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::strstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::strstreambuf + cpp/io/strstreambuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + freeze + cpp/io/strstreambuf/freeze + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pcount + cpp/io/strstreambuf/pcount + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + str + cpp/io/strstreambuf/str + + (T... args) + + + T + strstreambuf + cpp/io/strstreambuf/strstreambuf + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~strstreambuf + cpp/io/strstreambuf/~strstreambuf + + (T... args) + + + + std::student_t_distribution + cpp/numeric/random/student_t_distribution + + T + max + cpp/numeric/random/student_t_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/student_t_distribution/min + + (T... args) + + + T + n + cpp/numeric/random/student_t_distribution/n + + (T... args) + + + T + operator() + cpp/numeric/random/student_t_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/student_t_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/student_t_distribution/reset + + (T... args) + + + T + student_t_distribution + cpp/numeric/random/student_t_distribution/student_t_distribution + + (T... args) + + + + std::sub_match + cpp/regex/sub_match + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + T + first + cpp/utility/pair + + + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + matched + cpp/regex/sub_match + + + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + second + cpp/utility/pair + + + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + sub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (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 + max + cpp/numeric/random/subtract_with_carry_engine/max + + (T... args) + + + T + min + cpp/numeric/random/subtract_with_carry_engine/min + + (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 + subtract_with_carry_engine + cpp/numeric/random/subtract_with_carry_engine/subtract_with_carry_engine + + (T... args) + + + + std::suspend_always + cpp/coroutine/suspend_always + + T + await_ready + cpp/coroutine/suspend_always + + (T... args) + + + T + await_resume + cpp/coroutine/suspend_always + + (T... args) + + + T + await_suspend + cpp/coroutine/suspend_always + + (T... args) + + + + std::suspend_never + cpp/coroutine/suspend_never + + T + await_ready + cpp/coroutine/suspend_never + + (T... args) + + + T + await_resume + cpp/coroutine/suspend_never + + (T... args) + + + T + await_suspend + cpp/coroutine/suspend_never + + (T... args) + + + + std::syncbuf + cpp/io/basic_syncbuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + emit + cpp/io/basic_syncbuf/emit + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + get_allocator + cpp/io/basic_syncbuf/get_allocator + + (T... args) + + + T + get_wrapped + cpp/io/basic_syncbuf/get_wrapped + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_syncbuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + set_emit_on_sync + cpp/io/basic_syncbuf/set_emit_on_sync + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + syncbuf + cpp/io/basic_syncbuf/basic_syncbuf + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~syncbuf + cpp/io/basic_syncbuf/~basic_syncbuf + + (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::tera + cpp/numeric/ratio/ratio + + + std::terminate_handler + cpp/error/terminate_handler + + + std::this_thread + + + T + get_id + cpp/thread/get_id + + (T... args) + + + T + sleep_for + cpp/thread/sleep_for + + (T... args) + + + T + sleep_until + cpp/thread/sleep_until + + (T... args) + + + T + yield + cpp/thread/yield + + (T... args) + + + + std::thread + cpp/thread/thread + + T + detach + cpp/thread/thread/detach + + (T... args) + + + T + get_id + cpp/thread/thread/get_id + + (T... args) + + + T + hardware_concurrency + cpp/thread/thread/hardware_concurrency + + (T... args) + + std::thread::id + + T + join + cpp/thread/thread/join + + (T... args) + + + T + joinable + cpp/thread/thread/joinable + + (T... args) + + + T + native_handle + cpp/thread/thread/native_handle + + (T... args) + + + T + operator= + cpp/thread/thread/operator= + + (T... args) + + + T + swap + cpp/thread/thread/swap + + (T... args) + + + T + thread + cpp/thread/thread/thread + + (T... args) + + + T + ~thread + cpp/thread/thread/~thread + + (T... args) + + + + std::thread::id + cpp/thread/thread/id + + T + id + cpp/thread/thread/id/id + + (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 + 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) + + + + std::time_base + cpp/locale/time_base + + + std::time_get + cpp/locale/time_get + std::time_get::char_type + + T + date_order + cpp/locale/time_get/date_order + + (T... args) + + + 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_date + cpp/locale/time_get/get_date + + (T... args) + + + T + do_get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + do_get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + do_get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + do_get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + get + cpp/locale/time_get/get + + (T... args) + + + T + get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + id + cpp/locale/time_get + + + + std::time_get::iter_type + + T + time_get + cpp/locale/time_get/time_get + + (T... args) + + + T + ~time_get + cpp/locale/time_get/~time_get + + (T... args) + + + + std::time_get::char_type + cpp/locale/time_get + + + std::time_get::iter_type + cpp/locale/time_get + + + std::time_get_byname + cpp/locale/time_get_byname + std::time_get_byname::char_type + + T + date_order + cpp/locale/time_get/date_order + + (T... args) + + + 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_date + cpp/locale/time_get/get_date + + (T... args) + + + T + do_get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + do_get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + do_get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + do_get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + get + cpp/locale/time_get/get + + (T... args) + + + T + get_date + cpp/locale/time_get/get_date + + (T... args) + + + T + get_monthname + cpp/locale/time_get/get_monthname + + (T... args) + + + T + get_time + cpp/locale/time_get/get_time + + (T... args) + + + T + get_weekday + cpp/locale/time_get/get_weekday + + (T... args) + + + T + get_year + cpp/locale/time_get/get_year + + (T... args) + + + T + id + cpp/locale/time_get + + + + std::time_get_byname::iter_type + + T + time_get_byname + cpp/locale/time_get_byname + + (T... args) + + + T + ~time_get_byname + cpp/locale/time_get_byname + + (T... args) + + + + std::time_get_byname::char_type + cpp/locale/time_get + + + std::time_get_byname::iter_type + cpp/locale/time_get + + + std::time_put + cpp/locale/time_put + std::time_put::char_type + + T + do_put + cpp/locale/time_put/put + + (T... args) + + + T + id + cpp/locale/time_put + + + + std::time_put::iter_type + + T + put + cpp/locale/time_put/put + + (T... args) + + + T + time_put + cpp/locale/time_put/time_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::time_put_byname + cpp/locale/time_put_byname + std::time_put_byname::char_type + + T + do_put + cpp/locale/time_put/put + + (T... args) + + + T + id + cpp/locale/time_put + + + + std::time_put_byname::iter_type + + T + put + cpp/locale/time_put/put + + (T... args) + + + T + time_put_byname + cpp/locale/time_put_byname + + (T... args) + + + T + ~time_put_byname + cpp/locale/time_put_byname + + (T... args) + + + + std::time_put_byname::char_type + cpp/locale/time_put + + + std::time_put_byname::iter_type + cpp/locale/time_put + + + std::time_t + cpp/chrono/c/time_t + + + std::timed_mutex + cpp/thread/timed_mutex + + T + lock + cpp/thread/timed_mutex/lock + + (T... args) + + + T + native_handle + cpp/thread/timed_mutex/native_handle + + (T... args) + + + T + timed_mutex + cpp/thread/timed_mutex/timed_mutex + + (T... args) + + + T + try_lock + cpp/thread/timed_mutex/try_lock + + (T... args) + + + T + try_lock_for + cpp/thread/timed_mutex/try_lock_for + + (T... args) + + + T + try_lock_until + cpp/thread/timed_mutex/try_lock_until + + (T... args) + + + T + unlock + cpp/thread/timed_mutex/unlock + + (T... args) + + + T + ~timed_mutex + cpp/thread/timed_mutex/~timed_mutex + + (T... args) + + + + std::tm + cpp/chrono/c/tm + + + std::to_chars_result + cpp/utility/to_chars + + + std::true_type + cpp/types/integral_constant + + + std::try_to_lock_t + cpp/thread/lock_tag_t + + + 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::type_identity + cpp/types/type_identity + + + std::type_identity_t + cpp/types/type_identity + + + std::type_index + cpp/types/type_index + + T + hash_code + cpp/types/type_index/hash_code + + (T... args) + + + T + name + cpp/types/type_index/name + + (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 + 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) + + + + std::type_info + cpp/types/type_info + + T + before + cpp/types/type_info/before + + (T... args) + + + T + hash_code + cpp/types/type_info/hash_code + + (T... args) + + + T + name + cpp/types/type_info/name + + (T... args) + + + T + operator!= + cpp/types/type_info/operator_cmp + + (T... args) + + + T + operator== + cpp/types/type_info/operator_cmp + + (T... args) + + + + std::u16streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::u16string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + u16string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::u16string_view + cpp/string/basic_string_view + + T + at + cpp/string/basic_string_view/at + + (T... args) + + + T + back + cpp/string/basic_string_view/back + + (T... args) + + + T + begin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cend + cpp/string/basic_string_view/end + + (T... args) + + + T + compare + cpp/string/basic_string_view/compare + + (T... args) + + + T + copy + cpp/string/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string_view/rend + + (T... args) + + + T + data + cpp/string/basic_string_view/data + + (T... args) + + + T + empty + cpp/string/basic_string_view/empty + + (T... args) + + + T + end + cpp/string/basic_string_view/end + + (T... args) + + + T + ends_with + cpp/string/basic_string_view/ends_with + + (T... args) + + + T + find + cpp/string/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string_view/front + + (T... args) + + + T + length + cpp/string/basic_string_view/size + + (T... args) + + + T + max_size + cpp/string/basic_string_view/max_size + + (T... args) + + + T + operator= + cpp/string/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/string/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/string/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/string/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/string/basic_string_view/rfind + + (T... args) + + + T + size + cpp/string/basic_string_view/size + + (T... args) + + + T + starts_with + cpp/string/basic_string_view/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string_view/substr + + (T... args) + + + T + swap + cpp/string/basic_string_view/swap + + (T... args) + + + T + u16string_view + cpp/string/basic_string_view/basic_string_view + + (T... args) + + + + std::u32streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::u32string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + u32string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::u32string_view + cpp/string/basic_string_view + + T + at + cpp/string/basic_string_view/at + + (T... args) + + + T + back + cpp/string/basic_string_view/back + + (T... args) + + + T + begin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cend + cpp/string/basic_string_view/end + + (T... args) + + + T + compare + cpp/string/basic_string_view/compare + + (T... args) + + + T + copy + cpp/string/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string_view/rend + + (T... args) + + + T + data + cpp/string/basic_string_view/data + + (T... args) + + + T + empty + cpp/string/basic_string_view/empty + + (T... args) + + + T + end + cpp/string/basic_string_view/end + + (T... args) + + + T + ends_with + cpp/string/basic_string_view/ends_with + + (T... args) + + + T + find + cpp/string/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string_view/front + + (T... args) + + + T + length + cpp/string/basic_string_view/size + + (T... args) + + + T + max_size + cpp/string/basic_string_view/max_size + + (T... args) + + + T + operator= + cpp/string/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/string/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/string/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/string/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/string/basic_string_view/rfind + + (T... args) + + + T + size + cpp/string/basic_string_view/size + + (T... args) + + + T + starts_with + cpp/string/basic_string_view/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string_view/substr + + (T... args) + + + T + swap + cpp/string/basic_string_view/swap + + (T... args) + + + T + u32string_view + cpp/string/basic_string_view/basic_string_view + + (T... args) + + + + std::u8streampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::u8string + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + u8string + cpp/string/basic_string/basic_string + + (T... args) + + + + std::u8string_view + cpp/string/basic_string_view + + T + at + cpp/string/basic_string_view/at + + (T... args) + + + T + back + cpp/string/basic_string_view/back + + (T... args) + + + T + begin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cend + cpp/string/basic_string_view/end + + (T... args) + + + T + compare + cpp/string/basic_string_view/compare + + (T... args) + + + T + copy + cpp/string/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string_view/rend + + (T... args) + + + T + data + cpp/string/basic_string_view/data + + (T... args) + + + T + empty + cpp/string/basic_string_view/empty + + (T... args) + + + T + end + cpp/string/basic_string_view/end + + (T... args) + + + T + ends_with + cpp/string/basic_string_view/ends_with + + (T... args) + + + T + find + cpp/string/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string_view/front + + (T... args) + + + T + length + cpp/string/basic_string_view/size + + (T... args) + + + T + max_size + cpp/string/basic_string_view/max_size + + (T... args) + + + T + operator= + cpp/string/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/string/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/string/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/string/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/string/basic_string_view/rfind + + (T... args) + + + T + size + cpp/string/basic_string_view/size + + (T... args) + + + T + starts_with + cpp/string/basic_string_view/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string_view/substr + + (T... args) + + + T + swap + cpp/string/basic_string_view/swap + + (T... args) + + + T + u8string_view + cpp/string/basic_string_view/basic_string_view + + (T... args) + + + + std::uint16_t + cpp/types/integer + + + std::uint32_t + cpp/types/integer + + + std::uint64_t + cpp/types/integer + + + std::uint8_t + cpp/types/integer + + + std::uint_fast16_t + cpp/types/integer + + + std::uint_fast32_t + cpp/types/integer + + + std::uint_fast64_t + cpp/types/integer + + + std::uint_fast8_t + cpp/types/integer + + + std::uint_least16_t + cpp/types/integer + + + std::uint_least32_t + cpp/types/integer + + + std::uint_least64_t + cpp/types/integer + + + std::uint_least8_t + cpp/types/integer + + + std::uintmax_t + cpp/types/integer + + + std::uintptr_t + cpp/types/integer + + + std::unary_function + cpp/utility/functional/unary_function + + + 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::underflow_error + cpp/error/underflow_error + + T + underflow_error + cpp/error/underflow_error + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::underlying_type + cpp/types/underlying_type + + + std::underlying_type_t + cpp/types/underlying_type + + + std::unexpected_handler + cpp/error/unexpected_handler + + + std::uniform_int_distribution + cpp/numeric/random/uniform_int_distribution + + T + a + cpp/numeric/random/uniform_int_distribution/params + + (T... args) + + + T + b + cpp/numeric/random/uniform_int_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/uniform_int_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/uniform_int_distribution/min + + (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::uniform_real_distribution + cpp/numeric/random/uniform_real_distribution + + T + a + cpp/numeric/random/uniform_real_distribution/params + + (T... args) + + + T + b + cpp/numeric/random/uniform_real_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/uniform_real_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/uniform_real_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/uniform_real_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/uniform_real_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/uniform_real_distribution/reset + + (T... args) + + + T + uniform_real_distribution + cpp/numeric/random/uniform_real_distribution/uniform_real_distribution + + (T... args) + + + + std::unique_lock + cpp/thread/unique_lock + + T + lock + cpp/thread/unique_lock/lock + + (T... args) + + + T + mutex + cpp/thread/unique_lock/mutex + + (T... args) + + + T + operator bool + cpp/thread/unique_lock/operator_bool + + (T... args) + + + T + operator= + cpp/thread/unique_lock/operator= + + (T... args) + + + T + owns_lock + cpp/thread/unique_lock/owns_lock + + (T... args) + + + T + release + cpp/thread/unique_lock/release + + (T... args) + + + T + swap + cpp/thread/unique_lock/swap + + (T... args) + + + T + try_lock + cpp/thread/unique_lock/try_lock + + (T... args) + + + T + try_lock_for + cpp/thread/unique_lock/try_lock_for + + (T... args) + + + T + try_lock_until + cpp/thread/unique_lock/try_lock_until + + (T... args) + + + T + unique_lock + cpp/thread/unique_lock/unique_lock + + (T... args) + + + T + unlock + cpp/thread/unique_lock/unlock + + (T... args) + + + T + ~unique_lock + cpp/thread/unique_lock/~unique_lock + + (T... args) + + + + std::unique_ptr + cpp/memory/unique_ptr + + T + get + cpp/memory/unique_ptr/get + + (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 + operator* + cpp/memory/unique_ptr/operator* + + (T... args) + + + T + operator-> + cpp/memory/unique_ptr/operator* + + (T... args) + + + T + operator= + cpp/memory/unique_ptr/operator= + + (T... args) + + + T + operator[] + cpp/memory/unique_ptr/operator_at + + (T... args) + + + T + release + cpp/memory/unique_ptr/release + + (T... args) + + + T + reset + cpp/memory/unique_ptr/reset + + (T... args) + + + T + swap + cpp/memory/unique_ptr/swap + + (T... args) + + + T + unique_ptr + cpp/memory/unique_ptr/unique_ptr + + (T... args) + + + T + ~unique_ptr + cpp/memory/unique_ptr/~unique_ptr + + (T... args) + + + + std::unordered_map + cpp/container/unordered_map + + T + at + cpp/container/unordered_map/at + + (T... args) + + + T + begin + cpp/container/unordered_map/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_map/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_map/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_map/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_map/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_map/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_map/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + clear + cpp/container/unordered_map/clear + + (T... args) + + + T + contains + cpp/container/unordered_map/contains + + (T... args) + + + T + count + cpp/container/unordered_map/count + + (T... args) + + + T + emplace + cpp/container/unordered_map/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_map/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_map/empty + + (T... args) + + + T + end + cpp/container/unordered_map/end + + (T... args) + + + T + end(int) + cpp/container/unordered_map/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_map/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_map/erase + + (T... args) + + + T + extract + cpp/container/unordered_map/extract + + (T... args) + + + T + find + cpp/container/unordered_map/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_map/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_map/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_map/insert + + (T... args) + + + T + insert_or_assign + cpp/container/unordered_map/insert_or_assign + + (T... args) + + + T + key_eq + cpp/container/unordered_map/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_map/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_map/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_map/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_map/max_size + + (T... args) + + + T + merge + cpp/container/unordered_map/merge + + (T... args) + + + T + operator= + cpp/container/unordered_map/operator= + + (T... args) + + + T + operator[] + cpp/container/unordered_map/operator_at + + (T... args) + + + T + rehash + cpp/container/unordered_map/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_map/reserve + + (T... args) + + + T + size + cpp/container/unordered_map/size + + (T... args) + + + T + swap + cpp/container/unordered_map/swap + + (T... args) + + + T + try_emplace + cpp/container/unordered_map/try_emplace + + (T... args) + + + T + unordered_map + cpp/container/unordered_map/unordered_map + + (T... args) + + + T + ~unordered_map + cpp/container/unordered_map/~unordered_map + + (T... args) + + + + std::unordered_multimap + cpp/container/unordered_multimap + + T + begin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_multimap/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_multimap/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_multimap/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_multimap/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multimap/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_multimap/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + clear + cpp/container/unordered_multimap/clear + + (T... args) + + + T + contains + cpp/container/unordered_multimap/contains + + (T... args) + + + T + count + cpp/container/unordered_multimap/count + + (T... args) + + + T + emplace + cpp/container/unordered_multimap/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multimap/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_multimap/empty + + (T... args) + + + T + end + cpp/container/unordered_multimap/end + + (T... args) + + + T + end(int) + cpp/container/unordered_multimap/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_multimap/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_multimap/erase + + (T... args) + + + T + extract + cpp/container/unordered_multimap/extract + + (T... args) + + + T + find + cpp/container/unordered_multimap/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_multimap/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_multimap/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_multimap/insert + + (T... args) + + + T + key_eq + cpp/container/unordered_multimap/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_multimap/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_multimap/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multimap/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_multimap/max_size + + (T... args) + + + T + merge + cpp/container/unordered_multimap/merge + + (T... args) + + + T + operator= + cpp/container/unordered_multimap/operator= + + (T... args) + + + T + rehash + cpp/container/unordered_multimap/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_multimap/reserve + + (T... args) + + + T + size + cpp/container/unordered_multimap/size + + (T... args) + + + T + swap + cpp/container/unordered_multimap/swap + + (T... args) + + + T + unordered_multimap + cpp/container/unordered_multimap/unordered_multimap + + (T... args) + + + T + ~unordered_multimap + cpp/container/unordered_multimap/~unordered_multimap + + (T... args) + + + + std::unordered_multiset + cpp/container/unordered_multiset + + T + begin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_multiset/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_multiset/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_multiset/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_multiset/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_multiset/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_multiset/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + clear + cpp/container/unordered_multiset/clear + + (T... args) + + + T + contains + cpp/container/unordered_multiset/contains + + (T... args) + + + T + count + cpp/container/unordered_multiset/count + + (T... args) + + + T + emplace + cpp/container/unordered_multiset/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_multiset/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_multiset/empty + + (T... args) + + + T + end + cpp/container/unordered_multiset/end + + (T... args) + + + T + end(int) + cpp/container/unordered_multiset/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_multiset/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_multiset/erase + + (T... args) + + + T + extract + cpp/container/unordered_multiset/extract + + (T... args) + + + T + find + cpp/container/unordered_multiset/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_multiset/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_multiset/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_multiset/insert + + (T... args) + + + T + key_eq + cpp/container/unordered_multiset/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_multiset/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_multiset/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_multiset/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_multiset/max_size + + (T... args) + + + T + merge + cpp/container/unordered_multiset/merge + + (T... args) + + + T + operator= + cpp/container/unordered_multiset/operator= + + (T... args) + + + T + rehash + cpp/container/unordered_multiset/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_multiset/reserve + + (T... args) + + + T + size + cpp/container/unordered_multiset/size + + (T... args) + + + T + swap + cpp/container/unordered_multiset/swap + + (T... args) + + + T + unordered_multiset + cpp/container/unordered_multiset/unordered_multiset + + (T... args) + + + T + ~unordered_multiset + cpp/container/unordered_multiset/~unordered_multiset + + (T... args) + + + + std::unordered_set + cpp/container/unordered_set + + T + begin + cpp/container/unordered_set/begin + + (T... args) + + + T + begin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + bucket + cpp/container/unordered_set/bucket + + (T... args) + + + T + bucket_count + cpp/container/unordered_set/bucket_count + + (T... args) + + + T + bucket_size + cpp/container/unordered_set/bucket_size + + (T... args) + + + T + cbegin + cpp/container/unordered_set/begin + + (T... args) + + + T + cbegin(int) + cpp/container/unordered_set/begin2 + + (T... args) + + + T + cend + cpp/container/unordered_set/end + + (T... args) + + + T + cend(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + clear + cpp/container/unordered_set/clear + + (T... args) + + + T + contains + cpp/container/unordered_set/contains + + (T... args) + + + T + count + cpp/container/unordered_set/count + + (T... args) + + + T + emplace + cpp/container/unordered_set/emplace + + (T... args) + + + T + emplace_hint + cpp/container/unordered_set/emplace_hint + + (T... args) + + + T + empty + cpp/container/unordered_set/empty + + (T... args) + + + T + end + cpp/container/unordered_set/end + + (T... args) + + + T + end(int) + cpp/container/unordered_set/end2 + + (T... args) + + + T + equal_range + cpp/container/unordered_set/equal_range + + (T... args) + + + T + erase + cpp/container/unordered_set/erase + + (T... args) + + + T + extract + cpp/container/unordered_set/extract + + (T... args) + + + T + find + cpp/container/unordered_set/find + + (T... args) + + + T + get_allocator + cpp/container/unordered_set/get_allocator + + (T... args) + + + T + hash_function + cpp/container/unordered_set/hash_function + + (T... args) + + + T + insert + cpp/container/unordered_set/insert + + (T... args) + + + T + key_eq + cpp/container/unordered_set/key_eq + + (T... args) + + + T + load_factor + cpp/container/unordered_set/load_factor + + (T... args) + + + T + max_bucket_count + cpp/container/unordered_set/max_bucket_count + + (T... args) + + + T + max_load_factor + cpp/container/unordered_set/max_load_factor + + (T... args) + + + T + max_size + cpp/container/unordered_set/max_size + + (T... args) + + + T + merge + cpp/container/unordered_set/merge + + (T... args) + + + T + operator= + cpp/container/unordered_set/operator= + + (T... args) + + + T + rehash + cpp/container/unordered_set/rehash + + (T... args) + + + T + reserve + cpp/container/unordered_set/reserve + + (T... args) + + + T + size + cpp/container/unordered_set/size + + (T... args) + + + T + swap + cpp/container/unordered_set/swap + + (T... args) + + + T + unordered_set + cpp/container/unordered_set/unordered_set + + (T... args) + + + T + ~unordered_set + cpp/container/unordered_set/~unordered_set + + (T... args) + + + + std::unwrap_ref_decay + cpp/utility/functional/unwrap_reference + + + std::unwrap_ref_decay_t + cpp/utility/functional/unwrap_reference + + + std::unwrap_reference + cpp/utility/functional/unwrap_reference + + + std::unwrap_reference_t + cpp/utility/functional/unwrap_reference + + + std::uses_allocator + cpp/memory/uses_allocator + + + std::valarray + cpp/numeric/valarray + + T + apply + cpp/numeric/valarray/apply + + (T... args) + + + T + cshift + cpp/numeric/valarray/cshift + + (T... args) + + + T + max + cpp/numeric/valarray/max + + (T... args) + + + T + min + cpp/numeric/valarray/min + + (T... args) + + + T + operator! + cpp/numeric/valarray/operator_arith + + (T... args) + + + T + operator%= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator&= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator*= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator+ + cpp/numeric/valarray/operator_arith + + (T... args) + + + T + operator+= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator- + cpp/numeric/valarray/operator_arith + + (T... args) + + + T + operator-= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator/= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator<<= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator= + cpp/numeric/valarray/operator= + + (T... args) + + + T + operator>>= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator[] + cpp/numeric/valarray/operator_at + + (T... args) + + + T + operator^= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator|= + cpp/numeric/valarray/operator_arith2 + + (T... args) + + + T + operator~ + cpp/numeric/valarray/operator_arith + + (T... args) + + + T + resize + cpp/numeric/valarray/resize + + (T... args) + + + T + shift + cpp/numeric/valarray/shift + + (T... args) + + + T + size + cpp/numeric/valarray/size + + (T... args) + + + T + sum + cpp/numeric/valarray/sum + + (T... args) + + + T + swap + cpp/numeric/valarray/swap + + (T... args) + + + T + valarray + cpp/numeric/valarray/valarray + + (T... args) + + + T + ~valarray + cpp/numeric/valarray/~valarray + + (T... args) + + + + std::variant + cpp/utility/variant + + T + emplace + cpp/utility/variant/emplace + + (T... args) + + + T + index + cpp/utility/variant/index + + (T... args) + + + T + operator= + cpp/utility/variant/operator= + + (T... args) + + + T + swap + cpp/utility/variant/swap + + (T... args) + + + T + valueless_by_exception + cpp/utility/variant/valueless_by_exception + + (T... args) + + + T + variant + cpp/utility/variant/variant + + (T... args) + + + T + ~variant + cpp/utility/variant/~variant + + (T... args) + + + + std::variant_alternative + cpp/utility/variant/variant_alternative + + + std::variant_alternative_t + cpp/utility/variant/variant_alternative + + + std::variant_size + cpp/utility/variant/variant_size + + + std::vector + cpp/container/vector + + T + assign + cpp/container/vector/assign + + (T... args) + + + T + at + cpp/container/vector/at + + (T... args) + + + T + back + cpp/container/vector/back + + (T... args) + + + T + begin + cpp/container/vector/begin + + (T... args) + + + T + capacity + cpp/container/vector/capacity + + (T... args) + + + T + cbegin + cpp/container/vector/begin + + (T... args) + + + T + cend + cpp/container/vector/end + + (T... args) + + + T + clear + cpp/container/vector/clear + + (T... args) + + + T + crbegin + cpp/container/vector/rbegin + + (T... args) + + + T + crend + cpp/container/vector/rend + + (T... args) + + + T + data + cpp/container/vector/data + + (T... args) + + + T + emplace + cpp/container/vector/emplace + + (T... args) + + + T + emplace_back + cpp/container/vector/emplace_back + + (T... args) + + + T + empty + cpp/container/vector/empty + + (T... args) + + + T + end + cpp/container/vector/end + + (T... args) + + + T + erase + cpp/container/vector/erase + + (T... args) + + + T + front + cpp/container/vector/front + + (T... args) + + + T + get_allocator + cpp/container/vector/get_allocator + + (T... args) + + + T + insert + cpp/container/vector/insert + + (T... args) + + + T + max_size + cpp/container/vector/max_size + + (T... args) + + + T + operator= + cpp/container/vector/operator= + + (T... args) + + + T + operator[] + cpp/container/vector/operator_at + + (T... args) + + + T + pop_back + cpp/container/vector/pop_back + + (T... args) + + + T + push_back + cpp/container/vector/push_back + + (T... args) + + + T + rbegin + cpp/container/vector/rbegin + + (T... args) + + + T + rend + cpp/container/vector/rend + + (T... args) + + + T + reserve + cpp/container/vector/reserve + + (T... args) + + + T + resize + cpp/container/vector/resize + + (T... args) + + + T + shrink_to_fit + cpp/container/vector/shrink_to_fit + + (T... args) + + + T + size + cpp/container/vector/size + + (T... args) + + + T + swap + cpp/container/vector/swap + + (T... args) + + + T + vector + cpp/container/vector/vector + + (T... args) + + + T + ~vector + cpp/container/vector/~vector + + (T... args) + + + + std::void_t + cpp/types/void_t + + + std::wbuffer_convert + cpp/locale/wbuffer_convert + + T + rdbuf + cpp/locale/wbuffer_convert/rdbuf + + (T... args) + + + T + state + cpp/locale/wbuffer_convert/state + + (T... args) + + + T + wbuffer_convert + cpp/locale/wbuffer_convert/wbuffer_convert + + (T... args) + + + T + ~wbuffer_convert + cpp/locale/wbuffer_convert/~wbuffer_convert + + (T... args) + + + + std::wcerr + cpp/io/cerr + + + std::wcin + cpp/io/cin + + + std::wclog + cpp/io/clog + + + std::wcmatch + cpp/regex/match_results + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + wcmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + ~wcmatch + cpp/regex/match_results/~match_results + + (T... args) + + + + std::wcout + cpp/io/cout + + + 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_arith + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + wcregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (T... args) + + + + 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_arith + + (T... args) + + + T + operator++(int) + 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= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + wcregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + + std::wcsub_match + cpp/regex/sub_match + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + T + first + cpp/utility/pair + + + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + matched + cpp/regex/sub_match + + + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + second + cpp/utility/pair + + + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + T + wcsub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + + std::weak_ordering + cpp/utility/compare/weak_ordering + + T + operator partial_ordering + cpp/utility/compare/weak_ordering + + (T... args) + + + + std::weak_ptr + cpp/memory/weak_ptr + + T + expired + cpp/memory/weak_ptr/expired + + (T... args) + + + T + lock + cpp/memory/weak_ptr/lock + + (T... args) + + + T + operator= + cpp/memory/weak_ptr/operator= + + (T... args) + + + T + owner_before + cpp/memory/weak_ptr/owner_before + + (T... args) + + + T + reset + cpp/memory/weak_ptr/reset + + (T... args) + + + T + swap + cpp/memory/weak_ptr/swap + + (T... args) + + + T + use_count + cpp/memory/weak_ptr/use_count + + (T... args) + + + T + weak_ptr + cpp/memory/weak_ptr/weak_ptr + + (T... args) + + + T + ~weak_ptr + cpp/memory/weak_ptr/~weak_ptr + + (T... args) + + + + std::weibull_distribution + cpp/numeric/random/weibull_distribution + + T + a + cpp/numeric/random/weibull_distribution/params + + (T... args) + + + T + b + cpp/numeric/random/weibull_distribution/params + + (T... args) + + + T + max + cpp/numeric/random/weibull_distribution/max + + (T... args) + + + T + min + cpp/numeric/random/weibull_distribution/min + + (T... args) + + + T + operator() + cpp/numeric/random/weibull_distribution/operator() + + (T... args) + + + T + param + cpp/numeric/random/weibull_distribution/param + + (T... args) + + + T + reset + cpp/numeric/random/weibull_distribution/reset + + (T... args) + + + T + weibull_distribution + cpp/numeric/random/weibull_distribution/weibull_distribution + + (T... args) + + + + std::wfilebuf + cpp/io/basic_filebuf + + T + close + cpp/io/basic_filebuf/close + + (T... args) + + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + is_open + cpp/io/basic_filebuf/is_open + + (T... args) + + + T + open + cpp/io/basic_filebuf/open + + (T... args) + + + T + operator= + cpp/io/basic_filebuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + wfilebuf + cpp/io/basic_filebuf/basic_filebuf + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~wfilebuf + cpp/io/basic_filebuf/~basic_filebuf + + (T... args) + + + + std::wformat_args + cpp/utility/format/basic_format_args + + + std::wformat_context + cpp/utility/format/basic_format_context + + + std::wformat_parse_context + cpp/utility/format/basic_format_parse_context + + + std::wfstream + cpp/io/basic_fstream + std::wfstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_fstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wfstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wfstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_fstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_fstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_fstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wfstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + wfstream + cpp/io/basic_fstream/basic_fstream + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::wfstream::Init + cpp/io/ios_base/Init + + + 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::wfstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wifstream + cpp/io/basic_ifstream + std::wifstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_ifstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wifstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wifstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_ifstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_ifstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator= + cpp/io/basic_ifstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wifstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wifstream + cpp/io/basic_ifstream/basic_ifstream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::wifstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wios + cpp/io/basic_ios + std::wios::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wios::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wios::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/ios_base/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + precision + cpp/io/ios_base/precision + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wios + cpp/io/basic_ios/basic_ios + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~wios + cpp/io/basic_ios/~basic_ios + + (T... args) + + + + std::wios::Init + cpp/io/ios_base/Init + + + std::wios::event_callback + cpp/io/ios_base/event_callback + + + std::wios::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wiostream + cpp/io/basic_iostream + std::wiostream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wiostream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wiostream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_iostream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wiostream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wiostream + cpp/io/basic_iostream/basic_iostream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~wiostream + cpp/io/basic_iostream/~basic_iostream + + (T... args) + + + + std::wiostream::Init + cpp/io/ios_base/Init + + + 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::wiostream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wistream + cpp/io/basic_istream + std::wistream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wistream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wistream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator= + cpp/io/basic_istream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wistream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wistream + cpp/io/basic_istream/basic_istream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~wistream + cpp/io/basic_istream/~basic_istream + + (T... args) + + + + std::wistream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wistringstream + cpp/io/basic_istringstream + std::wistringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wistringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wistringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator= + cpp/io/basic_istringstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + std::wistringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_istringstream/str + + (T... args) + + + T + swap + cpp/io/basic_istream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wistringstream + cpp/io/basic_istringstream/basic_istringstream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::wistringstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wofstream + cpp/io/basic_ofstream + std::wofstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + close + cpp/io/basic_ofstream/close + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wofstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wofstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + is_open + cpp/io/basic_ofstream/is_open + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (T... args) + + + T + narrow + cpp/io/basic_ios/narrow + + (T... args) + + + T + open + cpp/io/basic_ofstream/open + + (T... args) + + + T + operator bool + cpp/io/basic_ios/operator_bool + + (T... args) + + + T + operator! + cpp/io/basic_ios/operator! + + (T... args) + + + T + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ofstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wofstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wofstream + cpp/io/basic_ofstream/basic_ofstream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::wofstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::wostream + cpp/io/basic_ostream + std::wostream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wostream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wostream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ostream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wostream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ios/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wostream + cpp/io/basic_ostream/basic_ostream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~wostream + cpp/io/basic_ostream/~basic_ostream + + (T... args) + + + + std::wostream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::wostringstream + cpp/io/basic_ostringstream + std::wostringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wostringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wostringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_ostringstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wostringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_ostringstream/str + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wostringstream + cpp/io/basic_ostringstream/basic_ostringstream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::wostringstream::Init + cpp/io/ios_base/Init + + + 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 + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::wosyncstream + cpp/io/basic_osyncstream + std::wosyncstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + emit + cpp/io/basic_osyncstream/emit + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wosyncstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wosyncstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + get_wrapped + cpp/io/basic_osyncstream/get_wrapped + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_osyncstream/operator= + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wosyncstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + swap + cpp/io/basic_ostream/swap + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + wosyncstream + cpp/io/basic_osyncstream/basic_osyncstream + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + T + ~wosyncstream + cpp/io/basic_osyncstream/~basic_osyncstream + + (T... args) + + + + std::wosyncstream::Init + cpp/io/ios_base/Init + + + std::wosyncstream::event_callback + cpp/io/ios_base/event_callback + + + std::wosyncstream::failure + cpp/io/ios_base/failure + + T + failure + cpp/io/ios_base/failure + + (T... args) + + + T + what + cpp/error/exception/what + + (T... args) + + + + std::wosyncstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_ostream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_ostream/sentry + + (T... args) + + + + std::wregex + cpp/regex/basic_regex + + T + assign + cpp/regex/basic_regex/assign + + (T... args) + + + T + flags + cpp/regex/basic_regex/flags + + (T... args) + + + T + getloc + cpp/regex/basic_regex/getloc + + (T... args) + + + T + imbue + cpp/regex/basic_regex/imbue + + (T... args) + + + T + mark_count + cpp/regex/basic_regex/mark_count + + (T... args) + + + T + operator= + cpp/regex/basic_regex/operator= + + (T... args) + + + T + swap + cpp/regex/basic_regex/swap + + (T... args) + + + T + wregex + cpp/regex/basic_regex/basic_regex + + (T... args) + + + T + ~wregex + cpp/regex/basic_regex/~basic_regex + + (T... args) + + + + std::wsmatch + cpp/regex/match_results + + T + begin + cpp/regex/match_results/begin + + (T... args) + + + T + cbegin + cpp/regex/match_results/begin + + (T... args) + + + T + cend + cpp/regex/match_results/end + + (T... args) + + + T + empty + cpp/regex/match_results/empty + + (T... args) + + + T + end + cpp/regex/match_results/end + + (T... args) + + + T + format + cpp/regex/match_results/format + + (T... args) + + + T + get_allocator + cpp/regex/match_results/get_allocator + + (T... args) + + + T + length + cpp/regex/match_results/length + + (T... args) + + + T + max_size + cpp/regex/match_results/max_size + + (T... args) + + + T + operator[] + cpp/regex/match_results/operator_at + + (T... args) + + + T + position + cpp/regex/match_results/position + + (T... args) + + + T + prefix + cpp/regex/match_results/prefix + + (T... args) + + + T + ready + cpp/regex/match_results/ready + + (T... args) + + + T + size + cpp/regex/match_results/size + + (T... args) + + + T + str + cpp/regex/match_results/str + + (T... args) + + + T + suffix + cpp/regex/match_results/suffix + + (T... args) + + + T + swap + cpp/regex/match_results/swap + + (T... args) + + + T + wsmatch + cpp/regex/match_results/match_results + + (T... args) + + + T + ~wsmatch + cpp/regex/match_results/~match_results + + (T... args) + + + + std::wsregex_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_arith + + (T... args) + + + T + operator++(int) + cpp/regex/regex_iterator/operator_arith + + (T... args) + + + T + operator-> + cpp/regex/regex_iterator/operator* + + (T... args) + + + T + operator= + cpp/regex/regex_iterator/operator= + + (T... args) + + + T + operator== + cpp/regex/regex_iterator/operator_cmp + + (T... args) + + + T + wsregex_iterator + cpp/regex/regex_iterator/regex_iterator + + (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 + operator++ + cpp/regex/regex_token_iterator/operator_arith + + (T... args) + + + T + operator++(int) + 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= + + (T... args) + + + T + operator== + cpp/regex/regex_token_iterator/operator_cmp + + (T... args) + + + T + wsregex_token_iterator + cpp/regex/regex_token_iterator/regex_token_iterator + + (T... args) + + + + std::wssub_match + cpp/regex/sub_match + + T + compare + cpp/regex/sub_match/compare + + (T... args) + + + T + first + cpp/utility/pair + + + + + T + length + cpp/regex/sub_match/length + + (T... args) + + + T + matched + cpp/regex/sub_match + + + + + T + operator string_type + cpp/regex/sub_match/str + + (T... args) + + + T + second + cpp/utility/pair + + + + + T + str + cpp/regex/sub_match/str + + (T... args) + + + T + swap + cpp/utility/pair/swap + + (T... args) + + + T + wssub_match + cpp/regex/sub_match/sub_match + + (T... args) + + + + std::wstreambuf + cpp/io/basic_streambuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_streambuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + wstreambuf + cpp/io/basic_streambuf/basic_streambuf + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~wstreambuf + cpp/io/basic_streambuf/~basic_streambuf + + (T... args) + + + + std::wstreampos + cpp/io/fpos + + T + state + cpp/io/fpos/state + + (T... args) + + + + std::wstring + cpp/string/basic_string + + T + append + cpp/string/basic_string/append + + (T... args) + + + T + assign + cpp/string/basic_string/assign + + (T... args) + + + T + at + cpp/string/basic_string/at + + (T... args) + + + T + back + cpp/string/basic_string/back + + (T... args) + + + T + begin + cpp/string/basic_string/begin + + (T... args) + + + T + c_str + cpp/string/basic_string/c_str + + (T... args) + + + T + capacity + cpp/string/basic_string/capacity + + (T... args) + + + T + cbegin + cpp/string/basic_string/begin + + (T... args) + + + T + cend + cpp/string/basic_string/end + + (T... args) + + + T + clear + cpp/string/basic_string/clear + + (T... args) + + + T + compare + cpp/string/basic_string/compare + + (T... args) + + + T + copy + cpp/string/basic_string/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string/rend + + (T... args) + + + T + data + cpp/string/basic_string/data + + (T... args) + + + T + empty + cpp/string/basic_string/empty + + (T... args) + + + T + end + cpp/string/basic_string/end + + (T... args) + + + T + ends_with + cpp/string/basic_string/ends_with + + (T... args) + + + T + erase + cpp/string/basic_string/erase + + (T... args) + + + T + find + cpp/string/basic_string/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string/front + + (T... args) + + + T + get_allocator + cpp/string/basic_string/get_allocator + + (T... args) + + + T + insert + cpp/string/basic_string/insert + + (T... args) + + + T + length + cpp/string/basic_string/size + + (T... args) + + + T + max_size + cpp/string/basic_string/max_size + + (T... args) + + + T + operator basic_string_view + cpp/string/basic_string/operator_basic_string_view + + (T... args) + + + T + operator+= + cpp/string/basic_string/operator+= + + (T... args) + + + T + operator= + cpp/string/basic_string/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string/operator_at + + (T... args) + + + T + pop_back + cpp/string/basic_string/pop_back + + (T... args) + + + T + push_back + cpp/string/basic_string/push_back + + (T... args) + + + T + rbegin + cpp/string/basic_string/rbegin + + (T... args) + + + T + rend + cpp/string/basic_string/rend + + (T... args) + + + T + replace + cpp/string/basic_string/replace + + (T... args) + + + T + reserve + cpp/string/basic_string/reserve + + (T... args) + + + T + resize + cpp/string/basic_string/resize + + (T... args) + + + T + rfind + cpp/string/basic_string/rfind + + (T... args) + + + T + shrink_to_fit + cpp/string/basic_string/shrink_to_fit + + (T... args) + + + T + size + cpp/string/basic_string/size + + (T... args) + + + T + starts_with + cpp/string/basic_string/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string/substr + + (T... args) + + + T + swap + cpp/string/basic_string/swap + + (T... args) + + + T + wstring + cpp/string/basic_string/basic_string + + (T... args) + + + + std::wstring_convert + cpp/locale/wstring_convert + + T + converted + cpp/locale/wstring_convert/converted + + (T... args) + + + T + from_bytes + cpp/locale/wstring_convert/from_bytes + + (T... args) + + + T + state + cpp/locale/wstring_convert/state + + (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 + ~wstring_convert + cpp/locale/wstring_convert/~wstring_convert + + (T... args) + + + + std::wstring_view + cpp/string/basic_string_view + + T + at + cpp/string/basic_string_view/at + + (T... args) + + + T + back + cpp/string/basic_string_view/back + + (T... args) + + + T + begin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cbegin + cpp/string/basic_string_view/begin + + (T... args) + + + T + cend + cpp/string/basic_string_view/end + + (T... args) + + + T + compare + cpp/string/basic_string_view/compare + + (T... args) + + + T + copy + cpp/string/basic_string_view/copy + + (T... args) + + + T + crbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + crend + cpp/string/basic_string_view/rend + + (T... args) + + + T + data + cpp/string/basic_string_view/data + + (T... args) + + + T + empty + cpp/string/basic_string_view/empty + + (T... args) + + + T + end + cpp/string/basic_string_view/end + + (T... args) + + + T + ends_with + cpp/string/basic_string_view/ends_with + + (T... args) + + + T + find + cpp/string/basic_string_view/find + + (T... args) + + + T + find_first_not_of + cpp/string/basic_string_view/find_first_not_of + + (T... args) + + + T + find_first_of + cpp/string/basic_string_view/find_first_of + + (T... args) + + + T + find_last_not_of + cpp/string/basic_string_view/find_last_not_of + + (T... args) + + + T + find_last_of + cpp/string/basic_string_view/find_last_of + + (T... args) + + + T + front + cpp/string/basic_string_view/front + + (T... args) + + + T + length + cpp/string/basic_string_view/size + + (T... args) + + + T + max_size + cpp/string/basic_string_view/max_size + + (T... args) + + + T + operator= + cpp/string/basic_string_view/operator= + + (T... args) + + + T + operator[] + cpp/string/basic_string_view/operator_at + + (T... args) + + + T + rbegin + cpp/string/basic_string_view/rbegin + + (T... args) + + + T + remove_prefix + cpp/string/basic_string_view/remove_prefix + + (T... args) + + + T + remove_suffix + cpp/string/basic_string_view/remove_suffix + + (T... args) + + + T + rend + cpp/string/basic_string_view/rend + + (T... args) + + + T + rfind + cpp/string/basic_string_view/rfind + + (T... args) + + + T + size + cpp/string/basic_string_view/size + + (T... args) + + + T + starts_with + cpp/string/basic_string_view/starts_with + + (T... args) + + + T + substr + cpp/string/basic_string_view/substr + + (T... args) + + + T + swap + cpp/string/basic_string_view/swap + + (T... args) + + + T + wstring_view + cpp/string/basic_string_view/basic_string_view + + (T... args) + + + + std::wstringbuf + cpp/io/basic_stringbuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_stringbuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + str + cpp/io/basic_stringbuf/str + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + wstringbuf + cpp/io/basic_stringbuf/basic_stringbuf + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + + std::wstringstream + cpp/io/basic_stringstream + std::wstringstream::Init + + T + bad + cpp/io/basic_ios/bad + + (T... args) + + + T + clear + cpp/io/basic_ios/clear + + (T... args) + + + T + copyfmt + cpp/io/basic_ios/copyfmt + + (T... args) + + + T + eof + cpp/io/basic_ios/eof + + (T... args) + + std::wstringstream::event_callback + + T + exceptions + cpp/io/basic_ios/exceptions + + (T... args) + + + T + fail + cpp/io/basic_ios/fail + + (T... args) + + std::wstringstream::failure + + T + fill + cpp/io/basic_ios/fill + + (T... args) + + + T + flags + cpp/io/ios_base/flags + + (T... args) + + + T + flush + cpp/io/basic_ostream/flush + + (T... args) + + + T + gcount + cpp/io/basic_istream/gcount + + (T... args) + + + T + get + cpp/io/basic_istream/get + + (T... args) + + + T + getline + cpp/io/basic_istream/getline + + (T... args) + + + T + getloc + cpp/io/ios_base/getloc + + (T... args) + + + T + good + cpp/io/basic_ios/good + + (T... args) + + + T + ignore + cpp/io/basic_istream/ignore + + (T... args) + + + T + imbue + cpp/io/basic_ios/imbue + + (T... args) + + + T + init + cpp/io/basic_ios/init + + (T... args) + + + T + iword + cpp/io/ios_base/iword + + (T... args) + + + T + move + cpp/io/basic_ios/move + + (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 + operator<< + cpp/io/basic_ostream/operator_ltlt + + (T... args) + + + T + operator= + cpp/io/basic_stringstream/operator= + + (T... args) + + + T + operator>> + cpp/io/basic_istream/operator_gtgt + + (T... args) + + + T + peek + cpp/io/basic_istream/peek + + (T... args) + + + T + precision + cpp/io/ios_base/precision + + (T... args) + + + T + put + cpp/io/basic_ostream/put + + (T... args) + + + T + putback + cpp/io/basic_istream/putback + + (T... args) + + + T + pword + cpp/io/ios_base/pword + + (T... args) + + + T + rdbuf + cpp/io/basic_ios/rdbuf + + (T... args) + + + T + rdstate + cpp/io/basic_ios/rdstate + + (T... args) + + + T + read + cpp/io/basic_istream/read + + (T... args) + + + T + readsome + cpp/io/basic_istream/readsome + + (T... args) + + + T + register_callback + cpp/io/ios_base/register_callback + + (T... args) + + + T + seekg + cpp/io/basic_istream/seekg + + (T... args) + + + T + seekp + cpp/io/basic_ostream/seekp + + (T... args) + + std::wstringstream::sentry + + T + set_rdbuf + cpp/io/basic_ios/set_rdbuf + + (T... args) + + + T + setf + cpp/io/ios_base/setf + + (T... args) + + + T + setstate + cpp/io/basic_ios/setstate + + (T... args) + + + T + str + cpp/io/basic_stringstream/str + + (T... args) + + + T + swap + cpp/io/basic_iostream/swap + + (T... args) + + + T + sync + cpp/io/basic_istream/sync + + (T... args) + + + T + sync_with_stdio + cpp/io/ios_base/sync_with_stdio + + (T... args) + + + T + tellg + cpp/io/basic_istream/tellg + + (T... args) + + + T + tellp + cpp/io/basic_ostream/tellp + + (T... args) + + + T + tie + cpp/io/basic_ios/tie + + (T... args) + + + T + unget + cpp/io/basic_istream/unget + + (T... args) + + + T + unsetf + cpp/io/ios_base/unsetf + + (T... args) + + + T + widen + cpp/io/basic_ios/widen + + (T... args) + + + T + width + cpp/io/ios_base/width + + (T... args) + + + T + write + cpp/io/basic_ostream/write + + (T... args) + + + T + wstringstream + cpp/io/basic_stringstream/basic_stringstream + + (T... args) + + + T + xalloc + cpp/io/ios_base/xalloc + + (T... args) + + + + std::wstringstream::Init + cpp/io/ios_base/Init + + + 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::wstringstream::sentry + cpp/io/basic_ostream/sentry + + T + operator bool + cpp/io/basic_istream/sentry + + (T... args) + + + T + sentry + cpp/io/basic_istream/sentry + + (T... args) + + + T + ~sentry + cpp/io/basic_istream/sentry + + (T... args) + + + + std::wsyncbuf + cpp/io/basic_syncbuf + + T + eback + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + egptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + emit + cpp/io/basic_syncbuf/emit + + (T... args) + + + T + epptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + gbump + cpp/io/basic_streambuf/gbump + + (T... args) + + + T + get_allocator + cpp/io/basic_syncbuf/get_allocator + + (T... args) + + + T + get_wrapped + cpp/io/basic_syncbuf/get_wrapped + + (T... args) + + + T + getloc + cpp/io/basic_streambuf/getloc + + (T... args) + + + T + gptr + cpp/io/basic_streambuf/gptr + + (T... args) + + + T + imbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + in_avail + cpp/io/basic_streambuf/in_avail + + (T... args) + + + T + operator= + cpp/io/basic_syncbuf/operator= + + (T... args) + + + T + overflow + cpp/io/basic_streambuf/overflow + + (T... args) + + + T + pbackfail + cpp/io/basic_streambuf/pbackfail + + (T... args) + + + T + pbase + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pbump + cpp/io/basic_streambuf/pbump + + (T... args) + + + T + pptr + cpp/io/basic_streambuf/pptr + + (T... args) + + + T + pubimbue + cpp/io/basic_streambuf/pubimbue + + (T... args) + + + T + pubseekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + pubseekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + pubsetbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + pubsync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + sbumpc + cpp/io/basic_streambuf/sbumpc + + (T... args) + + + T + seekoff + cpp/io/basic_streambuf/pubseekoff + + (T... args) + + + T + seekpos + cpp/io/basic_streambuf/pubseekpos + + (T... args) + + + T + set_emit_on_sync + cpp/io/basic_syncbuf/set_emit_on_sync + + (T... args) + + + T + setbuf + cpp/io/basic_streambuf/pubsetbuf + + (T... args) + + + T + setg + cpp/io/basic_streambuf/setg + + (T... args) + + + T + setp + cpp/io/basic_streambuf/setp + + (T... args) + + + T + sgetc + cpp/io/basic_streambuf/sgetc + + (T... args) + + + T + sgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + showmanyc + cpp/io/basic_streambuf/showmanyc + + (T... args) + + + T + snextc + cpp/io/basic_streambuf/snextc + + (T... args) + + + T + sputbackc + cpp/io/basic_streambuf/sputbackc + + (T... args) + + + T + sputc + cpp/io/basic_streambuf/sputc + + (T... args) + + + T + sputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + sungetc + cpp/io/basic_streambuf/sungetc + + (T... args) + + + T + swap + cpp/io/basic_streambuf/swap + + (T... args) + + + T + sync + cpp/io/basic_streambuf/pubsync + + (T... args) + + + T + uflow + cpp/io/basic_streambuf/uflow + + (T... args) + + + T + underflow + cpp/io/basic_streambuf/underflow + + (T... args) + + + T + wsyncbuf + cpp/io/basic_syncbuf/basic_syncbuf + + (T... args) + + + T + xsgetn + cpp/io/basic_streambuf/sgetn + + (T... args) + + + T + xsputn + cpp/io/basic_streambuf/sputn + + (T... args) + + + T + ~wsyncbuf + cpp/io/basic_syncbuf/~basic_syncbuf + + (T... args) + + + + std::yocto + cpp/numeric/ratio/ratio + + + std::yotta + cpp/numeric/ratio/ratio + + + std::zepto + cpp/numeric/ratio/ratio + + + std::zetta + cpp/numeric/ratio/ratio + + + va_list + cpp/utility/variadic/va_list + + diff --git a/doc/throw_error_handler.adoc b/doc/throw_error_handler.adoc index 83df4f4..20966d9 100644 --- a/doc/throw_error_handler.adoc +++ b/doc/throw_error_handler.adoc @@ -18,7 +18,7 @@ struct throw_error_handler : error_handler { ### Description -throw_error_handler is an implementation of the `error_handler` facet that +throw_error_handler is an implementation of the `error_handler` policy that throws the error as an exception. ### Members diff --git a/doc/trace.adoc b/doc/trace.adoc index 844cce2..9ff3452 100644 --- a/doc/trace.adoc +++ b/doc/trace.adoc @@ -20,7 +20,7 @@ struct basic_trace_output : trace { ### Description `basic_error_output` is an implementation of `trace` that writes error -messages to a `RestrictedOutputStream`. +messages to a `LightweightOutputStream`. ### Members diff --git a/doc/trace_output.adoc b/doc/trace_output.adoc index 45dfd08..e9e9838 100644 --- a/doc/trace_output.adoc +++ b/doc/trace_output.adoc @@ -8,7 +8,7 @@ Defined in . ```c++ namespace boost::openmethod::policies { -struct trace : facet {}; +struct trace : policy {}; } ``` @@ -17,10 +17,10 @@ struct trace : facet {}; ### Description -`trace` is a facet used to write trace messages. +`trace` is a policy used to write trace messages. `initialize` can be directed to describe the classes and methods in a policy, -and how the dispatch tables are built, by including this facet in the policy, +and how the dispatch tables are built, by including this policy in the policy, and setting `trace_enabled` to `true`. The content and the format of the description is not documented, beyond the guarantee that it provides an exhaustive account of table construction, and may change between major, minor @@ -39,7 +39,7 @@ static bool trace_enabled; #### trace_stream ```c++ -static RestrictedOutputStream trace_stream; +static LightweightOutputStream trace_stream; ``` -A static variable that satisfies the requirements of `RestrictedOutputStream`. +A static variable that satisfies the requirements of `LightweightOutputStream`. diff --git a/doc/type_hash.adoc b/doc/type_hash.adoc index a04badc..c211b23 100644 --- a/doc/type_hash.adoc +++ b/doc/type_hash.adoc @@ -8,14 +8,14 @@ Defined in . ```c++ namespace boost::openmethod::policies { -struct type_hash : facet {}; +struct type_hash : policy {}; } // boost::openmethod::policies ``` ### Description -`type_hash` is a facet that provides a hash function for a fixed set of +`type_hash` is a policy that provides a hash function for a fixed set of `type_id`{empty}s. ### Requirements @@ -77,9 +77,9 @@ static auto hash_type_id(type_id type) -> type_id; Returns `(type * M) >> S`, where `M` and `S` are factors found by `hash_initialize`. -If the policy has a `runtime_checks` facet, `hash_type_id` checks that `type` +If the policy has a `runtime_checks` policy, `hash_type_id` checks that `type` corresponds to a registered class. If not, it reports a `unknown_class_error` -using the policy's error_handler facet, if present, then calls `abort`. +using the policy's error_handler policy, if present, then calls `abort`. #### hash_initialize @@ -92,8 +92,8 @@ Finds factors `M` and `S` such that `hash_type_id` is a collision-free hash function. If no such factors cannot be found, `hash_initialize` reports a -`hash_search_error` using the policy's error_handler facet, if present, the +`hash_search_error` using the policy's error_handler policy, if present, the calls `abort`. -If the policy has a `trace` facet, `hash_initialize` uses it to write a +If the policy has a `trace` policy, `hash_initialize` uses it to write a summary of the search. diff --git a/doc/vptr.adoc b/doc/vptr.adoc index 92a1051..7181d17 100644 --- a/doc/vptr.adoc +++ b/doc/vptr.adoc @@ -8,14 +8,14 @@ Defined in . ```c++ namespace boost::openmethod::policies { -struct extern_vptr : facet {}; +struct extern_vptr : policy {}; } ``` ### Description -`extern_vptr` is a facet that stores and returns pointers to v-tables for +`extern_vptr` is a policy that stores and returns pointers to v-tables for registered classes. ### Requirements @@ -50,15 +50,15 @@ the same. ### Synopsis ```c++ -struct indirect_vptr : facet {}; +struct indirect_vptr : policy {}; ``` ### Description -`indirect_vptr` is a facet that makes `virtual_ptr`{empty}s and `inplace_vptr` use +`indirect_vptr` is a policy that makes `virtual_ptr`{empty}s and `inplace_vptr` use pointers to pointers to v-tables, instead of straight pointers. As a consequence, they remain valid after a call to `initialize`. ### Requirements -None. The facet is its own implementation. +None. The policy is its own implementation. diff --git a/doc/vptr_map.adoc b/doc/vptr_map.adoc index cf1e698..961cfbc 100644 --- a/doc/vptr_map.adoc +++ b/doc/vptr_map.adoc @@ -27,7 +27,7 @@ class vptr_map : public extern_vptr { the v-tables in a map. If `Policy` contains `indirect_vptr`, a level of indirection is added, making the policy usable in presence of dynamic loading. -`Policy` is the policy containing the facet. +`Policy` is the policy containing the policy. `MapAdaptor` is a Boost.Mp11 quoted metafunction that returns a map type. @@ -51,6 +51,6 @@ auto dynamic_vptr(const Class& object) -> const vptr_type&; Returns a pointer to the v-table for `object` (by reference). -If _Policy_ contains the `runtime_checks` facet, checks if _Class_ is -registered. If it is not, and _Policy_ contains a `error_handler` facet, calls +If _Policy_ contains the `runtime_checks` policy, checks if _Class_ is +registered. If it is not, and _Policy_ contains a `error_handler` policy, calls its `error` function; then calls `abort`. diff --git a/doc/vptr_vector.adoc b/doc/vptr_vector.adoc index aa25ccc..fbbaf5d 100644 --- a/doc/vptr_vector.adoc +++ b/doc/vptr_vector.adoc @@ -28,7 +28,7 @@ the v-tables in a `std::vector`. If `Policy` contains `indirect_vptr`, a level of indirection is added, making the policy usable in presence of dynamic loading. -`Policy` is the policy containing the facet. +`Policy` is the policy containing the policy. ### Members @@ -42,7 +42,7 @@ auto register_vptrs(ForwardIterator first, ForwardIterator last) -> void; Stores the pointers to v-tables in a vector, indexed by the (possibly hashed) `type_id`s of the classes registered in `Policy`. -If `Policy` contains a `type_hash` facet, call its `hash_initialize` +If `Policy` contains a `type_hash` policy, call its `hash_initialize` function, and uses it to convert the `type_id`{empty}s to an index. #### dynamic_vptr @@ -55,5 +55,5 @@ auto dynamic_vptr(const Class& object) -> const vptr_type&; Returns a pointer to the v-table for `object` (by reference). Obtains a `type_id` for `object` using `Policy::dynamic_type`. If _Policy_ -contains a `type_hash` facet, uses it to convert the result to an index; +contains a `type_hash` policy, uses it to convert the result to an index; otherwise, uses the `type_id` as the index. diff --git a/docs b/docs deleted file mode 120000 index ea241a2..0000000 --- a/docs +++ /dev/null @@ -1 +0,0 @@ -doc/html \ No newline at end of file diff --git a/include/boost/openmethod/core.hpp b/include/boost/openmethod/core.hpp index f34b61a..b1ce146 100644 --- a/include/boost/openmethod/core.hpp +++ b/include/boost/openmethod/core.hpp @@ -34,14 +34,19 @@ namespace boost::openmethod { +template +constexpr bool is_polymorphic = Registry::rtti::template is_polymorphic; + +template< + class Class, class Registry = BOOST_OPENMETHOD_DEFAULT_REGISTRY, + typename = void> +class virtual_ptr; + // ============================================================================= // Helpers namespace detail { -template -constexpr bool is_polymorphic = Registry::rtti::template is_polymorphic; - using macro_default_registry = BOOST_OPENMETHOD_DEFAULT_REGISTRY; template @@ -86,7 +91,7 @@ struct use_class_aux; template struct use_class_aux> : std::conditional_t< - Registry::deferred_static_rtti, detail::deferred_class_info, + Registry::has_deferred_static_rtti, detail::deferred_class_info, detail::class_info> { inline static type_id bases[sizeof...(Bases)]; use_class_aux() { @@ -95,7 +100,7 @@ struct use_class_aux> this->is_abstract = std::is_abstract_v; this->static_vptr = &Registry::template static_vptr; - if constexpr (!Registry::deferred_static_rtti) { + if constexpr (!Registry::has_deferred_static_rtti) { resolve_type_ids(); } @@ -195,12 +200,12 @@ template struct parameter_traits, Registry> : virtual_traits {}; template -struct parameter_traits, Registry> - : virtual_traits, Registry> {}; +struct parameter_traits, Registry> + : virtual_traits, Registry> {}; template -struct parameter_traits&, Registry> - : virtual_traits&, Registry> {}; +struct parameter_traits&, Registry> + : virtual_traits&, Registry> {}; } // namespace detail @@ -275,32 +280,37 @@ struct use_classes { tuple_type tuple; }; +void boost_openmethod_vptr(...); + // ============================================================================= // virtual_ptr +template +inline auto final_virtual_ptr(Arg&& obj); + namespace detail { template -struct is_virtual> : std::true_type {}; +struct is_virtual> : std::true_type {}; template -struct is_virtual&> : std::true_type {}; +struct is_virtual&> : std::true_type { +}; template struct is_virtual_ptr_aux : std::false_type {}; template -struct is_virtual_ptr_aux> : std::true_type {}; +struct is_virtual_ptr_aux> : std::true_type { +}; template -struct is_virtual_ptr_aux&> +struct is_virtual_ptr_aux&> : std::true_type {}; template constexpr bool is_virtual_ptr = detail::is_virtual_ptr_aux::value; -void boost_openmethod_vptr(...); - template constexpr bool has_vptr_fn = std::is_same_v< decltype(boost_openmethod_vptr( @@ -337,33 +347,128 @@ inline auto unbox_vptr(const vptr_type* vpp) { inline vptr_type null_vptr = nullptr; -template -class virtual_ptr_impl { - protected: - static constexpr bool use_indirect_vptrs = - Registry::template has_policy; +} // namespace detail + +template +inline auto final_virtual_ptr(Arg&& obj) { + using namespace detail; + using VirtualPtr = virtual_ptr, Registry>; + using Class = typename VirtualPtr::element_type; + using Traits = virtual_traits; + + if constexpr ( + Registry::has_runtime_checks && is_polymorphic) { + + // check that dynamic type == static type + auto static_type = Registry::rtti::template static_type(); + auto dynamic_type = Registry::rtti::dynamic_type(Traits::peek(obj)); + + if (dynamic_type != static_type) { + if constexpr (is_not_void) { + final_error error; + error.static_type = static_type; + error.dynamic_type = dynamic_type; + Registry::error_handler::error(error); + } + + abort(); + } + } + + return VirtualPtr( + std::forward(obj), + detail::box_vptr( + Registry::template static_vptr)); +} + +template +inline auto final_virtual_ptr(Arg&& obj) { + return final_virtual_ptr( + std::forward(obj)); +} + +/** + +A wide pointer combining a pointer to an object and a pointer to its v-table. + +@tparam Class The class of the object. + +@tparam Registry The registry in which `Class` is registered. + +@tparam unnamed Always `void` (used for SFINAE). + +*/ + +template +class virtual_ptr { + + using traits = virtual_traits; + +#ifndef __MRDOCS__ + template + friend class virtual_ptr; + template + friend auto final_virtual_ptr(Arg&& obj); +#endif + + static constexpr bool is_smart_ptr = false; + static constexpr bool use_indirect_vptrs = Registry::has_indirect_vptr; std::conditional_t vp; Class* obj; public: - using traits = virtual_traits; using element_type = Class; - static constexpr bool is_smart_ptr = false; - virtual_ptr_impl() = default; + /** + Constructs a `virtual_ptr` with both object and v-table pointers + initialized to `nullptr`. + */ - explicit virtual_ptr_impl(std::nullptr_t) - : vp(box_vptr(null_vptr)), obj(nullptr) { + virtual_ptr() = default; + + /** + Constructs a `virtual_ptr` with both object and v-table pointers + initialized to `nullptr`. + + @param value A `nullptr`. + */ + + explicit virtual_ptr(std::nullptr_t) + : vp(detail::box_vptr(detail::null_vptr)), + obj(nullptr) { } + /** + Constructs a `virtual_ptr` pointing to an object of type `Other`. + + The pointer to the v-table is obtained by calling + @ref boost_openmethod_vptr if a suitable overload exists, or the + @ref policies::vptr::fn::dynamic_vptr of the registry's @ref + policies::vptr otherwise. + + @ref dynamic_vptr foo + + @param other A `nullptr`. + + @par Requirements + + `Other` must be a polymorphic class, according to the `Registry`'s + `rtti` policy. + + `Other*` must be convertible to `Class*`. + + @par Errors + */ + template< class Other, typename = std::enable_if_t< std::is_constructible_v && - is_polymorphic>> - virtual_ptr_impl(Other& other) - : vp(box_vptr(acquire_vptr(other))), + is_polymorphic>> + virtual_ptr(Other& other) + : vp(detail::box_vptr( + detail::acquire_vptr(other))), obj(&other) { } @@ -371,54 +476,53 @@ class virtual_ptr_impl { class Other, typename = std::enable_if_t< std::is_constructible_v< - Class*, - decltype(std::declval>().get())> && - is_polymorphic>> - virtual_ptr_impl(Other* other) - : vp(box_vptr(acquire_vptr(*other))), + Class*, typename virtual_ptr::element_type*> && + is_polymorphic>> + virtual_ptr(Other* other) + : vp(detail::box_vptr( + detail::acquire_vptr(*other))), obj(other) { } template< class Other, typename = std::enable_if_t>().get())>>> - virtual_ptr_impl(const virtual_ptr& other) + Class*, typename virtual_ptr::element_type*>>> + virtual_ptr(const virtual_ptr& other) : vp(other.vp), obj(other.get()) { } template< class Other, typename = std::enable_if_t>().get())>>> - virtual_ptr_impl(virtual_ptr_impl& other) + Class*, typename virtual_ptr::element_type*>>> + virtual_ptr(virtual_ptr& other) : vp(other.vp), obj(other.get()) { // Why is this needed? Consider this conversion conversion from // smart to dumb pointer: // virtual_ptr> p = ...; // virtual_ptr q = p; // Since 'p' is not const, in the absence of this ctor, - // virtual_ptr_impl(Other&) would be preferred to - // virtual_ptr_impl(const virtual_ptr& other), and + // virtual_ptr(Other&) would be preferred to + // virtual_ptr(const virtual_ptr& other), and // that is incorrect. } template< class Other, typename = std::enable_if_t>> - virtual_ptr_impl(Other& other, decltype(vp) vp) : vp(vp), obj(&other) { + virtual_ptr(Other& other, decltype(vp) vp) : vp(vp), obj(&other) { } template< class Other, typename = std::enable_if_t< std::is_assignable_v && - is_polymorphic>> - virtual_ptr_impl& operator=(Other& other) { + is_polymorphic>> + virtual_ptr& operator=(Other& other) { obj = &other; - vp = box_vptr(acquire_vptr(other)); + vp = detail::box_vptr( + detail::acquire_vptr(other)); return *this; } @@ -426,28 +530,27 @@ class virtual_ptr_impl { class Other, typename = std::enable_if_t< std::is_assignable_v && - is_polymorphic>> - virtual_ptr_impl& operator=(Other* other) { + is_polymorphic>> + virtual_ptr& operator=(Other* other) { obj = other; - vp = box_vptr(acquire_vptr(*other)); + vp = detail::box_vptr( + detail::acquire_vptr(*other)); return *this; } template< class Other, typename = std::enable_if_t>().get())>>> - virtual_ptr_impl& - operator=(const virtual_ptr_impl& other) { + Class*, typename virtual_ptr::element_type*>>> + virtual_ptr& operator=(const virtual_ptr& other) { obj = other.get(); vp = other.vp; return *this; } - virtual_ptr_impl& operator=(std::nullptr_t) { + virtual_ptr& operator=(std::nullptr_t) { obj = nullptr; - vp = box_vptr(null_vptr); + vp = detail::box_vptr(detail::null_vptr); return *this; } @@ -476,10 +579,28 @@ class virtual_ptr_impl { traits::template cast(*obj), vp); } - template - friend struct virtual_traits; + template + static auto final(Other&& obj) { + return final_virtual_ptr(std::forward(obj)); + } + + auto vptr() const { + return detail::unbox_vptr(this->vp); + } }; +namespace detail { + +template +struct is_smart_ptr_aux : std::false_type {}; + +template +struct is_smart_ptr_aux< + Class, Registry, + std::void_t< + typename virtual_traits::template rebind>> + : std::true_type {}; + template struct same_smart_ptr_aux : std::false_type {}; @@ -493,55 +614,67 @@ struct same_smart_ptr_aux< typename virtual_traits::template rebind< typename Other::element_type>> {}; +} // namespace detail + +#ifndef __MRDOCS__ +template +constexpr bool is_smart_ptr = detail::is_smart_ptr_aux::value; +#endif + template constexpr bool same_smart_ptr = - same_smart_ptr_aux::value; + detail::same_smart_ptr_aux::value; template -class virtual_ptr_impl< - Class, Registry, - std::void_t< - typename virtual_traits::template rebind>> { +class virtual_ptr< + Class, Registry, std::enable_if_t>> { - public: - using traits = virtual_traits; - using element_type = typename Class::element_type; - - template - friend class virtual_ptr; +#ifndef __MRDOCS__ template - friend class virtual_ptr_impl; - template - friend struct virtual_traits; + friend class virtual_ptr; + template + friend auto final_virtual_ptr(Arg&& obj); +#endif - protected: - static constexpr bool use_indirect_vptrs = - Registry::template has_policy; + static constexpr bool is_smart_ptr = true; + static constexpr bool use_indirect_vptrs = Registry::has_indirect_vptr; + + using traits = virtual_traits; std::conditional_t vp; Class obj; + template< + class Other, + typename = std::enable_if_t>> + virtual_ptr(Other& other, decltype(vp) vp) : vp(vp), obj(&other) { + } + public: - static constexpr bool is_smart_ptr = true; + using element_type = typename Class::element_type; - virtual_ptr_impl() : vp(box_vptr(null_vptr)) { + public: + virtual_ptr() + : vp(detail::box_vptr(detail::null_vptr)) { } - explicit virtual_ptr_impl(std::nullptr_t) - : vp(box_vptr(null_vptr)), obj(nullptr) { + explicit virtual_ptr(std::nullptr_t) + : vp(detail::box_vptr(detail::null_vptr)), + obj(nullptr) { } - virtual_ptr_impl(const virtual_ptr_impl& other) = default; + virtual_ptr(const virtual_ptr& other) = default; template< class Other, typename = std::enable_if_t< same_smart_ptr && std::is_constructible_v && - is_polymorphic>> - virtual_ptr_impl(const Other& other) - : vp(box_vptr( - other ? acquire_vptr(*other) : null_vptr)), + is_polymorphic>> + virtual_ptr(const Other& other) + : vp(detail::box_vptr( + other ? detail::acquire_vptr(*other) + : detail::null_vptr)), obj(other) { } @@ -550,28 +683,24 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_constructible_v && - is_polymorphic>> - virtual_ptr_impl(Other& other) - : vp(box_vptr( - other ? acquire_vptr(*other) : null_vptr)), + is_polymorphic>> + virtual_ptr(Other& other) + : vp(detail::box_vptr( + other ? detail::acquire_vptr(*other) + : detail::null_vptr)), obj(other) { } - template< - class Other, - typename = std::enable_if_t>> - virtual_ptr_impl(Other& other, decltype(vp) vp) : vp(vp), obj(&other) { - } - template< class Other, typename = std::enable_if_t< same_smart_ptr && std::is_constructible_v && - is_polymorphic>> - virtual_ptr_impl(Other&& other) - : vp(box_vptr( - other ? acquire_vptr(*other) : null_vptr)), + is_polymorphic>> + virtual_ptr(Other&& other) + : vp(detail::box_vptr( + other ? detail::acquire_vptr(*other) + : detail::null_vptr)), obj(std::move(other)) { } @@ -580,7 +709,7 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_constructible_v>> - virtual_ptr_impl(const virtual_ptr_impl& other) + virtual_ptr(const virtual_ptr& other) : vp(other.vp), obj(other.obj) { } @@ -589,13 +718,12 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_constructible_v>> - virtual_ptr_impl(virtual_ptr_impl& other) + virtual_ptr(virtual_ptr& other) : vp(other.vp), obj(other.obj) { } - virtual_ptr_impl(virtual_ptr_impl&& other) - : vp(other.vp), obj(std::move(other.obj)) { - other.vp = box_vptr(null_vptr); + virtual_ptr(virtual_ptr&& other) : vp(other.vp), obj(std::move(other.obj)) { + other.vp = detail::box_vptr(detail::null_vptr); } template< @@ -603,19 +731,19 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_constructible_v>> - virtual_ptr_impl(virtual_ptr_impl&& other) + virtual_ptr(virtual_ptr&& other) : vp(other.vp), obj(std::move(other.obj)) { - other.vp = box_vptr(null_vptr); + other.vp = detail::box_vptr(detail::null_vptr); } template - virtual_ptr_impl(Arg&& obj, decltype(vp) vp) + virtual_ptr(Arg&& obj, decltype(vp) vp) : vp(vp), obj(std::forward(obj)) { } - virtual_ptr_impl& operator=(std::nullptr_t) { + virtual_ptr& operator=(std::nullptr_t) { obj = nullptr; - vp = box_vptr(null_vptr); + vp = detail::box_vptr(detail::null_vptr); return *this; } @@ -624,10 +752,11 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_assignable_v && - is_polymorphic>> - virtual_ptr_impl& operator=(const Other& other) { + is_polymorphic>> + virtual_ptr& operator=(const Other& other) { obj = other; - vp = box_vptr(acquire_vptr(*other)); + vp = detail::box_vptr( + detail::acquire_vptr(*other)); return *this; } @@ -636,10 +765,10 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_assignable_v && - is_polymorphic>> - virtual_ptr_impl& operator=(Other&& other) { - vp = box_vptr( - other ? acquire_vptr(*other) : null_vptr); + is_polymorphic>> + virtual_ptr& operator=(Other&& other) { + vp = detail::box_vptr( + other ? detail::acquire_vptr(*other) : detail::null_vptr); obj = std::move(other); return *this; } @@ -649,21 +778,20 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_assignable_v>> - virtual_ptr_impl& operator=(virtual_ptr_impl& other) { + virtual_ptr& operator=(virtual_ptr& other) { obj = other.obj; vp = other.vp; return *this; } - virtual_ptr_impl& operator=(const virtual_ptr_impl& other) = default; + virtual_ptr& operator=(const virtual_ptr& other) = default; template< class Other, typename = std::enable_if_t< same_smart_ptr && std::is_assignable_v>> - virtual_ptr_impl& - operator=(const virtual_ptr_impl& other) { + virtual_ptr& operator=(const virtual_ptr& other) { obj = other.obj; vp = other.vp; return *this; @@ -674,10 +802,10 @@ class virtual_ptr_impl< typename = std::enable_if_t< same_smart_ptr && std::is_assignable_v>> - virtual_ptr_impl& operator=(virtual_ptr_impl&& other) { + virtual_ptr& operator=(virtual_ptr&& other) { obj = std::move(other.obj); vp = other.vp; - other.vp = box_vptr(null_vptr); + other.vp = detail::box_vptr(detail::null_vptr); return *this; } @@ -732,66 +860,10 @@ class virtual_ptr_impl< return virtual_ptr( traits::template cast(std::move(obj)), vp); } -}; - -} // namespace detail - -template -class virtual_ptr : public detail::virtual_ptr_impl { - using impl = detail::virtual_ptr_impl; - - public: - using detail::virtual_ptr_impl::virtual_ptr_impl; - using element_type = typename impl::element_type; - - template - friend class detail::virtual_ptr_impl; - - template< - typename Other, - typename = std::enable_if_t>> - virtual_ptr& operator=(Other&& other) { - impl::operator=(std::forward(other)); - return *this; - } template static auto final(Other&& obj) { - using namespace detail; - using other_traits = virtual_traits; - using other_class = typename other_traits::virtual_type; - - static_assert( - std::is_base_of_v || - std::is_base_of_v); - - if constexpr ( - Registry::runtime_checks && - is_polymorphic && - is_polymorphic) { - - // check that dynamic type == static type - auto static_type = - Registry::rtti::template static_type(); - type_id dynamic_type = - Registry::rtti::dynamic_type(other_traits::peek(obj)); - - if (dynamic_type != static_type) { - if constexpr (is_not_void) { - final_error error; - error.static_type = static_type; - error.dynamic_type = dynamic_type; - Registry::error_handler::error(error); - } - - abort(); - } - } - - return virtual_ptr( - std::forward(obj), - box_vptr( - Registry::template static_vptr)); + return final_virtual_ptr(std::forward(obj)); } auto vptr() const { @@ -809,18 +881,6 @@ virtual_ptr(Class&&) -> virtual_ptr; // template // virtual_ptr(Class&) -> virtual_ptr; -template -inline auto final_virtual_ptr(Class&& obj) { - return virtual_ptr, Registry>::final( - std::forward(obj)); -} - -template -inline auto final_virtual_ptr(Class&& obj) { - return virtual_ptr>::final( - std::forward(obj)); -} - template auto operator==( const virtual_ptr& left, @@ -987,15 +1047,15 @@ struct valid_method_parameter, Registry> } // namespace detail template< - typename Method, typename ReturnType, + typename Name, typename ReturnType, class Registry = BOOST_OPENMETHOD_DEFAULT_REGISTRY> class method; template< typename Name, typename... Parameters, typename ReturnType, class Registry> -class methodReturnType, Registry> +class method : public std::conditional_t< - Registry::deferred_static_rtti, detail::deferred_method_info, + Registry::has_deferred_static_rtti, detail::deferred_method_info, detail::method_info> { // Aliases used in implementation only. Everything extracted from template // arguments is capitalized like the arguments themselves. @@ -1065,7 +1125,8 @@ class methodReturnType, Registry> template struct thunk; - friend class generator; + template + struct thunk; method(); method(const method&) = delete; @@ -1111,8 +1172,8 @@ class methodReturnType, Registry> template struct override_impl : std::conditional_t< - Registry::deferred_static_rtti, detail::deferred_overrider_info, - detail::overrider_info> { + Registry::has_deferred_static_rtti, + detail::deferred_overrider_info, detail::overrider_info> { explicit override_impl(FunctionPointer* next = nullptr); void resolve_type_ids(); @@ -1170,25 +1231,26 @@ class methodReturnType, Registry> template< typename Name, typename... Parameters, typename ReturnType, class Registry> -methodReturnType, Registry> - methodReturnType, Registry>::fn; +method + method::fn; template< typename Name, typename... Parameters, typename ReturnType, class Registry> template -typename method< - Name, auto(Parameters...)->ReturnType, Registry>::FunctionPointer - methodReturnType, Registry>::next; +typename method::FunctionPointer + method::next; template constexpr bool is_method = std::is_base_of_v; template< typename Name, typename... Parameters, typename ReturnType, class Registry> -methodReturnType, Registry>::method() { +method::method() { + using namespace policies; + this->slots_strides_ptr = slots_strides; - if constexpr (!Registry::deferred_static_rtti) { + if constexpr (!Registry::has_deferred_static_rtti) { resolve_type_ids(); } @@ -1196,7 +1258,7 @@ methodReturnType, Registry>::method() { this->vp_end = vp_type_ids + Arity; this->not_implemented = reinterpret_cast(fn_not_implemented); - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_n2216) { this->ambiguous = nullptr; } else { this->ambiguous = reinterpret_cast(fn_ambiguous); @@ -1207,8 +1269,7 @@ methodReturnType, Registry>::method() { template< typename Name, typename... Parameters, typename ReturnType, class Registry> -void method< - Name, auto(Parameters...)->ReturnType, Registry>::resolve_type_ids() { +void method::resolve_type_ids() { using namespace detail; this->method_type_id = rtti::template static_type(); this->return_type_id = rtti::template static_type< @@ -1222,32 +1283,29 @@ void method< template< typename Name, typename... Parameters, typename ReturnType, class Registry> -std::size_t methodReturnType, Registry>:: - slots_strides[2 * Arity - 1]; +std::size_t method< + Name, ReturnType(Parameters...), Registry>::slots_strides[2 * Arity - 1]; template< typename Name, typename... Parameters, typename ReturnType, class Registry> -methodReturnType, Registry>::~method() { +method::~method() { Registry::methods.remove(*this); } template< typename Name, typename... Parameters, typename ReturnType, class Registry> template -auto methodReturnType, Registry>:: - check_static_offset(std::size_t actual, std::size_t expected) const - -> void { +auto method::check_static_offset( + std::size_t actual, std::size_t expected) const -> void { using namespace detail; - using error_handler = - typename Registry::template policy; - if constexpr (is_not_void) { + if constexpr (Registry::has_error_handler) { if (actual != expected) { Error error; error.method = Registry::rtti::template static_type(); error.expected = this->slots_strides[0]; error.actual = actual; - error_handler::error(error); + Registry::error_handler::error(error); abort(); } @@ -1260,7 +1318,7 @@ auto methodReturnType, Registry>:: template< typename Name, typename... Parameters, typename ReturnType, class Registry> BOOST_FORCEINLINE auto -methodReturnType, Registry>::operator()( +method::operator()( detail::remove_virtual... args) const -> ReturnType { using namespace detail; auto pf = resolve(parameter_traits::peek(args)...); @@ -1271,10 +1329,10 @@ methodReturnType, Registry>::operator()( template< typename Name, typename... Parameters, typename ReturnType, class Registry> template -BOOST_FORCEINLINE typename method< - Name, auto(Parameters...)->ReturnType, Registry>::FunctionPointer -methodReturnType, Registry>::resolve( - const ArgType&... args) const { +BOOST_FORCEINLINE + typename method::FunctionPointer + method::resolve( + const ArgType&... args) const { using namespace detail; Registry::check_initialized(); @@ -1295,8 +1353,7 @@ methodReturnType, Registry>::resolve( template< typename Name, typename... Parameters, typename ReturnType, class Registry> template -BOOST_FORCEINLINE auto -methodReturnType, Registry>::vptr( +BOOST_FORCEINLINE auto method::vptr( const ArgType& arg) const -> vptr_type { if constexpr (detail::is_virtual_ptr) { return arg.vptr(); @@ -1309,19 +1366,19 @@ template< typename Name, typename... Parameters, typename ReturnType, class Registry> template BOOST_FORCEINLINE auto -methodReturnType, Registry>::resolve_uni( +method::resolve_uni( const ArgType& arg, const MoreArgTypes&... more_args) const -> detail::word { using namespace detail; + using namespace policies; using namespace boost::mp11; if constexpr (is_virtual>::value) { vptr_type vtbl = vptr(arg); if constexpr (has_static_offsets::value) { - if constexpr (Registry::template has_policy< - policies::runtime_checks>) { + if constexpr (Registry::has_runtime_checks) { check_static_offset( static_offsets::slots[0], this->slots_strides[0]); } @@ -1338,7 +1395,7 @@ template< typename Name, typename... Parameters, typename ReturnType, class Registry> template BOOST_FORCEINLINE auto -methodReturnType, Registry>::resolve_multi_first( +method::resolve_multi_first( const ArgType& arg, const MoreArgTypes&... more_args) const -> detail::word { @@ -1351,8 +1408,7 @@ methodReturnType, Registry>::resolve_multi_first( if constexpr (has_static_offsets::value) { slot = static_offsets::slots[0]; - if constexpr (Registry::template has_policy< - policies::runtime_checks>) { + if constexpr (Registry::has_runtime_checks) { check_static_offset( static_offsets::slots[0], this->slots_strides[0]); } @@ -1379,7 +1435,7 @@ template< std::size_t VirtualArg, typename MethodArgList, typename ArgType, typename... MoreArgTypes> BOOST_FORCEINLINE auto -methodReturnType, Registry>::resolve_multi_next( +method::resolve_multi_next( vptr_type dispatch, const ArgType& arg, const MoreArgTypes&... more_args) const -> detail::word { @@ -1393,8 +1449,8 @@ methodReturnType, Registry>::resolve_multi_next( if constexpr (has_static_offsets::value) { slot = static_offsets::slots[VirtualArg]; stride = static_offsets::strides[VirtualArg - 1]; - if constexpr (Registry::template has_policy< - policies::runtime_checks>) { + + if constexpr (Registry::has_runtime_checks) { check_static_offset( this->slots_strides[VirtualArg], slot); check_static_offset( @@ -1423,13 +1479,13 @@ methodReturnType, Registry>::resolve_multi_next( template< typename Name, typename... Parameters, typename ReturnType, class Registry> template -inline auto methodReturnType, Registry>::has_next() +inline auto method::has_next() -> bool { if (next == fn_not_implemented) { return false; } - if constexpr (!Registry::template has_policy) { + if constexpr (!Registry::has_n2216) { if (next == fn_ambiguous) { return false; } @@ -1441,14 +1497,16 @@ inline auto methodReturnType, Registry>::has_next() template< typename Name, typename... Parameters, typename ReturnType, class Registry> BOOST_NORETURN auto -methodReturnType, Registry>::fn_not_implemented( +method::fn_not_implemented( detail::remove_virtual... args) -> ReturnType { - if constexpr (Registry::template has_policy) { + using namespace policies; + + if constexpr (Registry::has_error_handler) { not_implemented_error error; detail::init_call_error::fn( error, detail::parameter_traits::peek(args)...); - Registry::template policy::error(error); + Registry::error_handler::error(error); } abort(); // in case user handler "forgets" to abort @@ -1457,14 +1515,16 @@ methodReturnType, Registry>::fn_not_implemented( template< typename Name, typename... Parameters, typename ReturnType, class Registry> BOOST_NORETURN auto -methodReturnType, Registry>::fn_ambiguous( +method::fn_ambiguous( detail::remove_virtual... args) -> ReturnType { - if constexpr (Registry::template has_policy) { + using namespace policies; + + if constexpr (Registry::has_error_handler) { ambiguous_error error; detail::init_call_error::fn( error, detail::parameter_traits::peek(args)...); - Registry::template policy::error(error); + Registry::error_handler::error(error); } abort(); // in case user handler "forgets" to abort @@ -1483,7 +1543,7 @@ template< typename Name, typename... Parameters, typename ReturnType, class Registry> template< auto Overrider, typename OverriderReturn, typename... OverriderParameters> -auto methodReturnType, Registry>:: +auto method:: thunk::fn( detail::remove_virtual... arg) -> ReturnType { using namespace detail; @@ -1536,7 +1596,7 @@ method::override_impl< overrider_info::method = &fn; - if constexpr (!Registry::deferred_static_rtti) { + if constexpr (!Registry::has_deferred_static_rtti) { resolve_type_ids(); } @@ -1555,7 +1615,7 @@ method::override_impl< template< typename Name, typename... Parameters, typename ReturnType, class Registry> template -void methodReturnType, Registry>::override_impl< +void method::override_impl< Function, FnReturnType>::resolve_type_ids() { using namespace detail; diff --git a/include/boost/openmethod/default_registry.hpp b/include/boost/openmethod/default_registry.hpp index 0c17286..d4bb25e 100644 --- a/include/boost/openmethod/default_registry.hpp +++ b/include/boost/openmethod/default_registry.hpp @@ -22,17 +22,13 @@ struct release_registry policies::stderr_output> {}; struct debug_registry - : registry< - policies::std_rtti, policies::fast_perfect_hash, - policies::vptr_vector, policies::default_error_handler, - policies::runtime_checks, policies::stderr_output, policies::trace> { -}; + : release_registry::with {}; #ifdef NDEBUG using default_registry = release_registry; #else using default_registry = debug_registry; -#endif // BOOST_OPENMETHOD_DEFAULT_REGISTRY_HPP +#endif } // namespace boost::openmethod diff --git a/include/boost/openmethod/detail/mrdocs.hpp b/include/boost/openmethod/detail/mrdocs.hpp new file mode 100644 index 0000000..21dad75 --- /dev/null +++ b/include/boost/openmethod/detail/mrdocs.hpp @@ -0,0 +1,82 @@ +#ifndef BOOST_OPENMETHOD_DETAIL_MRDOCS_HPP +#define BOOST_OPENMETHOD_DETAIL_MRDOCS_HPP + +#include +#include + +namespace boost::openmethod { + +template +class method; + +template< + typename Name, typename... Parameters, typename ReturnType, class Registry> +class method; + +template +struct use_classes; + +template +struct virtual_; + +template +class virtual_ptr; + +namespace detail { +template +struct is_smart_ptr_aux; +} + +template +constexpr bool is_smart_ptr = + detail::is_smart_ptr_aux::value; + +template +class virtual_ptr< + Class, Registry, std::enable_if_t>>; + +template +using shared_virtual_ptr = virtual_ptr, Registry, void>; + +struct openmethod_error; +struct not_initialized_error; +struct unknown_class_error; +struct hash_search_error; +struct call_error; +struct not_implemented_error; +struct ambiguous_error; +struct final_error; +struct static_offset_error; +struct static_slot_error; +struct static_stride_error; + +template +struct virtual_traits; + +template +struct virtual_traits; + +template +struct virtual_traits; + +template +struct virtual_traits; + +template +struct virtual_traits, Registry>; + +template +struct virtual_traits&, Registry>; + +template +struct virtual_traits&, Registry>; + +template +struct virtual_traits, Registry>; + +template +struct virtual_traits, Registry>; + +} // namespace boost::openmethod + +#endif // BOOST_OPENMETHOD_DETAIL_MRDOCS_HPP diff --git a/include/boost/openmethod/detail/ostdstream.hpp b/include/boost/openmethod/detail/ostdstream.hpp index dff2fa6..e2010f4 100644 --- a/include/boost/openmethod/detail/ostdstream.hpp +++ b/include/boost/openmethod/detail/ostdstream.hpp @@ -21,15 +21,15 @@ namespace detail { struct ostdstream { FILE* stream = nullptr; - ostdstream(FILE* stream = nullptr) : stream(stream) { + ostdstream(FILE* s = nullptr) : stream(s) { } - void on(FILE* stream = stderr) { - this->stream = stream; + void on(FILE* s = stderr) { + this->stream = s; } void off() { - this->stream = nullptr; + stream = nullptr; } auto is_on() const -> bool { diff --git a/include/boost/openmethod/detail/trace.hpp b/include/boost/openmethod/detail/trace.hpp index d49798e..ccca573 100644 --- a/include/boost/openmethod/detail/trace.hpp +++ b/include/boost/openmethod/detail/trace.hpp @@ -37,7 +37,7 @@ struct trace_type { auto operator++() -> trace_type& { if constexpr (Registry::has_trace) { - if (Registry::trace::trace_enabled) { + if (Registry::trace::on) { for (std::size_t i = 0; i < indentation_level; ++i) { Registry::output::os << " "; } @@ -64,7 +64,7 @@ struct trace_type { template auto write_range(trace_type& trace, range range, F fn) -> auto& { if constexpr (Registry::has_trace) { - if (Registry::trace::trace_enabled) { + if (Registry::trace::on) { trace << "("; const char* sep = ""; for (auto value : range) { @@ -82,7 +82,7 @@ auto write_range(trace_type& trace, range range, F fn) -> auto& { template auto operator<<(trace_type& trace, const T& value) -> auto& { if constexpr (Registry::has_trace) { - if (Registry::trace::trace_enabled) { + if (Registry::trace::on) { Registry::output::os << value; } } @@ -92,7 +92,7 @@ auto operator<<(trace_type& trace, const T& value) -> auto& { template auto operator<<(trace_type& trace, const rflush& rf) -> auto& { if constexpr (Registry::has_trace) { - if (Registry::trace::trace_enabled) { + if (Registry::trace::on) { std::size_t digits = 1; auto tmp = rf.value / 10; @@ -117,7 +117,7 @@ template auto operator<<( trace_type& trace, const boost::dynamic_bitset<>& bits) -> auto& { if constexpr (Registry::has_trace) { - if (Registry::trace::trace_enabled) { + if (Registry::trace::on) { auto i = bits.size(); while (i != 0) { --i; diff --git a/include/boost/openmethod/detail/types.hpp b/include/boost/openmethod/detail/types.hpp index 65e77ee..4293dcc 100644 --- a/include/boost/openmethod/detail/types.hpp +++ b/include/boost/openmethod/detail/types.hpp @@ -8,8 +8,20 @@ #include +#ifdef __MRDOCS__ +#include +#endif + #include +#if BOOST_CXX_VERSION >= 202002L +#define BOOST_OPENMETHOD_DETAIL_CXX17(...) +#define BOOST_OPENMETHOD_DETAIL_CXX20(...) __VA_ARGS__ +#else +#define BOOST_OPENMETHOD_DETAIL_CXX17(...) __VA_ARGS__ +#define BOOST_OPENMETHOD_DETAIL_CXX20(...) +#endif + namespace boost::openmethod { namespace detail { @@ -49,9 +61,6 @@ using type_id = const void*; template struct virtual_; -template -class virtual_ptr; - template struct virtual_traits; diff --git a/include/boost/openmethod/compiler.hpp b/include/boost/openmethod/initialize.hpp similarity index 83% rename from include/boost/openmethod/compiler.hpp rename to include/boost/openmethod/initialize.hpp index a0124c7..39cb311 100644 --- a/include/boost/openmethod/compiler.hpp +++ b/include/boost/openmethod/initialize.hpp @@ -164,6 +164,19 @@ struct generic_compiler { method_report report; }; + const method* + operator[](const detail::method_info& info) const { + auto iter = std::find_if( + methods.begin(), methods.end(), [&info](const method& m) { + return m.info == &info; + }); + + if (iter != methods.end()) { + return &*iter; + } + + return nullptr; + } std::deque classes; std::vector methods; std::size_t class_mark = 0; @@ -174,7 +187,7 @@ template auto operator<<( trace_type& trace, const generic_compiler::class_& cls) -> trace_type& { - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_trace) { trace << type_name(cls.type_ids[0]); } @@ -226,13 +239,12 @@ auto operator<<(trace_type& trace, const spec_name& sn) } // namespace detail -template -struct compiler : detail::generic_compiler { - using type_index_type = - decltype(Registry::template policy::type_index(0)); +template +struct registry::compiler : detail::generic_compiler { + using type_index_type = decltype(rtti::type_index(0)); - typename detail::aggregate_reports< - mp11::mp_list, typename Registry::policy_list>::type report; + typename detail::aggregate_reports, policy_list>::type + report; std::unordered_map class_map; @@ -263,16 +275,12 @@ struct compiler : detail::generic_compiler { -> bool; static auto is_base(const overrider* a, const overrider* b) -> bool; - mutable detail::trace_type trace; - static constexpr bool trace_enabled = - Registry::template has_policy; - using indent = typename detail::trace_type::indent; + mutable detail::trace_type trace; + using indent = typename detail::trace_type::indent; }; -compiler() -> compiler; - -template -void compiler::install_global_tables() { +template +void registry::compiler::install_global_tables() { if (!compilation_done) { abort(); } @@ -283,8 +291,8 @@ void compiler::install_global_tables() { ++trace << "Finished\n"; } -template -auto compiler::compile() { +template +auto registry::compiler::compile() { augment_classes(); augment_methods(); assign_slots(); @@ -295,22 +303,23 @@ auto compiler::compile() { return report; } -template -auto compiler::initialize() { +template +auto registry::compiler::initialize() { compile(); install_global_tables(); - Registry::initialized = true; + registry::initialized = true; return *this; } -template -compiler::compiler() { +template +registry::compiler::compiler() { } -template -void compiler::collect_transitive_bases(class_* cls, class_* base) { +template +void registry::compiler::collect_transitive_bases( + class_* cls, class_* base) { if (base->mark == class_mark) { return; } @@ -323,8 +332,8 @@ void compiler::collect_transitive_bases(class_* cls, class_* base) { } } -template -void compiler::augment_classes() { +template +void registry::compiler::augment_classes() { using namespace detail; // scope @@ -334,8 +343,8 @@ void compiler::augment_classes() { // The standard does not guarantee that there is exactly one // type_info object per class. However, it guarantees that the // type_index for a class has a unique value. - for (auto& cr : Registry::classes) { - if constexpr (Registry::deferred_static_rtti) { + for (auto& cr : registry::classes) { + if constexpr (has_deferred_static_rtti) { static_cast(cr).resolve_type_ids(); } @@ -345,9 +354,7 @@ void compiler::augment_classes() { << range{cr.first_base, cr.last_base} << "\n"; } - auto& rtc = - class_map[Registry::template policy::type_index( - cr.type)]; + auto& rtc = class_map[rtti::type_index(cr.type)]; if (rtc == nullptr) { rtc = &classes.emplace_back(); @@ -366,24 +373,18 @@ void compiler::augment_classes() { // All known classes now have exactly one associated class_* in the // map. Collect the bases. - for (auto& cr : Registry::classes) { - auto rtc = - class_map[Registry::template policy::type_index( - cr.type)]; + for (auto& cr : registry::classes) { + auto rtc = class_map[rtti::type_index(cr.type)]; for (auto& base : range{cr.first_base, cr.last_base}) { - auto rtb = - class_map[Registry::template policy::type_index( - base)]; + auto rtb = class_map[rtti::type_index(base)]; if (!rtb) { unknown_class_error error; error.type = base; - if constexpr (Registry::template has_policy< - policies::error_handler>) { - Registry::template policy::error( - error); + if constexpr (has_error_handler) { + error_handler::error(error); } abort(); @@ -455,7 +456,7 @@ void compiler::augment_classes() { calculate_transitive_derived(rtc); } - if constexpr (trace_enabled) { + if constexpr (has_trace) { ++trace << "Inheritance lattice:\n"; for (auto& rtc : classes) { @@ -472,8 +473,9 @@ void compiler::augment_classes() { } } -template -void compiler::calculate_transitive_derived(class_& cls) { +template +void registry::compiler::calculate_transitive_derived( + class_& cls) { if (!cls.transitive_derived.empty()) { return; } @@ -493,20 +495,20 @@ void compiler::calculate_transitive_derived(class_& cls) { } } -template -void compiler::augment_methods() { +template +void registry::compiler::augment_methods() { using namespace policies; using namespace detail; - methods.resize(Registry::methods.size()); + methods.resize(registry::methods.size()); ++trace << "Methods:\n"; indent _(trace); auto meth_iter = methods.begin(); - for (auto& meth_info : Registry::methods) { - if constexpr (Registry::deferred_static_rtti) { + for (auto& meth_info : registry::methods) { + if constexpr (has_deferred_static_rtti) { static_cast(meth_info).resolve_type_ids(); } @@ -521,19 +523,15 @@ void compiler::augment_methods() { std::size_t param_index = 0; for (auto ti : range{meth_info.vp_begin, meth_info.vp_end}) { - auto class_ = - class_map[Registry::template policy::type_index( - ti)]; + auto class_ = class_map[rtti::type_index(ti)]; if (!class_) { ++trace << "unknown class " << ti << "(" << type_name(ti) << ") for parameter #" << (param_index + 1) << "\n"; unknown_class_error error; error.type = ti; - if constexpr (Registry::template has_policy< - policies::error_handler>) { - Registry::template policy::error( - error); + if constexpr (has_error_handler) { + error_handler::error(error); } abort(); @@ -542,14 +540,10 @@ void compiler::augment_methods() { meth_iter->vp.push_back(class_); } - if (Registry::template policy::type_index( - meth_info.return_type_id) != - Registry::template policy::type_index( - Registry::template policy::template static_type< - void>())) { - auto covariant_return_iter = class_map.find( - Registry::template policy::type_index( - meth_info.return_type_id)); + if (rtti::type_index(meth_info.return_type_id) != + rtti::type_index(rtti::template static_type())) { + auto covariant_return_iter = + class_map.find(rtti::type_index(meth_info.return_type_id)); if (covariant_return_iter != class_map.end()) { meth_iter->covariant_return_type = @@ -572,7 +566,7 @@ void compiler::augment_methods() { auto spec_iter = meth_iter->specs.begin(); for (auto& overrider_info : meth_info.specs) { - if constexpr (Registry::deferred_static_rtti) { + if constexpr (has_deferred_static_rtti) { static_cast(overrider_info) .resolve_type_ids(); } @@ -589,8 +583,7 @@ void compiler::augment_methods() { for (auto type : range{overrider_info.vp_begin, overrider_info.vp_end}) { indent _(trace); - auto class_ = class_map[Registry::template policy< - policies::rtti>::type_index(type)]; + auto class_ = class_map[rtti::type_index(type)]; if (!class_) { ++trace << "unknown class error for *virtual* parameter #" @@ -598,10 +591,8 @@ void compiler::augment_methods() { unknown_class_error error; error.type = type; - if constexpr (Registry::template has_policy< - policies::error_handler>) { - Registry::template policy< - policies::error_handler>::error(error); + if constexpr (has_error_handler) { + error_handler::error(error); } abort(); @@ -613,8 +604,7 @@ void compiler::augment_methods() { if (meth_iter->covariant_return_type) { auto covariant_return_iter = class_map.find( - Registry::template policy::type_index( - overrider_info.return_type)); + rtti::type_index(overrider_info.return_type)); if (covariant_return_iter != class_map.end()) { spec_iter->covariant_return_type = @@ -623,10 +613,8 @@ void compiler::augment_methods() { unknown_class_error error; error.type = overrider_info.return_type; - if constexpr (Registry::template has_policy< - policies::error_handler>) { - Registry::template policy< - policies::error_handler>::error(error); + if constexpr (has_error_handler) { + error_handler::error(error); } abort(); @@ -648,8 +636,8 @@ void compiler::augment_methods() { } } -template -void compiler::assign_slots() { +template +void registry::compiler::assign_slots() { ++trace << "Allocating slots...\n"; { @@ -695,8 +683,9 @@ void compiler::assign_slots() { } } -template -void compiler::assign_tree_slots(class_& cls, std::size_t base_slot) { +template +void registry::compiler::assign_tree_slots( + class_& cls, std::size_t base_slot) { auto next_slot = base_slot; using namespace detail; @@ -715,8 +704,8 @@ void compiler::assign_tree_slots(class_& cls, std::size_t base_slot) { } } -template -void compiler::assign_lattice_slots(class_& cls) { +template +void registry::compiler::assign_lattice_slots(class_& cls) { using namespace detail; if (cls.mark == class_mark) { @@ -791,8 +780,8 @@ void compiler::assign_lattice_slots(class_& cls) { } } -template -void compiler::build_dispatch_tables() { +template +void registry::compiler::build_dispatch_tables() { using namespace detail; for (auto& m : methods) { @@ -918,8 +907,8 @@ void compiler::build_dispatch_tables() { } } -template -void compiler::build_dispatch_table( +template +void registry::compiler::build_dispatch_table( method& m, std::size_t dim, std::vector::const_iterator group_iter, const bitvec& candidates, bool concrete) { @@ -931,7 +920,7 @@ void compiler::build_dispatch_table( for (const auto& [group_mask, group] : *group_iter) { auto mask = candidates & group_mask; - if constexpr (trace_enabled) { + if constexpr (has_trace) { ++trace << "group " << dim << "/" << group_index << " mask " << mask << "\n"; indent _(trace); @@ -951,7 +940,7 @@ void compiler::build_dispatch_table( ++i; } - if constexpr (trace_enabled) { + if constexpr (has_trace) { ++trace << "select best of:\n"; indent _(trace); @@ -972,7 +961,7 @@ void compiler::build_dispatch_table( m.dispatch_table.push_back(&m.not_implemented); ++m.report.not_implemented; } else { - if constexpr (!Registry::template has_policy) { + if constexpr (!has_n2216) { if (remaining > 1) { ++trace << "ambiguous\n"; m.dispatch_table.push_back(&m.ambiguous); @@ -1019,7 +1008,7 @@ void compiler::build_dispatch_table( ++trace << "no 'next'\n"; overrider->next = &m.not_implemented; } else { - if constexpr (trace_enabled) { + if constexpr (has_trace) { ++trace << "for 'next', select best of:\n"; indent _(trace); @@ -1033,8 +1022,7 @@ void compiler::build_dispatch_table( select_dominant_overriders(candidates, pick, remaining); - if constexpr (!Registry::template has_policy< - policies::n2216>) { + if constexpr (!has_n2216) { if (remaining > 1) { ++trace << "ambiguous 'next'\n"; overrider->next = &m.ambiguous; @@ -1074,8 +1062,8 @@ inline void detail::generic_compiler::accumulate( total.ambiguous += partial.ambiguous != 0; } -template -void compiler::write_global_data() { +template +void registry::compiler::write_global_data() { using namespace policies; using namespace detail; @@ -1086,9 +1074,9 @@ void compiler::write_global_data() { classes.begin(), classes.end(), dispatch_data_size, [](auto sum, auto& cls) { return sum + cls.vtbl.size(); }); - Registry::dispatch_data.resize(dispatch_data_size); - auto gv_first = Registry::dispatch_data.data(); - [[maybe_unused]] auto gv_last = gv_first + Registry::dispatch_data.size(); + dispatch_data.resize(dispatch_data_size); + auto gv_first = dispatch_data.data(); + [[maybe_unused]] auto gv_last = gv_first + dispatch_data.size(); auto gv_iter = gv_first; ++trace << "Initializing multi-method dispatch tables at " << gv_iter @@ -1103,8 +1091,8 @@ void compiler::write_global_data() { m.slots.begin(), m.slots.end(), m.info->slots_strides_ptr); std::copy(m.strides.begin(), m.strides.end(), strides_iter); - if constexpr (trace_enabled) { - ++trace << rflush(4, Registry::dispatch_data.size()) << " " + if constexpr (has_trace) { + ++trace << rflush(4, dispatch_data.size()) << " " << " method #" << m.dispatch_table[0]->method_index << " " << type_name(m.info->method_type_id) << "\n"; indent _(trace); @@ -1188,17 +1176,15 @@ void compiler::write_global_data() { } } - ++trace << rflush(4, Registry::dispatch_data.size()) << " " << gv_iter - << " end\n"; + ++trace << rflush(4, dispatch_data.size()) << " " << gv_iter << " end\n"; - if constexpr (Registry::template has_policy) { - Registry::template policy::register_vptrs( - classes.begin(), classes.end()); + if constexpr (has_vptr) { + vptr::initialize(classes.begin(), classes.end()); } } -template -void compiler::select_dominant_overriders( +template +void registry::compiler::select_dominant_overriders( std::vector& candidates, std::size_t& pick, std::size_t& remaining) { @@ -1229,42 +1215,42 @@ void compiler::select_dominant_overriders( return; } - if constexpr (!Registry::template has_policy) { - return; - } + if constexpr (has_n2216) { + if (!candidates[pick]->covariant_return_type) { + return; + } - if (!candidates[pick]->covariant_return_type) { - return; - } + remaining = 0; - remaining = 0; + for (size_t i = 0; i < candidates.size(); ++i) { + if (candidates[i]) { + for (size_t j = i + 1; j < candidates.size(); ++j) { + if (candidates[j]) { + BOOST_ASSERT(candidates[i] != candidates[j]); - for (size_t i = 0; i < candidates.size(); ++i) { - if (candidates[i]) { - for (size_t j = i + 1; j < candidates.size(); ++j) { - if (candidates[j]) { - BOOST_ASSERT(candidates[i] != candidates[j]); - - if (candidates[i]->covariant_return_type->is_base_of( - candidates[j]->covariant_return_type)) { - candidates[i] = nullptr; - } else if (candidates[j]->covariant_return_type->is_base_of( - candidates[i]->covariant_return_type)) { - candidates[j] = nullptr; + if (candidates[i]->covariant_return_type->is_base_of( + candidates[j]->covariant_return_type)) { + candidates[i] = nullptr; + } else if (candidates[j] + ->covariant_return_type->is_base_of( + candidates[i] + ->covariant_return_type)) { + candidates[j] = nullptr; + } } } } - } - if (candidates[i]) { - pick = i; - ++remaining; + if (candidates[i]) { + pick = i; + ++remaining; + } } } } -template -auto compiler::is_more_specific( +template +auto registry::compiler::is_more_specific( const overrider* a, const overrider* b) -> bool { bool result = false; @@ -1286,9 +1272,9 @@ auto compiler::is_more_specific( return result; } -template -auto compiler::is_base(const overrider* a, const overrider* b) - -> bool { +template +auto registry::compiler::is_base( + const overrider* a, const overrider* b) -> bool { bool result = false; auto a_iter = a->vp.begin(), a_last = a->vp.end(), b_iter = b->vp.begin(); @@ -1307,8 +1293,8 @@ auto compiler::is_base(const overrider* a, const overrider* b) return result; } -template -void compiler::print(const method_report& report) const { +template +void registry::compiler::print(const method_report& report) const { ++trace; if (report.cells) { @@ -1320,12 +1306,16 @@ void compiler::print(const method_report& report) const { << " ambiguous\n"; } -template -auto initialize() -> compiler { - compiler compiler; - compiler.initialize(); +template +auto registry::initialize() { + compiler comp; + comp.initialize(); - return compiler; + return comp; +} + +auto initialize() { + return BOOST_OPENMETHOD_DEFAULT_REGISTRY::initialize(); } namespace detail { @@ -1339,17 +1329,22 @@ struct has_finalize_aux> } // namespace detail -template -auto finalize() -> void { - mp11::mp_for_each([](auto policy) { - using fn = typename decltype(policy)::template fn< - typename Registry::registry_type>; +template +auto registry::finalize() -> void { + mp11::mp_for_each([](auto policy) { + using fn = typename decltype(policy)::template fn; if constexpr (detail::has_finalize_aux::value) { fn::finalize(); } }); - Registry::dispatch_data.clear(); + dispatch_data.clear(); + initialized = false; +} + +template +auto finalize() -> void { + Registry::finalize(); } } // namespace boost::openmethod diff --git a/include/boost/openmethod/inplace_vptr.hpp b/include/boost/openmethod/inplace_vptr.hpp index 3218fa7..6e27fdb 100644 --- a/include/boost/openmethod/inplace_vptr.hpp +++ b/include/boost/openmethod/inplace_vptr.hpp @@ -37,7 +37,7 @@ void update_vptr(Class* obj) { using bases = decltype(boost_openmethod_bases(obj)); if constexpr (mp11::mp_size::value == 0) { - if constexpr (registry::indirect_vptr) { + if constexpr (registry::has_indirect_vptr) { obj->boost_openmethod_vptr = ®istry::template static_vptr; } else { obj->boost_openmethod_vptr = registry::template static_vptr; @@ -78,7 +78,7 @@ class inplace_vptr_aux { friend auto boost_openmethod_vptr(const Class& obj, Registry*) -> vptr_type { - if constexpr (Registry::indirect_vptr) { + if constexpr (Registry::has_indirect_vptr) { return *obj.boost_openmethod_vptr; } else { return obj.boost_openmethod_vptr; @@ -87,7 +87,7 @@ class inplace_vptr_aux { friend auto boost_openmethod_registry(Class*) -> Registry; - std::conditional_t + std::conditional_t boost_openmethod_vptr = nullptr; }; @@ -116,17 +116,16 @@ template class inplace_vptr; template -class inplace_vptr - : public detail::inplace_vptr_aux< - Class, BOOST_OPENMETHOD_DEFAULT_REGISTRY, true> {}; +struct inplace_vptr + : detail::inplace_vptr_aux { +}; template -class inplace_vptr - : public detail::inplace_vptr_aux< - Class, Other, detail::is_registry> {}; +struct inplace_vptr + : detail::inplace_vptr_aux> {}; template -class inplace_vptr +struct inplace_vptr : detail::inplace_vptr_derived { static_assert( diff --git a/include/boost/openmethod/policies/default_error_handler.hpp b/include/boost/openmethod/policies/default_error_handler.hpp index 89ee3b0..0b6e20c 100644 --- a/include/boost/openmethod/policies/default_error_handler.hpp +++ b/include/boost/openmethod/policies/default_error_handler.hpp @@ -13,22 +13,58 @@ namespace boost::openmethod::policies { +//! Calls a std::function with the error. +//! +//! Wraps the error in a @ref std::variant, and calls a `std::function` with it. +//! The function object is initialized to a function (@ref default_handler) that +//! writes a description of the error, using the @ref output policy, if it is +//! available in the registry. +//! +//! This is the error handler used by the default registry. In debug variants, +//! it writes an error message to `stderr`, then returns. In release variants, +//! no message is emitted. Any call by the library to the error policy is +//! immediately followed by a call to @ref abort. +//! +//! By default, the library is exception-agnostic: it is exception-safe, but it +//! does not throw exceptions by itself. The program may replace the default +//! handler with a function that throws an exception, possibly preventing +//! program termination. The @ref throw_error_handler policy can also be used to +//! enable exception throwing on a registry basis. + struct default_error_handler : error_handler { + //! A @ref std::variant containing an instance of a subclass of @ref + //! openmethod_error. using error_variant = std::variant< not_initialized_error, not_implemented_error, ambiguous_error, unknown_class_error, hash_search_error, final_error, static_slot_error, static_stride_error>; + //! The type of the error handler function object. using function_type = std::function; + //! A model of @ref error_handler::fn. + //! + //! @tparam Registry The registry containing this policy. template class fn { public: + //! Calls a function with the error object, wrapped in an @ref + //! error_variant. + //! + //! @tparam Error A subclass of @ref openmethod_error. + //! @param error The error object. template static auto error(const Error& error) -> void { handler(error_variant(error)); } + //! Sets the function to be called to handle errors. + //! + //! Sets the error handler function to a new value, and returns the + //! previous function. + //! + //! @param new_handler the new function. + //! @return The previous function. static auto set(function_type new_handler) -> function_type { auto prev = handler; handler = new_handler; @@ -36,8 +72,14 @@ struct default_error_handler : error_handler { return prev; } + //! The default error handler function. + //! + //! @param error A variant containing the error. + //! + //! If `Registry` contains an @ref output policy, writes a description + //! of the error; otherwise, does nothing. static auto default_handler(const error_variant& error) -> void { - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_output) { std::visit( [](auto&& error) { error.template write(Registry::output::os); diff --git a/include/boost/openmethod/policies/fast_perfect_hash.hpp b/include/boost/openmethod/policies/fast_perfect_hash.hpp index 4696266..042b25b 100644 --- a/include/boost/openmethod/policies/fast_perfect_hash.hpp +++ b/include/boost/openmethod/policies/fast_perfect_hash.hpp @@ -22,37 +22,52 @@ std::vector fast_perfect_hash_control; namespace policies { +//! Hashes a @ref type_id using a fast, perfect hash function. +//! +//! `fast_perfect_hash` implements the @ref type_hash policy using a hash +//! function in the form `H(x)=(M*x)>>S`. It attempts to determine values for +//! `M` and `S` that do not result in collisions for the set of registered +//! type_ids. This may fail for certain sets of inputs, although it is very +//! likely to succeed for addresses of `std::type_info` objects. +//! +//! There is no guarantee that every value in the codomain of the function +//! corresponds to a value in the domain, or even that the codomain is a dense +//! range of integers. In other words, a lot of space may be wasted in presence +//! of large sets of type_ids. struct fast_perfect_hash : type_hash { + //! A model of @ref type_hash::fn. + //! + //! @tparam Registry The registry containing this policy. template - struct fn { - - inline static std::size_t hash_mult; - inline static std::size_t hash_shift; - inline static std::size_t hash_min; - inline static std::size_t hash_max; + class fn { + inline static std::size_t mult; + inline static std::size_t shift; + inline static std::size_t min_value; + inline static std::size_t max_value; inline static void check(std::size_t index, type_id type); + template + static void initialize( + ForwardIterator first, ForwardIterator last, + std::vector& buckets); + public: - struct report { - std::size_t first, last; - }; - - BOOST_FORCEINLINE - static auto hash(type_id type) -> std::size_t { - auto index = - (hash_mult * reinterpret_cast(type)) >> - hash_shift; - - if constexpr (Registry::template has_policy) { - check(index, type); - } - - return index; - } - + //! Finds the hash factors. + //! + //! Attempts to find suitable values for the multiplication factor `M` + //! and the shift amount `S` to that do not result in collisions for the + //! specified input values. + //! + //! If no suitable values are found, calls the error handler with + //! a @ref hash_error object then calls `abort`. + //! + //! @tparam ForwardIterator A forward iterator yielding + //! @ref IdsToVptr objects. + //! @param first The beginning of the range. + //! @param last The end of the range. template static auto initialize(ForwardIterator first, ForwardIterator last) { - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_runtime_checks) { initialize( first, last, detail::fast_perfect_hash_control); } else { @@ -60,14 +75,35 @@ struct fast_perfect_hash : type_hash { initialize(first, last, buckets); } - return report{hash_min, hash_max}; + return std::pair{min_value, max_value}; } - template - static void initialize( - ForwardIterator first, ForwardIterator last, - std::vector& buckets); + //! Hashes a type id. + //! + //! Hashes a type id. + //! + //! If `Registry` contains the @ref runtime_checks policy, checks that + //! the type id is valid, i.e. if it was present in the set passed to + //! @ref initialize. Its absence indicates that a class involved in a + //! method definition, method overrider, or method call was not + //! registered. In this case, signal a @ref unknown_class_error using + //! the registry's @ref error_handler if present; then calls `abort`. + //! + //! @param type The type_id to hash. + //! @return The hash value. + BOOST_FORCEINLINE + static auto hash(type_id type) -> std::size_t { + auto index = + (mult * reinterpret_cast(type)) >> shift; + if constexpr (Registry::has_runtime_checks) { + check(index, type); + } + + return index; + } + + //! Releases the memory allocated by `initialize`. static auto finalize() -> void { detail::fast_perfect_hash_control.clear(); } @@ -81,13 +117,12 @@ void fast_perfect_hash::fn::initialize( std::vector& buckets) { using namespace policies; - constexpr bool trace_enabled = Registry::template has_policy; const auto N = std::distance(first, last); - if constexpr (trace_enabled) { - if (Registry::template policy::trace_enabled) { - Registry::template policy::os - << "Finding hash factor for " << N << " types\n"; + if constexpr (Registry::has_trace && Registry::has_output) { + if (Registry::trace::on) { + Registry::output::os << "Finding hash factor for " << N + << " types\n"; } } @@ -102,16 +137,15 @@ void fast_perfect_hash::fn::initialize( std::uniform_int_distribution uniform_dist; for (std::size_t pass = 0; pass < 4; ++pass, ++M) { - hash_shift = 8 * sizeof(type_id) - M; + shift = 8 * sizeof(type_id) - M; auto hash_size = 1 << M; - hash_min = (std::numeric_limits::max)(); - hash_max = (std::numeric_limits::min)(); + min_value = (std::numeric_limits::max)(); + max_value = (std::numeric_limits::min)(); - if constexpr (trace_enabled) { - if (Registry::template policy::trace_enabled) { - Registry::template policy::os - << " trying with M = " << M << ", " << hash_size - << " buckets\n"; + if constexpr (Registry::has_trace && Registry::has_output) { + if (Registry::trace::on) { + Registry::output::os << " trying with M = " << M << ", " + << hash_size << " buckets\n"; } } @@ -123,16 +157,15 @@ void fast_perfect_hash::fn::initialize( buckets.begin(), buckets.end(), type_id(detail::uintptr_max)); ++attempts; ++total_attempts; - hash_mult = uniform_dist(rnd) | 1; + mult = uniform_dist(rnd) | 1; for (auto iter = first; iter != last; ++iter) { for (auto type_iter = iter->type_id_begin(); type_iter != iter->type_id_end(); ++type_iter) { auto type = *type_iter; - auto index = - (detail::uintptr(type) * hash_mult) >> hash_shift; - hash_min = (std::min)(hash_min, index); - hash_max = (std::max)(hash_max, index); + auto index = (detail::uintptr(type) * mult) >> shift; + min_value = (std::min)(min_value, index); + max_value = (std::max)(max_value, index); if (detail::uintptr(buckets[index]) != detail::uintptr_max) { @@ -143,12 +176,12 @@ void fast_perfect_hash::fn::initialize( } } - if constexpr (trace_enabled) { - if (Registry::template policy::trace_enabled) { - Registry::template policy::os - << " found " << hash_mult << " after " - << total_attempts << " attempts; span = [" << hash_min - << ", " << hash_max << "]\n"; + if constexpr (Registry::has_trace && Registry::has_output) { + if (Registry::trace::on) { + Registry::output::os + << " found " << mult << " after " << total_attempts + << " attempts; span = [" << min_value << ", " + << max_value << "]\n"; } } @@ -162,8 +195,8 @@ void fast_perfect_hash::fn::initialize( error.attempts = total_attempts; error.buckets = std::size_t(1) << M; - if constexpr (Registry::template has_policy) { - Registry::template policy::error(error); + if constexpr (Registry::has_error_handler) { + Registry::error_handler::error(error); } abort(); @@ -171,12 +204,13 @@ void fast_perfect_hash::fn::initialize( template void fast_perfect_hash::fn::check(std::size_t index, type_id type) { - if (index < hash_min || index > hash_max || + if (index < min_value || index > max_value || detail::fast_perfect_hash_control[index] != type) { - if constexpr (Registry::template has_policy) { + + if constexpr (Registry::has_error_handler) { unknown_class_error error; error.type = type; - Registry::template policy::error(error); + Registry::error_handler::error(error); } abort(); diff --git a/include/boost/openmethod/policies/minimal_rtti.hpp b/include/boost/openmethod/policies/minimal_rtti.hpp deleted file mode 100644 index 9fa443c..0000000 --- a/include/boost/openmethod/policies/minimal_rtti.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2018-2025 Jean-Louis Leroy -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt -// or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_OPENMETHOD_POLICY_MINIMAL_RTTI_HPP -#define BOOST_OPENMETHOD_POLICY_MINIMAL_RTTI_HPP - -#include - -namespace boost::openmethod::policies { - -struct minimal_rtti : virtual rtti { - template - static constexpr bool is_polymorphic = false; - - template - static auto static_type() -> type_id { - static char id; - return &id; - } -}; - -} // namespace boost::openmethod::policies - -#endif diff --git a/include/boost/openmethod/policies/static_rtti.hpp b/include/boost/openmethod/policies/static_rtti.hpp new file mode 100644 index 0000000..01ecbe7 --- /dev/null +++ b/include/boost/openmethod/policies/static_rtti.hpp @@ -0,0 +1,49 @@ +// Copyright (c) 2018-2025 Jean-Louis Leroy +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_OPENMETHOD_POLICY_MINIMAL_RTTI_HPP +#define BOOST_OPENMETHOD_POLICY_MINIMAL_RTTI_HPP + +#include + +namespace boost::openmethod::policies { + +//! Minimal implementation of the `rtti` policy. +//! +//! `static_rtti` implements only the static parts of the `rtti` policy. It uses +//! the addresses of a per-class static variables as a `type_id`. It categorizes +//! all types as non-polymorphic. As a consequence, the `virtual_ptr` +//! constructors that take a pointer or a reference to a polymorphic object are +//! disabled. `virtual_ptr` must be constructed using @ref final_virtual_ptr (or +//! its equivalents for smart pointers). +//! +//! @par Example +//! TODO +//! include::example$static_rtti.cpp[tag=all] +struct static_rtti : rtti { + //! A (partial) model of @ref rtti::fn. + //! + //! @tparam Registry The registry containing this policy. + template + struct fn : rtti::defaults { + //! Always evaluates to `false`. + //! @tparam Class A class. + template + static constexpr bool is_polymorphic = false; + + //! Returns the @ref type_id of `Class`. + //! + //! @tparam Class A class. + template + static auto static_type() -> type_id { + static char id; + return &id; + } + }; +}; + +} // namespace boost::openmethod::policies + +#endif diff --git a/include/boost/openmethod/policies/std_rtti.hpp b/include/boost/openmethod/policies/std_rtti.hpp index 2499cc8..e0fd6af 100644 --- a/include/boost/openmethod/policies/std_rtti.hpp +++ b/include/boost/openmethod/policies/std_rtti.hpp @@ -16,42 +16,95 @@ namespace boost::openmethod::policies { +//! Implements the @ref rtti policy using standard RTTI. +//! +//! `std_rtti` implements the `rtti` policy using the standard C++ RTTI system. +//! It is the default RTTI policy. struct std_rtti : rtti { -#ifndef BOOST_NO_RTTI - + //! A model of @ref rtti::fn. + //! + //! @tparam Registry The registry containing this policy. template struct fn { +#ifndef BOOST_NO_RTTI + //! Tests if a class is polymorphic. + //! + //! Evaluates to `true` if `Class` is a polymorphic class, as defined by + //! the C++ standard, i.e. a class that contains at least one virtual + //! function. + //! + //! @tparam Class A class. template static constexpr bool is_polymorphic = std::is_polymorphic_v; + //! Returns the static @ref type_id of a type. + //! + //! Returns `&typeid(Class)`, cast to `type_id`. + //! + //! @tparam Class A class. + //! @return The static type_id of Class. template static auto static_type() -> type_id { return &typeid(Class); } + //! Returns the dynamic @ref type_id of an object. + //! + //! Returns `&typeid(obj)`, cast to `type_id`. + //! + //! @tparam Class A registered class. + //! @param obj A reference to an instance of `Class`. + //! @return The type_id of `obj`'s class. template static auto dynamic_type(const Class& obj) -> type_id { return &typeid(obj); } + //! Writes a representation of a @ref type_id to a stream. + //! + //! Writes the demangled name of the class identified by `type` to + //! `stream`. + //! + //! @tparam Stream A SimpleOutputStream. + //! @param type The `type_id` to write. + //! @param stream The stream to write to. template static auto type_name(type_id type, Stream& stream) -> void { stream << boost::core::demangle( reinterpret_cast(type)->name()); } + //! Returns a key that uniquely identifies a class. + //! + //! C++ does *not* guarantee that there is a single instance of + //! `std::type_info` per type. `std_rtti` uses the addresses of + //! `std::type_index` objects as `type_id`s. Thus, the same class may + //! have multiple corresponding `type_id`s. `std::type_index` objects, + //! on the other hand, are guaranteed to compare as equal iff they + //! correspond to the same class, and they can be used to identify the + //! `type_id`s pertaining to the same class. + //! + //! @param type A `type_id`. + //! @return A `std::type_index` for `type` (cast to a `const std::type_info&`). static auto type_index(type_id type) -> std::type_index { return std::type_index( *reinterpret_cast(type)); } + //! Casts an object to a type. + //! + //! Casts `obj` to a reference to an instance of `D`, using + //! `dynamic_cast`. + //! + //! @tparam D A reference to a subclass of `B`. + //! @tparam B A registered class. + //! @param obj A reference to an instance of `B`. template static auto dynamic_cast_ref(B&& obj) -> D { return dynamic_cast(obj); } - }; - #endif + }; }; } // namespace boost::openmethod::policies diff --git a/include/boost/openmethod/policies/stderr_output.hpp b/include/boost/openmethod/policies/stderr_output.hpp index 2ea4f23..5f8bdea 100644 --- a/include/boost/openmethod/policies/stderr_output.hpp +++ b/include/boost/openmethod/policies/stderr_output.hpp @@ -11,9 +11,14 @@ namespace boost::openmethod::policies { +//! @ref An `output` policy that writes to the C standard error stream. +//! +//! `stderr_output` writes to standard error using the C API. struct stderr_output : output { + //! A model of @ref output::fn. template struct fn { + //! A @ref LightweightOuputStream. inline static detail::ostderr os; }; }; diff --git a/include/boost/openmethod/policies/throw_error_handler.hpp b/include/boost/openmethod/policies/throw_error_handler.hpp index 763e33c..1535f73 100644 --- a/include/boost/openmethod/policies/throw_error_handler.hpp +++ b/include/boost/openmethod/policies/throw_error_handler.hpp @@ -14,20 +14,34 @@ namespace boost::openmethod::policies { +//! Throws error as an exception. +//! struct throw_error_handler : error_handler { + //! A model of @ref error_handler::fn. + //! + //! @tparam Registry The registry containing this policy. template class fn { public: + //! Throws the error. + //! + //! Wraps the error in an object that can be caught either as an + //! `Error`, or as a `std::runtime_error`, and throws it as an exception. + //! + //! @tparam Error A subclass of @ref openmethod_error. + //! @param error The error object. template [[noreturn]] static auto error(const Error& error) -> void { struct wrapper : Error, std::runtime_error { - using std::runtime_error::runtime_error; + wrapper(const Error& error, std::string&& description) + : Error(error), std::runtime_error(description) { + } }; std::ostringstream os; error.template write(os); - throw wrapper(os.str()); + throw wrapper(error, os.str()); } }; }; diff --git a/include/boost/openmethod/policies/vectored_error_handler.hpp b/include/boost/openmethod/policies/vectored_error_handler.hpp index 7e24d34..66f5e20 100644 --- a/include/boost/openmethod/policies/vectored_error_handler.hpp +++ b/include/boost/openmethod/policies/vectored_error_handler.hpp @@ -39,7 +39,7 @@ struct default_error_handler : error_handler { using namespace detail; using namespace policies; - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_output) { auto& os = Registry::template policy::os; if (auto error = std::get_if(&error_v)) { diff --git a/include/boost/openmethod/policies/vptr_map.hpp b/include/boost/openmethod/policies/vptr_map.hpp index 4907551..3311265 100644 --- a/include/boost/openmethod/policies/vptr_map.hpp +++ b/include/boost/openmethod/policies/vptr_map.hpp @@ -14,25 +14,41 @@ namespace boost::openmethod { namespace policies { -template> -class vptr_map : public extern_vptr { +//! Stores v-table pointers in a map keyed by `type_id`s. +//! +//! `vptr_map` stores v-table pointers in a map keyed by `type_id`s. +//! +//! If the registry contains the @ref indirect_vptr policy, `vptr_map` stores +//! pointers to pointers to v-tables. +//! +//! @tparam MapFn A mp11 quoted meta-function that takes a key type and a +//! value type, and returns an @ref AssociativeContainer. +template> +class vptr_map : public vptr { public: + //! A model of @ref vptr::fn. + //! + //! @tparam Registry The registry containing this policy. template - struct fn { - static constexpr bool IndirectVptr = - Registry::template has_policy; - using Value = - std::conditional_t; - static inline typename MapAdaptor::template fn vptrs; + class fn { + using Value = std::conditional_t< + Registry::has_indirect_vptr, const vptr_type*, vptr_type>; + static inline typename MapFn::template fn vptrs; + public: + //! Stores the v-table pointers. + //! + //! @tparam ForwardIterator A forward iterator yielding + //! @ref IdsToVptr objects. + //! @param first The beginning of the range. + //! @param last The end of the range. template - static void - register_vptrs(ForwardIterator first, ForwardIterator last) { + static void initialize(ForwardIterator first, ForwardIterator last) { for (auto iter = first; iter != last; ++iter) { for (auto type_iter = iter->type_id_begin(); type_iter != iter->type_id_end(); ++type_iter) { - if constexpr (IndirectVptr) { + if constexpr (Registry::has_indirect_vptr) { vptrs.emplace(*type_iter, &iter->vptr()); } else { vptrs.emplace(*type_iter, iter->vptr()); @@ -41,32 +57,45 @@ class vptr_map : public extern_vptr { } } + //! Returns a reference to a v-table pointer for an object. + //! + //! Acquires the dynamic @ref type_id of `arg`, using the registry's + //! @ref rtti policy. + //! + //! If the registry contains the @ref runtime_checks policy, checks that + //! the map contains the type id. If it does not, and if the registry + //! contains a @ref error_handler policy, calls its + //! @ref error function with a @ref unknown_class_error value, then + //! terminates the program with @ref abort. + //! + //! @tparam Class A registered class. + //! @param arg A reference to a const object of type `Class`. + //! @return A reference to a the v-table pointer for `Class`. template static auto dynamic_vptr(const Class& arg) -> const vptr_type& { auto type = Registry::rtti::dynamic_type(arg); auto iter = vptrs.find(type); - if constexpr (Registry::runtime_checks) { + if constexpr (Registry::has_runtime_checks) { if (iter == vptrs.end()) { - using error_handler = typename Registry::error_handler; - - if constexpr (detail::is_not_void) { + if constexpr (Registry::has_error_handler) { unknown_class_error error; error.type = type; - error_handler::error(error); + Registry::error_handler::error(error); } abort(); } } - if constexpr (IndirectVptr) { + if constexpr (Registry::has_indirect_vptr) { return *iter->second; } else { return iter->second; } } + //! Clears the map. static auto finalize() -> void { vptrs.clear(); } diff --git a/include/boost/openmethod/policies/vptr_vector.hpp b/include/boost/openmethod/policies/vptr_vector.hpp index 9fae26f..adf8fdb 100644 --- a/include/boost/openmethod/policies/vptr_vector.hpp +++ b/include/boost/openmethod/policies/vptr_vector.hpp @@ -25,19 +25,50 @@ inline std::vector vptr_vector_indirect_vptrs; namespace policies { -struct vptr_vector : extern_vptr { +//! Stores v-table pointers in a vector. +//! +//! `vptr_vector` stores v-table pointers in a global vector. If `Registry` +//! contains a @ref type_hash policy, it is used to convert `type_id`s to +//! indices. Otherwise, `type_id`s are used directly as indices. +//! +//! If the registry contains the @ref indirect_vptr policy, stores pointers to +//! pointers to v-tables in the vector. +struct vptr_vector : vptr { public: + //! A model of @ref vptr::fn. + //! + //! Keeps track of v-table pointers using a `std::vector`. + //! + //! If `Registry` contains a @ref type_hash policy, it is used to convert + //! `type_id`s to indices; otherwise, `type_id`s are used as indices. + //! + //! If `Registry` contains the @ref indirect_vptr policy, stores pointers to + //! pointers to v-tables in the map. + //! + //! @tparam Registry The registry containing this policy. template struct fn { + using type_hash = + typename Registry::template policy; + static constexpr auto has_type_hash = !std::is_same_v; + + //! Stores the v-table pointers. + //! + //! If `Registry` contains a @ref type_hash policy, its `initialize` + //! function is called. Its result determines the size of the vector. + //! The v-table pointers are copied into the vector. + //! + //! @tparam ForwardIterator An iterator to a range of @ref + //! IdsToVptr objects. + //! @param first The beginning of the range. + //! @param last The end of the range. template - static auto register_vptrs(ForwardIterator first, ForwardIterator last) + static auto initialize(ForwardIterator first, ForwardIterator last) -> void { std::size_t size; - - if constexpr (Registry::template has_policy) { - auto report = Registry::template policy::initialize( - first, last); - size = report.last + 1; + if constexpr (has_type_hash) { + auto [_, max_value] = type_hash::initialize(first, last); + size = max_value + 1; } else { size = 0; @@ -51,7 +82,7 @@ struct vptr_vector : extern_vptr { ++size; } - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_indirect_vptr) { detail::vptr_vector_indirect_vptrs.resize(size); } else { detail::vptr_vector_vptrs.resize(size); @@ -62,15 +93,13 @@ struct vptr_vector : extern_vptr { type_iter != iter->type_id_end(); ++type_iter) { std::size_t index; - if constexpr (Registry::template has_policy) { - index = Registry::template policy::hash( - *type_iter); + if constexpr (has_type_hash) { + index = type_hash::hash(*type_iter); } else { index = std::size_t(*type_iter); } - if constexpr (Registry::template has_policy< - indirect_vptr>) { + if constexpr (Registry::has_indirect_vptr) { detail::vptr_vector_indirect_vptrs[index] = &iter->vptr(); } else { @@ -81,28 +110,66 @@ struct vptr_vector : extern_vptr { } } + //! Returns a *reference* to a v-table pointer for an object. + //! + //! Acquires the dynamic @ref type_id of `arg`, using the registry's + //! @ref rtti policy. + //! + //! If the registry has a @ref type_hash policy, uses it to convert the + //! type id to an index; otherwise, uses the type_id as the index. + //! + //! If the registry contains the @ref runtime_checks policy, verifies + //! that the index falls within the limits of the vector. If it does + //! not, and if the registry contains a @ref error_handler policy, calls + //! its @ref error function with a @ref unknown_class_error value, then + //! terminates the program with @ref abort. + //! + //! @tparam Class A registered class. + //! @param arg A reference to a const object of type `Class`. + //! @return A reference to a the v-table pointer for `Class`. template static auto dynamic_vptr(const Class& arg) -> const vptr_type& { - auto dynamic_type = - Registry::template policy::dynamic_type(arg); + auto dynamic_type = Registry::rtti::dynamic_type(arg); std::size_t index; - - if constexpr (Registry::template has_policy) { - index = - Registry::template policy::hash(dynamic_type); + if constexpr (has_type_hash) { + index = type_hash::hash(dynamic_type); } else { index = std::size_t(dynamic_type); + + if constexpr (Registry::has_runtime_checks) { + std::size_t max_index = 0; + + if constexpr (Registry::has_indirect_vptr) { + max_index = + detail::vptr_vector_indirect_vptrs.size(); + } else { + max_index = detail::vptr_vector_vptrs.size(); + } + + if (index >= max_index) { + if constexpr (Registry::has_error_handler) { + unknown_class_error error; + error.type = dynamic_type; + Registry::error_handler::error(error); + } + + abort(); + } + } } - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_indirect_vptr) { return *detail::vptr_vector_indirect_vptrs[index]; } else { return detail::vptr_vector_vptrs[index]; } } + //! Clears the vector. static auto finalize() -> void { - if constexpr (Registry::template has_policy) { + using namespace policies; + + if constexpr (Registry::has_indirect_vptr) { detail::vptr_vector_indirect_vptrs.clear(); } else { detail::vptr_vector_vptrs.clear(); diff --git a/include/boost/openmethod/registry.hpp b/include/boost/openmethod/registry.hpp index 74e9bdf..9317ac6 100644 --- a/include/boost/openmethod/registry.hpp +++ b/include/boost/openmethod/registry.hpp @@ -11,57 +11,406 @@ namespace boost::openmethod { +//! Namespace containing the policy framework. +//! +//! A registry contains a set of policies that control how certain operations +//! are performed. For example, the "rtti" policy provides type information, +//! implements dynamic casting, etc. It can be replaced to interface with custom +//! RTII systems (like LLVM's). +//! +//! A policy must derive from one of the policy base classes, also known as +//! _policy categories_. +//! +//! - @ref rtti: type information acquisition and manipulation. +//! +//! - @ref error_handler: perform operations when errors are detected. +//! +//! - @ref vptr: v-table pointer acquisition. +//! +//! - @ref type_hash: hashing of `type_id`s. +//! +//! - @ref output: output stream for logging and debugging. +//! +//! - @ref runtime_checks: detect and report common errors. +//! +//! - @ref trace: report how dispatch tables are built. +//! +//! - @ref n2216: handle ambiguities according to the N2216 proposal. +//! +//! Policies are implemented as Boost.MP11 quoted meta-functions. A policy class +//! must contain a `template struct fn` that provides a set of +//! _static_ members, fulfilling the requirements specified in the policy's +//! category. Registries instantiate policies by passing themselves to the +//! nested `fn` class templates. +//! +//! There are two reason for this design. +//! +//! Some policies are "stateful": they contain static _data_ members. Since +//! several registries can co-exist in the same program, each stateful policy +//! needs its own, separate set of static data members. For example, @ref +//! vptr_vector, a "vptr" policy, contains a static vector of vptrs, which +//! cannot be shared with other registries. +//! +//! Some policies need access to other policies in the same registry. They can +//! be accessed via the `Registry` template parameter. For example, @ref +//! vptr_vector hashes type_ids before using them as an indexes, if `Registry` +//! cotains a `type_hash` policy. It performs out-of-bounds checks if `Registry` +//! contains the `runtime_checks` policy. If an error is detected, it invokes +//! the @ref error_handler policy if there is one. +//! +//! The last three policies (runtime_checks, trace and n2216) act like flags, +//! and enabling some sections of code. They can be used as-is, without the need +//! for subclassing. + namespace policies { -struct policy {}; +#ifdef __MRDOCS__ -struct rtti : policy { +//! Requirements for policy categories (exposition only) +//! +struct PolicyCategory { + using category = PolicyCategory; +}; + +//! Requirements for policies (exposition only) +//! +struct Policy : PolicyCategory { + template + struct fn; +}; + +//! Requirements for LightweightOutputStream (exposition only) +struct LightweightOutputStream { + LightweightOutputStream& operator<<(const char* str); + LightweightOutputStream& operator<<(const std::string_view& view); + LightweightOutputStream& operator<<(const void* value); + LightweightOutputStream& operator<<(std::size_t value); +}; + +//! Requirements for IdsToVptr (exposition only) +//! +struct IdsToVptr { + //! Returns an iterator to the beginning of a range of `type_id`s for a + //! single registered class. + auto type_id_begin() const; + + //! Returns an iterator to the end of a range of `type_id`s for a + //! single registered class. + auto type_id_end() const; + + //! Returns a range of `type_id`s that this assignment applies to. + auto vptr() const -> const vptr_type&; +}; + +#endif + +//! Policy for runtime type information. +//! +//! A @e rtti policy is responsible for acquiring and manipulating type +//! information, dynamic casting, and detecting polymorphic classes. +//! +//! @par Requirements +//! +//! A subclass of `rtti` must contain a `fn` class template +//! that fulfills the requirements of @ref rtti::fn. +struct rtti { using category = rtti; - template - struct fn { + //! Default implementations of some `rtti` requirements. + struct defaults { + //! Default implementation for `type_index`. + //! + //! @param type A `type_id`. + //! + //! @return `type` itself. static auto type_index(type_id type) -> type_id { return type; } + //! Default implementation of `type_name`. + //! + //! Executes `stream << "type_id(" << type << ")"`. + //! + //! @param type A `type_id`. + //! @param stream A stream to write to. template static void type_name(type_id type, Stream& stream) { stream << "type_id(" << type << ")"; } }; + +#ifdef __MRDOCS__ + //! Requirements for `rtti` policies (exposition only). + //! + //! This class is for _exposition only_. It is the responsibility of + //! subclasses to provide a `fn` class template that contains the members + //! listed on this page. + template + struct fn { + //! Tests if a class is polymorphic. + //! + //! @tparam Class A class. + template + static constexpr bool is_polymorphic = std::is_polymorphic_v; + + //! Returns the static @ref type_id of a type. + //! + //! @note `Class` is not necessarily a @e registered class. This + //! function is also called to acquire the type_id of non-virtual + //! parameters, library types, etc, for diagnostic and trace purposes. + //! + //! @tparam Class A class. + //! @return The static type_id of Class. + template + static auto static_type() -> type_id; + + //! Returns the dynamic @ref type_id of an object. + //! + //! @tparam Class A registered class. + //! @param obj A reference to an instance of `Class`. + //! @return The type_id of `obj`'s class. + template + static auto dynamic_type(const Class& obj) -> type_id; + + //! Writes a representation of a @ref type_id to a stream. + //! + //! @tparam Stream A LightweightOutputStream. + //! @param type The `type_id` to write. + //! @param stream The stream to write to. + template + static auto type_name(type_id type, Stream& stream) -> void; + + //! Returns a key that uniquely identifies a class. + //! + //! @param type A `type_id`. + //! @return A unique value that identifies a class with the given + //! `type_id`. + static auto type_index(type_id type); + + //! Casts an object to a type. + //! + //! @tparam D A reference to a subclass of `B`. + //! @tparam B A registered class. + //! @param obj A reference to an instance of `B`. + template + static auto dynamic_cast_ref(B&& obj) -> D; + }; +#endif }; +#ifdef __MRDOCS__ +struct std_rtti; +struct static_rtti; +#endif + +//! Policy for deferred type id collection. +//! +//! Some custom RTTI systems rely on static constructors to assign type ids. +//! OpenMethod itself relies on static constructors to register classes, methods +//! and overriders. This creates order-of-initialization issues. Deriving a @e +//! rtti policy from this class - instead of just `rtti` - causes the collection +//! of type ids to be deferred until the first call to @ref update. struct deferred_static_rtti : rtti {}; -struct error_handler : policy { +//! Policy for error handling. +//! +//! A @e error_handler policy runs code before the library terminats the program +//! due to an error. This can be useful for throwing, logging, cleanup, or other +//! actions. +//! +//! @par Requirements +//! +//! A subclass of `error_handler` must contain a `fn` class template +//! that fulfills the requirements of @ref error_handler::fn. + +struct error_handler { using category = error_handler; + +#ifdef __MRDOCS__ + //! Requirements for `error_handler` policies (exposition only). + //! + //! This class is for _exposition only_. It is the responsibility of + //! subclasses to provide a `fn` class template that contains the members + //! listed on this page. + template + struct fn { + //! Called when an error is detected. + //! + //! `error` is a function, or a set of functions, that can be called + //! with an instance of any subclass of `openmethod_error`. + static auto error(const auto& error) -> void; + }; +#endif }; -struct type_hash : policy { - using category = type_hash; -}; +#ifdef __MRDOCS__ +struct default_error_handler; +struct throw_error_handler; +#endif -struct vptr : policy { +//! Policy for v-table pointer acquisition. +//! +//! @par Requirements +//! +//! A subclass of `vptr` must contain a `fn` class template +//! that fulfills the requirements of @ref vptr::fn. +struct vptr { using category = vptr; + +#ifdef __MRDOCS__ + //! Requirements for `vptr` policies (exposition only) + //! + //! This class is for _exposition only_. It is the responsibility of + //! subclasses to provide a `fn` class template that contains the members + //! listed on this page. + template + struct fn { + //! Stores the v-table pointers. + //! @tparam ForwardIterator An iterator to a range of const + //! @ref `IdsToVptr` objects. + //! @param first The beginning of the range. + //! @param last The end of the range. + template + static auto initialize(ForwardIterator first, ForwardIterator last); + + //! Returns a *reference* to a v-table pointer for an object. + //! + //! @tparam Class A registered class. + //! @param arg A reference to a const object of type `Class`. + //! @return A reference to a the v-table pointer for `Class`. + template + static auto dynamic_vptr(const Class& arg) -> const vptr_type&; + + //! Releases the resources allocated by `initialize`. This function is + //! optional. + static auto finalize() -> void; + }; +#endif }; -struct extern_vptr : vptr {}; +//! Policy to add an indirection to pointers to v-tables. +//! +//! If this policy is present, constructs like @ref virtual_ptr, @ref +//! inplace_vptr, @ref vptr_vector, etc store pointers to pointers to v-tables. +//! These indirect pointers remain valid after a call to @ref initialize, even +//! though the v-tables move to different locations. This is useful in presence +//! of dynamic loading. +//! +//! @par Requirements +//! +//! None. `indirect_vptr` can be added to a registry's policy list as-is. -struct indirect_vptr : policy { +struct indirect_vptr final { using category = indirect_vptr; template struct fn {}; }; -struct output : policy { - using category = output; -}; +#ifdef __MRDOCS__ +class vptr_vector; +template +class vptr_map; +#endif -struct trace : policy { - using category = trace; +//! Policy for type_id hashing. +//! +//! A @e type_hash policy calculates an integer hash for a @ref type_id. +//! +//! @par Requirements +//! +//! A subclass of `type_hash` must contain a `fn` class template +//! that fulfills the requirements of @ref type_hash::fn. +struct type_hash { + using category = type_hash; + +#ifdef __MRDOCS__ + //! Requirements for `type_hash` policies (exposition only) + //! @tparam Registry The registry containing this policy. + //! + //! This class is for _exposition only_. It is the responsibility of + //! subclasses to provide a `fn` class template that contains the members + //! listed on this page. template struct fn { - inline static bool trace_enabled = []() { + //! Initializes the hash table. + //! @tparam ForwardIterator An iterator to a range of const + //! @ref IdsToVptr objects. + //! @param first The beginning of the range. + //! @param last The end of the range. + //! @return A pair containing the minimum and maximum hash values. + template + static auto initialize(ForwardIterator first, ForwardIterator last) + -> std::pair; + + //! Hashes a `type_id`. + //! @param type A @ref type_id. + //! @return A hash value for the given `type_id`. + static auto hash(type_id type) -> std::size_t; + + //! Releases the resources allocated by `initialize`. This function is + //! optional. + static auto finalize() -> void; + }; +#endif +}; + +#ifdef __MRDOCS__ +class fast_perfect_hash; +#endif + +//! Policy for writing diagnostics and trace. +//! +//! If an `output` policy is present, the default error handler uses it to write +//! error messages to its output stream. `initialize` can also use it to write +//! trace messages. +//! +//! @par Requirements +//! +//! A subclass of `output` must contain a `fn` class template +//! that fulfills the requirements of @ref output::fn. +struct output { + using category = output; + +#ifdef __MRDOCS__ + //! Requirements for `output` policies (exposition only) + //! + //! This class is for _exposition only_. It is the responsibility of + //! subclasses to provide a `fn` class template that contains the members + //! listed on this page. + template + struct fn { + //! A @ref LightweightOutputStream. + inline static LightweightOutputStream os; + }; +#endif +}; + +#ifdef __MRDOCS__ +struct stderr_output; +#endif + +//! Policy for tracing. +//! +//! If `trace` is present, trace instructions are added to various parts of the +//! initialization process (dispatch table construction, hash factors search, +//! etc). These instructions are executed only if `trace::fn::on` is +//! set to `true`. The default value of `on` is `true` if environment variable +//! `BOOST_OPENMETHOD_TRACE` is set to the string "1". At the moment, any other +//! value disables tracing. +//! +//! `trace` requires an `output` policy to be present. Trace is written to its +//! output stream. +//! +//! The exact format of the trace output is not specified, and may change at any +//! time. The only guarantee is that it is detailed and comprehensive, and makes +//! it possible to troubleshoot problems like missing class registrations, +//! missing or ambiguous overriders, etc. +struct trace final { + using category = trace; + + template + struct fn { + inline static bool on = []() { #ifdef _MSC_VER char* env; std::size_t len; @@ -78,25 +427,36 @@ struct trace : policy { }; }; -struct runtime_checks : policy { +//! Policy for runtime sanity checks. +//! +//! If this policy is present, various checks are performed at runtime. +//! Currently they all attempt to detect missing class registrations. +struct runtime_checks final { using category = runtime_checks; template struct fn {}; }; -struct n2216 : policy { +//! Policy for N2216 ambiguity resolution. +//! +//! If this policy is present, additional steps are taken to select a single +//! overrider in presence of ambiguous overriders sets, according to the rules +//! defined in the N2216 paper. If the normal resolution procedure fails to +//! select a single overrider, the following steps are applied, in order: +//! +//! - If the return types of the remaining overriders are all polymorphic and +//! covariant, and one of the return types is more specialized thjat all the +//! others, use it. +//! +//! - Otherwise, pick one of the overriders. Which one is used is unspecified, +//! but remains the same throughtout the program, and across different runs of +//! the same program. +struct n2216 final { using category = n2216; template struct fn {}; }; -template -struct unique : policy { - using category = unique; - template - struct fn {}; -}; - } // namespace policies namespace detail { @@ -165,66 +525,195 @@ struct without_aux { MorePolicies...>::type; }; +template +struct use_class_aux; + } // namespace detail +//! A collection of methods and their associated dispatch data. +//! +//! Methods exist in a registry, which also contains descriptions for all the +//! classes that can appear in the methods, their overriders, and method calls. +//! +//! Before calling a method, the @ref initialize function must be called for its +//! registry to set up the dispatch tables. This is typically done at the +//! beginning of `main`. +//! +//! Multiple registries can co-exist in the same program. They must be +//! initialized independently. Classes referenced by methods in different +//! registries must be registered with each registry individually. +//! +//! +//! +//! @tparam Policies The policies used in the registry. +//! +//! @par Requirements +//! +//! `Policies` must be models of @ref policies::Policy. There may be at most one +//! policy per category, i.e. `Policies::category...` must all be different. +//! +//! @see @ref policies template -struct registry : detail::registry_base { - using registry_type = registry; - - inline static bool initialized; +class registry : detail::registry_base { inline static detail::class_catalog classes; inline static detail::method_catalog methods; + + template + friend struct detail::use_class_aux; + template + friend class method; + + struct compiler; + + inline static std::vector dispatch_data; + inline static bool initialized; + + public: + //! Initializes the registry. + //! + //! `initialize` must be called, typically at the beginning of `main`, + //! before using any of the methods in the registry. It sets up the + //! v-tables, multi-method dispatch tables, and any other data required by + //! the policies. + //! + //! @note + //! A translation unit that contains a call to `initialize` must include the + //! `` header. + //! + //! @par Errors + //! + //! @li @ref unknown_class_error: A class used in a virtual parameter was + //! not registered. + //! + //! In addition, policies may encounter and report errors. + static auto initialize(); + + //! Checks if the registry is initialized. + //! + //! Checks if `initialize` has been called for this registry, and report an + //! error if not. + //! + //! @par Errors + //! + //! @li @ref not_initialized_error: The registry is not initialized. + static void check_initialized(); + + //! Releases the resources held by the registry. + //! + //! `finalize` may be called to release any resources allocated by + //! `initialize`. + //! + //! @note + //! A translation unit that contains a call to `finalize` must include the + //! `` header. + static void finalize(); + + //! A pointer to the virtual table for a registered class. + //! + //! `static_vptr` is set by @ref initialize to the address of the class's + //! virtual table. It remains valid until the next call to `initialize` or + //! `finalize`. + //! + //! @tparam Class A registered class. template inline static vptr_type static_vptr; - inline static std::vector dispatch_data; + //! The list of policies selected in a registry. + //! + //! `policy_list` is a Boost.Mp11 list containing the policies passed to the + //! @ref registry clas template. + //! + //! @tparam Class A registered class. using policy_list = mp11::mp_list; - template + //! Returns the policy for a policy category. + //! + //! `policy` searches for a policy that derives from the specified @ref + //! PolicyCategory. If none is found, it aliases to `void`. Otherwise, it + //! aliases to the policy's `fn` class template, instantiated for this + //! registry. + //! + //! @tparam Category A model of @ref policies::PolicyCategory. + template using policy = typename detail::get_policy_aux< - registry_type, + registry, mp11::mp_find_if_q< policy_list, mp11::mp_bind_front_q< - mp11::mp_quote_trait, PolicyCategory>>>::type; - - template - static constexpr bool has_policy = - detail::is_not_void>; + mp11::mp_quote_trait, Category>>>::type; + //! Returns a copy of this registry, with additional policies. + //! + //! `with` aliases to a registry containing `NewPolicies`, in addition to + //! this registry's policies that are not in the same category as any of the + //! `NewPolicies`. + //! + //! @tparam NewPolicies Models of @ref policies::Policy. template using with = boost::mp11::mp_apply< registry, typename detail::with_aux::type>; - template + //! Returns a copy of this registry, with some policies removed. + //! + //! `without` returns a copy of this registry, without the policies that + //! derive from `Categories`. + //! + //! @tparam Categories Models of @ref policies::PolicyCategory. + template using without = boost::mp11::mp_apply< registry, - typename detail::without_aux::type>; - - static constexpr auto has_error_handler = - has_policy; - static constexpr auto has_output = has_policy; - static constexpr auto has_trace = has_policy; - static constexpr auto deferred_static_rtti = - has_policy; - static constexpr auto runtime_checks = has_policy; - static constexpr auto indirect_vptr = has_policy; + typename detail::without_aux::type>; + //! The registry's rtti policy. using rtti = policy; + + //! The registry's vptr policy if it contains one, or `void`. + using vptr = policy; + + //! `true` if the registry has a vptr policy. + static constexpr auto has_vptr = !std::is_same_v; + + //! The registry's error_handler policy if it contains one, or `void`. using error_handler = policy; + + //! `true` if the registry has an error_handler policy. + static constexpr auto has_error_handler = + !std::is_same_v; + + //! The registry's output policy if it contains one, or `void`. using output = policy; + + //! `true` if the registry has an output policy. + static constexpr auto has_output = !std::is_same_v; + + //! The registry's trace policy if it contains one, or `void`. using trace = policy; - static void check_initialized(); + //! `true` if the registry has a trace policy. + static constexpr auto has_trace = !std::is_same_v; + + //! `true` if the registry has a deferred_static_rtti policy. + static constexpr auto has_deferred_static_rtti = + !std::is_same_v, void>; + + //! `true` if the registry has a runtime_checks policy. + static constexpr auto has_runtime_checks = + !std::is_same_v, void>; + + //! `true` if the registry has an indirect_vptr policy. + static constexpr auto has_indirect_vptr = + !std::is_same_v, void>; + + //! `true` if the registry has a n2216 policy. + static constexpr auto has_n2216 = + !std::is_same_v, void>; }; template inline void registry::check_initialized() { - if constexpr (has_policy) { + if constexpr (registry::has_runtime_checks) { if (!initialized) { - using error_handler = policy; - - if constexpr (detail::is_not_void) { + if constexpr (registry::has_error_handler) { error_handler::error(not_initialized_error()); } diff --git a/include/boost/openmethod/shared_ptr.hpp b/include/boost/openmethod/shared_ptr.hpp index 274a296..7428a43 100644 --- a/include/boost/openmethod/shared_ptr.hpp +++ b/include/boost/openmethod/shared_ptr.hpp @@ -113,15 +113,16 @@ struct virtual_traits, Registry> { } }; +#ifndef __MRDOCS__ template using shared_virtual_ptr = virtual_ptr, Registry>; +#endif template< class Class, class Registry = BOOST_OPENMETHOD_DEFAULT_REGISTRY, typename... T> -inline auto make_shared_virtual(T&&... args) - -> shared_virtual_ptr { - return shared_virtual_ptr::final( +inline auto make_shared_virtual(T&&... args) { + return final_virtual_ptr( std::make_shared(std::forward(args)...)); } diff --git a/include/boost/openmethod/unique_ptr.hpp b/include/boost/openmethod/unique_ptr.hpp index c7fbd19..e8a086a 100644 --- a/include/boost/openmethod/unique_ptr.hpp +++ b/include/boost/openmethod/unique_ptr.hpp @@ -41,9 +41,8 @@ using unique_virtual_ptr = virtual_ptr, Registry>; template< class Class, class Registry = BOOST_OPENMETHOD_DEFAULT_REGISTRY, typename... T> -inline auto make_unique_virtual(T&&... args) - -> unique_virtual_ptr { - return unique_virtual_ptr::final( +inline auto make_unique_virtual(T&&... args) { + return final_virtual_ptr( std::make_unique(std::forward(args)...)); } diff --git a/index.html b/index.html new file mode 100644 index 0000000..4d7c7e2 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + + Boost.OpenMethod + + + + Automatic redirection failed, please go to + ../../doc/antora/openmethod/index.html +
    + + Boost.OpenMethod
    +
    + Copyright (C) 2022 Jean-Louis Leroy
    +
    + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt)
    +
    +
    + + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index aa45b91..18248a7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,11 +1,52 @@ -# Copyright (c) 2018-2025 Jean-Louis Leroy -# Distributed under the Boost Software License, Version 1.0. -# See accompanying file LICENSE_1_0.txt -# or copy at http://www.boost.org/LICENSE_1_0.txt) +# +# Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com) +# Copyright (c) 2021 DMitry Arkhipov (grisumbras@gmail.com) +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# +# Official repository: https://github.com/boostorg/url +# +message(STATUS "Building tests") + +# Custom target used by the boost super-project if(NOT TARGET tests) - add_custom_target(tests ${EXCLUDE_TESTS_FROM_ALL}) - set_property(TARGET tests PROPERTY FOLDER _deps) + add_custom_target(tests) + set_property(TARGET tests PROPERTY FOLDER Dependencies) +endif() + +# Replicate error flags from Jamfile +if (BOOST_OPENMETHOD_WARNINGS_AS_ERRORS) + if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7) + set(BOOST_OPENMETHOD_TEST_FLAGS "-Wall -Werror -Wno-unused-but-set-variable -Wno-maybe-uninitialized") + else() + set(BOOST_OPENMETHOD_TEST_FLAGS "-Wall -Werror -Wno-unused-but-set-variable") + endif() + elseif (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") + set(BOOST_OPENMETHOD_TEST_FLAGS "-Wall -Werror") + elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13) + set(BOOST_OPENMETHOD_TEST_FLAGS "-Wall -Werror -Wno-unused-but-set-variable") + else() + set(BOOST_OPENMETHOD_TEST_FLAGS "-Wall -Werror") + endif() + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC") + set(BOOST_OPENMETHOD_TEST_FLAGS "/W4 /WX /we4265 /wd4251") + endif() + + # Print test configuration if running in CI + # This is useful for debugging CI failures related to warnings which might be false positives + if (DEFINED ENV{CI}) + message(STATUS "Boost.OpenMethod Tests - Compiler ID: ${CMAKE_CXX_COMPILER_ID} / ${CMAKE_CXX_COMPILER_VERSION}") + if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT) + message(STATUS "Boost.OpenMethod Tests - Compiler Frontend: ${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}") + endif() + message(STATUS "Boost.OpenMethod Tests - Platform: ${CMAKE_SYSTEM_NAME} / ${CMAKE_SYSTEM_VERSION}") + message(STATUS "Boost.OpenMethod Tests - C++ standard: ${CMAKE_CXX_STANDARD}") + message(STATUS "Boost.OpenMethod Tests - Test error flags: ${BOOST_OPENMETHOD_TEST_FLAGS}") + endif() endif() file(GLOB test_cpp_files "test_*.cpp") @@ -14,7 +55,7 @@ foreach(test_cpp ${test_cpp_files}) cmake_path(REMOVE_EXTENSION test_cpp LAST_ONLY OUTPUT_VARIABLE test) string(REGEX REPLACE ".*/" "" test ${test}) add_executable(${test} ${test_cpp}) - target_link_libraries(${test} Boost::openmethod Boost::unit_test_framework) + target_link_libraries(${test} PUBLIC Boost::openmethod Boost::unit_test_framework) add_test(NAME ${test} COMMAND ${test}) add_dependencies(tests ${test}) endforeach() diff --git a/test/cmake_install_test/main.cpp b/test/cmake_install_test/main.cpp index cd540c4..74894f5 100644 --- a/test/cmake_install_test/main.cpp +++ b/test/cmake_install_test/main.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/test/cmake_subdir_test/main.cpp b/test/cmake_subdir_test/main.cpp index cd540c4..74894f5 100644 --- a/test/cmake_subdir_test/main.cpp +++ b/test/cmake_subdir_test/main.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/test/test_compiler.cpp b/test/test_compiler.cpp index cde1804..2324639 100644 --- a/test/test_compiler.cpp +++ b/test/test_compiler.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include "test_util.hpp" @@ -111,7 +111,7 @@ BOOST_AUTO_TEST_CASE(test_use_classes_linear) { BOOST_OPENMETHOD_CLASSES(D3, D4, policy); BOOST_OPENMETHOD_CLASSES(D4, D5, D3, policy); - auto comp = initialize(); + auto comp = policy::initialize(); auto base = get_class(comp); auto d1 = get_class(comp); @@ -148,7 +148,7 @@ BOOST_AUTO_TEST_CASE(test_use_classes_diamond) { std::vector actual, expected; - auto comp = initialize(); + auto comp = test_registry::initialize(); auto a = get_class(comp); auto b = get_class(comp); @@ -197,18 +197,15 @@ BOOST_AUTO_TEST_CASE(test_use_classes_diamond) { /// ============================================================================ // Test assign_slots. -template -auto get_method(const Compiler& comp, const detail::method_info& info) -> const - auto& { - for (const auto& m : comp.methods) { - if (m.info == &info) { - return m; - } +auto check(const detail::generic_compiler::method* method) + -> const detail::generic_compiler::method* { + if (method) { + return method; } BOOST_FAIL("method not found"); - return comp.methods.front(); + return nullptr; } template @@ -242,10 +239,10 @@ BOOST_AUTO_TEST_CASE(test_assign_slots_a_b1_c) { BOOST_OPENMETHOD_REGISTER(use_classes); ADD_METHOD(B); - auto comp = initialize(); + auto comp = test_registry::initialize(); - BOOST_TEST_REQUIRE(get_method(comp, m_B).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_B).slots[0] == 0u); + BOOST_TEST_REQUIRE(check(comp[m_B])->slots.size() == 1u); + BOOST_TEST(check(comp[m_B])->slots[0] == 0u); BOOST_TEST(get_class(comp)->vtbl.size() == 0u); BOOST_TEST(get_class(comp)->vtbl.size() == 1u); BOOST_TEST(get_class(comp)->vtbl.size() == 0u); @@ -272,18 +269,18 @@ BOOST_AUTO_TEST_CASE(test_assign_slots_a1_b1_c1) { ADD_METHOD(A); ADD_METHOD(B); ADD_METHOD(C); - auto comp = initialize(); + auto comp = test_registry::initialize(); - BOOST_TEST_REQUIRE(get_method(comp, m_A).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_A).slots[0] == 0u); + BOOST_TEST_REQUIRE(check(comp[m_A])->slots.size() == 1u); + BOOST_TEST(check(comp[m_A])->slots[0] == 0u); BOOST_TEST(get_class(comp)->vtbl.size() == 1u); - BOOST_TEST_REQUIRE(get_method(comp, m_B).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_B).slots[0] == 1u); + BOOST_TEST_REQUIRE(check(comp[m_B])->slots.size() == 1u); + BOOST_TEST(check(comp[m_B])->slots[0] == 1u); BOOST_TEST(get_class(comp)->vtbl.size() == 2u); - BOOST_TEST_REQUIRE(get_method(comp, m_C).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_C).slots[0] == 1u); + BOOST_TEST_REQUIRE(check(comp[m_C])->slots.size() == 1u); + BOOST_TEST(check(comp[m_C])->slots[0] == 1u); BOOST_TEST(get_class(comp)->vtbl.size() == 2u); } @@ -313,22 +310,22 @@ BOOST_AUTO_TEST_CASE(test_assign_slots_a1_b1_d1_c1_d1) { ADD_METHOD(B); ADD_METHOD(C); ADD_METHOD(D); - auto comp = initialize(); + auto comp = test_registry::initialize(); - BOOST_TEST_REQUIRE(get_method(comp, m_A).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_A).slots[0] == 0u); + BOOST_TEST_REQUIRE(check(comp[m_A])->slots.size() == 1u); + BOOST_TEST(check(comp[m_A])->slots[0] == 0u); BOOST_TEST(get_class(comp)->vtbl.size() == 1u); - BOOST_TEST_REQUIRE(get_method(comp, m_B).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_B).slots[0] == 1u); + BOOST_TEST_REQUIRE(check(comp[m_B])->slots.size() == 1u); + BOOST_TEST(check(comp[m_B])->slots[0] == 1u); BOOST_TEST(get_class(comp)->vtbl.size() == 2u); - BOOST_TEST_REQUIRE(get_method(comp, m_D).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_D).slots[0] == 2u); + BOOST_TEST_REQUIRE(check(comp[m_D])->slots.size() == 1u); + BOOST_TEST(check(comp[m_D])->slots[0] == 2u); BOOST_TEST(get_class(comp)->vtbl.size() == 4u); - BOOST_TEST_REQUIRE(get_method(comp, m_C).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_C).slots[0] == 3u); + BOOST_TEST_REQUIRE(check(comp[m_C])->slots.size() == 1u); + BOOST_TEST(check(comp[m_C])->slots[0] == 3u); BOOST_TEST(get_class(comp)->vtbl.size() == 4u); // slots 0-2 in C are wasted, to make room for methods in B and D } @@ -364,33 +361,33 @@ BOOST_AUTO_TEST_CASE(test_assign_slots_a1_b1_d1_c1_d1_e2) { ADD_METHOD_N(E, 1); ADD_METHOD_N(E, 2); ADD_METHOD_N(E, 3); - auto comp = initialize(); + auto comp = test_registry::initialize(); - BOOST_TEST_REQUIRE(get_method(comp, m_A).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_A).slots[0] == 0u); + BOOST_TEST_REQUIRE(check(comp[m_A])->slots.size() == 1u); + BOOST_TEST(check(comp[m_A])->slots[0] == 0u); BOOST_TEST(get_class(comp)->vtbl.size() == 1u); - BOOST_TEST_REQUIRE(get_method(comp, m_B).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_B).slots[0] == 1u); + BOOST_TEST_REQUIRE(check(comp[m_B])->slots.size() == 1u); + BOOST_TEST(check(comp[m_B])->slots[0] == 1u); BOOST_TEST(get_class(comp)->vtbl.size() == 2u); - BOOST_TEST_REQUIRE(get_method(comp, m_D).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_D).slots[0] == 2u); + BOOST_TEST_REQUIRE(check(comp[m_D])->slots.size() == 1u); + BOOST_TEST(check(comp[m_D])->slots[0] == 2u); BOOST_TEST(get_class(comp)->vtbl.size() == 4u); - BOOST_TEST_REQUIRE(get_method(comp, m_C).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_C).slots[0] == 3u); + BOOST_TEST_REQUIRE(check(comp[m_C])->slots.size() == 1u); + BOOST_TEST(check(comp[m_C])->slots[0] == 3u); BOOST_TEST(get_class(comp)->vtbl.size() == 4u); // slots 0-2 in C are wasted, to make room for methods in B and D - BOOST_TEST_REQUIRE(get_method(comp, m_E1).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_E1).slots[0] == 1u); + BOOST_TEST_REQUIRE(check(comp[m_E1])->slots.size() == 1u); + BOOST_TEST(check(comp[m_E1])->slots[0] == 1u); - BOOST_TEST_REQUIRE(get_method(comp, m_E2).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_E2).slots[0] == 2u); + BOOST_TEST_REQUIRE(check(comp[m_E2])->slots.size() == 1u); + BOOST_TEST(check(comp[m_E2])->slots[0] == 2u); - BOOST_TEST_REQUIRE(get_method(comp, m_E3).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_E3).slots[0] == 4u); + BOOST_TEST_REQUIRE(check(comp[m_E3])->slots.size() == 1u); + BOOST_TEST(check(comp[m_E3])->slots[0] == 4u); BOOST_TEST(get_class(comp)->vtbl.size() == 5u); } @@ -418,18 +415,18 @@ BOOST_AUTO_TEST_CASE(test_assign_slots_a1_c1_b1) { ADD_METHOD(A); ADD_METHOD(B); ADD_METHOD(C); - auto comp = initialize(); + auto comp = test_registry::initialize(); - BOOST_TEST_REQUIRE(get_method(comp, m_A).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_A).slots[0] == 0u); + BOOST_TEST_REQUIRE(check(comp[m_A])->slots.size() == 1u); + BOOST_TEST(check(comp[m_A])->slots[0] == 0u); BOOST_TEST(get_class(comp)->vtbl.size() == 1u); - BOOST_TEST_REQUIRE(get_method(comp, m_C).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_C).slots[0] == 1u); + BOOST_TEST_REQUIRE(check(comp[m_C])->slots.size() == 1u); + BOOST_TEST(check(comp[m_C])->slots[0] == 1u); BOOST_TEST(get_class(comp)->vtbl.size() == 3u); - BOOST_TEST_REQUIRE(get_method(comp, m_B).slots.size() == 1u); - BOOST_TEST(get_method(comp, m_B).slots[0] == 2u); + BOOST_TEST_REQUIRE(check(comp[m_B])->slots.size() == 1u); + BOOST_TEST(check(comp[m_B])->slots[0] == 2u); BOOST_TEST(get_class(comp)->first_slot == 2u); BOOST_TEST(get_class(comp)->vtbl.size() == 1u); } diff --git a/test/test_core.cpp b/test/test_core.cpp index d33c02b..ac739ff 100644 --- a/test/test_core.cpp +++ b/test/test_core.cpp @@ -129,8 +129,8 @@ static_assert( is_virtual, mp11::mp_list, b, virtual_>>>>, mp11::mp_list>); -struct registry1 : default_registry::with> {}; -struct registry2 : default_registry::with> {}; +struct registry1 : default_registry::with> {}; +struct registry2 : default_registry::with> {}; static_assert( detail::using_same_registry>::value); @@ -358,7 +358,7 @@ static_assert(detail::has_vptr_fn); static_assert(!detail::has_vptr_fn); BOOST_AUTO_TEST_CASE(vptr_from_function) { - initialize(); + test_registry::initialize(); BOOST_TEST(detail::acquire_vptr(Animal{}) == &value); } diff --git a/test/test_custom_rtti.cpp b/test/test_custom_rtti.cpp index 0257191..94d18aa 100644 --- a/test/test_custom_rtti.cpp +++ b/test/test_custom_rtti.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include "test_util.hpp" @@ -42,7 +42,7 @@ struct Cat : Animal { struct custom_rtti : policies::rtti { template - struct fn : policies::rtti::fn { + struct fn : defaults { template static constexpr bool is_polymorphic = std::is_base_of_v; @@ -93,7 +93,7 @@ BOOST_OPENMETHOD_OVERRIDE(poke, (Cat & cat, std::ostream& os), void) { } BOOST_AUTO_TEST_CASE(custom_rtti_simple_projection) { - initialize(); + test_registry::initialize(); Animal &&a = Dog("Snoopy"), &&b = Cat("Sylvester"); @@ -138,7 +138,7 @@ struct Cat : Animal { struct custom_rtti : policies::rtti { template - struct fn : policies::rtti::fn { + struct fn : defaults { template static constexpr bool is_polymorphic = std::is_base_of_v; @@ -204,7 +204,7 @@ BOOST_AUTO_TEST_CASE(custom_rtti_simple) { BOOST_TEST(Animal::static_type == 0u); BOOST_TEST(Dog::static_type == 1u); BOOST_TEST(Cat::static_type == 2u); - initialize(); + test_registry::initialize(); Animal &&a = Dog("Snoopy"), &&b = Cat("Sylvester"); @@ -293,7 +293,7 @@ struct Cat : virtual Animal { struct custom_rtti : policies::rtti { template - struct fn : policies::rtti::fn { + struct fn : defaults { template static constexpr bool is_polymorphic = std::is_base_of_v; @@ -362,7 +362,7 @@ BOOST_AUTO_TEST_CASE(virtual_base) { BOOST_TEST(Animal::static_type == 0u); BOOST_TEST(Dog::static_type == 1u); BOOST_TEST(Cat::static_type == 2u); - initialize(); + test_registry::initialize(); Animal &&a = Dog("Snoopy"), &&b = Cat("Sylvester"); @@ -439,7 +439,7 @@ std::size_t Cat::static_type = ++Animal::last_type_id; struct custom_rtti : policies::deferred_static_rtti { template - struct fn : policies::rtti::fn { + struct fn : defaults { template static constexpr bool is_polymorphic = std::is_base_of_v; @@ -497,7 +497,7 @@ BOOST_OPENMETHOD_OVERRIDE(meet, (Dog&, Dog&, std::ostream& os), void) { } BOOST_AUTO_TEST_CASE(custom_rtti_deferred) { - initialize(); + test_registry::initialize(); Animal &&a = Dog("Snoopy"), &&b = Cat("Sylvester"); diff --git a/test/test_dispatch.cpp b/test/test_dispatch.cpp index 77925a7..3bcfec4 100644 --- a/test/test_dispatch.cpp +++ b/test/test_dispatch.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include @@ -75,7 +75,7 @@ BOOST_OPENMETHOD_OVERRIDE(name, (const Dog& dog), std::string) { } BOOST_AUTO_TEST_CASE(cast_args_lvalue_refs) { - initialize(); + test_registry::initialize(); Dog spot("Spot"); BOOST_TEST(name(spot) == "Bill's dog Spot"); @@ -114,7 +114,7 @@ BOOST_OPENMETHOD_OVERRIDE(teleport, (Dog && dog), std::unique_ptr) { } BOOST_AUTO_TEST_CASE(cast_args_rvalue_refs) { - initialize(); + test_registry::initialize(); { Dog spot("Spot"); @@ -153,7 +153,7 @@ BOOST_OPENMETHOD_OVERRIDE(name, (const Dog* dog), std::string) { } BOOST_AUTO_TEST_CASE(cast_args_pointer) { - initialize(); + test_registry::initialize(); Dog spot("Spot"); BOOST_TEST(name(&spot) == "Bill's dog Spot"); @@ -186,7 +186,7 @@ BOOST_OPENMETHOD_OVERRIDE(name, (std::shared_ptr dog), std::string) { } BOOST_AUTO_TEST_CASE(cast_args_shared_ptr_by_value) { - initialize(); + test_registry::initialize(); auto spot = std::make_shared("Spot"); BOOST_TEST(name(spot) == "Bill's dog Spot"); @@ -227,7 +227,7 @@ BOOST_OPENMETHOD_OVERRIDE( } BOOST_AUTO_TEST_CASE(cast_args_shared_ptr_by_ref) { - initialize(); + test_registry::initialize(); auto spot = std::make_shared("Spot"); BOOST_TEST(name(spot) == "Bill's dog Spot"); @@ -260,7 +260,7 @@ BOOST_OPENMETHOD_OVERRIDE(name, (std::unique_ptr dog), std::string) { } BOOST_AUTO_TEST_CASE(cast_args_unique_ptr) { - initialize(); + test_registry::initialize(); auto spot = std::make_unique("Spot"); BOOST_TEST(name(std::move(spot)) == "Bill's dog Spot"); @@ -318,7 +318,7 @@ BOOST_OPENMETHOD_OVERRIDE(times, (const matrix&, double), string_pair) { } BOOST_AUTO_TEST_CASE(simple) { - auto report = initialize().report; + auto report = test_registry::initialize().report; BOOST_TEST(report.not_implemented == 0u); BOOST_TEST(report.ambiguous == 0u); @@ -336,14 +336,12 @@ BOOST_AUTO_TEST_CASE(simple) { times(diag, 2) == string_pair(DIAGONAL_SCALAR, MATRIX_SCALAR)); } - if constexpr (test_registry::has_policy) { - BOOST_TEST(!test_registry::dispatch_data.empty()); + if constexpr (std::is_same_v) { BOOST_TEST( !detail::vptr_vector_vptrs.empty()); finalize(); static_assert(detail::has_finalize_aux< test_registry::policy>::value); - BOOST_TEST(test_registry::dispatch_data.empty()); BOOST_TEST( detail::vptr_vector_vptrs.empty()); } @@ -441,7 +439,7 @@ BOOST_OPENMETHOD_OVERRIDE(foo, (Test&), std::pair) { } BOOST_AUTO_TEST_CASE(comma_in_return_type) { - initialize(); + test_registry::initialize(); Test test; diff --git a/test/test_intrusive.cpp b/test/test_intrusive.cpp index 5817239..f35be7a 100644 --- a/test/test_intrusive.cpp +++ b/test/test_intrusive.cpp @@ -9,16 +9,15 @@ #include namespace bom = boost::openmethod; -struct test_registry - : bom::default_registry::without< - bom::policies::extern_vptr, bom::policies::type_hash> {}; +struct test_registry : bom::default_registry::without< + bom::policies::vptr, bom::policies::type_hash> {}; #define BOOST_OPENMETHOD_DEFAULT_REGISTRY test_registry #include #include #include -#include +#include #define BOOST_TEST_MODULE intrusive #include @@ -182,9 +181,7 @@ BOOST_AUTO_TEST_CASE(intrusive_mode) { struct indirect_policy : test_registry::with {}; -struct Indirect : bom::inplace_vptr { - using bom::inplace_vptr::boost_openmethod_vptr; -}; +struct Indirect : bom::inplace_vptr {}; BOOST_OPENMETHOD(whatever, (virtual_), void, indirect_policy); @@ -192,8 +189,11 @@ BOOST_OPENMETHOD_OVERRIDE(whatever, (Indirect&), void) { } BOOST_AUTO_TEST_CASE(core_intrusive_vptr) { - bom::initialize(); + indirect_policy::initialize(); Indirect i; BOOST_TEST( - i.boost_openmethod_vptr == &indirect_policy::static_vptr); + boost_openmethod_vptr(i, nullptr) == + indirect_policy::static_vptr); + indirect_policy::static_vptr = nullptr; + BOOST_TEST(boost_openmethod_vptr(i, nullptr) == nullptr); } diff --git a/test/test_member_method.cpp b/test/test_member_method.cpp index 44260dd..aa31924 100644 --- a/test/test_member_method.cpp +++ b/test/test_member_method.cpp @@ -4,7 +4,7 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) #include -#include +#include #include #include diff --git a/test/test_n2216.cpp b/test/test_n2216.cpp index 7269a18..ae2997f 100644 --- a/test/test_n2216.cpp +++ b/test/test_n2216.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include "test_util.hpp" @@ -46,7 +46,7 @@ BOOST_OPENMETHOD_OVERRIDE( } BOOST_AUTO_TEST_CASE(covariant_return_type) { - auto compiler = initialize(); + auto compiler = n2216::initialize(); BOOST_TEST(compiler.report.ambiguous == 0u); // N2216: use covariant return types to resolve ambiguity. @@ -84,7 +84,7 @@ BOOST_OPENMETHOD_OVERRIDE( } BOOST_AUTO_TEST_CASE(pick_any_ambiguous) { - auto compiler = initialize(); + auto compiler = n2216::initialize(); BOOST_TEST(compiler.report.ambiguous == 1u); // N2216: use covariant return types to resolve ambiguity. diff --git a/test/test_namespaces.cpp b/test/test_namespaces.cpp index f3a859b..337d671 100644 --- a/test/test_namespaces.cpp +++ b/test/test_namespaces.cpp @@ -27,7 +27,7 @@ class Dolphin : public interfaces::Animal {}; #include #include -#include +#include using boost::openmethod::virtual_; diff --git a/test/test_pointer_to_method.cpp b/test/test_pointer_to_method.cpp index 04a4608..e861e44 100644 --- a/test/test_pointer_to_method.cpp +++ b/test/test_pointer_to_method.cpp @@ -4,7 +4,7 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) #include -#include +#include #include diff --git a/test/test_policies.cpp b/test/test_policies.cpp index 3654bb4..41317ce 100644 --- a/test/test_policies.cpp +++ b/test/test_policies.cpp @@ -11,6 +11,8 @@ #include +#include "test_util.hpp" + using namespace boost::openmethod; using namespace boost::openmethod::detail; namespace mp11 = boost::mp11; @@ -26,8 +28,6 @@ struct derived : base { struct fn {}; }; -static_assert(registry::has_policy); - static_assert(std::is_same_v< registry::policy, derived::fn>>); @@ -39,14 +39,14 @@ static_assert(!detail::is_registry); struct registry1 : default_registry::with> {}; struct registry2 : default_registry::with> {}; -struct foo : policy { +struct foo { using category = foo; }; struct foo1 : foo {}; struct foo2 : foo {}; -struct bar : policy { +struct bar { using category = bar; }; @@ -65,8 +65,8 @@ static_assert( BOOST_AUTO_TEST_CASE(test_registry) { using namespace policies; - BOOST_TEST(®istry2::methods != ®istry1::methods); - BOOST_TEST(®istry2::classes != ®istry1::classes); + // BOOST_TEST(®istry2::methods != ®istry1::methods); + // BOOST_TEST(®istry2::classes != ®istry1::classes); BOOST_TEST(®istry2::static_vptr != ®istry1::static_vptr); - BOOST_TEST(®istry2::dispatch_data != ®istry1::dispatch_data); + // BOOST_TEST(®istry2::dispatch_data != ®istry1::dispatch_data); } diff --git a/test/test_rolex.cpp b/test/test_rolex.cpp index 61d0f17..b1eb974 100644 --- a/test/test_rolex.cpp +++ b/test/test_rolex.cpp @@ -4,7 +4,7 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) #include -#include +#include using boost::openmethod::virtual_ptr; diff --git a/test/test_runtime_errors.cpp b/test/test_runtime_errors.cpp index 451006a..785fc06 100644 --- a/test/test_runtime_errors.cpp +++ b/test/test_runtime_errors.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include "test_util.hpp" @@ -68,7 +68,7 @@ BOOST_OPENMETHOD_OVERRIDE( } BOOST_AUTO_TEST_CASE(not_initialized) { - if constexpr (registry::runtime_checks) { + if constexpr (registry::has_runtime_checks) { // throw during virtual_ptr construction, because of hash table lookup { registry::capture capture; @@ -110,10 +110,10 @@ BOOST_OPENMETHOD_OVERRIDE( } BOOST_AUTO_TEST_CASE(initialize_unknown_class) { - if constexpr (registry::runtime_checks) { + if constexpr (registry::has_runtime_checks) { { registry::capture capture; - BOOST_CHECK_THROW(initialize(), unknown_class_error); + BOOST_CHECK_THROW(registry::initialize(), unknown_class_error); BOOST_TEST(capture().find("unknown class") != std::string::npos); } } @@ -135,9 +135,9 @@ BOOST_OPENMETHOD_OVERRIDE(transpose, (const matrix&), void) { } BOOST_AUTO_TEST_CASE(call_unknown_class) { - if constexpr (registry::runtime_checks) { + if constexpr (registry::has_runtime_checks) { { - initialize(); + registry::initialize(); registry::capture capture; BOOST_CHECK_THROW(transpose(dense_matrix()), unknown_class_error); @@ -167,7 +167,7 @@ BOOST_OPENMETHOD_OVERRIDE( } BOOST_AUTO_TEST_CASE(call_error) { - auto report = initialize().report; + auto report = registry::initialize().report; BOOST_TEST(report.not_implemented == 1u); BOOST_TEST(report.ambiguous == 1u); @@ -199,7 +199,7 @@ BOOST_OPENMETHOD( times, (virtual_, virtual_), void, registry); BOOST_AUTO_TEST_CASE(throw_error) { - initialize(); + registry::initialize(); try { times(matrix(), matrix()); diff --git a/test/test_shared_virtual_ptr_value_semantics.cpp b/test/test_shared_virtual_ptr_value_semantics.cpp index 3cfeda9..796fb37 100644 --- a/test/test_shared_virtual_ptr_value_semantics.cpp +++ b/test/test_shared_virtual_ptr_value_semantics.cpp @@ -12,13 +12,13 @@ #include -static_assert(detail::same_smart_ptr< +static_assert(same_smart_ptr< std::shared_ptr, std::shared_ptr, default_registry>); -static_assert(!detail::same_smart_ptr< +static_assert(!same_smart_ptr< std::shared_ptr, std::unique_ptr, default_registry>); -static_assert(!detail::same_smart_ptr< +static_assert(!same_smart_ptr< std::shared_ptr, shared_virtual_ptr>, default_registry>); @@ -31,8 +31,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( decltype(std::declval>() .get()), Animal*>); - static_assert(shared_virtual_ptr::is_smart_ptr); - static_assert(shared_virtual_ptr::is_smart_ptr); + static_assert(is_smart_ptr, Registry>); + static_assert(is_smart_ptr, Registry>); static_assert( std::is_same_v< decltype(*std::declval>()), diff --git a/test/test_static_rtti.cpp b/test/test_static_rtti.cpp new file mode 100644 index 0000000..e4addd6 --- /dev/null +++ b/test/test_static_rtti.cpp @@ -0,0 +1,59 @@ +// Copyright (c) 2018-2025 Jean-Louis Leroy +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_TEST_MODULE openmethod +#include + +#include +#include + +struct static_registry + : boost::openmethod::registry {}; + +#define BOOST_OPENMETHOD_DEFAULT_REGISTRY static_registry + +#include +#include +#include + +struct Animal {}; + +struct Dog : Animal {}; + +struct Cat : Animal {}; + +using namespace boost::openmethod::aliases; + +BOOST_OPENMETHOD_CLASSES(Animal, Dog, Cat); + +BOOST_OPENMETHOD(poke, (virtual_ptr, std::ostream&), void); + +BOOST_OPENMETHOD_OVERRIDE( + poke, (virtual_ptr dog, std::ostream& os), void) { + os << "bark"; +} + +BOOST_OPENMETHOD_OVERRIDE( + poke, (virtual_ptr cat, std::ostream& os), void) { + os << "hiss"; +} + +BOOST_AUTO_TEST_CASE(static_rtti) { + boost::openmethod::initialize(); + + auto a = make_unique_virtual(); + auto b = make_unique_virtual(); + + { + std::stringstream os; + poke(a, os); + BOOST_TEST(os.str() == "hiss"); + } + { + std::stringstream os; + poke(b, os); + BOOST_TEST(os.str() == "bark"); + } +} diff --git a/test/test_unique_virtual_ptr_value_semantics.cpp b/test/test_unique_virtual_ptr_value_semantics.cpp index c18c24a..b60702a 100644 --- a/test/test_unique_virtual_ptr_value_semantics.cpp +++ b/test/test_unique_virtual_ptr_value_semantics.cpp @@ -23,8 +23,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( decltype(std::declval>() .get()), Animal*>); - static_assert(unique_virtual_ptr::is_smart_ptr); - static_assert(unique_virtual_ptr::is_smart_ptr); + static_assert(is_smart_ptr, Registry>); + static_assert(is_smart_ptr, Registry>); static_assert( std::is_same_v< decltype(*std::declval>()), diff --git a/test/test_util.hpp b/test/test_util.hpp index 4f099bf..5562a62 100644 --- a/test/test_util.hpp +++ b/test/test_util.hpp @@ -9,12 +9,20 @@ #include #include -#include +#include + +template +struct unique final { + using category = unique; + template + struct fn {}; +}; template -struct test_registry_ - : boost::openmethod::default_registry::with< - boost::openmethod::policies::unique>, Policies...> { +struct test_registry_ : boost::openmethod::default_registry::with< + unique>, Policies...> { + using registry_type = boost::openmethod::default_registry::with< + unique>, Policies...>; }; #define TEST_NS BOOST_PP_CAT(test, __COUNTER__) diff --git a/test/test_virtual_ptr_dispatch.cpp b/test/test_virtual_ptr_dispatch.cpp index c6692a5..e819985 100644 --- a/test/test_virtual_ptr_dispatch.cpp +++ b/test/test_virtual_ptr_dispatch.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include @@ -221,7 +221,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( typename poke::template override< poke_bear>>); - initialize(); + Registry::initialize(); using vptr_player = virtual_ptr; static_assert(detail::is_virtual_ptr); @@ -250,18 +250,12 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( upcast::fn(virtual_bear_ptr); - auto data = Registry::dispatch_data.data(); - std::fill_n(data, Registry::dispatch_data.size(), 0); + // Registry::finalize(); + // Registry::initialize(); - while (data == Registry::dispatch_data.data()) { - Registry::dispatch_data.resize(2 * Registry::dispatch_data.size()); - } - - initialize(); - - BOOST_TEST( - (virtual_bear_ptr.vptr() == Registry::template static_vptr) == - Registry::template has_policy); + // BOOST_TEST( + // (virtual_bear_ptr.vptr() == Registry::template static_vptr) == + // Registry::has_indirect_vptr); } } // namespace BOOST_OPENMETHOD_GENSYM @@ -292,7 +286,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( virtual_ptr, virtual_ptr, virtual_ptr>>); - initialize(); + Registry::initialize(); Bear bear; BOOST_TEST(poke::fn(virtual_ptr(bear)) == "growl"); @@ -339,7 +333,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( shared_virtual_ptr, shared_virtual_ptr>>); - initialize(); + Registry::initialize(); auto bear = make_shared_virtual(); auto warrior = make_shared_virtual(); diff --git a/test/test_virtual_ptr_value_semantics.cpp b/test/test_virtual_ptr_value_semantics.cpp index 9b3c5f7..2d09838 100644 --- a/test/test_virtual_ptr_value_semantics.cpp +++ b/test/test_virtual_ptr_value_semantics.cpp @@ -16,8 +16,8 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( static_assert(std::is_same_v< decltype(std::declval>().get()), Animal*>); - static_assert(!virtual_ptr::is_smart_ptr); - static_assert(!virtual_ptr::is_smart_ptr); + static_assert(!is_smart_ptr); + static_assert(!is_smart_ptr); static_assert( std::is_same_v< decltype(*std::declval>()), Animal&>); @@ -272,7 +272,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(indirect_virtual_ptr, Registry, test_policies) { BOOST_TEST_MESSAGE( "static_vptr = " << Registry::template static_vptr); - if constexpr (Registry::template has_policy) { + if constexpr (Registry::has_indirect_vptr) { BOOST_TEST(p.vptr() == Registry::template static_vptr); } else { BOOST_TEST(p.vptr() != Registry::template static_vptr); @@ -307,7 +307,7 @@ BOOST_AUTO_TEST_CASE(virtual_ptr_final_error) { return; } - if constexpr (default_registry::runtime_checks) { + if constexpr (default_registry::has_runtime_checks) { if (!threw) { BOOST_FAIL("should have thrown"); } diff --git a/test/test_virtual_ptr_value_semantics.hpp b/test/test_virtual_ptr_value_semantics.hpp index 1dd2b4f..e9f85e1 100644 --- a/test/test_virtual_ptr_value_semantics.hpp +++ b/test/test_virtual_ptr_value_semantics.hpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include "test_util.hpp" @@ -41,7 +41,7 @@ void init_test() { BOOST_OPENMETHOD_REGISTER(use_classes); struct id; (void)&method)->void, Registry>::fn; - boost::openmethod::initialize(); + Registry::initialize(); } struct direct_vector : test_registry_<__COUNTER__> {}; @@ -93,8 +93,8 @@ struct check_illegal_smart_ops { // --------------------- // test other properties - static_assert(virtual_ptr, Registry>::is_smart_ptr); - static_assert(virtual_ptr, Registry>::is_smart_ptr); + static_assert(is_smart_ptr, Registry>); + static_assert(is_smart_ptr, Registry>); static_assert( std::is_same_v<