From 31b48568cb02a3340648f0c155eccf63f65b9dc3 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Fri, 5 Sep 2025 15:28:45 -0400 Subject: [PATCH] doc, compiler to registry, simplify policies --- .github/workflows/ci.yml | 67 + .gitignore | 1 + CMakeLists.txt | 215 +- ce/2-method-vptr-final.cpp | 2 +- ce/2-method-vptr.cpp | 2 +- ce/2-method.cpp | 2 +- ce/uni-method-vptr-final.cpp | 2 +- ce/uni-method-vptr.cpp | 2 +- ce/uni-method.cpp | 2 +- dev/local-flat.sh | 2 +- doc/.gitignore | 6 + doc/antora.yml | 32 + doc/basic_policy.adoc | 16 +- doc/build_antora.sh | 28 + doc/default_error_handler.adoc | 2 +- doc/deferred_static_rtti.adoc | 6 +- doc/error_handler.adoc | 4 +- doc/error_output.adoc | 8 +- doc/facet.adoc | 6 +- doc/html/index.html | 212 +- doc/index.html | 21 + doc/initialize.adoc | 6 +- doc/local-playbook.yml | 54 + doc/minimal_rtti.adoc | 8 +- .../modules/ROOT/examples}/CMakeLists.txt | 6 + .../ROOT/examples}/accept_no_visitors.cpp | 2 +- .../modules/ROOT/examples}/adventure.cpp | 2 +- .../modules/ROOT/examples}/ast.cpp | 2 +- .../modules/ROOT/examples}/ast_unique_ptr.cpp | 2 +- .../modules/ROOT/examples}/asteroids.cpp | 2 +- .../modules/ROOT/examples}/core_api.cpp | 2 +- .../modules/ROOT/examples}/custom_rtti.cpp | 16 +- .../ROOT/examples}/default_error_handler.cpp | 2 +- .../ROOT/examples}/deferred_custom_rtti.cpp | 17 +- {example => doc/modules/ROOT/examples}/dl.hpp | 6 +- .../modules/ROOT/examples}/dl_main.cpp | 16 +- .../modules/ROOT/examples}/dl_shared.cpp | 2 +- .../modules/ROOT/examples}/friendship.cpp | 2 +- .../friendship_across_namespaces.cpp | 2 +- .../headers_namespaces/CMakeLists.txt | 0 .../examples}/headers_namespaces/animal.hpp | 0 .../ROOT/examples}/headers_namespaces/cat.cpp | 0 .../ROOT/examples}/headers_namespaces/cat.hpp | 0 .../ROOT/examples}/headers_namespaces/dog.cpp | 0 .../ROOT/examples}/headers_namespaces/dog.hpp | 0 .../examples}/headers_namespaces/main.cpp | 2 +- .../main_unrelated_namespaces.cpp | 2 +- .../main_using_directive.cpp | 2 +- .../modules/ROOT/examples}/hello_world.cpp | 2 +- .../modules/ROOT/examples}/matrix.cpp | 2 +- .../modules/ROOT/examples}/next.cpp | 2 +- .../modules/ROOT/examples}/slides.cpp | 2 +- doc/modules/ROOT/examples/static_rtti.cpp | 56 + .../modules/ROOT/examples}/synopsis.cpp | 2 +- .../ROOT/examples}/throw_error_handler.cpp | 2 +- .../modules/ROOT/examples}/virtual_.cpp | 2 +- .../modules/ROOT/examples}/virtual_func.cpp | 0 .../modules/ROOT/examples}/virtual_ptr.cpp | 2 +- doc/modules/ROOT/images/AuthorityDiagram.svg | 154 + doc/modules/ROOT/images/ClassHierarchy.svg | 152 + doc/modules/ROOT/images/HelpCard.svg | 494 + doc/modules/ROOT/images/PartsDiagram.svg | 145 + doc/modules/ROOT/images/repo-logo.png | Bin 0 -> 113619 bytes doc/modules/ROOT/nav.adoc | 15 + .../ROOT/pages}/BOOST_OPENMETHOD.adoc | 4 +- .../ROOT/pages}/BOOST_OPENMETHOD_CLASSES.adoc | 2 +- .../BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc | 0 .../BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc | 0 .../BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc | 0 .../ROOT/pages}/BOOST_OPENMETHOD_GUIDE.adoc | 0 .../ROOT/pages}/BOOST_OPENMETHOD_ID.adoc | 0 .../BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc | 0 .../pages}/BOOST_OPENMETHOD_OVERRIDE.adoc | 0 .../pages}/BOOST_OPENMETHOD_OVERRIDER.adoc | 0 .../pages}/BOOST_OPENMETHOD_OVERRIDERS.adoc | 0 .../pages}/BOOST_OPENMETHOD_REGISTER.adoc | 0 doc/{ => modules/ROOT/pages}/core_api.adoc | 12 +- doc/{ => modules/ROOT/pages}/custom_rtti.adoc | 108 +- .../ROOT/pages}/dynamic_loading.adoc | 16 +- .../ROOT/pages}/error_handling.adoc | 15 +- doc/{ => modules/ROOT/pages}/friendship.adoc | 4 +- .../ROOT/pages}/headers_namespaces.adoc | 18 +- doc/{ => modules/ROOT/pages}/hello_world.adoc | 17 +- doc/modules/ROOT/pages/index.adoc | 76 + .../ROOT/pages}/multiple_dispatch.adoc | 4 +- doc/{ => modules/ROOT/pages}/performance.adoc | 10 +- doc/modules/ROOT/pages/policies.adoc | 72 + doc/modules/ROOT/pages/reference.adoc | 176 + .../ROOT/pages}/smart_pointers.adoc | 4 +- .../ROOT/pages}/virtual_ptr_alt.adoc | 6 +- doc/mrdocs.yml | 63 + doc/output.adoc | 2 +- doc/overview.adoc | 24 +- doc/package-lock.json | 2938 + doc/package.json | 15 + doc/policies.adoc | 91 - doc/reference.adoc | 48 - doc/restricted_output_stream.adoc | 14 +- doc/rtti.adoc | 13 +- doc/std_rtti.adoc | 2 +- doc/tagfiles/boost-openmethod-doxygen.tag.xml | 955 + .../boost-openmethod-macros-doxygen.tag.xml | 7 + doc/tagfiles/cppreference-doxygen-web.tag.xml | 68914 ++++++++++++++++ doc/throw_error_handler.adoc | 2 +- doc/trace.adoc | 2 +- doc/trace_output.adoc | 10 +- doc/type_hash.adoc | 12 +- doc/vptr.adoc | 10 +- doc/vptr_map.adoc | 6 +- doc/vptr_vector.adoc | 6 +- docs | 1 - include/boost/openmethod/core.hpp | 542 +- include/boost/openmethod/default_registry.hpp | 8 +- include/boost/openmethod/detail/mrdocs.hpp | 82 + .../boost/openmethod/detail/ostdstream.hpp | 8 +- include/boost/openmethod/detail/trace.hpp | 10 +- include/boost/openmethod/detail/types.hpp | 15 +- .../{compiler.hpp => initialize.hpp} | 293 +- include/boost/openmethod/inplace_vptr.hpp | 19 +- .../policies/default_error_handler.hpp | 44 +- .../openmethod/policies/fast_perfect_hash.hpp | 150 +- .../openmethod/policies/minimal_rtti.hpp | 26 - .../boost/openmethod/policies/static_rtti.hpp | 49 + .../boost/openmethod/policies/std_rtti.hpp | 61 +- .../openmethod/policies/stderr_output.hpp | 5 + .../policies/throw_error_handler.hpp | 18 +- .../policies/vectored_error_handler.hpp | 2 +- .../boost/openmethod/policies/vptr_map.hpp | 63 +- .../boost/openmethod/policies/vptr_vector.hpp | 109 +- include/boost/openmethod/registry.hpp | 597 +- include/boost/openmethod/shared_ptr.hpp | 7 +- include/boost/openmethod/unique_ptr.hpp | 5 +- index.html | 21 + test/CMakeLists.txt | 55 +- test/cmake_install_test/main.cpp | 2 +- test/cmake_subdir_test/main.cpp | 2 +- test/test_compiler.cpp | 101 +- test/test_core.cpp | 6 +- test/test_custom_rtti.cpp | 18 +- test/test_dispatch.cpp | 22 +- test/test_intrusive.cpp | 18 +- test/test_member_method.cpp | 2 +- test/test_n2216.cpp | 6 +- test/test_namespaces.cpp | 2 +- test/test_pointer_to_method.cpp | 2 +- test/test_policies.cpp | 14 +- test/test_rolex.cpp | 2 +- test/test_runtime_errors.cpp | 16 +- ...est_shared_virtual_ptr_value_semantics.cpp | 10 +- test/test_static_rtti.cpp | 59 + ...est_unique_virtual_ptr_value_semantics.cpp | 4 +- test/test_util.hpp | 16 +- test/test_virtual_ptr_dispatch.cpp | 24 +- test/test_virtual_ptr_value_semantics.cpp | 8 +- test/test_virtual_ptr_value_semantics.hpp | 8 +- 155 files changed, 76728 insertions(+), 1307 deletions(-) create mode 100644 doc/.gitignore create mode 100644 doc/antora.yml create mode 100755 doc/build_antora.sh create mode 100644 doc/index.html create mode 100644 doc/local-playbook.yml rename {example => doc/modules/ROOT/examples}/CMakeLists.txt (96%) rename {example => doc/modules/ROOT/examples}/accept_no_visitors.cpp (98%) rename {example => doc/modules/ROOT/examples}/adventure.cpp (98%) rename {example => doc/modules/ROOT/examples}/ast.cpp (97%) rename {example => doc/modules/ROOT/examples}/ast_unique_ptr.cpp (97%) rename {example => doc/modules/ROOT/examples}/asteroids.cpp (97%) rename {example => doc/modules/ROOT/examples}/core_api.cpp (98%) rename {example => doc/modules/ROOT/examples}/custom_rtti.cpp (89%) rename {example => doc/modules/ROOT/examples}/default_error_handler.cpp (96%) rename {example => doc/modules/ROOT/examples}/deferred_custom_rtti.cpp (89%) rename {example => doc/modules/ROOT/examples}/dl.hpp (81%) rename {example => doc/modules/ROOT/examples}/dl_main.cpp (83%) rename {example => doc/modules/ROOT/examples}/dl_shared.cpp (91%) rename {example => doc/modules/ROOT/examples}/friendship.cpp (97%) rename {example => doc/modules/ROOT/examples}/friendship_across_namespaces.cpp (98%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/CMakeLists.txt (100%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/animal.hpp (100%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/cat.cpp (100%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/cat.hpp (100%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/dog.cpp (100%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/dog.hpp (100%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/main.cpp (96%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/main_unrelated_namespaces.cpp (91%) rename {example => doc/modules/ROOT/examples}/headers_namespaces/main_using_directive.cpp (95%) rename {example => doc/modules/ROOT/examples}/hello_world.cpp (99%) rename {example => doc/modules/ROOT/examples}/matrix.cpp (99%) rename {example => doc/modules/ROOT/examples}/next.cpp (97%) rename {example => doc/modules/ROOT/examples}/slides.cpp (99%) create mode 100644 doc/modules/ROOT/examples/static_rtti.cpp rename {example => doc/modules/ROOT/examples}/synopsis.cpp (99%) rename {example => doc/modules/ROOT/examples}/throw_error_handler.cpp (97%) rename {example => doc/modules/ROOT/examples}/virtual_.cpp (98%) rename {example => doc/modules/ROOT/examples}/virtual_func.cpp (100%) rename {example => doc/modules/ROOT/examples}/virtual_ptr.cpp (97%) create mode 100644 doc/modules/ROOT/images/AuthorityDiagram.svg create mode 100644 doc/modules/ROOT/images/ClassHierarchy.svg create mode 100644 doc/modules/ROOT/images/HelpCard.svg create mode 100644 doc/modules/ROOT/images/PartsDiagram.svg create mode 100644 doc/modules/ROOT/images/repo-logo.png create mode 100644 doc/modules/ROOT/nav.adoc rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD.adoc (96%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_CLASSES.adoc (93%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_DECLARE_OVERRIDER.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_DEFAULT_REGISTRY.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_DEFINE_OVERRIDER.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_GUIDE.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_ID.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_INLINE_OVERRIDE.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_OVERRIDE.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_OVERRIDER.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_OVERRIDERS.adoc (100%) rename doc/{ => modules/ROOT/pages}/BOOST_OPENMETHOD_REGISTER.adoc (100%) rename doc/{ => modules/ROOT/pages}/core_api.adoc (88%) rename doc/{ => modules/ROOT/pages}/custom_rtti.adoc (54%) rename doc/{ => modules/ROOT/pages}/dynamic_loading.adoc (79%) rename doc/{ => modules/ROOT/pages}/error_handling.adoc (58%) rename doc/{ => modules/ROOT/pages}/friendship.adoc (87%) rename doc/{ => modules/ROOT/pages}/headers_namespaces.adoc (92%) rename doc/{ => modules/ROOT/pages}/hello_world.adoc (85%) create mode 100644 doc/modules/ROOT/pages/index.adoc rename doc/{ => modules/ROOT/pages}/multiple_dispatch.adoc (82%) rename doc/{ => modules/ROOT/pages}/performance.adoc (93%) create mode 100644 doc/modules/ROOT/pages/policies.adoc create mode 100644 doc/modules/ROOT/pages/reference.adoc rename doc/{ => modules/ROOT/pages}/smart_pointers.adoc (82%) rename doc/{ => modules/ROOT/pages}/virtual_ptr_alt.adoc (92%) create mode 100644 doc/mrdocs.yml create mode 100644 doc/package-lock.json create mode 100644 doc/package.json delete mode 100644 doc/policies.adoc delete mode 100644 doc/reference.adoc create mode 100644 doc/tagfiles/boost-openmethod-doxygen.tag.xml create mode 100644 doc/tagfiles/boost-openmethod-macros-doxygen.tag.xml create mode 100644 doc/tagfiles/cppreference-doxygen-web.tag.xml delete mode 120000 docs create mode 100644 include/boost/openmethod/detail/mrdocs.hpp rename include/boost/openmethod/{compiler.hpp => initialize.hpp} (83%) delete mode 100644 include/boost/openmethod/policies/minimal_rtti.hpp create mode 100644 include/boost/openmethod/policies/static_rtti.hpp create mode 100644 index.html create mode 100644 test/test_static_rtti.cpp 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 0000000000000000000000000000000000000000..192ec2622346eba2eaad62ce3500058fbdcef253 GIT binary patch literal 113619 zcmeAS@N?(olHy`uVBq!ia0y~yU@l-_US zl`=|73as??%gf94%8m8%i_-NCEiElUW*8ai7Nw-=7FXt#Bv$C=6)VF`a7isrF3Kz@ z$;{7F0GXJWlwVq6tE2=qwj#H{*B5SZUNJPFlJj%*D-sLz4fPE4b8|ud0(-c)Bq$Z( z46Le)Ln;eW^@CE2^Gl18Q-e~|l##5$ZxKjgfv>NXe^F+7W?o{BOMY@`ZfahMr;Dvp zMQ(v!N@j|crGt%nWRL&5SI~%`DBF z3=K^j4Gmo#9i3ebU7VcUOk9nf3{Bh&VR}9Dic1pnl2c*!W@e^XLG?P~)obNkl$uzQ zUlfv`p94z)0U7xv`NbLe1q#l=W(peNnRzMs<;9wy=mCell}l<-W?5>ATTy_oo zhzU;Dpfql$fXF9$EHdeg=y-(;jW$a4zhI4qPf;4@Sdu+4h2=D#m~w{!8vjh;_Fp4t2S-sbcF_T^9gAN6|wwPp7| zd@}z~HbZ#QH#Xge-4lJhm7^F-}}EFtp9bc|K8U(=@Se0UE#5>`}fCVD&yxJic`2fN z@Xud!NNddk!SB<1ZfyM-vs%$~|AgM{T^IKp-yIU?)9rM@Y+_v08_iI!yWXDv8_(bF z-^;dcX0KP$M>WZ{*IiyV9(^f2{nV@f*S(G73twIds(QfMy*sOS@6YwdJEZ=3WZ(JV zw*7Y}|9yM;Hvj6Adq4a-w)O7(U+?aB=SSA&WS{46c2VzC`(Kb+TUYl`S6qMl-U){K ziY4kNtrKTVb=KZfxGt#c`le|j)ra5P-u=1t{ttDR_tQN8Y)Sw3xH!FjfBD}@bMJK9 z?kLz%n)KnB=K47EX}6m97aYDTFCbKI`s>R5?UT=M-f}Omd3R!umiV>nGwv&-`bBuP zJxxg0m%Oz)yv=iyxzx8wjO6$sdasF?&j0n*M)cdH?6BeASfx1unfDo;is=iJLYp zP&M8X5+$v+Lhw?Ng-LQpLAkF*vP;PFuK2K^fK1jm)7wgmxmPU-M&v{%aet7_Zs)xe0zJow(rYVzc9NGKlSD2MekmEcdOFx1JAA=O?%yO zYNdFbaZ>vF`c;B&-hO$%_xC;d+TXM1OYqFAzkNSCcJ^))3EP|g%3^x@B~#9pxgRc^ zcW-0yN7?$HmzR8(FkBeTryg>JJz}ne=ruL!0J52|LfT_e|$T zE}VN~^~$%4eS&81f7$;(ZN|?jrz0XJO~?O+@Ve9?b@<^7g! zGbhdyko!1O^VVDW-}>`!rC#gX_Ut;J_^H?PtMBajF3xdxi)x<1%)QlW9dq@r-CJN~ zZY=gqJ41fvJD!-HSHBJy)K1>K`rlUL`-dbSikBUGvC~{aeamFyZ9l}acg!`7y0U5c zi+}&V@~&ig*jC-vJ-e#($JDhfI{&u)KB8{7c3%1WANu#U)O)>4k-QgP8|1g>!z7-m zyzgV8)1S@hkX$rnv+;r{a~2vEeUF?nJL~9&!Uazjd}Ip|3lZ%*>r3~I)nTvO)0tV@U*Qe1=~~o&YodRPtnALiNzIfY7_x1K4A3P54w|}d5x+`&Aky6sJc&q32uYM)GIO@`Ct9f|C!VpCk`DMFq z^6q+W|974J@6b#2b6zm%-?9CB{r~;t6aT_~Q&MdB0!hEla=8-}8U}^m*H-PusrtL4Ef#vBxWZ zHg4bRufF@JxZUo*=dQE(=P#<%OH@?V<0#8n`169b{Eq(>A+EkQpp|xki_x9RV5#cUg;tO`vDW9mW&8!jZI9PCE=kit#F@F0^r8|XBL`SWT zo?SiveSEmx(o>scw#{k`3CK?T$*IJrU9lltP5akBf8ydL=VBznnvD*tex7r zb*gD-%ItsdPAv?5dD4A(s%os}42&3jAOP-&qtd7c`T5ljXhcNpswK zo2D~PjCFLMCo%C6>sq#alXHDuQl}D&^EOwv_PA}k`e(PUm-G#T?yA>49Dn0?C2uXg z;O5eMetzW_|N8fT-~T;O|Le%%`TGmX3SL||#PNvHtL8_@Imc(SFLCSG3YzBRDSrr= zVl$_oi#uUbBx{uN+?S!7wtT+3)BklWJXhO+3ldJ zDK4kfye2D5`BidjdiCyA8i(xvHNX9B|4aJpGIRU-jHe#IFF5VlawjU{eciL<`MaL~ zJfGw8@7%YoKb4nXdONouapDBVdq#79Rm^#Q^os7qEawBequBc$v;txnLl@Q;aZJuA zS-QvV(hqAM8MoHSa~z_(=W*yUu0L_^*QKr5;TchRJzZf}b|io8keqo}$@bzavDdHn zE|TcEd^mRF)y%qoht|D{-Tn88;lisH_iZ=djGoDFGc~p%iG6|z_moewAAbxmTO78T zQQrFb@!N3+xew1tZjxwRbSc`?at2STr%aR2&lgu_&X8IEdEM2Gi+3Mg`r!ZF#B;xb zZS0-W=hzntrDnTx{5W$@L+ioepFSs|_D(&lJ}Xi&@#}We3swb!ECN?7zS}F$n0Dsg z?3>d=?Izl7knh%pUPs^dG7OU=iM7JZL#Y*Up1s=8Z7;Jwb$04 zeY?K=tygc&q7toDIA>|=sR||>-MLKcNkEos?gMGL4ueOx7Qb~>*3srXv6xw{WLGku zq~x!V1r^L?OXAu5C+YWF3jVutoAZ(R&T}j`FTd0~P~~XwQ8aMBu(DD$b69Ca`|SNk zUxf!H@+!%22x+|t)}4Otkl&HQ1%f4AQfmtyskd}LIP>qTffA!Pch#Z0zKi2Bc?>@= zB{T+pWUxqbalg1&l4a(Gvu+QcYu$-%cMp7hq3BhoXOaG^<%i0xdRNOPwL~x8dh+q* zB}@r+(cKFcP7T_fn$gyGeSBp4jjVFPKRbU+u{`VWw#9nc z89%?%3;|&st7P(2r}=GII``nmV|P@ZEM{+6rqQ(EV(#{5WgaqHBb)0Up7gblZ@8Pt zFfXKKUI&xDW*Nh}hP_v%9x%+>x~b*A_97*%ht9!MgxB6tuc-gDZ1ep;lcx7EENx2F z-847RKF7Q(uT<(k<82Gyf6Z}I{@ULdZfiqf>GGQ=_x-chYc0Q{WwfY_$Sy#msn#S=_D}4<8Ht#X0wDUT3 zH+H7x7y@hBx8rvuVE-8#-%gzxhS(NvmWI@|DuNa|-d3FG}|ZN%8tynLG%FaP#k&u7C< zR^J!l>Ff4+xo}qTis#tZz5O*cJN5TROD$jbBai1T{rG61vUa8A{V5k0M(<8PP`cJ*$jvD12Q#V$+&WdXHIHhj$^mhtvT?p!(!%=p6t2lf^#H2bbo%? z@y5f2>2e)7nR=>;Lpe=2z6z{)^ncHs}2}vBwK^owb_; zwiV4er>oz8N{Qh%+dPFY>zr;Z;yK&9xQQ{F)`oqackkLU@A>sC zXVz&=5y%npncb}M;el92wR1>be#^yg56nx$I3Ef{l*dY^G4e4_U!Kc*R&aLn>5ozF z`t$Er|5(5My1(8FqYaNY?W`&K{pWCV&V`)I*K+5s5k6Nbd;8_|geu+x3I;nEH_L?d zwx0RUX!Y1i=*j|@VuSMwzAVxRidg(L(@u~1;Pkx}tIzyxNN4?hqdjc;?Tb_QKD4;G zIH7&ZTeqZz!tM{<57=zI6G6agmGtkGIG_mXmNhHur-hd;EdW#)XLqe>>J6{3Kad zmh3*|Tgvv$o6Fz6`D*<5ZrzP2{cqdW+k2MYiq;n^m*2nWSygt^^Oy6!+TNUL?seJV zjmeTt$-6GGc?o7Wm-DZjNL)j&G~zmHo2HG56G-0UjMqqulK1>RVC z)$L7c?T#A1ONERFUF$zzGB|tt%Cl1q1x!r_rfUw)v5+~flXv_4?yzq^+BU4eWobQo z;vC1zX-yL%=FVTWc~8zK?knd~%FaHC-ZlUA+M4CwvfRZA=02J;r$lV|?U46|@viyT zofEV^97+ODm>X~i4us=Y^Rnnn0gpJqu z_}Hi4lPjHhht6AZ!`;tC|7X2tws-$Cp@*xmO1GTiaKYGM=DyI zgtLD9vE#&=B&81wYuTneT@iNE#kWLe`}){>aW5`Bo%-`>f*qgDBIEsUon2-!7nsh` z5H$#>ne@^~H`w4(%9%@VZbdxVy~?LJPQ%jWjl1Iw)#>}bMjlLx4-9PB!o}gADcrPa zgX|ge#XLPc3=b79T}f8SJo@0@icnHuS@8|Ux{sj*_n}t z4$S)4F>9To?|FB5tysQD=LPIsPopzE85S+?G3t?VDa~k7`zjk;x$kej_T2d{P21MJ zmTgG-rrE0Quth*8*(0ib^RqOLb4M3$KBpty$G^5LeD=}Kt=r0u>*R=vyW*3jA7@cFvfyL}*Ui((W&knlsLICH1jvkYsR@S>~bnJ6_!K zOkU$>mEWz0JM-OtuPZoiu%Y~2@v>#N^0!C#I#e-oD|F;de0}rr{@$DM$@zb-#$S>52)`8<+~CQ%XY08rb*2k%e(!sJxhXA#v&*tBeG6-i#rK3tfs7!N zRWf&FN*Brx9)-1&{K~W4AQAGaPFA>29*eukAu2XQR@Q zId9!_d{<~U3r_#^kTE%W`u4EfKeQ`7*qa}oOXCp#c(BVPY9EiUj*m_K6N|{KtxF`g z%vFa*VeI}mP|9r$c^8>=k~iNd;fj9sC=?w%E~+QXA94hj}kA6 zKCnR|_f6dG=Jkux-UNB%G|8MXkt&Z=_p7(_ zyms|cd*LOOvP;XjKCe2p<0uR3A6?I6z8D*qr}L7Jeb9JuAbm@e$(+YGHS`=4T3R(+ zs|v*9W+?<^{VXh7`$2TY%1b@2j&ly%o;xqCv&kZjVaF}ceJdwPeFzI~I#Z`O@0#Q5 zoQXU2;;v7)xRX-E`Fg{inF7peH-zu6%R1jMsr!Ap@SXU~lGsf}j*A}5 zTigAQ@5iOtIdh9uww>CsVHP{fk8^XUEf(7my#L_Nkn~q`7F{#m)A~yHYU78K&n466 z&af`qGo^psiHa$|mc3b88Kxq@*_+$#Rul=iPP+J4-tO}jYd^+_o8H2+ zrW!4Hzc*eq`95EJ;Gq*1qK|L;*qJrH(=oX*aNtrh#Vpi}i@kIqai)0-9T<OmXy@cPwN^x@D2KyB{Ki$KO`orc-mbP_z$=@E(})@oA~YLw|mk54!`evbJ65f*v@*v4{Ou@-n*7y{&iAZy^YlG zNmE_7UADiPVORJy=vvlKm$pkCZ_l1xd)IeuLh$L{*U?&A{;K#E+txg?$?N!XOYi0K zb?;AEELqEz(EB!LN7u9&GnEb(iO+ucV@B;fwg|RgPfyqyYpz}yeBcSgSpoeo>*`+` zUd=k1koG67JX!nW-k)EuuABRL`k$Z9+t2OKE^({>*6E>lWRBRZH-{4a1f!=4nuJb0 zcx_(SWkIDfX@;r|cHbEtqZqgjaS7-}FB2%JnDf#}daa|rR~*k93%Q$0Q&%&v+RX14 z?pVF*Xy~ye=fWb4Rm*)p$QM6rvz*7hB4z4=i<6n=mpUd){l2i&aED*NwSKo%r&$S? zYC7X<71h8{r`Uyut&$X3tTfMiD(<`*IrE0lX6L1TIj35VJ527;d~l+us)fV;%MN*4 zGaqZ078x1I)}=2mZM?MO?98*AzM`yOTn_4LDaQ&in)F=T;rBYS-{Jf94e__q*macF zUi^0DcWA{TrH(^V7FhtAj4 z_iru^|9-2r-|oHWea{n5!}tCAUH4u#|EX?%OPl}7vn6|OoUFXYo_m?eM`Olz9zEtj zSr5%}L0uQwu&FY39nN=Dc7*Wh7@Xl@UUXIRh5EDu4z|S|I~_lY7&7#!>&In&L8~SeZP~i?*Wd6pMGfHs#y&kR|=!pWsrt_S7ifL-L51<5nV+rRU5uE2Y;IuQ|J84Pg`8tFvJy9N%@5snJA{X8m;ZNz zQpZ_g4}~pQjw=3}bwTR&hg;Vkb*^D5iI$kX>(h?I&w8%TO6R!Q|MR8Kl%=sB4txvL zy2roz#MH@661aQihgO2kL^CJ$UBJDYm_(nt7tRO!n+P_Q<(Yy+3Ou z8w9UBz`t6?Cm>SG<*z{I3Y`fu=cg+;O}%rR_v@afL@x%B7_G>lshN}5uBB>lFH-Ob zj?=mS`=$EysGC*WHyYhPq$S9&!n>8a$7*%600J^h|b9$}r-_CV`px1U_y zi$BfN%ZvKAPP3`E<+)`NkdboWD0f^_>7p5rPK2mbW-bcYqp54-!6TdSAGH8oP7~dZ_KP^LsxuE z5YabzeBuA4pWL&XRkF@J-N4lrGT-6yL{^)uZpZmgPBB{>wP^G?3IvE`UF(rgvA((9 zWlklRuYCNG9JfuIir#z^KF=~CPQ+FDozbTk$FAL5>i#}Fa^Kk>Q;+xA|GB{?_%W`& zplaXVxnj~sXB>ED_;%qf?V}T)b{=@^z>c@_ac;$b;oH1o4gn%&i+W}SO=nPLyt^Q6xz-0~ zj`oDPg}bLd-C@N3GGnguifRRo)%j&nrjN~&|6b=g#L2n(5R>Ws+FANclh+xp39Jh0 zcihI+yhB(-CU#kYtKas?tUK=Y>c2gjEvV5bcjNs3v*P=n#@F88YCKz7{`ZI9cAr{r zU*C7``JY>1nKtKkF6lh8RYWAmneRKpr#XjvwU)-N=ANTfvt)|U0htD4euZU@|9X{l z7VqlfRVXT6>HKhmb7WJbdQ=#z@|xa^8-@4zjV5f^B+__w!{G&-yo%osh!{^f<@xi% z#a|nj9n)%?UbrZ9w}8(l0~PljYnO$-G1Zm_GZn8N*b=YrxHC5$m~w{J7P+;eSv;R)`0 z6)!Gsz8lT|G*c_j_NxEJ1t!-yW0@{6HHaJ%UdS&W^USTu#_~$&U7eY_zhsXT{z@pE z96oc;-%0Z?2RyMb$oRd1!z94Q}x1#5#+s?>Z|e)`VAEHLB3%tscf>{*q5DSX#< zymiUX2>oEjK52H@F}1|9Qm69E?7G*tobpk(>Q*(LB(4)&_r{R%-c>io_kq7&v}WJ` z@@V>+Go|Zd_Vy*V3b3Vc8&5f5F8pC_;9et1G0P@a3+aN$S-QuIHykd#lBITM&&($a z*4_%1*^(adf9=cVe7c)fJxPpt(Qdvx_P?8}zTviKPi|`MHO+i{Kxyv6Q1_XSGr|O} zg#J@o&)l>~xI1Hu9?^7&-!HLxy8^pc!zs*`-;jblgjtb z-}CnFljQj-hc8}_`RXBD_Dtu`#QHza1Y&M~ey_X#=j>DYf2x<si!&QG) zEmpX;;?xyG=HfX|Z%&%xd?D?A`o>w$4SYKe+`eMcz3;pX>zbhBXC>+brl;R@f2Cm+ zy4C6WB9@K=3tgktt>;cG{qs?)Lfp^#!xznKUpAgxd1|uI)_AQI2Uo1#>JxSUPNU_s zj^y?kUh`k%Z1#JbkX3L}`oS<eU*zANIbF*7~$YW9>7cgc+>tj-|6w1#Vl6wN%FR3ODtzhUu$sPtD$O&Rn`pQ*Gr$b$|$L9Vt3rD zQE7C~yFGQ?j(nk{&*k4lH{WXwlwy2#QaC%qhf;ng^?QKUT~tDihhe^-0Vm|xyX>gU1qb9Eoj^4phP|KsI7 zoGQ>lJq|ZE=2d<)OaW z$>||4Zhg+Iww&b1Y!|QB^UkL1dG_=8=|At;#7>F)eA3!1>hrv}{k)otc~5F5x*xl~ zCXqouIbJNOGO>G;gU7;ye3=I>Z>aLm?oW2&@SB`HJBsxj!=ZI^iufPpJYkcv*gWT! z2a7<;_wGxn%N5cX71l|7+O{@3h4BW%GsjPz(od(nf8S7iDRfuU^|?NJ*K-V;TUnf5 zeG>B7?I&xk8q6Kaf(rs|!e%)xiQ2J9WzNor3Fa4XC})++ z>{^w&(n#PNTN|(H?~~4U()0X|D~FgJ-H^$<@YH1A>SG%ZKRg|NVt>*1FK^!Ok}DPT zxZi%`k~4qj^V!p+_@17+#(I$NH{(N#4kiODv!p=1TXP$@S(P5^o@fgUago+(nah5k z;dh^n?e)6s`9=Yc65bwC6?nNMEqZB3c8SAVmAzJi_KKNPc^`)+_pi%va=UY3UhqTh zBg_0gzCN`=*gj=Tm}KG`?`4;#ZT7s;EV@v#z}R>j(_{6}ZlkLyV#h-yzPw`lxjtVl zzs`E+hbO^hGbT<=EqWqgS=geZJ1K1PpXv6h;`);(A3yoMUi{|U$*ZrQSbF-&CDA`g zRXKa-)qJmh&~IC|5=HF&Ro zYvj$}(#3USO7u&v(9ll{A1$_CwPszM`sKUF7`l_4f8^|r3AJ3`t@btULqJu~ixc9f zxmWFXU;5~Vd&k)Vu{Z4V7U=lSdp4`ZX9?SauCFYUL%+6OVwmF+sFXV+H1l7<<5x?2 z*XUH;)Hwe(z|yMA5ExBpi9eM`c2>zgEyCCFiUhcCbW?_EY>Vy3?G6qaH`0G?=@ZOmj@n;s} zyM)FA`}8ct6%GH1g!~ZLw|v8Y!)5vg(OOY*fA5IvRmtAE-x$65(4wf74i%G{FTOXk zF78&nQGbxZELofTfb0F^#|#bp1gGoyTuD&rUc=%)c}Z$y#M%QHYSoMHs&D80cp&0( z;k0bMQzO*q)klN;Q3 zd5P|iWch!Ge*Maw|L2Xf(YL;m==zV_zVCT3y*@=fRXr?heXi>EJC#3{wkxasTzPKc z*|pDE+QWBe#ywkUv8RgLgR!dc#y*3btx@y;opBc1JY6KF<0(@^I-|MM#7*88<*{``}P1g~GvDIPB zSKP1feio$7b=Y%Bz|I_1qm-PymScq?ON&Yv%1is^wyeqG4c(QLxceAe&gWuhoeAq- z$+Ro}?x{HA75GMAO_ux(hc_o~y!$?dyP#9_%>3V14yWr)f6Ng4=(gvy*n5)l?{vyK zKR61{P}-+q!x*5zB*}K(?ZkpJP6c&Q?1enXSQeSHTrbF%VN&My$eqJ~aFZy*mH_RR z&%vQ@R;w$=u5yxkR=MW!xyzXw-TdFE%@&i;F3wzDJ7EdeRzoS}-?}@#Enqh93+tQP zcP#84@7nU@3(31u)&wjzk$j)_`E6qLx`&dt^ER)!pIxRp`QAz4hczyT*WHhp7ahe{ zcJH<6v)zqHXR#(^H+_lF<9h3D$h0`!r1|n8wX_c(7`6r6oXsGpsX5W6J9<4so~16s z!Y?IPH#22BFzsZ&sQDHCcABK7RPeYx!;& zmSgds+P2w9tvkL=Kxtn8$(?K0ZnvxZctv!7b1X6^MTqa&nl*@c$uIxyWzETQ24jT8Loo!?e_fJa=VZB zlpxD?rvq=J`V&NnwyLr#@!?&rbpZ-*z?2h-C z_m!t8qj$?;&%4tme6JT^d^)l8)2-`QDn$6oEjIbvWZHjM`1`>9#qxK@PlvIWKlFTm z|KGAd&Gwtt|FiqsAMg3hs$^16$*jziK4Ba4j2Ca-neCgsY2`{bMN2-F`A5$*y}w+S z9v*kuEB5w;)y0KonYrtK<;tj@@=;6K`OvX%&8vuC7Dj6pz29V|-EYHo2_syt+U;ZEqY!Y7Uht1>$%NFsiaG*l#d@*O-nSl zS+&^hj^_$?j)JWh^_6m+9#?w~EuR)hwbE<^xZi;6w+>>kCV||wC!&D}PdkoxBK~Yt+ zI*O`id1qMA!Np}5QEfNu^YY#?J3`V@x_)c z;_kc*OO|kZPhXR%+8nLLt(>}KOGNaH>JN|SFG;(%!o=gy5!WRczpS)zvuUfTU7_1>@@%T>ZTh{T!6>7x#eon-rVn{c??UYAczVnWeBSa13~S%0Va z&y7!~*4Mn5^I?Zp+x`EWp2t>w+4w!Tccszix);WimdyzIv+VKPw|npQzniJ1Q8($l zxQ2j$`KME#jnC9s`>tPAxGwy-;bgVVUI9vm*Tb6*hfb=x>e938=@lQXYM$i4@CRG< zHlOrLS)uLlM(FT@Q#&%I>p07$O+8Xl#_{}HWLWuIPsbQ(6Wz~D1*_* zXkNhe?fAx}JJ=0F(-@5=-(i`UQ?%dw+{1LMvtFT1{mco{4-}YO+74anO1;dJdRhG3 zftit3|ANo)xh6`vhul>=7V_0Jd!Etrj7v8ctPYeDR#>_*@v^F#`ntKhRMs8Z#6N%9 z&4l}0iJN!0Hcz;-?@FA-y*zz4JD1FTQ`$4`y!fU+HTjs&?brO9n{H0#-NYy@zbQ;x z$3s%e-1pS?<58_4Y{!_n4>I?Q_gz}PgC*y%OSqeJbU^o42?MK!)e~l|TBD(;#8SMF zi+RQY{neTb3`ce{u2J17uOP^FdCj>4A?|e>HqMpH@Sepa>h=HIIic_OWD0Um{H@%d zDuzuVV6&*aZOiR|>|&V!cc+j@waSebUMZYl(-b$$sB+f5oxx3q+hc#_T({smZL`u4xPLt z^7YNsuIIn5@_GI^wYc!i{l9xlmbp|XEb*Jm%hIxE_g+zt^WC*sIS)E}KAzosR>yyS z@$Qj28@BShFIG8gbMwQVHbv$6hpKkw6bp7ZTq+X~nRfA;(y6^6lFyd%roK6y z>Ur10G5UGd%9$%U9`2dFYJMG)bGGWbbPoj$#Zr0EXA>v%aP4ZB71L7>TP`Y_+!OxR zc#qyEC0549-dPG7-3v8JEuYR>@bk*@mD-affrKRaf}mjAm2p4L6? zK5_a#W97wS&*i>Z|5g;~-dbbF9c%nFTdJ?@>OVK1_cp%oY*OP&zXE@^$<~ z{`xsn^7dW6X7=}M{qcWqbf0{+&wThOWB!$tkjSfzrqTH;r9xihESqg$Y+F=&*yirv zdoOP~F29k!Z0>S{ywh1bJo6v0&YTsSrFBhWhxF?Vxog6g*D-we3l#KOd)h1On3}NF z%(>@|tPO4+hj@oney-R4#G%WnD1ZM|&StjnZ51=r;) zjgn-Yx1;laU0~n$F4DQ#Q|9ipxoNlmPYZti z-g@`XMA4*osjoj7*GeC|lfC8Bq~7Z5x4mBnEp^X)x{58bQ})@}U%GxSzUgnLjqV0%ju@^* zZUyH~EuQ#9Zlj%etZu=!RFy+NEpPHU_|)F8?oMnI^JCE*flLO) zDVdyYe_8+kvD>)i)5G$=Ki&0fUOumXz#jj-&HUZj*7H^8y4%(Muin1@tjgb=e$~av z>3>gLRD7)Tq`7e8h0Kn}>U|ZB;mf!-aNMbq=|OB^07t$L*5iG2Zi%JSJT-9I4`VD-_P;Ri|f4Xj<&OT zm49UC+s&S#AG_&d?d#&|B_EG%-?LnoY5i51#}^J<>6bp?$NZ7~C$oga5gmsr*0jw` ztA79fY&d7H$z;8NXUB4H-~3oM!~NRUqOixcFIqy6_)ZOApTps?<)7|r4Py(==}{A& zO`2wUo`?DPE_+tqz^lCml3|H6y5mkS;#$x6ZTiu9p2AORJtni8a~qkG($2O_NPl&XK}IG^ z#LeROlc38HUC;Ix%0=fm@RUY!-45sU4He-2+!7aO*c>>GYog};?~4vh(z$5jui4-u z+QY5VedwY#kp+uX#Bv|U$IWibiq_^RJA7@e zFjNz;dvs8;r!n^1(j_{ZvsQ3z$!9nLY;kx1^hGkbXv(x|R-ikKZ zrI7qMao5$;4oOnIYKbXLQXTJkZr-`8qo9;*@v!^qW!sZWrX}ZZm~T8G-D-}T^(5`B z<`=G{yI&62cHVZ?kDAbeVuygWr*jim$yI;PzQlc4^1)P9gUj=3kDG)h7;p7HRoQYr zEcE8t%U8wqC(ZvW`f1+&oBuEVk@@*9d_s7=xn!jWu6#mU9-$hTstl`Kabe@$>23xN>upc zYgcXf-)u`LJG6eipvomambphbCQD9V;`b!H^G9a1%(j&w#rhMaBGh+H^i7J@+);K{ z_!mc>$D~LH?PWJ#&as$k^Qn{3PT}y1Z7vN@n(EB`WL>WM+I?8@K}Yx&*P3v}za|HI z7#I}f*UfpF+OWr^x-k1nWZ!eEg-h-#qlyi(bUM z$#c7`p77#qW$BJQ8%3*EZ4k3{6o3mdpUfBEsY{om8`|H9Y)vittdVwc#Ak6q%+ z_~+;UG*V`j$az)eK2cWM%YTY|-G@V;=iS}&`{wz`2)n=5^`9p4FAn)&%zuaf*)8j; z?37ZONt50CwnV=bJ=L`+hH;B-YsI6^?ir0CJbA}>GUbndOby)3nJ3p2(y`>?W3PJ+ zwQUo^non$a-MsOk<-~_6Nv))}_^Wb4|}9F3$LpVeP8k|cfH1%OWkXa-EDt-{?31w zm#4+=Ro;I5J)Xr-$m9Q^0GX2K6Ib*~t|Z%9f{?%V;EcE({6OFi+=CpWWD~aq<1k z%ub22^H-0rJtVmJg?u)brq+r>Idcy>TIx;CWPGN$ntAyO!(H~}hn@;=Sa`y*uDtNB zdH=loaXH7{F1w!9n!YZlY*AUqvXu;5#02y@bwVDRw!A-_*?eO~j41P}2X_jWF#pPF z)Rk{t*vPW@xX2IZHw9d?A0C%~VgK#r=F`WoyG6?Vu)E=GoOyX&l>C834IQhQ6jjri zmKQHpUsD%V`qt>6Hg|NUd|^h^Ld#88{9M=-ygOH$-K} zmaUfhy9E|@2f55+Nb%gM{ zDF1Ga>t2Cv`Z;T4Zxt*l=fA9W)gZ)6eaedFyT7(E-P#(p;pUdJDKC_6exI`=G-AEW z3#F-SraDRYnMJm3*-}tbrzyTHb@xz6`c~Z(Pw~I@&_Z~dABIQ-l zw$d+0Ue@LB*l@wF@RiHy_kaHG|9`1W{m;YSaU1Wv+4KD1c|G&+j03|zyQO^Anr{aAT}G29zpcAEE$;eUb>q6bcRZq| zRn2(0N8zvtYaCl#Vo`*P4&&cyG0)GpekT4&e&xtivMX6M_qzj6xpB*io560={O7zq zD?A~-Q0tlrhlRn~)k&hex6S{xlXWLglR;jqh*ONR^GoxC6K*})wz$3Wz+MB9I*zQq zcVS!{r!~*TAC&sP^{r#hQ2|Eo#rwXj%($~DYsb+5f90}a^m{i)P41>h%{B8DVFlTcCo|G!-1FhpU`=D)uz#`JtI&qr zd5=_k7li)byK{5X&HjB3O!vMN3mM(~xcHq{yUC?<$JB1TPO|Xv6N^<+ve1fp(|392w#fLo z%6%93^|roR!M;X!jRwb8+3Q~6lZ6a?56j5=ex8)^M7@do9Iu7qY)^X~0luO$5)DpX zEZ=86-lP0u1&;%#AG7njRZV-vwt4wHYAZBvVY#im=1`0Dj<9akpPN*c9?N{PRNrGl z_V1?U>sS8NU}_d$V%hTMuTpsR-?~$U&l2TpzD5Mf9AcS&Humz42OAc&iR%aSYbixD za{m>WBe|eZ^||vi_nSc*LN*y`nx3|ekn{V;oDe3oQ1e`-y41rq zR|!`8k|e}7Gt}burAG~uJ5Go`)ITcwC2QL4+37NGr=Rr7GV+akXP$h?>(6Sjg9mv0 zF=advZXWlIZj&F1^QY&XG4y z<*-{TY<^7O{)o)vTxNofE{D^f~?8+rfdn7ZsLIp0|P@8Dyr@lZS%)**QKCXOZ3%6=-ukj)}R^Z|RCCnFv!8){C2>`P8D{wz$VF6$!DO5u1E6 zF8jz)ncJeV+6o6UqbITztiN;k)CBFygl+R?R4lNP50Y)#d}y^?wqQ+IbNl4#92Zv= zS5CuuU)cYOysMcoVQx#`r7uSw=1uH*Uvuo0aHin&)a|z=L~q)BJCjgu&hXhb(|eKB zt#yI+tsMy_QEVq0H|v$IDR`u-{iTUvrC`G2=OS;NJ(y0VXB@jBx2Y#p&rqJbTTW=I z!w~kf$f7gB%(e4UPiaF1JgU{e&6Q8-BeOA=bviq}^ z9^U(QuV7c*$)(#Gr<*Jad$G2}dU{?Y-(fw5ZPCx(H8>O&=kmV!w{$M=E|dTN{B11m zXZ$&)9RKHO_LMZ!{NJ|_f1>;(CX%+xAHY- z-IcJPYTYfE??0N&%O0RGWfubnOX<#i9KL0G@B!Bb9AXV zN6i-Jmva5>%pcU=oj3HE;FtTY`p3R&|MN6LrM>>C@9NUH?SCo!q>f61(XF==lvEcp zX4EL2x~O-fY0{n2-?Del%~7_S95mG;dznF#`Gb7>PZpnRCoGK6(Jf^Ud48?$gQxP* z7l%suUY!cflnMTxt#|RW{(s}YrhC^_+Fm-=8*%8KV|3xaS9!a#ssz%mty;$SeeTNJ zc6VC5r+ckFo*3ev#$v4eZ+*Rb-Sh9?-hWrs-?ILH;jbR+Ijy>CPqNKsMnw5eoslw8 zo3C@O%IuW~man+xZSZx9jMe9o8L!^o_MdS7r|Ku$^$Pa?**@*me_*X2|F!Nx`|0_W zcYm1PPoHztF;HZl_lK8SoR*#4cZ|}@r(TjSx_fofYCpN-^RAiBS=)W?#iIi+KJD6P zI@5kRztbtswZSqvOrgaNvJ+ND)vvkqTlj+M>fjrbpVjW@nIS8*seVVF_sg``ieLAx z>wo$3a9x&{=JjjObJy&1yfN$b#7(*SGX0y&t{*yj-U%Ts^8{ATjF`Uh z%IC*n3?~*oZuDgh?hntk{rBRjx?cYJb%qDM`hVTsx%7Bh*ZiLgm-m|}Z_v%bLnB+07eV^_$E-hc}&fAKYciqi79w|3lK~nYh z^ljzt%0Vqlr5j#-Fcr5n6_J-sVAvJVyHfmMQIc2AF7@7~wmaH8nKsHOZn&7rr)`?L zfRR~yk&P5bKo~>2ht83kHKxlM4DHI#8!b5}DlHSb=D?rRheDI?zOm+=IQ8{|124*5 zLXS_|v-`_B{&~^ol}<(+HkY$w*5zqVsnuCcfCiJvE9UQt{TBOD%!QlZ28IHWq%BIyh77)?*Xt4UJ)kRhSQ0 z=@~8D!Mx_yX0!9ho-)LUYj0XK|9RAx4=a;z&5-VLoRL_j%VYjr>ug!lrI#f;q7Ga% zIK1<0y1$)~-8~-Z)t9=%ulE;TjgPcWbz$b2rEyt-PyhS5=DE_-Z>)8%jZc@%GH+2; zyr!qS`O4OXoH7M{{$PB@3!@37K4JvX_Jc$>yyQVE$89P-DE&tj)bEE&n zU4n=1h%)fnt!*ou^WW{YimZ{(T@MRhf$+i#?psS&{hQ9S?bzX#jS*&%v)nG7Un{4c zspD$q=d38Du;24yZ;IodP(7d3vbK5eQ+zG9R7_~J;@p$S>iu=+{O7C{U$!0NW4^Ii za1Ni{ncgQ}yem#QgtJVX7poVrNJKyRz#v+2HRTe0Sorb42?rzWvS#`RJY*@Pvx zT<@DZt@m7$dg6yXu!gL6JdNL17H{kso*V zauhKbZeLM!VaBya`OwVB*sBj#rMrfHX888A>&*e5BhnH%zxjJ_%8R)0`<2cW;?Jr$ z^}@GZz(#bBUtNEwF5kO%Yo4|3PovQY+DI34ZQr3s3i| zq#4(4`d*T-eQ%}tkCsz^MK^5O+4vwk_StH`OBYw&z8%SAx6;l3)bhz2Me{fUuZo;g z>z}v!Jkaxni z)T84TXZs|pYgKpU7i&*{pLWe(ZBO`NQ^TZk!GE^plehm#|9rdtK;7%|*yz=r^>29} z-Mac_dfl}EGz> zH~4LiNt~BH^O$+g0iK)9ADMd$naw0p7}dNym^?Y2Udh^O6;l3mm9+nz#A~;n-&vJ) zu&4LV=QZx09j{ici+(^vyd7}WSs@UW+lc=~0L?Mc@yCtXYU zxWFYbXG4;tW6+GW5NEqS{xx@JSO1we@mNW5_1<~iUduYqd$c;8^Qdn26MvxCprg0x z>b80B(;FH$+ju@U@l}Yhw0pZejljb}Jo;yusbt2}1<{qKZQ*+*A59gr5>m*3g`SG7cT}!$? zo!Rv{Gs1w`VY6LdG(%D2k4L*~lvZ(PA6tCnBUh)~>9uJ_<}oWx|ywTBnO& zXB}KCx=8EDw8ToU+5TSahN=ga9r+ijd{zm0T0|(y~waM3K2#u*|)PG{^Z4NsGG^1RZBfSWIcV z^0M#?e}c!f5{~ZRR;x@4HRcEYHzFo37Tlqvn5(w4hv+J& zLjsc)&JyQxFg?`huDZvIquejxynA4Yl*76wP8>~t(wE+E7XNyyXy(Qn#-U9)2iQJ2 zPUL2eD4qJca0mAtPo2H%AN^FhDA!`p=07*`wAi`_8!oi=%s+X#O}r>ZchBwaviD1r zd%sRF@TgRt8eM$tUxseh*+b4X7d}33wQRi;{Ox;b?CC1SC9C~8?@Rx7l)RX@=fAMj z`fCqTug6_lp}P2?QH#X-lb;uJZxPg$mn|quSbNtliaT}QxpR~LK41F#_>?6^#k=<# z1ZK1KhCKhe>%O$g@3Og`zA`~~GxY9OzG0uM^W%56e8su*_Ww7gmmIIY>#g_VsV7WD$M1R%!dP%B+W~bFMUgn(JYadqts4c8mCyB`VRkE=E6_dR9|5IqYC&e18}F`?Gzg{;md*x?8F5&eg5C z({)HdOm&)=ZOqJx7LCjn{-5KTihl4pb_-gtXvo_sWVT)7kgA?`t1tR+ZfVW8-T5m0 z^)i*0B#EXAGzhS)(=BB#_joa!L#9w z=lD*#g+FIp%A5Xd{*PDNw{uqgocDLFlzl}~EQ?-(uzcQ3@k6qw zc59WqoNo93uD5>uqaRnUypgQFRQKua)5W{k4_wZH^wYQI zxZ~v@O=~sg8M4d=+=Ud(?o7z)kkhoNUSuRP=g8rEav~YhyCc`>M)OAqxyZA&9rcj; z*%*GddtpwP$&sx~yBM>a6*W?iE=%xD4xL!M`Xy`hwXK_-G)hXl@*-A#W~>)KuBPz! zRbqU{u9!~$cRabYbJd_dIyr|1f_hMW2Yona#NjK)JAC=w~_2B5cZF#~y5mlj{PEGe8hCN?l zQTf<+``sUhf4^AC(J;@*{A0nb+o{v%eeK?T?c3bsU+o(NIaUWwaN)4O7^xprcr1MP z>$ttUY+i8kC$zWSHNPt}*RJ@@z12qSK~@Z1kv!thxY9jOna(u!2$pExeE1`a*DbA= zPj0zijms5wS9Pr*}negMf z5|z_k?7`a0w`^GV9@}R#FJu!_IHRS|pI582 zJB{~msJU%wey8-yji8GjcMGHz+NTw5F3tG%$@~1SN1fAG=Qu6feC3s%Xw{XTsYSOB zFKlhf3tHut@1${9E^>3Va<|l{g&+T~S!U>2eYgAk&C+k1&pq0+wO-uz;PQRH7V%F| zo4RLP{`YxRdq4j0)?2>mvimfl9C0x=I~nnYSgXByPl^N?yAhiU zoc$)sYfZ5@?Y`1%i$L36IjcSS%On_X7KEyl3Ed4^)3xy(?{~GWH>a9MM{acfefq52 z-kUQv-TI{C8(HplQ(#xBANSR~8u@e6Vhrbgx$LnjrO+T&zVy$v1=D}q&3iNNaBik* zHtSWJ-bXre4;eRJQD=N$#8Z6K@>TcJAMr*NZ;tlwp3=K@={eH{j&)BC`b}Q-b!kP~ z@q6X=pAS6WSMXf&c9e45=V$WwzWutLA9^Bf?XQ^fcQ3+cf8BlUx8BpA3AtG{b1FaF zHa>sxok#5^t7|q4-z|?^S-OJjv52Jk8Uf9T1!9uzm4{S=oFcv}o|B&ZpmwUjiCAVq zM-_qdqG2;tq-qWXcEwK!%fJ3mW?K7ph!TIkDDVQ>$`D4FBB5jlAI+whNj4 zb!I(4%jKb`zRg8<*^y%=hIAo z@KMc_XZY5j_PO@&taQ7j&;9P~D|r5~`McVhebq~*nkk4DbA6MFS!;51)xu^K$JAt* z-U*Ag6}wO6xRES*eQVX>(xY?D@1{-aX}?ZCk&uZOQJP(rW|+4jHJfe0;+&Jx!6@tcmf??mLdrVh-0&oOj-M-bR1f z*MOO!9NdV&IwAX5T5(SF+2U2)F&WbCr?$MLMEH`49?cbfmdH(mas(~oa&-YmcWrA^)U-MaPX**`2e&a&&oA+PTj zYh&L^&0XWAqh+3x_0ZJz)#~5;^7~_c=#(oiKfF9sdS@^f`$ny(B?2BkeQezY#|&iB zeMN1U=PWE|zIakGchcpE`p1IDROY>sF*x(n`da?)bM5=TU2X1v5nJ>8=lQ?i(*J*o z^}5C-uyx@bzrTy+e_lC$@5i(H8W;U)UB&r-{@$`|p0TM>}|FPa;rl*pE8qKj@B97#Ch9f#*M8Wm|L^Bi`w~X z^-=#X^S_=sYX3i3^hfkB**RLy^=qWMEjGUSGObd4(w_~-JJ=_DtGTiB+RP~nZ98>W z&HA+9zQi)YB^mlR?H$(jWeKh1b6+g1rF0STh8cu>d#JNm);sT zCr!zDZ(s_GBJ+K|%*TJH&sKA8^4R_+&gQxHuU+|e1ErlR`UwWn>ra2H=cf*l(J9!MO}X4+HhIVi>I!B zWqhEzk2(M1S>8g0^y69|CjNf^?-cL3ZIS0cwkBl#K69pT*^W1xB#jsB|GVw=!26Ht|9c<#0& z^4F5PzESC2JKdi>-+cAxftB6!c2wt0t&Y<(Hb0W$^Yo75S)ER%<)^jQo>N#~HOE}4 z`|i@Sh+;#4O53}FzR*mx3zqR*%X}0!W*FEMI3a=d09x#0ScB%8@ zukifXJH>7GhEeN%@*l_69)2jidV|;FI*Fc>_ZoQEq#jni>brXVR&3&`joc46sZH~r zC-Icd_? zleX;*wVgcml}Zjb5h2 zH?-AV^xgFThNfwVBa_6-2>DFyritkjv>pjQOX`%1>Gle+Jej04vwp>Pe8zV#hCBL(pkBY_I1s!5U zPHeR_e4~7$>Cmg=OuIy1WG{NTOu};2e~mx2LcuOsE1%qGUa&5;g>~vx_b#=M$$9I( zKbPO}?ft#lyzetY4>HK~8ps>0ldkBsNar@R;dPhZvelb;W#z8ws$U7u!)|dY9DlRy zuXn2Gy+@Ax-QSdhLTc^LDRO&05LvOy?u}lEMZ+AfB>#1@CzKu(oGdy2#j3=ehac>? zWqJ4OqHHt%WsQLy{O$0x#`7(g>w1P z!uQ?x2249%$fqt>Xjq!uI-OJZ%?b(K+pSAO7ysn^_ z#((fc^BK+9i1K4KJqDKPw^Y}veQdT(KfguGasTAEH#bgRynXw&L!7e;uRA*PF)o}g zq&T^5`Q63^;jO)%t`T2(i|>S8RXn;iGn?09PDQ%&=}Z5e{a;^+EVNZw9<;6W(2VGZ zGlF|Bw<{Yhn-gaiEucT`xZC~T`(D}CY_vHu|L>Zk`+pc;DLr_J|8J-A*H(e`_l*2E zSsvPZRQ}Ef-nf5hGw9)}`Z6)-Am2z?Q7lkE%Rh9c@Us7~&`=yQy#cB*BiW z8@K;#P?T<(y=F%EV&|K(Q5vy_uGfZ@9$FV&$fmvO^2zY&eGEF>*}TVB3QUbskKxta z;myqV{?y~g3*|$OCJ4ON`DDbAIAOi@w?vU!O{=TV-TVFOrsvD>>(;i5KNT-OzAh^A z_q~JPE}r}Gb?>{>A{&vfA)AZ8&A;CF*l*D*rv)D@*H_GvjgMTx6gPe5{#yUm=c23r zc5Sac-Xq=4sn`Md+UWegWgi*Gy3^&zhIQPARK&6yWA&ei2s zFur&ubj_s69y4cX%x7bsc6d_xhLk>A^(FZXEDgFdy{x-WuW2#z>fZG5(etqVOSk-A zU~%i{1!-Xc_xkheK9=u&J=uDD`(}2&H@4-otz+NMiIJ9;l(sLHaY#&iadPM6-P_Mr zBsMcioIiZHy>7$fp4{H72@Fza?oR&xWoO2+D`$-^btf^r`poU^9m&&RDm!P5dBwh} zPahQ9rPWU>**}QfvT4sYm)hwmt6qgRZxG~t_IbJPwoQ&-EADn(iT+04%%qhJtZvy*DuB%C=s($fdhn9Gq z_%_Y+?wV&8s%#gm6J$@@zI)!}<(4vg69p{heZCw0zHQ5bYf3R|MKV5hX|JpJx;p;v zd(jEco;}Ok`E;6o%|q@FKOY{R8(;U){r?|l{pvUSV%zCltTsm#)-q)m01o zc8%fu1z!0XkG?QBv=5r0Xf+pb6;F`cAoXyvCFOqZB6hdB6VOvPYBb{=W48zs394Q~i3&Ki`w$Pu^Ei8Y}+`s>!VEpaOKRbTE+kOA@yze6O_kRklzg?OCGB7e8kRgd9RKUxL)GG&kM(L35`W&9%fIK_%k=oVr$@{0RkeGr^t^Io#pbtr z{%*MBDfT_gIxKg~8!_qZSkpE9FN-AnX6te_yY4+(#c%Z5q4^WbiGHW0OkFCBP0TMd zHn(`C@8o2fzS2hOi_z0;$w@5VUDFdwi*mx;e*J51|NeGH~!(e zPiL)+e1$e{IdlE?p4$hN_uu{YZjXC!--?fhn-fdD{4cgGalZU{t+T;V$^L-lw`Nq| zkAL%HYxs}v_qgxRs6B3ddGon0y*&#|RCKoPyP@{-pqK6;`K7Xc2U%(^Pv3LGZ^j+1 zQ!Sn*PXxo%oHez%^L6&mxygLzNR+5++oUa>ty~YI?oHcZ?3?18JSjgw?n+xR$3|0z z)n9|BBy(Rl>8+}>xIHwDTa|l##HsBcx+*f|J-4qB&(jk9(%tq|zql{!s7qgkQILbA)s`~AO8*6|mf zw_@2v4adnT?fp6j6y@x%oUB^i(q{KbAYj|^S@+X=r2BVDp34e;t=}#-yKI}WcW}qz zTT^?Uop^UNwPW7;A5%WMWh~VA{$OID>@J(vP728@!z|bruROi6qs6ba%sYZv^_BZp8mS8 zkA!D+>3FSflCi5WU}8B_a>*}UJ=!QXHty|Hkqx_M-Lhoz*626wyZHHLp#BNtXr(f9J}~q0Bk`+YFBH`m%t{n#;gwaPhrYmPs8QL$R-?yVIbHdYbm7&$(eWU}!+ zzZD$m6RLkX>E8>_$I0ziCUewOnY`!ywe}+Ceed6QFKvIdX7jnKo2TQxy^nsrIb*!4Z#}BOI4*Efd@{Vg6?3MK?qm&o)1C`Jz`MVH02R z?$WN}M@b&7r)GGWcyC#0z~`X2m7U+lb>))7d&FjCeOk4xMb!I~(@p=^R?4|tI%`xv zPkSY_x$fREzxNJuDe05F&xsw?xl$ITFyEL%;YY!{i!Xx81vxvoJk$CLGFEmsa<2cz z{APKyte5wBLusLh$GG-f%*eg@+4la?nNeSuQjKzyQhjeU-&p)1?}5AV{l*;C2e%x= zE}bjBl5ytZCqJ(#Z?-&sF7UKu&M{H@gs`V7egQN0i?#f%V=9cv^b>eBeFv zGNUao!nyA4{&&p1u2^76l*7+vX@9#%+17jI^Xop(j{m;vy6DXZ()YhC?LK$E^yX3j z9q-!MyWiXWzIop6_nXb~H<>z&erCxabyS-N??7ceWW4z|p5P=16O>P~N*mKjR_vnYGA6m_im&oZ&dwFKA#BcroOXnQA zx%c;zcKZdj`5kB5l(kxqGFzAOMa}G;DgJ)nZ|&>#_J98Me&~#dS(F)7b9eveb9c|z zEL#`yDcAUABs<&mc)9pLH%iXyS#Mk9rIkBzZDi;tUAqlOufJ9BUTyh(A^*Folio)T zDed{xXa4^=`~Qc<%Odq_f-)^ntlO?JHDalDN~FTdIgu%A*52HvCv&mqX--t6T&G*- zkJdX)>8G27X3l-Cm*@DgMrZrIDZNT*s;Y1G3*SbyTt8K?t2gp?RAh&|#g%gzMsIIy zGu_fy+yOmKo16*(55q`5=Fo-dlA~{A(to$82 z-lR9{a4}b0HaWY=?~3E|ttxyr<{a9LXBoqTw0;RV<@^sjDe*gVN6X`jzpil4GcKeL;Hmyc^rs&c7mcXLWDyl?Sy>F{PP-FLbrmgz+-*hc|0oFYv)W2P9vP$GoX*qUK`p>S^i;<_C+MedRyjihs;aWqh6#iuwR&1Lz zMJ~g$toU~DF`){G@ zj|UY_M?TA#df?WF0B+$6^Zq=n{rBsTR`Z{&+pDfmbpGn$7jmrVpi)OhAAh;xAwkXt z$x~;ao^q-?I$6(d;)dVvcQ~Jyy=z!}F2yv#^V5Ng$yc|Oecs#NCucX4sp!(fT@P~C z6?evUuQYNp?AZTK!8>}Z6$8f(?{)7PgLHL%%h}3Lk10C&egFTzr}cL87(CtkeO>I% z4~x0^Vk%!d_Q|k+QP-R^<>!R(MV#jz3O@;1n7hc+<78AySldGV;EKM6|G`TXqOZs7 z`0nv)+mwvo{C=FpvccB1d?$N1EDP_Mx5zfEYi{?V+syp8P8mhd4PE`tCG{egzRZT6 z=8XQRRc>)}u3Rf#U@$9qT0y6*8MnTP^ZcUM^NxD8bEjGE^XOYN!%T6q&{K^{3$vt6 zj29&n?#xV^x>JiiqeA@#UX>zkB*y#)Quv!{yO%ACen zwQE-C4f`_}zh2>g=$KW)Jay-BRx=5YRDrhQOhubPt zk|rE@#nY$M|J)*crmBkQoNKNxG~OC9rmL##njmm}lf=JgWe?{aKGc%-H>B;CiEeh3 z)@@_Aljk2Dzj5QnbNl~4@BcY_UuVKQcl(cX)$N|{Y?;?)&i&%eo0)APrlE61^rrHf z-w?Cv(>7Lra#pzZQ)m0L6R&=ryJc$1}@v*g0%4u=x&Pv(>U()RcDv^y))cBDnjzO;PDs|@Ryyf&>n z+e{a?=f+2IeR-Uyboyj}Qd=9}>!hXrJ2`K#H!w6$fA7R#SfTefWjSC8!7 zi%XC0y*0;3--3)Pcsc9D%j;4>R-qI+f;b>#U<}s`hTXr zyS(0HY5euW*;}^RG#F14(|NE|b$6QIp8tETGqJ7hxXhSl6xs|{ibw+^o=cV zzC~-T*}(jHO-jMkYxi1Lx2?_0c$;i5dtpx5nyc%do?HB+H`P}(Ydwd&rB##Ye(#%l z+pjh%UyBLuJ}b4EZ|@!Hwc)cKuYK!R{jy>~#@BBbk8Y4_iwmByX0nU&)K^D#q{~IE z>b>TBiT!|%O&1rd<(_mt4W%O2`IFhY%#vl7UH9H!cy{7~X;1rZ$9I;6XZZ@sly4U0 zy=WnwzQlb)BTJ$V|6JL+rx)gK_v`UJcBVZ#YBf_8d&#V0QO}kfiru&8--Uwz(HZlIa)^)qR%Xk{G5_h)#Da? zJ6%03Exqje`TLjOq;oEs8WMMpr^v%{2mcNw-`|cWLhneXZ0Y?p!|3aToafq#!Xot( z`Yun72>rg{1n7mu%9mcczrojl$$a4&ySBw z^L5v~m9YNqkh(4Ma`mjW?`3Nl9xZN3Pv83}`1quZ;Jd4~@2h#t+^FJk zyXAL$TQ{}A((3+Ax&CXV5%YPrUuBqcebv=m(RYqr3sps(cxuAcBK6O`yY#kBX!Q#7 zD9+0}c2_A~Tv)S(Rh`2-Jg!o;rtb0f_xm2GPXF^@U%&>N?b&R5k8#OaY5&Ppwad%2 z{4vY1ioMM2l9))Gh9jYzh+=1{d>H3(vfKgWEM)#9F({ zrC_y5$cL603#8L+*XSOoIC1hSi>b1yn2{x4SAkFVhgnmScN#^ka-LPU6UlFu!JqW(|4m=&kEO$&qhz?uDG*wqRUwWC4rzzcb=4~h)%k>;Tq51R}Sk# z83U5SZ8QwtJv;C^UI<1=NGQbqO4qF=O6 zOWg^dxsEGTTCjq{<7GD6$>Kj39u(%;PR>g(c_LYQ;BKc>`kjl{_DNeZ-}$UvE9Y*s z+DNfzW$Z>ZAMpuV4?>=rNW`jp-hMUHEXMxf^1|59i9L`1OX_cuGf z?pEb*xgC#hng4y*UH0yCXOyhY@vR%BTCPpq$rz{+$MDmouXFClmCvThwclV6*=KqkGwNTv^>*H)1tZh%ABTYJ$9}o#TuIXA8t?ao9JYc<9#+Tf6GquGpA20%2_Y>@II2v zb=o!cAfLW#tJiz`><>-rLwr6=xR!1&9}_NQFzw#2>W?$i6ZFoSy_#@l+alkC{zibys|9x}n|6R)e=l1;N{(v||?G0PDZSHj5wO68Qnz2;;ryW=CS027Gf1h~um-xR` zf1}S!*?i^tZEL8~I`2`-D)YB%FFbLaR1|UB$t}2Ss;Syj=g^QS4e^$Q1RwT0`(Dr*k^bLtD4gaAlf;%e#pPz(=Gso;%s+nb zZT+vl{c=6l+n>go^9LT5zf{>&RL1eErK7m++KrG`o42Nvs;o0Jk$f>@_m6WACw$?^ z-}&y|U+bCS(K+SUgsr>6BYMS}7GJ55I=qdYu_v`>iJh6TBGWD&CabRB631HwGTm=( z$T{;+Ai=A83Nw%Jyot7^9!5{L7v%~2L@uar)3wUoIjK#&IqAod8FLj6xUKB2@DV!S z&2Fo|fpgLWt9Nhjm>QZ{pPl^W-R|d~*EDaJkDtU?weixqDDL1=i?F#i%Y}Y4WY?Sz z&U?VI{lpEM`|Ugnwf3kSkDB^;QqPfD7MV_yVl+;!w)m?OtXavie3s3|3&-v!eetsI zTDtS!x~tCFk~-&;SAW01b5HJ^&epg$uNKTI-_?}DCSblVG==rYyC|8zk6hE&zI^4o z{a>+P{?3%&Pp9|y>-cP)@tRphQ8-vm>hvL}Pc5(cd}bY<-RYy>7Jf>3$K=GNkNo|9 z2i~%*(Lew4#J8CrIaTNEmd~B|Qq#ZE>*L9@=5uTANl)Iawk>~k=)S7kd&`_$Zl_$F z@>9`k{i}2z-*wxr=U;oVzh&|L0{snJ85SOjF}p0K^6_o%oY~DhjzMp4-fhp()Yh4; zv1HY?gug43l4j*t%oSNv7j3KKqOzuWr)x!PmRXtQn)oK2BUdXNpKW>Ge_$_9dq+ap z+O=DLyX?=inLXo>WoAf)_OXjWj=f zWd$?0;r6yJm1S27|8xqTf1J5#)sE+-?93I*g?8t%wKp5MYfsx2DsU{%l(RN|mQC~K z(@*o-4n5s5pf1633+qEzNSDp7~3z-jB;Cz|}a@%Q`M9qpDXU3TTM;=3bH z{rB=&_wU)?Wx+dtecyl1CBG!ZrlR7hq<`I+cUJYkU)N>+sCvC^+e9H@VUyD*JnfI( zG-BQ{k=J(Cg_ckMoZJ6DyF5QW@}4_21Z+CvU zKPP>%vhMY&y)&I|e-Ej9D7GoO&}EL5+vcgKGrVlos#g?tOPN34qkB{G^R*^J&&ba5 z0PZU*g!HD?>4k~yxsZS1nn9Du2La}iDEL> z)9wDZKCH5~Eq=eTe~-K@+jQ~6zu&E`|6P4GzvlSN`R($Y?{*|V&)>W7^O<<7pY8cm zHT+b%4i+EdR#jMKekW(6Z|B`bt@kT@3*MGam7XYP`)!?l?EW`Fv1=tlr55CMiB0X; zWHLwbXh+pavjgTUqojK#2d5!D&V=ul2WI9$g$OKG!A1+`C^kPIB(DK)*GQu1!!l-4^`b zV&A!o5-!U%9pp{APIyd8G-tkKHuv!A1XdTV2Hr`TQ#D^H_ci>vc(LJ8&6_l?rAg1C z>XlPO798Yw`;<9H=(gB8ts@I(icZ|LxAu&~Lt}=es|seaduZFNulhc5=ifcn7iZkF zylS+C>HPJhlQNI~+jA_s^<49c#XKE%+~22*rWd*h9sjju?b>bC$HfvpzLU%SGReZ! z=!3@;)xSMktXDcYv#x*ki&0Uur(=_J>V)mTMGtB@W?z~s_NJ$E;_B*;=FgsatTr@@ zUhh`9HR?KhC>O^G!CBACY_(Pg%`!c{>ieBS`^>F+H_OGc-$dJ*mA}99=hd%GS1fOx ze5MumUXe3$7g znFoY_`270#sHlF4Scbd)n(e8_zq`wnFJe2+J7@3Wt;dokZJZ^4`b(q5s(v=+g~=Ym z0itJTtqN|r-FZs3{n&@fdz^;X1uCZx#^s>sj%ab;_4QPS7^fA4ZHn?`a@dik;KG6WWf-C3_3am&Wn0Ei~+9T=MGejCr*uyWJ{@UastM3o<^sIp$g9y|=0>Paa-W5Wa%#V|(W>k+naPqEbHBEn3yIlvC`k zlry(gM&iA2zpm*WiwjmIr*Py7x{RD%!o+ z%)e&OC;M&nFJD^mn1ACjF0p8CI$0l(d-lzpYx^JE`Qm!M`@0g`%DD<`9>$E`W=$O=+ce(ktpLgmn@Y?0xx6SVJ&(`aI zZe7z<4KuoLKL3!IwQTNYXWu%Vf>%X#Zi0I^9{j2KL_SzR{M7C2LQVxi-h(%q4@*mD zaH#hF<Rm(W}=d>6@o%;)} zbIn?$+#tL!`m?i?-|Eh=_-A_8=M}ggpY1Wbe3Fi*r)H&oU*cm|ipDyDyWqKAqv zmYglE+0TBzNLJk;eZGsAw^8zugQpff{<({vQ&@h%(nTUh6EoZPa<-oqS$%e@R)g)8 zx5p0N_|!Mea`xQ?UP0cAO(G&T84F3C`r!UC`TU)2xz{Ci4(@W@F727xk~TBuxS6t& zcqs3lpF6Hgy67o*s7dk2*-5TABHZ^l^ubSw!?V{0Y}|8e#kIKx-bUMxxy97aZW8X{ zi2to};N~|Tg@w0Xc0@cgY;kH>Rw(~&na89(dtGXdPkXE=?0&n-XIC{(XyIFn-5WG4 zr@mV-e@^Mkx~Kj3imqObEqu|mSwAy9f_>fL&}TcHWp!Du9cE?Jc*DeVK4s0rGhVE7 zXNt`93;Pwv+B;ooi_5W-VeH;v{qJ5Jn{(x(*aw!$8Mo69PCco(Im|5CLH$nlt{d0g znpn3faDC~Gj^ir38#BA)m;BG8>31G~;;(rv704;r=EdQ+W2J(6p+xJ3BNOj*|MXqv zwLy#PS3slf#zNn(#|j&Ai?xGUCLVN*%n*@IXsxr)N;G0OmfYg3dPdjfta;{(*3!n% zcL#rFu6g@-WpLN+Y3}WF4ekU8ZLV+Es9&`6@tv^ZNd@8N+h<=nU$XV6>;b=J)4x4j z;by3RLnV9C^&M}X$j<6(T^D)ObN+#H!DoSwBFy8?+!E!Kk$)}f(<*Y;aV_i4xnb(A zqKC6e0wX+mHhVpioUR=^cmMN>w}p?t$9(^~xcuzfc``pY_uv1zAo%Xr87C)}Ju^Am z`up69l_}@zs+Ir0<(HRSS7-Z$shvf%ysB!=LPJ%v54$7cnrF{=e%Wzz@s42m+=?@j zU#jXh%PF;bhOc9P0FkHBPymXXh^o z%b&K7vM#MS{E|n1ud;2)li&NjCxtRMx@k>SzbX|QY4d2eb=2C8%G&DtKdy~F_kZVc zdHbTGEf*jB3$EShrx0}Q$BTV`r@s0TRsHfzaoH}5f5oLVUw83kr<{vYlAft|^8$D6vN#$ral6cNJ*!V` z`Z{KIU(Ju2md1Y!+FZR{_v6D0%(`34Jre(>hW_zcxaHc9Pxfd3ypx|I>t-MEZ?5^8 zeUFwN`5dv(-SSGT^Q<|!Mw@l!&yn2!y|171&&?-X7gnIL$wCrvV~MD(??j$-0= zuX$>%eIf-Mm08EeYvVHYw8E3GEn%@!0y%<2mNBbr z@w>R|+*BR!s?~*8Uax1fE@PQ`A#_h9x7hE!n&Nc_QZ8wgO#9_Bt#4LZoW`B5_Q%(P zis#Jt-MB2|4x8g zUSvJLk_dHX(}Dk$>oa{Ab_ zD{s!XwYHPbC~T?n36bDuQaK;=LoLDZi(Mew@;M^Pzb?uwQjmRhjMKBw@A{9%MiW+B z^FRfe-wVs+SeD=A(fXNi{uW>6;v3uMzH)ayx^!!?{+zwLZ52LNtqp9wFgf~>`7KjP zHtU`4p0_78{zyxU+;!lu{vXweu_rte6;G_uXZv20^_%0`#oaGbg7coSXvg9hivXh{cE>9T0>uS+wmXeu=7W-c-xh9gMrgAW2$Bn+t zjgPZp^SR6$zN@)88_Jh{Y6wYie0VTMV{+mV*Q~w=o?I_|!q&IX42@LU_qNC4P)+x=bl^zhxbCz}q(|7g#aEC0wnGfRF2J3s5g(mVU}4E*+eXSgXm zX=kd?<@x_FeLp|@)m%1*lPjLTJoB`0jnK<)VK1f5DovJ}`S!%#bt?PbPjbvtfBx8@ zOpJGR!j={l#nr|ZwjtM7%sZ_#Eic^Bw_2O0pp@(7v`3qio|>I|z4Y%!Rm;g)qUFuL z+y4FcHhDC?-E)0gTnAH8-^Pm@Z@#TgDAk!8vm&HfdwvzGsFKu|wWS%?|_#?bf&|GEJ*$v03P}g+3=+pKSB!bngnf zqM4dMAuX*-rA%Yh>QjcZWZuTSeX;#(Qiy8$CYgXc5|-`num5{xyrtbbwzq$4{o|<| z({=3IMGpx`GapT}(Dn0pT>t0slj#51j>moY-^5pax1RL*d}-I}yGa}=%V%iLo^_?$ zJ1wW=l63uD>-!adwtaXMzw5=pdW%o*guRQD)`UMu>rRjT`Felx=jm=%t5v!Vi|>Cm zZ@WzY{7+AEcc-bIZ4+yiW(o0XtNWO}{^!i5nz8+M^8XJ{r{4duHP~a$FOj~3 zVt>EzvizLP)U0Riea&vohM-{Q1?iQ)ei-OhVpSA(^h(Hu_mOJd)6h&Vx+bAUHdi(=}DAUx*#@psR z*?Q9LY*r$t;G30UmaB@mveKo_&6;UvXW__KxyEv5^6wuva}2Cr#g-TNRm{5*cA&fH z&8$P4PM%coJEnEdC;83p_@9@u=EYWB6z#XI&JW{$XIYUWka}m~q@`Ayg%i2#wjAwW z;ib#gdElXzl)~Zz=UN|bb9$ZhGeduxi{<{}yy!c{uY{S+W7upMb_&g!R-CeMf#v4z zd9#?_?v|80#hQHaR_5XDK_Qpp-yh9>E&FJ9-!!2EEV?pz3cfCj3{GENcT$XTLX%n0 z8NSZqCqgq1ZQu1GWlAlV%+Jj=UQyQ+EZvO*<}f(>DnAi(ayc|dLiBs#x|pEW$S&;( z?_G5kS~=!kjrrkp;HRGF9M9HWQ$9F|oXTC)(a~Nb5$&U6rCG41{p+z4CtOT(Oru2w zdvr@z$~5kOqJGzL_wH*8SGo1Rc4`rFJHAhO?Y)$FlC#pJ{;}^qSj?KD&Y;?x`uz<@ zf_Udu$8EEIq@~J!UbA#*-$QHt9R>f+MK5}HGECXt$h`is>G7~<{&59A&&h7C_A7bz z-K6Zz{rXM;;=6<7XHnUQ8&7gccbSB<)y#*JLXvv;TT z^|Y;=Bxk%?ImuMfZprc$g0XAO{@#0d^wtda8%8E3SNy!Y8-5F~n7x!qXct>_<>O_W z{MdPfc)PN^oV_-gHQa5m`l_%Xr$i-j+vK+72ds8S+TLu~>2sQ8`pP>^3W?YK z0`ng~-OlB6kW2A9&t3D0A9?d*75b%LrwF`L2{RVm9;v+D>{!{8T^Vm)38iFYvvnL* z_jttk_>o0>YQOkB!KnO9CjRJ$bNzlCy|ib+_fPRxd#e&X^}4)XsQsFF_>~m*{_lS~ z?Q7gOnoT+_xBp9{{Z(byO@>*_6i?Z0=0$8LDN==1h| zvtv@**Xf*lx2L06-aKs8{)v5e|F(qh`TXm=+zXuoP5IBq|9{P#|L@fF{(ldSeEdD( zxf*Bc>`O1FId@&3|9-~XKc_xN&Hu$ybMMca{}I(sy?bBhEbQ6bzA)~y+F&l)t zvTa!(724)xMZQ{gkzd=x!N%cme%z*&r^2k{Kc!6M^H@`?@{0K;Q|irn`E5J6f33RM znzSOV##=G;Mr6K8a?zSU%eL6PUTPG3u-PHY+WD8h(aV|VTpol?m66chbYpGNzFY53 z{A_nSH>>r+l;T^{HVH0Dk}i#0`$*_zpWjt&hAF>3t`G@a&!4b({%aHGc~eBK8co+9 zkGiU|c<&MWqW3XtHWx+}rU=c9Nxhk+^SbV8f=^pdz%qe_tX;y6dweGVD_rh`#OIx2GeF;%sOtvs0x+rP<;Q2`N3U(!H~q=Pf)>LSi(95mwn$-7ciyL6 zz;{kRzUrjwEg${0>+5q@&Mjl_*|~P&wBu{fE^-gfw0XB$=7P?GnG%sp8d4r!3zd=A zGoB=^8?Ul4t(Z`rwD_w?6&|8{lvI`&4t4NcX(wN7Wc}We<1>Hb zyqB%tqApkHaA;S)J1XGRyh=XIcy52jI}@>JWA3ll7^cOZxcj_!t9<$e|7A0Z56@b; zR%Su*&NIjM*p(gs^>W|LlN+yv*!>uVHu-vidiky!5kt|lfZ>_DR_7e(Bcz0z_J#gFBD6z`2wYT--RJMrr z>$X#`?a^AY$1o>t&URguj~_eEzU92g*rEHtLNRmN4n1!J4sVs~mvk1t+Oj6GO>NT) zt%saElTRcrw}0Fqw0G)_ml>7S|2%k;=E+}3aPqmo-{^Xr^+cYa$DtDwyZ4C8JZ*8+ z^=-S8>GsL*t?NFr ze(bc|FQhPSQyTNsSvU4d&pje`TkyQWqs}c#?6+?TDRPrqm(&+!^+k#Kh}sp z3sT9f&${kXl4R*-B{^|rLBw9S!_WS0{-w*fIy1#+&Rs*!2g_b>%-VbDeVPB6@4}k3 zeJ=Ug{o#j%!w&HDT)5%8aLEkEvpJ8Y#0=V$mj)Ucvu5z9Ph(!0(YKHDt5qS>oX;=P zUjOYlc;2XU=i;s9lIJ3KubIISzEqY+@>E5%V%}@*rV!yEqvIzIyL6aU$f*3ewS7mb z|EsFp58CISp0eSIoqBcO!pVD!|NQtd`+iu-uE**&buSOUzkK!7vlE<&tr9AS6dR`S z-8S6%{bYXqxt-7L(--b8yP5oLN8;9ZKOJAJNl)AIFd>xN+A!}x>zea_K5oAMW7_(f z9}d;$Ccau9{@#4`>JxL#WOScO*(0qM8?*9Hy&*i3_%~K7U z_T}3ozm;CnSA!?3z1HQcn14IWdg=10QhU)&a1-Wurfc5~OQ zi0c|pUcEV++BAnLX#2ihy3EO*af>9ky2Z}XeOut$_Qh+qw?wpL;NO3%F0ArmpFS^i z_wQ-D9-YoGcW#KSATJ5|JO$noB|EIBvxzAT{^MA`SSG%8xy6D z_%?5HZQabWd2w&dvw6pxPm0Z(vU7!%$?Iizy8HFq)zcKF^+(%idf6-TUeDW=+18;x z^~Hqa4=#z^da6(}`OwmZ=O=FCah$MGL_PT8Btvh;s;YIS7SAS>X+2}--67_oKXFS| zft0nsq43dJJm2>7goT(I*|GSY=Ze%(X}IK7*($31$HPWqn_Sbe znIW*|%Ze7)xoIC4M15VX^ZMbBHl`G|i*^KRtE-$J2t2r*zU^+to&0+>wwV>TkEt!6GGk3> zp53MhR)OAU1r=^y*>9K+G!~Zcw0*(*=`sHu^B4E)t~GX_=RU-$&et<@RfpF16_bnS zo2`BrvG|=tT)U0*hkB-yM@}V8Qmfqm_Uh|P6LokVT%B~z;rfb;{jbh_yp6bJX1U{EpLG7dcNcoiW$mlheE9~I=lVU)-uiO=>aK?MLMoN`Oc@AatN^Xks6Elz*;#nUKr$s|uF1(RL@0Y*`7yQA$t1OoqPcXh4suimG|Ni^d z`|@KmqYs`>3G_P^n&iLlm+1Mq-+J_A?0y`4{{K?X`ai#(81Q84tlzoyC*RK#)A#N0 z342%l=>qF)^R360?R*=csLuGPx4iab@xK<_G7UPV!vb zzHv!o^Nj*gPL|DLx?4{bEdPDCE_oAU-RrjVZ+B+jKXl~F71iit>+f8A#asO#ZuVr+ zLwlS;uf15ylD1E*{lB-b+6|lbD?1vZ{lC@z=awvezwCVPzRvi9QoCz^wof`+`Fid9 z1#ivt`emcT?|uKh>dD{5Ic?Wize_f4+#)bT@awgAC>C$DGi+{w7Wuz_Ivt6!FWqhX)$3Dk^yJg? z-`=ZZm%1_AZu%NVuTr7Z^}Jj91xgJWjb9mRY}$~`~ z&`9^qNuP2=(`_&JBag5AC+4}C%yr$Tf4p(kqh$9_&)fn(=ypB+&lAb=jyb1&K~T3- zIfvz??k${3-cNX#GB~UcrL|={3NURvF8O?}D9??y&FZBFmD66tZAw1we7|Ggw+o98 zhvaUMj?44l#JnF;wkN-tgQ$|ItI` z+(!c2A6@7x;W3>exKMAQ-{}V%-)mgnv?KSJVW5z^Jj;Td8xNYN=5du5N*wXCe!Q}w zp?{fM>aM6&CX97`TUW6J=$_-I+Thzg#@-%RmYh2BqVMU6o6EU7h4Vfs zbxgQ1U(0vq$0mg{A|^e-KXzwsP?6fDwVgZ8>B!7GUuQ_K;92=~!Xzt1s0 zk4&5?sU5dH=lVxR#@S}+9=F^7&rqH%;I(pxPx#Eaj4a1{JMRj;b=fh?Vx3>FPDh8= zr??xFJKxAlbM5W99kIbtXSUH?@t41%-foN&5vyIECiwlq(*x~KmA0?BVNf=2ud#Yv zdfn4opVN*XuZ>^1D)JhGpsR}~i(tzI9RZ`WzwR!zXss}Pv*u9UHs8hfqqoU2%)GQA zV*h@d{I=-V_pSI-MO@wcWPX~*Z!3K4_WsJ7d;33owD?T1t)BLOd;HH+`TveRpKsQG z<9+)4|A!cVRJ~qb|8MX6ec!&?f170^dp&8*g_Y+zHvd?9+y3)0^ZKH9FE2T?f8P0a zTk?mm>ep>Q*vHj>?BDa~XLR|C>V96WtY?4T&Iy~I|L@rJx*uQTfA}$W{C+>TeZ6?? z{eAuQdH3sIu-~nH&-tV3=6Bm~=j8v$7X>_%vk=`d^<9F%rfrpTTzo#SJn~UvhkxYh zNai&zLO!?mF|L~`vMTo!>*nPfbZyV8o>SDkao8);E9%I*jGd=Kto>P+#?GBPt@z)K z`*Q#Otc_nA{j;R=q|J^;a~K!i_jLH_n|J%;$B$vFzv?cV=6`vM{L`?doqHU2^V^0< zGjp$)K8-KhLiG^K=BZP%Ycw_djEWB3C~BSbep|1~53OVdg|}LJ0*`lvE_$f z`Rtbb;j#GMpQrKvRtxWSRnj{Df8+Q08_!wSlpNfw-F$T0?#uO$UVMDvAkAa`@%8;3 ze_t=zUiEf;UBNA%XD4hb)Mnq_dQvOPOw_ni{r2N88GD=qAN~BY(b+pJGfTkj^{Jmn z+UCyxv)TXeh5BmM18ctjIrskGqx?VX`Tt&&4>>hE?$;vu9nWUX|Fv1#eg+R){r8pZ z^S&R7<(JLd|5W(<{qN=Z>!{s-jDxndv~XD)av>$>y0xy zu9f(5{!Q`g6G>uS98uM>NI)yoY=46Nmk%$*4`;8JoSNicI)DBfIlWJrt_fj3zx1B7 z{r)&UHvKDq9lKJq>EAn(GtTR=D6TlE<99mr!^#KWf1X)*{Jzbf$KTi5_nYZoxb?Q> z*tgzov7a9$8b#`RW_`cJ^Wo`9gLYFkB#rlV*w|+afb=~Ey$ES$zF|9fq z*k4qy%z1iiw9Twlk|%#HdUEVm{QrH5n-}=X-~BncBK&2{t3`9=*q<)#;CebIaN-?_ zg+~HsO_~>SmSsi9R<#3@Tl#Y|gwi(&>}wC78klDxpyJ)Rz^Ki2{iL$0q^-4!_8Nuh z+y8iSO1IqZ-|zUynl~R5pY3AzJ2TPw_l=peZxno;ID5v+u*-YC-}^W}Ij!vf-S2*D zZ(oSA=X-F*hvDL}ojxs^iMLr5&E|>v9O>%*b8Wx%u9s&{8J(1y6RmOln^=}lpRcYO z=fsV#Ewm4xN!aD`uteD4P{G{V+afDZ{#E-N>(JIVOcvS3AKV`Wg2!cmTiJ#Im1j!YNl$fit6 zzKpk&9|p~9zPLr!!ufOb`%>oZTZ*5b ztN)x@{r%nF?^)~r?sea|YDwVlh5vu9lm3@?zx)*A|3A@rzq7+ufLSfGTk)& zf4|=UeOG<2`g!@QntxxIzt?~Ib$9=#YtyeUKNczDVgBoD`TpnIZui$7{~Q$m@6P2f zJ$Zlb{FC4F%`tfX%=6b}@4shJKQ?P^(BjIvMPYMn7O$N9TwtYMkf0&w?^1^&ZDD(@ zIi?--n7Khzmb)i(UF`k&(>Yn188p;8LKlT`%FMpfXVx?4DoFmKI5UStO}$IBTci(x+wH6Q|!T zxG;U$hJ)RzQR|+h>9}z=2d6l)CX4^kHG8qEe9zbI>#Gi~-dA&e?{T^64~@I+eqW!z z^Z0i&-ron;mM>41-}Uv{?#Vh8pSa_HIwY4}zg_q8d{*D&V^{g_7bvW{&}dqCPWs=G zxAOImx$9osTkJS_{jJHb?SCzgzh$)h>(A-o*4lfQms$LKY%{&{5bN>~nU@--->>*2 z_hp&Ci~TND*mS}`1~OJx!5FwHNWPS|9NqC{f;k>y7Tt^t3JQ;h3EP$&rh6M_41uxP`lw}?XN9~ z9GNqi!Vc7MZ5Pg-U_SlYdh73}!fpSUwrqI+Yw^Eyy(Q}E>;K!i?ljBqe5`YFv;KvB z`7H}?zKh_un`4td{iDde-C*^#b?sUB#it&rYdP@mAB2oE15xZF@PJ+p*US_Nog+jE#NH8|19C zNO&CKQplCBT2vu^eqoiyVue@lCFD>4ZCew#Jt@&x;+%h9$qSL|LJG=vPH3eoKhn9v z@zBHl$OG%{?kR_6Keark7F~9cX9X9lYj5)I&Lfg}EY7VR#(PXFxES}ZJ`>Yn(l2sp z!sbN|YhFg#vq=VOh~x&V?Xfzgb0ChTVd0ricUJiQ{(6$PZ>jdWn{Qb@T)7pfQk=8e zZ!$+tzpZ>oj`|y3<*99MdD189btk?kS@LU*?EQ%`)-tJKr@|D^Xsvu`bbQe^{sSi4 zJ2vjUIH4d`uuvwm%0;1C@w5xygtF5|T+#)EUkTs8w=eVW&w2AD_teKQT=45PRlF4Z z`{0DEj48ic zdjH(+*l?Nuzu0X*{dhS2eMMRQ{V7}C7F}I?WzW6GwXei(ReH#$N{Xz}C|ecuX6eMh zX_jiahfYm5Jim3iv{@p9cI}gcp(ck5?VDWlI3p%C?S3$=aMmuzMK;r>ebJqNW9fxu z=l8Y9Mg96z|8|o3_BWR=Id@K;qGEF`nl-!n#l`l*S?3a)d`dY*KJOC=%!Re%|~=?<9H46qJ>g)lI1LPtY_kfA{m4)QkNem>BdtgGbV-GD;*jO3-f2(~=N4+RZZl#~*B^7_)Ep{Ko>rGF1>c>Y^E%l$u_jP0tQrapQ0db!@My0`gzo~5qe+2?=m&bFdIi=sBqZ~J;OQ=2hF zKr%JDsaR~GOqq6iY{BCnM?%}>WaUfVxR?F@UZZ@ov~lCL2N84TZd_*A=-X*>UOoEd zQgN&8clt74TEF*Pch6Ml^u_Fu{N-K$JboFU3RritZhnw}wpYio6%$=2PtLr)T!2$@ zxkarT^PQC58PUNh)8f5(n0L5sX_;hpr$Bez-`?%@Uk~yIhn_xPHJ7JuPwnjI&lJ~u zaf+G6#>p2RdB?;(OOj>l1&_?XvgPk;D++3A7QNcFcGAT)eV@6{?YR>Caz^Cloxz*u z-nsZ#ceT%i0~fYbTECiYR6O-(LA=SCADg;t--gtGZ){&F+F~Txx7L1F{>@K!N`+0s zo;jLtO!z%>MZlZicT(40$O?|Jn4@qo_;~Tz^1mnJ=T{!wx#vkqU-@3Imu*v@R_*kf zvAlPUxO{2^Z)1BYa=%n z_~`cf3!R>1bf7aR`0)?+Ns|rN8O2>lRs7g>rXcNL6Z@iOmf7Ze?;O2V?zra&!?vJY zEr!`XOnuU(0{twrHLNv**1P-iK5+2}60qnM^EUicE3}7M=V+k5P&?D}-P|)pU2WdI zxm}*KPCjatp)vD(<&<{@r?=~{=kU13JgZ{cDye!2Q;Yk# zm0~JxhqS50_9acXO1K;}m&K@EVn^PMWi$DH-PKWDws?B`>J{dCj1Qzer`^}w^zLHi z8~xr*kBe7#?!2_(nwIJPp7s^9LwG8C#8y0s*;TSp{OR8v>Wh9JRp0mglK7{;>?O<7 zw`Zv>Wl~smVv^F!cLnO*%KQrq0^cg6Jv_B&Sx;J`z>z(1ZA<4Q1p5VjWZ_DzzkR%T zUCjUU$98SMU-##BZT8y#fAr=5ehXInfA8?;J>Ff+A8vZEf0`EE|L?7Mo<;ieY3Bbg z-AZ_DegEe<^Sv*9?-!Z=zh7;aE_!_H^|;@grtf`oppkj5-=_n$-`C$a`G3;?t=!&c zZPIxS^-BNqWfHnK$L%*axpd+skG1XTSq7{4PmB2Y>N4(jTG}ahN${5W%>3JNNiz)B zN~JmFa%kEzGbp)`!rL_r~U8LbNkHpm>yscK58zo zbE%k}@VkdkcVC-q`YNMVYavV8=XblG?K@j;7c1#Cv-_dJ8Qu8j6O#+m41|BTwPapS zI=6GiEcb18B6(6zs}HPZYq*v4@@iC%;Y!sRcjqkH(0XO&x3jYqHa6P6XVd?8$uA!$A9*4Cs>k&B;S=-b$rmUB z_T{4|O}UnKYswneY|~qouHzSbe3qfs->}%z?R*b2Xk@ow%}y)!aH zcw*f6_DOj6T+ui+;ftoF?Hga&k9=ab^Hv3Pw{mZhzq^@DLw_HG>y&Ow)({J`GdkzF zG?u!BMh16WTAnAfcgOF`_KJ#|f{tk)hidl5%9t{*#p zx31vbLu1aH*5!Nt{O}gO$ ztH3nlwx=QI#J|0pt9AX~Z|*t;-SB+7d+(QDJD2q??30n_8I}7pS{s7Ic#^;WJG#k8 zUHYsu_am1{O9L-FdM0js?(o!^x@Qxuc$!%*w)h0P96Qys>wf1Vq0e4VB^|^Lf14Eg z&1N0LBaX|9RD5KcpB*lfIIg5O!*{pmtKCy)MkPy>I8CaI>wSJ@ zbMBmc&9rrij!r2T_}cnTPIbH-qu;(#d9n)Uwz)gce$UD8S-hx_O>j1=^dTw3Ql)ur zs}}IEUkp9CJYS)j+1xLvGOOY239-J-+mB_K$jk53deX|k)SSrR!#{t1v-Qc1Idxu| z4u^u+*%w77Dj9B$445n)5-kxb%Iv4{tn1T@4;QAo?wB<< zF+4t=Fx53?TCThFo%~-rr#&t^xvi!nRdaF=P>ELLuzUR^3 zZU0I5y%GJBQgBV|RQPI>9&z@E6{|&$FXeO(nSGm&ZSF#uf_E!5LQZ6!i&*C+^SgX^ zA^*2*1CE)YnNtI~0aVvu-OYMLB zul=3>`{4dP)nCs3zW@K2j*Z*4<{QdcVS(8W$*PQKUJ1if5D0MrW_Ah3^_0OwRwz+qo zyw=3Qf96nEZ(8!C+bcb$nY7g!8p}9k2bs^g)EN_WUe(bdcyH@eZ;>?<855@|ZutFT zi_F!{=Wc(heZFg+>CT0z#=8t_S5%*FKHsx@#r-eazHix_Qnxi)dwT9{?Wyng{#3qi zx4oS$A6l9HUcFOrHrRfo@bt}Tujbc0Yt&Zz zBFuhRBXH|3aoz3d#+UMrf9~#%@GCvu@zP|*JnJtN@g7lML#B1;=pNJDp%^;N>B*rG zsmv7K$uo|4eq9nPt>!rMW^dKrkX8I)${cArtq*RT2~`YT{I!GU!~-RN+w*!=e>a}x zbKh`q<-!C8qinu*=T;U&x4tvsD}(hePkKH3+eg){S0s}joije$HkUt1kaK3p!PRVz zbw31Lems}bdVI<4rKiD_6GkUYvd&vAzGt)Kh}o5s8wFci1YXol{5rkYE#`q~xA&il zjUF0j^(w>mKHD;@?xNzMUpG2l2nmULHQv~!w*MDz*$0JX>gG8Td!9r+>2dqCxaq)l zj~j`8&d-wf`%_R*zBxISqaH7z-UKPd%S5JMZ zJ$^X0TyKd_e$@3fSN9mFNxOVy3>H*YwNl*U6tq2U`tj&{3eq-zQa(I9;vG^{w!8Rf zOYz+WzE+E#PF-zkCUUdL{lS5X83G41{_<#Q*LI&;qI5;zKx1mO>A5gLUN5!<9XIx| zF5sRv_tfO42?8?@ok`3#P3fKg`OQlI`&<7!S-9B$+;_d3+iJh>D>?l0HshX+MwfB} zjw@bLYuj|_;ZtezdsTnpW>0T=n| zd#=p$&A;RFNlcOXvZLST+%C*1Q6 zfA!y~%*DkU7NlskJMKtud%Ww3<+{6)Pb{9teaY(I^kQ4+%3r6e`DJ5fTE|Gfn{WNC zOFKTa?1s#Ns@xOv47^pRs<7rO9x+KFWJ z6ZLaG<}rE4?x~kdLz%W0J@~TaY3E*|R3=_f|H) z9p8Fqejmcfyex;>Y zt)pe_Q=`kSfx1CS(+){SW^p}IuI0&}={AA!)RMk)-XfasS!a~<-4?aZ^Ep3#mdVlQ>5pj*vW}U+%t_2mvL`*nc9EnipsSm;d#FV zmo{*=h&8`kuve zuv%>9iXW;4lM1E2XWrvpl&IEnT=Q{qSgC2RvBMnA8&#R!TAVoldsXZ9Fz-@M}#Ep8m1X0tnz zaT>34v4n*CbJyaYKh96TIPERaeZT05hqi~a%_aZIvvSoVv!=hbI8tSwbyT9rSFNx` z?z)uG=fIiK>pOpG1$WQn-8y~mugkx~c-IG63QmaF$$X^MvXjBuqGXfTBDqI1LuQ>h z)%xc`I)D9(!~GN5T-hwM{)Wm-*ING0CjIxDo2iR$U6`J`QQzvgo~b#rT8+yq7Uk8q z=Dk=U{VMZ@@V>1=YO+}?b)HR$h!i+>c-7-woimm+|(;|N4>1-*)yCTZYyoREvTxmPx#RKd;n1uGo_!#O$pCf*!6D16(fZlFPDUlJLNjh47!UQe1cgmmpra| zK7XV04%N+lXJj=Pnw#Cz6rZ$2mTtJdLC!ae&pEKTUXhiAf_ZGE9kK z@2r()YMm38^*s~ljMVToxwKQJbhFa^1(UqE9A&JX`igxvyk6d6BH}v7sYG(~7q)e6 zGR_y2$}Sz*m?HS|7vJ4`QsxhRy{9eU((`&ImD)ei{LnE4*VF=A$-avhcFgA4(CDr^ zr(^ORbt$H$Gptq4Cb9hp)DS$(eX!+Wjlibp-%PA)K218aq;)~8cSQo<_MM)ebzX9K zFaEP6$y16x-z1fxJ6JJtbDwna{Ec9ra zz+#rVOZw9*4VPv}x^XU$HMVro4chF&^`y~>w>;FQS7}m{hm|>R?Jk);McUkp?VjE- z@Ymm~`e6C;<(vNK%TA9ilVtG9xm#V5`epL}7t2o8|K0JZOWUpClVnl-ynoEwK7CA9 z-}QOt<11DtHv|f<-E@5t+jNQ2O*~tzgr@ReNIux7v~t3!O;#sPOrLQjtmkK^mg-Bc z(?aJMaymBY3g^su_xg@$qs+}BwV8twUzL>fDWx8NnUH_}vrez|u?bPEU$p9`Nx zu`4-fW+`6Y=^?zFvvG^F@Z2rpbG?L_x-H@qGhc04c5!{NHJ{U#kIOFeCrL*hFuu}r zY*~lQAEujDv0uVP*EaU<$O+H9y6^Wp_H{bbSNb12e#~?6Jt=u{uk!ZTHy_TI9`x?r zTX;0X;FqMNN?U4nXC>F96B}f?4(u~hRti><%-^xXwq0e{Ass6Tch>hwH&dgx=j{CY zaPJ2fi%qPeQr=SzMKi8Y5p&44lQ=f#_SrO5j>Rqtf)*`~Cl#tLzOh>LcK5S>{xu#| zhfYjdA(eVpXU)l%r^`8=z^bsYcZsq)olxy7f?4{1;>;4A6X2wnT} zfz-6;wT~Yj&aZs@e(n7tvjb0T@7_Btzw`guqrCM&7v}%Se;;;g<6WVN+n(|s-!`Z8 zd6&ZH&++r$Pio(Ftmw-f=Xg2BQ{i{zZ2#Tj&shI{YQ*KzG_A*LX9Y`Xo8EoZI$Nsk z`W?&E%yZ{%?QFjMTgTC>Flc@9t>RU2>jX9~wMvz!(|>Pj^1wa2r<&1R_Vzjni_$eY zlZ=Zmyf1%LU>c>kejgWus@SIeb@w0qu6Gd4ifTQeRma$OWRhI^3YOUQr(b4f|F1i8 z?zq2;_`LEgmU|MtY1y@2R|NjVEZem9_W3`D?SBQtnbmy@z5oARdCfCb`#;LzbF<|w zZv=ZZuleHfs9+0YL8t_4vgNUS3zuZ2vt~_SW)*+7-MhiYbA~@xZnVhxjXXgYS?vTD zKl6^cDe_>mv-i|JrfnZDStxt@Nx-A#4Ve*uDdmBt@-kY*LXH2y7W)~!YV#@`?|3IH+ZGsv8skw*UOXl8}4fMeAqZOm#D* zBO$Y!!zWR;%4rbGfGA{X^c{*UO95y&no5DKSyERN9}Yq1&$VQ097;Vg`dk z`@?U}%U;YmSj1MLQ6O-qaE4~bvuTNo_LwqTFAtn~?4ri^#tik7AjH>IyjGeJ)hPB%aEFLr7@E5FH*SkD=w#4Lz z0{5&u8B4U!=^8kuIU3YQ*+}m>x%=N2=l?72eU0zTdOv$+*WY&^x1?!k&Ye4R>(d>% zKZBP#U&%*GXh2&v@3p$3}+XDDD&Q|q3Jgr6Sk?MnY>`Xm{>vW|Oe{b06Wi)%I zO}gbD6$WPBkMcLFgVQ_3K5d!v>R8p=OKWF4<*;fUxwe*@fwLCvceF~)`Ym_fX#Pw_tpZPG1IIXl{UUcu z*d9h)+BhXWIqjrT>Uv}TbIWhPX4H$|+`OS!$F{DisDH;h4}pVITvEAW_KD5Ia(d~c6Q6b-7Z=~YL zWux`HLYA`)4y{{aEJ~#(Gh1#myVZ6tq;$La^;GVM-Rox6`mHaDzf`|NK4MX9bxl^`%Z;Su&=JD}&cWXb(?zaE-Z@bG~=f8FQsS4cvxqVOm zaU8hvqB^eTs&(D(zrT;KF3-gKGQT;dr*En=J$&`HJAENUy{+k{*cY|l`r$R<%gL?9=EQTl>F?J(VCX{ z!gsB&Q{(6Eym#Q>y(w=ib-0SoTB@~`TnuV|JFn&O64nP^7QEAZd-@qvZ4LF^AHDQX zHPrt!b8&vkw5d5irry&3cWL?k>c6)W7(-{DeQx)@G^=9sV>>y14XT)zrtSt^acGA6qtJ43gdeEcbcS+2KTKA3Kow~E8KUDbm&CTCiHX4;*{H8m5 zTkf~h@3JO5>?=>)EHbxUIo4|jCzEi2RQJg=N7k;Z*JGZYS+M579JBOBom>1Xwpl3X zFAOjds$TEg)^w7OadKjWMlkb!=iH@|+Yj(fvxsI{!S-OX(VLArw-U|@)-sm01c=Nv zDtsZV%CX^sL+9b!#j7o=T`mf(|7B*Xb9Cn8UwUt1GmDwimx#JQ&R7@{pc3S)y+f}c z^2&kPN{d9=_mw&}&iCdPsGGN>&Bthm#tmMhj-<4mkz&GzXD*A##AX%cbQzvq@#4kR z+TyyUyoDDOgm?GLy=HyrmiKegtvTPg6+`TTZfTw3KWT8c@SNXE^|^laNolXWstsdo zUum!H3F)?&^6OxA4T;~RX7J%uV&{Zl4Isxk>4 zdU@i|oo`}V9z_%}j+nr!}~eNP^25jL0Tmb}q%=c$UFCwZ82FjDeR8dl-X%(Bx+{%8GK%q;&17o+#rI zoh#R5@{%`kxK5a;sS#{xW+dWua!!-?g1|{ls||`YC1*s>>fVsRJyFH?jnJfHfsH%4 zb$A_P=DxmCxUn>VTdgo|Nx~MF%9sxiKkSascb%BO>GK*{>+^RUB{IXZTMoY3n0lx) zT=8n=)MFxbd9-Efg49 z^Zz{+9ba}&b@JuyZ|2vY__y!Wo4ML^&$FplwMne5-t|;U`0M61CwcqiZT4+>{^8>1 z_^)fc>ptz2|Nr{+{F-~W-|zb>8~3xKUiD#dXK z9eTnm_j~8|2`oDeTxWd?_@}qM<&(;%Mbl%CZ+iLdUzVx!rhCpy-SlHyYgcv^rd(#T zpEJqGFvk72^o?gLcd91;dvMV}LS;$Kmj{y%nJ!yjd2arQDO(I*$?W`Eee*|z zVrs6UleB6=ui)1T#lse6`>wg|yk+SB?1sPFI`!v;T+3A5o}AfscK_#Z{DR;Al-*vs zbK~nfYg^XZe?NYI>u>$~5-eYiorzeO6QZ5>%8ASItH}ZOyOW%@{&R4bPtOHt0eEF2g_RypVqTq{M;~e zn#&aP**SkJQn#Ozm-oo5JRT;_c(*kyxpd#-+j|XOEOoOCw3+k%TI{LM%^O^IJYAZ( zry^;7@XFG~25Ds$9X^v+2E5Wy*KL=%v$yp6QR`V>)vG>kY_Kicq5k-GM{eD(&GRe& zzdt8?e}DPmVmG?O)**RWDXD68G0*;h&^a`*W=l_$gbo}V&N$2@4^r>0$NP$?*H(OnVRyw5`8@KK4SkdN`Tj2C4<=T4R^KmmiI<7tQuvgV+ z=EX%5#SR_N@l)hkVztR(Q{+DbVw_6Q_TKSHVJ_1^c$i zo|Re0bGy_lY-*ItFC$?wmhdZX$EtWD7%o0t>z27ep5GSw9egD>Ab%*{Rh-JVZ7pTCU=SUvl?Z|*1QbAdK}=(=y_QzDLhHyXT!&Zb5oT*7UVHG1sN3C z1Y9bAsnBga^-RRl6Q{yu7j51m=26N^~ap)j96Z<|Vb*Gvr7e#6fC|Dc;ug`3dhmVFHW zbvs0li|5{}`F_gbNz()dnW>GOMaTYdO>BHq&X}EaSjIR}aoNf{HV2*4C*3@wciU4e zV%^>MPp4h^yROJW@Wk0UyZe%NM(AzNQ9nMX(>CaVTSt@dO3B4yM;D5%ow)U`L4}?5 z)iXR_uU5;|J}i#1|GaqricB?S!=1IyuT(xewejf5)cot6FRl4>-um?{c@rC|HgE=^;KD-}e+LDO8=jr19>1b=^|E;)@zTXD+$+goVM&xbNpDrUfqp56zyt zWU0%61ye1HHedZDwLpevg~N}ERh>n?EYVN76845kzpi<>@sIiX-%63@#UEZwdi-X| zKG$pE-)cTehyTAMf9Df>zMovZ#-V-T6$)akf4JlixTQw%aP%zd<&)Rw3%}u{+RC@? zuwR-pcanI-#b+8X+jbc&?vZFO_6l@1I6kq)$MgAysGupba=tAdv1>nRFJJ!uQ#b#Y zkg^rEYo3Mg{#&;BnWfj)X`j6H?iPK2clWcqtkR+)Q~7V!s*AId_ir#)Io5Jj`|zO$ zRfpD}_3@u(yWDK+y149VTSIdzrPZ%*t!_>`ZU4Qe*skVut^Ds>wbskjQti)N+o<8g z=&Ae8&QVj+`n}E#*()h_@7!0%Y$}$V*|Cw)h;qj!3GbbQ**Yq!V*m2)(n~}IyG|%D`zkLN&YbFGpz5Zn4*^35dEme}*H}0n# z^jTL}bLPM?ArZbNhU1>x3@5tUnimP5pAgX$@MFPNrZ@7EX@^Qh6(*V}G5)q%ZW$&y zLAXc4Q;*@B^Mv-`kSzjnZi}~=)gM~n?snwa2aX(jo=fihZ#y+UXNDQNOmt-Zo#>tW zxR~AfX}YTU_R}8{{hY0Ky4)&0-L_lF;`0HY$T@*;r8a0ENMaD17IUy&>{O`U$qLSb zg0>&vl#$;VPbSQQ>L(v@k8<#}{KRoP3fX zA%DMEqe~@b9&7pGXJKj?7h4&2JB$8V_2~A-UymO@1}|ovIsI?-{h!Zf=l|17`{iG? z<@Vd-a@B8E`v1T0-BtPJ#YKZZ&pS(>J-fy>A${5LMSGO?iv3s@v~-`+r=w*R7XG^L zv@~PqJXTJe*ASaN<8Gi{;=IHzm!9mfqgBgiX1(NiGfS{Ahr2~yIHq0TiI!T+%a+y) zH(y#z(%F*xYwzxB=RNlpU3R{$CY$_YF8|}W|G%!s7akS;e~Mdg$AhN)pJy-YSnKYc z;cD7mG<&JWS`X1vyP78+XJ2L9n7Xd%(w(Bai?qEMPHfRFU>4)P6v1M_5O`r*!0BsK zmbpajyPUn9H+R{J;@(rL5w6Q`?3$j`UE7!I)=_;$gWJz9>(r4OU;O!O4Bu}(^}za& zhN9a7;RuH_FG_iZ1p6m+^?y>Cc`0*A3fp?|z=oy81^*r_Dl)tuy!Yu&9WS=Gej;t2 zv(}VdmJ%|wvK9HdV8!oi!n$d>2*hgmaFYn(k$vPZ~`}PgPzmU$HX! zYg9N-pMGiG|Lg1YLfH2@{ z->;RwwfS`6Q=9j;T&wpn(>Uj(8u!|~{{JEW?>lk3AJ32dIQ{_4oL@88M${b|>|iEm#rl)ZY|fAg6^AKS$>e)ISL-#0r; z__*^_|N$|oyR`{j%N->y%4gQxb^OKsh7_1lZ+|JQD()ju#@oS~F&;#c!yZ}u&VRSH+s zmKhhHJ1YK<=VqOt;md=53=)e(o<;k7zOY$u$Jbwf^Vh}wci&%lcHeP%ttAm%c2|}Q z^gqtJtSl)TA+TY?r!N0)8O>Gy6`2Lo_J%A}@4Z>nq2x6s?@`^}Gji|vlkb1mnVQDn zYCOl7pEb>Xa!QLJM@z)SJ)ftsfBEoXX8QVk1K#Xr|GZf%W}W@i(lt3fe&5rt*XPyN z7|zS}kxt{&sA~&#-gkwc;Z>;C)HC0+zgGP``S){!NJ^H=;ZW~PwKI!Po_dw_LSXUs zTmNtAmg~syU-Mmic+=K1JDy(5y1Ds{vo?G6+*FQ@3QsPdXiI6SY%3CMXzcI}axs#f z_%ViMrIujn({IM%i$63bvtQvkyTO`GoZnRN-s8`zB{NPr3eA>Td5ZILXFgl=gekI< zjA=SxEGGWvZE7l=|VLbKBYX zXJ9b<(J4lW8s}PUZ*Gun>2Q8?(?wA3P1Vs~7Tfk8N^ZWI%Q0t)wu+(hmZCijQ>M5$ z$EshATKneX+RMpiPANHh3|HnkYb5;OdcLMww8CIw%iDWrFDt6e61;biv!zh~6|Zz( zZi>KbHY4u`DH4w*N)N2-pLn2Ymy~sp*YP zJzVXSXwb7vse{LRzRXlPwoPR7o@K1t7wx@L_h4W9wmg~Xff4cBpX%rBEd9QGn&-+c zCSEajb+5>q+Ko4RK5aQC(=qe0jC=otWX;1~d=;Kk8jChoMr>Mi@^Q2sgT^2CfS(NW zED9LfkDRw!{qsih+xJde{>L2udbIG>`uj}PFF*E>tWZ`A&I#Gw-(Mn=`sa3QuvA`aFEnmb=k!j*>+nOF~P!VDwDRvS|qu z73G(i`tE!!aqXq1PqX*Ei#oPndYhjbr>W^&TQTi7_xX-p2kK?`#h))z0GHjrv2kNebTk|lgI|ub-|7MA3l3b*HHf`ESL(IA)w1TgzEhKbRDY<9ux2~qwK8SK>l`1y%6aSwhQf>Pl(;F?n!f+p zE${w!v9=WtE>tZ3`a^l{gsSaz4-2&pDMsh~j7jOQP_6#@!*KG)Z<7kHO}~9`!~YA9 zBke?%$7&A%f5=Ye~F&CB`wKF3O*|Nru)`Lf7!OKqN?kg`^LInUzinWO#no3)bC z1fu+HcCsuQok4r}=^R_MFQ1 zzwNdc-o7%sKI890+u~U%5m&GIOG+H)`knEPYnuKu$-6P(x$9!wRf3Xu!{;isn0DE( zKJ&#Vf=lRaNMJ7O6IMZ^1EG13Q^X#Ah@aLto4@I;>ht{nAA0vm&Dz?S*nLi>#aG4O z>Nwx>T{1^iI(MfW3fooB; z37p!-ef!Mjtf3~s3l?lCdOx?)@>bv$;VmD zbNUsw3Z3jQiD7=gncl$NYtq5ccVuJ0O1&9@yqhN!2D(Q1AI!a2)+4N|mZZMp*px|g z#J4cyT8RkjUZhk$f z_de^C|2zAFI@ue4^#7YO|L;j}t%H)!%~mBu2Q(b};+^;OAoJ(hGan|Dn+lrgKb@sz zrxLOH)C6-rGsfOCHe0?Fu4~b>IW(O!;{Kl0-2$7|rz9RuTzJ&zP*dKNr?^F(IQV{U#Jt<3 z&&-Nze46^%r`MINa6K2>x7MF^{gaFU@zupAVwUi%T)cqW&0=yx@8-v!Wmme~4SeuD zH%)uZu55>sPlb{es(5Ob@?Tb)v(&Sz)sAm_(`=#V(hs=T?RprNer#EgaowBO{b?&% z6BgUXwiD)##b3tJpFF>ecrcs--6noSb0ufEzW;cm_h!@ zg(uIJ{;Fc&>v(+DX(yk|hBJaw4xBYUd#&K<9bt}7eOH&s$=nX&2$#0qZDhN5>vZkB z8SnQ!QGfIFaHc`cdH;PEbS;-etxLOk+rIF6UizXxFKSYQg`P+?Io#~bTc2N%`!lqG zc}8o>#sY1g^K9bVB4iIgs`pdA{`1hf=^GwSU^&RGe|uHlzgauCw3L6^)_naM8aw@ac8|rYSV(yC(Ly$PA(y!ai_R;2(|voq`nZbZk~4a{cWUMa-_K(Rnm?Wvkf|hUn}pZze9IppL(aDO^h@XWlPjuy^V?!WE(^!Pn{DFk9&)bD5682F`ieDN%g9nMMtB)8@FfJio$pia>ze62XZ11(Z?PQHDqVHouNo_3QZ{yr<=A!^ ztF~1NeN(*38Pt1lp2O+Jxk8h^9O^Jk{{3S|_Dqch3s$Jc%(qIYHJTdOu;m1+|B9(i zC!1D>-09u2!BZ$AcdqT^~tiirp?aF5;P~rzxSnVeXY@8w5qSYeslqnKFIXgKT4; zCkq3FehU<=`z(3IMbh=+?|a|(1>an$T|W2s!+zTjYxiE&-G1lOOaJ;`^Zzan-~a1s zczo^G%Qczq{c^UfQ~qBpyjS^r??c}FidpBM$M3Yif9T^8VgH_em7nGRo%!fqZvXRw zV#NCIcYeM-)g8Yxdv09zg80{2yFc8yDIQa{a-)fL`G$WH61UkJ*o{=Ok`Hg5eCzMF zMCpnAj=PVmE6r)1bKbbwGhSNvwqfhH4!`15<=rhum%MylbE+VMNA1v>k6E5kJ5L^( zqw(%2oBrj?mz{Us;{Wz`=kM!vZ;u{kyZQU3WfEtwy|S6?o2~i5Dxc%649Y94c(~PM z8L!U})7pAtn$yp1d`9`ng*=~a&n&SDj>rr2n%yDD*tDq7xsX-(joyz>GVRx89j0wt zbR#+XV|dd(iO}5#gbTReC|7LFI_byz<~wuGOvbQVf!#Esg3!LEmL1j#!8)263JVO zY`ZS$&VJMx_2#K$`N5ZgfgZ&Sc6x<7-X*LF>tf^HnwHlXd?{^_(TAvJmjdQG2c0A5 zvMi-;SZR;~LUwN=l#NhXno~0Zt-g9aHJSP?W$ngwJNK9rXs*{fw&U)$ z)9?2^^L@Q@|E3KEPv!R=xbrn>HN%v>@wMJX$F>Rn?w_Qt`8Gpw;hNCA3D17pUD04j z-ShgU_WM7jMoRN^ES_;b+TIg*E2jQhcHOVMAU z-X`9<`S8g%$;*!8y?|%fcYFvF_^op(R zG5+ z8*kq@k=nUSvY7ownCFVM{v}qe9l9(mLZushnin2gkRBX=LXKf>&k>m()@vI}&#mYX zcE4r!+3<0{$`Oq|mU8p98|{t{+8pB#dYme%EYT@0eS_{cjtd%$@lnr)5KNadNKDEy?YcN0#jMP@L;>Pnk(U(?-PNuZsK% z8%L+Ayk|~IKbh4kH@6&`doak(?bMZTybYy6Q**^M4C9KgRr;x|cp7|NX7d)_Zp&tm z3(Xlfb&Qv*Wv*ghc`)(*#hgdm{+F%@TAz1+)5lMnx3yPRl>8T5%et&)V?grK0&RxM z|MB1MF-L7$Z6kd5_nW=`Yf4tXdbV%w<|{$oSyKWO(s_>Y@HhA57$+Z_Vc4Ah%vSxt zjE#vm*={E@o5elYxUu(bx&c#ir%HfRkayO~tCq*Bf47}_ctrNz|M^)nwx^vvBYolP z;WE$SlkZW%XPu7w5B(CABAME@uiUs!K;!4u^|f!y>%W(~m-K(A z`mev=WW(F{zZ^4Gk zOQIt$Z_1f&t3bdA<+mLot zgWvGHr-y#;V}TFse^Tf0Z1%Cdk&+*qqjxm%QHO#Y-)ZB^#+xq}irrjvU`KJ&ygd(R z75aL94ifHTUr?C2(f{1{=iB*XIIMFP8!-fR*rh!9bZf@DGViBJzptp~%qx+36ER6+ zxy8G#WgC=dmMz+ME+yIW8$}dN-RxZJ?UHkE)5R3_t)Cd1!(;=$H~;*n zdb_RQ@B<{-fcfEf8xY*rq|JNhYs^I+E4H{w__x+!D{N9$$yO!?U zu&M0zk2_bUx3APo-g!RRrY-%z+Haq_7L^(IRcX%L!s}b|{fdqB>SLKN+&X8?Kdzc` zdsoDcIe(277gm0fZTdLJ>V8ID=EqM}pKGdSPLtohV(BNA%|X%SXY0P@%l~;(>)q;m z^x2=A!H>gvvrHY-+^f#YYOK&ZwoL7M{%yPLl_$@rS#R6>VBLND|5NWr+2`u%Y%BDd znZEcPXUGGWDyEK!79VS5XSVCl*{;6Y#Q)jT81oqiLo73GTus$4o1S!A@3LDkLAp!E z_{hoXBbp2?dkWTVJj-mFYZY1c;X-$JQs*>p7}XLM)LSqTk)IbfnIIe z*Ejv0#Gi1AFD6HRj@MqNivr@+_HXPq32V&dIic_=IW&zU}%<~qT)u>Hj_|d9+{?0@e^*0QG$$IiYqKjtUqy9e9?V%a$MMCdfSweA1q?nW zuHEXh+}I41xpp>KpD=jYrCK^G{kx`T*F5fw&NRc#4=4HR**17Zo48MJn6BiVAa(9k zX~5b&vW%R2J{yQs_O0N)ul-lV*e$#k<0qh##}WSrifcipO0Lg(fs-%-weHpyisEMLGpe+)gNLq%Iqd- z*FFlYUwL(w1pj&c1D@7KId0Ey>+jk6=jY$_88dul`F78f_;R;h-ulOb?b4y;Rp-}P zOU^j5MOghqN{!b;^>!Yqu!B-tex>`x+}Kz8YFhR;hKRpW>%F`Bo*K+*R9#f2d4R3? zz`+i~`Ci%~-CwgN_D41Qo=ex<@N>#6i)||mo_Trt|JwKe()4{>?!P~O{(Qfb#{Uof za=-T8pP}&o)35YTOeQ~t-&fsKu9ohf8@xSNa!vT^fFEtOI||Z#O1q>ie;xEO`0@RY zim(#1iGtUrM_e21niE5o)Oc<;O0fzq+_xfkgKolh-P^%gD<;cL6F zNw4nISuD$WG>!f&UeFlm#}g3r?9GkU##5S^4@H~#uVKw_`ZF`~w$!A1Q$Jm)`+L2< zR+RB+?f1Lpzvl1!b!F9*J-Q)w%mt~z*H2b|U&_kO$g?hJhQp?cX%A&oi?;2oOy~(V zJ=U1sw|MKeDT*zBGWIcMP1Aa??bczwRmlPIuAG}r-ZY!4b^XSaBp_hsE@mQ(i3?fLL~-?s(f zXV%@{tN7|`tI_tm1&3>@Gqcj}?o8&6ugIFeCd60D?9q>zlht2MRaju-r^@@g&wHoG zlq)`t9BL1w8T!wi2^Dr@Fq|M~H^soW>h8BIKW;^Q3!ZzkY5MA?I))QZ>gmiYD_R=I z@IoL;_VT&K>#KjtzW@K^|JT0hwO{tvEj6(IdU5jcdtWE#PxG%S{L-MdXxpPRTlY>n z&+sap@B5tv(x=XB4LfvgLq4C{mZu`G3-g`pFLGPkK6AA?HzQZ)AyWjylYFJ8Y0h`& z%;THn8m}fPTVhy!B;(}w`P&P=#Mi$|uK%#?yUh9?_2zXtjo+VYewwItwLiAvg_r}w zhgYlSyV-b_Ho9q@yrdYJvGHi?m#W95hStfJeJ9@=f7}0LVwVf2>kdCQ3%@P5rZYZ$ zVqtdTX%1u7mWHW1m3opnHSgW+&z7zE&7Z&H{a_p{F0|7v^^Egu&m z{A4Ke%2D7nVX(L^=2NX#e!lD6(Rn_Bw>M1ZJrHnf#_q$Miq`D?X zNjO{W?WSn$uo#DpTGMVG_^e}KGIQG_gHO7vWoL?1`%HG+AFsRVsoUzy;k{{>uf9Di zy{`7pL*u1QU6$Te;$?ZaKYUr~CvYRs>ClSG!`D`(hX-Y`nv_j>CmFZ5VBdU=bhc6f zYxQ$WgdGpAzZ!IX@Bad`z*Ud;O~_d|+ij&Zhy6xl)lj9~E`}8nOK!^OY`3W|D?9Cz zvS#`G%4f^&UVndMXJ%qzqa{-qt3IpI2KGsZgUc-PxHm*BJi7btztpeYCZ|oloqk}# zv~8u9mb>B&(Pqu}yI!xmoxlIDs(vMB!l^Xvd-YH56x+Y4uKV{*{NAS3_x<<(eRHw@ z@596PA5QQ2IqhcnpVii%^5S2I-}^k>UMAzy^81yiZ}dI4FI@NG!$yniiW&*g7mDMB zrd0TByKKNHJZRNPCLsU2F34SvI!PCJz4iI_nhS=Q49K9gQgud-toRt zdur(+XQspj+KX6xd}e;;N>n;JNo>bGp(wV@R?P%)f5VQ>^ofrrs5SjaDlL$|aYM3v zRh8e(?3<;#*PrE+^<6KqbPl^*#e;vp-^Yvk>@0tOFR(JPY}sT$&+xnk%TU z_*5}d@11zfqn~HGRwS0&O4%697f?F!9w za-ztF?t|;rp5fmS?qlV-O(r;Rl0jOW>v2Qo^k}UYCSglA?7H?jc>T8y`@q>bn%Wv$ zi#8p!$tyg1Z@t}>H<`~8<$90Qq&+r$f7AHs4~Dgy3__XbUb)`4eAo7`KVP$*K7D%H zdyS`;9{xD?iaYPljW|!gIT34mDp_w|x#rKeL~qxdD<@quZ6?1kjb1f*=`RB%)_0SR ze2IGd^QZ9J9cNoFE2*4ZlvKDU$tykFFGc%vxbInkoAp1q@7ryhGN7JH_dVV^ck^NI&e}I8Ccc&4K6!7&wXOFywVcQn=oYEzl55F4cEX|QyolU$ z)%)E$t5+EX$G^F{_};pLrx&@po~5`XKbg)QTO5Ajh(zvclX)7q+$tu2+wsB1ZH;wY zZSq6GmMY<^Rx@Ya+E`e1kxxZk^mN$7mD7)DB_F)p|90zhGl}H<*)w-oxU9MIjz4m- z=e#Pl`CW=x$IHZ6erBv^(ox^Ayuo_k*<+_Hr2-Ex-M3>)N#)M9^Mz;h985j_d1gdM z#;V)f_J3S=-)btW%jNyG1@|Q$s)o%n-6I;U&M#N{PsC-!iD54`t*1nsdRTH3y0J!RXOYzpTip3afqRr;np&b z-CWu{KlM9%R9g%;#A)=+K47&?wCnJSIV+j^V)bsEy=U-p%e3FI9lX0@Bj)>wI;m^z zG;(bZKHnGAk)bo)yPGlSL(S~v4CiH@6({Y^TWRvPny-AZ$npQK8wGf(7BZwfsXnQo z7nzmU{PpO;MVF-tt}itaX0qI)knvLGBZHFgjS$JAF9%YYUOkmLq&2rsZ)TU`xvdAb zZDnX$@Il>CY+lT~St=FYA+z|GI^LL;_4dh6{aodv^=hGQE$`Zn1Zmv)DKd43VCkXI zp=#K9l?Cvam+zi6SL`UWKa+la9SIddw&6#(l1LwPsn`sWXQvg@0(fOz}AF zQv5E!qHB8b^yLD=S~|tA=PdJ#>iAM@Sg!SUkLB${UEAeMOSGaM+r*F%NEq;+>o+#SxR%UZ!PvO}|UfO+LOA~B**|oJF-f7F+ zed6w|AAc@yN;qrx{?^?SlivM)-fthM`8qsy_u?n4$?NLh9QZix&AuPsqSa;X;?}*n zU$4L^Zk`hn&D+!{_xsA^@Zj^#TB%8Qm{@M?OJ_N9e`9Ob9gb$*_K;(T%Jv6bh`kYz zw;}oaI-d*6=iR%0`uK^O+@+a00T~`CT|Mk_F8k*u+KAm)CH-+?hJaKchth_aAJ@2mV_dCWx%YMFjKCki}dy7TN_h;Abs&`~wd>nqlwCu*S^uFnFyPn>Z ze_*-ik?4Ahk{1`g|NVIM=+WfkeYIZ}%gZjEZ2$M8d;P2Q&hR?L@7$RZNmYraew${$ zh;vao^qQwBhI!$-_ZO9%SIy|WbVEin<9Na1+Or2{)<2DTY8l*x$*$bu z&(D90EbTP$|K@4_^cUBog)viAp6)Due(%?{?S23L=jQJ$Tsd>?C7-@&r=BdHJ!7)V zM$c!ZM!;KU@!=e>?H)D2y7 z_o~{YGQnc`%#5OaIW|TIZKl8cmN{iYSbd#ckM!wgmDsqLj`oQ?hixQhPJgq*qGpe~ zck1+C4NbA!d-kRJ7)da6Ex00hD2a8pxEEtX%z3x6B}xl!++&DT2xc(2ap;AW$6vb_ zM}t1AoS6|cZS6#Rn^&2k31?h?DS7WcYV;=bw&v5?)GLW*!rv6G%{({Z&|S5Vjjz|; zTY6(-a_>{!+1GUVCd$YLr$#p3;%neL{_PTz<{C!x=eaw7vdy)ex1?a<>Yc*f$-8ePtu{O^Go_oq_UG)n+(+{JDkpr}Xe#<`*6QQU-qZE= zSN=_Fb3S5JuO$<9<4WJFhwEkj-1+-_d3^C}_wQ%s_T0ReoId^1o0Kc+ll|Vmv8lYf zI`8(5r8Q3u=FRBMdJW9}Wl|CRrLdb{r3(Nh(VB+^t0#Kisyb$#*0Yt(dCFwnDbjltH?!u=D`{Bd+I;3&*|e6qc6XjS z@^CMAoheZgT{uhNe38T()ArVgAEt9=z9}qzGil$2cT?Ecc&xedjM*VxEa=sZx(9_j z7&TkOD+PENrQh+d4KNAxWZ%GffcFa5l1e@S$u!2*j5-@7(gbv;AJ}BT_a^#ySEpaZ zypQswLD89)-Os9V|DKx|Z!A-JyhP*3qz%SN4)Ynpjo+-krXkDxy(r{}!%n6p!Vj9Z zTk9^(J-pV!`_UQJ5I@Z($EJgdN0wQAkDB#V%VvY!RMTHoZ=wyg_}N}`1dG})5%7KK zp|)iDmd8Gqx4hf^`Rtk5#mkSmq}JRvD4edpFzgz4{;kjrdzn7Zw{hxz`rw!Nn$N9o ze;qykO}-)E$1Lgfx<9sr&G_?7IAOty(D3|skrP)=sak&QA-DI@Gh&AFDJEWr^(k++eKMbKQ?PF8wC*+6BkHbBTbV9rdBr^Lv5<}MkNnOQt6r1 z+DAW@J~5qG8Lsh3W$D+CZbI*F*Ju5{_446P@7ra$_5VU&=e^l>yn^9i@ZKQpsohH# zt@_chZtVd!drj_r0+T)^`q=axPPAC$V&KHEe9h90t;MWDv)|v@`T3mn`@%gywWp>&o?_{(c%@Xb+|}o}$Ba0MNzM-qyw*%f;@I7m)_7LV zd~eU{nAY1O8?$}aPY`KfbV(ODY2^{;7~{k`qjYKau}{hKmI$O6xnG==xb0KNVczQ- zU8b>LUo&YQ@3K8>et)d_{4M#FbC)8TK60U%SO$#?FCd+q+3q zCdd8h{XPHc{y&$F&##Kw*=_&#*z@mfoI1Pr`7D_#lozq|(664PT`8>T+CkH%AD@sW zc~`8VMTODCChn8yT$gkCe(ZtP-fchpmTYjF+xu%*XIuxf?*qlyCq8Uf7%w=kVUUp( zm_K{+Uhl#yqHA{5e0fr|_L6de&Z#dhYdmJCsC90Ap2R+5;l2fTwxv$1+UA=pEaG*o z#rjIFqnDGxan~~(`3&xzNA16~t$g1rXs&$c=$ga@A*NX+hl)HiX3n)JeR8w8eOvzC zHtWo6%Q-qGVRx)1t<#R|wwn5L^XaFOnHMK1KPvFpY5Yp`V3EE1zA5=@Z~lGHf0ujz z&x^*@_M4tQ4b&@I+uEy9cVwC{^D*7JuL~y!t`Fqld$;G?v9#S2qqxjIKisUXukz%< z&0zPtJCl3e#J6pGn{~@S<%T_X`Q2bVykbhl zyp{{teLuxtKk3cQjTRF79(z}>pn+T_A zEcdxA)SML~y$bElD9t?eNwU6G)qP6##sk|jR1@bWeL8bBeOG4k!sk{6`Il7=B^Efi z8BNkY+m{@3|8?nO1HWJnTZ>-KM-F*9M`fSwn)fzB_1z+isjo%uv_x<4Y4Mg7XX5Yw z{@eL>q51mn@9Vei{T_2(w`$(f$$PpPwk7Tt{Jv>*{wY-L=H?CZ&S^Q#(&XaAuZ?>3(PkL;+KZ^U- z@`sMI?@Dj$xmt7G^#8Bm^aolkk1cqdk}PabFH|wQH92QS`~4H*GdITV4vgIV@aXO1 z+ zzp1qGVxA(D_+Zu& zvr6P=_QtJeANlaj^xE>KZKJ=>0+)Rc^dN`9{j6=4^Ny^y6z&c^;$k znpHEjXFO-fOMIaF@3Q_M@%Rm~*4NF$r94e|=A1fIlyY%$%~rJ~-}i$m+W%ORu&D7Z|Va zns(lQO>4w?;j%~GKQb1r6u!}1cS`elXU(bkRz_yq7uO~x=f4!yZvUT`q%LMAC=}=; zmb_ZCv$X#7wp_;e>%DE^@$qGMguEA}T-n)n$7bIOR>iFwf1LR6m!WaeyAL(nvrB(1 zicnbhc-rZ=7BdU>_$~jvc=`89Vq6{D*WIctx#9h-?9YMiGp@$$G{_0v)7e>EXtA~O z*fY^h^Cta`-?8V`wj7=;8{d?)4L5u`*X7^*H}U_M<jo!@+`RXEgS9R+nmHgr* zdB->HuiM1Cq0NG^@dA^uy@iL>{o|7SkHk;Ld_4TWBJK5(-@*3fv5y&E@fNjMHG~D+ z3{_`XYx0$+k8g2M`ME_N0egiTGUrA6>zn^p>@}CMIeNz8ltYl-fvTeoHH8JX`is=} z)*bzpv6U(8TDTKNyBtsz3j-tJKju@WySZ)t)midR44N-I-HS<##HgFK#_O z_0`AV^Ch=Vhrhq^@|ssdR_XQB!o>laH(O6Fy{CC8_gjv&NyVj&4u*yX^_BWeb}M40 z87W7GrJP$JEL-{Jj_LJHWy|*$f4|D^H|OVr_}X*&Qy%0kb6LT%h)??YEib)@s}|D^ zdYQc``5DqFyJNzkV=TL$K8eZGG&8u7Xd+>_@4vwQmJLk}<<&1mA0176eXiHvba(PL z0ehM9AA8@|zUK(2d;M?o`~BYB_ZRL|`lNM7`*zu}e}k^j z05bUvgtC$UDnE+17$Pp7nZS;%afjm#4g{Esgdicd^<# z=Iy>xG$-Rl-kiAwT;HVQKQG$2$~=t2i}ky>-Or`xj$FH@aO+m|&tuo+??wr?b;YgU zUh%OeuD0o{B7@{{&y?FrzL!<3oQ}rK6j>7{oV2EN+jPrkLF&6640$my=e#`Lbnd-M7u(|2%uYKmEUOd-(_5zPF~+zC5}$b?UuCZ;hiF0}lD_ zN&9!<{`oge(pCXk6I$*(+wfCh3G;-5G4s~$d7y7*_uqV;)4fmgt!wT-U$*`65|OP+ zPl8;|Iy5jGNq+7p^X%IK@vXVChv%{CM-=UxZLfa3?3h-n?6EbEF3zzQkiN}u;`TPF za?^-LM~|ki=JS)na{dOV>wQ0^Uj8@5u4l=+z29wgmTli#+qdOpZF|(yRpMKNPj@L+ z?I?a~^mJzF>$&G{z2!4&)||wnXckfT>`(hUORuuL)3!#AQR1q_MNZsLzZZzL2HZdA zYX7w3x>5SBBbj+uYEK3^1f(7N`E!3oQCZcaRC}wN7MACWODlOYE%a|(IaL`}&=8@> zYR~2~O})60wZU8KxX}&|#b2R66}aWZe_r(U({GWqi8^RJtVY+*vsHgT>b}2VerWOyoA%;!vr;;nP8_|o_|m}@&CbcwL{(23eqCN{=f8C0 znl~Ea47tk`{%k0WW53LJDv8Te?%}BkyXP*|*w$=XIOl-TiBe@>EtQixowsH_h_z@4 z@eU3zR4FylGP&efnVZ9yAaKm$&ZMp+KE_V_%(xXgV%>+dQ}_;e^{R9S?POb|aNq~q zYN1)rnnJQNg1p6R-tna_(f77{>ZWY2AaI$fuKoAAQoG&Lyi?T#nxz^x2(6Sduu)xK z@i%*?;B#?34eedue(CPBefH~D&0V$|RiBSZ-rwFTD^vX{a&7zdoM`iPQ#88%c}en3 zzxd%#Q9IA9)4kqb7wo!_)oxX^^=j_inUR~{-S)TB5{@v^@v=(rdAI-n!-|ZJPD@Q+ zyuTS#mvsLzXW?N#X))%*lI0Wmk`HgJR4C2SRF;0T+>CRL=Y~wVx8=K|mv7J6Rl56{ z+0wW7PCcqg@9aMxX%WZJFWrJvRuMTd1AtjrhOL33=}ytRYk9ATlSyhsV#qYNLgDh zo00iqLP4Nrg?Rg2CGid4t0U4cKbCyRdG0%7h^B^T(9^7Ul8j-y*T|}zXge|E!htpC z0{DJ3-uM#t2G!Qchv1FaKACjVmF6`{DUx$FwHvSh)2OCTcS7Y_fh&a$zn&-=jlRQiyr1r{C@G& zQn88eZ0hGbu6ua;2eWoq$TBI*j~%Dx8p@qJq~EnAO;A-nu02Hw~!_ zxzfk;^5oIriBBi3xA`|=#;%zb(OQR;k_8@epK`hL&LYlfk>aXIZa#-2UhSLgA4tx# zJTUKcQA*TyshKZbKkPlMGUw)ob6aC&mrt9!+A3>rx(~b@p4cQyRjt zIxLqjA8fb#b0Q`+x&Lr~-YmD?8J<_ZxJKCK#DDU7eL!?tWoGKer_1iL?<*?$ypB`O z#s1$kbNf%diz9`)qnoB0Yg=!duH@LM&9`R%w_oZTC;Z*x?cO~nLgsm8p_#<6akJ_bzRt<8XV2FQ zdxI7GKJl34?ytD3z3=OXg|f4~jS9A!oR_(pwqkG5*IT9Eywl(8&Dv4&;YV-x^reOO zN(0vXxf6fw^tBSs33YF6-`D-Ew)=Mc>`Kcst|xgGaP_4Aj4k+2>Hg0pKi z4)YZ)w(0!Ha`%p2rcphAI=2i%wwkwMi_xTDx6d^>UWUK9)aNebU!Lm|ak$L!N#^G{ zwZTH+QXdxkHS${=n(!J@EY`m$gPwFc)7W8>7s zX0|yllhUrG?u>9bI4_xhS8U1UBSMSSa#h}?Nt%@~uX-vW#KB>cDf3uHUSbwclG{OU z)o`nqON+&&HrkcFyYlw(>wW)TghvO~uiJAk@ZPqaoqyfGyIon%x4f|a^{kiYm)auJ=<`#_V_BXy^JoCnS(Uhu6#>V@2da&mD{{JHPu<6H#JY+P_G+Ndva_advQIjgTO%vh?TdZw*($HK5T zOHX%KJ%}-EDEj<${hYafUwxmoq-E;2f8Y1lUons5c(eWgnf6Ar$2Aj`pP!5j2;Hn+Rxm$F5RO-^KhNI^T z3^vSdil4VZ*8a(oO?7XNZcaD%yIue9$;|81ZhAewld@n^+tia=Y<@nuwQ{A~@_4;X zjyI~avR+49u8O|)yZ5a)pRMUW;oq}UgBl!ocFr$8lRWXnrI?7?;6EqMP5=8Xc*T+r z*}vcK+`sQuPLuEazVav} z_t%@Bo5kgGb7##Ac|7&4^lAaY81c`~FYowbnX{lr`|6?Bc@w8emsuU(akJd&?=klG zzdvO~_tSMLMO) z@4fbMZuovPV#c1dpLa~#YBO9XemZ@?&+(h;kK8q)al(pv>6a8VmpuV1UO zzTKiA>_i^t{zl<2PNS=wN9KsJ?QmJvm|E%j>B~juyLA!VT~7=47~4FH*m^cNSZ-qU z^{{j`-luZYRj#NutpDMCOBUf(4EyGIHKNlBuV-QLE2>{&XF+y=$jCn=gL*sZ;w%>LJs<%AJIoL?V|nYhI8t(Bec z`UP)_@)hp=`X>JG+WPvJ)xJUd9`fe@IKXaK@af6P!|t=x&%X`6ciQyf*QWG{R}4-@ zYeS=aE1xSnI|^vO4@sz;D!oBv@g27AV-x&ZvKaR%F`i%d$uPHZvg(64jlSf`cT$rg zpKTISde$>B-!Jj3jeb}1(wJ+_4ptUL-1}Kp@04ie30R%N{NeUt5eK!Jf?Za-^NN(a zjyQh^OVDfiag}R_Nt*b9FG{l$q-MWk__Jb@mBrRc-E5MR6OEVmWv)oI-#T}Zh8X{! zx9OhuRW0O&dy`HJJ>I6|$S9z5$%a|zsGP>BsjpdfWeDjn>`N0o;>mN{r109+>B}N6 z1@At7rYU#(!PC1{?Iq^xDi+R3P@ivW963{J#lu;#*$KhZRtNu0BEho=UWp)I8wg$@VZ_>^SF3pIL9FzyIITo8tfE%Dn08Y~D`|-5-## zY-y9|rJNk8M~yqeB(qgt9sd8-TYCEyuXX?1_V4q#Q7eT zy&D(nn;w^|X>Bt-j=62}mT2zDk>#>Y-@y>r$(m?#$s_8C(LrNZNA(Ksf14g`|N6_< z{^#=L{~o6AExfe9pp(aBnQC$>OK<6rVbVY1b7!OeT7rpd3-)kziRt+{^E!vEKmQ$jOm9a}Kl<#1Ya8RI;z_{7bd-df$L zI>0@3%SBl)$-}#RFJHOZkvdUYhRGr1k<3<`!(N*|OEt1obaaNl%{-hq*F(1bqsK9u z>n@?|T5XpUPV-_E@DpD0`yl5JiP@1N+h-)-zPeIsEr);1BhPLpp7fv{Jk2roHx6)q zpP+c#!n3z1aH{C?35l*uCfh5H>6}ihS-Mkc&H+chLYd~Sj!9O_cO30md9YLIxKr-I zm{?9;=0}DGc4A?kpXwx;3&Io{t!{{SJ9DV(mA$<3KjgkW zZ&sV`&FrJCUK{Us|I*BKJGpUcrTm1gOB1heabEiP%JY)Q#LIn0AND+GV+y!#=Kk$# z%sTeedj%gdxBNS>Nq}*CfPsP02C1IMFIMjQeYEBGzSTl`i&n_&5REG_5 z758qeT)pXv-cWZC*cfR}Dwsn85oJ_lXJX1wYR?Oi^_Kyu08$Ff>=#~AN zyXf&}!-LZ=zsbFRu8FnoS!eguBEbZ^O}CyaPq?NP_-JA0{+bmR+cvM8u`ugac;T8! z+N^$ulsFEjELB$zXN=6bZD-6hW&aoN{Vf0gH70vC2XC2{*SdNVzu%!1mCqi13bKmi z{N-uZ(d)d&C8+(w%cRnk^IfLh4b?Kq<5-w~leao!S}?;FA6_A$%Uj$x*F1|BE%4~) zDdlO~xgvM=3=!376N9H8Nmvyuv-)g~`c$6J?Li8zUtg_Bn47ujl5PE($Q4u0#bix2 zRSZ87btd`8N8Rn`&((e2siOJ+#rJ(b*73)b2l|=*{yWKgf^y~7Tiyp&b=chQ{P@1( zx^n)k>uP;Y+KX0jxb1vs(bL&C+hfZgWmZ`$soRD+^WQ#Hvv-?kwK&4Cz5M2b+D~ly zsyZLIExU`B8CI>gKJ#5c#Ly?HS;Sl1fAI`1^R$;q%nZj;ZYpbeKAw>xxTaids$a5E zoYGvq%Rf8J4=yUerELJ$2C<}Q*IsKDbsm%f6Jm1K0?N6 zyYDcjXC&Wpo5uAmz##IFO~Bd+o-~^@>jr1pB+($FuynH>p*zH8SzS69DYHuY>{IXV zyUgrSQz!j9)cm_|(`V^bm!H0RB4>Yf3VUPnl!bTgiYj)8X&EitRCeubfVV}ap6(Q` zCr>s%*V^4?^pg2gT;J@4J>PBr+?e%p>vQoo>8^7dt}o=P|8q;cm*Hvd=ktDPhmFs$ z+r)pVy!f3VYkRf8>6eaDhtD=}dj@~ry!-x_wfTSJ6ua~D=KTA-cYfvN&-a>K?pLm7 zdRdyTC4BW{XWIJBg@<#xVy3P#i=DqNJjwfDnA*|=)m#JHqc;3~90r`mL4O&~KA6=S zufKNV+y9@o_UFFRIq*}5?dsnAf1&P^+%~`EXNaD#SbX-OBfHehrya|9a-=sQl4+9t z=9fnfUUd2`Tzz|Q{oe2_?FBmCv-NKmpM5aV{l&c1Jd;knm@}~}iS4b?ls$Xu8HAK% z7-S9?=EknO`11WT&5hQA^~bhIE?#=+rP$tI?sZQeG|TIh6-;rmc-p1h9{Gl2z5=&d zUxQ+i>8-Tezu`lA z{kHPAM`mr^x-0+t(l-lhRvlZ^?7Okz;6|>DRGsHbWb?I>CDuq^7g|S_q&FR&m9naEb%W}MTfiG(UOrq+Tdi~Ch>Z;PADw{cfez_jM$YNagFLeV$w2-0y5Y?uu2eJY@zGA5(>dbJ$vLmgX6P;xkepPIm-{n0{>U_jQ+rI0 z8nP?JSM=*9t4uFs{BFgzywqdo6~9ey*V%@yZp$ot@t{$5_WD)gTn~R1mkBs*Im@9P zmgO}0VG>Vy=yI*eVLcQ3j;hywKi{`~>6R=)0X~WKni?4Syd&NpJG3K^vtGyFzd(Lf?`ug?OHvv`Y znKnxbFM7?-F)j1hVCN+9PCe;xTh8fqE6i9qjPsYAc0D-p$k~Ra9*P3JlASE2Tk_6L z{@Z@@NQnK*~&*=Cj*vcmOV=P z>RW#Q-|qdD@4wGoVpFt4bNc*STVHho7{`-aBgf zk@t12GiH@nz<_Ww#1+ z@~WfMeJVaCI81me^rvBRwdbv?kw>l;?ccq+PIpJ!ma7NitmaPSVOaOdy|8VGhSvPq zOH$A0@=dju4C#Ki@hErqTkqY=U&UAccrZzUZ4a-`FP(0aRt2tr)~ON&XPX03z0?ym zxW2vodGO&sh2{^d4YJL3%ad~-UZ@j4ApZ34wFXY{10R$2ujbyCYJDlC=|{_=OHn8F zGrjk}T2}fs%XFHe=;ObRZ$z%Xi!NK?xF_$qi>P0fT4?#-2t%1KIdSI> zOPP=bk@4@pp)a!G2zObY9K{tckA)hj_Q*)k(I4qX))JoiMaBi{2>X@oe zFBW#0wzT)<7OZ6BQIZWjRwHW`&9H#sO#I5qNTJ@sCKC_JRP;aN7taOutn3k@@jEFhYmuVfoGdV;+@RvsEib-=cIkJD>a7yqLIl47~ zeeNx@IjqG-$6}=y=>7brIc>(0p!V$xw^(egZ4+_jbh>VHuv>O{MSDSvMt;M=Q*3;H z7aS1qR8Vj{tJv`)j!C8=V7>Z0D>#x%twgq9YAAAJ5r* z!pP&*y?2i%)G~^$JjR^;ciFBW)@5rvymucl_whfRneNHNa4WUXA?@dd0yYH&KVybg zr%f8(Mw2a=oEjItS}t<*VTN@KnzO(6 zvu#Y`^8{>u=U7acsl}1MRNQY$?u~P<*ZCB~Bv((@GrKMD=s?;UQSJ{G(P#5It66u? zGS{%Vew~>=w&3`EzjY_BAOHVB@JI2}Ip-JO-}mFi>$*(Q&vRd!pSxFc`Au^F;)1u# z{5BsRiSPemDfh{E{?9Y9<#)fzDD2t7)Xx+C@KN0-@qg8-3uoue+WGF*PV4+V7o+Z! z+;{Fg{3mbw+}4j@9RqJKZC=9PINRgU^*hU!ooavg^LYCAcdoFU%UNH3pD=FU`nl)J*I<4b)%SnxPc_CCP1v8ByOd|X z;J)RvPw})bIZ&eC6CEohQsUUqxII?=-5Q0RJ+X>&7SAfunCrk2XSw9%pA9P)pWsuA zoFw??xY&d1+T9 zCqCf>XQh(I#*orG8+V}iP z0iI^(Yz|gj=BiaZ)v9p#Vatj)ueaZ=x%;rTFnZ=m&2Q@Q_CH@eU!Q)nYsp(bd)AhK zRWnUnqrUs7ce5wnnZUbR^2hIWwLd@0|I)eh>bmUDXYu*fjYl*qxtEu7$}jnQ#4R&r zR(Z&?;BQaXtCe3Z|9``M{!f{jC+^R_*IT~(KRY(xBIVSpp#Q7RF1_v-?tD9X`?eqH z^Y50gTixnm|6{HF+Vk`0+~4&1h`U|gn~AHZGu#zF?YU;MPFYU)DU(O`1B^C~~C^IHEkdHH_Z zDE0VVzgW+ddrS*@!n81`MgG@Y`~Qc_|DV}uzRkYyymCtH&43nDiLMO0tf?}453DuT zX7A^SQSdTVPLiJ2Fa2Dr&gB(Pw1~yz-l^vIe(l-$@zuQezt`5)eco7ISF?D*{P$lC zwhOn1Epf|XS$u(0do9oAMO|KpCe(B8)+(OHbmo}!fi4EM7T>o=PV5n!F;nBFrE&P? zLjlU#JwA*p6Bh1H@UWJPTK9B?j&YVnPiQ=!&ZR7AJs+8)nN2%9tYaApn#*3zm|+~^ zzC~xD@zKYNj0(frJ_|CIS|x@b+jKL_-DJ^}n;Id0Iw|R^4;F@sJvt%NpwE5I-+CLb zBHOYTri%~prk<1Up36OnyG>S|=Mc*jJs$?8gHMB)IZO{XRz0~XqS4;nd`-*KR(&z! z>{;4RMV!y=T6t3`GRJ7?F&8Iki-RtPf_=5@3EOgI7i;x5@-H(IWZGGr@bjotWb)^E ze$C2vZy2pLx-oZy-Q+WgNhUGpb8j59{N)m7SfOQg(5*sQvFVI-rlHu;H=PYFzLCAv%5zIdiF(PUDVf(Y+COt^`(2EF9KJ?HoMEe|S?O}g%L3AA z(@sCMG)~=dI)%yq+*Votv=2{m=ahf+c@S`0+sA@SI;XQ>#Zg(7O;>KrY_kaDYnQyS z@$6;e{C^h=z}Xm zy<{PozEAVLM*rWB#>dlDzgynlJojAR+u!H+SKj~s%<%iWy)5v)s5 ztqhv4ePdn0_o{1?f6vnrKb;<~7uLnfaJ0FFXT}=#qm0Wo1~mE|-CL*s`OU_ljd>ft zgqG*rwuqg)(Yd13XyGEE{M);HOWX2p&YQF9=DQy=H;XGQviNeWzWngw`Q@oW-Bs)D zKYX>n^-YP@LhT%b^qC(=Rgb@7+S3{IhSl|=_>G8f@7L}<8uY51PvQ6D-m{m#+yCl} zzx`p7|CDvRZ}dxC^q+56aJ5hO^WW4Rl2=#G`uxQyvodjMgk?eE(~HjRk9OIc?lwIs z;K)1aMpyNFo3C%;M19`}EeMj^Y8gUH0y|^lFXdH~Y%>;rIR=nk{Cf z{oST!l8?XCv~~rH%+Gh> zmVW)g?k6wZ8TEM|%uLP`zRJDT!PLp@mBiscDq`KD4?N#o4cIBw)>`v`EtJ{)v1(Mb zk@tlC9O)OPgs;*u3)3^xe^FB;ZO8PQk1wE1*0Wt@lZBw(4AagIy-PEnPoJ>5z0-+P zbD#Ith8uZ7#!g3N9%=F0xf+^u#5|0iwtiB8m}Gp;R&9Uty;-_yoo6G3mNr?RG>Eh- zcVm=uH&X3bG@*X3!42CLTW5$*cjxJdP;@%_R>!+jq3d(aBTl_Qt&o+MQdHJ(%m`?$ z+^=+W;@b6)88YUlkn5U3_HundSFP6daFA9&%#Hkl|(EQcc)<;G~FARN4xm^9Jr~KK)#^ zr;zb>T2WHVL_N-g$}8^+6_i-Lg>FQ>T>sX7?^>rV$2XQc9G(2QXX)2C>k^?&`^>`R z`OU7TKhV+XcbQpe8}@{iU{1W&1cK*lLR(+e|qlqFM>lfAETA#7)(Rte+546qt zBVXtqp-<@3R&FAm`w!J^?{{O%1_8&j4malJGE>%5U;g9m4_WHjH zlP28!7yLB(UcvF=H%tCZ_OJV@EWc}Ey^XiZ%q-J&GC{5D?^S=YzxVIV*66&7XH(QS z$a*Oz^Pc*?=&{@4wTv&1h8T$yJ!a`ytWtF0brAcXO{YzS8S}$e-@f;2W}R`(1L63Z z>*w!m`Jd4o6Z(aVK~3xMF{MCBi~j%Zd%rhqdZKZ@ZS}5I#rJE}-=2AQ?wLYn`P8y- zPE{2Z#TJiaF3du1$J8WF&q$~@o9WLa+|%2-(RYKP0%wn)&;pt8Ox3k!%V*A=yFobr zUBuP9|9^iIHTrYEd|$IFOLpJyGxLhSpPReyZs^socKKCuU2~UB%nEP0&v4tHSDCeX zW}2rD*S4-RSNCk1_*r^x`@Zk;&DvpSKJN+;4H0u+u)5)D`J5Kj4Q;;1&#jHL{4&?Q z?921wt$qyk@!T<9rlx+`!NxhvUAmmCom;-zcwM@&lxh2h) zIhcFn^}I8`Ug{hO*YCRW;l?M?Z25ckUpJ*LU2v1pSjhCY`|oLYcK*6E{oPN^p3m=P zcl>VG-tLnnCgi7mDr9k-x#favl{aEHb}mfX#=F~R--ah^B(MIQ9eZEfEl#!Mf7*Ti zxcHi+cLyKs`}$h+l&xU0a?K2uxEpW7yH?!FC>Gy*^Qq;2R)>QfP1k+i{(Jnle0{#H z^5I&a^Zy?n3%9k~b8@ErwsOUq=O?v4Ur}%}=ymrn&vRMvrTt&tj8lv4_tt)%d;i_P zhq~(VWyjYAF7y8+^U3C%|7xxWHWGV(-V!m*|M%hbwLkyT`Q`I2Kg^mX$d;mESZo?O zY3(we{3GW-{%+hVo}>FEDR<%h-o&Jv zdS<u_r7sfOoU$+R^K5=``U*Fv!r=gxhI=LJigjD3JC*HDobq#}nL?>P$HuK{u5`4zeQ&t@5MOssN0e`4060~_AXy3Xh@CGF=UmY2;_eC~8{ z@$3oW>z~=dxGQz4i^TunP3{v`&zf9pweiS0WhKopGZjHIdBe_&9wJ{nBWxm9@BiF8 zKVM^Mz=XBW>$57?Z(3)+{LqgBi&R;?^BLEj%}CvNLgDqE;0Y2;(l4AFrh3Ru5eU5= zDC(S2%5o#ZnK7iv`)qOv+lCfn;bmeCDakp)>Jd*Gf;~4@^K;8z@{wKm+ALwS*tS;> z?B{HqwL0_G(&g(tA9OxpSQ@V)bLWJ8w$!t#{$^`>A(~S%&82*kQvIrqv<>yUd+~PLv+{#a~x)eW|`(c1=y< z)m5R7x##BJDNR3|UAFA`$wyq%B%X46oe^@FWvQIia%6+&@#k|->kG22YEgUJcPixa z*MpI6cAbvOspt2~7yteBHM43Co5lSZvd7PV-Q$paHPp)T`<>$VJD<;c%;Mj){p99n z$DY@8?LXi5|MmKLqUpcx@bb^EJ3P%WHT6-kb(*@wvYsr{bG6OV&IdQod>5Z~X8q1* zv-F+^=GIj$*i(_zm7o}Vt?}a@wnsnu|0eIWx)CY)!3;{^#`imrZx0_f?)}eQ)`4<>83ACnjFn5*^UV*x*wb zt?0Aaw_Av@di|Blej=@Jqi!vvswY2R1<0^3{p-^a2RBxtg!Na?MA3r@h+D|cd&yMTQj@mV|x9zGuUiaobhqAGzl%dx>Q)%9< zQ4E{caW48fWmn(|=6j#3f34a!^P8@n*@f`8uTPrWEZx3-QpVZdur|JpXsw0_%R8?^XBM(yI1^f_0bY;hC`1U8J$g6^f3O><}Q_+{Qt-E`rYfd zKX;G+xmkSwJ7wX|xtFpNr_C;NbUWrTzev;dn@r)9Jw7LmpFE4r*F8L`qoZa2uPYB{ zGPC#hosX@#wzIsaC#+d=l9kp0`TNSQy(!D$4hC8Ld3nrS@Jc}2&M2NlA=e}!bLQzY zzsZN437n+puNpSVq{Y8Sc5cA4R}aoV|0I=cS5tmPuyWZ+7q>a>iMNb;IBI3IEI(GP zP_asozkKb1cJa9emWGu~ELVfoLU}S07wvx%(&=OKaG8znEk1^|^ZV}2vU(~J*(>6D z^}((tla;%R8*Z~4Y>GI!;VG}^+Dk0Vr8nIqIOZRmAu07qdEq|M>9L1G&*piWicFj* z(5rCE@$8W$+Ab3W^AZEZ=1u)}>vY`BIrB?ruid)3HIu1lYWL|CwW4RYN!Nw=@h(j2 z-kFk6_aT~L5@%mvoa-tNyKdF_HqtRFpM^Ay_}p2hbq1_#eB*S+q8rL55eJr|I+;V&F%yswcmKdfiUwOSHy?52I7Y8|em%LTb z;nmCZyziN`{hr6yIZZ4=4-~~1PTwkPTcvC5$r^qz+a=;ms}SeZnUb?5gbltwka;?x z-8Mi(M5p(_!o*8zCZ9zf-d>_VamL;SYMkLtvBGXgFRh$;i_54#bMK|pOCLQipW;!Q->{j>EO-TzvI%j#u+JA9970X)v z_JMFC*X{5u>uu|v*s7UIJG}qjqVZo^e!r0Av-qcs{jZ<6#Aw(rp7fRJ!KZZ3EArK! zE>54jHLGa(($*S}@@=ix7Kn72%z0wT<`I17!Gt|RJ6STNRK9Gl{+RNsP$HEvct>%4 z-sRKhAc#C`?H!hXYTml9REj1 zQtHvqxXUY8T2+@6c3Aoel}+5&ZFL35gZ1|%gdUtWS8DZnwz9zJ5J~;%XBJPMyxLD9 z!}RXWnLoE(FYAz6YxnW}GX1}o)i-{4HtC~mzRcaa5(e6Rx7(zD?Y#O>id4%KgZqWVjd;OEVik7u;wE36ZiZ3ZfeRJXuS)G_m^d!@YmQ~ z|M#W&`%9jDC7U4q`N;f1?8_7v&s!(ASTW9Mc$;0_ zl-V#RSXXVjZPD#zC)2MK=I!~hO6@v(+p5Az=X{dSYCk*^KIv)Jt^4n%uyY^1*Z8yS z$K~_?fBx!Tue!7J$d(A1AR&bqp~(9D=@kzo`JVm1?d;}cRQ%*t`Tw8W_8xDVIrsK! z)AIqdE;2RlJ+_S_KV32}N1{`Bk=T2wNM)fPydF=O)ST|JB2 zAnM4(Ls@gDJu8hdes`uaQ$p11r(dxVm+j$@<`5&n_fq*+rDUbL1g!H!LPK>!RC!c4 z%~xBYzph}~(}~7Lo?SKOl8266*|sRHYqrF+-X#+{!XJy(%;i78a#4Mg>#-Ye7B5@a z7{jZa<$@Eta)+%_eWd#7qFO6TQ&YO*L>Ta@+c1!u)X{s!N~f`kQ+cN$2n z+QnDPzC>wZ-iyU7l~an&epxEd>2R%(qglbp-skU(UmF7wR1Uu9P*S;S`f!!u?z0>_ z+-@{C_Y3p%d0ai<8mF=BO0;SCne0YUU&;Pgs_x!xTCA*<<{Dl_sjAX=W|J^Ipm@z};ymra7Vzih0{vrpHVoT+$ZMQQ&|)!vKue|>G< zQ*M}L*L=G!Va<G{YmlDY7?-p{ z=pJvaDw9Y;ljT{9384)BC!K6rOKxT!{>GQ)tNUceDz?jZuQk8$Kl#nA!V~S4z&lOL z_h|0&#Kwf%nh$0i`OJTY-TvOz@bj73*S_5Sc4FVjTOmtS@-8GzyZf?)$zOq4`QoQ( z&8(dvp||G#+qWuG@5Yhr@}T7jYd7>P4E!9Rn{r1xvv%_5lB)+kJ^P_JYh~*TBfS-B z4&L!9m-BAxi98O_Sf&=rn{&gz@7=PuE2nl(`?2r;!PW7L8ZA>8CCe@aZ0;^B^%QJ) zGpR^$nvcJxxPENX?5Lx9K0fE`Dt~+t_kU+oDK>TTz27Iw%jU=4&6iL;-5Fxamtxx& zu(cy;y79E2GS*)kdYcZ0*46#klK*X8?dgN=b}>2Azu8?~JLSdeD-YYx$iF(5yfgOx zrzdy+?>||)Vb_~@cE24v>*w~n&R^5~QDm+AbzX*uw`Ts2_T)7Iw zFn6j#vW96Dsz z{V~xvp1FVd&5nt-atYQCbW(H5P6>VPZJU01i{Hr^*=O|MzRfO`TI2W3ig)z{Z>vMy zN#;H#p`xAs$-eFWzdBD|t$Ol#k61}m!w#NU{V$dUx^02r)A&c z$>vXcl#YLxe`u$hhe|=4acJ(cMQ*~PGnOy9!}N}ZI?n0c-&YgE3I~S+uOdf^kWITuCI#xcIC#OKX<+`zRumh zTwbzq^??m?Wk$(9(yofZ3|G67ggUP)rAjbIh42(SE%94&Qgn7!#9ZOSB1sa_&zC*W z@>)At;ACUOvLmhg6cm1LnO%5VMP{Rf#5bQa@~2HoY7gyVGBhb$9CT1B|5V@onYrhy zHU>P@`m;lRLCOU~KDn@f_Y-wq>Sl|S@ix8kZ<(^FikF3|2}1 zt1F%!n!ZS)g>S-CiLk!Y0UZVvUoSlK{aKe?c7N{KjkhLhCe8YLG)U;zf9BKwtl4Mw ztyfUBW7pcT=$8J6t$$ZFPm%v|fPL4ihxR+4U)(-#|JQ)!yXsEd+-GpE;)3q~`o86D zy0%k{x&kzs7WtjZ|NiLYi%C-rdQ5n?sqK3_;q$4_^YzuA#@GK;|NrCV+Q0*SlhgLc z^8~%KDt&tLHvh~S6MX{CeU$u}pYqF_<$x@!Kr2t`3@f#VSpr;>$}FxQoOkwY{}w6B zhu!y758vqSbo4OjZ_3ciHJeb%y0cw^IYHpZ3dxJ9hZRFgm>gr?+*)gTES))8ib488 zIPdxQB{mKED-60GHs474xb9-7dUW8@Wumv%o@^DIy+MO3v{l`cXTtWNv!^YLa=$Kn ze^;cX<)OL$I%m3u>Ps?V-kLDM-cr-z#^DZ3t`B74MP zRg|Wv=C{qO;v{bDoRgK2v~IEGvll-ycJKV~W!qv~?>Pay%>A1is^;x}w4(0W%h~*I z^K|VMbF1H0?G^m7YvPAJnUyR5ztmm-|5pEcW7i4Yd;IhNKQo>F@92{EY%Z>`nSzQ> z#ivFlnfH25JARI1{-!GCpvSk;+5MwS-@ZS>f4A`2n}-h%|2{l-x3=T#c}&)ED&#Qh@4suj2AEL-^A*l*(&fB9F1pLXS~HrTnZ=g@?ts{2_bO3qiW zJbQDk{tw6L8RuuW&dcBXjd|PT_Rh(M#{#0?`n_Q7!{;&bK~ zNg4f|x_{5B@AiMppF9y}{FK?*xX`ReV4=~2^Xmj>zL{UUjluG0B8R~DNxj4 z$p#)rr*o~2YtmN7o{|30>iDE6ST}-oy{hQ4ABS?;>spS^?BZ!Tlsv;XB|&8!TMne(S>?{)ts&&6>~_)^a~+m%hvk7YtVI2tS# z@9o{-VCs6Ep<5^MpckuWuIQ1LLa9eR!A~rhRHB_^w!M$YohU0-e6(rNi>|yE1vgXe zH4bcvu=EZ*yR`e4(v%xh8a`=s&6riFz_ToAlkDrv$ZW0zIcK-G zErrHj>my1oojk04AlvS$-O~>b%kD-b#JuefeqQfzv%c8jXLWw{MRohK*M&k$TvE4a z%y@aF;}etHihoc1|1IIx$p81+vGQ_joulv_GZIWmfxTMt^AaIujblw`>&Iq%PhIGIX&_D3uSHgZ8GXETlNbq z`7^y*@6X|{x7~fbHlAi|U~#@~cUCCn$lH=fDlU4HBRoT54Y{r?=}~7}{%(%@%%V@n zd~eI&iwjzGDdB#J!fZoFC#x$}DrTX#SY{hcJmt5PV_Lz_lw2td_I6Y6jfo;&8nf9~ zuMRj7ozVVyTXOUgOL<}5-)=Ie!|qHvcgG~x^pDfZ^ZYiwvor&H=Xi#0e(UM{v{0wt z&)0Liaj5;KkB7W-k3Tx2CqC1BC&PjdCvyG@tSWrctrK?X!HX*gCtaSGab|A7OJ9KQSuo-rM*% z)vjGtv6|DjcU!)xU^o+SE}FZya-z%PJ%9H5|Gc}u>PfbN(&4i&`|teTzQ6d|d-of+ zxDC`?lZsj1&V2THi5`DFCMYf-F@VLwfQ#vXYQyQwMJuxQn(6nQm7mFTX{x%A zumYo3YxTk{x~=VxF3n!IdDdr(^eMIf9@*b`&-u>x^P1aEXC*{;u4Js!c;2&kadqD> zy=Mgnk9q`!pW6Aeb^qTZ)$4!%_*7v)gMQ{I~lJY2GU&zy425(|inAB=?_I^;llqKl!&13)k6M8~#%Sx9^-nCuu z!6T*i>6Y}Ln|AJ8c_r6sX`DJo?!50RI^GUyj85k*bPB3>%;FXoW2i_-?&Rra<{4+hZE^bz6$1$19FFA#x7RI|>ZOLYMvSIsNbsHhCHHR)WabMWF zOL|G$u?bH&4)58u&WneenXT>U!e6;BU1blOxe666WcbJIuiU$&|I+O^CIOv;$FF_2 z?mQNBIH7Zyid28_4=&Fj;WLsoaX%%wx{VXv=ggB(u8nwf`hsXHyG`1WuO_bc`JsVY ziVvnmTKu{)Dx*>N{qs-eNvjx-9WfbYh!qab8h(cHgR1S5;L%eQ@68mdpID zS!k>BX(OLW=h8*q%9y4H{$_T~x!tLCg6p(q%gMgI{!8w?N?I3mj`Og=gt?QGyeGM3 zu73APVrp*ilz0bUqkSC96>VRbTVI~rHL-usgDLa=J)Jsl9dKZBuGgOD zr{p>1qI)aWnzXJx-s$U8`+r-tvgWDUgMDibEfDS4mR$et)8=zBGBqDS<2v<+`~Uw7 zp4~tH_Me{$PoJK(UB1rh?MG*}z+Jq%?Ungbwgl)k=RRn0wTqk(Xk*@Jq^DK7a#mHM z;`1-dkDcrm+nRi-#Cn}TXNc%km4utCYh?`tR-UtzXzB1ud2t}_)0@VGjUKx_Sx^Yzmv=~d8~46MzE72Pk6xH zjLrqmwwg}8X{8=@%Jg?j>2mRzm*(VM@0a*&{B~xTb7#{mZU0wmW!ABNefjd~-dCp2 z`J#Ke3*4JC5+n*_p<=YI6uW!fYb(>OM#J&_o8G#;vU!uq$9N(+G+3jx`ot~Y!ll=5(_2*K5<`)f7vJ78B7O9V} z38G%=A=`OYPx;}f&f_sF!OJW(Y4hXQU(M3L`rp0P>x^E%&}BqXB>9@n`LG9oN?2_2bmI6M9%8$@BYC0 zGe+s$B^R?-Dl4sOqmIwFO@6uSvU$$R;KAP3O!K`=IuX!zYI2#LPu!I4s*S>9U9AJzvJdq{Bk-mbq8CI&uDxq^dWv;rxl~p*{iH;4cDifxNJ6u@4%OHog0(C zZfjQIO<~Kg_qnh-Sqay%fkPa z8>&z5zf=5hw_nwp1=Co44Wy>17>b1kUCS{yx|*ofG$HI4_td%`H;?$L#23}N`ZcRA zzR_4RSxElpOy8rLlbekM^vYD)(l2-VIl4a|VVh zj>{A_)a|WZ9{)E#-@5uiY`!fwx237n)srV47My>#D|VX|hf6Sn^*WB*YX#z7yDdA~ z!DuSQcCzoIvhNo^E z41H#=TIO@8)y-L~B9^V^ z?4;!E=^87eUg~oB@JQ{9d3j>tMz4K$IQDK_%>BE2c6aMV?OE)J0&%9_GM22&kFTqI zaBXso-0LF}3b_*R;&b9XH^rXux?7d~`|kGd>t$wDURt?os-d3w+Nf3e&Jphl%3fVq z^!KXr;uf);&Y@wSJyqjBiEIs>UAo~;z{;SdYOGpsR2PYQ9XGtPW|H{kS-KxT)&Ku= z%9g);f5CIf^?w%Zy?3)d;<%aW%BYadrVOb(zo(VNUMyL3x9ocIjENzZ$%+d^npaOt zG)s%NoK^EtS=|46dVWpH6rQKSI&)nlWmL6~osG~iUTD|g#}Je9r>|T8*Qf9Kg|mxS zC3>}Jx$&qk&I(*F(0JAI{GEN19Gk?|HIib2$J1r`P3o zJlXP!J%0B`=KK4ew{N$f`g*0?rpq(u-@dN6P(DEQ*(xrMt@qYh|J}=}#I3SBESb-* zb3tZbqd?&V zr5#q0i*2s(}YPCVc_CUZO9KvZw#5}QyZRcQs!6eZIy zECE;L6eb^fAZ!rUkPzBt^vvU-m(i)*9H)g!kL@bdKK6%rYB;tmbgW^oZ#E3~JG(_T z;p^&YF9n6PBDddZkvNlNVA7!S*ynceMTrMjeHx}K$M0S+&&ASl(p`rhnXiKL@ zlw=+3V(DiH%sV2~vfU%5dtG2tO_2}l`o;<+@B7^xHR4WUO+Q1nuD=tK`OI}qBxh)f zghXf1)K0gpa;vWx2k3nL!j{J_rs@^0wMswZG_TEvz9cE#mVzq(UmUF$I++x3m zwYhGc*rP1gSnrl|wxi}o0)wG6L$+{9%L-M5(Jej)OrA+wEg2%DN|1B`gU^S9oF@h=>;F|Jr`c`=aT)MIK7$2Gbe1?`1#7z<$3lC z%ALKv%!`;-I3{Zx(GXfzut8wreZ@H+dmgwP>UZk*>pzm$`()LJpDr6rOjdXueN$m| zTa4FnrNSmp6YbER2)5X5vnBpi-93;Nx?$nI?+4DQ`$z5eGn=hx)^MTAxohv~dw=)I z$J9N0l^Wf)K{qs!^|(di;SY_;#fsZ5dN?d$jCj@}*}%c5f70T;#TkY-H?5xcY%cDN z+AOCVxsFLB^XlXaxwqBCCkNi0x@={9#j6SC5;7mS=f-^e@b9kUB8@gd#xy49^Dc!O zCS`o9IGtnO+;nQq9KAaezTevXR`NWr+V}nwsl8=)UjFFf2tI36x^(Z$BS)33qh7a7 z3UJxH*)-UkXL5YqN7YF$#bY)Wp4Yo{@AHA9`Ts8bc^V!fznhuuK`Fa@%<7Hb=Y2XR zsF^OF7T6K_FTIkp?7&8r%*X>1&dWt_|9VCH--A8P?aQz6PObm)Wrw(%zr562yHiG< zu3fv%S;nSslhaJE#a?0Uw>w{I1d^>=@4X4J`}NS( z-g)xk*?M~(tG<8q``c@)2cBB38+ew7=%m{k-qljTuC0JcrIv1$? zJ`l3{@BV)e`}*U5KiimX_x(ji_u4f|@jS<>H+-}^$8l_Op4a|s`yRMT%S&1A%DY>n zFVQrWP(w| z8nev{Ip)PyxpA@exd25m{v(p?DzCiCGVQ1Oh}*m~Do0!h9&|30U4R_B(wMbQ!v!{%mJ3mdUU=IoAm0z96xI*p2hLa2nw)eC$ zD9k+>pO&;%^7M)TBTM-;+^kom4|Uw?4(Hu^_llXf_O+jX`feXjW9RC6U!CaoZ^|*H z^i?q#T!H*HcV9`qTFv*(y+cr#O(EJ%=E9!Tgtxkn; zcuVeaoh52zRfS8=r1VHw?Qk%3YdhSLTrY=U@_&Eoo~xhN#Qk<{ z4;|XYkBTz}8mHazQeXPFySUcxoM(^t+?_X#QaTpvIF{qSqL{qINyll>E4 zOG-<>X416i`n$LMj^LA-U#s&gFRI&roV{{M%gV}Yj0)!hbb4n_tGsn<>j&vcnmzm9 zm9CH8Rq~Qsa>J_*=i@n`)1Cv3zz4tc@?$C;O;Adtx-9@>i>k#?_6*HWAc0@ z|9fAr$JamZHUDR}Y_IUl1zS2Z7o;}nnsXhlO}=Wr=WWw#yKnO6)jcY|&2&C~KK7r} zgio`-$9!m4x7ijSZ1lT*%E6g+eTj#^X=bWeK5zW+x6dJ2KSPagPASLsSFXGd%HJ## z+{T(AwJ>aF`OJ)dw<<%PbcVSGSCp4Y)SvO#VjP;*^^n)#jLgrjkZz-e8c{qPhdq=x ztjzYaQ=I;qwOOdG@G^I}UfDZ2`P`EMk9YAb3ArRNd15D5I@^JXS`+6VN$AN9^*j6R zTNu~QNoObTIeM8ZJ@el8qpRZV$}_6I9XO$RJ;q1pzioQ`)__YPa<_CcOQjY?TnM@? z`f<{@ zMYXMz%*ywlVb0y*6fCudVf~>ptZ^5nIA-QTe_0{@XM0?tyR44z8H7as(2T!R`X)oyZ-4pmzt86v%FVbH;-QwIeuPabyv1L3 zu8m3f_gv>4de>JdxgIEasU|3@nJ#r*#rsjfq266(6A!3Jty*VLeg0hI`I;D8t81}r zzx{2VUkl$GeLDO38rgN(UD69v#hrX)W*be|&)HhTu#3&}*M)_$bG)x!2{kx2>r_an zaj(YIG(GWOCCi-m)qid`kN?(r((k}0HosC8&a}_Q3v*|rJq#D0x@}El?diScEe-ob z#dfS)#bo9A-v4WB81qsyQAYd76T0snrTLsp;!Jw8@q&0#+AhvH(&AQXRC!l#uVuwko?PI=H_mh_@9!~NlLn)Ywu*a^l0`X-y5ohmuZy*O zRv+ogRt+{`vgo?<-0;Av1_9sAKX24L_n!YR?_h`eGx40F{w<&OHXD9@`s%3YRO5)a zPQRW>Q@Kn(UiC8c&t&m1otPA;=g-7BecHm;H@-3-zW7ix*EBJ4k;s9j`%LUdbwXx; zZQb?!XPoki0}}d^3TJHaoAhhaOwLVq3f5{pJ>trXB@#~UmapF=*3#r&9DI=Ru%YnV zBl{T7C7evzx_8D`w?&(3&fVC${qsTnTK)IOPyf21d;8t~H*bW^^|WihtiCUKZ_~dQ zXYQ=5b-uUed&ndm>36Gpd)L2zFDV^4qqUVgugvjyZ(>f$_le5C&s#iRGjE^k?!F#B z-@g4Nr>*w?{7{(s;N7m*>(Vb?dbZho?fnaPes8?};Oo@zxXR~q%m4jK&TqJP??an; zN&Nngy3uXZc>aE1=g_eK`_ezYRxYS-?rw(&c_`Wf`Q*UJvb}FiL4>xUmB(`M6Y5Q%rD?Y30$C*@Izw((Q=$h1V@!BKj*)`V}eAkt? zsC*-FK52_fVuEf^eWGKRN#Eu@vxCD{@72tim22P0v_aYGxp$S=%P1r1j%^()7kXKq zZGF0Juf*rug3MbI#FwV5T6XHnwIV-@y$233wJFZUkw()vAlW3oMuIT(LgjoaAO6f!$uJ4l8!_eXUBk8v==o^Id!^Xc~gkJ+#9e|IZFev#JkdqRRrzf;#t zV2C@j?-T#Jss}6Y+FXA=#pL+8g-$zGu_&zz`BZ-Adxepm8)LvF9m%;VvhQc|D4lxi zdTL|Y=8PHsZ)d!`@^!6#WX+F^-TU_|Oi|c)t0h`xt3_9vH%r%l$xp5N4|+E|-THdo zAz=xtc$P-FC3R9SJGb~q1V}P}`Nq63>%_Xnx3xS?T3@rWlows@Qsq=%meuLEYV|^e zxHVFqCm1FgDfe$_c1zNlHQ7I}A|jBBwdZaiv!IE)i}ccnpW++OM0yDQ(RSN-&+xUu zsdYlh+dHm_EOBnIca)SnwTVM|8?&ON0GDCe&4(M;Tby%HZoB$na-{5I=IZP4vOI85WaDbT%O}KlHHpk%oTzx{io?-kpVz#e$<)+)_rT^I zqRp!pC!1=|5fQMi(U|P#I%|QBV~>e@)UoF+*Sn^QR4g?Wtp9d;`_@AzcujOW)>VGj z=2{||>ACsloUg6RwJK-(_WARD`(pY$OS?+kd;7KrW)HH;j&nUvTN=W<@sFvWX~P#`7^7XmrtI#f0mD@#~!9@pHXME27IVnqGrIN1s)x_K9+?-8k$hmINESNg^ z^7VE1j7^0qOA-ohKDxwUCw^j$Pl)Kb`9(^*7ES!{GbA+lq0SP<9tA_L(`Gu6sZV~* z%DO4~K!wM8jpmfjmuz#Fy1IShIw_rKJT=C&q9j9WTle$a9d}}D*WJAT`Ae_)+)a6Z zBVV7NA-~`K_2$0GvhoW~itqn%RPU&QOn&9*%z5QOJ15PlJ-3eioqT(_-kuLm3<98g z>es9PsE(0=0rYpU7lxUGq3);_4z-K?%Q73E9W3_J*N09w_x3Gd;asE z^Y;HOV@OXB;rvu}(RBIR|F?7#H;Dz!@A~!j z{}tY?hpKkG+x6Pd=Hn6Zs+{^<_K2bzuF-i8veG&YYRT%_PwWeBRGpRf|9$BHzU9(O z{ybHG_q=(^@vC$H+1!{bD;pmaWn6j2P0=i+_aL8CyLH0*mQyN;MglJ@dX-}P5A2vY zsmjRa&MfuD**E-{es5Z`Dkk{;O2pO8*^^tax& zVu9Ga&qu@C?|r%Avi3@J?zTI2n_H&l@Tl2Nw8{CUyN*$7^YLusw=*U(Myn{TJ+7V; z6ZdZG>Jt$u>P;frDH%5vykDM54ONdXGl_cH`N{9%g_BOlZ(q)M5jL-2^9u1Vdvw;z z?|ZoV{{Q%+-0MF-`hIm{|1~bFdgIFf(cVExu`}#gdA7)p9i0uy@g_L>! z{)}xuZoPpi*w&}jAf%uqV%e0-C3}w_KW?Rw=qt*T!zke?a+)nfK=JXGQ^t?dCbk&5 z-n(%5@67P}&(bOHh0ib3lCyn%YWKPdYpt)HEtzYaeD}M?ykeTyYbE&U%jsMUW_X*80UD>kM{FDuk(wgXH=k%O4aqE$N8@6cQ zSg~?qcWX=9(Ti0*9LJ7bd$8}8?4nGoF3)9wZc|Ph+m*UJ)d@?u{wZa3eqjIJ1JYKe zD|}sgY(#r5D6nOuy=+*bd{USpc3DukSE^(PUIS+rMj?-NpqB~PiFAJHc93NQRk(dsezb-t{EFl&u+<@_*yx5mDbu#!r9** zzPzR#U#+J2pF#U`+ZzkNvj4r()$RVfJ}fV9zv}hnk#_v;yxQdBeK*$y)|=J+d~L(9 zckh4y_|)zG*TuG+KELYD{|gJ%=g)e3Omp`i)BXP*_us2ODD3_=(|m5AyXWrDUlhNt z(%!Z%_WOfjdmI1!=#Pd9p-jQaT#*Va1o+uMAM-+O$%{k7Z(o7)!*j~zH* z;nDYNgQtl1)n)v$r(!E!wYhf7&7XBh;c0P%-|Oq)yJl?Co?00rTYGxC+^kq3$-suH zn#hlWGwx1leA=ik%gbXfB=U^UxOK0db&r(dOSu`Iwo?}_x@DBqcw3DtYw1a!S1sCV zoQD(sNHBWORFQeBof_kv7%;ITCSz(*l+mLNy1u524h~DFEy-_OjMp=XR9& zmGF1EyMqpGb-lBGJCmNZvZ=Y`8*R&D$NeJh<$G#AT+@GYhwaV-P5%3vzIE=-v;1CK z&iZZ3y0V?`jkl&XZ@H}<9{xF|;b3gc%6D_K1os8hd^2X4TXQDO%SBai(&VL`CnG!d zRBN175|!F|Yt9PhwXLha-~T$x`TLBM#v%NL`zF-weT&8uV8O4r*7e11!3P5Repm&WkuxtB5ngZxnst@S_ZOjtY0Zwa4ljW)mY>&8X# z+?cucJU>NB~Xm7Jusa>+b3HvO<)THpKrItS_enwb6Ml+f%i zk5$qb%9?zxxizMHgcj~)7CZXuiAC~Fm-)UMdLG$KjTQUhW1-}##^S2JBEr{bX3m^t zJ>`s%9h)ww*?6;@E<7OaaPyo<^m@-_a|N{Xj-P%0xhpl`Yzx0}uw6#15|-QfG&;Wik$I7=c>JzUP2O=P#-hL*Zo?oKcTd~@aWch$^S2Q_rJXxUG2F3VOO!=|CitIY}ot2 zW8442vVW}EyBj`Dx3~MW(0k3|ou^BW&6pVy{-fF3?oa3Y@6t~mzCFu3d)e6QO*su5?yl(gNdltQH+ zcdx6uepLSVgYWZh|GfYAw|L!;#s4=3aQB&;R9-xK+TDHbiO-Xgf1mKt-k#DrPkXD) zb#b|OS0;9>NSJj_mpRAnO{I(4%sm@|OuUbraGk;_GBcU;)aw~1CiLCPGW!_SDZgmv zkr4UiLO1(@dm4_3yiw@pwMZH+pk+5Gg4hhgAs{b{QOU*#oVPkYcVq8aY8bGg>l zwD$@B1L935?!2x1K+@CpK zJ|q5Y=9g#B4=B`s?>e+LD=U@5rMxWwkt^Q{JoqcSrQg3kE z)AF6kzn_<`xj#FpOR9C^qwZRNo8Bw)S|nm5*G*IJ(>!PVmk0&rxoSeJ6%vJqq|JyrP zGtRy!vs*eNn|E=_(NhNlc8G=V{kd&f@a2L}ET%~^#_3OZx{Gut-FecwY3GUr=|Yp+ zY2mS(HtzjDHNL8*%3!*(>KpTGTkm8tGyBWj&`o90^J1`O{R=nnUJskw~tg{F%gTDX@4CCIZ~jQC}|FMnF;nw0e)MGE)E>G6i? zT;C=VxS&yC=OpF74khOuk}vBd8{C>6^Hk0!tl^=`{L3y~m{P zTKxxWB(&<*NMw4S?03|zJm=f#U)MKB zdGstwN;C{FJrv5)J>z8C?*|gv?rwfv`W+5&-%UcE&1|?`#G)# z1#dUVD5@Th!r)P2J6*L)d^8&@u^{d?AFmgGl4yOy~dmKw6g?DNz5WVQeI zJon&O??8RVn9UMmt52GKU|Y49bvTpvFzi!ashxAx;l1wd zG8V_>vraemt1X#puG7dNl*+QfOfchj=Ci!R0a@)5;{qxG;Q_s6?JjC0==kolE`^#{9LsiAY3w0mN*mO3p zkoYZU>VLoLWBk9V|0c`7ulVuszDogN~QDTUnGBgbmv$woB5org(2%|fBC(SUvJ;~hf}tG!OG*S z7IsXZv!~|svajFmcKn@q{CN4BIsZ*#{1+~mTl4C`$@I0nXO@<~xhi*md7@9e=iZNp zgS4+aPAF;oybFJk@ecGj-C*%No+_00_npZBaiy=~tgSN65Vd36D|mMZ!N zo2=QJmUb}YlNIOJ=<@H+?;hli+yCY2!57ZA`E2(6y|Mn=s%bjsa_v%Ir0QGc&aHa( z{n+=A-k1f;cOSoW=+Z;`-v?UD?{9rRy>V*vcAcu5-u{}Oisg3k*A(#oaSgrNk|nyz z)&8T`QAJ}t{S`;;_y23D?a#lx_3??v{r>wdB>(ZjbB=>Z?pZi@%4%R zecuzz{eGU7U!E@)u|4s_6614L24*+%mN#`Na4`4=E$QmJJujN~YE@7707)4%tj z^6|51xwJWBCGn57x69r%x6Yl>aOsHb?QhE#dNeQlAe2;cSj}_RN5$7S%pV_R zm>Htm7c=kmK?%W}e;Y#G!ENv7|6DCCf4MEE^Ppt=i)%*F_Lmr~S;ID;+VG=0Q8D$3 zpvTVjLfhvVRF`J1Ogt|=OXEmm!loA|ew8fVmtT~kcOta=X^hXIC97Vo_Ue1owJFP( zUvI8yN6eEaR$RJE*Gyg2sbn%$a8{I`;tJEnzwSJFsM$6v@bU>Qk*1k`HTiiN7lSOe zzd!6BRc@PpqG1<+oh^+ZXZEuA%+S27I&Q zcB@_vQ8Dt`pc&nkr<1*};-_b}ztpRrcm944^>{wtuJY@)@Bd$4>^v-Epgqy@tc8V9 zbwbv*3Hlk4=Ivew98VTI8-L2_OwH@RbVHWeM00A(kHGEQ1dhfF9QIJE(Ggcs;&5)# zE$;lFT;ar6ch>Cn5$;J$mjqK}c1AAua$D5AIAycJEJ^nH2R)XqXUv#2bN*4$W}SaC zHwkz1rYWpnxb9HUcAnPus^zi;&P&g%_hr#C+Rc0~`0J!)FV1W<>5+|M*zR@X$06a# z8-;&wiT-|f()s7iLPqPnS+?8|o1#`Z%T2@mMCiE@;)K)vCk`Z?VPD5i?2V4G>L4Q+_`9Ol!SXkq2kh|0nHcIzP@&r+yDGiANA{b z)f1;|YdpYHH(P&NR4-eP&b2gyd!C24i7+Jj-sRgNUwvlNr=|*(rlo?XpREzETqxAi z7^Hi9mZrO!y8CgpYHel%4$F01GgG48t8_h7IdO5~pZcD?>{C=DOI52LALEt(_^0~k zrLeTh_^Wrfu-|&j!W7jY!6+n^GT{hEn#zw4U(>%xs-*0@Bd@5~&ekiC=AcmHeA)N1 z?{B@!p|NV(tF>yMov!)U+P_24@VU#jf0uq`|J_>m`_-v4;?M3Cf7|zb&fdVH*gyAP zUQOIBy3Eo1RZPUyCI<^6Th(Bl0)ehiz8N8^Lf3njpX&Ypd;0tOPcyZ7uWnen@$Bnx zF)QUDDe*>^gRBpNyZz7u3}|g9BFN4xKQoLsq@$W^4Mutmz72Yym+_h>G6vtkq-kG%{uCPfB&W%c_!Jl z=a=6InVnPF=aJF7vP-ABP~-Hgb1TGM8J(AeD;@neIa@iuH2TlKnwM|fs)Fr*9=u+i zxv6yHYB%Tohc>tR7TM|C-~WHw_rITVwOzleN?&~#5Uz9G=0vZ3@!RG*|BY*RmRem` z6$mJ0`Ry5y|0wmS%d|u55>_cJa*NSBd%u&Z&;3fo1&&J!Cu2p!u3z5jYW7C#dK=>` zjU$eeSYpqpGe#6?wx8LphUHfje*P(rrZWjJszrQ3K+3Z69@ybAP{ARAf>ldq4b?Ls)9LgvXCfl}W{suC_IYM9%kWOrFHzA$M=;qQgeK zN%KRGoHF08b-%)giGZ8m&=TfXl- z^Gc=72@+9h6DPl^+8wPU#Tp!cE2f<_{xVmeF^id4S?og=ei{& z`D-OTB^=Kv9kY!!_~{*@2r3KygqK`I=>x- z2N>R_NwTzZOlBAB4)XH8S|oIQUasER%e`ldcFv1n<7N9hX+_nno^%hxT(L8STPyNv zA6@Z!c;L;E*Y^egp3!$*H05beWXA?Z9o9`82~6{PLM~W5kGS_x)8MN{Pq0o-pnfy= z|E8ysv^SwFA z$$wA5z89_kjvU$j@2`9O?~O?fliF40D9uqzZ}V(Lj1qd zRxhsmU1-bebt9zh*zSs3ifJnkvPAk^-#ynpD#Ah}>%8r|t7*sXm3?l0Ut6n^DezIz zFi3u?sfNJ~*Zc|Rc@E8Dnlfo$(ffOCoeXEBHM6^4y<+uPcQy9$*^}Gz_kOpnSr>PH zFXK_A%RzHXjKf2&bgzCL*t1Y}of(sffP2fyil9bMt=Su=u)nu>cRNs9aR0x%$30e7 zK7YHt^_##tGme}CrMt2Y{Q6MS|7f*9j^DNDxxZ%}ot@tGdG=o8=(snzdw(C?J-;IB z-!Ct3lPmJ`Zr+Lid-S;6`**kWHLt|RMQpP^{PfV7_y6Bsk1PG(>$rSzmJ~1hon9B$ zW`POspX3~0uhTcD@qVAIb?S>O9j}b@(+VQy@q{~=9J!^dv+;nx)ohhyxhMa0PXA%y zEm_o}Qh1I3`sE#;@2p&MUpPD2u`I{nM`vyPwRUSuO+KEdaiVBz zVB1!Al~CiJ>1Ni!$G=-O-rjJ^^>E9KO;1W@vQ+jQo?dVwd0+d#{ud#-9$QP2F0BdY z<~(b1w}a{aiVJCr*9Dqc-!&)+4hp*K9_)BFVWEKjx)`6m7ZWOC6&v5X-92zsF+7{6 zOe!bQ_v)^^AO7Wg{vO}H=h@o(Kik>o|C%)E^vNkn|L?wD{&4;3s;`0B%QhKA`CO@6 z$nst7<qYY`F7K~DJA3j)js+n*Ii%0=2MPv$+c4dK-V6;+)l!{xdiuF-mHcZJ6IE}v9C*Hr zLDIK%=9Md=8!sI&JE*d(Es(`VF<%hX$wIMnJ*UNZCf2b;)_qimQFjIqPr?!=2 zx7taK-c3HwwVTe@>dRiJv1na*eeJBYRSxYs6OE?45GykD^UB;cdH<$8Q_gR=>L)aT z^WfgJ2_+AsKmJfW9s1zmG=;83FZ|^MHtq2ia?jsjz}s)o#_z3Ec)Z)_a9~mJR2fgn z61J`t6@^chZqN;25}9hb_{61Bn=Oz1d@o!HVg13JFvZHIWXh9;3{RDWK2~hKE5$Kk z>aPv&9e z4Q*Pk-2H!C1vgc;b!wh0O9`HNVb=S-pT+Gyz4~7N;L6mW^DXVZpSJ>-to0V&lD2V+I!(&w|=Za z@WUJDue@8q+9>TS!j`h==Jx(C*H&}ie(3BUyJqUm+uux<&GtK1XfA6T7Vfp_T!!nJ zRY?l!r|SRop09a#XZ!!p$Nzr||5sMnbLsKp}d8wJ)(t{V~T9iiZxb@mup#5s)Rln@0jZ0>*dP`a;Kj@8aKKRv9-#mS*$tlI6 z;LTaHxh^;q`nWpXHfs92HzGYBYg5+v99z@6KJLc$_XacPaPR+rcl-Z)!3=$$ zRrFHyzaL8RtW)z>k+l9&yubX7%CSezbtUu5li#p7HeWDwyl%8pMMLb5NN3LONOj+0 zW1RyIg-e3u3ywYd=6V5Zj zY}z#Q*Sw>qQj!k^rmsmmHur0Uxyf1%ouE%`kG%F*fBtf1Y3tKt8)LtP3EY&t)3|1% z*UF;Y$E}Oizb_JBBcJnqPO|y^D>ozT|F_Ri|GG#aUDLF&Zr<)w=l-nl=Tdv~@afmH z;r9&Ke}CO5zFqD3RNMAv>+&+{1WZ)7+An#UwQ>I@-j%<4`QOxj+F9%oq9Qo#I__45tUy*xFZt!K7&@_j@-}{t0cdEY~) zXRQ46v+{G0R;$1iQO~fza<*xjM>xd_I3KiY35JG&z;rh->jnGaB));pI||R#wwYqhLe~S_&p1hPRyAYw`I>1*_D0fRp%mBZrpiy z=eK0pYx;W>ye}t)FLPZM-s2vfeZEA|Zj}-zr`3h7=EpqQ2CJlgJt}x0w{Z{mXK7{4 zi_2fW&f9UlW7RUxuC1?P)`~1SYXAS)W977!OD}CZ-~M*r-i>vi@2>ZoyhZz$|DG>R zf?nCDqt{#86wfZ)aX;#H`px6@^(zY<_Lrm?hkR{Xrp0t1SI}U4oKdsRom|Ne4R24} zjnH4;^Nde~Z+%|Rzemyc^VhSutG%!IQ}TB;|KAH|Cpm7}UtG5^qOXkitu!B(sA8;) zz)6v1-^@+Cq^5ReEv$Igx;gTN$|9#j8qH6ZX=ga8Jw2Dr`Q)q6guMz93xW;SeDv-}sg*a&x>cqgig3NMZcg>XbF<&?D7tv> zGLMk+hUEUwJ64DtTc#HO>v`pBo1J&xmRHwpmltB)v`wVbrrUjktjSWF+)ZCk>)Y0R z{5k#G-S7Ur&fn+!I(L5U{I#z7<`dq0-St8I=bf46ojIp9*n^GrmmZxwr)pCe@5k(8 z&c7Fb+uHg$UHXo_z|G755-!Pmy!?NAQgW<*eew6R@iX>4E_DCBcyasT8xQ3KEPc;- zsW7^*MMiw_SmpKdl-uci_e`C1jU123Jt^8KyGug~%wjsR%Hxne>UVoFPc*=EQIp))_UcEcqUpw3IX|nJRi&-*RquGT9`e zbW!7aoA|@qn_@C%t7u&A2%FzFe`)Ud^KXs>`J5>GsK9C=!+2()Qj3{tcaHudwk3tn zteq7fw=Ht|QPi{`>Kc3E8@}3ExBJxMl0>d5^zj}IQar#AG*RWijR~jAULJjKo0of3 zXq8o<-0qDB7}qddcAx6Z7omH2a@dvs$0}#_B)-q;dS<*+is|fabydN4%E2yz4|t98 z*Bp4XH|^&P(^Jt*-_(De^v=65S)t6$md#~#3Hye$m?tb6Zc?*0Ejg<6H1O2J?v*-e ziu_OKJ`222tyH*J!oRAq@nJylslyz*Z3JcoZJE{b;+RC)!UgFL$5a~L-e6$Jwm7rf zTvF`Y%f5wbcf#k{7d)^L-+DY_9{+cS!UcIE4m5Yx$=9KZn1^m!FeA2SVHx9pBaDMZro$2R(y!4p( z<-Fa#Z~gvp&8nB~)*O3u>f^G{Uys{+8kH~JdvE84d3Q~|?mQnGHRqG|<;}bEtCXcP z95;Mi74B32d%vw@-=$evf8Oce56@aR;U2@gn%kU{I?@*>u6c3v)WU_6|4hICGy8Yu z|A*@OwQv6JFG=3@>HPGl`IWzRKJM)@wKTN6d8IUM##u#Y z`mK@1$JCjHfu2cx>p9({T#pI6CeKs2aZW*~Hzq>tMwj@nIlpumodi~|eETiD>Waqa zy7!k_eJlTIPA!)Sk9xWM{?Ai?a;twhhxZ9*bG6Qkvzz2HHH=ZzOY-~?nS)PFdt-`3 zzeP@Z+HL84RePFt|I(fLYHRjLq`&{LM*c*C&*#U26IqKIgFO@(=dPK1$NZoD|9=;g zAOHGT6%ZWW_y5`K^kZ(l3zNly3ZJgL*8Q;4cB`GI%IY6?o^s1aMn!ymbf}Yg@m0Bb z3poFKr4`n?t2}7_8Mb*zEQj0g)uJ5fZ?7HuazoBuW=gNl#Reu-Eln9M!1Fd2 z6*JXK5ly>271wDd%}~9Vwx4~6`o$%VPgZAYP7DlW{&9NYVt4j!^F2;|{iiVTsl-0D zrVjVH7Sq=5@`_!=A)xaxXjW?!hmXvg^Jq7$AH+OwiIggkP7^?1U>r7cVA-u&1Xr}yhHV{m||W!GVeqb@tVGERJO*tNh& znqzxrj^4hORz=}D_2vt)zFgtEn`eH~^9`)N>$vQ)#usP9g}ZoWd_88J$9CZn5BsD= zN-_rndLHT?$qcvgNaWngwJdUmYwKZ&6^ySo7G9qm`uWMp<_|41I%J*_haU-kW*&vR9U=1&+F;z_@`{|cKUre@T2AUi$C?hA9ty) zZ@+kzqshKNU$ghp301}i7E*_QiM;)nb8*LCkI$>a*X?`zwceyKVUd~L)X?ty-%rx7 zY%;vIM#N~ZSg^kbw?iZ4p!L;Dn?P+x#1zB zUiO{R{L1#CzGqQIB@i-QUla zusH5w^}OqA!ZHN%tKO9!*Nu8MW645KZ?`)a4N87%WM9cQ?V7y${GKh(Pxu_1^88d* z#?+?94`2HI{@%&o_ipF=yt~zpcjUbc@jNptl0(HIdG$Gl2=hIC2hNF1yEsFQ%QyEndrUT~eJa?z@3k`fyZ@JCx9`oY{x>&TJny~!>Hl23Q(MmW+1IELgU1px9Sk?&Q)cN4Bu6b63^MOx3T+%WF$pUTK+= zd@5^#n*g`3FQ3o}>$b-`n#8nS9%st9C^Dx_ZLMRmXXajN^u&vUWyMbwjZH0Kcc)}@ z>8a)DPP=sHBl}e)RzU%2$8@PHHfNUJR@`qGX|zL$`2(|pX;;9+z|G@=kMCE%*CdHOXv306*?b4ARN4;$nfj2(^|@a2X&JQ89yQ)saH zxIo~8!m2#A7aMzXC0Sb4KYZX^!O@hk!&$_n$u)x^Wpj-EJySbBOU{NJr#HnJT%Nn| z%%2sPIhC%i@>n&gO3&}!Vr>hXT)DKy3H;JWS2X*7G-c#^bTVL){Wt0V3&lN?yWaKu zNe|n#|5IPN)3@f^eMu)5WbI|(l$pv}Al0WP@NaX6@!r5!yjGc>tjq4o-HKY8G}G#c z(F4A#L9P>~Zm$3Cy3}sj!E@b{#dkI5E{xrLMBK{BULkGvjiQdv&unx!ywXM35}$n7 zp(mZcuk?vML>s`}q4F5gk|0{oSk(A1T z#Q2Zr`1en}b$8p`zYk6xWv~D1ujZ+vYjcl1BPHs1-%1^>--=1cw^{_9!m3@y_mwdbCf!#c|jI9EBP7^G`|2VEOTBs+!-gD~AXDK;{l^?aQezZlW z!&TP6WATEhUCRo7uhw5@+T=9hD*su*)eB;FUb|}gF| z*HgKZl|3~(WhTnceCVAX@%l)R`MJG{-KR5!v%W7jVS4H`!%$S(`_hqaBKPfo3OtuAc%r25Zv17E=Gjo2xQcQ4l^Ywb&)sBF;Vj_xkbTCaoZEi8 zFLN*2v0QuM0mXpr?QnIy z``6`N%#Yt2XUUwq-f$B!~otn}UD;`v`Im8{<==^B6-UIsu z^8{v<-YsZ7G5LgmL4n8=F~~- z7^ur?lh((5V8zyrmRD!&sQWf6Ov_}}QQ_@(s~&BeyeuH=#@y%oKAe~Tb2fgv*5S+7 zuU&V0wJ`qQ%dN}(yJy{ez5Vf0)BlIk&UfxFeO5Gaiu#JTuF4ZH`iV^Ti{}VkZd$Qx zvy_C<#g?^kuP<#*`TOeHW6zrXfy@^)HIug6Th%|j^jf~+`?qb@8V7bu|B&2x`){_m zzMN&nhXr<@A1$4_`t#?%vv!)=@A`V+;`zNl_NvcKDHgc5CEcliZi8od_1=?Rrmw!G zEL1vDbicGiWxc+2`JI^Bq`I&6|CVpBdsY7b&kg^-SKeuUy|P(+ws3V^(RJQs{BKeY zt;)~i=hm9lth(w&VaN5fO=W@sdJi-v8uh&HnI__Vknw#;P-&=uZe(ZACAWH!iwc}o zD%)lTC@H4ocS?vI{dvLU-TKY1WYomxy_K1_;7#SEw^#m_ambug^YEJWOSt#eqQDcf z?W~-kok^}@JF*0qmF?DhwPN|4j47GZ6c|>PD26^VKdpK0*CJm3BS+`-?P3TsI{z*t zn>BGwl-b7l!9tTKHHfKh=-a5Lw_)D=BbgSjdUrKHe0sKb=1NY7Swj%@Q{rM2D8 zaYVRB2E9HLp=z7OxkTm9-|PFgUDd9+&aamB?5(-nyLIa<^!_*d|NC%pwco;Jo_yK7 zb6%fb8@YK|dYYwX_As^Ukac(-g3m!|(oObd!YZLIwZQ~NQ4T?uZ5@yY1;Y&DiXSxQD&Ac=l)~cl{ zkwy|cu8v%PAGkk1Cw<3NvTVVp1B#Jai!uZcY+*WT?6PZl#Jss#I=A{B-+12i;%m9A z{1!Hsf}AYRExQf()Kq2e%@8d)>T$>*Fd#nACrC3m!M`X$#6(5uKxG4$kb%lFEt^O3 zJAa;Aem=H#$JU!^L57TE7a|=g}tNn?*Q}$nk?$kGcp6>3659Svp(uef%M#8@TDj$JmZmPqk-f4>YD+JmRh| zZQs}GbA-)%K@gKuPy?et$nRGyn&nsfOv|cl? zMAor22EV$oX-c)S;yl-rN`X3O~`0VQ+llPn4ie@Mt+F@6}RbAVs z`FX3lte|AVd12p+C7iAu0og&up<66{Lw_*H%x_hXj)oQ)hF`Yju_ioMQ1T$?4v=SJ$^~HV|BDRsR3WR^yEeD(9`8z3FYPU$1Fg z#jA(c|6O97r1fxd_>?xmUxmqsUgg~izizfV_Vasx>y$GdEGO0`>e;z}x@7h(?CpVR&V`PAG`Bc zUv->tTl3erH&usMYiqZ$NlsfJ&!XDwXTSUNgLlovhfH(s-g@=jb@M_l)^#3Rf}Wq> z)A28?(pmOr_-bFBuPzr?32jTXXXH=u%#HtA{_n{|`T9qO%MZ=H@$=03zmtU8^!I%^ zbo<_qS3OswqjhgCdp^DWo73-KHP(_va(vY%6I3lXf4H;j>Q`26frc*klICM~b-cve zGanR79`1eq`|b(p9eSpsH#iThxM;8Yh0%4Yt7$jGtK%6{ralwSkZDpgTf%%UY-2*& z0pXd!ryKUFEP2zX?68e>mDib$7c*HrV}x6seP*d_Wtp*4MA6hwb=t8B2ip(Vm9GEz z>*h@dM!!`F{X0dpl)8Ou__Cfji3IDoZcq!F=Pz|=62mRt@D6>qmX;Z6k(~vdLFZib z&-&P#>Rx{M;`K3wi^<~V(p7yTDmuz-=VBBdNPKO{c%o5Y?JUnEl4|0~Eau)hSa?~dTwQ#`HqMro3_!^6}kRapj^Ul)_UY`Qgyw~1vD-$$Y4=9hTxzUA3I z>EOnjJCD6P8Gg4sd23FOyiVw=C+_|?XEV=}xmEvR-v7TB^UBsNIG&dLHLLvTpQXa? z-@o5JT(EoddvUoEaqH$XnZWudWyi(0Z?pgG?xVZ!(UB+b|DHQv`*^+F_b;O~CK7k{y6EA(gyW20U@omp$j|;q(***8mw^-ks z@!jK^$!<|apP*$P8&`5XT^Yas>5K2v%XYT%bPnfK_ zYW}`#|9o_$P?fdOqlM+q4eovipujt8i`%xA)vKNd zEL+5JO5lR=0l)bbb{7@(qmD>&ENstB2t4z_h0}kFN8Or9OLtz8J$*i8gWYk~&rQJ-sZr}V=I_WS>LW}n_$?i>DX#4OFwd*6nDvu9I?*=G+g3h?^Jy`I&I?3=zX&}7e#LR zT9-aO&a*%i3#wxj*sZwfB8ADsF3Jg)t36Q)yr_o02=%WC`j z_v>cI6@Op*{@-l>KgaZS%FURB-p`!FC7M)mX2KSwsZP3yHW~(*9x}~e?K0J3-Fr^G zx}RJA#%E6bqlxjBm4Egf_WdR(lVxkT>-_f~j`nD@-uR-J=?$mFS^LHj! zeESk(u%~h9-)!&9^{GYwmt91^tvmR{vAp;+H`~{fa^FNbCiP4*QC1h}esPXRBf4wSwKDNI<5h}GX_GdzhKEW{ z_+E8ZC9a(;5au-PO+>x%vOhPEvaS(h zzW6DEXJ^#B~oA6gIW4t>K6{(I39^MEgAfrGICzyimJTLF# zj2Au!qISw0+&7is%kf6}Zl!aj2lgIeSfeVKXWX$NzN71gx8#w$b-O$ROl`ZqO1zs} z(h|XC6d4c{`RUSD=l1^F+sdCFI=X0CS?uwg5C;EM2P&EP!zM2B`k-N!V7X?y=d1Qd z-+q;?e*395Ih1wx6=p5xO+uFQQXWnao4{9o)o#=C0Hs&vvbz^r*nK+_mL4Z2wbW{r zhKANJWy7hNS({TdyP~`b{8ScbuHK*Y|Hhk`>f+P-x2n_1uC7T+Po1p!>Bo;Jk1mxu zYv1`bZ#%!Z`P;Qe#XiM6J(gC?a$n}gtaXP@`&Q6o-5VBvx4$1cS?nLY;UggEIb#__R`P%2s{O`h7|9&M}du22G?Yv{+T~}UB zEcp58b5Hu$OFtF}Yxumg{F^3N5u+@UB>7!*4M)TOSzb?zZ`Z1KS9Wr_);|5^8gYGB z*p@R)Z&prPc%VMxOhfp+TX*!1+f5g;?{&Rg^Y{PP2{-nxTD>btOgwzAaPiiypFjWq zG*x@c){4)oPcEs;T$k1P>g4I`cWix^>YKFNzFFIL)UD;m(`T_Zvl#YF=&}rZV!d{f z%YVB>8~H=12)!^Y{Np=G>E6-dF#i!P0c)U87L@y#aL}|2%yz zU-!c9@4@mvZ#bhqlmzP^nyr0hL)oH7nJ@b1z4e>EYI#`L>!r7HO5K9bhNw&mEmL4! zl(gnY{!=bj9r>2WzolF4)^lo2zP$PTSF@U(p$6C5Wf#3%|NF)Jo0--9;Hn+pY%I31onD1&6wi*=;jgLsPi_iB?`%klJc|v`*}3=h^VhrQPl}Qs(WIU zPS!FJ=az*lmnOXKdjC^TC*zQ)!cW`%Ia6n7IG$)zIN`y=t>2a8I*EPT>Xp-)=O&-{ zC^fZ<$tKjJaeK;4{eX9$r!dbCQphW^JneecxFp7bxh+IvX4QnF*B>Q3;4TshlI!9y znOMg3O`kD#nZ_<}10{BOO+)t0$LQGXi4tAqZJW~KEg#hZz&Q9Tl4yd`k;^3XNk zzH$9(N!^ljHAU*!KK?yRq<0kXx6Ud|t>ldUBI|!~i^{W=YK)1wCbJK4Zd|Ia_|@s; z_ga0&(-Ta#p3YG4h|M~^Yei9KkC3C7+rH%;lVUEE%i0yZ$z8wNUn8!^eERC?g4b31 zoUfV7I%cJcN3o0p6t}zN|OnxLAzf*D5$)BH$o`))8_S-QC3^t|K0!5 zzV5w#{ch=NTbj+qE@gbTe&2cNowxV>Nt*(Xtm*8^^z-S=RFn!z`+0GNwPm!R+q>I! zW%suhFTeNg0k6x7!)cN>`_~A)=HLIP)&Jj*M^~;qJoQiWLEsthM=pEzY*acib$|2aGU&z1bYXRGgjUL`;O{l0ext@nT59?$9Bd%Iu8`s)SNVyE}|IhQy5 zldpT9|L^m9`yb!?{bssWF*kB3ia|rF820&4&5iR@$@Fgq#95 zat28H#CVnma^x_5OgX+HHQh()=vuW!;vDxKCr8Yl5VDNb`Z;yS*5{oOBqxjJ-BtLz5eC$e?Q+iUvEFPL`8gYqpFDUx{$ALvSeaJ z&#sy5JI925_1i+vomVC7Ll_(mpZjLLV&imj`3WRmv{i zILJ6L;lOXkKSq9S0-Z_!`9KbHUN%KiD4E8Ta$=2~OIkvX}w>&zYI-A^vf+u8fh z?f#7V>{gkFF~3in6|#9n#wTFF&-!_tN?tDaY?4&i zQ@zf^UvpKB?lMke3g!I!jY;OtlNaepD^{0n%Q+V_N9WJSUt+d3hXoWOEPg%Yo^O3I zdUwE_KTopjzJ3YHmVMiH#H9QzvjamQFGJ6o&Xq1HA-4iQC8t^)O?BSV5_4#B$HfGW zl_IgJ7b*>WOMfUYop5vJ$_%Deaqb)W=dj1!`7}#=DbIns;qrUqjD?!BEd5TfOm)fR z_!A%A#q~tpH`I4)QsxJ)SnH(Bl7#C^Zf~x9)G<%qFgbNcRaxO&Pp?V-i!(Y^eoX9m zcUAEE#psDI8Ui!2R@~g+t(7$A_OsrOIsAF<4-fcv2P&vV$e;f&AJaLht7BDz>l>d# zoIB%E?OvQ#=vG-N&34Mgv~+LctQlH|SNdtW@9Up@iZRK*W8Ea3YJqo2emfty%5YRq zDP$;`m6m^do4r%X>{pIY4$Cq>@~oXd+ktiGg03#ri4)qEw|hqF#2J8RAkL9%-KQeY`P3ig_=SkA|X`2#@3AqN58Pi;EU*-8r+e&Tj6M zAg%{|>6HQDnxbV#+FSO#ne)`@$Iq3IPH$#cIrZm2ewM>d%~_A09JK%M)=-=I?q>5j zrVO>d$0nLy9qBWhj=fS!H#)zUW2MUTpH}{NCbTyirD&??OLYh33b(5) zu6nGj(px<2)_Z>b9APM5&XIbxx0drlp66nr%cWC!nLIiA-(}@=?};-hU%G3}p;RN^ zCh0>yBA;gTa;h&c*Jb6)UOQd;sq@iQnSqzDR2)B6oaI(*9-(5$ROffh9qz>%#_-QL&~g`HpOrs95-Rm(Ao0lR7GH#4&K6{dy=@ zbccd`Uiza;mu9%JC!duH%y=af7@9eQbA!24*C93~ggQ&|B-&rROWQ`EBv-MT&PTa=uUBU;fPWxccwKM!-Lgm_F;wG*#v0a{Qw@FP ztkx|P6`ryo)VQg3rh`;XGrNGW=5w~#w>dAT-cp}q#l|sNKWDnUTYu{Fts{NR zOw$yFWWFEm+;*XT1FK?F(GBezuNjVXJS^N@aCpwv-5ULG=h zp2x*xPgCPA(u%qzTQ0XuKsaUk#wZh}C5A;iryo6;ZvTHOv$?GG&eszj?+~b6Wbtvg zGH-!(!d0H#>Nog2&$r5T7*}1kuKO0HAl;Gfw zl8+v7&KIIP1vLz3_MA^_3FdL=S`wr-cbdhU#U8VCIvg0vO_}+NI_JDdeK2no+Y_#6 zj_tdm^U_b0_?%okQT&T@X8I<+)nb`*H*H$g*_m)sqG<=uMAZwbnSu#@&qKMmjxtx3 zuP&(il$RtRo5&Q?3Rne>r@xKtj9e`HuYB*U@pm=Oup=lU#E&{M`1K*}zV4T` zdinc#yIx*Pm#=>IaedwE{zEIQY(L)GWD{r~C38E0E!gDb+hxz=X6=8ie!uGJ%hl}9 zN>ZPxwU%&dzN=PUbEu&Gx<#|@#w#=IZ)=Ghdw4zib@NvB^S+_0qE0?~J8^;5^=(!+ zul_9au6VI~ar^V_VRpU9ooWPPW&r49cCy{@tyPD_`rs?3?+u zs<-L$D$Nw%)Ym-Do*ebnDVz1gnWqXOE1#^n&}bc%m(MGce(3AphaVaeD>mMb+rjd1 z_wglJd-vVCJW9mWXGd1s`bK5DG`dCA%6!BmIBdLw6FkUQmW z+2gmuy*m%|zbz;@|L)^{yU#L#z8*=_uQ`WF&)?FO`7DU3f$Q{U{PhR>tQ9j5a#^;XOt>yc7mpu4zo4KElHWXd2I{%6P%ve6weI^+;BYf z$i8&8m*v&f-C{mF6hyj2E_s|_=vR|8G>Qs0ZBH}5SNvLT^}9C1UuzDqEw^4~7t&K0 zC$qw7&M%3>tT#1QtnKaHChTi^Y;IzM5JQ*Eax=||B_g2$zjQXU=oTvL^9Igxe(-$T zuauv+{OVOT1rm&wC&5ZqIuK{_%d= zJ8vo`r3UNYSgW^-q3D72(MIDlBBq74cdqdih3j}51<&NKwMzATh9I}*C`PGptY zSq8iQ0IChL{%Y=3o#MOq=l5MaL$&ptq?&sWHeE7$-TRzV{)XC z-`OP=)90N|RVkA(@?|X&a{eVc)#U7_u+&)vCPouN6@7wrCmVkFwv-~jQ-Jr9pRc+oWhIXeYQK1l% zgOi=FyznU9Ve;hzON;`OQ#x07E&B%cs~X*#KXy&sahLHUODkK87{iy8nx67PA>vhO=4njy*N-3#im7O?Z3J2sJJ)x z-enUPsmngAGmg(bdOSX+I7uku4toG!gXD%K4b72CZ{nvig&b3Ib`$9+RLWW|GFfPG z(Cz1O5A!Po40Z;sW4ZnI!nfw6X!A=F2`&O!4sFTtJ~OAK z*jN1GJih(^4{wccL7#4RN+*c3{e3sVRrr2=)yyd=UEfwIUE6W8Zx6$_J5T)>D*QTg zw^z8GFgj3XqqL!eH>cNEIKqaJ-+flnMjr#?vZQU9B3y^hPCX)4|64k}rn%D!6xj>?fomVtTu#tfpddc^RqC=;US2Wki&nDV z6!+AYKiT@IC$uP|b8$!BGA14$*H(}A?BFCB>%div^UHGWr!?>gu4B5V&n)M&Ic=+& zN#|0{WSOgreLSrbP-e-$x!X8_d4EUzVAKIzR_;iDTg4V{4i9BI}`4(J4>#`)2ZOk7fUelO4$sv5( zt=BzaSk}BMAFnif4<@hNqs{^hvDrqZycXO0DFu6xbX=y~~M2)k16b{yj z%rO4^wo0Z}cSch6{T)kKY;N4T6)-dDrB;Hc>tsbY>9(VX z1tw*P9T#+ee82H^pJ>*E_?>L$jo$HZ@7^ku;9_}NM&aSK6GCY-PF?!>`n%tMHM4ta zuE&yBFGhzs+sqEY+M^lOO)&XL;A_U+0s% ztM zZVj8TWA@s$ca3+aA3MH&r}o$6YWKulZ+SCsJS=ouJf+_$Xo2UOE*qai0UJUVC}!+u zn z=Ec72_pI*SYExNvC8qXJ#Q#s-)8|G0DqH=w>&)+e*IrG`dbzGM(tN}JFWmFh7mEqc zz9Vw-(xb`w)#p3+mfIBlvOc0!^Y3B$JKLHU|7Pd?IG5}%rIwX&a?yc@Rx?rrqr`5e zNxAo}U!8U!Sp8GN+x->)eAEIDq{{#KazC^^Wl>b#_wA7v3&f{B|2^G5cg@)l?Yyfi zk_^MP*ygVam^jyWNB_aJ|JUz*ZCg}-c&GRIuC{9&jT@FH%CL2Q74vT1?H#^tf`doX zPDzaf3i%ltKJJ`+?+w?$pnQ?S1hx^!E) zztFF!37L~vW>@Srf3ednc&X2{NqeeAH#BIZE(;CT4Zd`EnsJw~AwY2Kn4zO9}Ul&2|J7_cPl@~G;XSOVgUbKKs^U|yDF>EE)`Jcmi zMFU)39ONr>^Lw!K;KtjtM7@9idz`+;>*T|QN}^8lUNj|q@VIpJc3f#q>l79Aa4>x;E#S!6<^eHAcG=#rO9nd{t zyf%z`H#etB$Cv*XFQ5Lmb=kJ$7rGBVluvm(<7LMRH$KU%#lSn_?I zZTR+W*WH+7C;e*tec<2DgWn#!+P1uF=JCbWell74Ysf_=u&epBB7gVVYf=Fs zC-%CRpY4-*e(F?K;iC;ll?yKe|)lnd{t9e*Y8W@XfDt!ZqF1CJ=?i$8p* zHY;WM!VYaUu@APK8S$OlI5&Fik+=O9QhWd55q_rDdzRHNTDw{R z60TiO&vZY$*zHg|Lyx;=E3+ZbCJV_)HBYn+1r-9GFa6oHrl3_+D*0LGL~H^z!jyF3}1>%O(L(IobcO8D{|3WHvN*xz1LC|3%U-S)II;1Eq9+{%HnmY zS8cj?9rQTjsBg94YF1%Q?r$sYj;W^{wM1s-NKTRxSiXJFv>kn`oC88rn`betlw3OT z?J~|9l~b$Q9ABxeQ(0lLZW5c2fSLWZuGXrJDy!#(uG;sN?eEp?S>D>$)4oslD1K+1 zy?oyWDf7>nwr@HQFq-szU9Xa6;p1~*XIFx>{(~j__iJjZ-yGQbdhPXo|NZYz|99|N zsUT)oa(?!{Pj5CmPFOanVC~)d=XcN6-R{dMS~4R?<4k`-;E`<-@u3x^yEa|9xbMe_ zN1e8luO@9hE$ltrWaZ2}?-HH6*4Cd7-F&_A#r8)G*L-XZCN-Vg*lX4pU=colUD&I) z)9W65bYOj#qZV&hs}?HiQGGq3+c!g|sYOSCUsGzbDqoLa`m+a>MUe+Ln;&af?DVIB zm-Y5k&c6%iEtzNTB(rkWhV;hB&ps^)ui5oDWfT5Ks<=4rx$`|LdUlqlx=q1$>&KIm z{X}xVT2Br;Y;-!8v6`dtgXb=#6<%*FoMgBS?Ta6(>X*FR|9&2CenD>CKiR3b<1M~E z*?Qvd{k%QxMfXc(doQ~7T=2=$KQ$KS3pzr15}6_>iw)TA>dT!vS_p4sQ?WYWh`nX~HHw}ggM-ShliH(r-DQ#>E8 zwPDc~lZmN2BhS5w^Pec9>-M&HQ%1o2|N6_;<(cOxah<<0@8kPhyT83#cG66dGgqpM zA$0HJ1FlQGI=ruxJG}D#z+l6`e^9jCV{daemzKj)4W-t2IO5gvKZy~6 z8@E~RDgAux;b+ecnk=71?dZFZ;wf@gf1OL&%b-)M?fd6d z=BY2Z!gQ5K#&yYk|Kmk>wz01_-&AzNWZqfD33G3${c6qM7yB<6zH4d{woAo#JOy}wLKW^D6Tm8*y zrx>G`}si=J!^cwVxMjX+A5xz&rDz*J=HSOeTFgQdtG3 zH#a&hIGSzxm4*G4sqg3dc1}L_!r07z75}ZzEKFW;$zz?}jvCWTH(XSfpIr0(Uui>^ ztnQq?^yllv?En6G@ZrawhxyCP^XeHlRy0@te*bM|w*M#Nw07CcvyW{&rd?cneVcPa zx91bxWk+9}`qw)<-p=mV;#Eg(n*96w!81_wMB4?7TO7&EVm1=dpSA~*MOu9|Ip|B}v`mV=B+8v@s^tM&b* zWC#zS1T>#6I@7Ra-X5E{{l9-ET(;h? zVVkxqZMh!D#_A){%%RNPB^L@?m{$Z|ka$y2qqIr$VFs(xoYKP&>uz6*TKDSKwY44b z>8gwcp3*^@rrr&l!FxBYxbW~w_1^^za|83cf-^4v3qQ>A{nyosqFH|FQ;xJn>8$$q z>(;YnmUh;GTOLcDQN3CALi^Im;vJn0v$JM~PdjUSeaR$-25Vb&&4kHo=X~tHciY$^ zpLyA=zLmnklR6eBhMt)dx5M*StpelfV^3!6&NTIZ!DIG(bGcG@r+nO@dnI9?6{4Rc zdVIb&Lr_wu*7T}?9;e5TO*(=1vVX|cr`j%?aatu}QI|Pq^@8mklJ$e@x_hC z9BI*p_nmnU1WtIiv_SLlud1$Zr?&t8^WK`Bx!74(rz7!qe$3{m%ADxDR43ijq3sUB zi+m5xDta(eU~1HDtr(Rzr535E@CUaY*u|ce0|>LLkbEv zS~S|SUk7e!{aRfa)p>}!?Yi0b2YF=-Y|qn~@AEBAR9t%S?W!NzNq64f z(}9;!vtBTn3okl$Z|jS#mp4}Lh_YmO!+Q1oy`5W4cKgr&=PPO36E8fG$wT|himhTc uUY}2GKKy#Ruj1;*-E7uVw*2QXU`Y5an04-r&J_j*1_n=8KbLh*2~7a^q?@Mz literal 0 HcmV?d00001 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<